CloudWatchロググループとプライベートサブネットEC2インスタンスの経路確保確認

プライベートサブネットのEC2インスタンス(AmazonLinux2)、VPC、CloudWatch Logsの3者間を意識して経路確保を行う。プライベートサブネットのEC2インスタンスでCloudWatchエージェントのインストールと有効化を確認、CloudWatchで「ログストリーム」ではなく、「ロググループ」が既に作られていることも事前に確認しておく。

CloudWatchLogs用VPCエンドポイントの確認

  1. com.amazonaws.リージョン.logs
  2. com.amazonaws.リージョン.monitoring

1はCloudWatchLogs、2はCloudWatch(カスタム)メトリクス

CloudWatchLogs用のVPCエンドポイントのセキュリティグループを選んでいることを確認。

Private DNS names enabled(プライベートDNS名を有効化にする)をtrue(有効化)にします。

VPCエンドポイントポリシーは絞ったほうがいいですが、フルアクセスでいきます。このへんは別記事でまとめたいと思います。

つくったら、「com.amazonaws.リージョン.logs」のVPCエンドポイントの「タブ」の「詳細」で「DNS名」をメモっておく。

プライベートサブネットEC2インスタンスのセキュリティグループの確認

https 443のアウトバウンドをプライベートサブネットEC2のセキュリティグループからCloudWatchLogs用のVPCエンドポイント達用のセキュリティグループにトラフィックを送られるようにする。

CloudWatchLogs用VPCエンドポイントのセキュリティグループの確認

CloudWatchLogs用のVPCエンドポイントのセキュリティグループは、CloudWatchLogs用のVPCエンドポイントがhttps 443のインバウンドをログを取りたいプライベートサブネットのEC2から受けられるようにする。

プライベートサブネットEC2インスタンスのamazon-cloudwatch-agentの設定

プライベートサブネットEC2インスタンスのfile_config.jsonに上記でメモった「com.amazonaws.リージョンを選ぶ.logs」のVPCエンドポイントの「DNS名」をjsonの”endpoint_override”に書き込む

file_config.jsonの場所

/etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.d/file_config.json

こんな感じのところに書き込む

{
  "logs": {
    "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.logs.リージョン.vpce.amazonaws.com",
   ......
   },
} 

endpoint_override 設定しなくてもロググループのログストリームが問題なく機能してる・・・。なんでだろ?VPCエンドポイントポリシーがフルアクセスだから?あまり気持ちの良いことではない・・・。

プライベートサブネットEC2インスタンスのIAMロールのIAMポリシー確認

  1. CloudWatchAgentServerPolicy
  2. AmazonSSMManagedinstanceCore

がアタッチされていることを確認。2は、SSMでCloudWatchエージェントをインストールする場合に必要。

最後にCloudWatchロググループのログストリームにログが送られているか目視で確認してください。

AWSの記事でコメントをいただくことがしばしばあるため、コメント機能を有効化しました。
ただ、申し訳ないのですが過去のコメントについては、WPの仕様で基本的に表示できません。
そのうち調べて表示します。お気軽にコメントください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください