【10分でできる】AWS LightSailでインスタンスのメモリ使用率を監視する

こんにちは。今日は、ひさびさAWS LightSailに関する記事を書きます。

といいますのも、このブログ、AWSのLightSailというサービス上、Bitnami WordPressイメージを使って動いているのですが、最近ようおちる・・・

ディスクの使用率やCPU使用率も特に問題ないので、リソース観点だとメモリが怪しそうだと思ったのですが(一番メモリスペックも低くしていたので・・)、なぜかLightSailのコンソールからメモリ使用率が監視できない!CPU使用率はみれるのになんでや・・・

しらべてみると、方法はあるもののちょっとひと手間かける必要がありそうだったのですが、今後のトラブルシューティングにも役立つかと思ったので、やってみることにしました。

それではまいります。

LightSailコンソールからはメモリ使用率は監視できない!

・・・なんでやねん・・・!

メモリ使用率を監視できるようにする

一応公式ブログがありましたが、全部英語や・・・と一度は心が折れましたが今日はやってのけようと思います。

Monitoring memory usage in Amazon Lightsail instance

https://aws.amazon.com/jp/blogs/compute/monitoring-memory-usage-lightsail-instance/

目指す構成

ブログの絵を拝借してきましたが、こんな感じでメトリクスをAmazon CloudWatchに転送する必要があるようです。

AWS公式ブログより

I AMユーザを作成

まずはじめに、「CloudWatchAgentServicePolicy」を持つ新規ユーザを作成します。

作成後に取得できるアクセスキーIDとシークレットアクセスキーは、後程使うので控えておいてください。

LightSailインスタンスにCloud Watchエージェントをインストール

次に、LightSailのインスタンスにCloud Watchエージェントをインストールします。

今回、私のインスタンスはUbuntuだったので、yum installは使えず、以下の手順に従ってインストールしていきます。

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html

## ダウンロード
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

## インストール
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

Cloud Watch AgentにAWSリソースへのアクセスを許可する

続けて、LightSailインスタンス上で、プロファイルを作成します。

このとき、先ほど控えておいた新規ユーザのアクセスキーIDとシークレットアクセスキーを入力します。その他情報は空欄でOKです。

sudo aws configure --profile AmazonCloudWatchAgent

メモリ使用率取得設定の構成

続けて、以下パスのconfig.jsonにて、Cloud Watch Agentに収集させるメトリクスを定義します。

 sudo vim /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
    "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "root"
    },
    "metrics": {
	"append_dimensions": {
	    "ImageID": "${aws:ImageId}",
	    "InstanceId":"${aws:InstanceId}",
	    "InstanceType":"${aws:InstanceType}"
	},
        "metrics_collected": {
            "mem": {
                "measurement": [
                    "mem_used_percent"
                ],
                "metrics_collection_interval": 60
            }
        }
    }
}

Cloud Watch Agentの構成

もうあと少しです。以下のパスのファイルにて、先ほど作成したプロファイルをCloud Watch Agentに割り当てるよう構成します。

sudo vim /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
[credentials]
shared_credential_profile = "AmazonCloudWatchAgent"

Cloud Watch Agentの起動

ここでようやくCloud Watch Agentの起動です!LightSail上で以下コマンドを実行します。

## 起動
sudo amazon-cloudwatch-agent-ctl -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -a fetch-config -s 

## 起動確認
sudo amazon-cloudwatch-agent-ctl -a status

Cloud Watchでメトリクスを確認する

最後に、Cloud Watchで収集されたメトリクスを確認してみます。

Cloud Watch > メトリクスでCWAgentを選択して、インスタンスにチェックをいれると・・おお!Agentが収集したメモリ使用率が確認できるようになりました・・!

加えてアラートなどを設定してもよいですね。

以上、AWS LightSailのメモリ使用率をCloud Watchで可視化する方法のメモでした。公式ドキュメントが英語なのがやっかいでしたが、実際やってみると意外に簡単にできました・・!

ご参考になりましたら幸いです!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。