ローリング更新 - Amazon Elastic Container Service

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

ローリング更新

ローリング更新 (ECS) デプロイタイプを使用するサービスを作成すると、Amazon ECS サービススケジューラは現在実行中のタスクを新しいタスクに置き換えます。ローリング更新中にサービスに対して Amazon ECS が追加または削除するタスク数は、サービスデプロイ設定により制御されます。デプロイ設定は以下のとおりです。

  • minimumHealthyPercent は、デプロイメント中またはコンテナインスタンスがドレインしているときに、サービスに対して実行する必要があるタスク数の下限を、サービスに必要なタスク数の割合 (%) として表します。この値は切り上げられます。例えば、最小正常率が 50 で、必要なタスク数が 4 の場合、スケジューラは 2 つの新しいタスクを開始する前に既存のタスクを 2 つ停止できます。同様に、最小正常率が 75% で、必要なタスク数が 2 の場合、結果の値も 2 であるため、スケジューラはタスクを停止できません。

  • maximumPercent は、デプロイメント中またはコンテナインスタンスがドレインしているときに、サービスに対して実行する必要があるタスク数の上限を、サービスに必要なタスク数の割合 (%) として表します。この値は切り捨てられます。例えば、最大パーセンテージが 200 で、目的のタスク数が 4 の場合、スケジューラは既存のタスクを 4 つ停止する前に 4 つの新しいタスクを開始できます。同様に、最大比率が 125 で、必要なタスク数が 3 の場合、結果の値も 3 であるため、スケジューラはタスクを開始できません。

重要

最小正常率または最大正常率を設定するときは、デプロイが開始されたときにスケジューラが 1 つ以上のタスクを停止または開始できることを確認する必要があります。無効なデプロイメント構成が原因でサービスのデプロイメントが停止している場合、サービスイベントメッセージが送信されます。詳細については、「サービス (service-name) は、サービスデプロイメント構成のため、デプロイメント中にタスクを停止または開始できませんでした。 minimumHealthyPercent または maximumPercent 値を更新して、もう一度試してください。」を参照してください。

ローリングデプロイでは、デプロイサーキットブレーカーを使用してタスクが定常状態に達したかどうかを判断します。デプロイサーキットブレーカーは、オプションで障害発生時にデプロイをロールバックできます。

障害検出方法

デプロイが失敗したタイミングをすばやく特定し、必要に応じて最後に動作していたデプロイに失敗をロールバックする方法が 2 つあります。

これらの方法は個別に使用することも、一緒に使用することもできます。両方の方法を同時に使用する場合、いずれかの失敗処理方法の失敗の基準が満たされ次第、デプロイは失敗に設定されます。

使用するメソッドを決定する際は、以下のガイドラインを参考にします。

  • サーキットブレーカー - タスクが開始できないときにデプロイを停止する場合は、このメソッドを使用します。

  • CloudWatch アラーム - アプリケーションメトリクスに基づいてデプロイを停止する場合は、この方法を使用します。

Amazon ECS のデプロイプロセスのベストプラクティスの詳細ついては、「Amazon ECS ベストプラクティスガイド」の「Task deployment」を参照してください。