ヤマムギ

growing hard days.

*

EC2にSystems MangerからCloudWatchエージェントをインストール

   


CloudWatchエージェント

EC2の標準メトリクスでは収集できないメモリの情報などをカスタムメトリクスとして収集し、アプリケーションログをCloudWatch Logsへの収集をまとめて行ってくれるCloudWatchエージェントをインストールしました。

CloudWatch エージェントにより収集されるメトリクス

IAMロールの作成

EC2がCloudWatchにメトリクスやログを書き込めるようにすることももちろんですが、SSMからインストールするのでSSMに対しての権限も必要です。

公式の手順Amazon EC2 Linux インスタンスに SSM エージェント を手動でインストールするにそって進めてみます。

IAMロールを新規作成して、AmazonEC2RoleforSSMポリシーをアタッチしました。

AmazonEC2RoleforSSMポリシー

AmazonEC2RoleforSSMポリシーを見てみました。

SSM、CloudWatchLogs、メトリクス、だけでなく、S3に対しての権限も有効になっています。

EC2にSSMエージェントをインストール

インストールが終わってamazon-ssm-agentのステータスを見てみるとすでに起動しています。
自動起動も出来ているらしい。

CloudWatchAgentのインストール

EC2用に作成したIAMロールにCloudWatchAgentAdminPolicyをアタッチします。

CloudWatchAgentAdminPolicy

CloudWatchAgentAdminPolicyポリシーを見てみました。

AmazonEC2RoleforSSMポリシーと内容がかぶってるステートメントもあります。
ですが、”ec2:DescribeTags”と”ssm:GetParameter” , “ssm:PutParameter”はない(GetPrametersはある)のでアタッチします。

必要なものだけインラインポリシーにするのも一つの方法ですが、ポリシーがまるごといらないときにデタッチしやすいのでCloudWatchAgentAdminPolicyポリシーを使います。

CloudWatchエージェントのインストール

Systems Manager Servicesの[コマンドの実行]からコマンドを実行します。

AWS-ConfigureAWSPackageを選択します。

  • 対象のEC2インスタンスを選択
  • Action: insatll
  • Name: AmazonCludWatchAgent
  • Version: latest

にしました。

成功しました。

CloudWatchエージェントの設定

EC2にSSHでログインして設定します。

amazon-cloudwatch-agent-config-wizardを実行しました。

Amazon Linux 2 なのでlinuxを選択しました。

EC2を選択しました。

メトリクスの収集をします。

CPUメトリクスも追加します。

追加可能な情報をメトリクスに追加します。

収集間隔を10秒ごとにしました。

より多くの情報を収集してみたかったのでタイプはアドバンスドにしました。

設定ファイルの内容が表示されたので、yesを選択しました。

すでにインストールしているCloudWatxh Logsエージェントがあるか聞かれたので、noを選択しました。
既存のCloudWatxh Logsエージェントがある場合はここでyesを選択することで設定をインポート出来るようです。

ログ収集するかを聞かれるのでyesを選択しました。

ここから先は1ファイルづつ対象を設定していきます。

ログ設定の内容が表示されましたので、yesを選択しました。

SSM パラメータストアに登録する名前は、デフォルトのAmazonCloudWatch-linuxにしました。

リージョンを選択します。
今回はバージニア北部です。

SSMパラメータストアに設定を書き込む認証をどれにするかを聞かれます。
IAMロールを設定することによって、EC2に設定されているアクセスキーを使用します。

成功しました。

ちなみに前述のポリシーでPutParameterがないと、「Error in putting config to parameter store AmazonCloudWatch-linux: AccessDeniedException: 」になります。

CloudWatch Logsエージェントの起動

Systems Managerのコマンド実行から起動します。
amazonCloudWatch-ManageAgentを選択します。

  • 対象のインスタンスを選択
  • Action: Configure
  • Mode: ec2
  • Option Configuration Source: ssm
  • Option Configuration Location: AmazonCloudWatch-linux(パラメータストアに登録した名前)
  • Optional Restart: yes

で実行しました。

結果は成功しました。

結果を確認

このあと、対象のEC2からAMIを作成して起動設定を作成して、AutoScalingで起動してます。

カスタムメトリクスにCWAgentがあります。

ちゃんととれてます。

ログもちゃんととれてます。

一つのAgentでカスタムメトリクスもログも収集できるので便利でした。


最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー2年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , ,

ad

ad

  関連記事

Amazon LinuxにAlfresco Community Editionをインストールする

目次 ダウンロード準備Amazon Linuxにインストールする簡易インストール …

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~」に行ってきました

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く …

Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました

※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …

API GatewayのアクセスログをCloudWatchに記録する

Amazon API GatewayのアクセスログをCloudWatchに記録で …

AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする

インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、 …

ブログの画像を別アカウントのS3に移動するためにIAMロールでクロスアカウントアクセス

ずっと先延ばしにしていたのですが、このブログの画像はEC2から直接配信しています …

Amazon CloudSearchにAWS Lambda(Python)からデータをアップロードする

このブログはゆるっとアドベントカレンダー Advent Calendar 201 …

EC2インスタンスが到達不能になって復旧してMackerelで監視し始めた

きっとばりばり使っておられる方ならよくある事なんだろうけど、はじめて体験したので …

AWS Expert Online at JAWS-UG首都圏エリアに参加して「Amazon EC2 スポットインスタンス再入門」を聞いてきた

AWS Expert Onlineという勉強会がありまして、AWS ソリューショ …

5分でAlexaスキルを作る

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …