Beam の Google Cloud への移行で行政機関のセーフティ ネット プログラムの効果が向上
James Osborn
Director of Cloud Operations, Beam
※この投稿は米国時間 2024 年 5 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。
Beam では、次世代の社会的デジタル セーフティ ネットを構築しています。当社のプラットフォームは、州政府、地方自治体、コミュニティベースの組織、大学が公的給付金や現金支援プログラムを管理するために使われています。当社のパートナーは、負担の少ない申請プロセスを進め、時間のかかる適格性判断のプロセスに対処し、社会的に弱い立場の人々に不可欠な支払いを行うことができます。
近ごろ、当社はそのインフラストラクチャ全体をダウンタイムやユーザーへの影響なく AWS から Google Cloud に移行しました。さらに、最新のクラウド テクノロジーを活用するために、アプリケーションのさまざまな側面やエンジニアリングのプロセスも変革しました。当社は、クラウドの料金を半分に抑えながら、より効果的で環境に優しいサービスを提供できるようになりました。この投稿では、Beam の移行戦略、Google Cloud への移行により当社が期待したメリット、主な成果と重要ポイントについてご説明します。
アーキテクチャに関する決定事項
Google Cloud に移行する際、Beam の全体的なアーキテクチャ戦略は、製品差別化技術の統合を最も効果的に加速し、スケーラブルでありながらわかりやすいクラウド インフラストラクチャを提供し、エンジニアリング チームの管理による負担を最小限に抑えるサービスを選択することでした。
エンジニアには、以前使用していた時代遅れで非効率的なインフラストラクチャをサポートするのではなく、行政機関のパートナーが必要とする機能を備えたユーザー中心の製品を構築することに専念してほしいのです。このような優先事項が、Google Cloud サービスの採用を決定する要因となりました。
Cloud Run
Beam のプラットフォームは、ユーザーへのサービスを提供するために相互作用し、個別にスケーリングする必要がある多くのコンテナ化されたアプリで構成されています。このプラットフォームは、以前は自己ホスト型の AWS Kubernetes クラスタで実行していましたが、エンジニアリング チームでは、クラスタ管理の負担が妨げになっているという結論に至りました。AWS を使用して Kubernetes を実装しても、スケーリングに必要な管理のしやすさやデベロッパー指向の UI は提供されませんでした。
そこで真価を発揮したのが Google Cloud のマネージド コンテナ サービスです。Cloud Run は、スケーラビリティが高く、相互関連性がある多数のコンテナ サービスを、可能な限り最小限の管理負担でデプロイしたいと考えていた当社の小規模チームに最適でした。今後もっと柔軟性が必要になった場合は、サービスを簡単に GKE に再デプロイすればよいのです。また、Cloud Run はサイドカーとマルチコンテナ サービスをサポートするようになったため、このフルマネージド コンテナ サービスを採用しない理由はありませんでした。
AlloyDB for PostgreSQL
Beam は、コアとなるデータベースには Google Cloud の PostgreSQL 対応フルマネージド データベースが当社のニーズに最適だと考え、PostgreSQL と AlloyDB for PostgreSQL を使用しています。AlloyDB は、移行を開始した時点では比較的新しいサービスでしたが、当社は障害復旧や大量のトラフィック報告のためにゾーンおよびリージョン間でレプリケートできるスケーラビリティの高いデータベースを求めていたため、その条件を満たす AlloyDB はぴったりでした。さらに、AlloyDB の Query Insights ダッシュボードは、データベース管理(DBA)のギャップを解消し、アプリケーションのパフォーマンスを調整するのに役立つように思えました。最終的に、当社は専任の DBA のサポートや管理の必要がないデータベース製品を必要としていました。そうすることでチームがイノベーションに専念できるからです。
ML と AI サービス
ML と AI のテクノロジーをめぐる向上のペースの加速は、多大な期待と不安の両方を生み出しています。AI は、責任を持って実装されれば、公共サービス提供のための事務作業時間を短縮し、行政機関が国民に対応する方法に革命をもたらすことができます。しかし、不用意に AI を使えば、危害やバイアスが増幅され、社会的に弱い立場の人々がさらに取り残される可能性があります。
このような厳しい環境のなかで、Beam の責任ある AI 戦略は、Vertex AI などの、最先端の Google Cloud AI によって実現されています。当社が提供する AI は、ドキュメントやケースの履歴から適格性の判定プロセスを合理化することで、申請者の管理の負担とプログラム管理上のオーバーヘッドを根本的に軽減することを目的としています。Google Cloud により、責任と公平性の検討に、他の方法よりも多くの時間を割くことができます。
移行
私はこれまでのキャリアにおいてインフラストラクチャの大規模な移行を何回か行いましたが、Beam の AWS から Google Cloud への移行は最もスムーズでした。これは Beam のすばらしいエンジニアリング チームのおかげでもありますが、Google Cloud によるクラウドからクラウドへの移行が非常に簡単であるおかげでもあります。
その方法の概要をご紹介します。
-
すべてのインフラストラクチャを Terraform で立ち上げることで、すべてを文書化し、再現可能にし、今後も互換性があるようにしました。
-
Database Migration Service を使用して、AWS の PostgreSQL データベースから AlloyDB インスタンスへの継続的なレプリケーションを作成しました。
-
一方、デベロッパーは非同期のジョブ キューイングのための Pub/Sub や、ファイル アップロードのための Cloud Storage などで、サービス アーキテクチャのモダナイズに注力しました。
-
Google Cloud への移行中に、DevOps プロセスを GitHub を中心に再構築しました。
-
新しい CI / CD パイプラインの一部として、コンテナ サービスの Cloud Run へのデプロイに GitHub Actions を使用しました。
-
エンドユーザーの低レイテンシを維持しながらスケーリングできるように、Cloud Run サービスで負荷テストを実行しました。
-
カットオーバー当日、データベースへの書き込みを一時停止して、DNS を AWS エンドポイントから Cloud Run URL に切り替えました。
-
以前のデータベースと AlloyDB での継続的なデータ同期により、ユーザーは切り替え中もサービスが停止したりデータが失われることはありませんでした。また、Beam も、より軽量かつ最新のクラウド プラットフォームでアプリケーションを実行できることで負担が大幅に減りました。
主な成果と重要ポイント
半年がたち、当社は Cloud Run と AlloyDB を中心に再構築されたプラットフォームのパフォーマンスに大変満足しています。これらの改善により、人材開発、託児サービス、障害復旧、所得保証、住宅といったプログラムの分野に数億ドルを分配する予定です。
Cloud Run はとにかく便利です。サービスはトラフィック パターンに一致するようにスケールアップとスケールダウンを実施し、デプロイは GitHub Actions と yaml に保存されたコンテナ サービス定義を使用して簡単に管理できます。異なるアプリケーション リビジョン間でトラフィックをルーティングするなど、手動による介入が必要な場合、Cloud Run UI は以前使用していたコンテナ オーケストレーション ツールよりもはるかに優れています。
AlloyDB にはまるでデータベースの健全性を維持するために働く DBA のチームが存在するようです。ビジネスが成長しても、レイテンシは驚くほど低いままです。コンソールで数回クリックするだけで、データ分析とレポート作成のニーズ用に別の読み取り専用プールを作成し、異なる時点のバックアップを新しいクラスタに復元して、以前のバージョンのユーザーデータを取得できました。また、確約利用割引を購入することで、今後 3 年間のデータベースの費用を半分に抑えました。
その他にも次のようなメリットがありました。
-
セキュリティ: Google は、Beam とその行政機関パートナーにとって重要な分野であるセキュリティを優先しています。たとえば、すべての Google Cloud サービスでのデフォルトでの保存データの暗号化、Workload Identity による簡単なキーなしのサービス アカウント、Security Command Center は、小規模ながらセキュリティ重視のエンジニアリング チームを強化するいくつかの特長です。
-
デベロッパー指向: 当社のデベロッパーは、Google Cloud のドキュメントはわかりやすく、SDK の統合は他のクラウド プロバイダに比べて簡単かつ迅速だと感じています。
-
イノベーションの実現: 当社の部門横断型チームは、Cloud Run やその他のサービスを基盤としてパイロットのパートナー向けの効果的な AI モデルを構築できました。
-
社会的配慮と環境に対する責任: 当社は、技術的な理由以外でも、Google Cloud を戦略的クラウド パートナーにしたことを誇りに思います。Google Cloud のサステナビリティ戦略は、主要なクラウド プロバイダのなかで最も先進的であり、Google の社会活動は、Beam のミッション、そして当社のパートナーや投資家の価値観と一致しています。
最も重要なのは、クラウドの月額合計費用を半分に抑えながら、当社とパートナーにこれらすべてのメリットがもたらされたことです。
Google Cloud がスタートアップにどのように役立つかについてや、最近立ち上げられた Startup Learning Center のリソースを活用する方法についての詳細もご確認ください。