customer_landing_page_graphics166x_pokemon_co

Pokémon Company が AWS 専用データベースに移行

2020 年

1996 年に日本で発売されたポケモンは、世界で最も人気のあるエンターテインメントブランドの 1 つになりました。ポケモントレーディングカードゲームとポケモン GO モバイルゲームを通じて、年代を問わず、数百万人ものユーザーがポケモンキャラクターを特訓し、バトルを楽しんでいます。

ワシントン州ベルビューでは、The Pokémon Company International (TPCi) のエンジニアが責任を持って、アジア外のポケモンファンが充実した機能のユーザーアカウントを通じて自分の成果を追跡できるようにしています。ポケモントレーナークラブとして知られるこのソリューションは、「トレーナー」がサインオンしたいときにいつでもシームレスなエクスペリエンスを提供するだけでなく、児童オンラインプライバシー保護法や一般データ保護規則にも準拠する必要があります。

「当社のユーザープロファイルシステムは、主に 2 つのデータセットで成り立っています。ポケモン GO のユーザーとポケモントレーディングカードゲームのユーザーです」と、TPCi の開発マネージャーである Jeff Webb 氏は言います。「異なるプレイタイプのユーザープロファイルは異なるプロセスとメンテナンスを必要としますが、それらはすべてポケモントレーナークラブシステム内にあります。当社が扱っているデータは複雑で大量にあるため、データベースのスケーラビリティと信頼性は、優れたユーザーエクスペリエンスを実現するために非常に重要です」

2016 年にポケモン GO の発売した後、このシステムへのアクセスを必要とするユーザーの数は 2 年間で 3 億人以上に増加しました。同社は、フルマネージドソリューションに移行して、時間とリソースを解放して戦略的イニシアチブに集中することにしました。

Python のチュートリアルを開始する
CustomerReferences_QuoteMark

Amazon Aurora を使用して、300 ノードが 30 ノードに減少し、データベースライセンスの支払いは不要になりました。当社の毎月のデータベースのコストは毎月数万 USD も下がりました」

Jeff Webb
The Pokémon Company International の開発マネージャー

データベースのバトル

当初、ポケモントレーナークラブは、サードパーティの NoSQL ドキュメントデータベースによってサポートされていました。これには、3 億人を超えるポケモン GO ユーザーのすべてのユーザープロファイルデータと変更ログが含まれていました。データベースの断片には、ポケモンキャラクターのマスターデータベース、トレーディングカードゲームのオンラインユーザーデータ、および対人の「組織的なプレイ」グループのデータが含まれていました。Memcached は、ユーザーセッションデータへの高速アクセスを提供しました。同社は、データベースとメモリキャッシュシステムを Amazon Elastic Compute Cloud (Amazon EC2) でホストし、Elastic Load Balancing でトラフィックを管理し、オブジェクのトストレージに Amazon Simple Storage Service (Amazon S3) を使っていました。「ルックアップが速いため、以前は NoSQL データベースを選択していました」と Webb 氏は述べています。「けれども、必要な速度を実現するには、多くのインデックスを維持し、多くの複雑なノードを管理する必要があることがわかりました。その数は一時 300 を超えていました。

これでは、ノードをスムーズに実行し続けることは困難でした。インデックスまたはデータベースノードが使用できなくなると、レイテンシーが増加しました。Memcached ノードがダウンすると、ユーザーはまったくログインできなくなります。プライマリデータノードで障害が発生した場合、システムがバックアップノードで動作している間、チームはすべてを捨ててノードを再構築する必要がありました。TPCi は、PokémonGO ユーザーの大規模な流入により悪化した日々の管理問題に長年悩まされた後、フルマネージドデータベースサービスを利用するためにアマゾン ウェブ サービス (AWS) に移行することにしました。

「Amazon EC2、Elastic Load Balancing、Amazon S3 のパフォーマンスと信頼性に満足しました」と Webb 氏は振り返ります。「それが、AWS が管理するデータベースサービスを調査することにした理由です」 チームは、セキュリティ、スケール、パフォーマンス、復元力のニーズを満たすソリューションを見つけるために広範なテストを実行して、最終的に PostgreSQL との互換性を持つ Amazon Aurora を選択しました。「認証リクエストが TPCi トラフィックの大部分を占めるため、エンタープライズグレードのセキュリティ機能 (保存時および転送時の暗号化を含む) とマルチリージョン環境での信頼性を評価して、Amazon Aurora PostgreSQL を選択しました。」

チームは、RedisMemcached の両方を利用して、ユーザーキャッシングを Amazon ElastiCache に移動することも決定しました。Redis は新しいユーザーのタスクをキューに入れるため、契約条件への同意などの認証後のタスクを完了するように求めることができます。Memcached は、新しいユーザーが参加したときに既存のユーザーのセッションが中断されないように、チケットをライブに保つのに役立ちます。チームは、グローバル設定と有効期限 (TTL) データを Amazon DynamoDB に移行しました。これは、1 桁のミリ秒のパフォーマンスを大規模に提供するキーバリューデータベースです。また、ログイン履歴やユーザー変更監査レコードなどのイベントデータを Amazon S3 に移動しました。

コストの削減、容量の増加、ダウンタイムなし

非リレーショナルデータストアが最初に移行し、続いてユーザーデータとデータベースシャードが Amazon Aurora に移行しました。プロジェクトにかかったのはわずか 9 か月です。「最初の数か月は、ユースケースと圧力テストの作成に費やしました」と Webb 氏は言います。「その後、すべてのデータを関係付け、JSON データを分解しました。移行は認証プロセスのダウンタイムなしで完了しました。これは、世界中から毎秒 300 人がポケモントレーナークラブにログインしていることを考えると驚くべきことです」

移行して以来、TPCi はデータベースに費やす時間と費用を大幅に削減しました。「Amazon Aurora を使用して、300 ノードから 30 ノードになり、データベースライセンスに支払うことがなくなりました」と Webb 氏は言います。「当社の毎月のデータベースコストは、毎月数万ドルも減少しました。最も重要なのは、移行前の 6 か月間で 168 時間のダウンタイムまたはパフォーマンスの低下があったことです。移行して以来、ゼロになりました」

移行は他の利点ももたらしました。「Amazon DynamoDB に組み込まれている TTL 設定を使用すると、ユーザーが最大ログイン試行しきい値を超えたときを追跡して、エントリを拒否できます」と Webb 氏は言います。「その結果、ボットのログイン試行が 90% 削減されました。これにより、正当なユーザーのためにシステムリソースが解放され、余裕をもってスケーリングしておく必要がなくなりました」

フルマネージド型の Amazon ElastiCache サービスを利用すると、Memcached ノードを管理するオーバーヘッドが大幅に削減されます。クラスターに保存されているユーザーセッションデータとチケット発行状態により、認証プロセスが高速化され、ユーザーが 1 つのサーバーへの接続を維持する必要がなくなります。

データベースの管理時間を短縮することで、イノベーションのための時間を確保できます。同社は、サーバーレスコンピューティング、コンテナ、マイクロサービスを使用して、さらに高い効率とパフォーマンスを実現することを計画しています。TPCi は、サービスが向上し続けているため、世界中の何百万ものユーザーがオンデマンドでポケモンの世界を楽しむことができます。

詳細については、aws.amazon.com/gametech/databases をご覧ください。


The Pokémon Company International について

The Pokémon Company International は、日本の The Pokémon Company の子会社で、アジア以外にある資産を管理しており、さらにブランド管理、ポケモントレーディングカードゲーム、ホームエンターテイメント、ポケモンの公式ウェブサイトを担当しています。

AWS の利点

  • 月額費用を数万ドル削減
  • ノード数を 300 から 30 に削減
  • ボットのログイン試行を 90% 削減
  • データベースのライセンスコスト排除
  • 移行後のダウンタイムまたはパフォーマンスの低下は一切なし
  • 1 秒あたり最大 300 件のログインを処理

利用している AWS のサービス

Amazon Aurora

Amazon Aurora は、MySQL および PostgreSQL と互換性のあるクラウド向けのリレーショナルデータベースであり、従来のエンタープライズデータベースのパフォーマンスと可用性に加え、オープンソースデータベースのシンプルさとコスト効率性も兼ね備えています。

詳細はこちら »

Amazon ElastiCache

Amazon ElastiCache を使用すると、クラウド内の人気のオープンソース互換のインメモリデータストアをシームレスにセットアップ、実行、およびスケーリングできます。高スループットかつ低レイテンシーなインメモリデータストアからデータを取得して、大量のデータを扱うアプリケーションを構築したり、既存のアプリケーションのパフォーマンスを改善したりすることが可能です。Amazon ElastiCache は、キャッシング、セッションストア、ゲーム、地理空間サービス、リアルタイム分析、キューイングなどのリアルタイムユースケースに人気のある選択肢です。

詳細はこちら »

Amazon DynamoDB

Amazon DynamoDB は、規模に関係なく数ミリ秒台のパフォーマンスを実現する、key-value およびドキュメントデータベースです。完全マネージド型マルチリージョン、マルチマスターで耐久性があるデータベースで、セキュリティ、バックアップおよび復元と、インターネット規模のアプリケーション用のメモリ内キャッシュが組み込まれています。

詳細はこちら »

Amazon S3

Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。つまり、あらゆる規模や業界のお客様が、ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカイブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析など、広範にわたるユースケースのデータを容量に関係なく、保存して保護することができます。

詳細はこちら »


開始方法

あらゆる業界のあらゆる規模の組織が AWS を利用して日々変革し、ミッションを遂行しています。当社の専門家にお問い合わせいただき、今すぐ AWS クラウドを導入してみませんか。