33
AWS 위에서의 Dev & Test, 그리고 비용 위메이드 강명완

[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

Embed Size (px)

DESCRIPTION

AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드 (강명완 시스템 엔지니어, 기술본부 인프라운영팀)

Citation preview

Page 1: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

AWS 위에서의 Dev & Test, 그리고 비용

위메이드 강명완

Page 2: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

Who am I ?

■ 이 력 1. ㈜구름인터렉티브(2007년 04월 ~ 2008년 07월) - 시스템운영팀 내 시스템엔지니어로 업무 - 게임 시스템 구축 및 운용 2. ㈜갈라랩_구 이온소프트(2008년 8월 ~2012년 1월) - 기술지원팀 내 시스템엔지니어로 업무 - 국내 및 해외 시스템 구축 및 운용 3. ㈜위메이드(2012년 1월 ~ 현재) - 인프라운영팀 내 시스템엔지니어로 업무 - 국내 PC 게임 시스템 구축 및 운용 - 모바일 게임 시스템 구축 및 운용

Page 3: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

개발/테스트 환경의 3가지 특징

일시적으로 필요하며, 끝나면 사라짐

Disposable

운영 환경으로 빠른 전환이 필요함

Fast Transition to Prod

제한이 없는 리소스 필요

Numerous

Page 4: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 하기 전에 Wemade가 한 일?

테스트 하기 전에 Wemade가 한 일?

Page 5: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 하기 전에 Wemade가 한 일?

1. 해외 진출의 숙제!! 2. 인프라는 어디에? 3. 가상화? CLOUD?

Page 6: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 환경 구성하기

기존 IDC를 확장한다

Page 7: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

아마존 VPC를 세팅한다 (Virtual Private Cloud)

테스트 환경 구성하기

Page 8: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 환경 구성하기

원하는 테스트 환경을 VPC 내에 세팅합니다.

Page 9: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 환경 구성하기

기존 IDC와 Amazon VPC와 VPN으로 연결함

Page 10: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트 환경 구성하기

테스트가 끝난 후에는 모두 삭제하고 VPN도 종료

Page 11: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

테스트의 일시성 측면

아마존과 IDC 환경 비교

성능 테스트 중 성능 테스트 후

• Test만의 목적으로 100대, 200대의 Resource를 준비해 놓기는 어려움

• Test가 완료 된 이후에는 바로 Turn Off하여 비용 Zero

$100 $100

$100 $0

Page 12: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

빠른 운영환경 전환

템플릿화 가능 (AMI)

Custom building block

Generic image

• 테스트가 완료되어 검증된 인스턴스에 대해서는 AMI(Amazon

Machine Image 통해 S3에 저장 (99.999999999% 가용성)

Page 13: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

빠른 운영환경 전환 (Cont.)

운영 시 서버 Spec 즉시 업그레이드

• Change Instance Type 기능을 통

해 Scale Up이 즉시 가능

Page 14: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

제한없는 Resource 활용

• AMI로부터 Instance 생성

• Game Server Module 설치

• 단위 성능 테스트

• 기능 테스트

Page 15: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

제한없는 Resource 활용

• 제한 없는 인스턴스 생성

• Scalability 테스트 용이

Page 16: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

제한없는 Resource 활용

• 테스트가 끝난 후 Launching 시

까지는 다시 축소 개발 모드

Page 17: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

Page 18: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB란 (Elastic Load Balancing)?

• Traffic을 Backend로 고르게

분산시켜 주는 기능

• DNS Name으로 접근 가능

• ELB는 하나의 하드웨어가 아

닌 여러개의 Component로

구성된 서비스임

• 내부적으로 Scale-up, Scale-

out을 하여 사용자는 하나의

ELB만 사용 하면 됨

myLB-1234567890.us-east-1.elb.amazonaws.com

ELB

What is ELB?

Page 19: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

ELB의 동작 원리

ELB

• 사용자의 증감에 따라 ELB가 가지고 있는

Resource 역시 Scale Up/Down 함

• Scale Up이 되는 경우 IP가 여러개가

Resolve되거나 IP가 바뀌는 경우를 봄

• 한번 변화가 있을 때 1분~7분 정도의 시간

이 소요되는 것으로 보임

• 만약 5분 내에 기존 사용자의 수보다 50%이

상 많은 사용자가 몰리는 경우 Pre-Warm

통해 해결할 수 있음

Page 20: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

Prewarm 정보

• Pre-warm은 AWS

Support에 가입이 되어

있어야 신청가능

• TPS, Transaction Size,

Use Case등을 명기하여

Support 신청

• 해당 Load를 견딜 수 있

는 ELB를 PreWarm해

• ELB Name: myELB.us-west-1.elb.amazonaws.com

• Traffic delta OR request rate expected at surge: 1000 to 10,000 in 5 minutes

• Requests per second: 50,000/sec

• Request + Response size (bytes): 10KBytes …… …… • Use-case: ELB Performance Test

• Period: permanent by production - Start date: 2014. 1. 24 - End Date: 2014. 2.24

Page 21: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

Prewarm 적용 사례

• nGrinder 을 이용하여 성능 테스트 결과

(Pre-Warm 신청 전 성능 테스트 그래프)

Page 22: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

Prewarm 적용 사례

• nGrinder 을 이용하여 성능 테스트 결과

(Pre-Warm 적용 후 성능 테스트 그래프)

Page 23: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

ELB Monitoring Metrics

• Latency : ELB와 Back-End 서버간의 지연시간

• ELB HTTP 4XX – 5XX : ELB 단에서 생성된 Error Code

• HTTP 2XX – 5XX : BackEnd 단에서 생성된 Response Code

• SurgeQueueLength : ELB에서 Backend로 가지 못하고 Queue에 있는 요청

• Spillovers : SurgeQueue가 꽉 채워져 ELB에 의해 Reject 된 요청

Page 24: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

ELB Performance Test

Tips for ELB Testing

• Sticky Sessions 설정이 되어있는 경우 테스트 시 반드시 Unique한 User로 인식이 되는지 확인해야함. 아닌 경우 특정 Backend 서버로만 트래픽이 몰리는 현상 발생

• ELB의 Connection Timeout은 60초로 초기 설정되어있으나, AWS Support를 통해 17분까지 조정이 가능함

• ELB는 관리가 필요없고 알아서 Scaling이 되고 가용성이 높은 장점이 있음

• 만약 특정기능 사용을 원하는 경우 HAProxy, Riverbed Stingray 등과 같은 ELB를 MarketPlace에서 검색할 수 있음

Page 25: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

AWS 위에서 비용 최적화

Page 26: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

Cost Optimization

Pay as you go!

집에서 전등을 끄면 전기세가 안 나오듯

클라우드에서 서버를 끄면

비용이 안나감

80% 20%

50% 50%

서버 비용 Traffic

좋은 예

나쁜 예

하나의 서버당 효율을 높여라!

Page 27: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

비용 절감을 위한 3가지 옵션

선납금을 통한 할인, 5개월 만에 손익분기점 도달

Reserved Instance

10% 미만의 Low Utilization 스펙 Down

Instance Type

트래픽에 따라 유동적으로 Provisioning

Elastic Capacity

1년 최대 45% Saving

한단계 Spec Down 시

50% Saving

Auto Scaling 적용 시

30% 이상 Saving

Page 28: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

비용절감 보안 가용성 성능 • Low Utilization 되고 있는 인스턴스 자체 파악

• RI 추천 기능

Trusted Advisor

Page 29: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

• Trusted Advisor 의 사례 - 현재 사용하고 있는 컨텐츠(EC2, ELB, RDS, Route53)등에 대해 불 필요하게 사용되는 리소스를 측정하여 고객에게 제시하여 비용 절감의 효과를 볼 수 있다.

Trusted Advisor

Page 30: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

• Trusted Advisor 의 사례 - 현재 위메이드에서는 AWS에서 제시하고 있는 비용 절감 3가지 방법 중에 Instance Type 변경 및 Elastic Capacity(Auto Scaling) 을 올해 2월 부터 적용하여 올해 1월 AWS 사용료 대비 25%의 비용을 절감한 상태입니다. - 비용 절감을 이루고 번외로 인스턴스도 추가적으로 증가한 상태이므로 실질적인 비용 절감은 MAX 사용료 대비 30% 정도 예상하고 있습니다.

Trusted Advisor

Page 31: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

…….

적절한 Instance Type 고르기

large에서 medium으로 내리게 되면 50%를 바로 절감

-50%

-50%

-50%

X2

X2

X2

Page 32: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

http://www.rankey.com/images/infographic/2013/rankey_2013infographic01_timeline_201402.png

우리는 이정도는 준비해 놔야지..

(X)

Auto Scaling

Page 33: [Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드

Auto Scaling