Amazon GameLift 컨테이너 플릿 설계 - 아마존 GameLift

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

Amazon GameLift 컨테이너 플릿 설계

이 설명서는 공개 프리뷰 릴리스에 있는 기능을 위한 것입니다. 내용은 변경될 수 있습니다.

이 주제에서는 Amazon GameLift 컨테이너 플릿을 설정할 때 내리는 주요 결정을 설명합니다. 의사 결정은 컨테이너, 컨테이너 그룹 및 플릿에 대한 설정을 구성하는 방법에 영향을 줍니다.

플릿 컨테이너 구조를 설계하세요.

첫 번째 단계로 다음을 포함하여 게임 서버를 호스팅하는 데 필요한 소프트웨어와 리소스를 파악하세요.

  • 게임 서버 애플리케이션. 호스팅용 Amazon GameLift 기능 (서버 SDK 버전 5+ 포함) 과 애플리케이션을 통합해야 합니다. 게임을 Amazon과 통합하세요 GameLift를 참조하세요.

  • 아마존 GameLift 에이전트. 이 컴퓨팅 에이전트는 Amazon GameLift 서비스와의 통신을 유지하고 모든 게임 서버 프로세스의 수명 주기를 관리합니다. 자세한 내용은 게임 서버 및 Amazon GameLift 에이전트를 참조하세요.

  • 필요에 따른 추가 소프트웨어 및 리소스. 여기에는 게임 서버 애플리케이션을 실행하는 데 필요한 소프트웨어가 포함될 수 있습니다. 로깅 및 모니터링, 보안, 콘텐츠 전송, 데이터 동기화에는 공통 지원 소프트웨어가 사용됩니다.

다음으로 Amazon GameLift 컨테이너 플릿을 위한 소프트웨어와 리소스를 구성하는 방법을 결정하십시오. GameLift Amazon은 컨테이너 그룹을 사용하여 컨테이너를 구성합니다. 플릿에는 항상 하나의 복제 컨테이너 그룹이 있으며 선택적으로 데몬 컨테이너 플릿을 포함할 수 있습니다. 자세한 내용은 컨테이너 플릿 구성 요소를 참조하세요.

  • 먼저 복제 컨테이너 그룹을 설계하세요. 다음 지침을 참고하세요.

    • 게임 서버 애플리케이션과 Amazon GameLift Agent를 동일한 컨테이너로 번들하십시오. 이 컨테이너를 복제본 그룹의 유일한 필수 컨테이너로 만드십시오.

    • 게임 서버의 다른 모든 소프트웨어를 컨테이너로 정리하세요. 모든 항목을 레플리카 그룹의 단일 컨테이너에 넣을 수도 있습니다. 또는 사이드카 컨테이너를 하나 이상 생성할 수도 있습니다. 사이드카를 사용하는 몇 가지 이유는 다음과 같습니다.

      • 개별 소프트웨어의 시작/종료 시퀀스 설정하기. 소프트웨어를 별도의 컨테이너에 배치하고 컨테이너 간에 종속성을 설정하여 이를 달성할 수 있습니다.

      • 메모리 및 CPU 사용에 대한 컨테이너별 제한을 설정합니다.

      • 시작 명령, 진입점, 작업 디렉터리, 환경 변수 또는 상태 확인과 같은 각 컨테이너에 대해 서로 다른 컨테이너 구성 설정을 지정합니다.

  • 플릿에 데몬 컨테이너 그룹이 필요한지 여부를 결정하십시오. 다음을 고려하세요.

    • 데몬 컨테이너는 일반적으로 백그라운드 또는 모니터링 프로세스를 실행하는 데 사용됩니다.

    • 데몬 그룹의 컨테이너는 플릿 인스턴스에 복제되지 않습니다. 즉, 데몬 그룹의 컨테이너는 복제본 컨테이너 그룹과 함께 확장되지 않습니다.

    • 데몬 그룹에는 컨테이너가 여러 개 있을 수 있습니다. 데몬 그룹의 모든 컨테이너를 필수 컨테이너로 지정할 수 있습니다.

리소스 제한 설정

각 컨테이너 그룹에 대해 그룹이 소프트웨어를 실행하는 데 필요한 메모리와 CPU 양을 결정합니다. GameLift Amazon은 이 정보를 사용하여 컨테이너 그룹의 리소스를 관리합니다. 또한 이 정보를 사용하여 플릿 이미지가 보유할 수 있는 복제 컨테이너 그룹 수를 계산합니다. 개별 컨테이너에 대한 한도를 설정할 수도 있습니다.

컨테이너에 대한 선택적 제한을 설정합니다.

컨테이너별 리소스 제한을 설정하면 개별 컨테이너가 그룹의 리소스를 사용하는 방법을 더 잘 제어할 수 있습니다. 컨테이너별 제한을 설정하지 않으면 그룹 내 모든 컨테이너가 그룹 리소스를 공유합니다. 공유를 통해 필요한 곳에 리소스를 더 유연하게 사용할 수 있습니다. 또한 프로세스가 서로 경쟁하여 컨테이너 고장으로 이어질 가능성도 커집니다.

모든 컨테이너에 대해 다음 ContainerDefinition 속성 중 하나를 설정하십시오.

  • SoftLimit(메모리) - 컨테이너 전용으로 최소 메모리 용량을 예약합니다. 컨테이너는 항상 예약된 양만큼 사용할 수 있습니다. 추가 리소스를 사용할 수 있는 경우 언제든지 이 최소값을 초과할 수 있습니다.

  • HardLimit(메모리) - 컨테이너의 최대 메모리 제한을 설정합니다. 컨테이너가 이 제한을 초과하면 컨테이너가 다시 시작됩니다.

  • Cpu제한 — 컨테이너 전용으로 최소 CPU 리소스를 예약합니다. 컨테이너는 항상 예약된 양만큼 사용할 수 있습니다. 추가 리소스를 사용할 수 있는 경우 언제든지 이 최소값을 초과할 수 있습니다. (1024개의 CPU 유닛은 vCPU 1개와 동일합니다.)

컨테이너 그룹의 총 리소스 제한을 설정합니다.

각 컨테이너 그룹에 필요한 메모리 및 CPU 리소스 GameLift 양을 Amazon에 알려주세요. 목표는 게임 서버 성능을 최적화하기에 충분한 리소스를 할당하는 것입니다. GameLift Amazon은 이러한 한도를 사용하여 플릿 인스턴스에 복제 컨테이너 그룹을 패킹하는 방법을 계산합니다. 컨테이너 플릿의 인스턴스 유형을 선택할 때도 이를 사용하게 됩니다.

그룹 내 각 컨테이너의 모든 프로세스에 필요한 총 메모리와 CPU를 계산합니다. 다음을 고려하세요.

  • 컨테이너 그룹의 모든 컨테이너에서 실행되는 프로세스는 무엇입니까? 이러한 프로세스에 필요한 리소스를 합산하세요.

  • 각 컨테이너 그룹에서 몇 개의 동시 게임 서버 프로세스를 실행할 계획입니까? 이 값은 플릿의 런타임 구성의 일부로 설정하지만 여기서는 충분한 메모리를 계획해야 합니다 (런타임 구성 최적화 참조).

예상 컨테이너 그룹 요구 사항에 따라 다음 ContainerGroupDefinition 속성을 설정합니다.

  • TotalMemoryLimit— 컨테이너 그룹의 최대 메모리 제한을 설정합니다. 그룹의 모든 컨테이너는 할당된 메모리를 공유합니다. 개별 컨테이너 제한을 설정하는 경우 총 메모리 한도는 다음과 같아야 합니다.

    • 모든 컨테이너 소프트 메모리 한도의 합계보다 크거나 같음

    • 그룹 내 컨테이너의 최대 하드 메모리 제한과 같거나 큽니다.

  • TotalCpuLimit — 컨테이너 그룹의 최대 CPU 제한을 설정합니다. 그룹의 모든 컨테이너는 할당된 CPU 리소스를 공유합니다. 개별 컨테이너 제한을 설정하는 경우 총 CPU 한도는 다음과 같아야 합니다.

    • 모든 컨테이너 CPU 한도의 합계와 같거나 더 큽니다. 가장 좋은 방법은 이 값을 컨테이너 CPU 제한 합계의 두 배로 설정하는 것입니다.

예제 시나리오

다음 세 개의 컨테이너로 복제본 컨테이너 그룹을 정의한다고 가정해 보겠습니다.

  • 컨테이너 A는 필수 복제 컨테이너입니다. 게임 서버 프로세스와 Amazon GameLift Agent를 실행합니다. 게임 서버 하나에 필요한 리소스 요구 사항은 512MiB 및 1024 CPU로 추정됩니다. 컨테이너에서 10개의 서버 프로세스를 실행하도록 할 계획입니다. 이 컨테이너는 가장 중요한 소프트웨어를 실행하므로 소프트 메모리 예비를 6144MiB로 설정하고 하드 메모리 제한이나 CPU 예약 한도는 설정하지 않았습니다.

  • 컨테이너 B는 리소스 요구량이 1024MiB 및 1536CPU로 추정되는 지원 소프트웨어를 실행합니다. 소프트 메모리 예약 한도는 1024MiB, 하드 메모리 제한은 2048MiB, CPU 예비 한도는 1024MiB로 설정했습니다.

  • 컨테이너 C는 중요하지 않은 로깅 및 기타 모니터링 유틸리티를 실행합니다. 하드 메모리 제한은 512MiB로, CPU 예비 한도는 512CPU로 설정했습니다.

이 정보를 사용하여 컨테이너 그룹에 대해 다음과 같은 총 한도를 설정합니다.

  • 총 메모리 제한: 7680 MiB. 이 값은 (1) 소프트 메모리 제한의 합계 (6144+1024MiB) 및 (2) 최대 하드 메모리 제한 (1024MiB) 을 초과합니다.

  • 총 CPU 제한: 13312 CPU. 이 값은 CPU 제한 (1024+512 CPU) 의 합계를 초과합니다.

필수 컨테이너를 지정하세요.

각 용기에 대해 해당 용기를 필수 또는 비필수 용기로 지정하십시오. 모든 컨테이너 그룹에는 필수 컨테이너가 하나 이상 있어야 합니다. 필수 컨테이너는 게임 서버 호스팅과 같은 컨테이너 그룹의 중요한 작업을 수행합니다. 필수 컨테이너는 항상 실행 중이어야 합니다. 실패하면 전체 컨테이너 그룹이 다시 시작됩니다.

  • 플릿의 복제 컨테이너 그룹에는 정확히 하나의 필수 컨테이너가 있을 수 있습니다. 이 컨테이너는 Amazon GameLift Agent를 실행하고 해당 컨테이너는 관리하는 게임 서버 프로세스를 실행합니다.

  • 플릿에 데몬 컨테이너 그룹이 있는 경우 필수 컨테이너를 여러 개 지정할 수 있습니다. 컨테이너 장애가 발생하여 컨테이너 그룹이 다시 시작되도록 하려면 데몬 컨테이너를 필수로 설정하세요.

각 컨테이너에 대해 ContainerDefinition 속성을 true 또는 Essential false로 설정합니다.

네트워크 연결을 구성합니다.

외부 트래픽이 컨테이너 플릿의 모든 컨테이너에 연결되도록 네트워크 액세스를 설정할 수 있습니다. 예를 들어 게임 클라이언트가 게임에 참여하고 플레이할 수 있도록 게임 서버 프로세스를 실행하는 컨테이너에 네트워크 연결을 설정해야 합니다. 게임 클라이언트는 포트와 IP 주소를 사용하여 게임 서버에 연결합니다.

컨테이너 플릿에서는 클라이언트와 서버 간의 연결이 직접적이지 않습니다. 내부적으로 컨테이너의 프로세스는 컨테이너 포트에서 수신합니다. 외부에서는 들어오는 트래픽이 연결 포트를 사용하여 플릿 인스턴스에 연결됩니다. Amazon은 내부 컨테이너 포트와 외부 연결 포트 간의 매핑을 GameLift 유지 관리하여 들어오는 트래픽이 인스턴스의 올바른 프로세스로 라우팅되도록 합니다.

GameLift Amazon은 네트워크 연결을 위한 추가 제어 계층을 제공합니다. 각 컨테이너 플릿에는 각 외부 연결 포트에 대한 액세스를 제어할 수 있는 인바운드 권한 설정이 있습니다. 기존 플릿의 포트 구성을 변경할 수는 없지만 인바운드 권한을 조정하여 필요에 따라 액세스를 허용하거나 제한할 수 있습니다. 예를 들어 모든 연결 포트에 대한 권한을 제거하여 플릿 컨테이너에 대한 모든 액세스를 차단할 수 있습니다.

네트워킹 포트를 사용하면 외부 트래픽을 컨테이너 플릿에서 실행 중인 프로세스에 연결할 수 있습니다. EC2 인바운드 권한을 사용하면 트래픽이 플릿의 각 인스턴스에 열려 있는 연결 포트에 액세스할 수 있습니다. 연결 포트는 컨테이너 포트에 내부적으로 매핑되며, 컨테이너 포트는 개별 프로세스에 할당됩니다.
컨테이너 포트 범위를 설정합니다.

외부 액세스가 필요한 모든 프로세스에 충분한 컨테이너 포트를 포함하는 컨테이너 정의를 구성하십시오. 일부 컨테이너에는 포트가 필요하지 않습니다. 다른 곳에는 필요한 모든 프로세스에 포트를 할당할 수 있을 만큼 충분한 포트가 있어야 합니다.

게임 서버를 실행하는 필수 복제 컨테이너 그룹에는 동시에 실행되는 모든 게임 서버 프로세스 (플릿에 구성된 대로) 를 위한 포트가 필요합니다. RuntimeConfiguration 게임 서버 프로세스는 할당된 포트에서 수신 대기하고 GameLift Amazon에 보고합니다.

컨테이너 그룹 정의를 생성할 때 네트워크 액세스가 필요한 각 컨테이너의 컨테이너 포트 범위를 정의하십시오 (참조 ContainerDefinitionInput:PortConfiguration). 포트가 필요한 각 프로세스에 포트를 할당할 수 있을 만큼 범위가 충분히 넓어야 합니다. 컨테이너의 포트 구성에서 프로세스에 포트 번호를 할당해야 합니다.

연결 포트 범위를 설정합니다.

연결 포트 세트를 사용하여 컨테이너 플릿을 구성하십시오. 연결 포트는 컨테이너를 실행하는 플릿 인스턴스에 대한 외부 액세스를 제공합니다. Amazon은 연결 포트를 GameLift 할당하고 필요에 따라 컨테이너 포트에 매핑합니다.

컨테이너 플릿을 생성할 때 연결 포트 범위를 정의하십시오 (참조 ContainerGroupsConfiguration:ConnectionPortRange). 범위에 플릿 인스턴스의 모든 컨테이너 포트에 매핑할 수 있는 충분한 포트가 있는지 확인하십시오. 필요한 최소 연결 포트를 계산하려면 다음 공식을 사용하십시오.

[Total number of container ports defined for containers in the replica container group] * [Number of replica container groups per instance] + [Total number of container ports defined for containers in the daemon container group]

가장 좋은 방법은 최소 연결 포트 수를 두 배로 늘리는 것입니다.

참고

연결 포트 수에 따라 인스턴스당 복제 컨테이너 그룹 수가 제한될 수 있습니다. 플릿에 인스턴스당 하나의 복제 컨테이너 그룹을 위한 충분한 연결 포트가 있는 경우, GameLift Amazon은 인스턴스에 여러 복제 컨테이너 그룹을 위한 충분한 컴퓨팅 파워가 있더라도 하나의 복제본 컨테이너 그룹만 배포합니다.

인바운드 권한 설정

인바운드 권한은 들어오는 트래픽에 사용할 연결 포트를 지정하여 컨테이너 플릿에 대한 외부 액세스를 제어합니다. 이 설정을 사용하여 필요에 따라 플릿의 네트워크 액세스를 켜거나 끌 수 있습니다.

컨테이너 플릿을 생성할 때 인바운드 권한 세트를 정의하십시오 (참조: CreateFleet EC2). InboundPermissions 플릿의 연결 포트 설정에 있는 일부 또는 모든 값을 포함하도록 인바운드 권한 포트 속성을 설정합니다. 기존 컨테이너 플릿의 인바운드 권한을 변경하려면 를 호출하십시오. UpdateFleetPortSettings

예제 시나리오

이 예제는 세 가지 네트워크 연결 속성을 모두 설정하는 방법을 보여줍니다.

  • 플릿의 레플리카 컨테이너 그룹에는 게임 서버 프로세스를 실행하는 컨테이너가 1개 있습니다. 런타임 구성은 컨테이너에 10개의 동시 게임 서버 프로세스를 실행하도록 지시합니다.

    레플리카 컨테이너 그룹 정의에서는 이 컨테이너의 PortConfiguration 파라미터를 다음과 같이 설정합니다.

    "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 10, "ToPort": 20, "Protocol": "TCP"} ] }
  • 또한 플릿에는 컨테이너 1개로 구성된 데몬 컨테이너 그룹이 있습니다. 네트워크 액세스가 필요한 프로세스가 하나 있습니다. 데몬 컨테이너 그룹 정의에서 이 컨테이너의 PortConfiguration 파라미터를 다음과 같이 설정합니다.

    "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 25, "ToPort": 25, "Protocol": "TCP"} ] }
  • 플릿은 플릿 인스턴스당 3개의 복제 컨테이너 그룹으로 구성되어 있습니다. 이 정보가 제공되면 다음 공식을 사용하여 필요한 연결 포트 수를 계산할 수 있습니다.

    • 최소: 31개 포트 [10개의 복제본 컨테이너 포트* 인스턴스당 3개의 복제본 컨테이너 그룹 + 1개의 데몬 컨테이너 포트]

    • 모범 사례: 62개 포트 [최소 포트* 2]

    컨테이너 플릿을 생성할 때 ConnectionPortRange 파라미터를 다음과 ContainerGroupsConfiguration 같이 설정합니다.

    "ConnectionPortRange": { "FromPort": 1010, "ToPort": 1071 }
  • 사용 가능한 모든 연결 포트에 대한 액세스를 허용하고 싶습니다. 컨테이너 플릿을 생성할 때 EC2InboundPermissions 파라미터를 다음과 같이 설정합니다.

    "EC2InboundPermissions": [ {"FromPort": 1010, "ToPort": 1071, "IpRange": "10.24.34.0/23", "Protocol": "TCP"} ]

컨테이너 상태 점검 설정

터미널 장애가 발생하고 실행이 중지되면 컨테이너가 자동으로 다시 시작됩니다. 컨테이너가 필수인 경우 전체 컨테이너 그룹이 다시 시작됩니다.

컨테이너 상태를 측정하기 위한 추가 사용자 지정 기준을 정의하고 상태 점검을 사용하여 해당 기준을 테스트할 수 있습니다. 컨테이너 상태 확인을 설정하려면 docker 컨테이너 이미지 또는 컨테이너 정의에서 정의하면 됩니다. 컨테이너 정의에서 상태 확인을 설정하면 컨테이너 이미지의 모든 설정보다 우선합니다.

다음과 같이 컨테이너 유형에 따라 선택적 상태 확인을 설정합니다.

  • 필수 복제 컨테이너의 경우 상태 확인을 구성하지 마세요. Amazon GameLift Agent는 이 컨테이너의 상태 보고를 자동으로 처리합니다.

  • 필수가 아닌 복제 컨테이너 및 모든 데몬 컨테이너의 경우 선택적으로 상태 확인 파라미터를 설정할 수 있습니다.

컨테이너 상태 점검을 위해 다음 ContainerDefinition 속성을 설정합니다.

  • Command— 컨테이너 상태의 일부 측면을 확인하는 명령을 제공합니다. 상태를 측정하는 데 사용할 기준을 결정합니다. 명령의 종료 값은 1 (비정상) 또는 0 (정상) 이어야 합니다.

  • StartPeriod— 상태 점검 실패 횟수 집계가 시작되기 전의 초기 지연 시간을 지정합니다. 이 지연으로 인해 컨테이너는 프로세스를 부트스트랩할 시간이 생깁니다.

  • Interval— 상태 점검 명령의 실행 빈도를 결정합니다. 컨테이너 장애를 얼마나 빨리 감지하고 해결하고 싶으신가요?

  • Timeout— 상태 점검 명령을 다시 시도하기 전에 성공 또는 실패를 얼마나 기다려야 할지 결정하십시오. 상태 점검 명령을 완료하는 데 시간이 얼마나 걸립니까?

  • Retries— 실패를 등록하기 전에 상태 점검 명령을 몇 번이나 다시 시도해야 합니까?

컨테이너 종속성 설정

각 컨테이너 그룹 내에서 컨테이너 상태에 따라 컨테이너 간 종속성을 설정할 수 있습니다. 종속성은 다른 컨테이너의 상태에 따라 종속 컨테이너가 시작되거나 종료될 수 있는 시기에 영향을 줍니다.

종속성의 주요 사용 사례는 컨테이너 그룹의 시작 및 종료 시퀀스를 만드는 것입니다.

예를 들어 컨테이너 B와 C가 시작되기 전에 컨테이너 A가 먼저 시작되고 성공적으로 완료되기를 원할 수 있습니다. 이를 위해서는 먼저 컨테이너 A가 성공적으로 완료되어야 한다는 조건으로 컨테이너 A에 컨테이너 B에 대한 종속성을 생성하십시오. 그런 다음 동일한 조건으로 컨테이너 A에 컨테이너 C의 종속성을 생성합니다. 종료 시 시작 순서는 역순으로 발생합니다.

컨테이너 플릿 구성

컨테이너 플릿을 생성할 때는 다음 결정 사항을 고려하십시오. 이러한 요점은 대부분 컨테이너 아키텍처 및 구성에 따라 달라집니다.

플릿을 어디에 배치할지 결정하세요.

일반적으로 지연 시간을 최소화하기 위해 플레이어 근처에 플릿을 지리적으로 배치하는 것이 좋습니다. Amazon이 GameLift 지원하는 모든 Each 서버에 컨테이너 플릿을 배포할 수 있습니다. AWS 리전 동일한 게임 서버를 추가 지리적 위치에 배포하려는 경우 Local Zones를 포함한 AWS 리전 원격 위치를 플릿에 추가할 수 있습니다. 여러 위치에 있는 플릿의 경우 각 플릿 위치에서 용량을 독립적으로 조정할 수 있습니다. 지원되는 플릿 위치에 대한 자세한 내용은 을 참조하십시오아마존 GameLift 호스팅 위치.

플릿의 인스턴스 유형과 크기를 선택합니다.

Amazon은 다양한 Amazon EC2 인스턴스 유형을 GameLift 지원하며, 모두 컨테이너 플릿과 함께 사용할 수 있습니다. 인스턴스 유형, 가용성 및 가격은 위치에 따라 다릅니다. Amazon GameLift 콘솔 (리소스, 인스턴스 및 서비스 할당량 아래) 에서 위치별로 필터링된 지원되는 인스턴스 유형 목록을 볼 수 있습니다.

인스턴스 유형을 선택할 때는 먼저 인스턴스 패밀리를 고려하십시오. 인스턴스 패밀리는 CPU, 메모리, 스토리지 및 네트워킹 기능의 다양한 조합을 제공합니다. EC2 인스턴스 패밀리에 대한 자세한 정보를 확인하십시오. 각 패밀리 내에서 다양한 인스턴스 크기 중에서 선택할 수 있습니다. 인스턴스 크기를 선택할 때는 다음 문제를 고려하십시오.

  • 워크로드를 지원할 수 있는 최소 인스턴스 크기는 얼마입니까? 이 정보를 사용하여 너무 작은 인스턴스 유형을 제거하십시오.

  • 컨테이너 아키텍처에 적합한 인스턴스 유형 크기는 무엇입니까? 공간 낭비를 최소화하면서 복제 컨테이너 그룹의 여러 복사본을 수용할 수 있는 크기를 선택하는 것이 가장 좋습니다.

  • 게임에 적합한 스케일링 세분성은 어느 정도인가요? 플릿 용량 스케일링에는 인스턴스 추가 또는 제거가 포함되며, 각 인스턴스는 특정 수의 게임 세션을 호스팅할 수 있는 능력을 나타냅니다. 각 인스턴스에서 추가 또는 제거하려는 용량을 고려하세요. 플레이어 수요가 분마다 수천 개씩 달라진다면 수백 또는 수천 개의 게임 세션을 호스팅할 수 있는 초대형 인스턴스를 사용하는 것이 합리적일 수 있습니다. 이와는 대조적으로, 더 작은 인스턴스 유형으로 좀 더 세분화된 크기 조정 제어를 선호할 수도 있습니다.

  • 규모에 따라 비용을 절감할 수 있나요? 특정 인스턴스 유형의 비용은 가용성으로 인해 위치별로 다를 수 있습니다.

런타임 구성을 최적화하세요.

플릿의 런타임 구성은 게임 세션 호스팅을 위한 서버 프로세스를 실행하는 방법에 대한 일련의 지침입니다. 이 지침은 플릿의 각 복제 컨테이너 그룹에서 Amazon GameLift Agent에 의해 구현됩니다.

플릿의 런타임 구성에 따라 각 복제 컨테이너 그룹에서 동시에 실행되는 서버 프로세스 수가 결정됩니다. 이 설정은 컨테이너 그룹 리소스 한도를 계산하는 방법과 플릿의 인스턴스 유형을 선택하는 방법에 영향을 줍니다. 플릿을 설계할 때는 이 세 가지 요소의 균형을 맞춰야 합니다.

런타임 구성 사용 방법에 대한 자세한 내용은 을 참조하십시오Amazon GameLift가 게임 서버를 시작하는 방법 관리.

기타 선택적 플릿 설정을 설정합니다.

컨테이너 플릿을 구성할 때 다음과 같은 선택적 기능을 사용할 수 있습니다.

  • 다른 AWS 리소스에 액세스할 수 있도록 게임 서버를 설정합니다. 플릿에서 다른 AWS 리소스와 통신를 참조하세요.

  • 스케일 다운 이벤트 중에 활성 플레이어와의 게임 세션이 조기에 종료되지 않도록 보호하세요.

  • 제한된 시간 내에 한 개인이 플릿에서 생성할 수 있는 게임 세션의 수를 제한하십시오.