最小インスタンス数を構成する(第 1 世代)
インスタンスの最小数を設定することで、アプリケーションのコールド スタートを回避し、アプリケーションのレイテンシを短縮できます。
Cloud Functions では、関数の新しいインスタンスを作成してスケーリングを行います。各インスタンスは一度に 1 つのリクエストしか処理できないので、リクエスト量が急増すると、多くの場合、新しいインスタンスを作成して需要を処理するため、待機時間が長くなります。
関数はステートレスであるため、実行環境をゼロから初期化することがあり、これはコールド スタートと呼ばれます。コールド スタートは完了するまでに時間がかかることがあるため、アプリケーションがレイテンシの影響を受けやすい場合は、Cloud Functions のインスタンスを最小数に設定することをおすすめします。
アイドル インスタンスとコールド スタート
コールド スタートの影響を最小限に抑えるため、Cloud Functions では、リクエストを処理した後、関数インスタンスをアイドル状態で無期限に維持しようとします。このアイドル期間では、別のリクエストを処理する必要がある場合に備え、確立されているデータベース接続などのリソースが残り続けることがあります。このようにアイドル状態が維持されたインスタンスは、ご利用の関数でのインスタンスの上限数に対してカウントされますが、アイドル期間は課金されません。
この組み込み動作は、特にレイテンシの影響を受けやすいアプリケーションでは、不十分な場合があります。追加の対策としては、インスタンスの最小数を明示的に設定することで、コールド スタートを回避し、アプリケーションのレイテンシを低減できます。
インスタンスの最小数が設定されたためにインスタンスがアイドル状態のままになっている場合、これらのインスタンスは、トラフィックを最近提供していない限りアクティブとはみなされません。たとえば、関数がトラフィックを最近処理していない場合は、最小インスタンスの値が設定されていても、「アクティブ インスタンス」指標には「アクティブなインスタンスがない」と示される可能性があります。
ただし、インスタンスの最小数を設定すると、そうしたインスタンスのアイドル時間に対しては課金が発生します(料金をご覧ください)。
最小インスタンス制限の設定とクリア
デプロイ時に、関数のインスタンスを最小数に設定できます。関数ごとに独自の最小インスタンスを設定できます。
最小インスタンス制限の設定
インスタンスの最小数を設定するには、Google Cloud CLI または Google Cloud Console を使用します。
コンソール
新しい関数に最小インスタンス制限を設定するには:
新しい関数を作成するには、Google Cloud Console の [Cloud Functions] ページに移動します。
Cloud Functions ページに移動[関数の作成] をクリックします。
関数の必須フィールドを入力します。
ページの最後にある [ランタイム、ビルド...] セクションを開き、[ランタイム] タブをクリックします。
[自動スケーリング] セクションの [インスタンスの最小数] フィールドに、1 以上の数値を入力します。
[次へ] をクリックします。
[デプロイ] をクリックします。
既存の関数に最小インスタンス制限を設定するには:
Google Cloud Console の [Cloud Functions] ページに移動します。
Cloud Functions ページに移動既存の関数の名前をクリックすると、[関数の詳細] ページが表示されます。
[編集] をクリックします。
ページの最後にある [ランタイム、ビルド...] セクションを開き、[ランタイム] タブをクリックします。
[自動スケーリング] セクションの [インスタンスの最小数] フィールドに、1 以上の数値を入力します。
[次へ] をクリックします。
[デプロイ] をクリックします。
gcloud
最小インスタンス制限を設定するには、次のコマンドを実行します。
gcloud functions deploy FUNCTION_NAME \
--min-instances MIN_INSTANCE_LIMIT
次のように置き換えます。
FUNCTION_NAME: 関数の名前。
MIN_INSTANCE_LIMIT: 最小インスタンス制限として設定する数値。1,000 以下にしてください。
関数に最小インスタンス制限が設定されます。
最小インスタンス制限のクリア
インスタンスの最小数をクリアまたは削除するには、Google Cloud CLI または Google Cloud コンソールを使用します。
コンソール
関数の最小インスタンス制限をクリアするには:
Google Cloud Console の [Cloud Functions] ページに移動します。
Cloud Functions ページに移動既存の関数の名前をクリックすると、[関数の詳細] ページが表示されます。
[編集] をクリックします。
ページの最後にある [ランタイム、ビルド...] セクションを開き、[ランタイム] タブをクリックします。
[自動スケーリング] セクションの [インスタンスの最小数] フィールドに「0」を入力します。
[次へ] をクリックします。
[デプロイ] をクリックします。
gcloud
デプロイ時に --clear-min-instances
フラグを使用します。
gcloud functions deploy FUNCTION_NAME --clear-min-instances
関数の最小インスタンス制限がクリアされます。
最小インスタンス数を設定するための推奨事項の取得
Recommender サービスは、最小インスタンス数を設定することでメリットを得られる、デプロイされた関数の推奨事項を自動的に提示します。