기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon GameLift가 게임 서버를 시작하는 방법 관리
인스턴스당 여러 게임 서버 프로세스를 실행하도록 관리형 EC2 플릿의 런타임 구성을 설정할 수 있습니다. 이렇게 하면 호스팅 리소스가 더 효율적으로 사용됩니다.
플릿의 여러 프로세스 관리 방식
Amazon GameLift는 플릿의 런타임 구성을 사용하여 각 인스턴스에서 실행할 프로세스의 유형과 수를 결정합니다. 런타임 구성에는 게임 서버 실행 파일 하나를 나타내는 서버 프로세스 구성이 하나 이상 포함되어 있습니다. 게임과 관련된 다른 유형의 프로세스를 실행하기 위해 추가 서버 프로세스 구성을 정의할 수 있습니다. 각 서버 프로세스 구성에는 다음 정보가 포함됩니다.
-
게임 빌드에서 실행 파일의 파일 이름 및 경로
-
(선택 사항) 시작 시 프로세스에 전달할 파라미터
-
동시에 실행할 프로세스 수
플릿의 인스턴스가 활성화되면 런타임 구성에 정의된 서버 프로세스의 집합이 시작됩니다. 여러 프로세스를 사용하는 경우 Amazon GameLift는 각 프로세스의 시작을 시차를 두고 진행합니다. 서버 프로세스의 수명은 제한되어 있습니다. 작업이 끝나면 Amazon GameLift는 런타임 구성에 정의된 서버 프로세스의 수와 유형을 유지하기 위해 새로운 프로세스를 시작합니다.
언제든 서버 프로세스 구성을 추가, 변경 또는 삭제하여 런타임 구성을 변경할 수 있습니다. 각 인스턴스는 플릿의 런타임 구성에 대한 업데이트를 정기적으로 확인하여 변경 사항을 구현합니다. Amazon GameLift가 런타임 구성 변경을 채택하는 방식은 다음과 같습니다.
-
인스턴스는 Amazon GameLift에 최신 버전의 런타임 구성을 위한 요청을 전송합니다.
-
인스턴스는 활성 프로세스를 최신 런타임 구성과 비교한 후, 다음을 수행합니다.
-
업데이트된 런타임 구성에서 서버 프로세스 유형을 제거하면, 이 유형의 활성 서버 프로세스는 종료될 때까지 계속 실행됩니다. 인스턴스는 이러한 서버 프로세스를 대체하지 않습니다.
-
업데이트된 런타임 구성에서 서버 프로세스 유형에 대한 동시 프로세스 수를 줄이면, 이 유형의 초과 서버 프로세스는 종료될 때까지 계속 실행됩니다. 인스턴스는 이러한 초과 서버 프로세스를 대체하지 않습니다.
-
업데이트된 런타임 구성에서 새 서버 프로세스 유형을 추가하거나 기존 유형에 대한 동시 프로세스를 증가시키면, 인스턴스는 최대 Amazon GameLift를 기준으로 새 서버 프로세스를 시작합니다. 이 경우 기존 프로세스가 종료되면 인스턴스가 새 서버 프로세스를 시작합니다.
-
여러 프로세스에 대한 플릿 최적화
플릿에서 여러 프로세스를 사용하려면 다음을 수행합니다.
-
플릿에 배포하려는 게임 서버 실행 파일이 포함된 빌드를 생성한 다음 Amazon GameLift에 빌드를 업로드합니다. 빌드의 모든 게임 서버는 동일한 플랫폼에서 실행되어야 하며 Amazon GameLift Server SDK를 사용해야 합니다.
-
하나 이상의 서버 프로세스 구성과 여러 개의 동시 프로세스로 이루어진 런타임 구성을 생성합니다.
-
게임 클라이언트를 AWS SDK 버전 2016-08-04 이상과 통합합니다.
플릿 성능을 최적화하려면 다음을 수행하는 것이 좋습니다.
-
서버 프로세스 종료 시나리오를 처리하여 Amazon GameLift가 프로세스를 효율적으로 재활용할 수 있도록 합니다. 예:
-
서버 API
ProcessEnding()
을 호출하는 게임 서버 코드에 종료 절차를 추가합니다. -
게임 서버 코드에
OnProcessTerminate()
콜백 함수를 구현하여 Amazon GameLift의 종료 요청을 처리합니다.
-
-
Amazon GameLift가 비정상 서버 프로세스가 종료하고 다시 시작하는지 확인합니다. 게임 서버 코드에
OnHealthCheck()
콜백 함수를 구현하여 상태를 Amazon GameLift에 다시 보고합니다. Amazon GameLift는 3개의 연속된 보고서에서 비정상으로 보고된 서버 프로세스를 자동으로 종료합니다.OnHealthCheck()
를 구현하지 않으면, 프로세스가 통신에 응답하지 않는 한 Amazon GameLift는 서버 프로세스를 정상이라고 가정합니다.
인스턴스당 프로세스 수 선택
인스턴스에서 실행할 동시 프로세스 수를 결정할 때 다음과 같이 유념해야 합니다.
-
Amazon GameLift는 각 인스턴스에 지정할 수 있는 최대 동시 프로세스 수를 제한합니다. 플릿의 서버 프로세스 구성에 대한 모든 동시 프로세스의 합계는 이 할당량을 초과할 수 없습니다.
-
허용 가능한 성능 수준을 유지하려면 Amazon EC2 인스턴스 유형으로 동시에 실행할 수 있는 프로세스 수를 제한할 수 있습니다. 게임에 대해 다양한 구성을 테스트하여 선호하는 인스턴스 유형에서 올바른 프로세스 수를 찾습니다.
-
Amazon GameLift는 구성된 전체 프로세스 수보다 많은 동시 프로세스를 실행하지 않습니다. 즉, 이전 런타임 구성에서 새 구성으로의 전환이 점진적으로 이루어질 수 있습니다.