第3回 Amazon Lightsail で監視 ~ CloudWatch エージェントを導入してメモリ使用率とストレージ使用量を監視編
![Amazon Lightsail のアイコン](https://luna-leo.com/wp-content/uploads/2022/09/icon_lightsail-02.png)
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
前回は、CPU とストレージの使用量の監視設定を Amazon Lightsail のマネジメントコンソール画面から行いました。
しかし、メモリの使用率についてもメトリクスは Amazon Lightsail のマネジメントコンソール画面からは確認することができませんでした。また、ストレージの使用量についても、SSH 接続を行う必要があり、即時性に欠けるものでした。アラームの設定も行うことができませんし。
今回は、メモリ使用率とストレージの使用量についての確認方法について考えてみたいと思います。
今回できること
- Amazon CloudWatch と統合 CloudWatch エージェントについて知ることができます。
- Amazon Lightsail インスタンスに、CloudWatch エージェントを導入します。
- CloudWatch でメモリ使用率とストレージの使用量を確認できるようになります。
Amazon CloudWatch について
Amazon CloudWatch とは?
AWS とオンプレミスにおける AWS のリソースとアプリケーションのオブザーバビリティ
なんのこっちゃ。
簡単に言うと、監視サービス。AWS だけでなく、オンプレのシステムも基本 OK だよ、って感じ。
Amazon CloudWatch は、DevOps エンジニア、デベロッパー、サイト信頼性エンジニア (SRE)、IT マネージャー、および製品所有者のために構築されたモニタリング/オブザーバビリティサービスです。CloudWatch は、アプリケーションをモニタリングし、システム全体におけるパフォーマンスの変化に対応して、リソース使用率の最適化を行うためのデータと実用的なインサイトを提供します。CloudWatch は、モニタリングおよびオペレーショナルデータをログ、メトリクス、イベントの形式で収集します。運用状態の統一されたビューを取得し、AWS およびオンプレミスで実行されている AWS リソース、アプリケーション、およびサービスを完全に視覚化します。CloudWatch を使用すると、環境内における異常動作の検知、アラームの設定、ログとメトリクスが対応するように並べた視覚化、自動化されたアクションの実行、問題のトラブルシューティング、およびアプリケーションのスムーズな動作を維持するためのインサイトを検出できます。
かなり、いろんなことができる監視サービスだよ。LeoSaki(旦那)も大好き。Amazon CloudWatch のアラームを起点にインスタンスを再起動させたり、別のサービスを起動させたり、ダッシュボードを作成して可視化されたデータを眺めたり、いっぱい活用しています。
統合 CloudWatch エージェントとは?
統合 CloudWatch エージェントは、インスタンスやオンプレミスサーバーからメトリクスとログを収集するためのソフトウェアです。以前は、CloudWatch エージェントと、CloudWatch Logs エージェントに分かれていましたが、この 2 つが統合され、統合 CloudWatch エージェントとなりました。
現在は、統合 CloudWatch エージェントの利用が推奨されています。
この記事においては、統合 CloudWatch エージェントを CloudWatch エージェントと表記します。
CloudWatch エージェントは、インスタンスやオンプレミスサーバーからシステムレベルのメトリクスを収集します。収集したメトリクスは、CloudWatch でも保存して表示することができます。CloudWatch エージェントによって収集されたメトリクスは、カスタムメトリクスとして料金が発生します(10 のカスタムメトリクスは無料)。
CloudWatch エージェントによって収集されたログは、Amazon CloudWatch Logs に処理され、保存されます。Amazon CloudWatch Logs は別途利用料金が発生します(5 GB データ(取り込み、ストレージのアーカイブ、Logs Insights クエリによってスキャンされたデータ)は無料)。
以前は、ログを収集する必要のある仕様の場合、2 つのソフトをインストール、設定を行う必要があって面倒だったのですが、今は 1 回の作業で済むようになったので、小躍りしています。ありがとう、AWS !
Amazon Lightsail インスタンスに CloudWatch エージェントをインストールする
ユーザーの作成の前に一言
これはちょっといただけないよ、AWS ! 基本的にロールによる権限委譲で、セキュリティを高めることができるのが AWS サービスの良いところのはずなのに、Amazon Lightsail インスタンスの場合は、アクセスキーとシークレットアクセスキーを Amazon Lightsail インスタンスに設定しなければならないという! 今後の AWS の対応に期待です。(オチは最後)
ユーザーの作成
マネジメントコンソールから、「IAM」を検索します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-01-2.png)
IAM ダッシュボードから「ユーザー」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-02-1.png)
「ユーザーを追加」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-03-1.png)
わかりやすいユーザー名をつけます(ここでは、CloudWatchForLightsail としました)。
「アクセスキー・プログラムによるアクセス」にチェックを入れます。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-04-1.png)
「既存のポリシーを直接アタッチ」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-05-1.png)
「CloudWatchAgentServerPolicy」にチェックを入れます。
(ポリシーのフィルタに「cloudwatchagent」と入力して検索をかけると早い)
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-06-1.png)
タグが必要な場合は、タグの設定を行います。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-07-1.png)
設定に誤りがないか確認を行い、「ユーザーの作成」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-08-1.png)
.csv のダウンロードを行います。
(ダウンロードが難しい場合は、「アクセスキーID」と「シークレットアクセスキー」をメモしておきます)
※アクセスキーとシークレットアクセスキーの取り扱いには十分に注意してください。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-09-1.png)
Amazon Lightsail インスタンスへ Amazon CloudWatch エージェントのインストール
Amazon Lightsail インスタンスに SSH 接続を行います。
赤枠をクリックして直接インスタンスに SSH 接続をすることが可能です。
ターミナルソフトを利用して接続しても問題ありません。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-10-1.png)
コマンドを入力していきます。
Amazon CloudWatch エージェントソフトのダウンロード
$ wget https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-11-1.png)
Amazon CloudWatch エージェントソフトのインストール
$ sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-12-1.png)
プロファイルの作成
$ sudo aws configure --profile AmazonCloudWatchAgent
ここでは、「AmazonCloudWatchAgent」という名前のプロファイルを作成します。
アクセスキーとシークレットアクセスキーを間違えないように入力します(できればコピペで)。
利用しているリージョンを入力します(ここでは、東京リージョン「ap-northeast-1」としました)
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-13-1.png)
Amazon CloudWatch エージェントのプロファイルの作成
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
基本的には、デフォルトのままで良い(Enter キーを押して進むだけ)。
デフォルトのままで問題があるのは、以下の 6 個の質問。
(2022 年 10 月 27 日現在、何番目の質問であったか記載しますが、AWS はアップデートが早いため、よく質問内容を確認することをオススメします)
質問 2
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q02.png)
質問 4
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q04.png)
質問 5
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q05.png)
質問 7
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q07.png)
質問 12
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q12.png)
質問 13
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q13.png)
作成したプロファイル「AmazonCloudWatchAgent」を使用する設定を行う
$ sudo vim /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
- 「i」キーでインサートモードにする
- 下記を貼り付ける
[credentials]
shared_credential_profile = "AmazonCloudWatchAgent"
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-15.png)
- 「Esc」キーでインサートモードを解除する
- 「:wq」を入力して vim を抜ける
Amazon CloudWatch エージェントを起動させる
$ sudo amazon-cloudwatch-agent-ctl -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -a fetch-config -s
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-16.png)
Amazon CloudWatch エージェントが起動したかどうかの確認
$ sudo amazon-cloudwatch-agent-ctl -a status
「status」が「running」となっていれば OK です。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-17.png)
Amazon CloudWatch コンソール画面での確認の前に
CloudWatch エージェントの設定が完了した直後ですと、メトリクスが反映されていない、情報が少なくてグラフに表示されているのがただの点でしかない、などありますので、一服しましょう。
Amazon CloudWatch コンソール画面での確認
マネジメントコンソールから、「cloudwatch」を検索します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-18.png)
「すべてのメトリクス」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-19.png)
メトリクスの中から「CWAgent」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-20.png)
メモリ使用率の確認方法
「host」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-21.png)
Amazon Lightsail インスタンスの「プライベート ip」を確認し、「mem_used_percent」にチェックを入れる
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-22.png)
メモリ使用率を見ることができました!
ストレージ使用量の確認方法
「device,fstype,host,path」を選択します。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-23-1024x809.png)
Amazon Lightsail インスタンスの「プライベート ip」を確認し、path が「/」の「disk_used_percent」にチェックを入れる
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-24.png)
ディスク使用量を見ることができました!
現在、20.5 % 程度のようです。念のため、Amazon Lightsail インスタンスに SSH 接続を行い、確認してみます。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-25.png)
間違いないようですね!
おまけ
よく、IAM ユーザーの作成時にアタッチするポリシーについて、「CloudWatchAgentAdminPolicy」と「CloudWatchAgentServerPolicy」をアタッチする、と書かれていることがあります。この 2 つのポリシーの違いは、Systems Manager への「書き込み権限」があるかないか、のようです。
CloudWatch エージェントの設定において、Systems Manager パラメータストアにCloudWatch エージェントの設定情報を保存するかどうか聞かれます。保存する場合は、「CloudWatchAgentAdminPolicy」を、保存しない場合は、「CloudWatchAgentServerPolicy」をアタッチすれば良さそうです。
今回は Systems Manager パラメータストアにCloudWatch エージェントの設定情報を保存しませんので、「CloudWatchAgentServerPolicy」をアタッチしています。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-91-1.png)
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-92-1.png)
最後に
これで、Amazon Lightsail インスタンスの監視を CloudWatch で行うことができるようになりました。
LeoSaki(旦那)としては、インスタンスにアクセスキーとシークレットアクセスキーを書き込むやり方はあまり好きじゃないなぁと思ってしまいます。AWS サービスを利用しているのならば、ロールを使いたい。あっ、でも、Amazon Lightsail インスタンスはオンプレ扱いなのか。
![](https://luna-leo.com/wp-content/uploads/2022/10/002_10-14-q02.png)
あとは、CloudWatch で監視設定をすれば、枕を高くして眠れるようになります。自分で監視するんじゃ心配で眠れないか・・・。そういうときは、専門の業者に頼みましょう(宣伝だけど高いよ)。
CloudWatch アラームで Lambda をキックして、Amazon Lightsail インスタンスを再起動、とかで、急場凌ぎはできそうだ。そうすると、ログが消えてしまうので調査が難しくなってしまうけれど。
ログも飛ばしておこうかなぁ、が次のテーマかも。
引き続き、よろしくお願いします!
![](https://luna-leo.com/wp-content/uploads/2022/09/luna-leo-line-up.png)
猫大好き、野球大好き、AWS が大好き、な、藩士。
AWS 6冠、取得しています。
IPA 資格は IT パスポート、基本情報技術者、応用情報技術者、取得しています。
キャンプ場でも仕事する社畜っぽい人。
ディスカッション
コメント一覧
まだ、コメントがありません