

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

# コンテナフリートAmazon GameLift Servers用のコンテナグループ定義を作成する
<a name="containers-create-groups"></a>

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

## 開始する前に
<a name="containers-create-groups-before"></a>

コンテナグループ定義の作成を開始する前にすべきことに関するヒント: 
+ コンテナイメージを確定し、コンテナグループを作成する予定 AWS リージョン と同じ の Amazon Elastic Container Registry (Amazon ECR) リポジトリにプッシュします。 は、コンテナグループ定義の作成時に各イメージのスナップショットをAmazon GameLift Serversキャプチャし、コンテナフリートにデプロイするときにスナップショットを使用します。「[Amazon GameLift Servers 用のコンテナイメージを構築する](containers-prepare-images.md)」を参照してください。
+ コンテナ定義を JSON ファイルとして作成します。コンテナグループ定義には、1 つまたは複数のコンテナ定義が含まれます。 AWS CLIfor for を使用してコンテナグループ定義を作成する場合は、JSON ファイルを使用できますAmazon GameLift Servers。
+  AWS ユーザーに Amazon ECR リポジトリにアクセスするための IAM アクセス許可があることを確認します。「[Amazon GameLift Servers 向け IAM アクセス許可の例](gamelift-iam-policy-examples.md)」を参照してください。

## ゲームサーバーコンテナグループ定義を作成する
<a name="containers-create-groups-replica"></a>

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

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

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

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

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

------
#### [ Console ]

[Amazon GameLift Servers コンソール](https://console.aws.amazon.com/gamelift/)で、コンテナグループ AWS リージョン を作成する を選択します。

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

**ステップ 1: コンテナグループ定義の詳細を定義する**

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

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

1. **Total memory limit**には、コンテナグループ内のすべてのコンテナで使用できる最大メモリリソースを入力します。この値の計算については、[リソース制限の設定](containers-design-fleet.md#containers-design-fleet-limits)を参照してください。

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

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

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

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

1. ゲームサーバービルドに対応するコンテナイメージをリンクします。パブリックリポジトリまたはプライベートリポジトリのコンテナイメージに対する **Amazon ECR image URI** を入力します。以下の形式を使用できます。
   +  イメージ URI のみ: `[AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]`
   +  イメージ URI \$1 digest: `[AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]@[digest]`
   +  Image URI \$1 tag: `[AWS アカウント].dkr.ecr.[AWS リージョン].amazonaws.com/[repository ID]:[tag]`

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

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

1. 必要に応じてコンテナを追加して、追加のサポートソフトウェアを実行します。追加のコンテナは自動的にサポートコンテナとして指定されます。ゲームサーバーコンテナグループは、1 つのゲームサーバーコンテナと最大 8 つのサポートコンテナを持つことができます。次の最小必須設定を指定します。
   + コンテナ定義の**名前** 
   + **ECR イメージの URI**。
   + **内部コンテナポート** (コンテナにネットワークアクセスを必要とするプロセスがある場合にのみこれを含めます。)

**ステップ 3: 依存関係を設定する**
+ コンテナグループ定義に複数のコンテナがある場合は、オプションで各コンテナ間の依存関係を設定できます。詳細については、[コンテナの依存関係の設定](containers-design-fleet.md#containers-design-fleet-dependencies)を参照してください。

**ステップ 3: 確認して作成する**

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

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

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

------
#### [ AWS CLI ]

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

**コンテナグループ定義の作成**  
新しいコンテナグループ定義を作成するには、 `create-container-group-definition` CLI コマンドを使用します。このコマンドの詳細については、「*AWS CLI コマンドリファレンス*」の「[create-code-signing-config](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-container-group-definition.html)」を参照してください。  
この例では、ゲームサーバーコンテナグループ定義のリクエストを示しています。このグループのコンテナ定義を含む 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`ファイルを作成する
<a name="containers-definitions-create"></a>

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

**コンテナ定義を作成するには**

1. 新しい`.JSON`ファイルを作成して開きます。例えば、次のようになります。

   ```
   [~/work/glc]$ vim SimpleServer.json
   ```

1. グループのコンテナごとに個別のコンテナ定義を作成します。次のサンプルコンテンツをコピーし、コンテナの必要に応じて変更します。コンテナ定義の構文の詳細については、 *Amazon GameLift Servers API リファレンス*の [ContainerDefinitionInput](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerDefinitionInput.html) を参照してください。

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

### 例: ゲームサーバーコンテナ定義
<a name="containers-definitions-create-example"></a>

**Example**  
この例では、ゲームサーバーコンテナグループに必要な主要コンテナについて説明します。重要なレプリカコンテナには、ゲームサーバーアプリケーション、 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"
  }
```