LoginSignup
91
61

More than 5 years have passed since last update.

Amazon ECS でコンテナをローリングアップデートする

Posted at

ecs01.png

はじめに

ECSのローリングアップデートの動作を確認しましたので、備忘録として投稿します。

もくじ

  1. 旧バージョンのコンテナをデプロイ
  2. 新しいリビジョンのタスク定義を作成
  3. サービスを更新して新バージョンのコンテナをデプロイ

ローリングアップデートの流れ

update01.png

参考

コンテナイメージについて

ローリングアップデートの動作確認用にECRへv1v2とタグ付けしたコンテナイメージをプッシュしておきます。

今回の投稿では

  • v1 旧バージョンのコンテナイメージ
  • v2 新バージョンのコンテナイメージ

として扱います。

update02.png

index.html(v1)
<h1>Test v1</h1>
index.html(v2)
<h1>Test v2</h1>

1. 旧バージョンのコンテナをデプロイ

旧バージョンのコンテナ(v1)をデプロイしておきます。

タスク定義

タグv1を明示的に指定して、旧バージョンのコンテナイメージを含んだタスク定義、サービスを作成してデプロイ。

update03.png

アクセス確認

ブラウザからALBにアクセスして旧バージョンのHTMLが表示されることを確認。

update04.png

2. 新しいリビジョンのタスク定義を作成

コンテナイメージのタグをv2に更新した新しいリビジョンのタスク定義を作成します。

update20.png
update21.png
update22.png

3. サービスを更新して新バージョンのコンテナをデプロイ

サービスを更新して新しいリビジョンのタスク定義をデプロイします。

サービスの更新

タスク定義に新しいリビジョンを指定。

update30.png

補足:最小ヘルス率
50を指定しているので、アップデート中にhealty状態のタスクが必要数の50%まで低下する可能性がある
補足:最大率
200を指定しているので、アップデート中にhealty状態のタスクが必要数の200%まで増加する可能性がある

Runningタスクの推移

アップデート前のタスク
リビジョン1(旧バージョン)のタスクだけ稼働している。

update31.png

アップデート中のタスク
リビジョン1(旧バージョン)のタスクとリビジョン2(新バージョン)のタスクが混在する。

update32.png

アップデート後のタスク
リビジョン2(新バージョン)のタスクだけ稼働するようになる。

update33.png

アクセス確認

ブラウザからALBにアクセスして新バージョンのHTMLが表示されることを確認。

update34.png

91
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
61