By Eduardo Woo

世界中で社会現象を巻き起こしたモバイルゲーム「ポケモンGO」は、バックエンドにGoogleが運営しているクラウドコンピューティングの「Google Cloud Platform」を使用しています。そのGoogle Cloud Platformのエンジニアがブログを公開し、ポケモンGOが世界中で熱狂を起こす中でGoogle Cloud Platformでは一体何が起きていたのかをつづっています。

Google Cloud Platform Blog: Bringing Pokémon GO to life on Google Cloud

https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO-to-life-on-Google-Cloud.html

エンジニアとしてGoogleで働くルーク・ストーンさんは、キャリアを通してさまざまな製品を扱ってきました。リリースしてきた製品は、機能を追加したり変更を加えたりしてリリースから数カ月かけてジワジワとユーザー数を伸ばしていくのが通常でしたが、ポケモンGOはリリースから一気にユーザー数を爆発的に伸ばした製品で、ストーンさんのキャリアの中でもポケモンGOのような製品を扱ったことはなかったそうです。

2016年9月30日にGoogleは顧客エンゲージメントの強化を目的とした「Customer Reliability Engineering(CRE)」を発表。CREは、Google Cloud Platformのエンジニアで構成されるチームが顧客の運営チームと連携して共同作業を行えるという新しいサービスなのですが、CREの最初の顧客は実はポケモンGO開発元のNianticであり、ポケモンGOローンチにおける業務をCREとNianticが共同体制で受け持ったとのこと。

ポケモンGOがオーストラリアとニュージーランドでサービスを開始してから約15分後、プレイヤーのトラフィックがNianticの予想を上回るペースで増加。このときにエンジニアたちは「ポケモンGOは今までとは違う特別な製品かもしれない」と考え始めたそうです。NiacticはCREに連絡を取り、翌日に迫ったアメリカでのローンチに向けて結束を強める必要があると要請。ローンチ後のトラフィックが事前に予測していた数値をはるかにオーバーしたことで、NiacticとGoogleは協力体制で各国のローンチで次々と押し寄せるであろうポケモンGOのプレイヤートラフィックに対して入念な準備をすることになりました。



By Ritzo ten Cate

ポケモンGOはGoogle Cloudの多数のサービスを使っているのですが、その中でも重要だったのがCloud Datastoreで、現実世界でポケモンたちを捕まえるという機能の優先的なデータベースの役割を担っています。以下のグラフはCloud Datastoreにおける毎秒当たりの転送量を表しており、オレンジ色の線がローンチ時の目標トラフィックで、赤色が最悪の状況でもこれくらいという見積もりのトラフィック、緑色が実際のトラフィックを示しています。グラフからは実際のトラフィックが、ローンチ時の目標や最悪の場合の見積もりのトラフィックをはるかに上回るトラフィックを記録しているのがわかります。実際のトラフィックはローンチ時の目標の何と50倍だったとのこと。



エンジニアたちはリリース直後から運営をスムーズに行えないことを経験からわかっていたため、Nianticのエンジニアと共同で次々に起こる問題に順番に取り組み、解決策を生み出していきました。エンジニアたちにより全てのアーキテクチャの見直しが行われ、Google Cloudの中でもマネージャーレベルの専門家をチームに加えて対応していったそうです。

ポケモンGOのアプリケーションロジックは、オープンソースのコンテナ管理システム「Kubernetes」に構築される「Google Container Engine(GKE)」上で動作しています。NianticがGKEを選んだのは、GKEが惑星規模のコンテナクラスタを統合できる能力を備えているからです。GKEを使うことで、NianticはポケモンGOを何百万人という大量の新規プレイヤーを持続的に受け入れられるようなゲームに発展させたとのこと。



By Bennilover

ルークさんがポケモンGOの運営上でも最も大変だったと語るのが、日本でのローンチに備えるべくGKEをアップグレードしたこと。コンテナクラスタに何千ものノードを追加できるようにGKEをバージョンアップしたそうですが、そのときにNetwork Load Balancerをより高性能なHTTP/S Load Balancerに取り替える必要がありました。しかしながら、アメリカでのローンチから多くのことを学んだというエンジニアたちは、その経験を生かしてHTTP/S Load Balancerにアップグレードし、日本でのローンチで問題が起こることはありませんでした。

ルークさんのブログを読むと、ポケモンGOのローンチ時にGoogle Cloudで何が起こっていたのかがよくわかります。ルークさんは今までにないくらい大変な経験をしたそうですが、ブログの最後で「世界中の人々に喜びを与えたポケモンGOに関われたことで、普通ではないレアな喜びを感じることができました」と述べています。