すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:コンテナの起動・終了順序の設定

最終更新日:Jun 22, 2026

環境変数を使用して、Elastic Container Instance (ECI) インスタンス内のコンテナの起動優先度と終了優先度を設定できます。これらの優先度によって、コンテナが起動および終了する順序が制御されます。

仕組み

デフォルトでは、ECI Pod 内のコンテナは特定の順序なしに並行して起動および終了します。一部のシナリオではコンテナ間に依存関係があり、あるコンテナが実行中になった後でのみ別のコンテナを起動したり、あるコンテナが停止した後でのみ別のコンテナを終了したりする必要があります。例:

  • Istio サービスガバナンスのシナリオでは、アプリケーションコンテナがトラフィックを生成する前に istio-proxy コンテナが Ready 状態になっている必要があり、アプリケーションコンテナが終了した後にのみ終了する必要があります。

  • ログ収集の場合、アプリケーションコンテナがログを生成する前にログエージェントコンテナが Ready 状態になっている必要があり、アプリケーションコンテナが終了した後にのみ終了する必要があります。

これらのシナリオに対応するため、ECI では環境変数を使用してコンテナの起動優先度と終了優先度を設定し、指定された順序で起動および終了させることができます。

設定

以下の環境変数を使用して、コンテナの起動および終了順序を制御できます。

パラメーター

環境変数

説明

コンテナの起動優先度

ECI_CONTAINER_LAUNCH_PRIORITY

  • 有効値:-1000~1000。デフォルト値:0。値が大きいほど起動優先度が高くなります。

  • 優先度の高いコンテナは、優先度の低いコンテナよりも常に先に起動します。優先度が同じコンテナは並行して起動するため、起動順序は保証されません。

  • あるコンテナ (例:B) が別のコンテナ (例:A) のサービスに依存している場合、コンテナ A に高い起動優先度を設定し、さらに readiness プローブを設定する必要があります。このプローブにより、コンテナ A が Ready 状態になった後にのみコンテナ B が起動することが保証されます。

コンテナの終了優先度

ECI_CONTAINER_EXIT_PRIORITY

  • 有効値:-1000~1000。デフォルト値:0。値が大きいほど終了優先度が高くなります。

  • 優先度の高いコンテナは、優先度の低いコンテナよりも常に先に終了します。優先度が同じコンテナは並行して終了するため、終了順序は保証されません。

重要

OpenAPI を使用して ECI インスタンスを作成する際に、TerminationGracePeriodSeconds パラメーターを設定して正常な終了を保証できます。コンテナの終了順序も設定した場合、インスタンスの合計終了時間が指定した TerminationGracePeriodSeconds を超える可能性があります。

コンテナの起動順序の設定

API

  1. コンテナの起動順序を定義して ECI インスタンスを作成します。

    次の例は、CreateContainerGroup 操作を呼び出すために使用されるリクエストパラメーターを示しています。インスタンスには c1 と c2 の 2 つのコンテナが含まれています。コンテナ c1 は c2 よりも起動優先度が高く、c1 には readiness プローブが設定されています。これにより、c1 が Ready 状態になった後にのみ c2 が起動することが保証されます。

    {
      "RegionId": "cn-beijing",
      "SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
      "VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
      "ContainerGroupName": "test-launch",
      "Container": [
        {
          "Name": "c1",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_LAUNCH_PRIORITY",
              "Value": "1000"
            }
          ],
          "ReadinessProbe.PeriodSeconds": 3,
          "ReadinessProbe.HttpGet.Path": "/",
          "ReadinessProbe.HttpGet.Port": 80
        },
        {
          "Name": "c2",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_LAUNCH_PRIORITY",
              "Value": "0"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        }
      ]
    }
  2. インスタンスの詳細をチェックして、各コンテナの起動時刻を確認します。

    DescribeContainerGroups 操作を呼び出して、インスタンスの詳細をクエリします。応答の Containers オブジェクトで、各コンテナの CurrentState.StartTime フィールドをチェックします。c2 の起動時刻は c1 よりも後になります。

コンソール

Elastic Container Instance コンソールで ECI インスタンスを作成する際、各コンテナの 高度な設定 で環境変数を設定し、コンテナの起動優先度を設定し、ヘルスチェック セクションで Readiness プローブ (つまり アプリケーションサービスプローブ) を設定できます。

環境変数名を ECI_CONTAINER_LAUNCH_PRIORITY に、値を 1000 に設定します。[ヘルスチェック] セクションで、[readiness プローブ] を設定します。チェック方法として [HTTP リクエスト] を選択します。パスを / に、ポートを 80 に、プロトコルを [HTTP] に設定します。

インスタンスの作成後、インスタンスイベントを表示してコンテナの起動順序を確認できます。

コンテナの終了順序の設定

API

  1. コンテナの終了順序を定義して ECI インスタンスを作成します。

    次の例は、CreateContainerGroup 操作を呼び出すために使用されるリクエストパラメーターを示しています。TerminationGracePeriodSeconds は 30 秒に設定されています。インスタンスには 3 つのコンテナが含まれており、終了優先度は c1 > c2 > c3 です。

    {
      "RegionId": "cn-beijing",
      "ContainerGroupName": "test-exit",
      "SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
      "VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
      "TerminationGracePeriodSeconds": 30,
      "Container": [
        {
          "Name": "c1",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "1000"
            }
          ]
        },
        {
          "Name": "c2",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "0"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        },
        {
          "Name": "c3",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "-1000"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        }
      ]
    }
  2. インスタンスを削除し、コンテナの Killing イベントの順序を監視します。

    説明

    コンテナの終了順序を確認するには、イベントを速やかにクエリする必要があります。ECI インスタンスが削除されると、イベントが利用できなくなる場合があります。

    DescribeContainerGroupEvents 操作を呼び出してインスタンスイベントをクエリします。応答の Events オブジェクトで、各コンテナの Killing イベントのタイムスタンプをチェックします。イベントにより、コンテナが c1、c2、c3 の順序で終了することが確認されます。

コンソール

ECI インスタンスをElastic Container Instance コンソールで作成する際、各コンテナの 高度な設定 セクションで環境変数を設定して、その終了優先度を構成できます。

環境変数名を ECI_CONTAINER_EXIT_PRIORITY に、値を 1000 に設定します。