ENGINEERING ARTICLE
CloudWatch AgentがUnrecognizedClientExceptionで失敗した原因と対処法
この記事は約2分で読めます
こんにちは、 @Manabu です。
今回はEC2にCloudWatchエージェントをインストールして、メモリやディスク容量などのメトリクスを送信しようとした時に発生したエラーについてです。
このような事象が発生する原因は色々あるようですが、私の環境で発生した事象について紹介します。
発生したエラー
EC2のAWSコンソールからCloudWatchエージェントの設定を試みたところ、以下のようなエラーが発生しました。
UnrecognizedClientException: The security token included in the request is invalid.
すでに、IAMロールの設定やCloudWatchエージェントのインストールまで完了していて、送信するメトリクスを選択した後に発生しました。
原因
CloudWatchエージェントやSSMエージェントは、EC2に設定されている優先度の高い認証情報を使ってAWS APIにアクセスします。
参考記事:
REFERENCEAWS CLIの認証情報の優先順位を実際に試して理解する - Qiitaqiita.com↗私の管理しているEC2では、rootユーザーでアクセスするために以下の記事のような変更を行なっていました。
REFERENCEAWS EC2にrootユーザーでSSH接続する方法!IT自習室↗これにより /root/.aws/credentials が存在し、CloudWatch Agent は IAM ロールではなく 古くて無効なアクセスキー を参照してしまっていました。
解決策
rootディレクトリは以下の認証情報を削除し、IAMロール認証にもどすことで解決しました。
rmコマンドやmvコマンドで対象ファイルを削除・退避し、再度EC2のコンソール上から送信したいメトリクスを設定しなおすと成功し、CloudWatchコンソール上から見ても適切にメトリクスが取得されるようになりました。
まとめ
CloudWatchエージェントの設定については、上記の他にIAMロールの設定やディスク容量の逼迫など様々な原因で失敗することがあります。
私と同じ状態の方がいましたら、ぜひ参考にしてください。