ヤマムギ

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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

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

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

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

 - AWS , ,

  関連記事

CloudWatchアラームをAWS CLIでテスト

CloudWatchアラームをテストするコマンドです。 –state …

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …

ヤマムギvol.26 Amazon DynamoDBのデモをしました

今日はAWS認定クラウドプラクティショナー対策本(緑本)に関係するデモをしました …

CodeWhisperer(Visual Studio Code)でセキュリティスキャン

CodeWhispererのセキュリティスキャンを実行してみました。 画面下の[ …

Amazon Connectで電話を転送する

かかってきた電話を転送するようにしました。 問い合わせフローで[終了/転送]から …

AWS Network Firewallの入門

公式のGetting started with AWS Network Fire …

Systems Manager セッションマネージャアクセスのCloud9(SSHなし)

作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …

AWS CloudHSMを起動してみました

なかなか触る機会のないサービス、CloudHSM。 起動してみました。 手順はユ …

特定AWSアカウント特定リージョンのSNSトピックを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のSNSトピックを全部削除したいで …

WordPress(EC2)の画像のS3へのオフロードをMedia Cloudで

タイトル通りですが、画像をwebサーバー(EC2)からではなく、S3バケットから …