こんにちは。AWS歴3ヶ月の初心者エンジニアです。
あっという間に4月・・・早いですね。
みなさま、お花見は行かれましたか?
弊社ギークフィードの裏手にある小さな小さな公園では、1本の大きな桜がきれいに咲いていました。
AWSドキュメントは専門用語が多く、初心者が読むのは大変ですね。
さて、現在AWSのCloudWatchで、CPU UtilizationやStatusCheckFailedなどのアラームを設定し、
対象のEC2インスタンスなどの状態が変化したときにメール通知(AutoScalingもできるようですね)が来るようにしています。
さらに詳細なメトリクスを取得するには、CloudWatchエージェントのインストールが必要とのことでしたので、この記事では
- AWS CloudWatchでメトリクスを取得する手順
を、解説していきます。
特に、CloudWatch エージェントのインストール方法を詳しく説明しようと思います。
(参考: CloudWatch エージェントを最初のインスタンスにインストール)
目次
1.バージョン、インストール確認
まずはサポートされているOSを確認。
CloudWatch エージェントは、以下のオペレーティングシステムでサポートされています。
- Amazon Linuxバージョン 2014.03.02 以降
- Amazon Linux 2
- Ubuntu Server バージョン 18.04、16.04 および 14.04
- CentOS バージョン 7.0 および 6.5
- Red Hat Enterprise Linux (RHEL) バージョン 7.5、7.4、7.0、6.5
- Debian 8.0
- SUSE Linux Enterprise Server (SLES) 12 以降
- 64 ビットバージョンの Windows Server 2016、Windows Server 2012、Windows Server 2008
この条件を満たしているか、以下コマンドで確認しました。
1 |
cat etc/os-release |
結果は
NAME=”Amazon Linux”
VERSION=”2.0 (以下省略)
大丈夫そうですね。
そして、SSM Agentはデフォルトでインストールされているはず( AWSドキュメントへ )ですが、念のため確認。
1 |
rpm -qa | grep ssm |
amazon-ssm-agent (以下省略)
があったらOK。
稼働しているかどうかの確認。
1 |
systemctl list-units --type=service |
amazon-ssm-agent.serviceがありました。
これで条件はOKだったので次の手順へ。
2.インスタンスにIAMを割り当て
対象のインスタンスにIAMを割り当てたいので、まずはIAM作成から行います。
IAMの画面に移動し、左側メニューからロールを選択後、青いボタン「ロールの作成」をクリック。
以下2つのポリシーをアタッチしてIAMロール作成。
・AmazonSSMFullAccess
・AmazonEC2ReadOnlyAccess
IAMロールが作成出来たら、EC2メニューに移動し、左側メニューから「インスタンス」をクリック。
対象のEC2インスタンスを選択し、アクションプルダウンメニューからインスタンスの設定→IAMロールの割り当て/置換を選択。
先ほど作成したIAMロールをプルダウンメニューから選択して、適用をクリックします。
IAMロールで権限を割り当てたので、次の手順へ。
3.AWS System ManagerでAWS-ConfigureAWSPackageをインストール
System Managerメニューに移動し、左側メニューからランコマンドをクリック。右側のオレンジボタン「コマンドを実行」をクリックします。
- コマンドのドキュメント→ AWS-ConfigureAWSPackageを選択
- コマンドのパラメータ↓
Action:Install
Name:AmazonCloudWatchAgent
Version:latest - ターゲット→対象のインスタンスを選択する(IAMロールが正しく割り当てられているインスタンスが表示されているはずです)
- 画面下の方までいって、「実行」ボタンをクリック
しばらくすると「成功」と表示されます。
これでインストールは完了!次はセッティングです。
4.インストールされたエージェントの設定
コマンドで、クラウドウォッチエージェントの設定ウィザードを立ち上げます。
1 |
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard |
上記のようなイメージで、画面に質問と選択肢が表示されていきますので、どんどん答えていきます。
※今回のカスタムメトリクスを取る為の質問はこれです。
Which default metrics config do you want?
1.Basic
2.Standard
3.Advanced
4.None
ここで3. Advancedを選びましょう。
Which AWS credential should be used to send json config to parameter store?
ここでは1を指定して表示されている、既にある「credential」を選んでもよかったのですが、今回は「AWS上のユーザーを追加」から新規作成しました。
2.Other を選択した後、AWS Access KeyとSecret Keyを聞かれたので、設定時の該当テキストを入力します。
こちらで設定も完了しました。
5.CloudWatchエージェント起動と確認。AWSの画面でもカスタムメトリクスがとれる事を確認!
開始用コマンドを入力(AWSドキュメントに書いてあったコマンドです)
1 |
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:AmazonCloudWatch-linux -s |
ssm:の後のテキストは、ステップ4の設定時に
What paramater store name do you want to use to store your config?
と聞かれたときに設定したテキスト名を入力します。
後ほどページ下部にキャプチャ貼って説明加えますが、こちらはAWS上のパラメータストアに保存されているのが確認できます。
ステータス確認
1 |
systemctl status amazon-cloudwatch-agent.service |
自動起動の設定
1 |
systemctl is-enabled amazon-cloudwatch-agent.service |
こちらのステップで起動を確認したので、AWS上でカスタムメトリックスがとれるか確認します。
AWS画面でCloudWatchメニューに移動し、左側メニューからアラームを選択します。
青いボタン「アラームの作成」をクリック。
「メトリックスの選択」をクリック。
CWAgentが選べるようになっています。
mem_used_percentなど、カスタムな値でもアラームが設置可能になりました。
他のインスタンスにこのパラメータ設定を適用すれば、ステップ4がいらなくなりますね。
System Managerに入り、左側メニュの一番下に行くと、パラメータストアがあり、クリックする保存した設定が確認できます。
6:カスタムメトリクス取得手順・CloudWatch Agentインストール方法まとめ
以上でAWSのCloudWatchでカスタムメトリクスを取る事が出来ました!
まとめると、アドバンスのメトリクス値を取るには
- バージョン確認
- IAMロールで権限付与
- CloudWatch Agentをインストール・起動
という手順で行いましょう。
社内の方にアドバイスを頂きながら、エンジニア初心者でも何とかカスタムメトリクスを取得できました。
私はまだまだ勉強中ですが、ギークフィードにはAWSに詳しい者がおりますので何なりとご相談くださいませ!
ギークフィードはアマゾン ウェブ サービス(以下AWS)が提供するパートナー制度、
AWS Partner Network(以下APN)のスタンダードテクノロジーパートナーに認定されております。
- 【React】フロントエンドのテストコードを書いてみよう【Vitest】 - 2024-04-30
- Simple AWS DeepRacer Reward Function Using Waypoints - 2023-12-19
- Restrict S3 Bucket Access from Specified Resource - 2023-12-16
- Expand Amazon EBS Volume on EC2 Instance without Downtime - 2023-09-28
- Monitor OpenSearch Status On EC2 with CloudWatch Alarm - 2023-07-02