次世代サーバーレス: 企業にとっての 3 つのメリット
Google Cloud Japan Team
※この投稿は米国時間 2021 年 5 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
万物は流転する。2020 年を振り返るとき、ヘラクレイトスのこの言葉はなおいっそう真実味を帯びて響きます。パンデミックの中、企業は(ときには数週間以内での)事業シフト、新製品のリリース、極端な需要パターンへの対応を迫られました。
顧客のニーズにより迅速かつ効率的に応えるため、多くの企業がサーバーレス テクノロジーに目を向け、リアルタイム シグナルやインテリジェンスを組み込んだアプリケーションを考案しました。病院の予約やワクチン接種、公共部門の福利厚生、接触確認、小売の物流管理、カーブサイド デリバリー、ホテルや旅行の予約など、あらゆるアプリやサイトがサーバーレスで構築されました。
サーバーレスの再定義
世界が変わり、市場が変わり、生活が変わる中、Google Cloud もまた、お客様のニーズに応え、お客様とともに成長するため、新たなプロダクトを導入することで変化しました。
特にサーバーレス テクノロジーは、最初に導入されたときから大きく変わりました。Google は、2008 年に App Engine のリリースによって最初のサーバーレス コンピューティングを立ち上げ、お客様がアプリケーションを迅速かつシームレスにスケールできるようにしました。その後、Cloud Functions で Functions as a Service を実行する機能を追加し、テレメトリーとオブザーバビリティを統合してシンプルなデベロッパー エクスペリエンスを提供しました。同時に、Kubernetes でコンテナ市場に革命をもたらしました。ほどなくして Google は、自動スケーリングや優れたデベロッパー エクスペリエンスといったサーバーレスのすばらしい特長をコンテナの柔軟性と組み合わせることができないか、お客様から問われるようになりました。
そして、次世代サーバーレスである Cloud Run が登場しました。サーバーレスは、もはや単なるイベント ドリブン プログラミングやマイクロサービスの枠を超えたものになりました。優れたデベロッパー エクスペリエンスを維持しながら、複雑なワークロードを大規模に実行できるようになったのです。実際、Cloud Run によるサーバーレスは、どのような言語、ライブラリ、バイナリも実行できる、柔軟性に優れた真のデベロッパー プラットフォームを実現します。
Cloud Run を他の「サーバーレス」と差別化し、次世代サーバーレスたらしめるのが、次の 3 つの特長です。
デベロッパー中心の優れたエクスペリエンス
汎用性: 広範なコンテナ化アプリを実行可能
組み込み DevOps とセキュリティ
これらの特長をさらに詳しく見ていきましょう。
優れたデベロッパー エクスペリエンス
デベロッパー中心と言えるのは、フルマネージドの自己運用インフラストラクチャと、優れたデベロッパー エクスペリエンスを備えているからです。Google は、誰もがスマートなアプリケーションを開発できるようになることを望んでおり、そのためには、それを簡単に行えるようにする必要があります。また、技術的な才能がビジネス価値に確実に結び付くようにしたいとも考えています。
2020 年にソースコードから直接コンテナ イメージを作成できる Buildpack を導入したのも、この簡単化のためです。これで、Docker やコンテナを学ぶ必要がなくなりました。コンテナは下層に存在しますが、デベロッパーが意識する必要はありません。
さらなる簡単化のため、コードのビルドと Cloud Run へのデプロイを 1 コマンドで行える「gcloud run deploy」も導入しました。これらの機能は、Cloud Run ユーザーのうち 98% が、初めてのアプリケーションのデプロイを 5 分以内にできている理由の一部になっています。
実際、複雑なアプリの開発を簡単にするために、過去 1 年間だけでサーバーレス スタックに 25 を超える新しい機能とサービスを追加しました。主なリリースの一つに Workflows があります。これにより、Cloud Run を任意の Google Cloud プロダクトや HTTP ベースの API サービスと組み合わせることができます。これはデベロッパーにとって、複雑なプロセスを自動化する場合や、さまざまなシステム間で GCP の分析サービスを統合する場合に非常に役立ちます。
User Research International の最近の報告は、このような新機能の存在によって、Cloud Run を使用するデベロッパーのエクスペリエンスが競合他社のそれをはるかに上回っているとしています。
汎用性
次世代サーバーレスは、汎用性にも優れています。さまざまなアプリケーションをサポートし、企業の要件に応えます。関数やウェブアプリはもちろん、重量級のアプリケーション、既存環境のコンテナ化アプリ、サードパーティのコンテナ化アプリも含みます。この汎用性を実現するのが、言語、実行時間、ハードウェアの制限を排除するコンテナ基本要素です。
サーバーレス スタックで豊富な種類のアプリを実行できることにより、使用パターンの予測と最適化が可能になります。Google は本日、費用ベースの Cloud Run 向け確約利用割引を新たに発表しました。使用パターンが安定していて予測可能な企業は、この確約利用契約を課金ページから直接購入できるようになりました。これは、前払いすることなく最大 17% の割引を受けられるという、理想的な費用削減手段です。
汎用性を提供するもう一つの方法が、Cloud Run による WebSocket と gRPC のサポート です。この新しい機能追加により、サーバーレス インフラストラクチャのメリットを活用した、応答性の高い高性能アプリケーションを構築できます。また、Cloud Run への最小インスタンス数機能の追加も行いました。この機能を使用すると、コールド スタート時間を削減でき、レイテンシの影響を受けやすいアプリケーションを Cloud Run で実行できます。それと同時に、ゼロへのスケーリングや、利用可能なコンピューティング能力を最小限に維持することもできます(たとえば、既存環境の Java アプリケーションを実行中の場合など)。
組み込み DevOps
サーバーレスは、デベロッパーによるアプリのセットアップを迅速化するだけでなく、アプリケーション稼働開始後には、運用チームによる管理作業の負荷も大幅に軽減します。特に威力を発揮するのが、アプリケーションのスケールアップとスケールダウンです。サーバーレス プラットフォームは、アプリケーションが処理するトラフィックが急増すると、その負荷を処理するための追加リソースを自動的に起動するのです。もう、あの煩わしいタイムアウト エラーやビジーアイコンが出ることはなくなり、運用チームが駆り出されることもなくなります。需要が減った際も同様に、サーバーレス プラットフォームがすぐに自動でリソースのデコミッション(スケールダウン)を行うため、不要になったリソースに費用がかかることもありません。サービスをグローバルに実行する場合、運用チームが関わることなく、レイテンシを低く抑え、不要なコストをゼロにしたいのは当然です。Cloud Run は、すべての Google Cloud リージョン でグローバルな負荷分散とゼロへの自動スケーリングを行います。
また、段階的なロールアウトとロールバックのサポートなどの機能により、デベロッパーはアイデアをすばやくテストしたり、Cloud Run の高度なトラフィック管理を行ったりできます。さらに、デベロッパーが本番環境のパフォーマンス ボトルネックを見つけ出せるよう、設定や構成を行うことなく分散トレースを利用できます。
次に来るもの: サーバーレス セキュリティ
DevOps のベスト プラクティスの一環として、すべてのレイヤ(デプロイ時、ランタイム、ネットワーキング)でサーバーレス アプリケーションのためのセキュリティを組み込みます。たとえば、組み込みの脆弱性スキャンにより、信頼できるアーティファクトのみをデプロイすることができます。
Google は、本日 Cloud Run による Google Secret Manager と顧客管理の暗号鍵(CMEK)のサポートを発表しました。これにより、保存データの保護とセンシティブ データの保存が容易になります。また、Cloud Run と Binary Authorization との統合も進めています。これにより、特定のポリシーを適用して、適切と認められたイメージのみを本番環境に移行することができるようになります。さらに、Identity-Aware Proxy との新たな統合、VPC-SC のサポート、下り(外向き)の制御を追加しました。これらのサービスはセキュリティ境界を適用するために使用でき、本番環境での実行時に特定のサービスにアクセスできるユーザーと、アクセス可能なリソースの両方を制限できるようになります。ここに挙げたセキュリティ強化について詳しくはこちらをご覧ください。まとめると、次世代サーバーレスとは、サーバーレスの長所とコンテナを組み合わせたもので、言語、ネットワーキング、リージョンの制限なしに広範なアプリを実行できます。次世代サーバーレスは、デベロッパーが今後求められる最新型のアプリケーション(変化に容易に適応し、必要に応じてスケールでき、顧客のニーズに迅速かつ効率的に応えられるアプリケーション)を構築するのにも役立ちます。しかもその間、デベロッパーは優れたエクスペリエンスを享受できます。詳しくは、The Power of Serverless にご参加ください。これは 2 時間の仮想イベントで、Google によるサーバーレス コンピューティングのビジョンの提示と、サーバーレスの専門家によるサーバーレス開発関連トピックの詳細な説明が行われます。皆様のご参加をお待ちしております。
サーバーレスとクラウドネイティブ アプリケーション開発についてさらに詳しく知るには、今後開催される Modern App Dev & Delivery ワークショップと Ask the Experts ラウンドテーブルにご登録ください。
-プロダクト管理ディレクター Aparna Sinha