AWS Startup ブログ
AWS Graviton で EC2 コストを40%削減。国内最大級メタバース運営 クラスター社の AWS 活用
「cluster(クラスター)」は、誰もがバーチャル上で音楽ライブ、カンファレンスなどのイベントに参加したり、友だちと一緒に常設ワールドやゲームで遊んだりできるメタバースプラットフォーム。イベント累計動員数 2,000 万人を超えており、メタバースプラットフォームとしては日本最大級です。
「cluster」では 3D のワールドやイベントを提供するためのサーバーとして、Amazon EC2 を使用しています。そして、Auto Scaling グループを用いて常時十分な量の Amazon EC2 インスタンスを立ち上げているのですが、サービス利用者の増加に伴いインスタンスにかかるコストが大きくなっていることが課題でした。この状況を改善するため、広範囲のワークロードに対応し優れたコストパフォーマンスを発揮する AWS Graviton2 プロセッサ搭載のEC2 C6g インスタンスを導入。その結果、インスタンスコスト 40% 減という大幅なコスト削減を実現したのです。
今回はアマゾン ウェブ サービス ジャパン スタートアップ事業本部 スタートアップアカウントマネージャーの植本 宰壮とシニア スタートアップ ML ソリューションアーキテクトの針原 佳貴が、「cluster」を運営するクラスター株式会社の執行役員 CTO の田中 宏樹 氏とソフトウェアエンジニアの浦川 智洋 氏にお話を伺いました。
定例会を実施し、気軽にコミュニケーションできる機会を創出
植本:まずはクラスター社の事業について教えてください。
田中:私たちはクラスターという社名と同じ名前の「cluster」というメタバースプラットフォームを運営しており、この上で大きく分けて 2 つの事業を展開しています。ひとつは toC の事業です。コンテンツクリエイターの方々がアバターやクラフトアイテム、アクセサリーなどを「cluster」上で販売しマネタイズできるようなシステムを提供して、クリエイターのエコシステムを構築しています。
もうひとつは、toB のメタバース空間上でのエンタープライズ事業です。法人企業から依頼を受け、メタバース空間上でプロモーションイベントやライブイベント、コンサート、ファンミーティングなどを開催します。クラスターはこのイベントの制作から運営までをワンストップで支援しています。
クラスター株式会社 執行役員 CTO 田中 宏樹 氏
植本:今回のインタビューでは、クラスター社の AWS 活用にフォーカスを当てたいです。まずは定例会についてのお話をさせてください。もともと私が田中さんにご連絡させていただいて、会社としての技術的な課題を伺った際に「インフラにかかるコストを削減したい」というお話がありました。ですが、コスト削減は一朝一夕にできることではないので、弊社のソリューションアーキテクトも交えて定期的に対話をする機会を作りましょうということから定例会が始まりましたね。
浦川:定例会があることで、月 1 回くらいのペースで、実際に話しながら相談できる機会を持ててとても助かっています。また、定例会以外でも AWS の対応が手厚いと感じる場面は多いです。AWS に関連して不明点や疑問点があった場合に、AWS サポートに問い合わせをするとスピーディーに質の高い答えが返ってきます。
メタバース空間を実現するためのシステムアーキテクチャ
針原:今回のインタビューでは AWS Graviton プロセッサ活用にフォーカスを当ててお話を伺いますが、その前に前提情報として「cluster」のシステムアーキテクチャの概要を教えてください。
浦川:複数のコンポーネントがあるのでピックアップして順番に解説しますと、左上の枠が「cluster」の Web サイトをホスティングしている箇所です。Amazon S3 に HTML や CSS、JavaScript のファイルを配置しています。それを Amazon CloudFront で配信しており、一部は Lambda@Edge を用いてエッジロケーションでコードを実行しています。また、セキュリティを向上させるために AWS WAF を導入しています。
その下にあるのが「cluster」の 3D 空間のなかでアバター情報を配信するための Web API です。ユーザーがアバター情報を更新した場合に、その情報を同じ空間にいるユーザーに向けて配信する役割を担っています。Amazon API Gateway や AWS Lambda、Amazon DynamoDB などを用いて構築しています。
また、Amazon API Gateway に関連した話をすると、「cluster」では他のユーザーとやりとりしたメッセージの通知を行うために、Amazon API Gateway の WebSocket を利用しています。
さらに、その下にある大きな枠が主要な処理を担当する Web API です。「cluster」のなかでイベントを作るとか、クリエイターキットによって作られたワールドをアップロードするとか、アイテムを売買するといった各種の機能は、この Web API が賄っています。
アーキテクチャとしてはシンプルで、Application Load Balancer があって後段に Amazon ECS で動く Web サーバーがあり、データベースとして Amazon Aurora を使っています。外部向けの Web API だけではなく内部向けの Web API もいくつか存在しているのですが、それらも使用している AWS のサービスはほぼ同じです。また、また、3D 空間にいるユーザーの情報をリアルタイムでデータベースに記録するために、Amazon DynamoDB を使用しています。
今回のインタビューのなかでメインテーマになるのが、3D 空間内でのワールドやイベントを提供するためのサーバー群です。「cluster」ではユーザーがワールドやイベントに入る場合、システム側では Amazon EC2 が起動しており、ユーザーはその Amazon EC2 に対して接続します。
この際に、Auto Scaling グループを使って事前に十分な量の Amazon EC2 インスタンスを立ち上げておき、そこからデタッチしてユーザーに割り当てています。つまり、インスタンスのウォームプールを作っておくために、Auto Scaling グループを活用しています。
3D 空間内での情報の同期を行うために、私たちは room server というソフトウェアを内製しています。これは、3D 空間のメタデータやアバター、アイテム、state などの同期を行うものです。新しいバージョンの room server がリリースされた場合にスムーズに更新するため、AWS Systems Manager Automation を使っています。それにより、その時点で起動されている Amazon EC2 で動く room server をすべて新しいバージョンに置き換えて、再デプロイできるようにしています。その際、AWS AppConfig の feature flag も活用しています。
クラスター株式会社 ソフトウェアエンジニア 浦川 智洋 氏
AWS Graviton2 によりインスタンスのコストを 40% 削減
針原:定例会のなかで話題になったのが、まさにこの room server の部分でしたね。サービス運営において AWS のコストが大きい部分なので、この箇所をどのように最適化すべきか、ということが議論になりました。いくつかの選択肢があったなかで、「AWS Graviton2 を搭載したインスタンスを導入してはどうですか」というご提案をさせていただきました。
浦川:room server の仕様上、大量の Amazon EC2 インスタンスを起動する必要があります。だからこそ、Amazon EC2 のコストを下げることは、サービス全体のコスト削減に直結しています。また、私たちは room server のソフトウェアを Go 言語で作っているのですが、それも AWS Graviton2 搭載のインスタンスへの移行のしやすさにつながりました。
Go 言語は 1 つのソースコードからさまざまな CPU アーキテクチャ向けのバイナリを生成するクロスコンパイルをサポートしています。だからこそ、CI/CD のビルドの設定を変える程度で、工数をかけずスムーズに AWS Graviton2 搭載の EC2 C6g インスタンスへと乗り換えることができました。
植本:インスタンス変更前と後とで、コストはどれくらい削減できましたか。
浦川:日によって必要になるインスタンス数が違うため単純比較は難しいですが、概ね 1 日あたりAmazon EC2 のインスタンスのコストを 40% ほど下げることができました。
植本:かなり大きな成果が出ましたね。ご提案して良かったです。
針原:AWS の支援内容には、技術的なディスカッション・サポートだけではなくイベント登壇のご案内などもあります。そういったご支援には、どのようなご感想を持たれていますか。
アマゾン ウェブ サービス ジャパン スタートアップ事業本部 シニア スタートアップ ML ソリューションアーキテクト 針原 佳貴
田中:私たちクラスターとしても、社外に向けて積極的に開発組織や技術力をアピールしたいと考えています。だからこそ、イベント登壇の機会をいただけることは、非常にありがたいですね。
針原:たとえば 2022 年の「AWS Summit Online」では、キーノートの途中でクラスター社のご紹介をさせていただきました。また「AWS Dev Day 2022」内の Game Track としてもオンライン配信された「Amazon Game Tech Conference 2022」などのイベントで、御社の取締役 COO の成田 暁彦さんにご登壇いただきましたね。他にも、AWS の CEO である Adam Selipsky が来日した際に、御社の代表取締役 CEO である加藤 直人さんと会話をしていただきました。そうした機会を創出できていることは、AWS 側としてもうれしいです。
これからもスタートアップマインドを持ち続けたい
針原:今後、システムのアーキテクチャをどのように発展させたいですか。
田中:サービスがスケールし続けることが最も重要だと考えています。「cluster」は過去の実績として「イベント同時接続数 10 万人」と発表していますが、この数字がさらに大きくなっても、問題なくサービスを運営し続けられるアーキテクチャにしていきたいです。
さらに、それと並行しつつコストの最適化にも取り組みたいです。今回の事例のようにコスト削減できる部分を積極的に改善することで、より事業として収益化しやすい構造を作っていきます。
浦川:これから開発組織の人数も増えますが、それぞれのエンジニアが「自分の担当領域のことしかわからない」とか「システム同士の連携を意識していない」という状態になると、組織がスケールしにくくなってしまいます。
扱うコンポーネントの種類が増えてもメンテナンスしやすいような仕組み作りとか、システム間をイベントベースで情報連携させるような機能開発などを行い、組織構造やシステムの構造の面からもスケールしやすいものにしていきたいです。
アマゾン ウェブ サービス ジャパン スタートアップ事業本部 スタートアップアカウントマネージャー 植本 宰壮
植本:どのようなマインドのエンジニアに参画してほしいですか。
浦川:私たちは、どこまでいってもスタートアップマインドを忘れずにやっていきたいと思っています。日本国内でメタバース領域と真っすぐに向き合っている会社はほとんどないので、自分たちの力で道を切り拓くことを楽しめる人だとうれしいです。技術的なことについても触れると、これまでの定石にとらわれずに新しい発想を生み出せるような人に来てほしいと思います。
田中:システム構築のベストプラクティスを知っていて、それを実践できるのはエンジニアとして重要なスキルです。しかし、そのセオリーに従っているだけでは、なかなか実現できないものもあります。もともと「cluster」は、IoT などのセンシングデバイスがサーバーにデータを送るために策定された MQTT プロトコルを、3D 空間のデータの同期に使うという発想から生まれたサービスでした。その事例のように、発想を転換してロジカルに新しい手法を導き出せることがクラスターで働くエンジニアには大事なのかなと思います。
植本:今後さらに御社の事業やシステムが発展していくのを楽しみにしています。今回はありがとうございました。
導入支援・お見積り・資料請求等に関するご質問、ご相談に日本担当チームがお答えします。平日 10:00〜17:00 はチャットでもお問い合わせいただけます。お問い合わせはこちら