Skip to content
Latchkey

サーバーレスとは?サーバーを管理せずにコードを実行する

サーバーレスとは、サーバーをプロビジョニングしたり管理したりせずにコードを実行することを意味します。クラウドがオンデマンドでコンピュートをプロビジョニングし、自動的にスケールし、実際に使用した分だけ課金します。

サーバーレスにもサーバーは存在します。ただ、それを決して管理しないだけです。プロバイダーがキャパシティ、スケーリング、パッチ適用、可用性を扱い、あなたは自分のコードやコンテナだけに集中します。その特徴を定義づけるのは、自動スケーリング(多くの場合ゼロまで)と、きめ細かい使用量ベースの課金です。ファンクションとサーバーレスコンテナが一般的な形態です。

何がサーバーレスたらしめるのか

  • 手動でプロビジョニング、パッチ適用、スケールするサーバーが不要。
  • 需要に応じた自動スケーリング、多くの場合ゼロまで縮小。
  • アイドル状態のキャパシティではなく、実行時間やリクエストに対してのみ支払う。
  • イベント駆動またはリクエスト駆動の呼び出し。

ファンクション対サーバーレスコンテナ

ファンクションプラットフォーム(Lambda、Cloud Functions、Azure Functions)は小さなハンドラーを実行します。サーバーレスコンテナプラットフォーム(Cloud Run、Fargate、Container Apps)は、任意のコンテナイメージをサーバーレスに実行します。コンテナはより高い柔軟性を提供し、ファンクションは小さなイベントハンドラーに最もシンプルです。

コールドスタート

サーバーレスのワークロードがゼロからスケールするとき、環境が初期化される間、最初のリクエストはコールドスタートのコストを負担します。これがレイテンシに関する主なトレードオフです。最小インスタンス設定や軽量なランタイムは、レイテンシに敏感なパスでこれを軽減します。

サーバーレスが輝くとき

サーバーレスは、アイドル状態のサーバーへの支払いが無駄になる、急激で予測不能、またはイベント駆動のワークロードに適しています。安定した高スループットのトラフィックには、常時稼働のコンピュートの方が安価になることもあるため、このモデルは常により優れているというより、ワークロードへの適合性を判断するものです。

CI/CDでの役割

サーバーレスのデプロイは通常、単なるコードやイメージの更新です。パイプラインはファンクションやイメージをパッケージ化し、それをプッシュし、OIDCやフェデレーションで認証してクラウドのCLI経由でサービスを更新します。管理すべきフリートがないため、デプロイはシンプルで、トラフィックを以前のバージョンに向けることでロールバックします。

重要なポイント

  • サーバーレスは、プロバイダーが管理するコンピュート上でコードを実行し、使用量に応じてスケールし課金します。
  • ファンクションまたはサーバーレスコンテナの形で提供され、コールドスタートがトレードオフとなります。
  • デプロイは単純なコードやイメージの更新であり、管理すべきフリートがありません。

関連ガイド