这是indexloc提供的服务,不要输入任何密码

サーバーレス コンピューティングとは

サーバーレス コンピューティングは、使用量に応じてマシンリソースを割り当てるクラウド コンピューティング実行モデルです。サーバーレス モデルでは、デベロッパーはサーバーを管理する必要なくアプリケーションを構築して実行できます。料金は使用した実際のリソース量に対してのみ発生します。代わりに、クラウド サービス プロバイダが、アプリケーション コードを実行するクラウド インフラストラクチャのプロビジョニング、管理、スケーリングを行います。

サーバーレス コンピューティングは、その名前とは異なり、サーバーを排除するものではなく、日常的なインフラストラクチャ タスクを抽象化することで、アプリケーション開発を合理化するものです。つまり、アプリケーションを実行する基盤となるマシンをユーザーが確認、構成、管理、スケーリングすることはありません。基本的には、サーバー自体ではなく、サーバーのサービスに対して料金を支払います。

開発の観点から見ると、サーバーはまったく存在しないかのように見えます。デベロッパーはコードを記述して本番環境にデプロイするだけで、残りの処理はクラウド プロバイダが担当します。

Google Cloud がサーバーレスをどのように活用しているかをご覧ください

サーバーレス コンピューティングの仕組み

アプリケーションの構築に関しては通常、デベロッパーはコードをデプロイするために、処理とストレージのためのリソースの定義、パッチ適用、ロード バランシングなど、多くのサーバー管理タスクを実行する必要があります。こうした余分な項目はすべて、長いプロビジョニング時間と、運用上のオーバーヘッドの増加をもたらし、最終的に開発チームの作業効率低下を招きます。

サーバーレス コンピューティングは、デベロッパーに目に見えない「サーバーレス」のエクスペリエンスを提供し、サーバーやアプリケーションの実行に必要なものを考える必要性を排除します。サービス プロバイダがバックグラウンドですべての作業を行い、コードを実行し、要件を満たすためのリソースを確保します。アイドル状態の容量に対して料金が請求されることはありません。

サーバーレス コンピューティングについて

サーバーレスは、家に水道を引くようなものと考えてください。自分の井戸を掘り、水質をテストし、家に水道を引くために必要なすべての外部配管を設置して維持することができます。または、都市のメインの水道に接続することもできます。水道の蛇口を回すだけで、必要なときに必要な量の水が供給され、市は実際に消費した水量に対して毎月の請求書を送付します。

同様に、クラウド プロバイダはサーバーレス アプリの実行に必要なインフラストラクチャ リソースとランタイム環境を自動的にスピンアップし、実行が完了すると自動的にゼロにスケールダウンします。通常、実行時間中のリソースに応じて課金されます。ただし、これはサービスやベンダーによって異なる場合があります。

サーバーレス コンピューティングと他のクラウド コンピューティングとの比較

でも、他のタイプのクラウド コンピューティングでは、従量課金制でオンデマンドのリソースが提供されるのではないですか?Infrastructure as a Service(IaaS)Platform as a Service(PaaS)などのクラウド サービス モデルでも、コンピューティング リソースへのオンデマンド アクセスが提供されるのは事実です。

ただし、割り当てられたクラウド インフラストラクチャは、使用していない場合でもアクティブなままです。また、ユーザーの需要に応じてサーバーの容量を拡張したり、アプリケーションをスケールアップまたはスケールダウンするように構成したりすることも、お客様の責任となります。

一方、サーバーレス アーキテクチャはイベント ドリブンです。このモデルでは、イベントによってコードの実行がトリガーされた場合にのみ、プロバイダからリソースが提供されます。また、リクエストに応じて即座に自動的にスケーリングされます。

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。
お客様独自の課題については、Google Cloud のセールス スペシャリストまで詳しくご相談ください。

クラウド コンピューティング モデルの比較

主な定義:

  • 管理上の負担: 基盤となるインフラストラクチャの管理と維持に必要な労力
  • 費用モデル: リソース使用量の計算と課金に使用される方法
  • メンテナンス要件: 継続的なメンテナンス、パッチ適用、更新に必要な労力
  • スケーラビリティ: 需要の変化に応じてリソースを自動的に調整する機能
  • ステートレス性: アプリケーションがセッション間でクライアント データを保存するかどうか

サーバーレス

  • 管理上の負担: 最小限
  • 費用モデル: 従量課金
  • メンテナンス要件: なし
  • スケーラビリティ: 自動かつ即時
  • ステートレス性: 通常はステートレス

PaaS

  • 管理上の負担: 中程度
  • 費用モデル: インスタンスごとに課金
  • メンテナンス要件: 低い
  • スケーラビリティ: 手動または自動スケーリング
  • ステートレス性: ステートフルまたはステートレス

コンテナ

  • 管理上の負担: 中程度~高
  • 費用モデル: コンテナごとに課金
  • メンテナンス要件: 中程度
  • スケーラビリティ: 手動または自動スケーリング
  • ステートレス性: ステートフルまたはステートレス

VM

  • 管理上の負担: 高い
  • 費用モデル: VM ごとに課金
  • メンテナンス要件: 高い
  • スケーラビリティ: 手動または自動スケーリング
  • ステートレス性: ステートフルまたはステートレス

サーバーレス コンピューティングの種類

通常、サーバーレス クラウド コンピューティングには、Functions as a Service(FaaS)と Backend as a Service(BaaS)という 2 種類のサービスがあります。

  • FaaS は、リクエストに応じてアプリケーション ロジックを実行するために必要なコンピューティング リソースを提供します。これらのロジック(または関数)は、クラウド サービス プロバイダによって完全に管理されるコンテナで実行されます。サーバーレス アプリケーションは通常、イベントに応答して 1 つのアクションを実行する単一の機能に分割されます。
  • BaaS は、認証サービス、データベース管理、クラウド ストレージ、プッシュ通知、ホスティングなど、ウェブ アプリケーションやモバイル アプリケーションのバックエンド機能をサービスとして提供します。BaaS では、サーバー、コンテナ、仮想マシンを管理する必要もありません。

開発の分野では、「サーバーレス」という用語は通常、FaaS サービスを指すために使用されます。ただし、FaaS は技術的にはサーバーレス テクノロジーのサブセットであることに注意してください。サーバーレス コンピューティングとは、サーバーの管理、構成、スケーリング、課金など、エンドユーザーから抽象化されるあらゆる種類のサービスを指します。これには、データベース、ストレージ、イベント ストリーミング、メッセージング、API ゲートウェイなどが含まれます。

サーバーレス コンピューティングのユースケース

サーバーレス コンピューティングの一般的な例と新たな例をいくつかご紹介します。

API、サードパーティ統合

  • ユースケース: 異なるビジネス アプリケーション間で見込み顧客 / 顧客をシームレスに同期する(例: CRM からマーケティング自動化)
  • サーバーレス ソリューション: HTTP トリガーの Cloud Run functions の関数がソースシステム(Salesforce など)から Webhook を受信し、データを変換して、宛先システムの API(HubSpot など)を呼び出します。多くの場合、認証情報には Secret Manager が使用されます。
  • Google Cloud サーバーレス プロダクト: Cloud Run functions、Secret Manager

スケジュールされたアクション、トリガーベースのアクション

  • ユースケース: 定期レポートの生成と配布を自動化する
  • サーバーレス ソリューション: Cloud Scheduler ジョブが Pub/Sub を介して Cloud Run functions の関数を毎日トリガーします。この関数はデータ ウェアハウス(BigQuery など)をクエリし、データを処理してレポートを作成し、メール API を介して送信します。
  • Google Cloud サーバーレス プロダクト: Cloud Scheduler、Pub/Sub、Cloud Run functions、BigQuery

IT プロセスの自動化

  • ユースケース: アイドル状態のコンピューティング リソースを自動的に特定して管理することで、クラウド費用を削減する
  • サーバーレス ソリューション: 夜間の Cloud Scheduler ジョブが Pub/Sub を介して Cloud Run functions の関数を毎日トリガーします。この関数は、Compute Engine API と Cloud Monitoring を使用してアイドル状態のインスタンスを特定し、それらを自動的に停止または削除して、アクションを Cloud Logging に記録します。
  • Google Cloud サーバーレス プロダクト: Cloud Scheduler、Pub/Sub、Cloud Run functions、Cloud Monitoring、Cloud Logging

リアルタイム処理、非同期処理

  • ユースケース: 大量のストリーミング データ(ユーザー アクティビティなど)を処理して補完し、即座に分析情報とアクションを得る
  • サーバーレス ソリューション: ユーザーのクリックストリーム イベントは Pub/Sub にストリーミングされます。Cloud Run functions 関数(または Cloud Run サービス)がこれらのイベントを消費し、Firestore のデータで補完してから、そのデータを別の Pub/Sub トピックに公開して、BigQuery でリアルタイム分析を行ったり、おすすめをパーソナライズしたりします。
  • Google Cloud サーバーレス プロダクト: Pub/Sub、Cloud Run functions、Cloud Run、Firestore、BigQuery

CI / CD ワークフロー、DevOps ワークフロー

  • ユースケース: コードの変更に応じてマイクロサービスのビルド、テスト、デプロイを自動化する
  • サーバーレス ソリューション: Cloud Build トリガーが Git リポジトリ(Cloud Source Repositories など)をモニタリングし、コードが commit されると、Cloud Build がテストを実行し、コンテナ イメージを Artifact Registry にビルドし、新しいバージョンを Cloud Run に自動的にデプロイします。
  • Google Cloud サーバーレス プロダクト: Cloud Build、Cloud Run、Artifact Registry、Cloud Source Repositories

画像処理、動画処理

  • ユースケース: 最適化された画像バリアント(サムネイル、さまざまな形式など)をアップロード時に自動的に生成する
  • サーバーレス ソリューション: 新しい画像が Cloud Storage バケットにアップロードされると、Cloud Run functions の関数がアクティブになります。この関数は画像を処理(サイズ変更、形式変換)し、新しいバージョンを Cloud Storage に保存して、Firestore のメタデータを更新します。
  • Google Cloud サーバーレス プロダクト: Cloud Storage、Cloud Run functions、Firestore

AI アプリケーション、AI エージェント

  • ユースケース: Llama 3.1、Gemma 2、Mistral などの LLM を使用してリアルタイムの AI 推論を実行する
  • サーバーレス ソリューション: Cloud Run は、Gemini API、Vertex AI エンドポイント、GPU 対応の Cloud Run サービスでホストされているモデルなどの AI モデルと統合されます。また、スケーラブルな API エンドポイントとして機能し、AI エージェントをホストすることもできます。
  • GCP サーバーレス プロダクト: Cloud Run、Cloud Storage、Firestore

サーバーレス コンピューティングの利点

デベロッパーの生産性の向上

サーバーレスを活用するデベロッパーは、インフラストラクチャのプロビジョニング、管理、スケーリングについて心配することなく、コードの記述とビジネス ロジックの最適化に集中できます。

すぐに使える拡張性

サーバーレス アーキテクチャは本質的にスケールアップまたはスケールダウンします。ルールの微調整が必要な他のタイプのクラウド コンピューティングの自動スケーリングとは異なり、サーバーレスの自動スケーリングは瞬時に実行され、ゼロまでスケールダウンできます。

柔軟な価格設定

サーバーレス料金モデルは、多くの場合、実際の使用量と関数の実行にかかる時間に基づいて課金されます。また、アイドル状態の容量には課金されないため、独自サーバーの運用と管理に関連する運用コストを削減できます。

より高速な導入

サーバーレス コンピューティングは、統合、テスト、デリバリー、デプロイにおけるインフラストラクチャ定義の摩擦を減らします。DevOps チームの負担を軽減し、コードの記述や本番環境へのデプロイに集中できるようにします。

任意の言語を使用

サーバーレス環境はあらゆる言語やフレームワークをサポートしているため、Go、Python、Java、Node.js、.NET など、使い慣れた言語やフレームワークで開発を行うことができます。

サーバーレス コンピューティングのデメリット

サーバーレス コンピューティングの大きなデメリットの一つは、まだ比較的新しいテクノロジーであるということです。そのため、現時点では、考えられるすべてのユースケースに対応できるわけではありません。

また、サーバーレス コンピューティングが進化し続けるにつれて、現存する弱点の一部が時間とともに解決されることも明らかです。特に、サーバーレスのオープンソース実装や、さまざまなプラットフォームや環境でソリューションを移植できるようにクラウド サービスをよりオープンにする方法については、すでに多くの取り組みが行われています。

  • ユースケースの適合性が限定的: サーバーレス アーキテクチャは、長時間実行されるプロセスや、非常に低いレイテンシが要求されるケースなど、特定の要件があるアプリケーションには必ずしも適していない
  • パフォーマンスの制約: サーバーレス関数では、コールド スタート(最初の実行の遅延)が発生する可能性があり、実行時間やメモリに制限がある場合もある
  • ベンダー ロックイン: サーバーレス アプリケーションをクラウド プロバイダ間で移行する場合、API や構成の違いにより、作業が複雑になる可能性がある
  • サーバーの可視性の低下: デベロッパーに対して基盤となるインフラストラクチャの可視性が限られているため、パフォーマンスの問題のトラブルシューティングやリソース使用率の最適化が困難
  • 起動が遅い: サーバーレス関数では、関数の呼び出しに遅延が発生する「コールド スタート」が発生することがあり、レイテンシに影響する可能性がある

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud