플릿에서 다른 AWS 리소스와 통신 - 아마존 GameLift

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

플릿에서 다른 AWS 리소스와 통신

Amazon GameLift 플릿에 배포할 게임 서버 빌드를 생성할 때는 게임 빌드의 애플리케이션이 소유한 다른 AWS 리소스와 직접 안전하게 통신하기를 원할 수 있습니다. Amazon GameLift는 게임 호스팅 플릿을 관리하므로 Amazon GameLift에 이러한 리소스 및 서비스에 대한 제한된 액세스 권한을 부여해야 합니다.

몇 가지 예제 시나리오는 다음과 같습니다.

  • Amazon CloudWatch 에이전트를 사용하여 관리형 EC2 플릿 및 Anywhere 플릿에서 지표, 로그 및 추적을 수집합니다.

  • 인스턴스 로그 데이터를 Amazon CloudWatch Logs로 전송합니다.

  • Amazon Simple Storage Service(S3) 버킷에 저장된 게임 파일을 가져옵니다.

  • Amazon DynamoDB 데이터베이스 또는 다른 데이터 스토리지 서비스에 저장된 게임 데이터(예: 게임 모드 또는 인벤토리)를 읽고 씁니다.

  • Amazon Simple Queue Service(Amazon SQS)를 사용하여 신호를 인스턴스에 직접 전송합니다.

  • Amazon Elastic Compute Cloud(Amazon EC2)에서 배포되고 실행하는 사용자 지정 리소스에 액세스합니다.

Amazon GameLift는 액세스를 설정하기 위해 다음과 같은 방법을 지원합니다.

IAM 역할로 AWS 리소스에 액세스

IAM 역할을 사용하여 리소스에 액세스할 수 있는 사용자를 지정하고 해당 액세스에 제한을 설정합니다. 신뢰할 수 있는 당사자는 역할을 “수임”하고 리소스와 상호 작용할 수 있는 권한을 부여하는 임시 보안 자격 증명을 받을 수 있습니다. 당사자가 리소스와 관련된 API 요청을 할 때는 자격 증명을 포함해야 합니다.

IAM 역할로 액세스를 제어하도록 설정하려면 다음 작업을 수행합니다.

IAM 역할 생성

이 단계에서는 AWS 리소스에 대한 액세스를 제어할 수 있는 권한 세트와 Amazon GameLift에 역할 권한을 사용할 수 있는 권한을 부여하는 신뢰 정책을 포함하는 IAM 역할을 생성합니다.

IAM 역할을 생성하는 방법에 대한 지침은 Amazon에 대한 IAM 서비스 역할 설정 GameLift 섹션을 참조하세요. 권한 정책을 생성할 때 애플리케이션이 처리해야 하는 특정 서비스, 리소스 및 작업을 선택합니다. 권한 범위를 최대한 제한하는 것이 가장 좋습니다.

역할을 생성한 후 Amazon 리소스 이름(ARN)을 기록해 둡니다. 플릿 생성 중에는 역할 ARN이 필요합니다.

애플리케이션을 수정하여 자격 증명 획득

이 단계에서는 IAM 역할에 대한 보안 자격 증명을 획득하고 AWS 리소스와 상호 작용할 때 이를 사용하도록 애플리케이션을 구성합니다. 다음 표를 참조하여 (1) 애플리케이션 유형 및 (2) 게임에서 Amazon GameLift와 통신하는 데 사용하는 Server SDK 버전을 기반으로 애플리케이션을 수정하는 방법을 결정합니다.

게임 서버 애플리케이션 기타 애플리케이션

Server SDK 버전 5.x 사용

게임 서버 코드에서 Server SDK 메서드 GetFleetRoleCredentials()를 호출합니다.

코드를 애플리케이션에 추가하여 플릿 인스턴스의 공유 파일에서 자격 증명을 가져옵니다.

Server SDK 버전 4 또는 이전 버전 사용

역할 ARN을 사용하여 AWS Security Token Service(AWS STS) AssumeRole을 호출합니다.

역할 ARN을 사용하여 AWS Security Token Service(AWS STS) AssumeRole을 호출합니다.

Server SDK 5.x와 통합된 게임의 경우 이 다이어그램은 배포된 게임 빌드의 애플리케이션이 IAM 역할에 대한 자격 증명을 획득하는 방법을 보여줍니다.


                    Amazon GameLift 인스턴스에서는 게임 서버 애플리케이션이 GetFleetRoleCredentials()를 호출합니다. 다른 애플리케이션은 인스턴스에 저장할 수 있는 공유 자격 증명 파일을 사용합니다.

Amazon GameLift Server SDK 5.x와 이미 통합되어 있어야 하는 게임 서버 코드에서 GetFleetRoleCredentials(C++) (C#) (Unreal)를 호출하여 임시 자격 증명 세트를 검색합니다. 자격 증명이 만료되면 GetFleetRoleCredentials를 다시 호출하여 자격 증명을 새로 고칠 수 있습니다.

Server SDK 5.x를 사용하는 게임 서버 빌드와 함께 배포되는 비서버 애플리케이션의 경우 공유 파일에 저장된 자격 증명을 가져와 사용하는 코드를 추가합니다. Amazon GameLift는 각 플릿 인스턴스에 대한 자격 증명 프로필을 생성합니다. 자격 증명은 인스턴스의 모든 애플리케이션에서 사용할 수 있습니다. Amazon GameLift는 계속해서 임시 자격 증명을 새로 고칩니다.

플릿 생성 시 공유 자격 증명 파일을 생성하도록 플릿을 구성해야 합니다.

공유 자격 증명 파일을 사용해야 하는 각 애플리케이션에서 다음과 같이 파일 위치와 프로필 이름을 지정합니다.

Windows:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "C:\\Credentials\\credentials"

Linux:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "/local/credentials/credentials"

예: Amazon GameLift 플릿 인스턴스에 대한 지표를 수집하도록 CloudWatch 에이전트를 설정합니다.

Amazon CloudWatch 에이전트를 사용하여 Amazon GameLift 플릿에서 지표, 로그 및 추적을 수집하려는 경우, 이 방법을 사용하여 에이전트가 사용자 계정으로 데이터를 내보내도록 승인합니다. 이 시나리오에서는 다음 단계를 수행합니다.

  1. CloudWatch 에이전트 config.json 파일을 검색하거나 작성합니다.

  2. 위에서 설명한 대로 에이전트가 자격 증명 파일 이름과 프로필 이름을 식별할 수 있도록 common-config.toml 파일을 업데이트합니다.

  3. 게임 서버 빌드 설치 스크립트를 설정하여 CloudWatch 에이전트를 설치하고 시작합니다.

코드를 애플리케이션에 추가하여 IAM 역할을 맡고 AWS 리소스와 상호 작용하는 데 필요한 자격 증명을 얻습니다. Sever SDK 4 또는 이전 버전을 사용하는 Amazon GameLift 플릿 인스턴스에서 실행되는 모든 애플리케이션이 IAM 역할을 수임할 수 있습니다.

애플리케이션 코드에서 AWS 리소스에 액세스하기 전에 애플리케이션은 AWS Security Token Service(AWS STS) AssumeRole API 작업을 호출하고 역할 ARN을 지정해야 합니다. 이 작업은 AWS 리소스에 액세스할 수 있는 애플리케이션을 승인하는 임시 자격 증명 세트를 반환합니다. 자세한 내용은 IAM 사용 설명서AWS 리소스에서 임시 자격 증명 사용을 참조하세요.

IAM 역할을 사용하는 플릿과 연결합니다.

IAM 역할을 생성하고 액세스 자격 증명을 가져와 사용하도록 게임 서버 빌드의 애플리케이션을 업데이트한 후, 플릿을 배포할 수 있습니다. 새 플릿을 구성할 때 다음 파라미터를 설정합니다.

  • InstanceRoleArn - 이 파라미터를 IAM 역할의 ARN으로 설정합니다.

  • InstanceRoleCredentialsProvider - Amazon GameLift에서 각 플릿 인스턴스에 대한 공유 자격 증명 파일을 생성하도록 요청하려면 이 파라미터를 SHARED_CREDENTIAL_FILE로 설정합니다.

플릿을 생성할 때 이러한 값을 설정해야 합니다. 이는 나중에 업데이트할 수 없습니다.

VPC 피어링으로 AWS 리소스에 액세스

Amazon Virtual Private Cloud(VPC) 피어링 기능을 사용하여 Amazon GameLift 인스턴스에서 실행되는 애플리케이션과 다른 AWS 리소스 간에 통신할 수 있습니다. VPC는 사용자가 정의하고 AWS 계정를 통해 관리하는 리소스 집합을 포함하는 가상 프라이빗 네트워크입니다. 각 Amazon GameLift 플릿에는 자체 VPC가 있습니다. VPC 피어링을 사용하여 플릿용 VPC와 다른 AWS 리소스용 VPC 사이의 직접 네트워크 연결을 설정할 수 있습니다.

Amazon GameLift는 게임 서버에 대한 VPC 피어링 연결 설정 프로세스를 간소화합니다. 피어링 요청을 처리하고, 라우팅 테이블을 업데이트하고, 필요에 따라 연결을 구성합니다. 게임 서버용 VPC 피어링을 설정하는 방법에 대한 자세한 지침은 Amazon GameLift용 VPC 피어링 섹션을 참조하세요.