© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
© 2022, Amazon Web Services, Inc. or its affiliates.
G A M E S O N A W S 2 0 2 2 - TRACK02
게임 스트리밍 서비스를 위한 아키텍처
: 언리얼 엔진을 중심으로!
하흥수
솔루션즈 아키텍트
AWS
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Agenda
• Game Streaming은 무엇인가?
• WebRTC Architecture 살펴보기
• Unreal Pixel Streaming 서비스 살펴보기
• Pixel Streaming를 구현한 AWS Architecture 소개
• Demo of Unreal Pixel Streaming
• Game Streaming Workload 구축 시 Tip
• Q & A
2
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
© 2022, Amazon Web Services, Inc. or its affiliates.
Game Streaming 이란 무엇인가
3
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
고사양의 게임을 즐기려면…
• 고사양 하드웨어의 PC, PS, XBOX와 같은 콘솔게임기 구매해야 한다.
• 게임플랫폼에 접속하여 장시간 다운로드 받아야 한다.
• 현장 구매를 위해서 새벽부터 나와 줄을 서거나 배송을 기다려야 한다.
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming이란 무엇인가
• 넷플릭스 같은 구독 스트리밍 서비스를 게임컨텐츠에 적용한 서비스
• 고사양의 PC나 콘솔 기기가 없어도, 인터넷을 통해 즉시 게임을 즐길 수 있도록
• 클라우드 컴퓨팅에 게임애플리케이션이 실행되고, 이를 스트리밍 하는 서비스
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming을 통해 기대할 수 있는 Benefit
• 구독서비스를 통해, 특정마니아층을 넘어서 일반 사용자까지 대규모로 확대
• 게임 플레이 방송을 이용한 게임 마케팅 효과를 극대화 할 수 있음
• 미디어와의 컨버전스 컨텐츠를 통해 새로운 형태의 엔터테인먼트 서비스 제공
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming을 바라보는 시각과 고민들
• 좋은 것 같기는 한데, 어떻게 접근 해야할지 막막합니다. 레퍼런스가 너무 없어요.
• 테스트를 해봤는데, 서비스를 하기에는 성능이 많이 떨어지는 것 같던데요.
• 비용이 너무 많이 들 것 같은데, 줄일 수 있는 방법이 없을 것 같습니다.
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
이 세션은 이러한 고민에 도움을 드리기위해 만들어졌습니다!
• UE5엔진을 AWS에서 쉽게 구현할 수 있도록 참고할만한 레퍼런스 제공
• 성능 특히 대용량 스트리밍을 최적화 할 수 있는 아키텍처에 대한 소개
• 효율적인 비용 절약과 테스트를 위한 팁 제공
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming 과 온라인 게임은 무엇이 다른가
게임 플레이 컨트롤 입력 전달
게임 상태 업데이트 전달
클라이언트 통신
게임 상태 업데이트
게임 입력 처리
로컬 업데이트
2D/3D 그래픽렌더링
사용자 입력
서버 클라이언트
게임 플레이 컨트롤 입력 전달
게임 영상 스트리밍
2D/3D 그래픽 렌더링
게임 상태 업데이트
게임 입력 처리
스트리밍 수신
사용자 입력
비디오 압축
클라우드 플랫폼 클라이언트
온라인 게임
게임 스트리밍
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
WebGL 게임과 Game Streaming은 어떻게 다른가
WebGL based Game Game Streaming
Pros
• 구현이 상대적으로 쉽다
• 상대적으로 개발 시간 및 빌드
적용이 단순
Cons
• 클라이언트측 브라우저 수신
성능과 하드웨어 의존도가 높다
• 클라이언트는 데이터를 직접
다운받으며 보안의 우려가 존재
Pros
• 서버에서 미디어를 스트리밍하고
이를 제어. 보안 면에서 보다 안전
• 그래픽 카드 등 하드웨어 제한에서
자유롭다 (상대적으로)
Cons
• 아직 기술이 미성숙 (레퍼런스가 없음)
• 네트워크 트래픽으로 인한 게임 지연
• 그래픽카드 + 네트워크 트래픽으로
인한 비용이 많이 소요될 수 밖에 없음
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming이 성공하기 위한 핵심 기술 요소
• 고해상도의 게임화면을 가볍게 압축하는 비디오 인코딩 / 디코딩 기술
• 대용량 스트리밍을 빠르게 전송할 수 있는 글로벌 서버의 배포 수준과 네트워크 지연 극복 기술
• FPS와 같은 게임의 사용자 입력이 빠르게 서버에 반영되는 네트워크 토폴로지
• 대규모 사용자를 위한 클라우드 컴퓨팅 자원의 효율적인 관리
• 모바일, 태블릿, PC, 스마트 TV 등 다양한 기기에서 쉽게 접근할 수 있는 컨트롤러 장치
WebRTC
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
© 2022, Amazon Web Services, Inc. or its affiliates.
WebRTC Architecture 살펴보기
12
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
게임스트리밍에서 사용되는 WebRTC
WebRTC(Web Realtime Communications)는 웹브라우저 간에 플러그인의
도움없이 서로 통신할 수 있도록 설계된 오픈소스 프로젝트로서 모바일,
TV, PC가 모두 하나의 플랫폼에서 Real-Time으로 통신하는 것을 목표로 하고 있다.
음성 및 영상통화, P2P 파일과 같은 데이터 공유기능뿐 아니라 게임스트리밍에도
활용이 가능하도록 지원되는 기술을 말한다.
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
WebRTC 의 Architecture Overview
Web API (Edited by W3C WG)
WebRTC API(Peer Connection)
Session Management / Abstract Signaling(Session)
ISAC /ILBC Codec
NetEQ for Voice
Echo Canceler/
Noise Reduction
Voice Engine
VP8 Codec
Video Jitter Buffer
Image enhancements
Video Engine
RTP stack
STUN / TURN
Session Management
Transport
Audio
Capture Renderer
Video
Capture Renderer
Network I/O
Management
WebRTC
……
Your
Web
app
#1
Your
Web
app
#2
Your
Web
app
#N-1
Your
Web
app
#N
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
RTP(Real Time Network Transports) Stack
UDP 프로토콜은 브라우저에서 실시간 통신을 위한 WebRTC의 기반으로 사용되며, WebRTC의
모든 기능을 수행하기 위해서, 웹브라우저는 이러한 프로토콜과 서비스의 지원이 필요함.
NAT 및 방화벽의 여러 계층을 통과하고, 각 스트림에 대한 매개 변수를 협상해서 각 계층에
전달하고, 전달되는 사용자 데이터의 암호화기능도 수행
RTCPeerConnection DataChannel
SRTP
Session(DTLS) - mandatory
SCTP
ICE, STUN, TURN
Transport(UDP)
Network(IP)
Transport(TCP)
Session(TLS) -optional
WebSocket
XHR SSE
HTTP 1.x/2.0
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
RTP (Real Time Transport Protocol) Stack
 ICE : Interactive Connectivity Establishment
 STUN : Session Traversal Utilities for NAT
 TURN : Traversal Using Relays around NAT
 SDP : Session Description Protocol
 DTLS : Datagram Transport Layer Security
 SCTP : Stream Control Transport Protocol
 SRTP : Secure Real-Time Transport Protocol
 DataChannel : Network Channel for bidirectional peer data transmission
 RTCPeerConnection : WebRTC connection between the local computer and a remote peer
RTCPeerConnection DataChannel
SRTP
Session(DTLS) - mandatory
SCTP
ICE, STUN, TURN
Transport(UDP)
• 특히, 각 프로토콜 계층에서 주목해야 할 부분은 STUN, TURN 으로 PixelStreaming 아키텍처에서
각각 서버로 구현되는 핵심 요소
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
STUN /TURN 서버의 역할
• STUN,TURN 서버를 통해 얻은 연결 가능한 네트워크 주소들을 후보(Candidate)라고 부르고
이 모든 과정은 ICE(Interactive Connectivity Establishment)라는 프레임 워크 안에서 수행됨
STUN Server
Your are
221.64.10.01:3283
Who am I ?
Peer A (Client)
Peer B (Pixel Server)
STUN Server
Your are
221.64.10.01:3283
Who am I ?
Peer A (Client)
Peer B (Pixel Server)
TURN Server
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Web Signaling Server
• Signaling 은 2개의 엔드포인트 간의 위치(IP)정보 및 미디어포맷(SDP)을 전달하고 서로
P2P통신을 위해 연결을 중개하는 역할: Web Signaling서버는 WebRTC의 가장 핵심요소
• Media Data는 암호화(DTLS)되어, SRTP/SCTP 프로토콜을 통해 데이터를 전송
STUN Server
Peer A (Client)
TURN Server
Web Signalling
Server
Peer B (Pixel Server)
Address(IP,Port)
HTTP(XHR) HTTP(XHR)
SDP (Session Description)
Address(IP,Port)
SRTP/SCTP( Protocol )
DTLS(Data Encryption)
Media Data( Video/Audio)
ICE Candidate(IP/Port)
RTC Peer Connection
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
© 2022, Amazon Web Services, Inc. or its affiliates.
Unreal Pixel Streaming 살펴보기
19
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
게임 엔진 레벨에서 제공되는 게임 스트리밍 기술
• 게임을 위한 라이프사이클과 물리엔진을 지원 (클라이언트 / 서버)
• 최고 수준의 시각화 렌더링을 위한 작업 도구가 포함
UE5 Pixel Streaming Unity Render Streaming
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기- Pixel Streaming 구현
Edit>Plugins>Graphics>Pixel Streaming 체크 확인!
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
Build>Platforms>OS(ex:Windows)>Package Project 로 Demo 빌드 및 로그 확인!
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
Edit>Editor Preference>Level Editior>Play>Play in Standalone Game
아래 내용을 Copy해서 application.exe 뒤에 같이 입력하여 실행
-AudioMixer –PixelStreamingIP=localhost – PixelStreamingPort=8888
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
Edit>Editor Preference>Level Editior>Play>Play in Standalone Game
아래 내용을 Copy해서 application.exe 뒤에 같이 입력하여 실행
-AudioMixer –PixelStreamingIP=localhost – PixelStreamingPort=8888
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 맛보기
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• Signaling WebServer
PixelStreaming에 가장 필수적인 서버에 대한 실행스크립트를 담고 있는 곳(STUN,TURN포함)
• Matchmaker
Matchmaker 서버는 Signalling WebServer와 1:N 매칭 가능함 ( N대의 Web Signaling서버)
• SFU(Selected Forward Unit )
SFU 서버를 실행하기 위한 스크립트가 저장되어있는 곳 , 실제 실행은 되지만, 시청만 가능
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• cirrus.js
Websignaling Server 의 핵심기능으로 Signaling Server 그 자체로서의 역할을 수행
• config.json
Websignaling서버의 환경구성 파라미터 파일(STUN/TURN/MatchMaker/SFU 구성정보)
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• Start_SignalingServer.sh
cirrus.js (Websignaling server의 핵심요소)를 실행시키는 스크립트로, 시그널링 기동스크립트
• Start_TURNServer.sh
TURN 서버만 실행시키는 스크립트, 물리적으로 다른 서버에서 단독 실행할 때 사용
• Start_WithTURN_SignallingServer.sh
cirrus.js와 TURN서버를 같이 실행시킴, 둘다 같은 로컬에서 실행시킬 때 사용
* Window Server에서는 Powershell로 실행시켜야 함 ( Start_SignalingServer.ps1)
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• matchmaker.js
여러 대의 픽셀 및 시그널링 서버가 있을 경우 라우팅 및 로드 밸런싱의 역할을 수행
• config.json
Matchmaker서버 서버의 환경 구성 파라미터 파일
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• run.sh
Matchmaker.js를 실행시키는 스크립트입니다. 이 스크립트로 서버를 실행
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• sfu_server.js
SFU 서버의 모든 기능을 담은 스크립트
• config.js
SFU서버가 WebSignaling서버에 접속하는데 필요한 정보를 전달
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Demo 살펴보기 - 구성요소
• run_cloud.sh
클라우드 환경에서 SFU서버를 구동하는 스크립트
• run_local.sh
로컬환경에서 SFU서버를 구동하는 스크립트
* 테스트 결과 둘다 상관없이 작동하는 것을 확인, 그러나 플레이어 컨트롤 불가
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
© 2022, Amazon Web Services, Inc. or its affiliates.
Pixel Streaming을 구현한 AWS 아키텍쳐
35
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming의 Architecture -1
Pixel
Streaming
Plugin
Signalling
Web Server
STUN/TURN
Server
Desktop and
Mobile browsers
• STUN (Session Traversal Utilities for NAT) 서버
웹 브라우저와 WebRTC 프록시 서버 사이 네트워크 주소 변환(NAT) 서비스로 인해 안보이는
사설 IP 주소를 가진 종점과 목적지 서버간 양방향 통신을 가능하게 해주는 역할
• TURN (Traversal Using Relays NAT) 서버
NAT 보안정책이 너무 엄격하거나, 방화벽등으로 막혀있는 경우 각 Peer들이 직접 통신하지
않고, TURN 서버가 연결을 Relay하여 통신하게 된다.
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming의 Architecture -2
Signalling
Web Server
STUN/TURN
Server
Desktop and
Mobile browsers
여러 사용자에 대한 스트림 컨트롤도 가능한데, 한명이 게임플레이를 하고, 다른 사용자들은
시청만 하거나, 사용자 모두가 각각 부분적으로 컨트롤할수 있는 것도 가능함.
사용자들이 실시간으로 다양한 부분을 제어하기 위해서 플레이어별 HTML 페이지를 제공
Pixel
Streaming
Plugin
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming의 Architecture -3
Signalling
Web Server
Matchmaker
Server
Desktop and
Mobile browsers
• MatchMaker서버
모든 사용자가 같은 스트림에 연결하지 않고, 각자의 플레이 환경을 구축할수 있는데,
픽셀스트리밍의 구성요소를 별도의 호스트로 구성하거나 포트구성을 다르게 하여
같은 호스트에서 여러개의 스택을 넣어 여러사용자가 플레이하는 것도 가능
Pixel
Streaming
Plugin
Signalling
Web Server
Pixel
Streaming
Plugin
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Architecture 최적화를 위한 고려사항
• Web Signaling 서버
Pixel Streaming 서버와 1:1 Matching 의 구조 -> 사용자 만큼의 서버갯수 필요
1:1일 경우, 서버의 부하는 거의 없는 정도 (CPU 5% 미만외 다른 지표 모두 양호)
• STUN/TURN 서버
2개의 서버부하 역시 거의 없음
STUN 서버와 TURN 서버를 1개로 합쳐서 테스트 할때도 동일한 수준
Pixel Streaming 서버와 N:1 관계로 유지가능
• Matchmaker 서버
서버의 부하 매우 미미한 정도
Pixel Streaming 서버와 N:1 관계로 유지 가능
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming Architecture 최적화를 위한 고려사항
• Web Signaling 서버
>> 한 대의 Web Signaling 서버에서 여러 개의 서비스 실행하도록 구현
>> Pixel Streaming 서버에서 같이 운영하는 방안
• STUN/TURN 서버
>> 2개의 서버를 한대에서 운영하는 방안 (Coturn 서버로 이미 구현되어짐)
>> Pixel Streaming 서버 여러 대가 STUN/TURN 서버에 붙는 형태로 구현
• Matchmaker 서버
>> 여러 대의 Web Signaling 서버가 한개의 Matchmaker 서버에 붙는 형태로 구현
>> Matchmaker 기능을 Lambda + DDB 로 처리하는 방안
+ 위 3개의 서버를 모두 EKS로 관리
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Client Matchmaking Web Signaling
Coturn(Stun/Turn)
Pixel Streaming
AWS 서비스로 구현할 수 있는 아키텍처 – Basic Concept
Player Input & Event Pre-Rendered
Frame & Audio (UDP)
Redirecting
Connect Request
IP Forwarding & Relay
Signaling
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Clients
AWS 서비스로 구현할 수 있는 아키텍처 – Autoscaling
Connect Request
IP Forwarding & Relay
Signaling
Web Signaling
Redirecting
Pixel Streaming
Pre-Rendered
Frame & Audio (UDP)
Player Input & Event
Matchmaking
Coturn
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Clients
AWS 서비스로 구현할수 있는 아키텍처 – Lambda
Connect Request
IP Forwarding & Relay
Signaling
Redirecting
Pixel Streaming
Pre-Rendered
Frame & Audio (UDP)
Player Input & Event
Coturn
Web Signaling
Matchmaking
DynamoDB
Handling Mathcing Info
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Observer
AWS 서비스로 구현할 수 있는 아키텍처 – Selected Forward Unit
Signaling
Redirecting
Web Socket(SFU)
Player Input & Event
Pixel Streaming
Controller
Matchmaking Web Signaling
Selected
Forward Unit
Just Watching
WebRTC(SFU)
Rendering
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Observer
AWS 서비스로 구현할 수 있는 아키텍처 – Selected Forward Unit
Signaling
Redirecting
Player Input & Event
Pixel Streaming
Controller
Matchmaking Web Signaling
Selected
Forward Unit
Just Watching
WebRTC(SFU)
Rendering
CloudFront
HLS/DASH
Encoder
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Virtual Private Cloud (VPC)
AWS Cloud
Auto Scaling group
Auto Scaling group
Instance Instance
Instance Instance
Signaling / Coturn / SFU/ Envoy Router
AWS 서비스로 구현해본 아키텍쳐- OverView
UE5 Pixel Streaming
Client Match Making
Direct Connecting(UDP)
Public
Private
UE5 Project Runtime
Web Signaling
/ Coturn / Envoy Router
SFU
ECR EKS
Availability Zone 1 Availability Zone 2
WebSocket
API Gateway
Availability Zone 3
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Demo of Unreal Pixel
Streaming
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Game Streaming Workload 구축 시 Tip 1
• Stateful 연결을 사용하기 때문에 Controller 의 경우 연결을 맺고 상태를 유지할
수 있는 형태의 라우팅 구성을 채택해야 합니다
• 워크로드 테스트 시 Local Internet 의 Bandwidth 에 의해 Frame drop 이
발생하기 쉽습니다.
• 당연하게도 Network 사용률이 정말 정말 높습니다. 충분히 고려되어야 합니다
• Controller 에는 CF 가 붙을 수 없지만 GA(Global Accelerator) 는 붙을 수
있습니다 (동적 스트리밍이므로)
• Observer 에는 CF 와 GA 모두 붙을 수 있습니다
라우팅 및 네트워크 연결 관련
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
• 시뮬레이션은 한 번이기 때문에 사용자 수의
증가가 GPU 사용률 증가로 이어지지는
않습니다. 기획에 따라 생각보다 GPU 비용은
비례하지 않을 수 있습니다
• G 타입의 인스턴스가 가장 효율이 좋습니다.
그래픽 카드의 인코딩 퍼포먼스 때문에 큰
사이즈를 선택하는 것 보다 작은 사이즈 여러
개가 효율이 좋습니다
(테스트 결과 g4dn.2xlarge 의 GPU & CPU
사용률이 가장 효율적입니다)
• G5도 검토하시는 걸 권장 드립니다.
그래픽 카드 및 게임 스트리밍 관련
Game Streaming Workload 구축 시 Tip 2
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
• 온디맨드 용량 예약 (ODCR : On-Demand Capacity Reservations)
G4계열의 인스턴스는 많은 고객사들 에게 인기있는 고사양 인스턴스입니다.
ODCR 을 통해 미리 G4 인스턴스 수량 확보하는 것이 필요합니다!
서비스 론칭 또는 CBT 와 같은 중요한 이벤트가 있기 최소 2주전에 예상되는 수량을
미리 ODCR로 확보해 놓으시길 강력히 추천 드립니다.
Reserved Instance나 Saving Plans을 통해서 비용절감 및 수량 확보를
미리 해 놓으시는 것도 좋은 방법이 될 수 있습니다.
Game Streaming Workload 구축 시 Tip 3
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Pixel Streaming 서버는 고사양의 그래픽 카드로 인해, 다른 인스턴스 타입에 비해서
비용 또한 높은 편이며, 수량 확보도 어려운 상황 (특히 G4dn.2xlarge 이상)
• 윈도우 대신 리눅스 인스턴스 사용
약 34% 정도 비용절감 효과
• Reserved Instance 적용
온디맨드 대비 Window 25% / Linux 37%
• Saving Plans 적용
온디맨드 대비 Window 18% / Linux 28%
• Spot Instance 활용
온디맨드 대비 Window 43% / Linux 64%
Price Type Window Linux
On Demand 1.12 0.752
Reserved Instance 0.950 0.582
Saving Plans 1.037 0.669
Spot Instance 0.6455 0.2775
* G4dn.2xlarge , 시간당 금액 USD
Game Streaming Workload 구축 시 Tip 4
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Q & A
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
참고자료
• Unreal pixel streaming document (Unreal 4,5로 픽셀스트리밍을 구현하는 문서입니다)
https://docs.unrealengine.com/5.0/en-US/pixel-streaming-in-unreal-engine
• Unreal pixel streaming on AWS (픽셀스트리밍을 AWS서비스로 구현하는 문서와 동영상입니다)
https://github.com/aws-samples/deploying-unreal-engine-pixel-streaming-server-on-ec2
https://www.youtube.com/playlist?list=PLOYtv5sEWAuPzqVKfwIAiJqRsqBCd6K-a
https://github.com/stevensu1977/UE4-PixelStreaming-Container
https://aws.amazon.com/cn/blogs/china/practice-of-container-deployment-of-unreal-engine-pixel-streaming-on-g4dn-ii/
• All about WebRTC,Pixel streaming (WebRTC,픽셀스트리밍에 대한 모든 개념과 설명이 있는 문서입니다)
• https://sites.google.com/site/webrtc/reference/webrtc-components
https://tensorworks.com.au/blog/an-open-architecture-for-scalable-pixel-streaming/#111-webrtc
https://wormwlrm.github.io/2021/01/24/Introducing-WebRTC.html
• EC2 Instance type & Cost(G4,G5인스턴스 사양 및 비용 관련 문서입니다 )
https://aws.amazon.com/ec2/pricing/on-demand/
https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer
https://aws.amazon.com/ko/blogs/korea/10-things-you-can-do-today-to-reduce-aws-costs/
© 2022, Amazon Web Services, Inc. or its affiliates.
GAMES ON AWS 2022
Thank you!
© 2022, Amazon Web Services, Inc. or its affiliates.
하흥수
AWS
heungh@amazon.com

7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS ::: Games on AWS 2022

  • 1.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 © 2022, Amazon Web Services, Inc. or its affiliates. G A M E S O N A W S 2 0 2 2 - TRACK02 게임 스트리밍 서비스를 위한 아키텍처 : 언리얼 엔진을 중심으로! 하흥수 솔루션즈 아키텍트 AWS
  • 2.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Agenda • Game Streaming은 무엇인가? • WebRTC Architecture 살펴보기 • Unreal Pixel Streaming 서비스 살펴보기 • Pixel Streaming를 구현한 AWS Architecture 소개 • Demo of Unreal Pixel Streaming • Game Streaming Workload 구축 시 Tip • Q & A 2
  • 3.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 © 2022, Amazon Web Services, Inc. or its affiliates. Game Streaming 이란 무엇인가 3
  • 4.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 고사양의 게임을 즐기려면… • 고사양 하드웨어의 PC, PS, XBOX와 같은 콘솔게임기 구매해야 한다. • 게임플랫폼에 접속하여 장시간 다운로드 받아야 한다. • 현장 구매를 위해서 새벽부터 나와 줄을 서거나 배송을 기다려야 한다.
  • 5.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming이란 무엇인가 • 넷플릭스 같은 구독 스트리밍 서비스를 게임컨텐츠에 적용한 서비스 • 고사양의 PC나 콘솔 기기가 없어도, 인터넷을 통해 즉시 게임을 즐길 수 있도록 • 클라우드 컴퓨팅에 게임애플리케이션이 실행되고, 이를 스트리밍 하는 서비스
  • 6.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming을 통해 기대할 수 있는 Benefit • 구독서비스를 통해, 특정마니아층을 넘어서 일반 사용자까지 대규모로 확대 • 게임 플레이 방송을 이용한 게임 마케팅 효과를 극대화 할 수 있음 • 미디어와의 컨버전스 컨텐츠를 통해 새로운 형태의 엔터테인먼트 서비스 제공
  • 7.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming을 바라보는 시각과 고민들 • 좋은 것 같기는 한데, 어떻게 접근 해야할지 막막합니다. 레퍼런스가 너무 없어요. • 테스트를 해봤는데, 서비스를 하기에는 성능이 많이 떨어지는 것 같던데요. • 비용이 너무 많이 들 것 같은데, 줄일 수 있는 방법이 없을 것 같습니다.
  • 8.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 이 세션은 이러한 고민에 도움을 드리기위해 만들어졌습니다! • UE5엔진을 AWS에서 쉽게 구현할 수 있도록 참고할만한 레퍼런스 제공 • 성능 특히 대용량 스트리밍을 최적화 할 수 있는 아키텍처에 대한 소개 • 효율적인 비용 절약과 테스트를 위한 팁 제공
  • 9.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming 과 온라인 게임은 무엇이 다른가 게임 플레이 컨트롤 입력 전달 게임 상태 업데이트 전달 클라이언트 통신 게임 상태 업데이트 게임 입력 처리 로컬 업데이트 2D/3D 그래픽렌더링 사용자 입력 서버 클라이언트 게임 플레이 컨트롤 입력 전달 게임 영상 스트리밍 2D/3D 그래픽 렌더링 게임 상태 업데이트 게임 입력 처리 스트리밍 수신 사용자 입력 비디오 압축 클라우드 플랫폼 클라이언트 온라인 게임 게임 스트리밍
  • 10.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 WebGL 게임과 Game Streaming은 어떻게 다른가 WebGL based Game Game Streaming Pros • 구현이 상대적으로 쉽다 • 상대적으로 개발 시간 및 빌드 적용이 단순 Cons • 클라이언트측 브라우저 수신 성능과 하드웨어 의존도가 높다 • 클라이언트는 데이터를 직접 다운받으며 보안의 우려가 존재 Pros • 서버에서 미디어를 스트리밍하고 이를 제어. 보안 면에서 보다 안전 • 그래픽 카드 등 하드웨어 제한에서 자유롭다 (상대적으로) Cons • 아직 기술이 미성숙 (레퍼런스가 없음) • 네트워크 트래픽으로 인한 게임 지연 • 그래픽카드 + 네트워크 트래픽으로 인한 비용이 많이 소요될 수 밖에 없음
  • 11.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming이 성공하기 위한 핵심 기술 요소 • 고해상도의 게임화면을 가볍게 압축하는 비디오 인코딩 / 디코딩 기술 • 대용량 스트리밍을 빠르게 전송할 수 있는 글로벌 서버의 배포 수준과 네트워크 지연 극복 기술 • FPS와 같은 게임의 사용자 입력이 빠르게 서버에 반영되는 네트워크 토폴로지 • 대규모 사용자를 위한 클라우드 컴퓨팅 자원의 효율적인 관리 • 모바일, 태블릿, PC, 스마트 TV 등 다양한 기기에서 쉽게 접근할 수 있는 컨트롤러 장치 WebRTC
  • 12.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 © 2022, Amazon Web Services, Inc. or its affiliates. WebRTC Architecture 살펴보기 12
  • 13.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 게임스트리밍에서 사용되는 WebRTC WebRTC(Web Realtime Communications)는 웹브라우저 간에 플러그인의 도움없이 서로 통신할 수 있도록 설계된 오픈소스 프로젝트로서 모바일, TV, PC가 모두 하나의 플랫폼에서 Real-Time으로 통신하는 것을 목표로 하고 있다. 음성 및 영상통화, P2P 파일과 같은 데이터 공유기능뿐 아니라 게임스트리밍에도 활용이 가능하도록 지원되는 기술을 말한다.
  • 14.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 WebRTC 의 Architecture Overview Web API (Edited by W3C WG) WebRTC API(Peer Connection) Session Management / Abstract Signaling(Session) ISAC /ILBC Codec NetEQ for Voice Echo Canceler/ Noise Reduction Voice Engine VP8 Codec Video Jitter Buffer Image enhancements Video Engine RTP stack STUN / TURN Session Management Transport Audio Capture Renderer Video Capture Renderer Network I/O Management WebRTC …… Your Web app #1 Your Web app #2 Your Web app #N-1 Your Web app #N
  • 15.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 RTP(Real Time Network Transports) Stack UDP 프로토콜은 브라우저에서 실시간 통신을 위한 WebRTC의 기반으로 사용되며, WebRTC의 모든 기능을 수행하기 위해서, 웹브라우저는 이러한 프로토콜과 서비스의 지원이 필요함. NAT 및 방화벽의 여러 계층을 통과하고, 각 스트림에 대한 매개 변수를 협상해서 각 계층에 전달하고, 전달되는 사용자 데이터의 암호화기능도 수행 RTCPeerConnection DataChannel SRTP Session(DTLS) - mandatory SCTP ICE, STUN, TURN Transport(UDP) Network(IP) Transport(TCP) Session(TLS) -optional WebSocket XHR SSE HTTP 1.x/2.0
  • 16.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 RTP (Real Time Transport Protocol) Stack  ICE : Interactive Connectivity Establishment  STUN : Session Traversal Utilities for NAT  TURN : Traversal Using Relays around NAT  SDP : Session Description Protocol  DTLS : Datagram Transport Layer Security  SCTP : Stream Control Transport Protocol  SRTP : Secure Real-Time Transport Protocol  DataChannel : Network Channel for bidirectional peer data transmission  RTCPeerConnection : WebRTC connection between the local computer and a remote peer RTCPeerConnection DataChannel SRTP Session(DTLS) - mandatory SCTP ICE, STUN, TURN Transport(UDP) • 특히, 각 프로토콜 계층에서 주목해야 할 부분은 STUN, TURN 으로 PixelStreaming 아키텍처에서 각각 서버로 구현되는 핵심 요소
  • 17.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 STUN /TURN 서버의 역할 • STUN,TURN 서버를 통해 얻은 연결 가능한 네트워크 주소들을 후보(Candidate)라고 부르고 이 모든 과정은 ICE(Interactive Connectivity Establishment)라는 프레임 워크 안에서 수행됨 STUN Server Your are 221.64.10.01:3283 Who am I ? Peer A (Client) Peer B (Pixel Server) STUN Server Your are 221.64.10.01:3283 Who am I ? Peer A (Client) Peer B (Pixel Server) TURN Server
  • 18.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Web Signaling Server • Signaling 은 2개의 엔드포인트 간의 위치(IP)정보 및 미디어포맷(SDP)을 전달하고 서로 P2P통신을 위해 연결을 중개하는 역할: Web Signaling서버는 WebRTC의 가장 핵심요소 • Media Data는 암호화(DTLS)되어, SRTP/SCTP 프로토콜을 통해 데이터를 전송 STUN Server Peer A (Client) TURN Server Web Signalling Server Peer B (Pixel Server) Address(IP,Port) HTTP(XHR) HTTP(XHR) SDP (Session Description) Address(IP,Port) SRTP/SCTP( Protocol ) DTLS(Data Encryption) Media Data( Video/Audio) ICE Candidate(IP/Port) RTC Peer Connection
  • 19.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 © 2022, Amazon Web Services, Inc. or its affiliates. Unreal Pixel Streaming 살펴보기 19
  • 20.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 게임 엔진 레벨에서 제공되는 게임 스트리밍 기술 • 게임을 위한 라이프사이클과 물리엔진을 지원 (클라이언트 / 서버) • 최고 수준의 시각화 렌더링을 위한 작업 도구가 포함 UE5 Pixel Streaming Unity Render Streaming
  • 21.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기- Pixel Streaming 구현 Edit>Plugins>Graphics>Pixel Streaming 체크 확인!
  • 22.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현 Build>Platforms>OS(ex:Windows)>Package Project 로 Demo 빌드 및 로그 확인!
  • 23.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현 Edit>Editor Preference>Level Editior>Play>Play in Standalone Game 아래 내용을 Copy해서 application.exe 뒤에 같이 입력하여 실행 -AudioMixer –PixelStreamingIP=localhost – PixelStreamingPort=8888
  • 24.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현 Edit>Editor Preference>Level Editior>Play>Play in Standalone Game 아래 내용을 Copy해서 application.exe 뒤에 같이 입력하여 실행 -AudioMixer –PixelStreamingIP=localhost – PixelStreamingPort=8888
  • 25.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
  • 26.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - Pixel Streaming 구현
  • 27.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 맛보기
  • 28.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • Signaling WebServer PixelStreaming에 가장 필수적인 서버에 대한 실행스크립트를 담고 있는 곳(STUN,TURN포함) • Matchmaker Matchmaker 서버는 Signalling WebServer와 1:N 매칭 가능함 ( N대의 Web Signaling서버) • SFU(Selected Forward Unit ) SFU 서버를 실행하기 위한 스크립트가 저장되어있는 곳 , 실제 실행은 되지만, 시청만 가능
  • 29.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • cirrus.js Websignaling Server 의 핵심기능으로 Signaling Server 그 자체로서의 역할을 수행 • config.json Websignaling서버의 환경구성 파라미터 파일(STUN/TURN/MatchMaker/SFU 구성정보)
  • 30.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • Start_SignalingServer.sh cirrus.js (Websignaling server의 핵심요소)를 실행시키는 스크립트로, 시그널링 기동스크립트 • Start_TURNServer.sh TURN 서버만 실행시키는 스크립트, 물리적으로 다른 서버에서 단독 실행할 때 사용 • Start_WithTURN_SignallingServer.sh cirrus.js와 TURN서버를 같이 실행시킴, 둘다 같은 로컬에서 실행시킬 때 사용 * Window Server에서는 Powershell로 실행시켜야 함 ( Start_SignalingServer.ps1)
  • 31.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • matchmaker.js 여러 대의 픽셀 및 시그널링 서버가 있을 경우 라우팅 및 로드 밸런싱의 역할을 수행 • config.json Matchmaker서버 서버의 환경 구성 파라미터 파일
  • 32.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • run.sh Matchmaker.js를 실행시키는 스크립트입니다. 이 스크립트로 서버를 실행
  • 33.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • sfu_server.js SFU 서버의 모든 기능을 담은 스크립트 • config.js SFU서버가 WebSignaling서버에 접속하는데 필요한 정보를 전달
  • 34.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Demo 살펴보기 - 구성요소 • run_cloud.sh 클라우드 환경에서 SFU서버를 구동하는 스크립트 • run_local.sh 로컬환경에서 SFU서버를 구동하는 스크립트 * 테스트 결과 둘다 상관없이 작동하는 것을 확인, 그러나 플레이어 컨트롤 불가
  • 35.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 © 2022, Amazon Web Services, Inc. or its affiliates. Pixel Streaming을 구현한 AWS 아키텍쳐 35
  • 36.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming의 Architecture -1 Pixel Streaming Plugin Signalling Web Server STUN/TURN Server Desktop and Mobile browsers • STUN (Session Traversal Utilities for NAT) 서버 웹 브라우저와 WebRTC 프록시 서버 사이 네트워크 주소 변환(NAT) 서비스로 인해 안보이는 사설 IP 주소를 가진 종점과 목적지 서버간 양방향 통신을 가능하게 해주는 역할 • TURN (Traversal Using Relays NAT) 서버 NAT 보안정책이 너무 엄격하거나, 방화벽등으로 막혀있는 경우 각 Peer들이 직접 통신하지 않고, TURN 서버가 연결을 Relay하여 통신하게 된다.
  • 37.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming의 Architecture -2 Signalling Web Server STUN/TURN Server Desktop and Mobile browsers 여러 사용자에 대한 스트림 컨트롤도 가능한데, 한명이 게임플레이를 하고, 다른 사용자들은 시청만 하거나, 사용자 모두가 각각 부분적으로 컨트롤할수 있는 것도 가능함. 사용자들이 실시간으로 다양한 부분을 제어하기 위해서 플레이어별 HTML 페이지를 제공 Pixel Streaming Plugin
  • 38.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming의 Architecture -3 Signalling Web Server Matchmaker Server Desktop and Mobile browsers • MatchMaker서버 모든 사용자가 같은 스트림에 연결하지 않고, 각자의 플레이 환경을 구축할수 있는데, 픽셀스트리밍의 구성요소를 별도의 호스트로 구성하거나 포트구성을 다르게 하여 같은 호스트에서 여러개의 스택을 넣어 여러사용자가 플레이하는 것도 가능 Pixel Streaming Plugin Signalling Web Server Pixel Streaming Plugin
  • 39.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Architecture 최적화를 위한 고려사항 • Web Signaling 서버 Pixel Streaming 서버와 1:1 Matching 의 구조 -> 사용자 만큼의 서버갯수 필요 1:1일 경우, 서버의 부하는 거의 없는 정도 (CPU 5% 미만외 다른 지표 모두 양호) • STUN/TURN 서버 2개의 서버부하 역시 거의 없음 STUN 서버와 TURN 서버를 1개로 합쳐서 테스트 할때도 동일한 수준 Pixel Streaming 서버와 N:1 관계로 유지가능 • Matchmaker 서버 서버의 부하 매우 미미한 정도 Pixel Streaming 서버와 N:1 관계로 유지 가능
  • 40.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming Architecture 최적화를 위한 고려사항 • Web Signaling 서버 >> 한 대의 Web Signaling 서버에서 여러 개의 서비스 실행하도록 구현 >> Pixel Streaming 서버에서 같이 운영하는 방안 • STUN/TURN 서버 >> 2개의 서버를 한대에서 운영하는 방안 (Coturn 서버로 이미 구현되어짐) >> Pixel Streaming 서버 여러 대가 STUN/TURN 서버에 붙는 형태로 구현 • Matchmaker 서버 >> 여러 대의 Web Signaling 서버가 한개의 Matchmaker 서버에 붙는 형태로 구현 >> Matchmaker 기능을 Lambda + DDB 로 처리하는 방안 + 위 3개의 서버를 모두 EKS로 관리
  • 41.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Client Matchmaking Web Signaling Coturn(Stun/Turn) Pixel Streaming AWS 서비스로 구현할 수 있는 아키텍처 – Basic Concept Player Input & Event Pre-Rendered Frame & Audio (UDP) Redirecting Connect Request IP Forwarding & Relay Signaling
  • 42.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Clients AWS 서비스로 구현할 수 있는 아키텍처 – Autoscaling Connect Request IP Forwarding & Relay Signaling Web Signaling Redirecting Pixel Streaming Pre-Rendered Frame & Audio (UDP) Player Input & Event Matchmaking Coturn
  • 43.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Clients AWS 서비스로 구현할수 있는 아키텍처 – Lambda Connect Request IP Forwarding & Relay Signaling Redirecting Pixel Streaming Pre-Rendered Frame & Audio (UDP) Player Input & Event Coturn Web Signaling Matchmaking DynamoDB Handling Mathcing Info
  • 44.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Observer AWS 서비스로 구현할 수 있는 아키텍처 – Selected Forward Unit Signaling Redirecting Web Socket(SFU) Player Input & Event Pixel Streaming Controller Matchmaking Web Signaling Selected Forward Unit Just Watching WebRTC(SFU) Rendering
  • 45.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Observer AWS 서비스로 구현할 수 있는 아키텍처 – Selected Forward Unit Signaling Redirecting Player Input & Event Pixel Streaming Controller Matchmaking Web Signaling Selected Forward Unit Just Watching WebRTC(SFU) Rendering CloudFront HLS/DASH Encoder
  • 46.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Virtual Private Cloud (VPC) AWS Cloud Auto Scaling group Auto Scaling group Instance Instance Instance Instance Signaling / Coturn / SFU/ Envoy Router AWS 서비스로 구현해본 아키텍쳐- OverView UE5 Pixel Streaming Client Match Making Direct Connecting(UDP) Public Private UE5 Project Runtime Web Signaling / Coturn / Envoy Router SFU ECR EKS Availability Zone 1 Availability Zone 2 WebSocket API Gateway Availability Zone 3
  • 47.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Demo of Unreal Pixel Streaming
  • 48.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Game Streaming Workload 구축 시 Tip 1 • Stateful 연결을 사용하기 때문에 Controller 의 경우 연결을 맺고 상태를 유지할 수 있는 형태의 라우팅 구성을 채택해야 합니다 • 워크로드 테스트 시 Local Internet 의 Bandwidth 에 의해 Frame drop 이 발생하기 쉽습니다. • 당연하게도 Network 사용률이 정말 정말 높습니다. 충분히 고려되어야 합니다 • Controller 에는 CF 가 붙을 수 없지만 GA(Global Accelerator) 는 붙을 수 있습니다 (동적 스트리밍이므로) • Observer 에는 CF 와 GA 모두 붙을 수 있습니다 라우팅 및 네트워크 연결 관련
  • 49.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 • 시뮬레이션은 한 번이기 때문에 사용자 수의 증가가 GPU 사용률 증가로 이어지지는 않습니다. 기획에 따라 생각보다 GPU 비용은 비례하지 않을 수 있습니다 • G 타입의 인스턴스가 가장 효율이 좋습니다. 그래픽 카드의 인코딩 퍼포먼스 때문에 큰 사이즈를 선택하는 것 보다 작은 사이즈 여러 개가 효율이 좋습니다 (테스트 결과 g4dn.2xlarge 의 GPU & CPU 사용률이 가장 효율적입니다) • G5도 검토하시는 걸 권장 드립니다. 그래픽 카드 및 게임 스트리밍 관련 Game Streaming Workload 구축 시 Tip 2
  • 50.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 • 온디맨드 용량 예약 (ODCR : On-Demand Capacity Reservations) G4계열의 인스턴스는 많은 고객사들 에게 인기있는 고사양 인스턴스입니다. ODCR 을 통해 미리 G4 인스턴스 수량 확보하는 것이 필요합니다! 서비스 론칭 또는 CBT 와 같은 중요한 이벤트가 있기 최소 2주전에 예상되는 수량을 미리 ODCR로 확보해 놓으시길 강력히 추천 드립니다. Reserved Instance나 Saving Plans을 통해서 비용절감 및 수량 확보를 미리 해 놓으시는 것도 좋은 방법이 될 수 있습니다. Game Streaming Workload 구축 시 Tip 3
  • 51.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Pixel Streaming 서버는 고사양의 그래픽 카드로 인해, 다른 인스턴스 타입에 비해서 비용 또한 높은 편이며, 수량 확보도 어려운 상황 (특히 G4dn.2xlarge 이상) • 윈도우 대신 리눅스 인스턴스 사용 약 34% 정도 비용절감 효과 • Reserved Instance 적용 온디맨드 대비 Window 25% / Linux 37% • Saving Plans 적용 온디맨드 대비 Window 18% / Linux 28% • Spot Instance 활용 온디맨드 대비 Window 43% / Linux 64% Price Type Window Linux On Demand 1.12 0.752 Reserved Instance 0.950 0.582 Saving Plans 1.037 0.669 Spot Instance 0.6455 0.2775 * G4dn.2xlarge , 시간당 금액 USD Game Streaming Workload 구축 시 Tip 4
  • 52.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Q & A
  • 53.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 참고자료 • Unreal pixel streaming document (Unreal 4,5로 픽셀스트리밍을 구현하는 문서입니다) https://docs.unrealengine.com/5.0/en-US/pixel-streaming-in-unreal-engine • Unreal pixel streaming on AWS (픽셀스트리밍을 AWS서비스로 구현하는 문서와 동영상입니다) https://github.com/aws-samples/deploying-unreal-engine-pixel-streaming-server-on-ec2 https://www.youtube.com/playlist?list=PLOYtv5sEWAuPzqVKfwIAiJqRsqBCd6K-a https://github.com/stevensu1977/UE4-PixelStreaming-Container https://aws.amazon.com/cn/blogs/china/practice-of-container-deployment-of-unreal-engine-pixel-streaming-on-g4dn-ii/ • All about WebRTC,Pixel streaming (WebRTC,픽셀스트리밍에 대한 모든 개념과 설명이 있는 문서입니다) • https://sites.google.com/site/webrtc/reference/webrtc-components https://tensorworks.com.au/blog/an-open-architecture-for-scalable-pixel-streaming/#111-webrtc https://wormwlrm.github.io/2021/01/24/Introducing-WebRTC.html • EC2 Instance type & Cost(G4,G5인스턴스 사양 및 비용 관련 문서입니다 ) https://aws.amazon.com/ec2/pricing/on-demand/ https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer https://aws.amazon.com/ko/blogs/korea/10-things-you-can-do-today-to-reduce-aws-costs/
  • 54.
    © 2022, AmazonWeb Services, Inc. or its affiliates. GAMES ON AWS 2022 Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. 하흥수 AWS heungh@amazon.com