본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...Amazon Web Services Korea
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션
게임 서비스에서 네트워크 안정성과 성능은 게이머들의 경험에 핵심적인 역할을 합니다. 이 세션에서는 AWS에서 게임 서비스의 높은 PPS 요구 사항, 낮은 지연 속도, 안정된 연결 지속성을 달성할 수 있는 EC2, VPC, Direct Connect, Cloudfront등의 다양한 기능을 소개하고 데모를 통해 그 효과를 직접 보여 드리고자 합니다.
AWS 웨비나 시리즈를 마감하면서 첫 강연부터 마지막 강연까지 여러분이 가장 궁금해 했던 10가지 질문에 대해 심층적으로 다루어 보고자 합니다. 각 강연에서 공통으로 다루어졌던 주제 및 질문 시간을 통해서 가장 많이 물어보신 사항과 모든 분들이 꼭 알고 계시면 좋을 내용을 모을 예정입니다.
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...Amazon Web Services Korea
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션
게임 서비스에서 네트워크 안정성과 성능은 게이머들의 경험에 핵심적인 역할을 합니다. 이 세션에서는 AWS에서 게임 서비스의 높은 PPS 요구 사항, 낮은 지연 속도, 안정된 연결 지속성을 달성할 수 있는 EC2, VPC, Direct Connect, Cloudfront등의 다양한 기능을 소개하고 데모를 통해 그 효과를 직접 보여 드리고자 합니다.
AWS 웨비나 시리즈를 마감하면서 첫 강연부터 마지막 강연까지 여러분이 가장 궁금해 했던 10가지 질문에 대해 심층적으로 다루어 보고자 합니다. 각 강연에서 공통으로 다루어졌던 주제 및 질문 시간을 통해서 가장 많이 물어보신 사항과 모든 분들이 꼭 알고 계시면 좋을 내용을 모을 예정입니다.
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...Amazon Web Services Korea
컨테이너를 활용할 수 있는 Workload는 정해져 있는 걸까? 이제는 주변에서 쉽게 보고 들을 수 있는 컨테이너, 하지만 정작 내가 쓰려면 어떻게 써야 할지 감을 잡기 어려운 것도 사실이죠. 유명 게임, 웹 서비스에서 컨테이너를 어떻게, 왜 쓰게 되었는지를 알아봅니다. 그리고 컨테이너에 올리는 작업의 특성을 파악하면 활용할수 있는 팁들까지, 실사례를 통해서 알아봅니다!
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/z68l2X5KoC4
AWS 클라우드는 초기에 적은 비용으로 웹 서비스를 시작하고, 향후 사업이 발전했을 때 천만 이상의 유저가 사용할 수 있는 고가용성, 확장성, 민첩성이 뛰어난 웹 서비스를 만들 수 있습니다. 본 세션에서는 작은 서비스로 시작하여 AWS의 다양한 서비스를 사용하여 천만 이상의 대규모 유저 트래픽을 수용할 수 있는 웹 서비스로 발전시키는 것을 단계별로 오토스케일링, 트래픽 경감, 모니터링과 자동화, 고가용성 확보를 위한 아키텍처 구성 방법을 소개합니다.
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek
대부분의 중소 모바일 게임 업체는 앱을 잘 만들기에도 시간이 모자라 출시일을 잘 맞추기 급급한 상황이다. 그러다 보니 운영을 위한 툴은 소홀히 개발하는 경우가 대부분이고 운영 캠페인은 날림으로 개발하거나 그때 그때 개발자가 필요한 부분만 개발하기 일쑤다. 그러다보니 마케터는 결국 늘 개발자 눈치만 살피게 된다. 필자는 블루윈드에서 이러한 문제를 절감했고 '모바일 게임 개발사가 앱 개발에만 집중할 수 있게 해주고 싶다'는 IGAworks의 철학에 공감하여 라이브 오퍼레이션 프로젝트를 시작하게 되었다.
라이브 오퍼레이션의 개발 중점과제는 5가지였다. 첫번째, 다수의 개발사가 하나의 큰 클라우드 시스템을 사용하도록 multi-tenant 인프라를 구축해야 한다. 두번째, TCO(Total cost of ownership)를 최소화해야 한다. 세번째, 앱의 핵심유저를 실시간으로 그룹화하여 타게팅 캠페인을 할 수 있어야 한다. 네번째, 캠페인의 성과를 마케터에게 실시간으로 피드백해야 한다. 다섯째, 3개월 안에 정식 서비스가 되어야 한다는 점이었다. (왜 우리에게 주어지는 시간은 늘 3개월인가) 그리고 당연하지만 이 서비스를 혼자 개발해야 했다.
이 다섯가지 이슈를 해결하기 위하여 AWS 클라우드 상에 생산성과 성능이 검증된 node.js 와 mongodb를 이용하여 서비스 백엔드를 구성하였고, multi-tenant를 구성하기 위한 여러가지 고민과 그 해결책을 직접 구현하였다. 필자는 node.js와 mongodb를 사용해 본 경험이 충분하다 생각했지만 대규모 정식 서비스를 진행하며 많은 함정에 빠졌고 결국 해결했다.
이 발표를 통해 청강자는 node.js와 mongodb를 이용하여 multi-tenant 인프라를 구축해야 할 때 고려해야 할 설계 방식과 기술적인 고민, 그것에 대한 현실적인 해법을 얻을 수 있다.
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
모바일 퍼스트 시대에서 점점 더 고객과의 접점이 늘어나고 있습니다. 다양한 비금융 애플리케이션은 고객들의 수요에 탄력적으로 대응할 수 있는 시스템이 필요합니다. 본 강연에서는 AWS 위에서 최적의 솔루션을 구현하는 방안에 대해 공유합니다.
연사: 이창수 솔루션 아키텍트, 아마존 웹서비스
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
Database Migration Service(DMS)는 RDBMS 이외에도 다양한 데이터베이스 이관을 지원합니다. 실제 고객사 사례를 통해 DMS가 데이터베이스 이관, 통합, 분리를 수행하는 데 어떻게 활용되는지 알아보고, 동시에 데이터 분석을 위한 데이터 수집(Data Ingest)에도 어떤 역할을 하는지 살펴보겠습니다.
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
Amazon ElastiCache는 Redis 및 MemCached와 호환되는 완전관리형 서비스로서 현대적 애플리케이션의 성능을 최적의 비용으로 실시간으로 개선해 줍니다. ElastiCache의 Best Practice를 통해 최적의 성능과 서비스 최적화 방법에 대해 알아봅니다.
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
ccAmazon Aurora 데이터베이스는 클라우드용으로 구축된 관계형 데이터베이스입니다. Aurora는 상용 데이터베이스의 성능과 가용성, 그리고 오픈소스 데이터베이스의 단순성과 비용 효율성을 모두 제공합니다. 이 세션은 Aurora의 고급 사용자들을 위한 세션으로써 Aurora의 내부 구조와 성능 최적화에 대해 알아봅니다.
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
오랫동안 관계형 데이터베이스가 가장 많이 사용되었으며 거의 모든 애플리케이션에서 널리 사용되었습니다. 따라서 애플리케이션 아키텍처에서 데이터베이스를 선택하기가 더 쉬웠지만, 구축할 수 있는 애플리케이션의 유형이 제한적이었습니다. 관계형 데이터베이스는 스위스 군용 칼과 같아서 많은 일을 할 수 있지만 특정 업무에는 완벽하게 적합하지는 않습니다. 클라우드 컴퓨팅의 등장으로 경제적인 방식으로 더욱 탄력적이고 확장 가능한 애플리케이션을 구축할 수 있게 되면서 기술적으로 가능한 일이 달라졌습니다. 이러한 변화는 전용 데이터베이스의 부상으로 이어졌습니다. 개발자는 더 이상 기본 관계형 데이터베이스를 사용할 필요가 없습니다. 개발자는 애플리케이션의 요구 사항을 신중하게 고려하고 이러한 요구 사항에 맞는 데이터베이스를 선택할 수 있습니다.
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
실시간 분석은 AWS 고객의 사용 사례가 점점 늘어나고 있습니다. 이 세션에 참여하여 스트리밍 데이터 기술이 어떻게 데이터를 즉시 분석하고, 시스템 간에 데이터를 실시간으로 이동하고, 실행 가능한 통찰력을 더 빠르게 얻을 수 있는지 알아보십시오. 일반적인 스트리밍 데이터 사용 사례, 비즈니스에서 실시간 분석을 쉽게 활성화하는 단계, AWS가 Amazon Kinesis와 같은 AWS 스트리밍 데이터 서비스를 사용하도록 지원하는 방법을 다룹니다.
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
Amazon EMR은 Apache Spark, Hive, Presto, Trino, HBase 및 Flink와 같은 오픈 소스 프레임워크를 사용하여 분석 애플리케이션을 쉽게 실행할 수 있는 관리형 서비스를 제공합니다. Spark 및 Presto용 Amazon EMR 런타임에는 오픈 소스 Apache Spark 및 Presto에 비해 두 배 이상의 성능 향상을 제공하는 최적화 기능이 포함되어 있습니다. Amazon EMR Serverless는 Amazon EMR의 새로운 배포 옵션이지만 데이터 엔지니어와 분석가는 클라우드에서 페타바이트 규모의 데이터 분석을 쉽고 비용 효율적으로 실행할 수 있습니다. 이 세션에 참여하여 개념, 설계 패턴, 라이브 데모를 사용하여 Amazon EMR/EMR 서버리스를 살펴보고 Spark 및 Hive 워크로드, Amazon EMR 스튜디오 및 Amazon SageMaker Studio와의 Amazon EMR 통합을 실행하는 것이 얼마나 쉬운지 알아보십시오.
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
로그 및 지표 데이터를 쉽게 가져오고, OpenSearch 검색 API를 사용하고, OpenSearch 대시보드를 사용하여 시각화를 구축하는 등 Amazon OpenSearch의 새로운 기능과 기능에 대해 자세히 알아보십시오. 애플리케이션 문제를 디버깅할 수 있는 OpenSearch의 Observability 기능에 대해 알아보세요. Amazon OpenSearch Service를 통해 인프라 관리에 대해 걱정하지 않고 검색 또는 모니터링 문제에 집중할 수 있는 방법을 알아보십시오.
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
데이터 거버넌스는 전체 프로세스에서 데이터를 관리하여 데이터의 정확성과 완전성을 보장하고 필요한 사람들이 데이터에 액세스할 수 있도록 하는 프로세스입니다. 이 세션에 참여하여 AWS가 어떻게 분석 서비스 전반에서 데이터 준비 및 통합부터 데이터 액세스, 데이터 품질 및 메타데이터 관리에 이르기까지 포괄적인 데이터 거버넌스를 제공하는지 알아보십시오. AWS에서의 스트리밍에 대해 자세히 알아보십시오.
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
이 세션에 참여하여 Amazon Redshift의 새로운 기능을 자세히 살펴보십시오. Amazon Data Sharing, Amazon Redshift Serverless, Redshift Streaming, Redshift ML 및 자동 복사 등에 대한 자세한 내용과 데모를 통해 Amazon Redshift의 새로운 기능을 알고 싶은 사용자에게 적합합니다.
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
데이터는 혁신과 변혁의 토대입니다. 비즈니스 혁신을 이끄는 혁신은 특정 시점의 전략이나 솔루션이 아니라 성장을 위한 반복적이고 집단적인 계획입니다. 혁신에 이러한 접근 방식을 채택하는 기업은 전략과 비즈니스 문화에서 데이터를 기반으로 하는 경우가 많습니다. 이러한 접근 방식을 개발하려면 리더가 데이터를 조직의 자산처럼 취급하고 조직이 더 나은 비즈니스 성과를 위해 데이터를 활용할 수 있도록 권한을 부여해야 합니다. AWS와 Amazon이 어떻게 데이터와 분석을 활용하여 확장 가능한 비즈니스 효율성을 창출하고 고객의 가장 복잡한 문제를 해결하는 메커니즘을 개발했는지 알아보십시오.
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...Amazon Web Services Korea
데이터는 최종 소비자의 성공에 초점을 맞춘 디지털 혁신에서 중추적인 역할을 하고 있습니다. 모든 기업들은 데이터를 자산으로 사용하여 사례 제공을 추진하고 까다로운 결과를 해결하고 있습니다. AWS 클라우드 기술과 분석 솔루션의 강력한 성능을 통해 고객은 혁신 여정을 가속화할 수 있습니다. 이 세션에서는 기업 고객들이 클라우드에서 데이터의 힘을 활용하여 혁신 목표를 달성하고 필요한 결과를 제공하는 방법에 대해 다룹니다.
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
LG ThinQ는 LG전자의 가전제품과 서비스를 아우르는 플랫폼 브랜드로서 앱 하나로 간편한 컨트롤, 똑똑한 케어, 스마트한 쇼핑까지 한번에 가능한 플랫폼입니다. ThinQ 플랫폼은 글로벌 서비스로 제공되고 있어, 작업 시간을 최소화하고, 서비스의 영향을 최소화 할 필요가 있었습니다. 따라서 DB 버전 업그레이드 작업 시 애플리케이션 배포가 필요없는 Blue/Green Deployment 방식은 최선의 선택이 되었습니다.
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...Amazon Web Services Korea
온프레미스 분석 플랫폼에는 자원 증설 비용, 자원 관리 비용, 신규 자원 도입 및 환경 설정의 리드타임 등 다양한 측면에서의 한계가 존재합니다. 이에 KB국민카드에서는 기존 분석 플랫폼의 한계를 극복함과 동시에 시너지를 낼 수 있는 클라우드 기반 분석 플랫폼을 설계 및 도입하였습니다. 본 사례 소개는 KB국민카드의 데이터 혁신 여정과 노하우를 소개합니다.
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
SK Telecom의 망관리 프로젝트인 TANGO에서는 오라클을 기반으로 시스템을 구축하여 운영해 왔습니다. 하지만 늘어나는 사용자와 데이터로 인해 유연하고 비용 효율적인 인프라가 필요하게 되었고, 이에 클라우드 도입을 검토 및 실행에 옮기게 되었습니다. TANGO 프로젝트의 클라우드 도입을 위한 검토부터 준비, 실행 및 이를 통해 얻게 된 교훈과 향후 계획에 대해 소개합니다.
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
2022년 코리안리는 핵심업무시스템(기간계/정보계 시스템)을 AWS 클라우드로 전환하는 사업과 AWS 클라우드 기반에서 손익분석을 위한 어플리케이션 구축 사업을 동시에 진행하고 있었습니다. 이에 따라 클라우드 전환 이후 시스템 간 상호운용성과 호환성을갖춘 데이터 분석 플랫폼 또한 필요하게 되었습니다. 코리안리 IT 환경에 적합한 플랫폼 선정을 위하여 AWS Native Analytics Platform, 3rd Party Analytics Platform (클라우데라, 데이터브릭스)과의 PoC를 진행하고, 최종적으로 AWS Native Analytics Platform 으로 확정하였습니다. 코리안리는 메가존클라우드와 함께 2022년 10월부터 4개월(구축 3개월, 안정화 및 교육 1개월) 동안 AWS 기반 데이터 분석 플랫폼을 구축하고 활용 범위를 지속적으로 확대하고 있습니다.
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
LG 이노텍은 세계 시장을 선도하는 글로벌 소재·부품기업으로, Amazon Redshift 을 데이터 분석 플랫폼의 핵심 서비스로 활용하고 있습니다.지속적인 데이터 증가와 업무 확대에 따른 유연한 아키텍처 개선의 필요성에 대처하기 위해, 2022년에 AWS 에서 발표된 Redshift Serverless 를 활용한, 비용 최적화된 아키텍처 개선 과정의 실사례를 엿볼수 있는 기회가 됩니다.
2. 강연자 소개
홍성진 (sungjinhong@devsisters.com)
• KAIST 전산과 학사
• 소프트웨어 엔지니어링 인턴, 구글 코리아
• 통계기계번역팀, 한-영 번역 품질 향상
• 시니어 소프트웨어 엔지니어, 위클레이
• 영상/음성 통화 앱 시드 클라이언트/서버 개발
• 테크니컬 리드, 데브시스터즈
• 쿠키런 for Kakao, Ovenbreak 2 서버 개발
2
4. 2013년 초 데브시스터즈
• 서버 개발자 2명, 시스템 엔지니어 0명
• 한 분은 쿠키런 출시 전 전직 예정! 혼자 개발/관리해야함
• 2013년 초 Ovenbreak 2 출시로 일정 성과를 냄
• 한 명이 한 달만에 구현한 서버
• 북미 AWS 를 사용, 현지 서버가 필요했으니 당연한 선택
• 쿠키런은 서버는 어떻게 할 것인가?
• 서버는 어떻게 구현? Ovenbreak 2 서버를 재활용!
• 한국에 서비스하려면 서버는 어디에 둘까?
4
5. AWS 선택의 이유
• 애로사항이 꽃피는 IDC 입주 및 서버구입
• IDC는 어디로? 서버는 어느 밴더?
• BMT, 서버 설치, 네트워크 구축할 시간과 인력 부족
• 서버 확충에 대한 늦은 리드 타임 (최소 2주)
• 그렇다고 많이 구입을 하자니 높은 초기 투자비용 필요
• 한국 클라우드 밴더들에대한 신뢰성 문제
• 높은 트래픽 환경에서 제대로된 성능을 내지 못하는 사례 (LB 장애?!)
• 상대적으로 기능이 부족하고 운영 경험 및 노하우 부족
5
6. AWS 선택의 이유 (2)
• 회사가 이미 AWS를 사용
• 서버 개발자 한명이 관리할 수 있는 서버 환경
• API 및 원격으로 모든 시스템 관리 가능
• 단순 IaaS 라고 볼 수 없는 다양한 서비스 제공
• EBS, AMI, Auto Scaling, ELB, S3, Route53, CloudFront, RDS, ...
• 모든 서비스는 API로 제어가 가능
• AWS의 다양한 서비스와 조합하면 훨씬 더 큰 부가가치를 얻을 수 있을것
• 특히 Auto Scaling, ELB, S3 등이 매력적
6
8. AWS의 간단 소개
• 웹 서비스 (Web Service) - 인프라(컴퓨터, 스토리지 등)을 객체처럼 다룬다
• AMI (Amazon Machine Image) - 디스크 스냅샷; Class
• 인스턴스 (Instance) - AMI를 부팅한 가상머신; Object(Instance) of AMI
• ELB (Elastic Load Balancer) - 로드밸런서 as Object
• EBS (Elastic Block Store) - 추상화된 NAS 디스크; Disk as Object
• S3 (Simple Storage Service) - 추상화된 파일 스토리지; File as Object
• 모든 서비스는 API를 통해서 다룰 수 있다
• 요즘 대부분이 사용하는 Web Console은 원래 없었음
8
9. AWS S3 예제
>>> import boto
>>> import time
>>> s3 = boto.connect_s3()
# Create a new bucket. Buckets must have a globally unique name (not just unique to your account).
>>> bucket = s3.create_bucket('kgc-demo')
# Create a new key/value pair.
>>> key = bucket.new_key('mykey')
>>> key.set_contents_from_string("Hello World!")
# Sleep to ensure the data is eventually there.
>>> time.sleep(2)
# Retrieve the contents of ``mykey``.
>>> print key.get_contents_as_string()
'Hello World!'
# $ curl http://kgc-demo.s3.amazonaws.com/mykey
# Hello World!
9
11. 출시 전 준비사항
• 핵심 주안점: 혼자 관리할 수 있는 서버 구조를 만든다
• Cloud Formation, Chef, Git을 통하여 서버의 설정을 소스코드처럼 관리하자
• 서버 구조 문서화 및 배포를 따로 x
• ELB, Auto Scaling을 꼭 써보자: 손으로 일일이 서버를 증가시키기 x
• S3를 사용하여 게임 데이터를 제공하자: 웹서버 구축 및 파일 호스팅 관리 x
• 모니터링은 확실하게 하자: 직접 서비스 모니터링 x
11
12. 초기 소프트웨어 스택
• 메인 API 서버
• Java, Spring MVC, Mybatis, MySQL 5.5
• Tomcat 6.0, Apache 2.2 (mod_jk), Ubuntu Linux 13.04
• 푸시서버, GMS, 게임 데이터 관리 서비스
• Python, Celery, Django
• 서비스 모니터링
• Zabbix, Statsd, Graphite
12
13. 출시 직후
13
Availability Zone-1 Availability Zone-2
Front-end game service
S3 Buckets
EC2 EC2
ELB
RDS (MySQL)
Database group
Mobile Game user
Apple / Google Push
Service
EC2
Game & Server
Monitoring
Auto-scaling
group
EC2
Chef & Git Conf.
Management
Log archives Patches & Game Data
CloudFormation
CloudWatch
Internet
EC2
15. 출시 직후의 서버 상황
•미미했던 시작, 얼마나 성장할까?
•별다른 마케팅 없이 시작
•카카오톡 테마가 유일
•첫날(4/2) 가입자 9만명!
•서버 부하는 버틸만
•내일도 오늘만큼만 가입해다오!
15
0
22500
45000
67500
90000
9:00 24:00
누적 가입자
16. 출시 후 일주일
•산술증가가 아닌 기하급수적 증가
•DAU도 마찬가지로 증가
•4일째부터 주기적 서버 장애
•정말 다양한 원인
•6일만에 100만명 돌파
•Auto Scaling으로 수백대 까지
16
0
375000
750000
1125000
1500000
4/1 4/2 4/3 4/4 4/5 4/6 4/7
누적 가입자
17. 초기 장애 원인
17
Availability Zone-1 Availability Zone-2
Front-end game service
S3 Buckets
EC2 EC2
ELB
RDS (MySQL)
Database group
Mobile Game user
Apple / Google Push
Service
EC2
Game & Server
Monitoring
Auto-scaling
group
EC2
Chef & Git Conf.
Management
Log archives Patches & Game Data
CloudFormation
CloudWatch
Internet
EC2
1.mod_jk pooling failure
2.mod_proxy failure
3.Tomcat JVM OOM
4.Spring MySQL connection pooling
5.GCM push server timeout
6.etc...
1.Master instance failure
2.Slave instance failure
3.Parameter problems (trx, ...)
4.Performance problems
18. 초기 장애 회고
18
• 장애는 위(서버)에서부터 발생하고 문제를 해결해나가면 아래(데이터베이스)쪽으
로 문제가 점점 이동한다
• 초기 장애는 비교적 진단 및 고치기가 쉽지만 후반 장애는 그렇지 못함
• AWS가 직접적인 문제인적은 없었다
• AWS Business Support에 가입하라
• Engineer에 따라서는 AWS외적인 문제 디버깅도 도와준다 (단, 영어)
• 생소한 클라우드 환경에서 문제 발생시 훌륭한 동반자가 되어줌
• 장애를 신속하게 판단 및 해결하는데 필수적
19. 장애의 핵심적인 원인
• 순수한 데이터베이스 부하
• 게임 시작 및 게임 플레이 정산 부하로 데이터베이스 쓰기 폭주
• Checkpoint Age 문제로 쓰루풋 급락이후 장애
• 생명 보내기 기능
• 매 시간마다 N명의 사용자가 M명의 사용자에게 생명을 보낼 수 있음
• 최대 3*24*N*M의 데이터로 데이터베이스가 급격하게 증가
• MySQL DELETE문의 테이블 락으로 성능 저하
• 데이터 삭제를 하지 않으니 데이터가 무한정 쌓임
19
20. 장애 해결을 위한 초기 시도
• 데이터베이스 샤딩을 알아보았으나 이미 JOIN이나 데이터 종속이 심함
• 급하게 NoSQL 솔루션을 알아보기 시작
• Riak: 사용 경험이 있으나 쓰루풋이 낮음 (AP)
• Couchbase: 성능은 좋아보이나 왠지 상용 버전을 써야할 것 같다 (CP)
• Redis: 사용하기 쉽고 관리하기 쉽고 쓰루풋도 높다 (250Kops/s)
• 선물포인트, 생명 갯수 등의 주요 핫한 기능을 Redis로 마이그레이션
• 급한불은 끄고 데이터베이스 부하 저하
20
22. 현 서버 구조
22
Availability Zone-1 Availability Zone-2
Front-end game service
CloudFront
Edge
S3 Buckets CloudFront Download
Distribution
EC2 EC2
ELB
M S
RDS
EC2 redis instance
Database group
Mobile Game user
Apple / Google
Push Service
EC2
EC2
Log Search (real-
time)
EC2
Game & Server
Monitoring
Auto-scaling
group
EC2
Chef & Git Conf.
Management
Log archives Patches & other objects
CloudFormation
CloudWatch
Internet
EC2
Couchbase Cluster
23. # instances vs. CPU utilization
AWS EC2
• AMI, ELB, EBS 등의 조합으로 확장성있는 고가용 서버 구축 가능
• ELB는 정말 무한한 확장 가능, 안정성 문제 단 한번도 없어
• Auto Scaling
• Scale out 임계치를 잘 설정하는것이 중요 (3개월 정도 튜닝 소요)
• 장애가 일어난 노드를 알아서 대체함
• 설정만 잘 해놓으면 더이상 신경쓸일 없음
• 이와같은 환경 설정에는 CloudFormation이 가장 편함
23
24. AWS S3, CloudFront
• S3, AWS 서비스 중에서 단연 최고의 서비스
• 응용 범위가 매우 다양함
• 정적인 파일 저장 및 제공은 S3와 CloudFront CDN으로 모두 해결 가능
• S3의 데이터 내구성 99.999999999%, 가용성 SLA 99.9%
• 하지만 응답속도와 변수를 줄이기 위해 가능한 CDN을 쓰는게 필수적
24
25. AWS RDS
• Replication, Backup 등을 알아서 관리해주는 매우 편리한 서비스
• 온라인 상태에서 데이터베이스 사양 Scale-up 가능
• 온라인 상태에서 IOPS 증가 가능 (Max 30,000 IOPS)
• 하지만 사양 변경은 꼭 테스트 후에, 가능하면 새벽 시간에 할 것
• 하드웨어/소프트웨어 장애를 대비하여 Multi-AZ 옵션 필수적
• MySQL 5.5 의 경우 Master Failover시 Slave Replica가 깨지는 경우가 발생
• RDS MySQL 5.6에서 해결
25
26. Redis
• 설치하기 쉽고 쓰기 간편. 쓰기성능도 매우 훌륭
• 데이터구조를 많이 지원하기 때문에 Leaderboard 등 개발 시 매우 편리
• 하지만 MySQL과 마찬가지로 부하 증가시 수동 샤딩등의 방법을 고안해야
• 메모리를 넘어서는 데이터에 대해서는 답이 없음
• 성능 유지를 위해서는 많은 신경을 써야함
• Fork Latency가 메모리를 많이쓸수록 증가하므로 마스터에서는 하면 안됨
• 읽기분산을 위해서 디스크 저장용 별도 인스턴스를 유지해야
• 최근 ElastiCache가 지원하지 시작
26
28. 비용 측면에서의 AWS
• 단순 서버 vs EC2 비교의 경우 Reserved Instance 를 꼭 고려해야
• 로드밸런서, 방화벽, 운영체제 설치 및 설정은?
• 고가용성 정적 파일 호스팅을 구현하는 비용 (CDN 계약?)
• 데이터베이스 관리는 누가? (Replication, Backup, Monitoring)
• 필요시 바로 서버를 이용할 수 있다는 것 vs 2주 이상 기다려야한다는 것
• Capex vs Opex: 운영비용과 자산비용의 차이
• 혼자 서버를 관리한다면 어떤것을 선택할 것인가?
28
29. 비용의 진실
• 전통적인 인프라로 바라보면 결코 저렴하지 않은 AWS
• 그러나 AWS에서 제공하는 다양한 서비스를 활용한다면 훨씬 비용/시간 효율적
• Pay-as-you-go & Pay-per-only-what-you-use 의 Smart Metering
• 트래픽 증감에 따라 EC2가 Auto Scale; 정확히 사용한 것만 지불하여 비용 절감
• 한 대에서 200대까지 Scale out을 해야한다면 AWS를 사용해야
• EC2 Reserved Instance 요금제로 비용 최적화
• 급격하게 변하는 모바일 게임 시장, AWS는 필연적인 선택
•
29
30. 비용의 진실
• 전통적인 인프라로 바라보면 결코 저렴하지 않은 AWS
• 그러나 AWS에서 제공하는 다양한 서비스를 활용한다면 훨씬 비용/시간 효율적
• Pay-as-you-go & Pay-per-only-what-you-use 의 Smart Metering
• 트래픽 증감에 따라 EC2가 Auto Scale; 정확히 사용한 것만 지불하여 비용 절감
• 한 대에서 200대까지 Scale out을 해야한다면 AWS를 사용해야
• EC2 Reserved Instance 요금제로 비용 최적화
• 급격하게 변하는 모바일 게임 시장, AWS는 필연적인 선택
• 저렴하고 확장성있는 서버보다 성공하는 게임을 만드는게 훨씬 어렵다.
성공하는 게임을 만들 수 있도록 기능개발 자체에 투자를 해야.
30