クラウド内でのゲーム制作 – CI/CD - ゲーム業界レンズ

クラウド内でのゲーム制作 – CI/CD

ゲームの開発には CI/CD インフラストラクチャが必要です。ゲーム開発の CI/CD パイプラインは、通常、高可用性のソース管理サーバーおよびストレージ、ビルドを実行するコンピューティングリソース、自動テストを実行するソフトウェア、開発マシンからの適切なネットワーク接続で構成されます。次のリファレンスアーキテクチャは、ゲームビルドをリモートまたはオンプレミスのゲーム開発環境から AWS クラウドにオフロードし、デベロッパーを支援してビルドファームを移行したり、新しいビルドファームを構築したりする方法を示しています。


            ゲームビルドをクラウドにオフロードする方法を示すリファレンスアーキテクチャ図。
クラウドへのゲームビルドのオフロード
  1. AWS Direct Connect は、社内のデベロッパーに対して AWS への低レイテンシーのプライベート専用接続を提供します。リモートデベロッパーは、 AWS クライアント VPN を使用します。

  2. AWS Transit Gateway は、VPC 間の接続およびオンプレミスからの接続に対するネットワーク管理を簡素化します。

  3. Perforce は、 Amazon EBS ストレージによってバッキングされたソースおよびバージョンコントロール (CI) を管理し、迅速にアクセスできる永続的なデータを提供します。Perforce Helix Core (P4D) は、 AWS Marketplace から入手できます。

  4. デベロッパーがブランチに関連付けた Perforce に変更をプッシュすると、コミットによって Jenkins でビルド (CD) が開始されます。Perforce は、Jenkins に対する JSON ペイロードの POST をトリガーします。Jenkins コントローラーは、エンジンの「headless」 CLI コマンドを呼び出し、エフェメラル、Docker ノード ( Amazon EC2 スポットインスタンスなど)、または Amazon EC2 オンデマンドインスタンスとの間でビルドプロセスを実行し、並列化します。デベロッパーは、ロードバランサーの背後にある 2 つの Jenkins コントローラー (各アベイラビリティーゾーンに 1 つずつ) を使用することで、可用性を高めることができます。一部のエンジンでは、デベロッパーは追加のライセンスインフラストラクチャを追加のサブネットに設定し、同時ビルドを実行するたびにビルドコンテキストのライセンスを販売することが必要になる場合があります。

  5. iOS ビルド の Xcode 部分を Amazon EC2 Mac インスタンス にオフロードして、 .IPA ファイルの署名、構築、エクスポートを行い、プロセスを分割してビルド時間を短縮します。AWS Secrets Manager は、プロビジョニングプロファイル、プライベートキー、証明書を保持します。

  6. ビルドアーティファクトを Amazon S3 に配信します。Amazon S3 は成功または失敗の通知を送信します。AWS Device Farm によって、自動テストを実行できます。