コンテナフリートAmazon GameLift Servers用のコンテナグループ定義を作成する - Amazon GameLift Servers

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンテナフリートAmazon GameLift Servers用のコンテナグループ定義を作成する

コンテナグループ定義は、コンテナ化されたゲームサーバーアプリケーションをコンテナフリートにデプロイする方法を記述します。これは、どのコンテナイメージをフリートにデプロイし、どのように実行するかを Amazon GameLift Servers に示すブループリントです。コンテナフリートを作成するときに、どのコンテナグループ定義をデプロイするかを指定します。 コンテナイメージの詳細については、コンテナフリートコンポーネントを参照してください。

開始する前に

コンテナグループ定義の作成を開始する前にすべきことに関するヒント:

  • コンテナイメージを確定し、コンテナグループを作成する予定の 1 と同じリージョン内にある Amazon Elastic Container Registry (Amazon ECR) リポジトリにプッシュします。コンテナグループ定義を作成するときに、Amazon GameLift Servers が各イメージのスナップショットをキャプチャし、コンテナフリートにデプロイするときにそのスナップショットを使用します。Amazon GameLift Servers 用のコンテナイメージを構築するを参照してください。

  • コンテナ定義を JSON ファイルとして作成します。コンテナグループ定義には、1 つまたは複数のコンテナ定義が含まれます。AWS CLIfor Amazon GameLift Servers を使用してコンテナグループ定義を作成する場合は、JSON ファイルを使用できます。

  • AWS ユーザーに、Amazon ECR リポジトリへアクセスするための IAM 権限があることを確認します。Amazon GameLift Servers 向け IAM アクセス許可の例を参照してください。

ゲームサーバーコンテナグループ定義を作成する

ゲームサーバーコンテナグループは、ゲームサーバーソフトウェアを実行します。ゲームサーバーコンテナグループには、ゲームサーバー実行ファイルを実行するゲームサーバーコンテナが 1 つあります。また、1 つ以上のサポートコンテナを持ち、ゲームサーバーを補助する追加ソフトウェアを実行することもできます。(これらは「サイドカー」コンテナと呼ばれることもあります。)

このトピックでは、Amazon GameLift Servers コンソールまたは AWS CLI ツールを使用してシンプルなゲームサーバーコンテナグループ定義を作成する方法について説明します。オプション機能の詳細については、Amazon GameLift Servers コンテナフリートをカスタマイズするを参照してください。

注記

ほとんどのコンテナグループ定義とコンテナ定義の設定は、作成後に変更できます。コンテナ定義を変更すると、 Amazon GameLift Serversは更新されたコンテナイメージの新しいスナップショットをキャプチャします。

シンプルなゲームサーバーコンテナグループ定義を作成するには:

次の手順では、最小限必要なパラメータとAmazon GameLift Serversデフォルト値を使用してコンテナグループ定義を作成する方法について説明します。

Console

Amazon GameLift Servers コンソールで、コンテナグループを作成するAWS リージョン を選択します。

コンソールの左側のナビゲーションバーを開き、マネージドコンテナ: グループ定義を選択します。コンテナグループ定義ページで、グループ定義の作成を選択します。

ステップ 1: コンテナグループ定義の詳細を定義する
  1. コンテナグループ定義名を入力します。エイリアス名は AWS アカウントおよびリージョンで一意であることが必要です。

  2. ゲームサーバーコンテナグループタイプを選択します。

  3. Total memory limitには、コンテナグループ内のすべてのコンテナで使用できる最大メモリリソースを入力します。この値の計算については、リソース制限の設定を参照してください。

  4. Total vCPU limitには、コンテナグループ内のすべてのコンテナが使用できる最大コンピューティング能力を入力します。この値の計算については、リソース制限の設定を参照してください。

ステップ 2: コンテナ定義を追加する

少なくとも、ゲームサーバーコンテナグループにはゲームサーバーコンテナが 1 つあります。コンソールで最初に作成されるコンテナ定義は、ゲームサーバーコンテナです。このステップでは、ゲームサーバーコンテナ定義に必要な最小設定を定義する方法について説明します。

  1. コンテナ定義を入力します。グループに定義された各コンテナには、一意の名前値が必要です。

  2. ゲームサーバービルドに対応するコンテナイメージをリンクします。パブリックリポジトリまたはプライベートリポジトリのコンテナイメージに対する Amazon ECR image URI を入力します。以下の形式を使用できます。

    • イメージ URI のみ: [AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]

    • イメージ URI + digest: [AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]@[digest]

    • Image URI + tag: [AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]:[tag]

  3. ゲームサーバービルドで使用する Amazon GameLift Servers Server SDK バージョンを指定します。コンテナフリートの場合、この値は 5.2.0 以上である必要があります。

  4. 内部コンテナポート範囲 で、プロトコルを設定し、ポート範囲を定義します。範囲サイズは、このコンテナ内で実行される同時ゲームサーバープロセス数よりも大きくある必要があります。ゲームサーバーコンテナがコンテナごとに 1 つのサーバープロセスのみを実行する場合、このポート数に必要なポートはわずかです。詳細については、ネットワーク接続を構成するを参照してください。

  5. 必要に応じてコンテナを追加して、追加のサポートソフトウェアを実行します。追加のコンテナは自動的にサポートコンテナとして指定されます。ゲームサーバーコンテナグループは、1 つのゲームサーバーコンテナと最大 8 つのサポートコンテナを持つことができます。次の最小必須設定を指定します。

    • コンテナ定義の名前

    • ECR イメージの URI

    • 内部コンテナポート (コンテナにネットワークアクセスを必要とするプロセスがある場合にのみこれを含めます。)

ステップ 3: 依存関係を設定する
  • コンテナグループ定義に複数のコンテナがある場合は、オプションで各コンテナ間の依存関係を設定できます。詳細については、コンテナの依存関係の設定を参照してください。

ステップ 3: 確認して作成する
  1. すべてのコンテナグループ定義設定を確認します。編集を使用して、グループの各コンテナ定義を含む任意のセクションを変更します。

  2. 完了したら、作成 を選択します。

    リクエストが成功すると、コンソールに新しいコンテナグループ定義リソースの詳細ページが表示されます。最初、ステータスは COPYINGです。Amazon GameLift Servers は グループのすべてのコンテナイメージのスナップショットの作成を開始します。このフェーズが完了すると、コンテナグループ定義のステータスは READYに変わります。コンテナグループ定義でコンテナフリートを作成する前に、コンテナグループ定義が READYステータスになっている必要があります。

AWS CLI

AWS CLI を使用してコンテナグループ定義を作成する場合は、コンテナ定義の設定を別のJSONファイルに維持します。CLI コマンドで ファイルを参照できます。スキーマの例については、コンテナ定義JSONファイルを作成するを参照してください。

コンテナグループ定義の作成

新しいコンテナグループ定義を作成するには、 create-container-group-definition CLI コマンドを使用します。このコマンドの詳細については、「AWS CLI コマンドリファレンス」の「create-code-signing-config」を参照してください。

この例では、ゲームサーバーコンテナグループ定義のリクエストを示しています。このグループのコンテナ定義を含む JSON ファイルを作成済みであることを前提としています。

aws gamelift create-container-group-definition \ --name MyAdventureGameContainerGroup \ --operating-system AMAZON_LINUX_2023 \ --container-group-type GAME_SERVER \ --total-memory-limit-mebibytes 4096 \ --total-vcpu-limit 1 \ --game-server-container-definition file://MyAdventureGameContainers.json

コンテナ定義JSONファイルを作成する

コンテナグループ定義を作成するときは、グループのコンテナも定義します。コンテナ定義は、コンテナイメージが保存されている Amazon ECR リポジトリ、ネットワークポートのオプション設定、CPU とメモリの使用量の制限、およびその他の設定を指定します。コンテナグループ内のすべてのコンテナの設定で 1 つのJSONファイルを作成することをお勧めします。ファイルを維持することで、これらの重要な設定の保存、共有、バージョン追跡に役立ちます。AWS CLI を使用してコンテナグループ定義を作成する場合は、コマンドでそのファイルを参照できます。

コンテナ定義を作成するには
  1. 新しい.JSONファイルを作成して開きます。例:

    [~/work/glc]$ vim SimpleServer.json
  2. グループのコンテナごとに個別のコンテナ定義を作成します。次のサンプルコンテンツをコピーし、コンテナの必要に応じて変更します。コンテナ定義の構文の詳細については、 Amazon GameLift Servers API リファレンスContainerDefinitionInput を参照してください。

  3. AWS CLI コマンドで参照できるように、ファイルをローカルに保存します。

この例では、ゲームサーバーコンテナグループに必要な主要コンテナについて説明します。重要なレプリカコンテナには、ゲームサーバーアプリケーション、 Amazon GameLift Servers エージェントが含まれ、ゲームホスティング用の他のサポートソフトウェアを含めることができます。定義には、名前、イメージ URI、およびポート設定を含める必要があります。この例では、コンテナ固有のリソース制限も設定します。

{ "ContainerName": "MyAdventureGameServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:myadventuregame-server", "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2010 } ] }, "ServerSdkVersion": "5.2.0" }