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

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

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

このドキュメントは、パブリックプレビューリリースの機能を対象としています。このドキュメントは変更される可能性があります。

コンテナグループ定義は、コンテナ化されたゲームサーバーアプリケーションをコンテナフリートにデプロイする方法を説明します。これは、フリートで実行するコンテナのセットとその実行方法を識別する設計図です。コンテナフリートを作成するときは、フリートにデプロイするコンテナグループ定義を指定します。コンテナグループの詳細については、「」を参照してくださいコンテナフリートのコンポーネント

開始する前に

以下のタスクを実行します。

  • ゲームサーバーをホストするためのコンテナアーキテクチャを設計します。Amazon GameLift コンテナフリートの設計 を参照してください。

  • コンテナグループに含めるコンテナ定義を計画します。 AWS CLI を使用している場合は、JSON ファイルにコンテナ定義を作成します。

  • 最終的なコンテナイメージを、コンテナグループを作成する予定と同じ AWS リージョン の Amazon Elastic Container Registry (Amazon ECR) レジストリにプッシュします。Amazon は、コンテナグループ定義の作成時に各イメージのスナップショット GameLift を保存し、コンテナフリートにデプロイするときにコピーを使用します。ゲームサーバーソフトウェアでコンテナイメージを準備する を参照してください。

  • AWS ユーザーが Amazon ECR リポジトリにアクセスするための IAM アクセス許可を持っていることを確認します。Amazon のユーザーアクセス許可を管理する GameLift を参照してください。少なくとも、次のアクションに対するアクセス許可が必要です。

    • ecr:DescribeImages

    • ecr:BatchGetImage

    • ecr:GetDownloadUrlForLayer

コンテナグループ定義のクローンを作成する

Amazon GameLift コンソールを使用して、既存のコンテナグループ定義のクローンを作成できます。

コンテナグループのクローンを作成するには
  1. Amazon GameLift コンソール で、左側のナビゲーションペインに移動し、コンテナグループ を選択します。

  2. コンテナグループリストページで、クローンを作成する既存のコンテナグループを選択します。コンテナグループを選択すると、クローンボタンがアクティブになります。

  3. [クローンを作成] を選択します。このアクションにより、コンテナグループ作成ウィザードが開き、設定が事前に入力されています。

  4. クローンされたコンテナグループの新しい名前を入力します。同じリージョンのコンテナグループには一意の名前が必要です。

  5. コンテナグループとコンテナ定義ページをステップスルーし、新しいコンテナグループを確認して作成します。

レプリカコンテナグループ定義を作成する

レプリカコンテナグループは、ゲームサーバーソフトウェアを管理します。レプリカコンテナグループには、Amazon GameLift Agent とゲームサーバープロセスを実行するコンテナが少なくとも 1 つあります。グループには、サポートソフトウェアを実行するための追加の「サイドカー」コンテナがある場合があります。

このトピックでは、Amazon GameLift コンソールまたは AWS CLI ツールを使用してコンテナグループ定義を作成する方法について説明します。コンテナグループ設定の詳細については、「」を参照してくださいAmazon GameLift コンテナフリートの設計

Console

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

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

ステップ 1: グループの詳細を定義する。
  1. コンテナグループ定義名を入力します。この名前は、 AWS アカウント および リージョンに一意である必要があります。コンソールでは、グループ定義が名前でリストされるため、意味のあるラベルを割り当てると便利です。

  2. レプリカのスケジューリング戦略を選択します。

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

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

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

ゲームサーバーアプリケーションと Amazon GameLift エージェントでコンテナを定義します。これは必須のレプリカコンテナです。

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

  2. コンテナイメージの Amazon ECR イメージ URI を特定します。次のいずれかの形式を入力します。

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

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

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

  3. 必須コンテナ の場合、最初のコンテナ定義には Yes が自動的に選択されます。別のコンテナ定義を追加する場合は、定義ごとにこの設定のオンとオフを切り替えることができます。詳細については、「必須コンテナの指定」を参照してください。

  4. 1 つ以上の内部コンテナポート範囲 を設定します。このコンテナはゲームサーバーをホストするため、コンテナグループで実行するサーバープロセスごとに十分なポートを持つ範囲を定義します。詳細については、「ネットワーク接続を設定する」を参照してください。

  5. オプションの設定 オーバーライド変数と環境変数を使用すると、起動時にコンテナに渡す値を指定できます。ここで設定した値は、コンテナイメージに既に存在する設定を上書きします。

  6. オプションのコンテナ制限を設定して、このコンテナのリソース割り当てを管理します。詳細については、「リソース制限を設定する」を参照してください。

  7. 必要に応じて、必須ではないコンテナをさらに定義します。

    • コンテナ定義ECR イメージ URI を指定します。必須ではないコンテナは Amazon GameLift エージェントを実行しないでください。

    • 内部コンテナのポート範囲は、コンテナにネットワークアクセスを必要とするプロセスがある場合にのみ設定します。

    • 必要に応じて、コンテナのヘルスチェックを設定します。重要でないコンテナがヘルスチェックに失敗すると、失敗したコンテナの再起動のみを求められます。

    • 必要に応じて、オーバーライド、環境変数、リソース割り当ての制限をオプションで設定します。

ステップ 3: 依存関係を設定する。

コンテナグループ定義に複数のコンテナがある場合は、それらの間で依存関係を定義できます。依存関係を使用して、コンテナ条件に基づいて起動シーケンスとシャットダウンシーケンスを設定します。詳細については、「コンテナの依存関係を設定する」を参照してください。

  1. 依存関係を追加するコンテナ名を特定します。このコンテナは、依存関係条件が満たされるまで開始されません。

  2. 依存関係コンテナ名条件 を特定します。このコンテナは、依存コンテナを起動する前に 条件を満たす必要があります。

  3. 必要に応じて追加の依存関係を設定します。どのコンテナにも複数の依存関係を作成できます。循環依存関係の作成は避けてください。

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

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

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

AWS CLI

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

コンテナグループ定義を作成する

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

例 : レプリカコンテナグループ

この例は、レプリカコンテナグループ定義のリクエストを示しています。レプリカとデーモンのグループ定義を作成するためのコマンド構造は基本的に同じです。各タイプのグループの具体的な詳細は、個々のコンテナ定義で説明されています。

この例では、このグループのコンテナ定義を使用して JSON ファイルを作成していることを前提としています。

aws gamelift create-container-group-definition \ --name MyAdventureGameContainerGroup \ --operating-system AMAZON_LINUX_2023 \ --scheduling-strategy REPLICA \ --total-memory-limit 4096 \ --total-cpu-limit 1024 \ --container-definitions file://SimpleServer.json

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

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

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

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

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

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

[ { "ContainerName": "SimpleServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:complex-server", "Essential": true, "Cpu": 256, "MemoryLimits": { "HardLimit": 128 }, "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2100 } ] } } ]