チャットアプリケーションの修正

1. アプリケーションの修正

  1. AWSコンソールの左上の サービス から Cloud9 を選択します。※検索窓からCloud9と入力して選択しても大丈夫です。

  2. simplechat_cloud9_envを選択して、Open IDEをクリックします。

  3. 左のファイルからsimplechat_ecs_app/views/header.erbを選択します。

  4. simplechatからシンプルチャットに修正します。

  5. 上部メニューバーのFileからSaveします。

    以降の作業はターミナルで行います。
    ターミナルを閉じてしまった方は下記のように+をクリックしてNew Terminalを選択しターミナルを開きます。

  6. サンプルアプリケーションのディレクトリに移ります。
    pwdは解説のために実行しています。実行頂く必要はありません。

cd ~/environment/simplechat_ecs_app/

  1. Dockerイメージの登録手順と同様にAmazon ECRにDockerイメージを登録します。
    プッシュコマンドの1. を実行します。
    再度プッシュコマンドを表示からコピー&ペーストしてください。
    下記はコマンドのサンプルです。本ハンズオンでは**米国東部(バージニア北部)**で作業いただいた場合を想定しております。
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com

  1. プッシュコマンドの2. を実行します。
docker build -t simplechat .
  1. プッシュコマンドの3. を実行します。
docker tag simplechat:latest ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest
  1. プッシュコマンドの4. を実行します。
docker push ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest

本ハンズオンでは、手順を簡略化する目的で新しいイメージにlatestタグをつけかえてイメージをpushしました。
この手順では、稼働中のコンテナが実際にはどの時点のイメージを元にして稼働しているかトレースすることが出来なくなるリスクがあります。
実際の運用ではAmazon ECRのリポジトリにおいて「タグのイミュータビリティ」を「有効にする」に設定し、イメージ更新毎に一意のタグを付けることをご検討ください。

  1. AWSコンソールの左上の サービス から Elastic Container Service を選択します。※検索窓からECSと入力して選択しても大丈夫です。

  2. 左メニューのクラスターsimplechatを選択します。

  3. サービスタブを選択してsimplechatの左のチェックボックスをオンにし、更新をクリックします。

  4. 新しいデプロイの強制のチェックボックスをオンにし、次のステップをクリックします。

    本ハンズオンでは、手順を簡略化する目的でタスク定義を使い回しています。
    実際の運用では更新の際に、タスク定義の「新しいリビジョンの作成」を実施頂いた上で、意図するリビジョンを選択頂くことをご検討ください。

  5. 変更せずに次のステップをクリックします。

  6. 変更せずに次のステップをクリックします。

  7. サービスの更新をクリックします。

  8. サービスの表示をクリックします。

  9. デプロイメントタブを確認し、保留中の数が1、実行中の数が0となっていることを確認します。
    少し経ってから更新ボタンをクリックすると保留中の数が0、実行中の数が1に変わります。

    表示が変わるまで更新ボタンをクリックしてください。

  10. タスクタブに移ります。古いタスクがドレイニングされタスクが1つだけ実行されていることを確認します。

    2つ表示される場合は1つだけになるまで更新ボタンをクリックしてください。
    本ハンズオンの設定では、ドレイニングに5分ほどお時間がかかります。

  11. ブラウザからアクセスしてタイトルが変わったことを確認します。