customer_landing_page_graphics166x_pokemon_co

The Pokémon Company, AWS의 특별히 구축된 데이터베이스로 마이그레이션

2020년

1996년 일본에서 출시된 포켓몬은 세계에서 가장 인기 있는 엔터테인먼트 브랜드 중 하나로 자리 잡았습니다. 수억 명에 이르는 다양한 연령대의 사람들이 포켓몬 카드 게임과 포켓몬 GO 모바일 게임을 통해 포켓몬을 훈련하고 배틀을 벌입니다.

워싱턴 벨뷰에 있는 The Pokémon Company International(TPCi)의 엔지니어는 아시아 외 지역의 포켓몬 팬이 모든 기능을 갖춘 사용자 계정을 통해 자신의 성과를 추적할 수 있도록 하는 업무를 담당합니다. Pokémon Trainer Club으로 알려진 솔루션은 "트레이너"가 로그인온하려고 할 때 항상 원활한 경험을 제공해야 할 뿐만 아니라 어린이 온라인 개인 정보 보호법과 일반 데이터 보호 규정을 준수해야 합니다.

TPCi의 개발 관리자인 Jeff Webb은 "저희 사용자 프로필 시스템은 크게 2개의 데이터 세트 즉, 포켓몬 GO 사용자와 포켓몬 카드 게임 사용자입니다. 플레이 유형마다 다른 프로세스와 유지 관리가 필요하지만 모든 사용자 프로필은 Pokémon Trainer Club 시스템에 있습니다. 저희가 처리하고 있는 데이터의 복잡성과 양으로 인해 데이터베이스 확장성과 안정성은 뛰어난 사용자 경험을 제공하는 데 절대적으로 중요합니다."라고 말합니다.

2016년 포켓몬 GO 출시 이후 이 시스템에 액세스해야 하는 사용자 수가 2년 만에 3억 명 이상으로 증가했습니다. 이에 따라 TPCi는 전략적 이니셔티브에 집중할 수 있는 시간과 리소스를 확보하기 위해 완전관리형 솔루션으로 마이그레이션을 결정했습니다.

python 자습서 시작
CustomerReferences_QuoteMark

Amazon Aurora를 사용하면서 노드가 300개에서 30개로 줄었으며 더 이상 데이터베이스 라이선스 비용을 지불하지 않습니다. 월별 데이터베이스 비용은 매달 수만 달러씩 감소해왔습니다."

Jeff Webb
The Pokémon Company International 개발 관리자

데이터베이스의 배틀

처음 Pokémon Trainer Club은 3억 명이 넘는 포켓몬 GO 사용자의 모든 사용자 프로필 데이터와 변경 로그가 들어 있는 타사 NoSQL 문서 데이터베이스로 운영되었습니다. 데이터베이스 샤드에는 포켓몬 크리쳐의 마스터 데이터베이스, 카드 게임 온라인 사용자 데이터 및 직접 "조직된 플레이" 그룹의 데이터가 들어 있었습니다. Memcached는 사용자 세션 데이터에 대한 빠른 액세스를 제공했습니다. 이 회사는 Amazon Elastic Compute Cloud(Amazon EC2)에서 데이터베이스와 메모리 캐싱 시스템을 호스팅하고 Elastic Load Balancing으로 트래픽을 관리하고 객체 스토리지로 Amazon Simple Storage Service(Amazon S3)를 사용했습니다. “기존의 NoSQL 데이터베이스를 선택한 이유는 빠른 조회 속도 때문이었습니다. 그러나 저희가 원하는 속도를 달성하려면 많은 인덱스를 유지 관리하고 한 지점에서 300개 이상의 복잡한 노드를 관리해야 한다는 사실을 알게 되었습니다.”라고 Webb은 덧붙였습니다.

노드를 원활한 실행 상태로 유지하기는 쉽지 않았습니다. 인덱스 또는 데이터베이스 노드를 사용할 수 없게 되면 대기 시간이 늘어났습니다. Memcached 노드가 다운되면 사용자는 아예 로그인할 수 없었습니다. 기본 데이터 노드에 장애가 발생하면 팀은 시스템이 백업 노드에서 작동하는 동안 모든 것을 삭제하여 재구축해야 했습니다. 관리 문제가 수년간 매일 이어지고 Pokémon GO 사용자의 엄청난 유입으로 더욱 악화됨에 따라 TPCi는 완전관리형 데이터베이스 서비스를 위해 Amazon Web Services(AWS)로 마이그레이션하기로 결정했습니다.

“저희는 Amazon EC2, Elastic Load Balancing 및 Amazon S3의 성능과 안정성에 만족했습니다. 그래서 AWS 관리형 데이터베이스 서비스에 대해 자세히 알아보기로 결정했습니다.”라고 Webb은 말합니다. 팀에서 보안, 확장성, 성능 및 복원력 요구 사항을 충족하는 솔루션을 찾기 위해 광범위한 테스트를 수행했으며 결국 PostgreSQL과 호환되는 Amazon Aurora를 선택했습니다. “인증 요청이 TPCi 트래픽의 대부분을 차지하기 때문에 저장 및 전송 중 암호화와 다중 리전 환경에서의 안정성을 비롯한 엔터프라이즈급 보안 기능을 위해 Amazon Aurora PostgreSQL을 선택했습니다.”

팀은 또한 RedisMemcached를 모두 활용하여 Amazon ElastiCache로 사용자 캐싱을 옮기기로 결정했습니다. Redis는 새 사용자의 태스크를 대기열에 추가하므로 사용자에게 약관 동의와 같은 인증 후 태스크를 완료하라는 메시지가 표시될 수 있습니다. Memcached는 새로운 사용자가 참여할 때 기존 사용자의 세션이 중단되지 않도록 티켓을 활성 상태로 유지할 수 있게 지원합니다. 팀은 대규모 작업 시에도 10밀리초 미만의 성능을 제공하는 키-값 데이터베이스인 Amazon DynamoDB로 글로벌 구성 및 TTL(Time-to-Live) 데이터를 마이그레이션했습니다. 또한 로그인 기록과 사용자 변경 감사 기록 등의 이벤트 데이터를 Amazon S3로 옮겼습니다.

비용 절감, 용량 증가, 가동 중단 없음

비관계형 데이터 스토어가 먼저 마이그레이션된 다음 사용자 데이터 및 데이터베이스 샤드가 Amazon Aurora로 마이그레이션되었습니다. 프로젝트에는 9개월 밖에 걸리지 않았습니다. Webb은 “처음 몇 달 동안은 사용 사례와 압력 테스트를 작성했습니다. 그런 다음 모든 데이터를 관계화하고 JSON 데이터를 분해했습니다. 인증 프로세스의 가동 중단 없이 마이그레이션을 완료했는데 이는 전 세계에서 매초 300명의 사용자가 Pokémon Trainer Club에 로그인한다는 점을 고려할 때 놀라운 일이 아닐 수 없습니다.”라고 말합니다.

마이그레이션 이후 TPCi는 데이터베이스에 소요되는 시간과 비용을 크게 줄였습니다. “Amazon Aurora를 사용하면서 노드가 300개에서 30개로 줄었으며 더 이상 데이터베이스 라이선스 비용을 지불하지 않습니다. 월별 데이터베이스 비용은 매달 수만 달러씩 감소해왔습니다. 가장 중요한 것은 마이그레이션 전 6개월 동안은 168시간에 달하는 가동 중단이나 성능 저하가 있었지만, 마이그레이션 후에는 가동 중단이나 성능 저하가 전혀 없었다는 사실입니다.”라고 Webb은 말합니다.

마이그레이션은 다른 이점도 제공했습니다. “Amazon DynamoDB에 내장된 TTL 설정을 사용하여 사용자가 최대 로그인 시도 임계값을 초과하는 시점을 추적하고 접속을 거부할 수 있습니다. 그 결과 봇 로그인 시도가 90% 감소하여 적법한 사용자를 위한 시스템 리소스가 충분히 확보되고 과도하게 확장해야 할 필요가 줄었습니다.”라고 Webb은 덧붙였습니다.

완전관리형 Amazon ElastiCache 서비스를 활용하면 Memcached 노드 관리 부담이 크게 줄어듭니다. 사용자 세션 데이터 및 티켓팅 상태가 클러스터에 저장되어 인증 프로세스의 속도가 빨라지고 사용자가 단일 서버에 대한 연결을 유지할 필요가 없습니다.

데이터베이스 관리 시간이 줄어 혁신에 더 많은 시간을 할애할 수 있습니다. TPCi는 효율성과 성능을 더욱 높이기 위해 서버리스 컴퓨팅, 컨테이너 및 마이크로서비스를 사용할 계획입니다. TPCi의 지속적인 서비스 향상 덕분에 전 세계 수백만 명이 온디맨드로 포켓몬 세계를 즐길 수 있습니다.

자세한 내용은 aws.amazon.com/gametech/databases를 참조하십시오.


The Pokémon Company International 정보

일본에 있는 The Pokémon Company의 자회사인 The Pokémon Company International은 아시아 외 지역에서 자산을 관리하며 브랜드 관리, 포켓몬 카드 게임, 홈 엔터테인먼트 및 공식 포켓몬 웹 사이트를 담당합니다.

AWS의 이점

  • 수만 달러의 월간 비용 절감
  • 300개에서 30개로 노드 수 감소
  • 봇 로그인 시도 90% 감소
  • 데이터베이스 라이선스 비용 없음
  • 마이그레이션 후 가동 중단 및 성능 저하 없음
  • 초당 최대 300회의 로그인 처리

사용된 AWS 서비스

Amazon Aurora

Amazon Aurora는 클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 데이터베이스로, 기존 엔터프라이즈 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합하였습니다.

자세히 알아보기 »

Amazon ElastiCache

Amazon ElastiCache를 사용하면 널리 사용되는 오픈 소스 호환 인 메모리 데이터 스토어를 클라우드에서 원활하게 설정, 실행 및 크기 조정할 수 있습니다. 처리량이 많고 지연 시간이 짧은 인 메모리 데이터 스토어에서 데이터를 검색하여 데이터 집약적 앱을 구축하거나 기존 데이터베이스 성능을 강화합니다. Amazon ElastiCache는 캐싱, 세션 스토어, 게이밍, 지리공간 서비스, 실시간 분석 및 대기열과 같은 실시간 사용 사례에 많이 선택됩니다.

자세히 알아보기 »

Amazon DynamoDB

Amazon DynamoDB는 어떤 규모에서도 10밀리초 미만의 성능을 제공하는 키-값 및 문서 데이터베이스입니다. 완전관리형의 내구성이 뛰어난 다중 리전, 다중 마스터 데이터베이스로서, 인터넷 규모 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능을 기본적으로 제공합니다.

자세히 알아보기 »

Amazon S3

Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스입니다. 즉, 규모와 업종에 상관없이 고객이 이 서비스를 이용하여 웹사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등과 같은 다양한 사용 사례에서 원하는 만큼의 데이터를 저장하고 보호할 수 있습니다.

자세히 알아보기 »


시작하기

모든 산업에서 다양한 규모의 조직이 AWS를 통해 매일 혁신하고 임무를 수행하고 있습니다. 지금 전문가와 상담하고 AWS 클라우드로의 여정을 시작하세요.