ECSクラスタ内のドッカーホストとして使用するEC2インスタンスの自動スケーリンググループを作成するTerraformの配置があります。クラスタにはタスクが実行中です。新しいタスク定義のリビジョンを作成してサービスを更新することで、AWSがローリングアップデートを実行します。しかし、どのように私は簡単にダウンタイムなしで新しいものとEC2ホストインスタンスを置き換えることができますか?terraform setupのECSコンテナインスタンスを置換する
私はこれを次のようにしたいと思います。異なるEC2インスタンス・タイプに切り替えるなど、ASGの起動構成の変更を有効にします。私はいくつかのことを試してみた
は、ここで私は私が欲しいものに近い取得考えるものです:
- つのインスタンスを排出します。タスクは残りのインスタンスに配布されます。
- タスクがもうそのインスタンスで実行されていない場合は、終了します。
- ASGが新しいインスタンスをスピンアップするまで待ちます。
- すべてのインスタンスが新しいものになるまで、手順1〜3を繰り返します。
これはほとんど動作します。問題は次のとおりです。
- マニュアルでエラーが発生しやすいです。
- このプロセスの後で、インスタンスの1つ(最後にスピンアップされたインスタンス)が0(ゼロ)のタスクを実行しています。
これを行うための自動化された方法がありますか?また、(新しいタスクリビジョンを作成せずに)ECSクラスタ内でタスクを再配布する方法はありますか?
[AWS ECSで別のASGにコンテナを移行させるにはどうすればいいですか?](https://stackoverflow.com/questions/39949227/how-to-force-aws-ecs-migrate-containers-to-another- asg) – ydaetskcoR
https://stackoverflow.com/a/39977487/2291321で以前の回答を更新したばかりです(元のコメントに記載されているように)前回のASGから安全にECSタスクを排除していたからですそれらを破壊してサービスの中断を招いた。 – ydaetskcoR