こんにちは!JQdです!
前回は『Amazon ECS編~ECSを使ってみる02~』と題して、Amazon ECSでGetStartedを使わずに試してみました。
今回は『Amazon ECS編~ECSを使ってみる03~』と題して、Amazon ECSでコンテナの入れ替えを試してみたいと思います。
前回に作成した環境に対してTASK のRevisionを利用してコンテナの入れ替えをしてみたいと思います。
例えばRevisionを利用したコンテナの入れ替えにより以下のような事が簡単に出来ます。
・アプリやソフトウェアをバージョンアップしたコンテナを作り、一斉に入れ替え
・別環境で新バージョンのコンテナを検証する
・不具合があった場合に旧バージョンのコンテナに切戻し
Revision
AWS ECSのTASK DefinitionではRevisionとしてバージョン管理が可能です。
1.新バージョンの登録
TASK一覧から該当のTASKを選択します。
Taskを選択した状態で「Create new revision」をクリックします。
TASK Definitionの設定で変えたい箇所を変更します。
今回は「testapp」コンテナを変更してみます。
index.htmlにhostnameを加えるようにしてみます。
○変更前
1 |
/bin/sh -c "while true; do echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom; cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done" |
○変更後
1 |
/bin/sh -c "while true; do echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; hostname > hostnamefile; echo '</div></body></html>' > bottom; cat top date hostnamefile bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done" |
問題なければCreateします。
成功すれば画像のように「タスク名:Revison」で作成されます。
2.ClusterのService更新
続いて作成したNew RevisionをServiceに適用します。
該当のServiceを選択してUpdateをクリックします。
New Revisionを選択してUpdate Serviceをクリックします。
Serviceを更新しただけでは前回のTASKが走ったままなので、
旧RevisionのTASKを停止します。
しばらくするとNew RevisionのTASKが立ち上がります。
実際の画面を確認してみます。
dockerコマンドでもNAMESが2になり、Revisionが変わっているのがわかります。
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d9dc219fe8e busybox:latest “\”sh -c ‘/bin/sh -c About a minute ago Up About a minute ecs-test-2-testapp-f09fb3eff4e9d8c7a601
aac42633f657 httpd:2.4 “httpd-foreground” 2 minutes ago Up About a minute 0.0.0.0:80->80/tcp ecs-test-2-httpd-aae0efecc5ce9a912a00
5b7597ecfe34 amazon/amazon-ecs-agent:latest “/agent” About an hour ago Up About an hour 127.0.0.1:51678->51678/tcp ecs-agent
いかがでしたでしょうか?
次回もお楽しみに!!!