AWS 기술 블로그

Amazon GameLift Servers DDoS Protection 기능으로 플레이어 상시 보호

이 글은 AWS for Games Blog에 게시된 Introducing Amazon Gamelift Servers DDOS Protection by Adam Chernick, Dan Green, Liam McCreith, Mark Choi, Michael Morris, and Brian Schuster을 한국어 번역 및 편집하였습니다.

멀티플레이어 게임은 분산 서비스 거부(DDoS) 공격의 가장 주요한 표적 중 하나입니다. e스포츠 대회, 게임 출시 주말, 인기 스트리머의 라이브 방송 등 주목도가 높은 순간을 공격자들이 악용하여 게임플레이를 방해하고, 플레이어의 신뢰와 스튜디오의 평판에 피해를 줍니다. DDoS 공격이 서비스화되면서 이러한 공격을 실행하는 진입 장벽은 그 어느 때보다 낮아졌습니다.

최근 저희는 Amazon GameLift Servers DDoS Protection 기능을 출시했습니다. 이 기능은 실시간 멀티플레이어 게임 트래픽을 위해 특별히 설계된 사전 예방적 방어 기능으로, Amazon GameLift Servers 고객에게 추가 비용 없이 제공됩니다.

이 블로그에서는 이 기능의 핵심 개념을 살펴보고, 기존 DDoS 완화 방식과의 차이점을 설명하며, 시작하는 방법을 안내합니다.

Amazon GameLift Servers란?

Amazon GameLift Servers는 세션 기반 멀티플레이어 게임을 위한 전용 저비용 서버를 클라우드에서 배포, 운영 및 확장할 수 있는 서비스입니다. AWS 글로벌 컴퓨팅 인프라를 기반으로 구축된 Amazon GameLift Servers는 전 세계 플레이어 수요에 맞춰 리소스 사용량을 동적으로 조정하면서 고성능, 고신뢰성 게임 서버를 제공합니다.

Amazon GameLift Servers는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서의 관리형 호스팅(비용 절감을 위한 스팟 인스턴스 포함)과 컨테이너 기반 호스팅, 그리고 Amazon GameLift Servers Anywhere를 통한 자체 관리형 호스팅을 지원합니다. 또한 통합 매치메이킹, 게임 세션 배치, Amazon CloudWatch를 통한 실시간 모니터링을 제공합니다.

주요 개념

먼저 DDoS Protection 이해에 필요한 핵심 개념을 짚어봅니다.

  • 플릿(Fleets) — 플릿은 게임 서버를 호스팅하는 Amazon EC2 인스턴스 또는 컨테이너의 집합입니다. Amazon GameLift Servers는 배포, 스케일링, 상태 모니터링을 포함한 이러한 리소스의 수명 주기를 관리합니다. DDoS Protection은 Linux 기반 관리형 EC2 플릿과 컨테이너 플릿에서 지원됩니다.
  • 게임 세션(Game sessions) — 게임 세션은 서버에서 실행되는 게임의 단일 인스턴스로, 연결된 플레이어 그룹을 호스팅합니다. Amazon GameLift Servers는 세션 가용성을 추적하고 사용자가 정의한 기준에 따라 새 세션을 배치합니다.
  • 게임 세션 배치 큐(Game session placement queues) — 큐는 새 게임 세션 요청을 처리하고 플레이어 지연 시간, 비용, 위치 등의 요소를 기반으로 배치 위치를 결정합니다. DDoS Protection이 활성화되면 지원되는 리전에서의 배치를 우선시하도록 큐를 구성할 수 있습니다.
  • 플레이어 세션(Player sessions) — 플레이어 세션은 게임 세션에 대한 단일 플레이어의 연결을 나타냅니다. Amazon GameLift Servers는 연결 시 플레이어를 검증하고 슬롯 가용성을 추적할 수 있습니다.

멀티플레이어 게임에서의 DDoS 과제

기존 DDoS 완화 기술은 TCP 기반 웹 트래픽을 위해 설계되었습니다. 그러나 멀티플레이어 게임은 실시간 게임플레이에 필요한 저지연, 고빈도 통신에 최적화된 비연결형 프로토콜인 User Datagram Protocol(UDP)에 의존합니다. 이 근본적인 차이가 공격자에게 악용될 수 있는 취약점을 만듭니다.

그림 1

그림 1: DDoS 보호가 없으면 공격자가 노출된 IP 주소를 통해 게임 서버를 직접 공격할 수 있습니다.

기존 접근 방식이 게임 서버에 부족한 이유는 다음과 같습니다.

  • IP별 속도 제한(Per-IP rate limiting)은 하나의 IP 주소가 한 명의 사용자와 같다고 가정합니다. 실제로는 여러 플레이어가 동일한 공용 IP를 공유하는 경우가 많아(예: 같은 대학교나 기업 네트워크의 플레이어), 정상 트래픽을 차단하는 오탐이 발생합니다.
  • 호스팅 제공업체 보호(Hosting provider protection)는 일반적으로 웹 워크로드에 맞춰 UDP 필터링 임계값을 조정합니다. 비표준 포트의 높은 빈도 게임 트래픽이 공격으로 오인되어 게임플레이가 중단될 수 있습니다.
  • 시그니처 및 패턴 매칭(Signature and pattern matching)은 “정상적인” 게임 트래픽의 형태를 정의하고 나머지를 차단하는 방식입니다. 공격자가 게임의 네트워크 패턴을 분석하면 규칙을 우회하는 공격 패킷을 만들 수 있으며, 이 경우 매번 새로운 규칙을 수동으로 작성하고 배포해야 하고, 모든 패킷을 검사하는 과정에서 지연 시간이 추가됩니다.

이러한 사후 대응적 접근 방식은 공통적인 약점을 가지고 있습니다. 먼저 공격을 탐지한 후 완화를 활성화하기 때문에, 수 분의 노출 공백이 생기며 이 동안 플레이어가 연결이 끊기거나 세션을 포기해야 할 수 있습니다.

사후 대응에서 사전 예방으로

Amazon GameLift Servers DDoS Protection은 근본적으로 다른 접근 방식을 취합니다. 공격을 탐지할 때까지 기다리는 대신, 보호가 항상 켜져 있어 첫 번째 패킷부터 필터링이 시작됩니다.

그림 2

그림 2: 기존 사후 대응형 솔루션은 공격 시작과 완화 활성화 사이에 노출 시간이 존재하지만, Amazon GameLift Servers는 첫 번째 패킷부터 지속적인 보호를 제공합니다.

Player Gateway 작동 방식

이 기능은 게임 클라이언트와 게임 서버 사이에 위치하는 릴레이 기반 네트워크인 Player Gateway를 중심으로 구축되었습니다. 플레이어는 게임 서버에 직접 연결하는 대신 Amazon GameLift Servers가 관리하는 릴레이 엔드포인트를 통해 연결합니다.

그림 3

그림 3: Amazon GameLift Servers DDoS Protection 아키텍처 — 게임 클라이언트가 Player Gateway 릴레이 네트워크를 통해 연결되며, AWS Shield가 네트워크 엣지 보호를 제공합니다.

이 아키텍처는 여러 계층의 방어를 제공합니다.

  • 게임 서버 IP 은닉 — 플레이어는 게임 서버가 아닌 릴레이 엔드포인트를 통해 연결합니다. 서버 IP 주소가 외부에 노출되지 않아 가장 일반적인 공격 벡터가 제거됩니다.
  • Player Gateway 토큰을 통한 트래픽 검증 — Player Gateway를 통과하는 모든 트래픽은 인증을 위한 토큰이 필요합니다. 인증된 플레이어의 트래픽만 게임 서버에 도달합니다.
  • 플레이어별 속도 제한 — 인증된 플레이어의 연결이 손상되더라도 플레이어별 트래픽 제한이 단일 연결로 인한 서버 과부하를 방지합니다.
  • 동적 엔드포인트 교체 — 릴레이 엔드포인트가 비정상 상태가 되면 Amazon GameLift Servers가 자동으로 새로운 정상 엔드포인트로 교체합니다. 갱신된 연결 정보는 다음 GetPlayerConnectionDetails 호출 시 자동으로 반환됩니다.
  • 분산된 플레이어 트래픽 — 각 플레이어는 서로 다른 릴레이 엔드포인트를 받으므로, 하나의 엔드포인트에 대한 표적 공격이 같은 게임 세션의 다른 플레이어에게 미치는 영향이 최소화됩니다.

시작하기

Amazon GameLift Servers DDoS Protection 통합은 백엔드 서비스와 게임 클라이언트 두 영역에서 이루어집니다.

백엔드 통합은 게임 세션에 참여하는 각 플레이어에 대해 GetPlayerConnectionDetails API를 호출해야 합니다. 이 API는 클라이언트가 연결하는 데 필요한 릴레이 엔드포인트와 Player Gateway 토큰을 반환합니다. 클라이언트가 항상 유효한 엔드포인트를 사용할 수 있도록 주기적으로 갱신하는 것을 권장합니다.

게임 클라이언트 통합은 백엔드에서 연결 정보를 수신하고, 모든 발신 UDP 패킷에 Player Gateway 토큰을 앞에 추가하며, 게임 서버 대신 제공된 릴레이 엔드포인트로 트래픽을 전송하는 것을 포함합니다. Amazon GameLift Servers는 Unreal Engine 및 네이티브 C++을 포함한 인기 게임 엔진용 오픈 소스 샘플 통합 코드를 제공합니다.

구현 단계

  • Player Gateway 활성화Amazon GameLift Servers 콘솔 또는 API를 통해 플릿 생성 시 DDoS Protection을 활성화합니다. 이 기능은 Linux 기반 관리형 EC2 플릿과 컨테이너 플릿에서 지원됩니다.
  • 게임 클라이언트 통합 — 제공된 샘플 코드를 사용하여 게임 클라이언트에 Player Gateway 클라이언트 라이브러리를 추가합니다.
  • 배포 — 보호된 플릿을 프로덕션 리전에 배포합니다.
  • 모니터링 — Amazon CloudWatch 대시보드와 알림을 구성하여 보호 상태와 릴레이 상태를 지속적으로 확인합니다.

모범 사례

리전별로 DDoS Protection을 점진적으로 활성화하는 것을 고려하세요. 전체 프로덕션 배포 전에 특정 게임 환경에서 지연 시간과 성능 특성을 검증하세요. DDoS Protection이 사용 가능하고 정상인 위치에서의 배치를 우선시하도록 게임 세션 배치 큐를 구성하세요.

가용성 및 요금

Amazon GameLift Servers DDoS Protection은 다음 AWS 리전에서 추가 비용 없이 사용할 수 있습니다.

  • US East (N. Virginia)
  • US West (Oregon)
  • Europe (Frankfurt)
  • Europe (Ireland)
  • Asia Pacific (Sydney)
  • Asia Pacific (Tokyo)
  • Asia Pacific (Seoul)

결론

DDoS 공격은 멀티플레이어 게임이 직면하는 가장 지속적인 위협 중 하나이며, 기존 완화 기술은 UDP 기반의 지연 시간에 민감한 게임 트래픽의 현실에 맞게 설계되지 않았습니다. Amazon GameLift Servers DDoS Protection은 별도의 시그니처 관리 없이, 지연 시간 증가 없는 상시 방어로 이 격차를 해소합니다.

Amazon GameLift Servers에서 세션 기반 멀티플레이어 게임을 운영하고 있다면, 추가 비용 없이 지금 바로 플레이어 상시 보호를 시작할 수 있습니다.

추가 자료

Youngjun Won

Youngjun Won

원영준 시니어 솔루션즈 아키텍트는 오랜 기간동안 미디어 산업에서의 고객 문제해결 및 솔루션 지원 시스템 엔지니어 경험을 보유하고 있으며, AWS Industries의 MEGS(Media & Entertainment, Games, Sports) 산업 고객이 AWS 클라우드에서 엔터프라이즈 규모의 솔루션을 구축하고 운영할 수 있도록 기술적 도움을 드리는 역활을 하고 있습니다.