할당 TTL
Understand how allocation time to live prevents servers from remaining allocated indefinitely.
읽는 시간 1분최근 업데이트: 21일 전
할당 TTL(Time to Live)은 할당의 최대 수명을 정의하는 플릿 레벨의 설정으로, 주로 대기 상태(idle)로 남아 있는 할당된 게임 서버를 유지하는 역할을 합니다. 플레이어가 게임 세션에 참여하거나 게임 세션에서 나갈 때 게임 서버는 새로운 연결을 허용할 수 있도록 활성화 상태를 유지해야 합니다. 게임 서버가 할당된 채 플레이어 연결 없이 일정 시간(할당 TTL)이 지나면 게임 서버를 종료해도 무방한 것으로 간주됩니다. 설정한 할당 TTL 값에 따라 플릿에서 사용하는 리소스뿐 아니라 플릿과 연관된 비용이 대폭 증가하거나 감소할 수 있습니다. 지속적인 경험이 필요하지 않은 게임은 기본값을 훨씬 넘겨서까지 할당의 최대 수명을 연장할 필요가 거의 없으므로 큰 문제 없이 플릿이 사용하는 리소스를 줄일 수 있습니다. 반면, 지속적인 경험을 제공하는 게임은 플레이어가 데이터 손실에 대한 걱정 없이 오랜 시간 게임 서버에 드나들 수 있으므로 할당의 최대 수명을 연장하는 데 따른 이점이 있습니다.
세션 길이 관련 고려 사항
유연성과 비용의 균형을 유지하는 것이 최적의 할당 TTL입니다. 비활성 할당이 오래 지속될수록 호스팅 비용이 증가합니다. 수명이 짧은 세션을 사용하며 영구적인 데이터가 없는 게임은 몇 분에서 몇 시간에 이르는 할당 TTL로도 원활하게 운영됩니다. 그러나 지속적인 가상 경험을 제공하는 게임이나 기타 애플리케이션은 며칠에서 몇 개월 혹은 그보다도 긴 할당 TTL이 필요할 수 있습니다. 수명이 긴 세션과 수명이 짧은 일반 게임 세션의 특성이 서로 다르기 때문에 수명이 짧은 세션과 긴 세션을 함께 사용하면 스케일링과 게임 서버 배치의 최적화 수준이 빠르게 저하될 수 있습니다. 따라서 권장되는 베스트 프랙티스는 수명이 긴 게임 서버를 전담하는 별도의 플릿을 운영하는 것입니다.
수명이 짧은 게임 세션 | 수명이 긴 게임 세션 |
|---|---|
| 할당 TTL 값이 몇 분에서 몇 시간 사이입니다(예: 30분). | 할당 TTL 값이 며칠에서 몇 개월 사이입니다(예: 2주). |
| 일반적으로 경험이 지속적이지 않습니다. | 지속적인 플레이어 경험을 제공합니다. |
| 플레이어가 게임 세션을 떠났다가 다시 참여하는 경우가 거의 없습니다. | 플레이어가 자신의 데이터가 게임 서버에 남아 있기를 기대하며 마음대로 게임 세션에 드나들 가능성이 높습니다. |
- 게임 세션의 최대 실행 시간을 할당 TTL에 반영합니다.
- 할당 TTL을 연장하기 전에 장기간 실행된 세션으로 게임 서버 실행 파일을 테스트하여 수명이 긴 게임 세션에서 예기치 않은 메모리 누수가 발생할 가능성을 줄입니다.
- 할당 TTL을 늘리기 전에 사용자의 기대치를 고려합니다. 할당 TTL을 크게 늘리면 일부 사용자에게 혼란을 줄 수 있습니다.
- SQP(서버 쿼리 프로토콜)이나 다른 쿼리 프로토콜을 사용하여 각 게임 서버에서 마지막 활동이 언제 발생했는지 Multiplay Hosting에 알립니다. 게임 서버에 참여하는 플레이어가 없는 경우 Multiplay Hosting이 게임 서버의 할당을 해제하여 비용을 아낄 수 있습니다. 플레이어가 참여하면 카운트다운을 초기화하고, 활성 연결 수가 0으로 떨어지면 카운트다운을 재시작합니다.