Amazon Web Services ブログ
AWS Game Tech: 2020年の振り返り
2020年はこれまでの仕事のスタイルが変化し、これまで当たり前だったことが当たり前ではなくなったことで、ゲーム開発や運用の現場も大きな影響を受けました。そんな激動の日々の中、継続してプレイヤーに質の高いエンターテイメントを提供し続けているゲーム業界関係者の方々に敬意を表します。私たちAWS Game Techもゲーム業界の課題解決に貢献できるよう、これからもより一層努力努力してまいります。
さて、本記事ではAWS Game Techの2020年の活動を通した振り返りと、2020年にリリースされたサービスや機能の中からゲーム業界のお客様におすすめしたいものをいくつかご紹介します。
2020年を振り返る
2020年のソリューションアーキテクトの活動を振り返り、昨年に比べて印象に残った変化を挙げてみました。
マルチプレイゲームの増加
日本でも既存・新規IPによるマルチプレイゲームの開発が進み、これまでの3-Tierアプリケーションアーキテクチャに加え、マルチプレイをホストする専用ゲームサーバーをグローバルで展開するようなアーキテクチャをレビューさせていただく機会が多くなりました。Amazon GameLiftによってUnreal Engine 4のDecicated ServerやUnityのHeadless Dedicated Serverのビルドを複数リージョンでどのようにオーケストレーションするか、またゲームのマッチメイキング要件に応じてFlexMatchのマッチメイクルールをどのように記述するかなど、これまでよりさらにゲーム開発の中身に踏み込んだご支援が多くなっています。
コンテナ利用が増加
新規ゲームタイトルのバックエンドを中心にコンテナで実装するケースが増加しました。これまでEC2インスタンス上でそのまま稼働することが多かったPHPやGoなどのアプリケーションをコンテナ化し、Amazon ECSまたはAmazon EKSによってオーケストレーションを行い、データプレーン(コンテナが実際に稼働する部分)についてはインスタンス管理が不要なFargateを利用いただくケースも多くなってきています。現状はAPIまわりでの利用が多いですが、ステートフルな専用ゲームサーバーでも採用を検討するケースも除々に増えてきております。
ゲーム開発でのクラウド検討が進む
昨年から働き方改革やグローバルでの人材獲得を目的としてゲーム開発のクラウド化を検討する機会はありましたが、今年は各社のリモートワーク採用によってその検討が加速しました。オフィスのワークステーションを自宅からAWS Client VPNによってネットワーク接続したり、AWS上のGPUインスタンス上でワークステーションを実行し、リモート接続することで開発者の作業環境を整え、またPerforceなどのバージョンコントロール、EC2インスタンスによるビルドマシンをAWS上に構築し完全リモートに備えるケースも多くなりました。また、すでにビルドマシンがオフィスで稼働している場合、専用線やVPN接続によってAWSとネットワーク接続し、繁忙期のビルドマシン確保をオンデマンドで行うお客様も増えております。分散ビルドで代表的なIncrediBuildもライセンス面、機能面からAWSとの相性が非常に良い点が評価されています。(IncrediBuildのAWS利用についてはUsing IncrediBuild in AWS、ゲームの分散ビルド on AWSをご参照ください)
ゲームのワークロードで役立つサービス・新機能まとめ
AWSは今年も数多くのサービス、機能追加を行いました。その中でもゲームのワークロードで有効だと思われるものをピックアップしてみました。
Amazon RDS Proxyがリリース
ゲームではMySQLデータベースに対してコネクションプーリングを利用することも多いと思いますが、そのコネクションプーリングを行ってくれるサービス”RDS Proxy”がGAとなりました。EC2やコンテナなどのアプリケーションはもちろん、Lambdaなどイベント毎に都度コネクションを発生されるような場合にRDS側のリソース量をセーブすることが可能です。また、RDSインスタンスの障害時にもアプリケーションとのコネクションを維持しながらフェールオーバー完了を待つことが可能です。昨年末にLambdaのVPC上での実行においてコールドスタートの解消などが行われましたが、RDS ProxyによるRDS/Auroraへのコネクションプーリングが利用できるようになってさらにゲームのような大規模なワークロードでサーバレスを展開しやすくなりました。
詳細はこちらをご覧ください。
Application Load Balancer (ALB) がエンドツーエンド HTTP/2をサポートし、gRPCの負荷分散が可能に
ロードバランサの1つであるALBはこれまでクライアントとの通信でHTTP/2をサポートしていましたが、その先のALBのターゲットとなるEC2インスタンスについてもHTTP/2をサポートしました。これによってゲームでも利用が多いgRPCプロトコルの負荷分散もサポートされることになりました。
詳しくはこちらをご覧ください。
AWS Global Acceleratorのカスタムルーティングがリリース
インターネット経由でのネットワークアクセスのレイテンシと信頼性を向上させるGlobal Acceleratorで特定のポートからのトラフィックを特定のEC2インスタンスへルーティングすることができるようになりました。この機能によって、マルチプレイオンラインゲームのユーザエクスペリエンスに重要なIn-Gameのステートフルな専用ゲームサーバとプレイヤー間とのネットワーク品質を改善することができます。特に世界展開されているようなオンラインゲームでラストワンマイル周りのネットワーク品質にお悩みの方にチェックいただきたいです。
詳しくはこちらをご覧ください。また、Riot Games様のValorantの技術解説動画でGlobal Acceleratorの効果について解説していただいていますので、合わせてご覧ください。
Amazon EC2 Macインスタンスがリリース
今月行われたre:Invent 2020でmacOSがネイティブ動作するEC2インスタンスファミリーが発表されました。Mac miniとAWSのNitroシステムを組み合わせ、すでにある他のインスタンスタイプと同様にVPCネットワークやEBSアタッチが可能となっています。このMacインスタンスにより、すべてのパイプラインをAWS上で実現することが可能になりました。
例えば、Unityのゲーム開発パイプラインでオフィスにあるMac上でiOSビルドを行う必要があり、AWSとオフィスのネットワーク接続が必要だったり、AWS移行そのものが難しいという課題を解決しやすくなっています。
詳しくはこちらをご覧ください。
EC2やRDS, AuroraでAWSが提供するGraviton2プロセッサが利用可能に
昨年のre:Inventで発表されたAWSが提供するARMベースのプロセッサ”Graviton“ですが、今年は第二世代Graviton2が搭載されたEC2インスタンスが数多く提供されました。(“C6g”のようにインスタンスタイプに”g”が付いています。)
x86ベースのインスタンスに比べてコストパフォーマンスが良いのが特徴で、ゲームで良く利用されるPHPにおいても、Arm64に最適化されたパッチを適用することでパフォーマンスが向上したというブログが公開されています。
また、データベースのRDSでもGraviton2対応のインスタンスが提供されており、Auroraでもプレビューが開始されました。こちらはマネージドサービス側でGravitonを利用しているため、お客様のアプリケーション変更は必要ありません。
ぜひ2021年はこれらのGraviton2が搭載されたインスタンスの採用もご検討ください!
Amazon Aurora Serverless v2のプレビュー開始
同じくre:Invent 2020ではAmazon AuroraをDBインスタンス管理なしで利用できるAmazon Aurora Serverlessの新バージョンv2を発表、プレビューを開始しました。v2では、短い時間に迅速にスケールを拡張できるようになっているのが特徴で、トランザクション数に応じて自動的にデータベースキャパシティを調整します。ゲームでは安全のためにピーク負荷に合わせてAuroraのインスタンスタイプを選択し、コスト最適化のために数ヶ月おきにインスタンスタイプを見直すような運用が多いと思いますが、Aurora Serverless v2による自動スケールによって運用負荷の軽減はもちろん、より高いレベルでのコスト最適が実現できます。また、書き込みが多い場合の水平分割(シャーディング)においても、Aurora Serverless v2のスケール機能を併用することで、ピーク時と平常時の負荷の差分を吸収できるようになり、これまで大きな課題だったリシャーディングの運用負荷も軽減できると考えています。現在MySQLをご利用のゲーム業界のお客様はぜひお試しください!
プレビューの申し込みはこちらです。
Amazon GameLift スタンドアロン版がリリース
1ゲームあたり最大200プレイヤーのマッチメイクが可能なGameLiftのマッチメイク機能”FlexMatch”が単独で利用できるようになりました。これまではFlexMatchではマッチメイク後はGameLiftで管理されているゲームサーバーの利用が前提でしたが、本リリースによってマッチメイキング後のゲームサーバーを自由に選択することができます。また、FlexMatchのマッチメイキングに関する動作確認も容易になりました。
FlexMatchの利用方法やFlexMatchのルールセットの書き方の解説もご参考ください。
Amazon GameLift FleetIQがリリース
GameLiftのフリート機能には一般的に難しいとされているステートフルなゲームサーバーのオートスケールに加え、ゲームサーバーのプロセスが稼働するインスタンスにスポットインスタンスを使うにあたって、なるべく価格が安い、かつ中断率が低い安全なインスタンスを選択してくれる機能がありました。それらのフリート機能は、現在FleetIQとして単独で提供されています。これにより、GameLiftがサポートしていないプログラム言語やコンテナなどでも前述の機能を利用することができるようになりました。
詳しくはこちらをご覧ください。
どうなる?2021年
コンテナの利用が進む中、Lambdaを中心としたサーバレスもパフォーマンス、運用、コストなどあらゆる面で改善が進んできており、ゲームのような負荷の高いシステムにおいても採用の障壁が無くなってきました。データストアにAurora Serverless v2やDynamoDBを採用したフルサーバレスで構成されるゲームバックエンドのユースケースも多くなってくると思われます。
ゲーム開発においては、来年はUnreal Engine 5のリリースやPS5、Xbox Series Xなどの次世代ハードウェアでのゲームリリースにより、従来よりも大容量なデータの取り扱いやハイスペックなコンピューティングリソースが要求されるでしょう。また、リモート開発の継続によってクラウド利用の検討がさらに増えると考えています。
また、数年前から注目されているゲームストリーミングについては、Amazon含めた各社のプラットフォームサービスが登場し、どのような新しいプレイヤー体験が提供できるのか、またそれらがプレイヤーのどのように受け入れられるのかが改めて試される年になるのではないでしょうか。AWSでは新しいGPUインスタンスであるG4adや、日本でKDDI様と提供を開始した5Gのサービス”AWS Wavelength“などを利用したソリューションへの関心も高まってくるでしょう。
最後に
2021年もゲーム業界の課題解決のため、ビジネスと技術の両面から全力でお客様をサポートしていく所存でございます。来年も何卒よろしくお願い申し上げます。良いお年を!
ソリューションアーキテクト 吉田