ヤマムギ

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でカスタムメトリクスもログも収集できるので便利でした。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

このブログからパブリックIPv4 IPアドレスをなくしてコスト最適化

2024年2月より使用中のパブリックIPv4アドレスに1時間あたり0.005US …

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

AMIをOrganizations組織で共有しました

よく使うAMIをOrganizations組織内のリソースパブリッシュ用のアカウ …

AWS Transit GatewayのVPN接続

上記のような構成で、オンプレミス側は東京リージョンのVPCでVyOSを起動して接 …

5分でAlexaスキルを作る

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

CloudFrontからのバーチャルホストなサイトのテストってどうしてます?

このブログの構成です。 AWSで構築しています。 4つのサイトを1つのEC2で配 …

AWS Lambda(Python)で生成した文字をAmazon Connectで音声を設定して発信する

Amazon Connectから発信する電話の音声を動的に設定します。 Lamb …

RDS for MySQL のインスタンスタイプ変更

当ブログのデータベースは、RDS for MySQLです。 個人利用ですし、障害 …

Amazon Linux2のCloud9でPython CDKのモジュールインストール

AMIがCloud9AmazonLinux2-2021-02-02T16-48の …

S3 Intelligent-Tieringのオブジェクトの階層移動をCloudWatchメトリクスで確認

CloudWatchメトリクスの保存期間は現時点で15ヶ月(455日)なのでそろ …