【備忘録】CloudWatch Agentをセッションマネージャーからインストールする
クラウド事業本部運用イノベーション部の いそま です。
EC2にCloudWatchAgentをインストールして検証したいなーと思った時、Agentのインストールでなぜかいつも躓いてしまうため備忘録としてブログに残します。
今回はプライベートサブネットにあるEC2インスタンスへ、セッションマネージャーからCloudWatch Agentをインストールします。
Run Commandを使用する方法もありますが、インストールや設定の過程をしっかり見届けられるセッションマネージャーの方が個人的に好きだったりします。
ただ、今回のように、検証または単一のインスタンスにインストールしたい場合はセッションマネージャーの選択肢もありですが、本番環境のように複数台のインスタンスが存在する場合はRun Commandの方が作業ミスも少なく、時間効率も良いと思います。
リソース設定時のポイント
リソース設定時のポイントです。(リソースの作成方法に関しては記載していません。)
VPC
項目 | 設定値 |
---|---|
DNS解決 | 有効 |
DNSホスト名 | 有効 |
✅ チェックポイント
今回のEC2はプライベートサブネットに存在するため、VPCエンドポイントを通してCloudWatchAgentをインストールします。
そのVPCエンドポイントを使用するために、[DNS解決]と[DNSホスト名]を[有効]に設定する必要があります。
VPC EndPoint
SSMに接続するためのエンドポイント
サービス名 | エンドポイントタイプ |
---|---|
com.amazonaws.ap-northeast-1.ssm | Interface |
com.amazonaws.ap-northeast-1.ssmmessages | Interface |
com.amazonaws.ap-northeast-1.s3 | Gateway |
CloudWatchAgentをインストール・ログ収集するためのエンドポイント
サービス名 | エンドポイントタイプ |
---|---|
com.amazonaws.ap-northeast-1.monitoring | Interface |
com.amazonaws.ap-northeast-1.logs | Interface |
com.amazonaws.ap-northeast-1.ec2 | Interface |
✅ チェックポイント
- エンドポイントが属するサブネットは、EC2が属するサブネットと同じになっているか
- エンドポイントにアタッチするSGのインバウンド/アウトバウンド設定を確認(次項のエンドポイント用SGを参照)
セキュリティグループ
- エンドポイント用SG
インバウンドルール
項目 | 設定値 |
---|---|
タイプ | HTTPS |
プロトコル | TCP |
ポート範囲 | 443 |
ソース | カスタム |
VPCのIPアドレス範囲 |
アウトバウンドルール
項目 | 設定値 |
---|---|
タイプ | すべてのトラフィック |
プロトコル | すべて |
ポート範囲 | すべて |
送信先 | カスタム |
0.0.0.0/0 |
- EC2用SG
インバウンドルール
項目 | 設定値 |
---|---|
タイプ | すべてのトラフィック |
プロトコル | すべて |
ポート範囲 | すべて |
ソース | カスタム |
VPCのIPアドレス範囲 |
アウトバウンドルール
項目 | 設定値 |
---|---|
タイプ | すべてのトラフィック |
プロトコル | すべて |
ポート範囲 | すべて |
送信先 | カスタム |
0.0.0.0/0 |
IAMロール
以下IAMポリシーをアタッチしたIAMロールを作成する。
- AmazonSSMManagedInstanceCore
- CloudWatchAgentServerPolicy
EC2
- 前述で作成したEC2用のSGをアタッチする
- 前述で作成したIAMロールをアタッチする
CloudWatchAgentインストール
リソース設定が完了したら、セッションマネージャーからCloudWatchAgentをインストールしていきます。
1. 対象のEC2インスタンスに遷移し、[接続]→[セッションマネージャー]にて[接続]を押下
2. CloudWatchAgentをインストールするコマンドを実行
sudo yum install amazon-cloudwatch-agent
コマンド実行中に、「Is this ok [y/N]」と聞かれるので、[Y]と入力してください。
コマンド実行後、「Complete!」と表示されていれば、インストール完了です。
3. CloudWatchAgentのメトリクスの設定するコマンドを実行
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
設定項目に関しては、このブログが大変参考になりました。
4. 設定ファイルを読み込ますコマンドを実行
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
5. CloudWatchAgentの起動を確認するコマンドを実行
sudo systemctl status amazon-cloudwatch-agent
[Active: active (running)]と表示されていれば問題ありません。
確認
最後に、CloudWatchAgentがインストール・起動され、CloudWatchメトリクスに表示されているか確認します。
CloudWatchメトリクス
-
[カスタム名前空間]に「CWAgent」が追加されています。
-
メトリクスも出力されているので、問題なさそうですね。
EC2
- EC2画面のモニタリングタブにも、CloudWatchAgentで設定したメトリクスが表示されています。
まとめ
「今更だよな〜」と思いながら書き始めたブログですが、エンドポイントの設定などを頭で記憶するのは難しいよな・・と。
いつかCloudWatchAgentをインストールする時がくるであろう自分と、このブログを見てくださった方のお役に立てれば幸いです。