環境
- Windows 10 Pro 20H2 19042.746
- Windows Terminal 1.5.10271.0
- PowerShell 7.1.1
- Docker version 20.10.2, build 2291f61
- AWS CLI 2.1.10
- AWS Tools for PowerShell 4.1.5.0
Step 1: Windowsクラスターの作成
Amazon ECS コンソール > Clusters(左のメニュー) > Create Clusterボタン
Step 1-1: クラスターテンプレートの選択
EC2 Windows + Networkingを選択する。
Step 1-2: クラスターの設定
- Cluster name: windows
- Container instance IAM role: ecsInstanceRole
少し時間が掛かってクラスターが作成されたら左上のView Clusterボタンで移動できる。
参考情報
Step 2: Windowsタスク定義の登録
Amazon ECSコンソール > Task Definitions(左のメニュー) > Create new Task Definitionボタン
Step 2-1: 起動タイプの選択
EC2を選択する。
Step 2-2: タスクとコンテナ定義の設定
- Task Definition Name: windows-logging-stdout
- Container Definitions > Add containerボタン
- Standard
- Container name: DotNetVersions
- Image: 登録済みのコンテナイメージを使用する。Amazon ECRコンソール > Repositories > Private > windows > latest > Image URIをコピーする。
- Memory Limits (MiB): Hard limit 500
- Advanced container configuration
- STORAGE AND LOGGING
- Log configuration: [x] Auto-configura CloudWatch Logs
- STORAGE AND LOGGING
- Standard
Createボタンが反応しなくても処理は実行されている場合があるのでECSのメニューに直接戻って確認したほうがよい。
参考情報
- Private registry authentication for tasks (Amazon ECRイメージの場合は不要)
- Using Amazon ECR images with Amazon ECS
Step 3: タスク定義からサービスを作成
Amazon ECSコンソール > Task Definitions > [x] windows-logging-stdout (チェックボックスを選択する) > Actionsドロップダウン > Create Serviceを選択する
Step 3-1: サービスの設定
- Launch type: EC2
- Service name: DotNetVersions
- Number of tasks: 1 (0だとサービスが動かない)
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
ログを見ると繰り返し起動されている。

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

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分後にリロードしてログが出力されていないことを確認する。