

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

# コンテナに接続する
<a name="containers-remote-access"></a>

Amazon GameLift Servers コンテナフリートの場合、フリートインスタンスで実行されているゲームサーバーコンテナにアクセスできます。コンテナアクセスを使用して、ゲームセッションのトラブルシューティング、ログの検査、ランタイム問題のデバッグを行います。

## コンテナに接続する
<a name="containers-remote-access-connect"></a>

**開始する前に:**  
フリートインスタンスに接続します。手順については、「[フリートインスタンスに接続する](fleets-remote-access.md)」を参照してください。

次のコマンドを実行して、インスタンスで実行中のコンテナを一覧表示します。

```
sudo docker ps
```

出力には、ゲームサーバーコンテナや内部Amazon GameLift Serversコンテナなど、インスタンスで実行されているすべてのコンテナが一覧表示されます。ゲームサーバーイメージを持つコンテナを探して、ゲームサーバーコンテナを識別します。

**出力の例**:

```
CONTAINER ID   IMAGE                  COMMAND                  CREATED      STATUS
b9676e9489f5   game-server-container  "/bin/sh -c ./$GAME_…"   2 days ago   Up 2 days
1d1c8443efe2   support-container      "/bin/sh -c ./$SUPPO…"   2 days ago   Up 2 days
```

ゲームサーバーコンテナに接続するには、 `CONTAINER ID`列のコンテナショート ID を使用します。これにより、コンテナファイルシステムへの完全な読み取りおよび書き込みアクセスが可能になります。

```
sudo docker exec -it container-short-id sh
```

## コンソール経由でコンテナに接続する
<a name="containers-remote-access-console"></a>

Amazon EC2 Systems Manager (SSM) を使用して、Amazon GameLift Serversコンソールからゲームサーバーコンテナに接続できます。このメソッドは、追加のセットアップや認証情報管理を必要とせずに、安全なアクセスを提供します。コンテナに接続するには、**コンピューティング**タブまたはフリートの詳細ページの**ゲームセッション**タブを使用します。

1. Amazon GameLift Servers コンソールで、ナビゲーションペインから**マネージドコンテナ**を選択し、次に**フリート**を選択します。

1. アクセスするコンテナまたはゲームセッションを含むフリート ID を選択します。

1. フリートの詳細ページで、次のいずれかのタブを選択します。
   + **コンピューティング – **フリートで実行されているコンテナを一覧表示します。接続するコンテナを選択します。
   + **ゲームセッション** – フリートのゲームセッションを一覧表示します。ゲームセッションを選択して、それをホストするコンテナに接続します。

1. **接続** を選択します。表示されたコマンドをコピーしてコンテナに接続し、もう一度**接続**を選択します。

1. 接続ダイアログで、**[実行]** を選択して新しい SSM セッションを作成します。システムは AWS Key Management Service (AWS KMS) を介してセッションを認証し、ブラウザでターミナルを開きます。

1. インスタンスに接続したら、ステップ 4 の docker コマンドを貼り付け、インスタンスで実行してコンテナにアクセスします。

## ゲームセッションをホストするコンテナに接続する
<a name="containers-remote-access-game-session"></a>

特定のゲームセッションをホストするゲームサーバーコンテナに接続するには、次の手順に従います。

1. **コンピューティング名を取得します。**[describe-game-sessions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-game-sessions.html) を呼び出して、ゲームセッション`ComputeName`の を取得します。

   **リクエスト**

   ```
   aws gamelift describe-game-sessions \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --game-session-id arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66cc
   ```

   **レスポンス**

   ```
   {
     "GameSessions": [
       {
         "GameSessionId": "arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66cc",
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc",
         "Status": "ACTIVE",
         . . .
       }
     ]
   }
   ```

   レスポンス`ComputeName`の値 ( など`62c5ff7f7a9a445d84877074c80aeafc`) を書き留めます。

1. **コンピューティングアクセスとコンテナ属性を取得します。**フリート ID とコンピューティング名を使用して [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html) を呼び出します。

   レスポンスには、次のフィールドが含まれます。
   + `ContainerIdentifiers` – 各コンテナ`ContainerRuntimeId`の `ContainerName`と 。
   + `GameServerContainerGroupDefinitionArn` – コンテナグループ定義の ARN。
   + `Credentials` – インスタンスに接続するための一時的な認証情報。

   **リクエスト**

   ```
   aws gamelift get-compute-access \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --compute-name 62c5ff7f7a9a445d84877074c80aeafc
   ```

   **レスポンス**

   ```
   {
     "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc",
     "ContainerIdentifiers": [
       {
         "ContainerName": "game-server",
         "ContainerRuntimeId": "02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678"
       }
     ],
     "Credentials": {
       "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
       "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
       "SessionToken": "AQoDYXdzEJr...<remainder of session token>"
     },
     "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
     "GameServerContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup"
   }
   ```

1. **インスタンスに接続します。**ステップ 2 の認証情報を使用して、フリートインスタンスに接続します。詳細な手順については、「[フリートインスタンスに接続する](fleets-remote-access.md)」を参照してください。

1. **ゲームサーバーのコンテナ名を見つけます。**ステップ 2 `GameServerContainerGroupDefinitionArn`の を使用して [describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html) を呼び出し、ゲームサーバーコンテナ名を特定します。

   **リクエスト**

   ```
   aws gamelift describe-container-group-definition \
       --name arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup
   ```

   **レスポンス**

   ```
   {
     "ContainerGroupDefinition": {
       "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3",
       "Name": "MyGameServerGroup",
       "ContainerGroupType": "GAME_SERVER",
       "GameServerContainerDefinition": {
         "ContainerName": "game-server",
         . . .
       },
       . . .
     }
   }
   ```

   `GameServerContainerDefinition.ContainerName` 値を書き留めます (例: `game-server`)。

1. **ゲームサーバーコンテナランタイム ID を特定します。**前のステップのゲームサーバーコンテナ名を使用して、ステップ 2 の`get-compute-access`レスポンス`ContainerIdentifiers`から で一致するエントリを見つけます。[`ContainerRuntimeId`] の値を書き留めます。

1. **コンテナに接続します。**コンテナ ID `ContainerRuntimeId`として を使用し、次のコマンドを実行します。

   ```
   sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh
   ```