はじめに
こんにちわ。Wano株式会社エンジニアのnarikawaと申します。
/
— ポジティブな Tori (@toricls) July 10, 2019
Amazon ECS 向けの CloudWatch Container Insights のパブリックプレビューを開始しました!!
\
/ "Introducing Amazon CloudWatch Container Insights for Amazon ECS and AWS Fargate - Now in Preview" https://t.co/b1jaSGtg3x
個人的にはこっちの手順が分かり易かったです!https://t.co/UXiIwErG5B
— nari@エンタメ系エンジニア (@fukubaka0825) July 10, 2019
ということで、以下の手順書を参考に試しに設定してみました。
Amazon ECS CloudWatch Container Insights - Amazon Elastic Container Service
ところどころわかりづらいところがあったり、日本語訳が提供されていないこともあったので、整理して発信しようと思い、この記事を書いています。
全てを訳せているわけではないので、詳細は大元の手順書を参考にしていただけると幸いです。
対象読者
- CloudWatch Container Insightsの設定が、プレビュー時に使っていなくてよくわからない方
- 手順書が英語しか対応していないため嫌厭してまだ試せていない方
- CloudWatch Container Insightsでどんなことができるか知りたい方
導入手順
1.まずは設定いじる
GUI(console)で設定する
- ecsのAccount Settingのタブに移動する

※この際、ルートユーザーまたはコンテナーインスタンスのIAMロールを使用していることが前提
- すると以下のような見慣れない設定チェックボックスがあるので、チェックして有効にする

※この際、実行しようとしているIAM usersとIAM role はecs:PutAccountSetting permissionがこのアクションに必要
CUIで設定する
- 自分のアカウント全てのIAM usersとIAM roleのdefaultの設定をcontainer insightsをenabledにしたい
put-account-setting-default (AWS CLI)の場合
aws ecs put-account-setting-default --name containerInsights --value enabled --region us-east-1
Write-ECSAccountSettingDefault (AWS Tools for Windows PowerShell)の場合
Write-ECSAccountSettingDefault -Name containerInsights -Value enabled -Region us-east-1 -Force
- 自分のアカウントのあるIAM usersとIAM roleのdefaultの設定をcontainer insightsをenabledにしたい(root userのみ)
put-account-setting (AWS CLI)の場合(特定のuser設定変更)
aws ecs put-account-setting --name containerInsights --value enabled --principal-arn arn:aws:iam::aws_account_id:user/userName --region us-east-1
Write-ECSAccountSetting (AWS Tools for Windows PowerShell)の場合(特定のuser設定変更)
Write-ECSAccountSetting -Name containerInsights -Value enabled -PrincipalArn arn:aws:iam::aws_account_id:user/userName -Region us-east-1 -Force
2.クラスターを作る

- その際、以下のような新しいチェックボックスがあるので、enableにチェックする

3.いつも通りサービスかタスクを立ち上げる
4.誘導に従って、cloudwatchのcontainer insightsを見る
- クラスタのメトリクスのタブに移動すると、見慣れない青枠の誘導があるので、View Container Insightsのボタンをクリックする

- そうすると以下のような、docker stats相当の情報が観れる

- 以下のように時間でも絞れるし

- 以下のように特定のクラスタ、サービス、タスクでもfilterをかけれるようになっている

container insightsのいいところ
- コンテナインスタンスにsshして、docker statsしなくてもコンテナの状態を監視できる
疑問点
-
まだterraformでは対応していない?
- public previewだから多分対応していない
- clusterのパラメタで早く切り替えれると嬉しい。。
-
既存のクラスタをいじって設定を足せないのか
- terraformで建ててから手動で切り替えようと思ったらできなかった(そもそもクラスターの設定修正画面がない)
- CLIならいけるのか??
わかる方ぜひ教えて欲しいです、、わりと切実- [追記 2019/7/10]以下の回答いただけました!、正式なリリースでの対応が待ち遠しい
- [追記 2019/8/24]ContainerInsightsの設定をdefaultでonにして、クラスターを作り直してもデフォルトモニタリングのままな現象が発生しました。解決策は、クラスター名を変更して再構築するときちんとContainerInsightsモードに切り替わりますので注意してくださいありがとうございます!
— ポジティブな Tori (@toricls) July 10, 2019
既存クラスタでの有効化は現時点ではできないので新規クラスタでお試しいただく感じになります🙏
終わりに
- 週1投稿に関して、これは先週分ってことで許してください(遅れてすみません。。)