最小インスタンスの使用

最小インスタンス数を構成して、サービスのアイドル インスタンスを有効にする方法について説明します。

デフォルトでは、Knative serving は受信リクエストの数に基づいたインスタンス数までスケーリングします。ただし、サービスでレイテンシを短縮する必要があり、コールド スタートの数を制限する場合は、いつでもリクエストを処理できるコンテナ インスタンスの最小数を指定して、このデフォルトの動作を変更できます。

この方法で実行されているインスタンスは課金対象になります。

リビジョンと最小インスタンス数

最小インスタンスで開始するのは、リビジョンでアドレス指定が可能な場合に限ります。次のいずれかに該当する場合は、リビジョンでアドレス指定が可能です。

  • 一定の割合のトラフィックを受信している
  • リビジョンタグが割り当てられている

最小インスタンスの設定と更新

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

デフォルトでは 0 が設定され、コンテナ インスタンスの min-instances は無効になっています。このデフォルト値は、新しいサービスをデプロイするとき、または既存のサービスを更新してリビジョンをデプロイするときに、Google Cloud コンソールまたは Google Cloud CLI で変更できます。

コンソール

  1. Google Cloud コンソールで Knative serving に移動します。

    Knative serving に移動

  2. デプロイ先の新しいサービスを構成する場合は、[サービスを作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [コンテナ] をクリックします。

  4. [インスタンスの最小数] フィールドに、ウォームアップ状態を維持し、リクエストを受信できるコンテナ インスタンスの数を指定します。

  5. [次へ] をクリックして、次のセクションに進みます。

  6. [このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。

  7. [作成] をクリックしてイメージを Knative serving にデプロイし、デプロイの完了を待ちます。

コマンドライン

  • 既存のサービスの場合は、--min-instances パラメータを指定して gcloud run services update コマンドを実行し、コンテナ インスタンスの最小数を設定します。

    gcloud run services update SERVICE --min-instances MIN-VALUE

    次のように置き換えます。

    • SERVICE は、実際のサービスの名前に置き換えます。
    • MIN-VALUE は、ウォーム状態を維持し、リクエストを受信できるコンテナ インスタンスの数に置き換えます。インスタンスの最小数の設定を消去するには、default を指定します。
  • 新しいサービスの場合は、--min-instances パラメータを指定して gcloud run deploy コマンドを実行し、コンテナ インスタンスの最小数を設定します。

    gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE

    次のように置き換えます。

    • SERVICE: 実際のサービスの名前。
    • IMAGE_URL: コンテナ イメージへの参照(gcr.io/cloudrun/hello など)。
    • MIN-VALUE は、ウォーム状態を維持し、リクエストを受信できるコンテナ インスタンスの数に置き換えます。インスタンスの最小数の設定を消去するには、default を指定します。

YAML

--format=export フラグを使用して、gcloud run services describe コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud run services replace コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。

  1. ローカル ワークスペースの service.yaml という名前のファイルにサービスの構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml

    SERVICE は、Knative serving サービスの名前に置き換えます。

  2. ローカル ファイルで autoscaling.knative.dev/minScale: 属性を更新します。

    spec:
     template:
       metadata:
         annotations:
           autoscaling.knative.dev/minScale: 'MIN-INSTANCE' 

    次のように置き換えます。

    • MIN-VALUEcode> は、ウォーム状態を維持し、いつでもリクエストを受信できるようにしておくコンテナ インスタンスの数で置き換えます。インスタンスの最小数の設定を消去するには、default を指定します。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud run services replace service.yaml