

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 플릿 리소스에 원격으로 액세스
<a name="remote-access-intro"></a>

활성 Amazon GameLift Servers 관리형 EC2 또는 관리형 컨테이너 플릿의 모든 인스턴스에 연결할 수 있습니다. 컨테이너 플릿의 경우 인스턴스에서 실행되는 개별 컨테이너에 연결하여 게임 세션 문제를 해결하고, 로그를 검사하고, 런타임 문제를 디버깅할 수도 있습니다. 인스턴스에 원격으로 액세스하는 일반적인 이유는 다음과 같습니다.
+ 게임 서버 통합 문제를 해결합니다.
+ 런타임 구성 및 기타 플릿별 설정을 미세 조정합니다.
+ 로그 추적과 같은 실시간 게임 서버 활동을 모니터링합니다.
+ 실제 플레이어 트래픽을 사용하여 벤치마킹 도구를 실행합니다.
+ 게임 세션 또는 게임 서버 프로세스와 관련된 특정 문제를 조사합니다.

인스턴스에 연결할 때는 다음 사항에 유의하세요.
+ 활성 플릿의 모든 인스턴스에 연결할 수 있습니다. 일반적으로 활성화를 진행 중이거나 오류 상태인 플릿과 같은 비활성 플릿에는 연결할 수 없습니다 (해당 플릿은 일시적 가용성 제한 가능성 있음). 플릿 활성화 문제에 대한 도움말은 [Amazon GameLift Servers 플릿 문제 디버깅](fleets-creating-debug.md) 섹션을 참조하세요.
+ 활성 인스턴스에 연결해도 인스턴스의 호스팅 활동에는 영향을 주지 않습니다. 인스턴스는 런타임 구성을 기반으로 서버 프로세스를 계속 시작하고 중지합니다. 이를 통해 게임 세션을 활성화하고 실행합니다. 스케일 다운 이벤트 또는 기타 이벤트에 대한 응답으로 인스턴스가 종료될 수 있습니다.
+ 인스턴스의 파일 또는 설정을 변경하면 인스턴스의 활성 게임 세션과 연결된 플레이어에 영향을 미칠 수 있습니다.

# 플릿 인스턴스에 연결
<a name="fleets-remote-access"></a>

활성 Amazon GameLift Servers 관리형 EC2 또는 관리형 컨테이너 플릿 인스턴스에 원격으로 연결하여 게임 서버 문제를 해결하고, 로그를 검사하고, 런타임 동작을 디버깅할 수 있습니다. Amazon GameLift Servers 콘솔 또는 AWS CLI를 사용하여 연결합니다.

## 콘솔을 통한 원격 액세스
<a name="fleets-remote-access-console"></a>

Amazon EC2 Systems Manager(SSM)를 사용하여 Amazon GameLift Servers 콘솔에서 직접 플릿 인스턴스에 연결할 수 있습니다. 이 방법을 통해 추가 설정 또는 자격 증명 관리 없이 보안 액세스를 제공합니다. 컨테이너 플릿의 경우 인스턴스에 연결한 후 인스턴스에서 실행되는 개별 컨테이너에 액세스할 수 있습니다. 자세한 내용은 [컨테이너에 연결](containers-remote-access.md) 단원을 참조하십시오.

1. Amazon GameLift Servers 콘솔의 탐색 창에서 **관리형 EC2** 또는 **관리형 컨테이너**를 선택한 다음 **플릿**을 선택합니다.

1. 액세스하려는 인스턴스가 포함된 플릿 ID를 선택합니다.

1. 플릿 세부 정보 페이지에서 **인스턴스** 탭을 선택하여 플릿의 모든 컴퓨팅 인스턴스를 봅니다.

1. 연결할 인스턴스를 선택한 다음 **연결**을 선택합니다. 그러면 연결 세부 정보를 알려주고 인스턴스에 연결하는 데 사용할 스크립트를 볼 수 있는 인스턴스에 연결 대화 상자가 표시됩니다. **연결**을 다시 선택하여 확인합니다.

1. 연결 대화 상자에서 **실행**을 선택하여 새 SSM 세션을 생성합니다. 시스템은 AWS Key Management Service(AWS KMS)를 통해 세션을 인증하고 브라우저에서 터미널을 엽니다.

**참고**  
콘솔 기반 원격 액세스는 서버 SDK 버전 5.x를 실행하는 플릿에 사용할 수 있습니다. 이전 SDK 버전을 실행하는 플릿의 경우 다음 섹션에 설명된 AWS CLI 메서드를 사용합니다.

## AWS CLI를 사용한 원격 액세스
<a name="fleets-remote-access-cli"></a>

다음 지침은 AWS 명령줄 인터페이스(CLI)를 사용하여 인스턴스에 원격으로 연결하는 방법을 설명합니다. 에 [대한 서비스 API 참조Amazon GameLift Servers](https://docs.aws.amazon.com/gamelift/latest/apireference/)에 설명된 대로 AWS SDK를 사용하여 프로그래밍 방식으로 호출할 수도 있습니다.

### 인스턴스 데이터 수집
<a name="fleets-remote-access-getinfo"></a>

Amazon GameLift Servers 관리형 EC2 플릿 인스턴스에 연결하려면 다음 정보가 필요합니다.
+ 연결할 인스턴스의 ID. 인스턴스 ID 또는 ARN을 사용할 수 있습니다.
+ 인스턴스에서 사용 중인 Amazon GameLift Servers용 서버 SDK 버전. 서버 SDK는 인스턴스에서 실행 중인 게임 빌드와 통합됩니다.

다음 지침은 AWS CLI를 사용하여 이러한 작업을 완료하는 방법을 설명합니다. 연결하려는 인스턴스의 플릿 ID를 알아야 합니다.

1. **컴퓨팅 이름을 가져옵니다.** 플릿의 모든 활성 컴퓨팅 목록을 가져옵니다. 플릿 ID 또는 ARN으로 [list-compute](https://docs.aws.amazon.com/cli/latest/reference/gamelift/list-compute.html)를 호출합니다. 단일 위치 플릿의 경우 플릿 식별자만 지정합니다. 다중 위치 플릿의 경우 플릿 식별자와 위치를 지정합니다. 관리형 EC2 플릿을 사용하면 `list-compute`가 플릿 인스턴스 목록을 반환하며 속성 `ComputeName`은 인스턴스 ID입니다. 액세스하려는 컴퓨팅을 찾습니다.

   **요청**

   ```
   aws gamelift list-compute \
     --fleet-id  fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
     --location sa-east-1
   ```

   **응답**

   ```
   {
     "ComputeList": [
       {
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeName": "i-0abc12d3e45fa6b78",
         "IpAddress": "00.00.000.00",
         "DnsName": "b08444ki909kvqu6zpw3is24x5pyz4b6m05i3jbxvpk9craztu0lqrbbrbnbkks.uwp57060n1k6dnlnw49b78hg1rw4rcz7.us-west-2.amazongamelift.com",
         "ComputeStatus": "Active",
         "Location": "sa-east-1",
         "CreationTime": "2023-07-09T22:51:45.931000-07:00",
         "OperatingSystem": "AMAZON_LINUX_2023",
         "Type": "c4.large"
       }
     ]
   }
   ```

1. **서버 SDK 버전을 찾습니다.** 이 정보를 보려면 플릿에 배포된 빌드를 조회해야 합니다. 서버 SDK 버전은 빌드 속성입니다.

   1. 플릿 ID 또는 ARN으로 [describe-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-attributes.html)를 직접적으로 호출하여 플릿의 빌드 ID 및 ARN을 가져옵니다.

   1. 빌드 ID 또는 ARN으로 [describe-build](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html)를 직접적으로 호출하여 빌드의 서버 SDK 버전을 가져옵니다.

      예제:

      **요청**

   ```
   aws gamelift describe-fleet-attributes \
     --fleet-ids  fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa
   ```

   **응답**

   ```
   {
     "FleetAttributes": [
       {
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeType": "EC2",
         "BuildId": "build-3333cccc-44dd-55ee-66ff-00001111aa22",
         . . .
       }
     ]
   }
   ```

   **요청**

   ```
   aws gamelift describe-build \
     --build-id build-3333cccc-44dd-55ee-66ff-00001111aa22
   ```

   **응답**

   ```
   "Build": {
     "BuildId": "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
     "Name": "My_Game_Server_Build_One",
     "OperatingSystem": "AMAZON_LINUX_2023",
     "ServerSdkVersion": "5.1.1",
     . . .
   }
   ```

## 인스턴스에 연결(서버 SDK 5)
<a name="fleets-remote-access-connect-5"></a>

연결하려는 인스턴스가 서버 SDK 버전 5.x로 게임 빌드를 실행하는 경우, Amazon EC2 Systems Manager(SSM)를 사용하여 인스턴스에 연결합니다. Windows나 Linux를 실행 중인 원격 인스턴스에 액세스할 수 있습니다. 컨테이너 플릿의 경우 인스턴스에 연결한 후 인스턴스에서 실행되는 개별 컨테이너에 액세스할 수 있습니다. 자세한 내용은 [컨테이너에 연결](containers-remote-access.md) 단원을 참조하십시오.

**시작하기 전에**  
SSM 설정 단계를 완료하고 로컬 시스템에 SSM 플러그인을 설치합니다. 자세한 내용은 Amazon EC2 Systems Manager 사용 설명서의 [ SSM 설정](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) 및 CLI용 Session Manager 플러그인 설치를 참조하세요. [AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) *Amazon EC2 Systems Manager *

1. **인스턴스에 대한 액세스 자격 증명을 요청합니다.** 연결할 인스턴스의 플릿 ID와 컴퓨팅 이름을 사용하여 [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)를 호출합니다. Amazon GameLift Servers는 인스턴스에 액세스하기 위한 임시 자격 증명 세트를 반환합니다. 예제: 

   **요청**

   ```
   aws gamelift get-compute-access \
   --compute-name i-11111111a222b333c \
   --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa
   --region us-west-2
   ```

   **응답**

   ```
   {
     "ComputeName": "i-11111111a222b333c",
     "Credentials": {
       "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
       "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
       "SessionToken": "AQoDYXdzEJr...<remainder of session token>"
     },
     "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
     "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
   }
   ```

1. **액세스 자격 증명을 내보냅니다(선택 사항).** 자격 증명을 환경 변수로 내보내고 이를 사용하여 기본 사용자에 대한 AWS CLI를 구성할 수 있습니다. 자세한 내용은 AWS Command Line Interface 사용 설명서[의 AWS CLI를 구성하기 위한 환경 변수를](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) 참조하세요.

   ```
   export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
   ```

1. **플릿 인스턴스에 연결합니다.** 연결하려는 인스턴스로 SSM 세션을 시작합니다. 인스턴스의 AWS 리전 또는 위치를 포함합니다. SSM 및 SSM 플러그인을 설정하는 방법을 비롯한 자세한 내용은 *Amazon EC2 Systems Manager 사용 설명서*의 [ 세션 시작(AWS CLI)을](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#sessions-start-cli) 참조하세요.

   시작 세션 요청은 1단계에서 획득한 자격 증명 정보를 자동으로 사용합니다.

   ```
   aws ssm start-session \
   --target i-11111111a222b333c \
   --region us-west-2 \
   ```
**참고**  
액세스 거부 오류가 발생하면 `AWS_PROFILE` 환경 변수가 AWS 프로파일로 설정되어 AWS CLI가 원격 액세스에 잘못된 자격 증명을 사용하게 될 수 있습니다. 문제를 해결하려면 `AWS_PROFILE` 환경 변수를 일시적으로 설정 해제합니다. 또는 원격 액세스 자격 증명에 대한 사용자 지정 AWS 프로파일을 생성하고 `--profile` 명령줄 파라미터를 `start-session` 요청에 추가할 수 있습니다.

## 인스턴스에 연결(서버 SDK 4.x 이하)
<a name="fleets-remote-access-connect"></a>

연결하려는 인스턴스가 서버 SDK 버전 4 이하에서 게임 빌드를 실행하는 경우 다음 지침을 사용합니다. Windows나 Linux를 실행 중인 원격 인스턴스에 액세스할 수 있습니다. 원격 데스크톱 프로토콜(RDP) 클라이언트를 사용하여 Windows 인스턴스에 연결합니다. SSH 클라이언트를 사용하여 Linux 인스턴스에 연결합니다.

1. **인스턴스에 대한 액세스 자격 증명을 요청합니다.** 인스턴스 ID가 있는 경우 [get-instance-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-instance-access.html) 명령을 사용하여 액세스 자격 증명을 요청합니다. 요청이 수락되면 Amazon GameLift Servers가 인스턴스의 운영 체제, IP 주소, 자격 증명 세트(사용자 이름과 비밀 키)를 반환합니다. 자격 증명 형식은 인스턴스 운영 체제에 따라 다릅니다. 다음 지침을 이용해 RDP나 SSH에 대한 자격 증명을 가져옵니다.
   + **Windows 인스턴스** - Windows 인스턴스에 연결을 시도하면 RDP가 사용자 이름과 암호를 요구합니다. `get-instance-access` 요청이 단순한 문자열로 이러한 값을 반환하므로 이 반환된 값을 그대로 사용할 수 있습니다. 예제 자격 증명: 

     ```
     "Credentials": {
         "Secret": "aA1bBB2cCCd3EEE",
         "UserName": "gl-user-remote"
     }
     ```
   + **Linux 인스턴스의 경우** - Linux 인스턴스에 연결을 시도하면 SSH가 사용자 이름과 프라이빗 키를 요구합니다. Amazon GameLift Servers는 RSA 프라이빗 키를 발행하고 줄 바꿈을 나타내는 줄 바꿈 문자(`\n`)를 포함해 하나의 문자열로 반환합니다. 프라이빗 키를 사용할 수 있도록 하려면 (1)문자열을 `.pem` 파일로 변환한 후, (2)새 파일에 대한 권한을 설정해야 합니다. 예제 자격 증명이 반환되었습니다.

     ```
     "Credentials": {
         "Secret": "-----BEGIN RSA PRIVATE KEY-----nEXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/\nvBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW\nZ/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F\nG50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW\noPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu\n/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1\nmb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2\nbahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9\n81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR\noQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1\nYkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x\np9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws\nayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU\nWA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC\ngYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH\noMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs\nArq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy\nWBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j\njjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa\nNWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS\nVRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=\n-----END RSA PRIVATE KEY-----",
         "UserName": "gl-user-remote"
     }
     ```

      AWS CLI를 사용할 때 `get-instance-access` 요청에 *--query* 및 *--output* 파라미터를 포함하여 `.pem` 파일을 자동으로 생성할 수 있습니다.

     `.pem` 파일에 대한 권한을 설정하려면 다음 명령을 실행합니다.

     ```
     $ chmod 400 MyPrivateKey.pem
     ```

1. **원격 연결을 위한 포트를 엽니다.** Amazon GameLift Servers 플릿의 인스턴스는 플릿 구성에서 권한이 있는 포트를 통해서만 액세스할 수 있습니다. [https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-port-settings.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-port-settings.html) 명령을 사용하여 플릿의 포트 설정을 볼 수 있습니다.

   모범 사례로, 필요할 때만 원격 액세스용 포트를 열고 완료되면 닫을 것을 권장합니다. 플릿을 생성한 후에는 활성화되기 전에 포트 설정을 업데이트할 수 없습니다. 문제가 해결되지 않으면 포트 설정을 연 상태로 플릿을 다시 생성합니다.

   [https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html) 명령을 사용하여 원격 연결을 위한 포트 설정을 추가합니다(예: SSH는 `22`, RDP는 `3389`). IP 범위 값에는 연결에 사용할 장치의 IP 주소를 지정합니다(CIDR 형식으로 변환). 예제: 

   ```
   $ AWS gamelift update-fleet-port-settings
       --fleet-id  "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
       --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=54.186.139.221/32,Protocol=TCP"
   ```

   다음 예제에서는 Windows 플릿에서 포트 3389를 엽니다.

   ```
   $ AWS gamelift update-fleet-port-settings
   --fleet-id  "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
       --inbound-permission-authorizations "FromPort=3389,ToPort=3389,IpRange=54.186.139.221/32,Protocol=TCP"
   ```

1. **원격 연결 클라이언트를 엽니다.** Windows용 원격 데스크톱 또는 Linux 인스턴스용 SSH를 사용합니다. IP 주소, 포트 설정, 액세스 자격 증명을 사용하여 인스턴스에 연결합니다.

   SSH 예: 

   ```
   ssh -i MyPrivateKey.pem gl-user-remote@192.0.2.0
   ```

## 원격 인스턴스의 파일 보기
<a name="fleets-remote-access-permissions"></a>

플릿 인스턴스에 연결되면 전체 사용자 및 관리자 액세스 권한이 부여됩니다. 즉 게임 호스팅으로 오류 또는 장애를 야기할 수도 있다는 뜻입니다. 인스턴스가 활성 플레이어로 게임을 호스팅하는 경우 게임 세션이 충돌하고 플레이어가 삭제되거나 게임 종료 프로세스가 중단되어 저장된 게임 데이터 및 로그에 오류가 발생할 위험이 있습니다.

컨테이너 플릿의 경우 컨테이너에 액세스한 후( 참조[컨테이너에 연결](containers-remote-access.md)) 컨테이너 파일 시스템 내에 다음 파일 위치가 적용됩니다. EC2 플릿의 경우 이러한 파일 위치가 인스턴스에 직접 적용됩니다.

호스팅 인스턴스에서 다음 리소스를 찾습니다.
+ **게임 빌드 파일.** Amazon GameLift Servers에 업로드한 게임 빌드 파일입니다. 여기에는 하나 이상의 게임 서버 실행 파일, 자산, 종속성 파일이 포함됩니다. 게임 빌드 파일은 `game` 루트 디렉터리에 있습니다.
  + Windows: `c:\game`
  + Linux: `/local/game`
+ **게임 로그 파일.** 지정한 디렉토리 경로에 위치한 `game` 루트 디렉토리 내에 있는 게임 서버가 생성한 로그 파일을 찾습니다.
+ **Amazon GameLift Servers 호스팅 리소스.** Amazon GameLift Servers 서비스가 게임 호스팅을 관리하기 위해 사용한 파일은 `Whitewater` 루트 디렉터리에 있습니다. 어떤 이유로든 이 파일을 수정하지 마세요.
+ **런타임 구성.** 개별 인스턴스에 대한 런타임 구성에 액세스하지 마세요. 런타임 구성 속성을 변경하려면 플릿의 런타임 구성을 업데이트합니다(SDK 작업 [UpdateRuntimeConfiguration](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateRuntimeConfiguration.html) 또는 the AWS CLI [update-runtime-configuration](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-runtime-configuration.html) 참조 AWS ).
+ **플릿 데이터.** JSON 파일에는 인스턴스에서 실행되는 서버 프로세스에서 사용할 수 있도록 인스턴스가 속한 플릿에 대한 정보가 포함되어 있습니다. JSON 파일은 다음 위치에 있습니다.
  + Windows: `C:\GameMetadata\gamelift-metadata.json`
  + Linux: `/local/gamemetadata/gamelift-metadata.json`
+ **TLS 인증서.** TLS 인증서 생성이 활성화되어 있는 플릿에 인스턴스가 있는 경우 인증서, 인증서 체인, 프라이빗 키, 루트 인증서를 포함한 인증서 파일은 다음 위치에 있습니다.
  + Windows: `c:\\GameMetadata\Certificates`
  + Linux: `/local/gamemetadata/certificates/`

# 컨테이너에 연결
<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
   ```