Google Kubernetes Engine と Cloud Spanner でトラフィックの急増に耐えるシステムの構築-Google Cloud 導入ケーススタディ

業種:テクノロジー 金融サービス

  • #Cloud Functions
  • #Cloud Load Balancing
  • #Cloud Nat
  • #Cloud Run
  • #Cloud Spanner
  • #Container Registry
  • #Google Cloud Armor
  • #Kubernetes Engine
  • #Logging

今回のケーススタディでは、Fintech 業界において、瞬間的なトラフィックの急増にも耐えうる寄付プラットフォームを構築するために Google Cloud を導入したケーススタディをご紹介いたします。実際に Google Cloud の公開事例を参考にして、どのように Google Cloud のサービスやプロダクトが顧客のビジネスにメリットをもたらすかを要点をまとめてご説明いたします。

Google Cloud 導入以前の状況や背景・課題

本ケーススタディの主体は、寄付プラットフォームの開発・運用を行っています。そのビジョンは「お金に困っている人をゼロにする」ことで、このプラットフォームには寄付をする支援者と、寄付を受け取る応募者の 2 種類のユーザーがいます。

そのシステム開発にあたっての最大の課題は、急激なトラフィックの変化に対応することでした。

Google Cloud を採用した理由

上記の課題をクリアするために、Google Kubernetes Engine(GKE)と Cloud Spanner、Cloud Load Balancing、そしてアプリ側に Firebase を使うといった構成を考えました。この構成であれば需要に対して柔軟にスケールでき、十分なキャパシティを備えていることを確認できたため、 Google Cloud を採用しました。

Google Cloud 導入時のエピソード

寄付プラットフォームのシステムで中心となっているのが、マイクロサービスの実行基盤である GKE と、分散型リレーショナルデータベースの Cloud Spanner です。
その他に、柔軟なスケーリングを可能にする Cloud Load Balancing や、セキュリティのための Cloud Armor、ネットワークを担う Cloud NAT や Cloud Router など、Google Cloud の各種プロダクトをフル活用した構成になっています。

また、外部 SaaS パートナーとの連携のためにコンテナプラットフォームの Cloud Run も利用しています。

構築した Google Cloud の具体的な構成

構成については GKE と Cloud Spanner の組み合わせが最適であると判断しました。
開発初期はまだ要件が定まっていない部分もあり、データモデリングを通してデータエンティティ*(データの集まり)を中心に具体化し、徐々にサービスとして組み上げていく方針を採りました。
それぞれのエンティティに対しての責務を明確にすることで、漸進式の開発であっても開発スピードと品質を維持することができました。

また、アプリケーションサーバーの運用に労力を割きたくないという理由で Kubernetes を選択しました。

そしてデータベースについては、データの整合性を保証できることが極めて重要でした。そのため、強力なトランザクションエンジンを持つ Cloud Spanner が最も効果的であると判断しました。

導入時に発生した課題や問題

導入時には特に大きな課題や問題は発生せず、Cloud Spanner のクライアントライブラリが非常に良く出来ていることを実感しました。
例えばトランザクションの競合の検知やリトライなど、本来であれば複雑な実装が必要な部分も、基本的にすべて Cloud Spanner に任せられるようになっていました。
これにより、開発者はビジネスロジックの実装に集中し、GKE のおかげでインフラ周りも複雑なことを考えずに構築することができました。

導入によるメリット・効果

Google Cloud の導入により、寄付プラットフォームの開発に Google Cloud の多様なプロダクトをフル活用することができました。
高いスケーラビリティを持つ GKE と Cloud Spanner によりトラフィックの急増に対応できるシステムを実現し、複雑な処理を GKE と Cloud Spanner に任せることで、少人数で 2.5 か月という高速な開発が可能になりました。

それだけでなく、Google Cloud により実現したシンプルな構成が技術的なトラブルを回避し、開発メンバーの健康的な生活を維持することができました。

今後の Google Cloud の活用予定、Google Cloudに期待すること

今後も、ユーザーにとってより良い体験を作るための機能追加や、全体的なお金の流通量を増やすための施策を検討しています。
Google Cloud で迅速に開発ができたという実績があるので、引き続き活用していきたいと考えています。

導入した Google Cloud のプロダクト一覧と構成

本ケーススタディでは、以下の Google Cloud のプロダクトが活用されました。

Google Kubernetes Engine(GKE):マイクロサービスの実行基盤として使用。アプリケーションサーバーの運用に労力を割かずに済み、開発スピードと品質を維持することが可能になりました。

Cloud Spanner:分散型リレーショナルデータベースとして使用。データの整合性を保証し、強力なトランザクションエンジンによりトランザクション管理をアプリケーション側のテクニックで補うことなく実現しました。

Cloud Load Balancing:柔軟なスケーリングを可能にしました。

Cloud Armor:セキュリティ対策として使用。サイバー攻撃を適切に防ぐことができました。

Cloud NAT、Cloud Router:ネットワークを担当しました。

Cloud Run:外部 SaaS パートナーとの連携のためにコンテナプラットフォームとして使用しました。

これらのプロダクトを組み合わせることで、急激なトラフィックの変化に対応し、少人数での高速な開発を実現しました。また、シンプルな構成により技術的なトラブルを回避し、開発メンバーの健康的な生活を維持することができました。

※本ケーススタディは下記を参考にして作成いたしました。Google Cloud の導入を検討の上でお役に立っていただけると幸いです。
https://cloud.google.com/customers/arigatobank/?hl=ja

Google Cloud に関するご相談や、導入を検討されている方は、クラウドエースまでご相談いただけましたら幸いです。
クラウドエースご相談窓口

この記事を共有する