App Engine から Cloud Run への移行: コンテナを導入し、インフラストラクチャ費用を 70% 削減
Google Cloud Japan Team
※この投稿は米国時間 2023 年 1 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。
編集者注: 本日の投稿では SAP からゲストをお迎えし、同社のアプリケーションのモダナイゼーションへの取り組み、特に Cloud Run を使ったサーバーレス アプリケーション アーキテクチャを達成するまでの過程についてお話を伺います。SAP のデベロッパーは、Google Cloud プロフェッショナル サービスの協力を得て、わずか 3 週間で App Engine ワークロードの Cloud Run への移行を完了しました。アプリケーションへの変更を最小限に抑えつつ、効率化に注力することで、大きな費用削減を達成しています。
SAP は、エンタープライズ アプリケーション ソフトウェア分野の世界的なマーケット リーダーであり、約 11 万人の社員を抱えています。テクノロジーおよびデータドリブンなビジネスを展開しており、Google Cloud 上で各種社内アプリケーションを実行しています。これらの社内アプリケーションでは、SAP の CI / CD パイプラインで生成、アップロードされるファイルを格納、処理しており、その数は 1 日に約 25 万件にのぼります。Google Cloud Storage や Google Pub/Sub などのコアサービスのおかげで、インフラストラクチャにはほとんど手間がかかりませんでした。当社は 2019 年に Google App Engine を使ってマイクロサービスの提供を開始しました。特に App Engine のわかりやすい設計、効率、簡素性のおかげで、サーバーを管理する手間が省かれ、コーディングやビジネス ロジックに注力することができるようになりました。
当社は、Google Cloud のワークロード、プロジェクト、リソースを特定のリージョンにまとめる取り組みを進めています。その一環として、マイクロサービス アプリケーションのプラットフォームとして App Engine を再評価しました。App Engine が Google Cloud の特定のプロジェクトおよびリージョンに結び付けられている点をふまえ、Google Cloud Run へ移行するという案が浮上しました。そうすれば、新リージョンで App Engine を使うためだけに、Google Cloud の新プロジェクトを作成せずに済みます。さらに、Cloud Run は App Engine と同じくサーバーレスを強みとしているのに加え、コンテナのおかげで柔軟性がいっそう高いという特徴があること、当社のイベント ドリブン型アーキテクチャがサーバーレスと親和性が高いという要因も後押しになりました。当社のアプリケーション トラフィックは、ピーク時からほぼゼロまで変動します。Cloud Run では柔軟なスケーリングが可能で、完全なアイドル状態にスケールダウンすることもできるので、変動の多いトラフィックに対応しつつ、費用を抑えることができます。
Google Cloud のビルドパックを使って Cloud Run のソースベースの導入を行うことで、コンテナのマニフェストを定義したり、コンテナを独自に構築したりする手間が省かれました。ビルドパックでは、ソースコードの言語を自動的に識別し、任意のコンテナ プラットフォームで実行可能なコンテナ イメージへと変換できます。Cloud Run でマイクロサービスを稼働させるにあたり、パイプライン側のデプロイ手順を調整する必要はありましたが、コードの変更は不要でした。
移行をスムーズに行うために、カスタム ドメインを登録して、Google Cloud HTTP ロードバランサおよび Google マネージド SSL 証明書を活用しました。最初はロードバランサが App Engine サービスを指していたため、URL マップを更新することで、Cloud Run にひとつずつ簡単に切り替えられました。この方法だと、API 利用者やエンドユーザーに影響が及びません。
こうした取り組みを通じて、オープン標準の基盤へと完全に切り替えることができました。
当社ではマイクロサービスを 8 個提供しており、それぞれインフラストラクチャやスケールの要件が異なりますが、Cloud Run なら個々のサービスに適した構成を適用できます。Cloud Pub/Sub ではもともと pull を使って統合しており、それをそのまま活用できたため、アプリケーションの移行は簡単に終了しました。
こうして、小規模なチームが約 4~5 週間で移行を完了し、新たな環境で運用を開始することができました。さらに、Cloud Run の詳細な課金モデルのおかげで、アプリケーションのコンピューティング費用も 70% 削減できました。上のグラフを見れば、移行に伴う費用削減が一目瞭然です。
Google Cloud プロフェッショナル サービスのおかげで、社内で特にリソースを追加することなく、サービスの中断も回避しながら、これだけのことを成し遂げることができました。
App Engine から Cloud Run への移行は、当社が誇るイベント ドリブン型アーキテクチャを維持するために正しい選択だったといえます。Cloud Run の簡素性、そしてソースベースのデプロイが可能であるという特徴のおかげで、移行がスムーズに完了したうえに、費用も削減したという大満足の結果です。
詳しくは、App Engine 利用者向けの Cloud Run のガイドをご覧ください。さっそく、Google Cloud でサーバーレスの利用を開始してみませんか。
- SAP SE、シニア デベロッパー Mert Safter 氏