아마존 GameLift FleetiQ 작동 방식 - 아마존 GameLift

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

아마존 GameLift FleetiQ 작동 방식

Amazon GameLift FleetiQ 솔루션은 Amazon EC2 및 Auto Scaling과 함께 제공되는 전체 컴퓨팅 리소스 관리 도구 세트를 보완하는 게임 호스팅 계층입니다. Amazon GameLift FleetiQ는 게임 호스팅과 관련된 다양한 기능을 제공할 뿐만 아니라 게임 호스팅에 저렴한 스팟 인스턴스를 사용할 수 있는 추가 로직 계층을 제공합니다. 이 솔루션을 사용하면 Amazon EC2 및 Auto Scaling 리소스를 직접 관리하고 필요에 따라 다른 AWS 서비스와 통합할 수 있습니다.

Amazon GameLift FleetiQ를 사용할 때는 평소와 같이 Amazon EC2 인스턴스를 시작할 준비를 합니다. 즉, 게임 서버 소프트웨어로 Amazon 머신 이미지 (AMI) 를 만들고, Amazon EC2 시작 템플릿을 생성하고, Auto Scaling 그룹의 구성 설정을 정의합니다. 하지만 Auto Scaling 그룹을 직접 생성하는 대신 Amazon GameLift EC2 및 Auto Scaling 리소스와 구성을 사용하여 Amazon FleetiQ 게임 서버 그룹을 생성합니다. 이 작업을 수행하면 Amazon GameLift FleetiQ가 게임 서버 그룹과 해당 Auto Scaling 그룹을 모두 생성하도록 요청합니다. 게임 서버 그룹은 오토 스케일링에 연결되어 있으며 오토 스케일링의 특정 부분을 관리합니다.

오토 스케일링이 생성되면 Amazon EC2 및 Auto Scaling 리소스에 대한 모든 권한을 가지게 됩니다. Auto Scaling 그룹의 구성을 변경하고, 다단계 조정 정책 또는 로드 밸런서를 추가하고, 다른 AWS 서비스와 통합할 수 있습니다. 그룹 내 인스턴스에 직접 연결할 수 있습니다. 또한 Amazon GameLift FleetiQ는 최적화 로직의 일부로 특정 Auto Scaling 그룹 속성을 정기적으로 업데이트합니다. 오토 스케일링에서 배포한 모든 인스턴스의 가용성 상태를 추적할 수 있습니다.

언제든지 게임 서버 그룹에 대한 Amazon GameLift FleetiQ 활동을 일시적으로 중단할 수 있습니다. 또한 게임 서버 그룹을 삭제하지만 해당 오토 스케일링은 유지할 수 있는 옵션도 있습니다.

아마존 GameLift FleetiQ 로직

다음 다이어그램은 Amazon GameLift FleetiQ가 게임 호스팅을 위해 Amazon EC2와 연동할 때 수행하는 역할을 보여줍니다. 주된 목표는 게임 세션을 호스팅하는 데 최고의 적정 게임 서버를 찾고 플레이어에게 최적의 게임 플레이 경험을 제공하는 것입니다. Amazon GameLift FleetiQ는 가장 저렴한 비용으로 최고의 게임 호스팅 가능성을 제공하는 리소스를 최고의 리소스로 정의합니다. Amazon GameLift FleetiQ는 두 가지 주요 방법으로 이 목표에 접근합니다. 첫 번째는 Auto Scaling 그룹에서 실행 가능한 인스턴스 유형만 허용하는 것이고, 다른 하나는 그룹의 가용 리소스 전체에 새 게임 세션을 효과적으로 배치하는 것입니다.

아마존 GameLift FleetiQ는 아마존 EC2와 함께 작동합니다.

오토 스케일링을 최적의 인스턴스 유형으로 채우기

오토 스케일링의 임무는 새 인스턴스를 시작하고 이전 인스턴스를 사용 중지하면서 호스팅 리소스 모음을 유지하고 플레이어 수요에 맞게 조정하는 것입니다. 이를 위해 오토 스케일링은 원하는 인스턴스 유형 목록을 사용합니다. Amazon GameLift FleetiQ의 역할은 이러한 원하는 인스턴스 유형의 실행 가능성을 지속적으로 확인하고 Auto Scaling 그룹의 목록을 업데이트하는 것입니다. 이 프로세스를 인스턴스 밸런싱이라고 합니다. 이를 통해 오토 스케일링의 인스턴스가 지속적으로 새로 고쳐져 현재 실행 가능한 인스턴스 유형만 항상 사용됩니다.

Amazon GameLift FleetiQ는 Auto Scaling 그룹이 최적의 인스턴스 유형을 선택하는 방식에 다음과 같은 방식으로 영향을 줍니다.

  • 스팟 및/또는 온디맨드 인스턴스의 사용량을 결정합니다. Amazon GameLift FleetiQ 게임 서버 그룹은 Auto Scaling 그룹이 스팟 및/또는 온디맨드 인스턴스를 사용하는 방식에 영향을 주는 밸런싱 전략으로 구성됩니다. 스팟 인스턴스는 Amazon GameLift FleetiQ가 게임 서버 호스팅에 대해 최소화하는 제한인 가용성의 변동과 잠재적 중단으로 인해 비용이 더 저렴합니다. 온디맨드 인스턴스는 비용이 더 많이 들지만 필요할 때 더 안정적인 가용성을 제공합니다.

  • 새 인스턴스를 실행 가능한 인스턴스 유형에서만 시작할 수 있도록 제한합니다. Amazon GameLift FleetiQ 게임 서버 그룹은 원하는 인스턴스 유형의 마스터 목록을 유지 관리합니다. 인스턴스 밸런싱 프로세스는 인스턴스 유형의 최근 가용성 및 중단률을 살펴보는 예측 알고리즘을 사용하여 목록에 있는 각 원하는 인스턴스 유형의 게임 호스팅 가능성을 지속적으로 평가합니다. 이 평가 결과, Amazon GameLift FleetiQ는 Auto Scaling 그룹의 원하는 인스턴스 유형 목록을 지속적으로 업데이트하여 현재 실행 가능한 인스턴스 유형만 포함합니다.

  • 실행 불가능한 인스턴스 유형인 기존 인스턴스에 플래그를 지정합니다. Amazon GameLift FleetiQ는 Auto Scaling 그룹에서 현재 실행 불가능한 인스턴스 유형인 기존 인스턴스를 식별합니다. 이러한 인스턴스에는 드레이닝이라는 플래그가 지정되어 있습니다. 이는 해당 인스턴스가 종료되고 새 인스턴스로 교체됨을 의미합니다. 게임 서버 보호 기능이 설정되어 있는 인스턴스의 경우 모든 활성 게임 세션이 정상적으로 종료될 때까지 종료가 연기됩니다.

저비용 스팟 인스턴스 유형의 가용성이 변동되더라도 오토 스케일링은 인스턴스를 시작하고 만료할 때 게임 호스팅에 최적화된 모음을 유지합니다. 밸런싱 활동은 활성 인스턴스가 있는 게임 서버 그룹에서만 이루어집니다. 이 프로세스의 작동 방식에 대해 스팟 밸런싱 프로세스에서 자세히 알아보십시오.

효과적으로 게임 세션 배치

Amazon GameLift FleetiQ는 게임 서버 그룹의 모든 활성 게임 서버를 추적하고 이 정보를 사용하여 새 게임 세션 및 플레이어를 위한 최적의 배치를 결정합니다.

Amazon GameLift FleetiQ가 게임 서버를 추적할 수 있도록 하려면 게임 서버 소프트웨어에서 상태를 보고해야 합니다. 사용자 지정 AMI는 각 인스턴스에서 새 게임 서버 프로세스가 시작 및 중지되는 방법을 제어합니다. 새 게임 서버가 시작되면 Amazon GameLift FleetiQ에 등록되어 게임 세션을 호스팅할 준비가 되었음을 나타냅니다. 등록 후 게임 서버는 주기적으로 자체 상태와 현재 게임 세션을 호스팅하고 있는지 여부를 보고합니다. 게임 서버가 종료되면 Amazon FleetiQ에 등록이 취소됩니다. GameLift

새 게임 세션을 시작하려면 게임 클라이언트 (또는 매치메이커 또는 기타 클라이언트 서비스) 가 Amazon GameLift FleetiQ에 게임 서버 요청을 보냅니다. Amazon GameLift FleetiQ는 사용 가능한 게임 서버를 찾아 새 게임 세션에 대해 요청하고 게임 서버 ID 및 연결 정보로 응답합니다. 그런 다음 게임 서버의 상태가 업데이트되고 들어오는 플레이어를 위한 새 게임 세션이 시작됩니다.

새 게임 세션을 호스팅할 게임 서버를 선택할 때 Amazon GameLift FleetiQ는 다음과 같은 의사 결정 프로세스를 사용하여 실행 가능한 저렴한 스팟 인스턴스로 배치를 최적화합니다.

  1. 가능한 경우 Amazon GameLift FleetiQ는 이미 다른 게임 세션을 호스팅하고 있는 인스턴스에 새 게임 세션을 배치합니다. 일부 인스턴스로 압축하고(과부하시키는 않음) 다른 인스턴스를 유휴 상태로 유지함으로써 오토 스케일링이 필요 없을 때 유휴 인스턴스를 빠르게 축소할 수 있으므로 호스팅 비용을 절감할 수 있습니다.

  2. Amazon GameLift FleetiQ는 드레이닝 플래그가 지정된 인스턴스, 즉 게임 호스팅에 적합하지 않은 인스턴스는 무시합니다. 이러한 인스턴스는 기존 게임 세션을 지원하기 위해서만 계속 실행됩니다. 이러한 인스턴스는 다른 게임 서버를 사용할 수 없으면 새 게임 세션에 사용할 수 없습니다.

  3. Amazon GameLift FleetiQ는 실행 가능한 인스턴스에서 실행 가능한 모든 게임 서버를 식별합니다.

게임 서버 그룹에 대한 게임 세션 보호 기능을 설정하여 오토 스케일링이 활발하게 실행 중인 게임 세션이 있는 인스턴스를 종료하지 못하게 할 수 있습니다.

주요 리소스 및 구성 요소

Amazon GameLift FleetiQ로 게임 호스팅 리소스를 설정하기 전에 AWS 계정에서 다음 리소스를 생성하십시오. 게임 서버 그룹을 통해 사용하기 전에 이러한 리소스를 사용하여 게임 서버 배포를 개발하고 테스트하는 것이 좋습니다.

  • Amazon Machine Image(AMI). AMI는 Amazon EC2 인스턴스로 시작하려는 특정 소프트웨어 구성을 위한 템플릿입니다. 게임 호스팅의 경우 AMI에는 운영 체제, 게임 서버 바이너리 또는 컨테이너, 게임 서버에 필요한 기타 런타임 소프트웨어가 포함됩니다. AMI 생성에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon 머신 이미지를 참조하십시오. AMI는 리전별로 고유합니다. Amazon EC2 사용 설명서의 AMI 복사에 설명된 대로 AMI를 한 리전에서 다른 리전으로 복사할 수 있습니다.

  • Amazon EC2 시작 템플릿. 시작 템플릿은 오토 스케일링에서 인스턴스를 시작하고 관리하는 것에 대한 지침을 제공합니다. 시작 템플릿은 AMI를 지정하고 적절한 인스턴스 유형 목록을 제공하며 네트워크, 보안 및 기타 속성을 설정합니다. 시작 템플릿 생성에 대한 자세한 내용은 Amazon EC2 사용 설명서의 시작 템플릿에서 인스턴스 시작을 참조하세요. 시작 템플릿은 리전별로 고유합니다.

  • AWS IAM 역할. IAM 역할은 리소스에 대한 제한된 액세스를 AWS 허용하는 권한 세트를 정의합니다. 다른 AWS 서비스와 같은 신뢰할 수 있는 주체가 역할을 맡고 권한을 상속할 수 있습니다. Amazon GameLift FleetiQ를 사용하는 경우 Amazon GameLift FleetiQ가 사용자 계정에서 Auto Scaling 그룹 및 EC2 인스턴스 리소스를 생성하고 액세스할 수 있도록 허용하는 관리형 정책이 포함된 IAM 역할을 제공해야 합니다. AWS IAM 역할은 리전별로 고유하지 않습니다.

Amazon GameLift FleetiQ는 다음 리소스를 직접 관리하고 이에 대한 직접적인 권한을 갖습니다.

  • GameLift 게임 서버 그룹. 게임 서버 그룹에는 Amazon GameLift FleetiQ가 해당 Auto Scaling 그룹과 연동하여 저렴한 게임 호스팅을 제공하는 방법을 정의하는 구성 설정이 포함되어 있습니다. 게임 서버 그룹은 리전별로 고유합니다. 지역에서 게임 서버 그룹을 생성하면 동일한 지역의 AWS 계정에 새 Auto Scaling 그룹이 자동으로 생성됩니다. 게임 서버 그룹은 오토 스케일링에 연결되어 있으며 IAM 역할을 수임함으로써 일부 설정을 관리하고 수정할 수 있는 권한을 갖습니다. 게임 서버 그룹은 수명이 긴 리소스이므로 개발자가 자주 생성할 필요가 없습니다. 게임 서버 그룹은 Auto Scaling 그룹의 인스턴스에서 호스팅되고 Amazon GameLift FleetiQ에 등록된 게임 서버를 위한 기능적 그룹화 리소스이기도 합니다.

  • GameLift 게임 서버. 게임 서버 리소스는 Amazon GameLift FleetiQ 게임 서버 그룹과 연결된 인스턴스에서 실행되는 게임 실행을 나타냅니다. 이 리소스는 게임 서버가 Amazon GameLift FleetiQ에 등록하고 해당 게임 서버가 속한 게임 서버 그룹을 식별할 때 생성됩니다. Amazon GameLift FleetiQ는 등록된 각 게임 서버의 사용 상태 및 클레임 상태를 추적하여 게임 서버 가용성을 모니터링할 수 있습니다. 게임 서버는 리전별 게임 서버 그룹과 연결되어 있다는 점에서 리전별로 고유합니다. 게임에서 새 게임 서버를 요청할 때 게임 서버 그룹 및 리전을 지정합니다.

이러한 리소스는 Amazon GameLift FleetiQ 리소스를 통해 생성됩니다. 이 리소스는 AWS 계정에서 생성되며 사용자가 완벽하게 제어할 수 있습니다.

  • Amazon EC2 오토 스케일링. 오토 스케일링은 EC2 인스턴스 모음을 시작 및 관리하고 그룹 용량을 자동으로 조정합니다. Amazon GameLift FleetiQ를 사용하면 게임 서버 그룹과 Auto Scaling 그룹 간에 관계가 있습니다. one-to-one Auto Scaling 그룹의 모든 설정을 업데이트할 수 있지만 Amazon GameLift FleetiQ는 스팟 인스턴스의 균형을 맞추어 게임 호스팅이 가능하도록 하기 위한 로직의 일환으로 특정 설정을 주기적으로 재정의하고 업데이트합니다. 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서를 참조하십시오 AutoScalingGroup. 오토 스케일링은 리전별로 고유하며 게임 서버 그룹과 동일한 리전에 생성됩니다.

  • Amazon EC2 인스턴스. 인스턴스는 클라우드의 가상 서버입니다. 인스턴스 유형에는 컴퓨팅, 메모리, 디스크 및 네트워크 리소스를 지정하는 특정 하드웨어 구성이 있습니다. 일반적으로 인스턴스는 AMI가 있는 오토 스케일링에서 시작합니다. 인스턴스는 가용성에 따라 스팟 또는 온디맨드일 수 있습니다. Amazon GameLift FleetiQ를 사용하면 인스턴스가 하나 이상의 게임 서버 프로세스를 실행하며, 각 프로세스는 여러 게임 세션을 호스팅할 수 있습니다. 인스턴스는 리전별 오토 스케일링과 연결되어 있다는 점에서 리전별로 고유합니다.