kgc 2013 awsomepiece

35
AWS + 소소소소 = 소소 AWESOMEPIECE 소소소

Upload: amazon-web-services-korea

Post on 13-Jan-2015

355 views

Category:

Technology


4 download

DESCRIPTION

2013년 9월 25-27일간 열린 KGC에서 어썸피스의 김원배님이 발표해주신 "AWS + 소셜게임 = 대박"의 자료입니다.

TRANSCRIPT

Page 1: KGC 2013 AwsomePiece

AWS + 소셜게임 = 대박AWESOMEPIECE 김원배

Page 2: KGC 2013 AwsomePiece

대박집 ?

Page 3: KGC 2013 AwsomePiece

대박집의 조건

Page 4: KGC 2013 AwsomePiece

대박집의 조건1. 맛이 좋아야 한다 .

2. 로테이션이 빨라야 한다 .

3. 월세 임금 등의 부가적인 지출이 적어야 한다 .

4. 직원이 친절해야 한다 .

Page 5: KGC 2013 AwsomePiece

대박 게임의 조건1. 맛이 좋아야 한다

=> 게임이 재밌어야 한다 .

2. 로테이션이 빨라야 한다 .=> 유저들이 원활한 서버에서 플레이해야 한다 .

3. 월세 임금 등의 부가적인 지출이 적어야 한다 .=> 합당한 유지비를 사용해야 한다 .

4. 직원이 친절해야 한다 .=> 게임 운영을 잘해야 한다 .

Page 6: KGC 2013 AwsomePiece

대박 게임의 조건1. 맛이 좋아야 한다

=> 게임이 재밌어야 한다 .

2. 로테이션이 빨라야 한다 .=> 유저들이 원활한 서버에서 플레이해야 한다 .

3. 월세 임금 등의 부가적인 지출이 적어야 한다 .=> 합당한 유지비를 사용해야 한다 .

4. 직원이 친절해야 한다 .=> 게임 운영을 잘해야 한다 .

Page 7: KGC 2013 AwsomePiece

대박 게임의 조건

로테이션이 빨라야 한다 .=> 유저들이 원활한 서버에서 플레이해야 한다 .

월세 임금 등의 부가적인 지출이 적어야 한다 .=> 합당한 유지비를 사용해야 한다 .

Page 8: KGC 2013 AwsomePiece

유저들이 원활한 서버에서 플레이해야 한다 .

소셜 게임의 출시 후 트래픽은 아무도 예측할 수 없음 . Ex) 애니팡

소셜 게임은 출시 직후가 바로 현실입니다 . 같은 장르의 게임이 동시에 출시되었는데 , 우리 서버만 뻗었다 .

Page 9: KGC 2013 AwsomePiece

합당한 유지비를 사용해야 한다 .

게임의 한달 뒤 성적이 영 좋지 않습니다 . 근데 IDC 계약 끝날려면 아직 11 개월이나 남았는데 피같은 내돈 ㅠ . ㅠ

게임이 계속 잘 되는데요 ! 대박 조짐입니다 ! 뭐요 ? 서버가 부족하다구요 ?

서버를 이렇게나 많이 쓰는데 , 돈을 더 내라구요 ?!

Page 10: KGC 2013 AwsomePiece

강연자 소개

저는 매우 일반적인 프로그래머 .

내가그린 기린그림 for Kakao 서버와 클라이언트를 개발 .

당시 개발 인원은 클라이언트 0.5 명 + 서버 0.5 명 .

작년에 프로젝트 시작과 함께 AWS 를 사용하기 시작 .

기존에는 서버 호스팅 , 웹 호스팅 등의 사용경험 .

Page 11: KGC 2013 AwsomePiece

내가그린 기린그림 for Kakao ?

Page 12: KGC 2013 AwsomePiece

클라우드의 필요성

게임 개발 기간이 3 개월 Fix!, 서버의 하드웨어까지 고려할 여유 없음 .

유저가 많을 것으로 예상되는 카카오톡 플랫폼에서 일정 대수의 서버를 미리 계약해서 , 장기간 유지하는 것은 회사 규모상 무리 .

회사 내에 서버 관리를 전문적으로 하는 인력이 0 명 이었기 때문에 , 서버호스팅을 하는 것은 결국 사형선고나 다름이 없었습니다 .

Page 13: KGC 2013 AwsomePiece

이 세상에 클라우드는 정말 많아요 .

클라우드는 정말 많습니다 .

AWS, CloudIt, Ucloud, Tcloud, Cafe24 가상 서버 호스팅 , Hostway Flex Servers, Google App Engine

저도 클라우드 참 좋아하는데요 . 제가 한번 이용해봤습니다 .

Page 14: KGC 2013 AwsomePiece

조건은 그렇게 까다롭지 않았어요 .

매니지먼트 콘솔이 편리하고 ,

클라우드 사용 노하우에 관한 자료가 구글에 풍부하고 ,

이미 다양한 기업이 사용해서 안전성이 보장 되어있고 ,

24 시간 전문 엔지니어들의 서포트를 받을 수 있으면 좋겠습니다 !

Page 15: KGC 2013 AwsomePiece

AWS 를 선택했습니다 . 왜 ?

선구자격인 AWS 의 매니지먼트 서비스의 편리함 . ( 웹 콘솔 , REST API, CLI)

Page 16: KGC 2013 AwsomePiece

AWS 를 선택했습니다 . 왜 ?

선구자격인 AWS 의 매니지먼트 서비스의 편리함 . ( 웹 콘솔 , REST API, CLI)

Page 17: KGC 2013 AwsomePiece

AWS 를 선택했습니다 . 왜 ?

REST API 를 활용한 다양한 오픈소스 라이브러리들 (boto 등 )

Page 18: KGC 2013 AwsomePiece

AWS 를 선택했습니다 . 왜 ?

이미 전세계 스타트업 벤처들이 사용한 다양한 경험기들 ( 포스퀘어 , Zynga, Wooga 등 )

Page 19: KGC 2013 AwsomePiece

AWS 를 선택했습니다 . 왜 ?

성숙화된 서비스 경험과 더 불어 , 로드 밸런서 , 무제한 데이터 스토리지 , 자동화 , 오토 스케일링까지 ! 상상하는 모든 것이 다 지원되는 무서운 클라우드 .

게다가 , 가입하면 매주 새로운 서비스가 출시됐다고 메일이 올겁니다 . AWS 는 무섭게 진화중입니다 .

Page 20: KGC 2013 AwsomePiece

하지만 좀 걱정스러웠습니다 .

AWS 의 서비스 Regions 은 ?

USA, Japan, Singapore, Europe, Sydney

그렇습니다 ! South Korea 는 없던 것입니다 . 국내 사용자가 대부분일 것으로 예상되는 상황에서 Latency 문제 .

작년 2012 년 10 월 기준으로 핑이 80~100ms 정도 였으나 , 올해가 되고 나서 이 마저도 50ms 밑으로 떨어졌습니다 .

40ms 면 소셜 게임 장르에서는 OK.

Cloudping.info 로 체크해본 Latency

Page 21: KGC 2013 AwsomePiece

내가그린 기린그림의 서버 조건

Scalable 한 DB 로 , 수 많은 Transactions 처리에도 안정적인 데이터 처리 , 백업이 이루어져야 함 .

그림 데이터가 손실되지 않고 , 언제든지 가져올 수 있는 신뢰성 높은 스토리지 .

하드웨어에 대한 고려 없이 , 편리한 서버 매니지먼트 ELB 로 로드 밸런서에 Frontend 서버를

쉽게 추가할 수 있고 , 제거 할 수 있음 .

사용하지 않는 시간의 서버를 끔으로써 비용 절감 필요 .

Page 22: KGC 2013 AwsomePiece

내가그린 기린그림 + AWS 합체 !

Scalable 한 DB 로 , 수 많은 Transactions 처리에도 안정적인 데이터 처리 , 백업이 이루어져야 함 .

Amazon RDS 를 통해 쉽게 , Replication 되는 데이터베이스를 생성할 수 있고 간단한 설정으로 Scale-Up 을 할 수 있다 .

그림 데이터가 손실되지 않고 , 언제든지 가져올 수 있는 신뢰성 높은 스토리지 . S3 는 자체적으로 데이터 안정성에 대한 리플리케이션 , 전문적인 관리가 자동적으로 진행되므로 관리 코스트는 0 에 가깝다 .

하드웨어에 대한 고려 없이 , 편리한 서버 매니지먼트 AWS 의 가상화 서버를 통해 네트워크 장비 / 하드웨어에 대한 관리 코스트를 최소화 .

ELB 로 로드 밸런서에 Frontend 서버를 쉽게 추가할 수 있고 , 제거 할 수 있음 . ELB 와 서버를 연결하는 작업도 웹 콘솔 , CLI, third party 를 통해 매우매우 쉽게 할 수 있음 .

사용하지 않는 시간의 서버를 끔으로써 비용 절감 필요 . AWS 에서 제공하는 AutoScale 을 통해 , 서버를 유동적으로 On/Off 가능함 .

Page 23: KGC 2013 AwsomePiece

AWS Auto Scaling

Page 24: KGC 2013 AwsomePiece

초기 Topology

ELB(HTTPS)

WebFrontend

RDS

Device

Device

Device

HTTPS

HTTPS

HTTPS

WebFrontend

WebFrontend

WebFrontend

WebFrontend

Memcached

• 비동기 게임이기 때문에 ELB 의 Persistency 기능은 사용하지 않음 .• ELB 는 Requests 에 따라 자동적으로 Scale 됩니다 .• RDS 의 Multi-AZ 를 사용하여 , 데이터 자동 Replication.• Web Frontend 는 Stateless 로 설계하여 쉽게 Auto-scaling 가능 .

S3

Page 25: KGC 2013 AwsomePiece

그런데 !

프론트엔드 서버 , 로드 밸런스에는그렇게 큰 이슈가 없었습니다 !

하지만 , DB 가 뻗어버렸네요 . 당시 도쿄 Region 에서쓸 수 있는 아마존 RDS 최고 사양을 사용하고 있었습니다 .

예상을 뛰어넘는 동접으로 , DB 서버에 부하가 많이 간게 원인 .

Page 26: KGC 2013 AwsomePiece

결국에 !

DB 를 옮겨야할 것 상황이 왔습니다 . Tokyo 의 RDS 가 현재와 달리 Scale-up 에 한계가 있어서 , 옮길 수 없음 .

어떤한계 ? ( 당시 용량이 1TB 까지만 지원 , 너무나 비싼 Dy-namo NoSQL 가격 ) RDS 현재는 3TB/ 30,000 Provisioned IOPS 를 지원함 . 현재 Dynamo NoSQL 은 당시가격보다 90% 저렴해짐

개별 Instance 에 RDB 와 Cassandra 를 설치하여 운영하게 됨 .향후에는 관리 COST 를 고려해 RDS 도입을 재검토중 .

Page 27: KGC 2013 AwsomePiece

현재 Topology

ELB(HTTPS)

WebFrontend

Small RDS

Device

Device

Device

HTTPS

HTTPS

HTTPS

WebFrontend

WebFrontend

WebFrontend

WebFrontend

Memcached

Cassandra

• RDS 를 최소한의 정보를 저장하는 DB 로 사용 .• EC2 로 직접 DB 를 구축하여 , 튜닝• 수많은 오답 데이터를 저장하기 위해 , RDS 대신 Cassandra 를 도입하여 , 해결

EC2 DB

대부분의 데이터마이그레이션

S3

Page 28: KGC 2013 AwsomePiece

운영해보니…

3 억개의 그림 데이터를 S3 에 보관중 . 손실률 0%

50 억개의 오답에 대한 메타 데이터를 , Cassandra Backend*2 로 서비스중

CloudWatch 가 개별 인스턴스의 상태를 파악하고 , 자동적으로 Scale Up/Down

다수의 서버에 배포 , 배치 명령 실행은 Fabric 과 boto 같은 third-party 로 쉽게 해결 .

하드웨어에 대한 직접적 경험없이 개념적인 이해만으로 , 클라우드 서비스를 이용 .

Page 29: KGC 2013 AwsomePiece

도입 전 확인해야 할 사항https://aws.amazon.com/ko/contact-us/

Page 30: KGC 2013 AwsomePiece

빠르고 편리한 Premium AWS Sup-port

1. 라이브채팅 (Chat Live)

2. 전화연결 (Call me)

3. 게시판 질의응답(Submit Case)

Page 31: KGC 2013 AwsomePiece

Madeira Cloud Third-party AWS

Visualization Tool

Page 32: KGC 2013 AwsomePiece

AWS SNS 서비스 for Mobile Amazon Simple Notification Service

수십 수백만명의 유저들에게 Reliable 하고 Fast 하게 푸시 메시지를 보내는 것은 부담스러운 일 .

최근 Android, Ios, Kindle Fire Push Notification 전송 서비스 시작 !

비용도 Urban airship 이나 기타 유사 서비스에 비해서 50% 이상 저렴 .

Page 33: KGC 2013 AwsomePiece

AWS Console for Mobile

Page 34: KGC 2013 AwsomePiece

그래도 , 비싸지 않나요 ?

Autoscale 을 통한 서버의 사용량에 따라 On/Off 로 새벽 시간대의 서버 비용을 30% 절감할 수 있었습니다 .

그것도 부족하면 , On-Demand 이외에 Reserved 와 Spot 요금제를 결합해서 사용함으로써 비용을 최적화 할 수 있습니다 . Reserved Instance 계약을 통해 1 년 ~3 년 단위로 계약함으로써 , 비용을 최대 71% 까지 낮출 수 있음 .

심지어 더 절약하고 싶다면 , AWS 에 연락해서 컨설팅을 받아보자 ! 성심성의껏 도와줄 것입니다 !

무료 컨설팅 문의는 아마존 한국 지사에 [email protected]

Page 35: KGC 2013 AwsomePiece

대박냅시다 !

감사합니다 !

Kernysdev @ gmail.com