- 개요
Amazon API Gateway는 프로젝트의 규모와 관계없이
REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스이다
게임 프로젝트에서는 클라이언트가 API Gateway를 통해 요청을 보내고,
API Gateway가 Lambda 함수를 호출하여 GameLift 게임 세션을 생성하거나 플레이어를 매치메이킹한다
이를 위해 API Gateway를 현재 프로젝트에서 어떻게 사용할지 계획한다
1) HTTP 리퀘스트 - 언리얼 엔진과 AWS간의 통신
POST /api/v1/players/login HTTP/1.1
Host: api.yourgame-server.com
Content-Type: application/json
Authorization: Bearer abc123def456
User-Agent: UnrealEngine/5.3
{
"username": "ProGamer77",
"login_timestamp": "2026-05-09T18:35:00Z"
}
언리얼 엔진에서는 AWS와 소통하기 위해 HTTP를 사용하여 서비스를 요청한다
위와 같이 HTTP 리퀘스트 메세지를 사용할 수 있는데, 구성은 다음과 같다
- 메서드 : 서버에 새로운 데이터를 보내거나 동작을 처리하도록 요청 + 예시에서의 POST
- URL : 서버 내에서 접근하려는 특정 리소스의 주소 + 예시에서의 /api/v1/players/login
- 헤더 : 리퀘스트에 대한 메타 데이터 + 예시에서의 Content-Type과 Authorization
- 바디 : 리퀘스트에 담아 서버에 전송할 데이터들의 모임 + 예시에서의 딕셔너리
2) HTTP 메서드의 구성

HTTP 메세지에서 사용할 수 있는 메서드들은 위와 같다
데이터를 탐색하고 싶다면 GET을 사용하고, 데이터를 추가하고 싶다면 POST를 사용한다
또 데이터를 수정하고 싶다면 PUT을 사용하며 데이터를 삭제하고 싶다면 DELETE를 사용한다
3) API Gateway의 구성

AWS의 API Gateway는 위와 같이 3가지로 구성되어 있다
프로젝트에서는 REST API를 사용하여 Gateway를 사용한다

REST API의 동작방식은 위와 같다
클라이언트가 특정 URL 엔드포인트로 요청하면 API Gateway가 이를 받아 지정된 Lambda 함수를 실행한다
4) API Gateway 방식의 이점
Lambda에 직접 연결하는 방식 대신에 API Gateway를 사용하는 방식은 다음의 이점이 있다
- 1) 중앙 집중식 관리 : 모든 API의 단일 진입점 역할을 하여 관리와 모니터링이 용이함
- 2) 높은 보안성 : 인증, 권한 부여와 같은 작업을 통해 유효한 요청만 통과시킴
- 3) 높은 확장성 : 인프라 관리 없이 대규모 요청을 자동으로 처리 및 확장할 수 있음
- 4) 버전 관리가 용이 : 여러 버전을 관리하여 기존 사용자에게 영향을 주지 않고 업데이트가 가능함
- 5) 모니터링과 로깅 : 사용량, 성능, 오류를 추적할 수 있음
- 6) 캐싱 : 응답을 저장하여 Lambda 부하를 줄이고 사용자 응답 속도를 개선함
5) API Gateway와의 연결방식 구상

프로젝트에서 API Gateway를 위와 같이 연결한다
- 클라이언트의 UI : 로직을 최소화 + 유저에게 데이터를 표시하고 버튼 클릭 등 입력을 받도록 구성
- HTTP 요청 매니저 : UObject로 생성 + 실제 HTTP 요청 코드를 처리하고 응답을 파싱하도록 구성
- API Gateway : HTTP 요청을 가장 먼저 받는 단일 진입점 + 유효한 사용자만 요청을 보낼 수 있도록 인증을 확인
- AWS Lambda : API Gateway로부터 데이터를 전달받아 로직을 수행 + 결과를 매니저에 다시 전달
위 연결방식의 핵심 포인트들은 다음과 같다
- 1) 모듈화 : 클라우드 기능 코드를 별도의 독립된 모듈로 분리하여 재사용할 수 있도록 설계
- 2) 데이터 애셋의 사용 : API 엔드포인트 정보를 코드가 아닌 외부 애셋으로 분리하여 유연하게 관리
- 3) 상태 관리 : Widget은 데이터의 값만을 표시 + 데이터의 상태와 통신은 매니저 객체가 처리
6) 해야할 것

이어서 해야 할 작업들은 위와 같다
- 1) API Gateway 설정 : Lambda 함수를 트리거할 수 있는 HTTP 엔드포인트를 생성
- 2) Widget Class 생성 : 사용자와 직접 상호작용하는 UI 클래스를 생성
- 3) Data Asset 생성 : API Gateway에서 생성된 여러 URL 주소를 모아 관리하는 애셋 생성
- 4) HTTP Request Manager 클래스 구현 : 유저와 서버간의 중간 관리자 역할의 클래스 생성
- 5) 시스템 테스트 : 정상 동작하는지 테스트
최종적으로 위와 같이 2개의 모듈이 완성된다
- 1) DedicatedServers 모듈 : 백엔드 통신과 관련된 기능을 저장하는 모듈
- 2) FPSTemplate 모듈 : 게임과 관련된 기능을 저장하는 모듈
'언리얼 엔진 - 게임 프로젝트 > AWS GameLift를 활용한 데디케이트 FPS 프로젝트' 카테고리의 다른 글
| API Gateway - 3) DedicatedServers 모듈 생성 (0) | 2026.05.11 |
|---|---|
| API Gateway - 2) REST API 생성 (0) | 2026.05.10 |
| AWS Lambda - 최종) 예외처리 (0) | 2026.05.07 |
| AWS Lambda - 4) ListFleets 명령어 (0) | 2026.05.07 |
| AWS Lambda - 3) 테스트와 로그 (0) | 2026.05.07 |