29

Click here to load reader

AWS GameServer Management

Embed Size (px)

DESCRIPTION

GameServer Management using Amazon Web Service

Citation preview

Page 1: AWS GameServer Management

AWS를 이용한 서버 운영

2013. 07. 12.

최재영

Page 2: AWS GameServer Management

AWS 소개

Chapter 1.

2

• Cloud & AWS

• EC2, S3, CloudFront, RDS

• Server Limits

• Pricing

• Console & SDK

Page 3: AWS GameServer Management

AWS?

• Amazon Web Service

• Cloud computing

3

http://aws.amazon.com/

Page 4: AWS GameServer Management

Cloud computing?

• the on-demand delivery of IT resources via the Internet with pay-

as-you-go pricing

4

http://aws.amazon.com/what-is-cloud-computing/

Page 5: AWS GameServer Management

AWS Game hosting5

http://aws.amazon.com/ko/game-hosting/

낮은 비용클라우드 리소스 종량 과금제

확장 가능몇 분만에 가상 머신 추가

빠른 배포 시간하드웨어 도착을 기다릴 필요 없이 바로 배포

고가용성안정성이 높은 서비스와 내결함성이 우수한 여러 가용 영역

Page 6: AWS GameServer Management

Region & AZ

• 하나의지리적구역에있는가용영역

• 독립된전력망, 네트워크를갖춤

• 지역에따라사용금액이다르고,

네트워크반응성차이가있음

• 한지역(Region)에는

여러가용구역(Available Zone)을갖음

6

Page 7: AWS GameServer Management

EC2 (Elastic Compute Cloud)

• Virtual servers in the Cloud

• AMI(Amazon Machine Instance)를 실행하는서버인스턴스가동

• EBS(Elastic Block Storage) 사용, EIP(Elasic IP) 부여

• EIP 미설정시서버재시작마다 Public/Private DNS가변경됨

7

Page 8: AWS GameServer Management

S3 (Simple Storage Service)

• 내고장성(fault-tolerant) 데이터저장소

• bucket 내 object로파일관리 (folder 개념없음)

– Console이나 Toolkit마다 Folder를 emulation 해줌 (_$FOLDER$_)

• ACL을통한 permission 부여

• 데이터전송부담이 EC2에비해낮음 (비용은동일)

• EC2와의데이터전송비용은없음

8

http://lzclient.s3-ap-northeast-1.amazonaws.com/UpdateHistory.txt

bucket object

Page 9: AWS GameServer Management

CloudFront

• Web service for content delivery

• S3 bucket으로 CloudFront Distribution 생성

• 변경된 S3 bucket object가반영되려면시간이필요함(동기화주기)

혹은직접 invalidation 수행. edge location동기화완료예측어려움

• 데이터전송비용이 S3에비해저렴

9

Page 10: AWS GameServer Management

RDS (Relational Database Service)

• 관계형데이터베이스를 Cloud service로제공

• MSSQL, MySQL, Oracle을지원함

• Scaling Up(upgrade instance) & Out(sharding, replica)

10

Page 11: AWS GameServer Management

Service Limits

• EC2 on-demand instances (보통) 20개

• EC2 spot instances 100개

• Elastic IP Address 5개

• RDS 40개

• VPC는별도

• 한도증가요청시업무일 2-3일소요

11

http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html

http://aws.amazon.com/ko/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2

https://aws.amazon.com/ko/contact-us/ec2-request/

https://aws.amazon.com/ko/contact-us/eip_limit_request/

Page 12: AWS GameServer Management

Pricing

• CPU 사용시간(%/sec), 전송데이터양(GB/s), 월간데이터스토리지(GB/s)

• Oregon보다 Tokyo가더비쌈

• EC2 Windows가 Linux보다 비쌈

• S3 PUT, COPY, POST, LIST 요청에도요금이 부과됨

• CloudFront HTTP보다 HTTPS가 더비쌈

12

http://aws.amazon.com/ko/pricing/

EC2

CloudFront

Page 13: AWS GameServer Management

Pricing (Example)

• Game Server (EC2, RDS)

– Windows EC2 M1 Extra Large (8ECUs, 15GiB MEM) $0.7/h → $504

– MSSQL Large Instance (4ECUs, 7.5GiB MEM) $1.167/h → $840

– Network (Out) 1MiB/s = 2.6TiB/month → $520

• CDN (S3, CloudFront)

– 1GB (Client) $0.1/GB → $0.1

– 10TB (10,000 Download) $0.137/GB → $1,370

• CloudFront (Korea) $0.120/GB → $1,200

13

http://aws.amazon.com/ko/pricing/

Page 14: AWS GameServer Management

Charges

• 사용한자원에따른요금

14

https://portal.aws.amazon.com/gp/aws/developer/account/index.html

Page 15: AWS GameServer Management

Free tier

• 신규 AWS 고객첫 12개월대상으로적용

• EC2

– Linux/Unix/RHEL/Windows Micro instance 매달 750시간무료

• S3

– 5GB, GET 20,000건, PUT 2,000건무료

• RDS

– MSSQL Express Edition Micro instance 20GB, 매달 750시간무료

15

http://aws.amazon.com/ko/free/

Page 16: AWS GameServer Management

http://aws.amazon.com/ko/console/

AWS Management Console

• Web interface의Management Console

16

Page 17: AWS GameServer Management

.NET AWS SDK

• AWS API에대한 .NET Wrapper

• AWS Explorer

17

http://aws.amazon.com/ko/sdkfornet/

Page 18: AWS GameServer Management

게임 서버 운영

Chapter 2.

18

• Step by Step

• Cloud Design Pattern

Page 19: AWS GameServer Management

Game Hosting!

• EC2를사용한게임서버운영

• 바이너리배포를위한 S3/CloudFront 사용

• RDS/DynamoDB를사용한데이터저장

19

Auto scaling Group

Availability Zone #1

Logs

EC2 Instance

GameServer

CloudFrontDistribution

MSSQL Instance

DynamoDB

Elastic Load Balancing

Game Data

EC2 Instance

GameServer

AMI

Game ClientPackages

Upload

Download

AmazonS3 Bucket

Page 20: AWS GameServer Management

Step 1. 서버 구동

1) 적절한 OS를선택하여 Instance 생성

2) 필요한프로그램설치 (.NET Framework 나 mono 등)

3) 기타환경설정 (필요에따라 EBS mount)

4) AMI 생성

5) 서버바이너리업로드

6) 서버구동

7) Elastic IP 부여

20

장애 발생 시 해당 Instance에서 EBS 분리

새 Instance에 mount한 뒤 대응 서버 구동

새 Instance 구동 준비 노력 절감

빠른 장애 대응 Instance 구동 및 빠른 서버 확장

Page 21: AWS GameServer Management

Step 2. CDN 구축

1) S3 Bucket 생성

2) AWS API 등을사용하여배포파일업로드

3) S3를 CloudFront에 Distribution

4) CloudFront 전달위해 Invalidation

5) Launcher는 CloudFront 혹은 S3로부터다운로드

21

언제 edge location으로 전달될지 모름

CloudFront의 Invalidation이 InProgress 상태이면

최신 내용이 아니라는 것이므로 S3로부터 다운로드 해야 함

Page 22: AWS GameServer Management

운영 패턴

• 준비된 AMI로 Instance 생성및서버구동후 Elastic IP 연결

• 동기화할데이터가있다면 EBS로구성하고, 장애서버의 EBS를분리한

후새서버에연결해서사용

• 더높은사양의 Instance에서서버구동후 Elastic IP 연결 (Scale Up)

• 추가 Instance 구동후 (Scale Out) 처리분산 (ELB)

22

Page 23: AWS GameServer Management

Floating IP

• 서버패치, 장애복구, 업그레이드작업등을처리할때정지시간최소화

• EIP 변경이므로 DNS의 TTL에영향을주지않고바로변경가능

23

Route 53

Elastic IP

EC2 EC2

IP 교체서버 장애

(1) (2)

Page 24: AWS GameServer Management

Server Swapping

• 새 Instance에기존가상디스크(EBS)를연결하여장애복구

• EBS 장애를고려하여 snapshot 백업도필요

24

EC2 EC2

EBS를 새로운EC2에 장착

EC2 장애

Amazon EBSAMI

동일한 AMI에서EM2 가동

(1)

(3)

(2)

Page 25: AWS GameServer Management

Scale up / down

• 서버자원에맞는 Instance 변경

25

EC2

EC2

Change Instance Type

EC2

small

micro

xlarge

Page 26: AWS GameServer Management

Scale out / in

• 로드밸런서를사용해트래픽양에따라가상서버수를동적으로변경

• 갑작스런트래픽변동은대응하기어려움

26

EC2 EC2감사

AMI

(1)

Auto scaling Group

EC2

ELB

CloudWatch

Alarm Auto Scaling

설정 조건으로알람 가동

(2)

통지(3)

서버 가동(4)

Page 27: AWS GameServer Management

Scheduled Scale out

• 트래픽이급증하는시간을알경우사전에 Scale out을수행

• 트래픽이떨어지는시간대를지정하여 Scale in을수행

27

EC2 EC2

AMI

Auto scaling Group

EC2ELB

Auto Scaling정해진 시각에가동 지시

Page 28: AWS GameServer Management

참고

• AWS 한국사용자모임

https://www.facebook.com/groups/189675924467773/

• 아마존웹서비스완벽활용법, 위키북스

• 아마존웹서비스클라우드디자인패턴설계가이드, JPub

28

Page 29: AWS GameServer Management

EOF29

:)