コンソールを使用したサービスの更新 - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンソールを使用したサービスの更新

Amazon ECS サービスは、Amazon ECS コンソールを使用して更新できます。サービス設定は、そのままの状態で事前入力されています。タスク定義、タスクの必要数、キャパシティープロバイダー戦略、プラットフォームバージョン、デプロイ設定、またはこれらの組み合わせを更新できます。

ブルー/グリーンデプロイ設定の更新方法については、「コンソールを使用してブルー/グリーンデプロイ設定を更新します。」を参照してください。

コンソールを使用する際には、以下の点を考慮してください。

サービスを一時的に停止する場合は、必要なタスクを 0 に設定します。次に、サービスを開始する準備ができたら、元のタスクの必要数でサービスを更新します。

コンソールを使用する際には、以下の点を考慮してください。

  • 次のいずれかのパラメータを使用するサービスを更新するには、AWS Command Line Interface を使用する必要があります。

    • Blue/Green デプロイ

    • サービスディスカバリ – サービスディスカバリ設定のみを表示できます。

    • カスタムメトリクスによるトラッキングポリシー

    • サービスの更新awsvpcネットワーク設定とヘルスチェックの猶予期間を更新することはできません。

    を使用してサービスを更新する方法についてはAWS CLI、「 AWS Command Line Interfaceリファレンス」のupdate-service「」を参照してください。

  • タスク定義でコンテナが使用するポートを変更する場合は、更新後のポートを使用するようにコンテナインスタンスのセキュリティグループを更新する必要がある場合があります。

  • Amazon ECS は、Elastic Load Balancing ロードバランサーまたは Amazon ECS コンテナインスタンスに関連付けられたセキュリティグループを自動的には更新しません。

  • サービスでロードバランサーを使用する場合、コンソールを使用してサービスの作成時に定義したロードバランサー設定は変更できません。代わりに AWS CLI または SDK を使用して、ロードバランサーの設定を変更します。設定を変更する方法については、「Amazon Elastic Container Service API リファレンス」のUpdateService「」を参照してください。

  • サービスのタスク定義を更新する場合は、ロードバランサー設定で指定されたコンテナ名とコンテナポートはタスク定義のままにしておく必要があります。

実行中のサービスを更新することで、サービスが維持するタスク数、タスクがどのタスク定義を使用するか、また、タスクで Fargate 起動タイプを使用している場合には、サービスが使用するプラットフォームバージョンなど、一部のサービス設定パラメータを変更できます。Linux プラットフォームのバージョンを使用するサービスは、Windows プラットフォームのバージョンを更新できません。その逆も同様です。さらに容量が必要なアプリケーションがある場合には、サービスのスケール調整ができます。スケールダウンする未使用のキャパシティーがある場合は、サービスのタスクの必要数を減らし、リソースを解放できます。

更新されたコンテナイメージをタスクに使用する場合は、そのイメージを使用して新しいタスク定義リビジョンを作成し、コンソールで [新しいデプロイの強制] オプションを使用して、サービスにデプロイできます。

サービススケジューラは、最小ヘルス率と最大ヘルス率のパラメータ (サービスのデプロイ設定) を使用して、デプロイ戦略を判断します。

サービスでローリング更新 (ECS) のデプロイタイプが使用されている場合、最小ヘルス率は、デプロイ時に RUNNING 状態に保つ必要のあるサービスのタスクの下限数をサービスのタスクの必要数のパーセント値 (最も近い整数に切り上げ) で表します。サービスに EC2 起動タイプを使用するタスクが含まれている場合、DRAINING 状態のコンテナインスタンスがある間は、パラメータも適用されます。追加のクラスターキャパシティーを使用しないデプロイのために、このパラメータを使用します。例えば、サービスで必要数が 4 タスク、最小ヘルス率が 50% とすると、スケジューラは 2 つの新しいタスクを開始する前に、2 つの既存のタスクを停止してクラスターのキャパシティーを解放できます。ロードバランサーを使用しないサービスのタスクは、RUNNING 状態にある場合正常な状態と見なされます。ロードバランサーを使用するサービスのタスクは、RUNNING 状態にあり、ロードバランサーによって正常と報告された場合に、正常であると見なされます。最小ヘルス率のデフォルト値は 100% です。

サービスでローリング更新 (ECS) のデプロイタイプが使用されている場合、maximum percent パラメータは、デプロイ時に PENDINGRUNNING、または STOPPING 状態で使用できるサービスのタスクの上限数をそれらのタスク数の適切なパーセント値 (最も近い整数に切り下げ) として表します。サービスに EC2 起動タイプを使用するタスクが含まれている場合、DRAINING 状態のコンテナインスタンスがある間は、パラメータも適用されます。このパラメータは、デプロイのバッチサイズを定義するために使用します。例えば、サービスで必要数が 4 タスク、最大ヘルス率の値が 200% とすると、スケジューラは 4 つの古いタスクを停止する前に、4 つの新しいタスクを開始できます。そのために必要なクラスターリソースを使用できることが前提です。最大ヘルス率のデフォルト値は 200% です。

更新中にサービススケジューラがタスクを置き換えるとき、サービスはまずロードバランサーからタスクを削除し (使用されている場合)、接続のドレインが完了するのを待ちます。その後、タスクで実行されているコンテナに docker stop と同等のコマンドが発行されます。この結果、SIGTERM 信号と 30 秒のタイムアウトが発生し、その後に SIGKILL が送信され、コンテナが強制的に停止されます。コンテナが SIGTERM 信号を正常に処理し、その受信時から 30 秒以内に終了する場合、SIGKILL 信号は送信されません。サービススケジューラは、最小ヘルス率と最大ヘルス率の設定で定義されているとおりに、タスクを開始および停止します。

また、コンテナのヘルスチェックまたはロードバランサーのターゲットグループのヘルスチェックが失敗すると、サービススケジューラーによって、異常であると判断されたタスクが置き換えられます。この置き換え動作は、maximumPercent および desiredCount のサービス定義パラメータによって異なります。タスクが異常とマークされた場合、サービススケジューラーによってまず置き換えタスクが開始されます。置き換えタスクのヘルスステータスが HEALTHY になると、サービススケジューラーは異常のあるタスクを停止します。置き換えタスクのヘルスステータスが UNHEALTHY の場合、スケジューラーは異常のある置き換えタスクまたは既存の異常タスクのいずれかを停止して、タスク総数が desiredCount と等しくなるようにします。maximumPercent パラメーターによって、置き換えタスクを先に開始できないようにスケジューラーが制限されている場合、スケジューラーは異常のあるタスクをランダムに 1 つずつ停止して容量を解放してから置き換えタスクを開始します。異常のあるタスクがすべて正常なタスクに置き換えられるまで、起動と停止のプロセスが続きます。異常なタスクがすべて置き換えられ、正常なタスクだけが実行中になると、合計タスク数が desiredCount を超える場合、タスク数が desiredCount になるまで、正常なタスクが無作為に停止されます。maximumPercent および desiredCount の詳細については、「サービス定義パラメータ」を参照してください。

注記

この動作は、ローリング更新デプロイタイプを使用するサービスによって実行および管理されるタスクには適用されません。ローリング更新中、サービススケジューラーはまず異常なタスクを停止してから置き換えタスクを開始します。

重要

タスク定義でコンテナが使用するポートを変更する場合は、更新後のポートを使用するようにコンテナインスタンスのセキュリティグループを更新する必要がある場合があります。

サービスのタスク定義を更新する場合、サービスの作成時に指定したコンテナ名とコンテナポートは、タスク定義のままにしておく必要があります。

Amazon ECS は、Elastic Load Balancing ロードバランサーまたは Amazon ECS コンテナインスタンスに関連付けられたセキュリティグループを自動的には更新しません。

サービスを更新するには (Amazon ECS コンソール)
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. [Clusters] (クラスター) ページで、クラスターを選択します。

  3. クラスターの詳細ページの「サービス」セクションで、サービスの横にあるチェックボックスを選択し、「 の更新」を選択します。

  4. サービスで新しいデプロイを開始するには、[Force new deployment] (新しいデプロイの強制) を選択します。

  5. [タスク定義] の場合、タスク定義ファミリーとリビジョンを選択します。

    重要

    コンソールは、選択したタスク定義ファミリーとリビジョンが、定義されたコンピューティング設定と互換性があることを確認します。警告が表示された場合は、タスク定義の互換性と選択したコンピューティング設定の両方を確認します。

  6. 必要なタスク には、サービスに対して実行するタスクの数を入力します。

  7. [Min running tasks] (実行中のタスクの最小化) の場合、デプロイ時に RUNNING の状態に保つ必要のあるサービス内のタスクの下限数をタスクの必要数のパーセント値 (最も近い整数に切り上げ) で入力します。詳細については、[Deployment configuration] (デプロイ設定) を参照してください。

  8. [Max running tasks] (実行中のタスクの最大化)) には、デプロイ時に RUNNING または PENDING 状態にできるサービスのタスクの上限数を必要数のタスクのパーセント値 (最も近い整数に切り下げ) で入力します。

  9. Amazon ECS がデプロイの障害を検出して処理する方法を設定するには、[Deployment failure detection] (デプロイ障害検出) を展開し、オプションを選択します。

    1. タスクを開始できない場合にデプロイを停止するには、[Use the Amazon ECS deployment circuit breaker] (Amazon ECS デプロイサーキットブレーカーを使用する) を選択します。

      デプロイサーキットブレーカーがデプロイを失敗状態に設定したときに、ソフトウェアがデプロイを最後に完了したデプロイ状態に自動的にロールバックするには、失敗時にロールバックを選択します。

    2. アプリケーションメトリクスに基づいてデプロイを停止するには、 CloudWatch アラームの使用 (複数) を選択します。次に、CloudWatch アラーム名 からアラームを選択します。新しいアラームを作成するには、 CloudWatch コンソールに移動します。

      CloudWatch アラームがデプロイを失敗状態に設定したときに、ソフトウェアがデプロイを最後に完了したデプロイ状態に自動的にロールバックするには、失敗時にロールバックを選択します。

  10. コンピューティングオプションを変更するには、コンピューティング設定 を展開し、次の手順を実行します。

    1. AWS Fargate のサービスにとって、[Platform version] (プラットフォームのバージョン) で、新しいバージョンを選択します。

    2. キャパシティープロバイダー戦略を使用するサービスの場合、キャパシティープロバイダー戦略 には、次の操作を行います。

      • キャパシティプロバイダーをさらに追加するには、[さらに追加] を選択します。その後、[キャパシティプロバイダー] で、キャパシティプロバイダーを選択します。

      • キャパシティプロバイダーを削除するには、キャパシティプロバイダーの右側にある [削除] を選択します。

      Auto Scaling グループキャパシティープロバイダーを使用しているサービスは、Fargate キャパシティープロバイダーを使用するように更新することはできません。その逆も同様です。

  11. (オプション) サービスの Auto Scaling を設定するには、サービスの自動スケーリング を展開し、次のパラメータを指定します。

    1. サービスの自動スケーリングを使用するには、[Service auto scaling] (サービスの自動スケーリング) を選択します。

    2. 最小タスク数 には、サービスの自動スケーリングが使用するタスク数の下限を入力します。必要な数がこの数を下回ることはありません。

    3. タスクの最大数 には、サービスの自動スケーリングが使用するタスク数の上限を入力します。必要な数がこの数を超えることはありません。

    4. ポリシータイプを選択します。スケーリングポリシータイプ で、次のいずれかのオプションを選択します。

      このポリシーを使用するには、次を入力してください: 手順

      ターゲット追跡

      1. [スケーリングポリシータイプ] で [ターゲットの追跡] を選択します。

      2. [Policy Name] (ポリシー名) にこのポリシーの名前を入力します。

      3. [ECS サービスメトリクス] で次のいずれかのメトリクスを選択します。

        • ECSServiceAverageCPUUtilization – サービスの平均 CPU 使用率。

        • ECSServiceAverageMemoryUtilization – サービスの平均メモリ使用率。

        • ALBRequestCountPerTarget – Application Load Balancer ターゲットグループのターゲットごとに完了したリクエストの数。

      4. [Target value] (ターゲット値) には、選択したメトリックに対してサービスが保持する値を入力します。

      5. スケールアウトクールダウン期間 では、スケーリングポリシーがスケールインアクティビティをブロックし、一度にスケールアウトできるタスクの数を制限するスケールアウトアクティビティ (タスクを追加) 後の時間を秒単位で入力します。

      6. スケールインクールダウン期間には、別のスケールインアクティビティが開始されるまでに経過する必要があるスケールインアクティビティ (タスクの削除) 後の時間を秒単位で入力します。

      7. ポリシーがスケールインアクティビティを実行しないようにするには、[Turn off scale-in] (スケールインをオフにする) を選択します。

      8. • (オプション) スケーリングポリシーでトラフィックの増加に合わせてスケールアウトするが、トラフィックが減少した場合はスケールインする必要がない場合は、スケールインをオフにするを選択します。

      ステップスケーリング
      1. [スケーリングポリシータイプ] で [ステップスケーリング] を選択します。

      2. [ポリシー名] で、このポリシー名を入力します。

      3. [アラーム名] に、アラームの一意の名前を入力します。

      4. [Amazon ECS サービスメトリクス] で、アラームに使用するサービスメトリクスを選択します。

      5. [統計] で、アラーム統計を選択します。

      6. [期間] で、アラームの期間を選択します。

      7. [アラーム条件] で、選択したメトリクスを定義されたしきい値と比較する方法を選択します。

      8. [メトリクスを比較するためのしきい値][アラームを開始する評価期間] に、アラームに使用するしきい値としきい値を評価する期間を入力します。

      9. [スケーリングアクション]で、次の手順を実行します。

        • アクション で、サービスに特定の必要数を追加、削除、または設定するかどうかを選択します。

        • タスクを追加または削除することを選択した場合は、に、スケーリングアクションの開始時に追加または削除するタスクの数 (または既存のタスクの割合) を入力します。希望の数を設定することを選択した場合は、タスクの数を入力します。[タイプ] で、[値] が整数であるか、既存の必要なカウントのパーセント値であるかを選択します。

        • [下限] と [上限] に、ステップスケーリング調整の下限と上限を入力します。デフォルトでは、[ポリシーを追加] の下限はアラームしきい値であり、上限は正 (+) の無限大です。デフォルトでは、[ポリシーを削除] の上限はアラームしきい値であり、下限は負 (-) の無限大です。

        • (オプション) さらにスケーリングオプションを追加します。新しいスケーリングアクションを追加を選択しスケーリングアクションの手順を繰り返します。

        • クールダウン期間 には、以前のスケーリングアクティビティが有効になるまで待機する時間を秒単位で入力します。追加ポリシーの場合、スケーリングポリシーがスケールインアクティビティをブロックし、一度にスケールアウトできるタスクの数を制限するのは、スケールアウトアクティビティ後の時間です。削除ポリシーの場合、これは、別のスケールインアクティビティが開始されるまでに経過する必要があるスケールインアクティビティの後の時間です。

  12. (オプション) Service Connect を使用するには、[Turn on Service Connect] (Service Connect をオンにする) を選択し、以下を指定します。

    1. [Service Connect configuration] (Service Connect 設定) で、クライアントモードを指定します。

      • サービスが名前空間内の他のサービスへの接続のみを必要とするネットワーククライアントアプリケーションを実行している場合は、[Client side only] (クライアント側のみ) を選択します。

      • サービスがネットワークまたは Web サービスアプリケーションを実行していて、このサービスにエンドポイントを提供し、名前空間内の他のサービスに接続する必要がある場合は、[Client and server] (クライアントとサーバー) を選択します。

    2. デフォルトのクラスター名前空間ではない名前空間を使用するには、[Namespace] (名前空間) でサービス名前空間を選択します。

  13. デプロイ時に設定と互換性のあるデータボリュームをタスクで使用する場合は、ボリューム を拡張してボリュームを設定できます。

    ボリューム名とボリュームタイプは、タスク定義リビジョンの作成時に設定され、サービスの更新時に変更することはできません。ボリューム名とタイプを更新するには、新しいタスク定義リビジョンを作成し、新しいリビジョンを使用してサービスを更新する必要があります。

    このボリュームタイプを設定するには この操作を行います

    Amazon EBS

    1. EBS ボリュームタイプ で、タスクにアタッチする EBS ボリュームのタイプを選択します。

    2. サイズ (GiB ) には、ボリュームサイズの有効な値をギビバイト (GiB ) 単位で入力します。最小 1 GiB、最大 16,384 GiB のボリュームサイズを指定できます。スナップショット ID を指定しない限り、この値は必須です。

    3. IOPS には、ボリュームが提供する入出力オペレーション (IOPS) の最大数を入力します。この値は、io1io2、および gp3ボリュームタイプでのみ設定できます。

    4. スループット (MiB / 秒) には、ボリュームが提供するスループットを 1 秒あたりのメビバイト数 (MiBps、または MiB / 秒) で入力します。この値は、 gp3ボリュームタイプに対してのみ設定できます。

    5. スナップショット ID で、既存の Amazon EBS ボリュームスナップショットを選択するか、スナップショットからボリュームを作成する場合はスナップショットの ARN を入力します。スナップショット ID を選択または入力しないで、新しい空のボリュームを作成することもできます。

    6. ファイルシステムタイプ で、ボリュームのデータの保存と取得に使用するファイルシステムのタイプを選択します。オペレーティングシステムのデフォルトまたは特定のファイルシステムタイプを選択できます。Linux のデフォルトは ですXFS。スナップショットから作成されたボリュームの場合、スナップショットの作成時にボリュームが使用していたのと同じファイルシステムタイプを指定する必要があります。ファイルシステムタイプが一致しない場合、タスクは開始できません。

    7. インフラストラクチャロール で、Amazon ECS がタスクの Amazon EBS ボリュームを管理できるようにする必要なアクセス許可を持つ IAM ロールを選択します。AmazonECSInfrastructureRolePolicyForVolumes マネージドポリシーをロールにアタッチすることも、ポリシーをガイドとして使用して、特定のニーズを満たすアクセス許可を持つ独自のポリシーを作成してアタッチすることもできます。必要なアクセス権限の詳細については、「Amazon ECS インフラストラクチャ IAM ロール」を参照してください。

    8. 暗号化 で、デフォルト設定で Amazon EBS 暗号化を使用する場合は、デフォルト を選択します。アカウントにデフォルトで暗号化が設定されている場合、ボリュームは 設定で指定された AWS Key Management Service (AWS KMS) キーで暗号化されます。デフォルトを選択し、Amazon EBS のデフォルト暗号化が有効になっていない場合、ボリュームは暗号化されません。

      カスタム を選択した場合、ボリュームの暗号化にAWS KMS key任意の を指定できます。

      None を選択すると、デフォルトで暗号化が設定されていないか、暗号化されたスナップショットからボリュームを作成しない限り、ボリュームは暗号化されません。

    9. Custom for Encryption を選択した場合は、AWS KMS key使用する を指定する必要があります。KMS キー で、 を選択するAWS KMS keyか、キー ARN を入力します。対称カスタマーマネージドキーを使用してボリュームを暗号化することを選択した場合は、AWS KMS keyポリシーで定義されている適切なアクセス許可があることを確認してください。詳細については、「Amazon EBS ボリューム のデータ暗号化」を参照してください。

  14. (オプション) サービスを識別しやすくするには、[Tags] (タグ) セクションを展開し、タグを設定します。

    • 〔タグを追加] タグを追加を選択し、次の手順を実行します。

      • [キー] にはキー名を入力します。

      • [] にキー値を入力します。

    • [タグの削除] タグの横にある [タグの削除] を選択します。

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