View a markdown version of this page

Amazon ECS Express Mode サービスの更新 - Amazon Elastic Container Service

Amazon ECS Express Mode サービスの更新

Express Mode サービスは、ネットワーク、ロードバランシング、Application Auto Scaling の設定可能なオプションを提供し、これらのサービス全体の変更をオーケストレーションすることで、サービスの更新プロセスを簡素化します。

Express Mode サービスを更新して、コンテナイメージの変更、リソース割り当ての調整、または設定の変更を行うことができます。更新はカナリアデプロイを使用してデプロイされ、可用性を維持するためにアラームベースのロールバックアラームが使用されます。

デプロイの動作

Express Mode サービスは、デフォルトでカナリアデプロイを使用して、安全な更新と迅速なロールバックを実現します。

  • 新しい環境が作成され、変更とともにタスクがデプロイされます

  • トラフィックの 5% が新しい環境に移行します

  • 4xx と 5xx エラーの割合の合計が 3 分以内に 2 つのデータポイントで 1 より大きい場合、アラームベースのロールバックがトリガーされます

  • ヘルスチェックは新しいタスクが正常であることを確認します

  • ベイク時間が 3 分経過すると、トラフィックの 100% が新しい環境に移行されます

  • モニタリング用のベイク時間が 3 分経過すると、古いタスクは徐々に停止して置き換えられます

詳細については、「Amazon ECS カナリアデプロイ」を参照してください。

手順

  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションペインで [Clusters] (クラスター) を選択してください。

  3. [クラスター] ページで、Express Mode サービスを含むクラスターの名前を選択します。

  4. [クラスターの詳細] ページで、[サービス] タブを選択します。

  5. Express Mode サービスを表示するようにフィルターを設定します。[リソース管理タイプを絞り込む] で、ECS を選択します。

    Express Mode サービスには、名前の横に Express バッジがあります。

  6. [構成] の下:

    1. アプリケーションに使用するイメージを指定します。[イメージ URI] でイメージの URI を入力します。Amazon ECR イメージを参照するには、[ECR イメージを参照] を選択し、次の操作を行います。

      1. [プライベートリポジトリ] で、Amazon ECR プライベートリポジトリを選択します。

      2. [イメージ] で、イメージを選択します。

      3. イメージを識別する方法を選択します。[イメージの選択方法] で、以下のオプションのいずれかを選択します。

        • AWS は [イメージダイジェスト] を選択することをお勧めしています。

        • タグを使用するには、[イメージタグ] を選択してからタグを選択します。

    2. プライベートレジストリを使用するには、[プライベートレジストリ] を選択します。次に、[Secrets Manager ARN または名前] に前提条件で作成した Secrets Manager ARN を入力します。

    3. [タスク実行ロール] で、ロールを選択するか、新しいロールを作成して更新します。アクセス許可を追加する必要がある場合は、タスク実行ロールを更新できます。

  7. [追加設定] で、サービスをカスタマイズします。

    1. [コンテナ] で以下を実行します。

      1. [コンテナポート] で、アプリケーションがリッスンするポートを更新します (デフォルトは 80)。

      2. [ヘルスチェックパス] で、ヘルスチェックのパス (/health など) を更新します。

    2. [環境変数] で、アプリケーションに必要な環境変数のキーと値のペアを追加します。

      1. [キー] に、環境変数の名前を入力します。

      2. [値タイプ] で、[環境変数] または [シークレット] を選択します。

      3. [値または値の取得] には、値またはリファレンスを入力します。

      4. [環境変数の追加] を選択して、必要に応じて変数を追加します。

    3. [コマンド] に、オプションでカスタムコマンドを入力して Docker CMD 命令を上書きします。

    4. [タスクロール] で、コンテナで実行されているアプリケーションにアクセス許可を付与する IAM ロールを追加します。これにより、アプリケーションは AWS サービスに対して API コールを実行できます。

    5. [コンピューティング] で以下を実行します。

      1. [CPU] で、タスクの vCPU 割り当てを更新します (1 vCPU など)。

      2. [メモリ] で、タスクのメモリ割り当てを更新します (2 GB など)。

    6. [自動スケーリング] で以下を実行します。

      1. [ECS サービスメトリクス] で、スケールするためのメトリクス (ECS サービスの平均メモリ使用率ターゲットあたりのリクエスト数など) を選択します。

      2. [ターゲット値] で、スケーリングのターゲット (601000 など) を入力します。

      3. [最小タスク数][最大タスク数] で、スケーリング制限を更新します。

    7. [ログ] で以下を実行します。

      1. [Amazon CloudWatch ロググループ] で、アプリケーションログのロググループ名を更新します。これにより、既存のログは移動されませんが、新しいサービスリビジョンからのログの書き込みが開始されます。

      2. [Amazon CloudWatch ログストリームプレフィックス] に、ログストリームの新しいプレフィックスを入力します。

  8. [更新] を選択して、Express Mode サービスを更新します。

カスタムタスク定義による更新

taskDefinitionArn パラメータを指定することで、カスタムタスク定義で Express Mode サービスを更新できます。Express Mode はタスク定義をそのまま使用し、残りのインフラストラクチャの管理を継続します。

以降の更新では、以下のいずれかを選択できます。

  • タスク定義の新しいリビジョンを作成し、taskDefinitionArn を更新します。Express Mode は、次のサービスデプロイに新しいリビジョンを使用します。

  • Express Mode パラメータを直接更新します。

    • タスク定義に関連しないパラメータ (healthCheckPathnetworkConfigurationscalingTarget など) の場合、Express Mode はタスク定義を変更せずに変更を適用します。

    • タスク定義関連のパラメータ (primaryContainer または cpu/memory を使用したイメージ、CPU、メモリなど) の場合、Express Mode は、他のタスクレベルの設定を維持しながら、変更を加えた新しいマネージドタスク定義を作成します。

カスタムタスク定義で更新するには (Amazon ECS コンソール)
  1. Amazon ECS コンソールを開き、Express Mode サービスに移動します。

  2. サービスの更新 の横にあるドロップダウン矢印を選択し、カスタムタスク定義で更新 を選択します。

  3. Task definition family(タスク定義ファミリ) については、既存のタスク定義ファミリを選択してください。新しいタスク定義を作成するには、タスク定義 リンクを選択してください。

  4. タスク定義リビジョン では、使用するリビジョンを選択するか、空白のままにして最新のリビジョンを使用します。

  5. (オプション) 追加設定 を展開して、ヘルスチェックパス、ネットワーク、または自動スケーリングの設定を更新します。

  6. [更新] を選択します。

次の AWS AWS CLI コマンドは、カスタムタスク定義で Express Mode サービスを更新します。

aws ecs update-express-gateway-service \ --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \ --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
注記

CloudFormation を使用し、taskDefinitionArn を初めて Express Mode サービスに追加する場合は、最初にスタックを再デプロイします。これにより、ロールバックの互換性が確保されます。