You are here: Home - Studies∞ - GDC2013 Day3-Class2

AWS Benefits for Game Developers
Mad Science: Bring Your Game to Life with AWS

Wed March 27 2013
3022 West Hall
Patrick Prendergast at Amazon Web Services

일단 결론부터 이야기 하자면, AWS의 Elastic Beanstalk에 대한 프로모션 세션입니다.
기존의 AWS를 조합하여 강력한 웹개발서버를 자동으로 구축할 수 있게 해주는 서비스입니다.
그럼, 발표 전달을 시작하겠습니다.

Top Free App이 Top Grossing을 의미하지는 않습니다.
는 Top Free에서 71위 이지만, Top Grossing에서는 2위입니다.

그 key는 monetizing 순환고리입니다.
Monetize -> Acquire -> Retain -> 다시 Monetize…
AWS_Circle

이런 상황에서 게임 개발사들은 Amazon에서 어떤 도움들을 받을 수 있을까요?
그 해답을 말하기 앞서, AWS에 대해 좀 더 알아보겠습니다.
AWS는 완벽한 클라우드 플랫폼을 구축하고 있습니다.

다음은 AWS에서 지원하는 서비스들입니다.
(이미 많이 알려진 내용이므로 원문으로 옮겨적기만 하겠습니다)
Compute Services
- Amazon EC2; Elastic on-demand virtual services
- Auto Scaling; Automated scaling of EC2 capacity
- Elastic Load Balancing; Dynamic traffic distribution
Storage Services
- Amazon EBS; Block storage for Amazon EC2
- Amazon S3; Internet scale storage via HTTP
- CloudFront; No contract, global Content Delivery
Networking Services
- CloudWatch; Built-in monitoring and alerting
- Route 53; Scalable DNS with failover
- Virtual Private Cloud(VPC); Private, isolated section of AWS
Database Services
- Amazon RDS; Managed Relational Database Service
- DynamoDB; Managed NoSQL with privisioned throughput

아마존은 이 축적된 별개의 서비스들을 합하여 새로운 웹서비스 플랫폼을 만들었습니다.
그것이 Amazon Elastic Beanstalk 입니다.
그럼 이 Beanstalk가 어떻게 만들어졌을까요?

먼저, Core Backend를 구축합니다.
특정 region과 availability zone을 선택하고 그 안에 EC2와 MySQL을 이용하여 HTTP 서버를 구축합니다.
EC2는 S3의 저장공간을 이용하고, Load Balancer로 트래픽을 분산합니다.
그리고 확장합니다. (Scale It Out)
Auto Scaling Group을 만들어 availability zone을 확장합니다. (EC2가 복제되며, MySQL이 미러링됩니다)
그리고 S3는 CloudFront CDN과 연결되어 global 스토리지 서비스를 합니다.
마지막으로 거대하게 확장합니다. (Massive Scale)
나머지 서비스들을 다시 연결짓고, 복제하고, 지지고 볶고….
다 설명드릴 순 없지만 이런 식으로 massive 서비스가 가능하도록 확장하였다고 생각하시면 되겠습니다.

AWS Massive Scale

AWS Massive Scale

이렇게 기존의 서비스를 조합하여 구축된 Elastic Beanstalk는
- IIS, tomcat, apache 등 다양한 웹서버와
- PHP, Ruby, Node.js 등 다양한 스크립트 언어를 지원합니다.
- 개발코드 업로드는 Zip파일을 직접 올리거나 Git을 이용하여 관리를 할 수 있습니다.
- 물론, 기존처럼 EC2에 root로 접근이 가능합니다.

Beanstalk에서 어떠한 작업을 하면, Amazon의 어떤 서비스들을 이용하여 어떻게 구축하는지 history를 보여줍니다. 기존의 Amazon 서비스를 이용하던 고객들이 어떻게 처리되는지 신뢰할 수 있도록 투명하게 공개되는군요.
생성, 확장, 캐시추가, DB구축 등 다양한 기존서비스들이 어떻게 조합되는지 보여주는 것이 참 흥미로웠습니다.

물론 기존 서비스를 사용자가 Beanstalk와 같이 구성할 수 있습니다.
그러나 Beanstalk는 자동으로 손쉽게 구축할 수 있는 점, EC2에 비해 최신 기술 및 업데이트가 자동으로 적용되는 점이 추가적인 메리트로 다가옵니다.
CPU 사용량이나 트래픽을 모니터링하여 scale을 조정할 수 있습니다.
직접 모니터링 할 수도 있지만 trigger를 사용하면 거의 관리가 필요 없어집니다.
또한 scale-up 할 때 서비스가 멈추는 downtime이 전혀 없습니다.

발표 초반의 주제로 다시 돌아와서, 그럼 게임 개발자들에게 어떤 도움이 될 수 있을까요?
AWS는 초기 자본 투자가 없으며, 사용량에 따라 과금되어 유지비용이 합리적어서 서버 구축비용을 절감하고 별로 신경쓰지 않아도 잘 돌아가기 때문에, 게임 개발에만 집중할 수 있다고 합니다.

Q&A
Q: Region에 종속적으로 서비스가 가능한데, Global CDN 같은 서비스를 할 수 없나?
A: 그 기능은 3rd-party 를 통해 지원 가능하다.

Q: 도메인 설정은 어떤 방식으로 하는가?
A: CNAME으로 Amazon Domain을 세팅하면 된다.

Amazon이 매력적인 서비스를 런칭하였습니다.
얼마전 비주얼샤워에서는 게임 서비스를 위해 MS의 WindowsAzure WebServices 플랫폼을 사용해 보았습니다. 그리고 예전부터 Amazon EC2를 사용하고 있습니다.
Amazon이 MS의 이 서비스를 겨냥하여 Beanstalk를 만들었는지, 거의 동시에 같이 개발을 했는지는 알 수 없지만 상당히 비슷한 면을 가지고 있네요.
Azure WebService를 사용할 때, 지역이 한국에 없어 속도에 대해 불리한 면이 많았는데, Amazon도 역시 싱가폴과 도쿄에만 있어 속도에 대한 큰 메리트는 없어 보입니다.
그러나 Azure WebServices 에서 부족하다고 느꼈던 것들이 Beanstalk에서 지원해주는 기능이 확실히 들어 있었습니다.
아직 Beanstalk를 사용해 본 것은 아니지만, 호불호를 이곳에 적을 수는 없지만,
확실히 강력한 서비스인 것 같습니다.

Back to top