Amazon GameLift Servers로 게임 출시, 2-3개월 전부터 준비하세요!
Amazon GameLift Servers를 활용한 멀티플레이어 게임 출시를 위해, 출시 2-3개월 전 준비 사항을 안내
출시 설문지 작성 및 API 한도 상향 요청을 통해, 예상 트래픽에 맞는 인프라 확보
부하 테스트를 통해 병목 지점을 파악하고, API 스로틀링(Throttling) 모니터링으로 안정적인 서비스 운영
Blue/Green 배포를 활용하여, 게임 서버 버전 업데이트를 무중단으로 진행
출시 전, Amazon GameLift Servers 한도 상향 요청의 중요성
본문은 게임 출시를 위한 핵심 요소 중 하나로, Amazon GameLift Servers의 서비스 한도(Service Limit) 증가를 강조한다. 초기 개발 단계에서 설정된 기본 한도는 실제 플레이어 부하를 감당하기에 부족하므로, 출시 2-3개월 전에 미리 설문지를 작성하고 한도 상향을 요청해야 한다.
출시 설문지(Launch Questionnaire): 인스턴스 한도 및 API 스로틀링 한도 포함
다중 위치 플릿(Multi-location Fleet): 홈 리전(Home Region) 및 추가 위치별 한도 요청
API 사용량 검토: 예상 최대 요청 비율에 맞춰 한도 설정
특히, 게임 세션 생성 플로우에서 Describe API 사용을 지양하고, 필요한 경우 중앙 집중식으로 관리해야 한다.
프로덕션 플릿 설정: 안정적인 게임 운영을 위한 핵심 요소
Amazon GameLift Servers의 프로덕션 환경 플릿은 개발 환경과 다르게 구성해야 하며, 안정적인 게임 운영을 위해 다음과 같은 사항을 고려해야 한다.
스케일링 보호 정책(Scaling Protection Policy): 플릿 축소 시 실행 중인 게임 세션 보호
대상 기반 자동 스케일링(Target-based Auto Scaling): 출시일에 대비해 충분한 여유분 확보 (30-50%)
다중 위치 플릿(Multi-location Fleet): 글로벌 플릿 리소스에 대한 단일 뷰 제공 및 운영 간소화
인스턴스 유형 다양화: 예상치 못한 플레이어 부하에 대응하기 위해 여러 인스턴스 유형 활용
지연 시간 목표와 플레이어 인구를 고려하여 위치를 선택하고, 각 위치별 스케일링 구성을 적절히 설정해야 한다.
부하 테스트와 크리티컬 패스 검증: 출시 전 필수 점검 사항
부하 테스트는 인프라의 병목 지점을 찾아내기 위한 핵심 단계이며, Amazon GameLift Servers 환경에서 다음과 같은 사항을 검증해야 한다.
인스턴스 한도 및 API 한도: 충분한 한도 설정 확인
종속성 문제: 게임 서버가 통신하는 백엔드 시스템 문제 확인
현실적인 트래픽 패턴: 실제 트래픽 패턴을 반영한 부하 테스트 수행
부하 테스트는 StartGameSessionPlacement와 같은 API를 직접 호출하거나, 실제 클라이언트와 유사한 스크립트를 사용하여 수행할 수 있다. 또한, 게임 서버뿐만 아니라 전체 중요 경로(백엔드 포함)를 테스트하여, Steam, 콘솔 로그인, 데이터베이스 등 주요 종속성(Dependency)의 실패 처리를 확인해야 한다.
API 스로틀링(Throttling) 모니터링: 안정적인 서비스 운영을 위한 필수 요소
부하 테스트 도중 Amazon GameLift Servers API 호출이 기본 프로비저닝된 한도를 초과하여 스로틀링(Throttling) 오류가 발생할 수 있으며, 이를 식별하고 대응하는 것은 운영 안정성에 매우 중요하다.
AWS CloudTrail 활용: Amazon GameLift Servers API 활동 추적, 스로틀링 식별, 사용자 정의 CloudWatch 메트릭 구성
CloudWatch 로그 설정: CloudTrail 로그를 CloudWatch 로그 그룹에 작성하고, 스로틀링 패턴을 식별하기 위한 사용자 정의 메트릭 필터 생성
CloudWatch 알람 구성: 스로틀링 임계값을 모니터링하고, 운영 팀에 알림 전송
스로틀링을 최소화하기 위해 지수 백오프(Exponential Backoff) 구현, 페이지네이션(Pagination) 사용, 캐싱(Caching) 등을 활용할 수 있다.
Blue/Green 배포: 무중단 게임 서버 업데이트 전략
Amazon GameLift Servers에서 게임 서버를 업데이트하는 권장 방법은 Blue/Green 배포이며, 이를 통해 무중단으로 서버 버전을 업데이트할 수 있다.
새로운 플릿 설정: 새로운 게임 서버 빌드 또는 컨테이너 이미지로 완전히 새로운 프로덕션 플릿 설정
스모크 테스트: 새 플릿 준비 후, 몇 개의 게임 세션으로 스모크 테스트 수행
세션 배치 전환: Amazon GameLift Servers 큐 설정에서 세션 배치를 새 플릿으로 전환
기존 플릿 종료: 모든 세션이 소진된 후 기존 플릿 종료
세션 배치에 큐를 사용하지 않는 경우, 별칭(Alias) 리소스를 활용할 수 있으며, 이전 버전으로 롤백(Rollback)도 용이하다.