[アップデート]Amazon CloudWatch が EC2 コンソールにビジュアルエージェント設定機能を追加しました
こんにちは。オペレーション部のしいなです。
はじめに
Amazon EC2 コンソール内で CloudWatch エージェントをグラフィカルに設定できる機能が提供されました。 早速 CloudWatch エージェントのインストールから設定まで試してみました。
ビジュアルエージェントの設定機能について
CloudWatch エージェントの設定を、JSON ファイルを手動で編集することなく、EC2 インスタンスの可観測性を設定および管理できる機能です。
マネジメントコンソールから CloudWatch エージェントのインストールから設定まで一括して行えます。
従来は JSON で設定する必要があり、複雑かつ構文ミスも発生しやすい点がありました。
ビジュアルエディタでは直感的に操作できるため、この問題が解消されます。
やってみた
Linux の EC2 インスタンスに対して CloudWatch エージェントのインストールおよびエージェント設定を行ってみます。
インストールおよび設定
-
マネジメントコンソールの EC2 を選択し、インスタンスから対象のインスタンスを選択します。
-
モニタリングタブより「CloudWatch エージェントを設定」を選択します。

-
インスタンスの情報に加え、SSM エージェントと CloudWatch エージェントのステータスが表示されます。
今回は CloudWatch エージェントのインストールから行うため、「Install agent」を選択します。

-
必要なロールを作成するため、「Create role」を選択します。
EC2 インスタンスロールに CloudWatch に必要なポリシーのアタッチも行います。

-
ロール作成が完了したら、「Install agent」を選択します。

-
エージェントのインストールが完了するまでしばらく待ちます。
インストールが完了したら「Configure CloudWatch Agent」を選択します。

-
エージェントの設定が行えるエディタに遷移します。
エディタは直感的に設定を行うことができるビジュアルモードと、従来の JSON モードに切り替えることが可能です。


-
EC2(Mac,Linux)の設定では、各種メトリクスの収集をチェックボックス形式で ON/OFF が可能です。

-
「Add integrations」を選択すると、ログや Application Signal などの設定ができます。


-
今回は「log collection」を選択し、ログの設定を追加してみます。
ファイルパスや出力先のロググループ名などの各種入力フィールドが表示されるため、必要な設定を行います。

-
設定が完了したら「Next」を選択します。

-
レビュー画面が表示されるため、確認の上「Deploy」を選択します。

なお、作成された設定は各種 IaC テンプレートのフォーマットでダウンロードすることが可能です。
- AWS CloudFormation
- Terraform
- CloudWatch Agent config(JSON)

- しばらくすると設定ファイルのデプロイが完了します。

動作確認
CloudWatch のメトリクスを確認してみます。
エージェントがインストールされ、カスタム名前空間 CWAgent の各種メトリクスが取得されていることがわかります。

次に、CloudWatch Logs のロググループを確認してみます。
出力先ロググループにログメッセージが出力されていることがわかります。

動作の仕組み
マネジメントコンソールから CloudWatch エージェントのインストールやエージェントの設定を行った際、どのような動作が行われているか確認してみました。
「AWS-QuickSetup-SetupCWAgentPermissions」ロール
マネジメントコンソールから CloudWatch エージェントのインストールやエージェントの設定を行う際に「AWS-QuickSetup-SetupCWAgentPermissions」ロールが作成されます。
ポリシーや信頼関係は次の通りです。
許可ポリシー
- AWSQuickSetupManagedInstanceProfileExecutionPolicy
信頼関係
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "XXXXXXXXXXXX"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:ssm:*:XXXXXXXXXXXX:automation-execution/*"
}
}
}
]
}
エージェントのインストール
CloudWatch エージェントのインストールを実施すると、裏側では Systems Manager のオートメーションドキュメントが呼び出されます。
オートメーションタイプである「AWSQuickSetupType-ManageInstanceProfile」ドキュメント[1]が利用されています。
AutomationAssumeRoleパラメータでは、上記の「AWS-QuickSetup-SetupCWAgentPermissions」ロールを利用しています。

エージェントの設定
CloudWatch エージェントの設定を実施すると、裏側では Systems Manager の Run Command が呼び出されます。
コマンドタイプである「AmazonCloudWatch-ManageAgent」ドキュメント[2]が利用されています。

パラメータストア
エージェントの設定をデプロイする際、下記のような名前のパラメータストアが一時的に作成されます。
cloudwatch-agent/config/console-metrics-xxxxxxxx
作成されたパラメータストアを「AmazonCloudWatch-ManageAgent」ドキュメントの optionalConfigurationLocation に指定し、エージェントの設定を行っています。
なお、デプロイ完了後はパラメータストアが自動的に削除されていました。

まとめ
今回のアップデートにより、マネジメントコンソール上のビジュアルエディタから直感的にエージェントの設定ができるようになりました。
従来の JSON ファイルの手動編集と比べ、設定のハードルが大きく下がった点はとても良いですね。
また、設定内容を IaC テンプレートとしてエクスポートできる点も、嬉しいポイントです。
ぜひ一度試してみてください。
本記事が参考になれば幸いです。





