Amazon EC2インスタンスのログをCloudWatch Logsに送る方法が2017年12月から新しくなってた

いままではSSMエージェントのCloudWatchプラグインで送信していた。2017年末にSystems Manager がEC2から独立したのを機にCloudWatchエージェントというのが登場したようだ。

新発表 – Amazon CloudWatch AgentとAWS Systems Managerとの連携 – 統一されたメトリクスとログの収集をLinuxとWindowsに | Amazon Web Services ブログ

SSMエージェントが古くなければ、Systems Manager の RunCommand の AmazonCloudWatch-MigrateCloudWatchAgentでいままでのSSMエージェントでのログ収集を停止して、新しいCloudWatchエージェントでの収集を開始できる。

CloudWatch Logs へのログの送信 (CloudWatch エージェント) - AWS Systems Manager

設定ファイルもスキーマが以前とは変っている。

CloudWatch エージェント設定ファイルを手動で作成または編集する - Amazon CloudWatch

CloudWatchエージェントの設定変更はjsonをあらかじめ Parameter Storeに追加しておいて、Run CommandのAmazonCloudWatch-ManageCloudWatchドキュメントConfigアクションでEC2インスタンスに適用する。 EC2インスタンスのIAMロールにParameter Storeの読み取り許可が必要になる。