2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
Startup Architecture Of The Year 2019 #6-7 double jump.tokyo株式会社(全1記事)
提供:アマゾン ウェブ サービス ジャパン株式会社
リンクをコピー
記事をブックマーク
司会:ここまでで5社のピッチが終了しまして、残すところ、あと2社ですね。次は、 double jump.tokyo株式会社のエンジニアである満足さんにご登壇をいただきたいと思います。それでは、よろしくお願いします。
満足亮氏(以下、満足):よろしくお願いします。さっそくですけど、ブロックチェーンを知っている方、手を挙げてください。
(会場挙手)
じゃあ、だいぶ飛ばしていきます。
我々は『マイクリプトヒーローズ』というゲームを作っております。「ゲームにかけた時間もお金も情熱も、あなたの資産となる世界」というキャッチフレーズでやっています。ブロックチェーンのEthereumを使っていまして、プラス、分散ストレージであるIPFSを利用して、ゲーム資産の非中央集権性を実現しています。
ただ、ブロックチェーンによくあるスケーラビリティやUXの課題に関しては、ゲームの機能としては、AWS上に従来どおりサーバで構築しております。
ゲーム画面としてはこんな感じですね。左から、バトルの画面であったり、マーケットの画面であったり、今出しているアセット(ゲーム内アイテムやキャラクターなどの資産)の図鑑ですね。
やっぱり「なぜブロックチェーンを使っているの?」という疑問があると思うんですけど、ブロックチェーンゲームにおいて、ゲーム資産の所有情報は、あくまでもユーザーのものです。つまり、自由に取引ができたり、ユーザー間の(アセットの)譲渡が可能です。
また、ゲームの枠と飛び越えて、我々が作っているアセットなんですけど、別に我々以外のところで使っていただいてもぜんぜん構わないという、ユーザーに対する期待があります。
また、開発者である我々の視点から見ると、認証であったり決済のプラットフォームが、Ethereum上のものを使うことによって、事実上ほぼ手数料なしで利用が可能になります。
具体的にどういう感じで作っているかというと、こういうかたちでEthereum上にゲーム資産の所有情報を持っていまして、ユーザーは自分の持っている端末の秘密鍵を用いてEthereumと通信していますし、我々のサーバともそのような認証情報を使ってアクセスしています。
具体的に、AWSの構成要素はこういう感じのグラフになります。ユーザーはCDNやNLBを通してWebサーバに接続して、リソースによってはS3やAuroraにデータを取りにいっています。我々のサーバとEthereum間のアクセスは、レガシーな感じですけど、バッチサーバでがんばっております。
使っている技術スタックとしては、フロントはSPAで、Nuxt.jsやweb3.js、gRPC-Webを採用しています。Webサーバに関しては、Nginxがかなりがんばっていまして、TLSのterminationをやったりだとか、gRPC-Webのproxyを行っていたり、L7のRoutingをガリガリやっています。
後ろ側には、gRPCで作っているものがCore-serviceとしてありまして、それ以外に認証やアップロードなど、マイクロサービス的に作ってあります。
このアーキテクチャを採用している理由としまして、ブロックチェーンとgRPCというエッジの利いた部分に飛び込むにあたり、それ以外は実績と信頼のあるAWSの機能を活用することで、新規領域に集中ができるようにと考えて、こういうアーキテクチャになっています。
また、SPAを採用していることによって、多様な処理を一元管理するために、Nginxをかなり最大活用しています。コンテナなどのバックエンドの通信に不安が出るようなものは採用せずに、同一インスタンスにsystemdで地味に立ち上げております。
Well Architectedなポイントとしては、課金はブロックチェーンで行っていますので、信頼性はありますし、セキュリティだと公開鍵の認証を使っています。サーバコストや運用上の理由になるんですけど、Auroraの自動拡張を非常に信頼して使っていますが、一部のデータはAuroraからS3にコピーすることで、コストの削減につながっているかなと思います。また、Protobufでフロントとバックエンドの開発コストも非常に小さくなっています。
パフォーマンス側はとくに推していまして、HTTP/2とgRPCで大量の並列アクセスを捌けたりだとか、データはJSONのままに保存していまして、インデックスのみカラムを作っているとか、JOINを使っていないとか、S3とLambdaを使って非同期処理を作ったりしています。
これがgRPS-Webの並列アクセスの様子です。
アクセスだったりDBのレイテンシーも安定して低くなっています。
このアーキテクチャによって、2ヶ月で構築ができています。今までの累計ユーザーだと5万人だったりとか、6,000DAU、3,000のオンチェーンのトランザクションが発行されていて、6ヶ月で1万2,000ETH超えの売上のある、世界一のブロックチェーンゲームになっています。
最後に、Managed Blockchainのやつが欲しいです。
司会者:はい、以上になります。満足さん、ありがとうございました。
(会場拍手)
司会者:最後はご要望もいただき、ありがとうございます。1分間Q&Aになります。なにかコメントやご質問のある方、お願いします。
松本勇気氏(以下、松本):EthereumとかIPFSって外部安定性にちょっと不安があるんですけど、ここらへんのread/writeなどはどういうふうに実装していますか?
満足:書き込み処理に関しては、もうユーザーから直接やらざるを得ないと思うんですけど、読み込み処理に関しては、かなりの部分proxyしてますし、IPFSのGETをできるようにはしていますが、事実上はS3からのみ取っています、という感じですね。あと、IPFSのアップロードに関しては、先ほどちょっと触れたように、Lambdaを使って非同期にやっています。
松本:あと、今サーバからトランザクションを発行していたじゃないですか。あそこはどういったトランザクションになっているんですか?
満足:例えば、ゲーム上で新しいアセットを購入できるようになっているので、その付与であったり、bitの情報などがメインです。
松本:そこの鍵の安全性とか、サービス内の工夫はありますか?
満足:それに関しては、スマートコントラクト上である程度絞っているので、なにか起きたらすぐに対応、という状況にはなっています。
松本:あと、鍵の安全性のほうは?
満足:鍵の安全性は、ある程度keystoreのようなかたちで、サーバで直に直しています。
竹内秀行氏(以下、竹内):すいません。先ほどクライアントのアイコンアプリのほうにも鍵を持っていると言っておられましたが、あそこでトランザクションの署名をしているわけではないですよね。
満足:ユーザーが直接Ethereumにアクセスする場合の署名は、そこでやっています。
竹内:そこで署名して、そこから直接Ethereumのネットワークに。
満足:そうです。proxyはあくまでReadだけです。
竹内:わかりました。またあとでお話を。
満足:はい、よろしくお願いします。
司会者:では、満足さん、ありがとうございました。拍手をお願いいたします。
満足:ありがとうございました。
(会場拍手)
司会者:ありがとうございます。ちなみに、ブロックチェーン・イーサリアムの鍵管理をする場合、AWS CloudHSMというものが使えたりします。みなさん、よろしくお願いします。
アマゾン ウェブ サービス ジャパン株式会社
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05