를 사용하여 Amazon GameLift 호스팅 리소스 관리 AWS CloudFormation - Amazon GameLift

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

를 사용하여 Amazon GameLift 호스팅 리소스 관리 AWS CloudFormation

AWS CloudFormation 를 사용하여 Amazon GameLift 리소스를 관리할 수 있습니다. 에서는 각 리소스를 모델링하는 템플릿을 AWS CloudFormation생성한 다음 템플릿을 사용하여 리소스를 생성합니다. 리소스를 업데이트하려면 템플릿을 변경하고 AWS CloudFormation 를 사용하여 업데이트를 구현합니다. 리소스를 스택 및 스택 세트라는 논리 그룹으로 구성할 수 있습니다.

AWS CloudFormation 를 사용하여 Amazon GameLift 호스팅 리소스를 유지 관리하면 AWS 리소스 세트를 보다 효율적으로 관리할 수 있습니다. 버전 제어를 사용하여 시간 경과에 따른 템플릿 변경을 추적하고 여러 팀원이 수행하는 업데이트를 조정할 수 있습니다. 템플릿을 재사용할 수도 있습니다. 예를 들어 여러 리전에서 게임을 배포할 때 동일한 템플릿을 사용하여 각 리전에서 같은 리소스를 생성할 수 있습니다. 또한 이러한 템플릿을 사용하여 동일한 리소스 세트를 다른 파티션에 배포할 수 있습니다.

에 대한 자세한 내용은 AWS CloudFormation 사용 설명서 섹션을 AWS CloudFormation참조하세요. Amazon GameLift 리소스에 대한 템플릿 정보를 보려면 Amazon GameLift 리소스 유형 참조를 참조하세요.

모범 사례

사용에 대한 자세한 지침은 AWS CloudFormation 사용 설명서AWS CloudFormation 모범 사례를 AWS CloudFormation참조하세요. 또한 이러한 모범 사례는 Amazon 와 특별한 관련이 있습니다 GameLift.

  • AWS CloudFormation을 사용하여 리소스를 일관적으로 관리합니다. 리소스 외부에서 AWS CloudFormation 리소스를 변경하면 리소스 템플릿과 동기화되지 않습니다.

  • AWS CloudFormation 스택 및 스택 세트를 사용하여 여러 리소스를 효율적으로 관리합니다.

    • 스택을 사용하여 연결된 리소스 그룹을 관리할 수 있습니다. 예를 들어 빌드가 포함된 스택, 빌드를 참조하는 플릿 및 플릿을 참조하는 별칭이 있습니다. 템플릿을 업데이트하여 빌드를 대체하는 경우 는 빌드에 연결된 플릿을 AWS CloudFormation 대체합니다. AWS CloudFormation 그런 다음 기존 별칭을 업데이트하여 새 플릿을 가리킵니다. 자세한 내용을 알아보려면AWS CloudFormation 사용 설명서의 스택 작업을 참조하세요.

    • 여러 리전 또는 AWS 계정에 동일한 AWS CloudFormation 스택을 배포하는 경우 스택 세트를 사용합니다. 자세한 내용을 알아보려면AWS CloudFormation 사용 설명서의 스택 세트 작업을 참조하세요.

  • 스팟 인스턴스를 사용하는 경우 온디맨드 플릿을 백업으로 포함시킵니다. 각 리전에 스팟 인스턴스가 있는 플릿 하나 및 온디맨드 인스턴스가 있는 플릿 하나라는 두 개의 플릿이 있는 템플릿을 설정하는 것이 좋습니다.

  • 여러 위치에서 리소스를 관리하는 경우 위치별 리소스와 글로벌 리소스를 별도의 스택으로 그룹화합니다.

  • 글로벌 리소스를 사용하는 서비스와 가까운 곳에 글로벌 리소스를 배치합니다. 대기열 및 매치메이킹 구성과 같은 리소스는 특정 소스에서 대량의 요청을 수신하는 경향이 있습니다. 리소스를 이러한 요청의 소스와 가까운 곳에 배치하면 요청 이동 시간을 최소화하고 전반적인 성능을 향상할 수 있습니다.

  • 매치메이킹 구성을 이 구성이 사용하는 게임 세션 대기열과 동일한 리전에 배치합니다.

  • 스택의 각 플릿에 대해 별도의 별칭을 만듭니다.

AWS CloudFormation 스택 사용

Amazon GameLift 리소스에 대한 AWS CloudFormation 스택을 설정할 때 다음 구조를 사용하는 것이 좋습니다. 최적의 스택 구조는 게임을 한 리전에만 배포하는지 또는 여러 리전에 배포하는지에 따라 다릅니다.

단일 위치용 스택

단일 위치에서 Amazon GameLift 리소스를 관리하려면 2스택 구조를 사용하는 것이 좋습니다.

  • 지원 스택 - 이 스택에는 Amazon 리소스가 의존하는 GameLift 리소스가 포함되어 있습니다. 최소한 이 스택에는 사용자 지정 게임 서버 또는 Realtime 스크립트 파일을 저장하는 S3 버킷이 포함되어야 합니다. 또한 스택에는 Amazon GameLift 빌드 또는 스크립트 리소스를 생성할 때 Amazon이 S3 버킷에서 파일을 검색할 수 있는 GameLift 권한을 부여하는 IAM 역할이 포함되어야 합니다. 이 스택에는 DynamoDB 테이블, Amazon Redshift 클러스터 및 Lambda 함수와 같이 게임에 사용되는 다른 AWS 리소스도 포함될 수 있습니다.

  • Amazon GameLift 스택 - 이 스택에는 빌드 또는 스크립트, 플릿 세트, 별칭 및 게임 세션 대기열을 포함한 모든 Amazon GameLift 리소스가 포함되어 있습니다. 는 S3 버킷 위치에 저장된 파일이 있는 빌드 또는 스크립트 리소스를 AWS CloudFormation 생성하고 빌드 또는 스크립트를 하나 이상의 플릿 리소스에 배포합니다. 각 플릿에는 해당 별칭이 있어야 합니다. 게임 세션 대기열은 플릿 별칭 중 일부 또는 전부를 참조합니다. 매치메이킹 FlexMatch 에 를 사용하는 경우 이 스택에는 매치메이킹 구성 및 규칙 세트도 포함됩니다.

아래 다이어그램은 단일 AWS 리전에 리소스를 배포하기 위한 2스택 구조를 보여줍니다.

Amazon GameLift 리소스 및 지원 AWS 서비스에 대한 2 AWS CloudFormation 스택이 포함된 다이어그램입니다.

여러 리전에 대한 스택

두 개 이상의 리전에 게임을 배포할 때는 리소스가 리전 간에 상호 작용할 수 있는 방식을 명심해야 합니다. Amazon GameLift 플릿과 같은 일부 리소스는 동일한 리전의 다른 리소스만 참조할 수 있습니다. Amazon GameLift 대기열과 같은 다른 리소스는 리전에 구애받지 않습니다. 여러 리전에서 Amazon GameLift 리소스를 관리하려면 다음 구조를 사용하는 것이 좋습니다.

  • 리전 지원 스택 - 이러한 스택에는 Amazon 리소스가 의존하는 GameLift 리소스가 포함되어 있습니다. 이 스택에는 사용자 지정 게임 서버 또는 Realtime 스크립트 파일을 저장하는 S3 버킷이 포함되어야 합니다. 또한 DynamoDB 테이블, Amazon Redshift 클러스터 및 Lambda 함수와 같은 게임에 대한 다른 AWS 리소스도 포함할 수 있습니다. 이러한 리소스는 대부분 리전별로 다르므로 모든 리전에서 생성해야 합니다. Amazon에는 이러한 지원 리소스에 대한 액세스를 허용하는 IAM 역할 GameLift 도 필요합니다. IAM 역할은 리전에 구애받지 않으므로 하나의 역할 리소스만 있으면 됩니다. 이 리소스는 모든 리전에 배치되고 다른 모든 지원 스택에서 참조됩니다.

  • 리전 Amazon GameLift 스택 - 이 스택에는 빌드 또는 스크립트, 플릿 세트 및 별칭을 포함하여 게임이 배포되는 각 리전에 있어야 하는 Amazon GameLift 리소스가 포함되어 있습니다. 는 S3 버킷 위치에 파일이 있는 빌드 또는 스크립트 리소스를 AWS CloudFormation 생성하고 빌드 또는 스크립트를 하나 이상의 플릿 리소스에 배포합니다. 각 플릿에는 해당 별칭이 있어야 합니다. 게임 세션 대기열은 플릿 별칭 중 일부 또는 전부를 참조합니다. 이러한 유형의 스택을 설명하도록 하나의 템플릿을 유지 관리하고 이 템플릿을 사용하여 모든 리전에서 동일한 리소스 세트를 생성할 수 있습니다.

  • 글로벌 Amazon GameLift 스택 - 이 스택에는 게임 세션 대기열과 매치메이킹 리소스가 포함되어 있습니다. 이러한 리소스는 어떠한 리전에든 위치할 수 있으며 일반적으로 동일한 리전에 배치됩니다. 대기열은 어떠한 리전에든 위치하는 플릿 또는 별칭을 참조할 수 있습니다. 추가 대기열을 다른 리전에 배치하려면 추가 글로벌 스택을 생성합니다.

아래 다이어그램은 여러 AWS 리전에 리소스를 배포하기 위한 멀티스택 구조를 보여줍니다. 첫 번째 다이어그램은 단일 게임 세션 대기열의 구조를 보여 줍니다. 두 번째 다이어그램은 여러 개의 대기열이 있는 구조를 보여 줍니다.

리전별 및 글로벌 AWS CloudFormation 리소스를 포함하는 리소스 스택이 포함된 다이어그램입니다.
다이어그램은 리전 AWS CloudFormation 스택이 대기열과 같은 글로벌 리소스를 공유하는 방법을 보여줍니다.

빌드 업데이트

Amazon GameLift 빌드는 변경할 수 없으며 빌드와 플릿 간의 관계도 변경할 수 없습니다. 따라서 새로운 게임 빌드 파일 세트를 사용하도록 호스팅 리소스를 업데이트할 때 다음과 같은 작업이 필요합니다.

  • 새 파일 세트를 사용하여 새 빌드를 생성합니다(교체).

  • 새 게임 빌드를 배포할 새 플릿 세트를 생성합니다(교체).

  • 새 플릿을 가리키도록 별칭을 리디렉션합니다(중단 없이 업데이트).

자세한 정보에 대해서는AWS CloudFormation 사용 설명서의 스택 리소스의 업데이트 동작을 참조하세요.

자동으로 빌드 업데이트 배포

관련 빌드, 플릿 및 별칭 리소스가 포함된 스택을 업데이트할 때 기본 AWS CloudFormation 동작은 이러한 단계를 순서대로 자동으로 수행하는 것입니다. 먼저 새 빌드 파일을 새 S3 위치에 업로드하여 이 업데이트를 트리거합니다. 그런 다음 새 S3 위치를 가리키도록 AWS CloudFormation 빌드 템플릿을 수정합니다. 스택을 새 S3 위치로 업데이트하면 다음 AWS CloudFormation 시퀀스가 트리거됩니다.

  1. S3에서 새 파일을 검색하고, 파일을 검증하고, 새 Amazon GameLift 빌드를 생성합니다.

  2. 플릿 템플릿에서 빌드 참조를 업데이트합니다. 그러면 새 플릿 생성이 트리거됩니다.

  3. 새 플릿이 활성화된 후 별칭에서 플릿 참조를 업데이트합니다. 그러면 별칭이 새 플릿을 대상으로 하도록 업데이트가 트리거됩니다.

  4. 이전 플릿을 삭제합니다.

  5. 이전 빌드를 삭제합니다.

게임 세션 대기열이 플릿 별칭을 사용하는 경우 별칭이 업데이트되는 즉시 플레이어 트래픽은 새 플릿으로 자동으로 전환됩니다. 게임 세션이 종료되면 기존 플릿에서 플레이어가 점차적으로 드레이닝됩니다. Auto-Scaling은 플레이어 트래픽의 변동에 따라 각 플릿 세트에서 인스턴스를 추가하고 제거하는 작업을 처리합니다. 또는 원하는 초기 인스턴스 수를 지정하여 전환을 위해 빠르게 확장하고 나중에 Auto-Scaling을 활성화할 수 있습니다.

리소스를 삭제하는 대신 AWS CloudFormation 보존할 수도 있습니다. 자세한 내용은 참조RetainResources의 섹션을 참조하세요. AWS CloudFormation API

수동으로 빌드 업데이트 배포

새 플릿이 플레이어를 위해 실행되는 시간을 더 세밀하게 제어하려는 경우 몇 가지 옵션을 선택할 수 있습니다. Amazon GameLift 콘솔 또는 를 사용하여 별칭을 수동으로 관리하도록 선택할 수 있습니다CLI. 또는 빌드와 플릿을 교체하도록 빌드 템플릿을 업데이트하는 대신, 두 번째 빌드 및 플릿 정의 세트를 템플릿에 추가할 수 있습니다. 템플릿을 업데이트하면 에서 두 번째 빌드 리소스와 해당 플릿을 AWS CloudFormation 생성합니다. 기존 리소스는 교체되지 않으므로 삭제되지 않으며 별칭은 여전히 원래 플릿을 가리킵니다.

이 접근 방식의 주요 장점은 유연성을 제공한다는 것입니다. 빌드의 새 버전에 대해 별도의 리소스를 생성하고, 새 리소스를 테스트한 다음, 새 플릿을 플레이어에게 실행하는 시점을 제어할 수 있습니다. 잠재적인 단점은 짧은 기간 동안 각 리전에서 두 배 정도 많은 리소스가 필요하다는 것입니다.

다음 다이어그램에서 이 프로세스를 보여 줍니다.

다이어그램은 AWS CloudFormation 스택을 사용하여 게임 서버 빌드를 업데이트하는 방법을 보여줍니다.

롤백 작동 방식

리소스 업데이트를 실행할 때 한 단계가 성공적으로 완료되지 않으면 AWS CloudFormation 에서 자동으로 롤백이 시작됩니다. 이 프로세스는 각 단계를 순차적으로 반전하여 새로 생성된 리소스를 삭제합니다.

롤백을 수동으로 트리거해야하는 경우 빌드 템플릿의 S3 위치 키를 다시 원래 위치로 변경하고 스택을 업데이트합니다. 새 Amazon GameLift 빌드와 플릿이 생성되고 플릿이 활성화된 후 별칭이 새 플릿으로 전환됩니다. 별칭을 따로 관리하는 경우 새 플릿을 가리키도록 별칭을 전환해야 합니다.

실패하거나 중단되는 롤백을 처리하는 방법에 대한 자세한 내용은AWS CloudFormation 사용 설명서의 업데이트 롤백 계속하기를 참조하세요.