コンテナ/サーバーレス技術の勉強会を開催、SOMPOシステムズもCloud Runの活用事例を紹介
「GKE」と「Cloud Run」の特徴と正しい使い分け、Google Cloudが解説
グーグル・クラウド・ジャパン(Google Cloud)は2023年7月18日、コンテナ/サーバーレス技術に関する記者勉強会を開催し、同社が提供する「Google Kubernetes Engine」や「Cloud Run」の特徴を中心に解説を行った。またゲストとしてSOMPOシステムズも出席し、損保ジャパンが販売代理店向けに提供するAI検索システム「教えて!SOMPO」におけるCloud Runの活用事例を紹介した。
Google Kubernetes Engine(GKE)とCloud Runの特徴を照会
Google Cloud 技術部長(インフラ、アプリケーション開発)の安原稔貴氏は、Google Cloudのアプリケーション実行基盤の特徴として大きく2つ、「マネージド」と「シンプル」というキーワードを挙げる。ユーザー自身で運用管理を行う必要がなくアプリケーション開発に集中でき、また複雑な構成をせずにすぐ使い始められる、という特徴だ。
もちろんこうした特徴は、Google Kubernetes Engine(GKE)やCloud Runでも踏襲されている。
Kubernetes環境のマネージドサービスであるGKEは、オープンソースに準拠しながらも高度なクラスタ管理機能を持っており、オートスケーリングやオートアップグレード、さらにノードの自動修復などを実現している。さらに、Googleが培ってきたKubernetes運用のベストプラクティスも盛り込まれたマネージドサービスになっているという。
現在のGKEでは「Autopilotモード」も提供されている(以下、GKE Autopilot)。通常のGKEではマネージドサービスの範囲がコントロールプレーンまでだが、GKE Autopilotではアプリケーション実行環境であるノードもGoogle Cloudが管理する。これにより、アプリケーションエンジニア単独でも、より簡単にKubernetes環境が利用できる。
「本番ワークロードに適したベストプラクティスが適用済みであり、デプロイすれば、そのままアプリケーションが実行できる環境を提供できる。さらに、Autopilotモードにより、基盤エンジニアやアプリケーションエンジニアにかかるコストを削減できる」(安原氏)
もう一方のCloud Runは、フルマネージドのコンテナをベースとしたサーバーレスプラットフォームだ。GoやPython、Java、Node.js、.NET、Rubyなどで記述されたスケーラブルなコンテナ型アプリをすぐにデプロイできる。インフラ構築の知識が不要であり、設定項目もシンプルな点が特徴だ。
「フルマネージドのGKE Autopilotでもネットワーク設計などのインフラ知識は必要だが、Cloud Runならばそれも不要。インフラの構築/運用工数を削減し、アプリ開発に集中できる。また高いスケール性能を持つのも特徴で、1000ノードまでわずか数秒で高速にスケールする。サービスプロバイダーとして大規模なクラウドを運用するグーグルのノウハウを生かし、リニアにスケールするのも強みのひとつだ」(安原氏)
さらにCloud Runでは、明示的に設定しなくてもリクエスト数に応じたオートスケーリングが行われ、15分程度リクエストがなければコンテナインスタンスを「0」にしてコストを最小化する。「どれくらいのリクエストが来るのかわからないような新サービスを開始するときなどには、特にCloud Runのメリットが大きい」(安原氏)。
Cloud RunはオープンソースのKnativeに準拠しているため、構築したコンテナアプリは他社クラウドやオンプレミス環境でホストすることもできる。ベンダーロックインを避けたサーバーレス環境が実現できる点も特徴に挙げた。
そのうえで安原氏は、こうしたCloud Runの特徴はアプリケーション開発の内製化にも貢献するものであり、「Cloud Runは内製開発を進めたいユーザーにこそ使ってほしい」と強調した。
「内製開発を行う際の課題として、インフラ運用チームがいないために自分で学習/対応するしかない、インフラ構築に関する調整事項が多い、コンテナ関連の知識やスキルがなくコンテナ化ができない、インフラの初期導入コストが高いといったものがあるが、Cloud Runはそれらを解決できる。インフラ管理不要、使ったぶんだけのコスト負担、常に最新パッチが適用される安全性といった特徴で、内製開発を促進する」(安原氏)
Cloud Runを採用している中外製薬では、設定項目が少なく、ロードバランサーがシンプルな設計であるため、すぐに利用できるという点を評価。VRプラットフォームのリニューアルにCloud Runを採用したナーブでも同様に、設定項目が少ない点を評価しているという。また、野村総合研究所(NRI)が行ったCloud Runの実証実験では、10万リクエスト/秒の大規模トラフィックに対してもスムーズにスケールできることが確認されたという。
なおGoogle Cloudでは、クラウドネイティブ技術をベースにした内製化を促進する目的で「Tech Acceleration Program(TAP)」を展開している。実際の顧客アプリケーションをベースに、同社のエンジニアが短期集中のワークショップを行い、アーキテクチャ設計からプロトタイプ開発支援までを行う。「Google Cloudのサービスや技術に精通したエンジニアが伴走し、約2週間に渡って共同作業を行うことで、お客様の内製開発の第一歩を支援することができる」(安原氏)
損保ジャパン:検索システムのサジェスト機能にCloud Runを採用
損保ジャパン「教えて!SOMPO」サービスにおけるCloud Runの活用事例については、SOMPOシステムズ 損保システム第一本部副本部長の武井信之氏が説明した。
教えて!SOMPOは、損害保険の販売代理店向け情報や損害保険に関わる各種情報、商品関連コンテンツ、ローコード開発基盤として採用している「intra-mart」などの情報を統合し、横断的に検索できるようにした検索ツールだ。検索しても見つからない情報は、ワークフローシステムに乗せて本社や営業店に照会できる機能も備える。新たな照会/回答データはコンテンツとして追加され、循環的にナレッジが蓄積されていく仕組みだ。
同サービスはGoogle Cloudを中心としたマルチクラウド環境で構築されている。データベースには「Google Cloud SQL」、コンピューティングは「Google App Engine(GAE)」、横断検索エンジンには「Google Compute Engine(GCE)」を採用している。
Cloud Runは、ユーザーが検索フォームに入力した文字列に応じて、入力候補をサジェストする機能の部分に採用されている。クライアントからのリクエストに対し、Cloud Runが超低レイテンシでレスポンスを返し、表示を行うという。
「具体的には、リクエストパラメータのバリデーションチェック、エラーや応答時間などの各種ログ出力、サジェスト機能APIの呼び出しにCloud Runを利用している。GAEだけでも完結させられるが、今後このサービスを外部代理店向けに展開する際、ファイアウォール設定、トランザクション増加によるコスト増大、学習コストの上昇といった課題が想定される。これらはCloud Runであれば解決できる。もうひとつ、Google CloudがGAEよりもCloud Runに力を入れていることも選択理由になった」(SOMPOシステムズ 武井氏)
Cloud Runに感じるメリットとしては、ソースコードからコマンド1つでデプロイが完了すること、Webサーバーが自動的に導入されること、SSL証明書も自動で発行されること、パフォーマンスチューニングなしで高負荷に耐えること、コンテナ移行が容易で学習コストが低いことなどを挙げる。
武井氏は、今後はCloud Runを「エンタープライズ向け大規模システム実行環境の第一選択肢に挙げたいと考えている」と語った。Cloud Runのバックグラウンド技術を理解しておく必要もあるため、練度の高い技術者はGKEベースでの開発を進め、学習コストの低いCloud Runとの併用/使い分けを考えていくという。なお、現在GAEを利用しているアプリケーションは「順次、Cloud Runに移行したい」と述べた。