Amazon ECSでWindowsコンテナの標準出力をAmazon CloudWatch Logsに送る

2021年1月6日(水)

環境

Step 1: Windowsクラスターの作成

Amazon ECS コンソール > Clusters(左のメニュー) > Create Clusterボタン

Step 1-1: クラスターテンプレートの選択

EC2 Windows + Networkingを選択する。

Step 1-2: クラスターの設定

少し時間が掛かってクラスターが作成されたら左上のView Clusterボタンで移動できる。

参考情報

Step 2: Windowsタスク定義の登録

Amazon ECSコンソール > Task Definitions(左のメニュー) > Create new Task Definitionボタン

Step 2-1: 起動タイプの選択

EC2を選択する。

Step 2-2: タスクとコンテナ定義の設定

Createボタンが反応しなくても処理は実行されている場合があるのでECSのメニューに直接戻って確認したほうがよい。

参考情報

Step 3: タスク定義からサービスを作成

Amazon ECSコンソール > Task Definitions > [x] windows-logging-stdout (チェックボックスを選択する) > Actionsドロップダウン > Create Serviceを選択する

Step 3-1: サービスの設定

Step 3-2: ネットワークの設定

なし。

Step 3-3: オートスケーリングの設定

なし。

Step 4: サービスの確認

Amazon ECSコンソール > Clusters > windows > Servicesタブ > Service Name:DotNetVersions

サービスの稼働時間が短いとここでRunning count:1の状態を見るのは難しそう。

Step 5: ログの確認

Amazon CloudWatchコンソール > Logs > Log groups > /ecs/windows-logging-stdout

ログを見ると繰り返し起動されている。

/ecs/windows-logging-stdout > Log streams

ログのストリームをクリックすると出力された内容を見ることができる。

/ecs/windows-logging-stdout > Log streams > Log events

Step 6: 後片付け

Step 6-1: サービスの削除

Amazon ECSコンソール > Clusters > windows > Servicesタブ > Service Name > [x] DotNetVersions (チェックボックスを選択する) > Deleteボタンを押す

Step 6-2: クラスターの削除

Amazon ECSコンソール > Clusters > windows > 右上のDelete Clusterボタンを押す

Step 6-3: タスク定義の削除

Amazon ECSコンソール > Task Definitions > windows-logging-stdout > チェックボックスを全て選択する > Actionsドロップダウン > Deregisterを選択する

Step 6-4: ログの確認

Amazon CloudWatchコンソール > Logs > Log groups > /ecs/windows-logging-stdout

10分後にリロードしてログが出力されていないことを確認する。