AWSのCloudWatchを中心としたアプリケーションの観測について学びます

Last Updated: 2024-08-03
以下のAWS公式で提供されているハンズオン資料があります。
しかしながら、2022年に作成されたものであるため、
2024年現在の画面と大きく乖離が入っていることを受けて、
ベースはいただきつつも、2024年5月時点でのものに更新します。
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-monitoring-2022-reg-event.html
Amazon CloudWatchとは、Amazonが提供するクラウドサービスの監視ツールです。 このツールを使えば、AWSのリソース(コンピューター、ストレージ、ネットワークなど)の状況を簡単に監視することができます。 リソースの使用状況や、エラーの発生などを確認でき、問題に早期に対処することができます。

GUI or CUI どちらで実施しても構いません
次のどちらかのURLからファイルを取得する
https://github.com/midnight480/aws-monitoring-hands-on-1/blob/master/monitoring-1.yaml
https://raw.githubusercontent.com/midnight480/aws-monitoring-hands-on-1/master/monitoring-1.yaml
東京(ap-northeast-1)でCloudformationを開く
https://ap-northeast-1.console.aws.amazon.com/cloudformation/home
Create stack(スタックの作製)を押す

Choose an existing template(既存のテンプレートを選択)
> Upload a template file(テンプレートファイルのアップロード)
> monitoring-1.yaml

スタック名には以下を指定し他はデフォルトのまま次へを押下する
スタック名:monitoring-1

スタックのオプションの設定は何も変更せず次へを押下する

確認画面で「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」にチェックを入れ、送信を押下する

CloudShellを起動する
command
git clone https://github.com/midnight480/aws-monitoring-hands-on-1.git
cd aws-monitoring-hands-on-1/
sh monitoring-1-create-stack.sh 
実際に起動しているリソースの確認
作成しているEC2の情報を見てみてください
https://ap-northeast-1.console.aws.amazon.com/ec2/home
作成しているRDSの情報を見てみてください。
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home

設定したしきい値に基づいて通知をする際に利用します
EC2やRDS、Lambdaといった各サービスから連携されるログの収集先となります
Logsで収集した結果を元にグラフで可視化する際に利用します
Outputs(出力)タブ
Stacks > monitoring-1

以下の4つの情報をご自身のメモアプリなどに転記してください
EC2WebServer01DNS のURLにアクセスしてください





https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#alarmsV2:
アラームの作成 > メトリクスの選択 に進みます


Metrics > CWAgent に進みます

CWAgent > ImageId, InstanceId, InstanceType, device, fstype, path に進みます
以下のような選択をする

左端のチェックボックスに☑を入れて、Select metricに進みます


次へ に進みます
以下のように設定します

トピックの作成を押下し次へ に進みます

次へ に進みます

アラームの作成 に進みます

入力したメールアドレスに、SNSから確認メールが届いているので Confirm subscriptionしてください



wordpress_access_log > 保持 > 失効しない を押す
1か月(30日) を選択して、 保存 を押す


ログストリームがEC2のインスタンスごとに設定されている(今回のハンズオンにおいて)

参考:
ウィザードを使用して CloudWatch エージェント設定ファイルを作成する
保存期間  | 法令、ガイドラインなど  | 
1ヶ月間  | |
3ヶ月間  | |
12ヶ月間(1年間)  | 
 ・Successful SIEM and Log Management Strategies for Audit and Compliance - Discussion  | 
36ヶ月間(3年間)  | 不正アクセス行為の禁止等に関する法律の時効に合わせて  | 
60ヶ月間(5年間)  | ・金融商品取引法 - 25条の期間に合わせて ・電子計算機損壊等業務妨害罪の時効に合わせて  | 
84ヶ月(7年間)  | 下記3つの時効に合わせて ・電子計算機使用詐欺罪 ・詐欺罪 ・窃盗罪  | 
120ヶ月(10年間)  | ・『不当利得返還請求』等、2020年改正前民法上の請求権期限 ・商法19条(旧商法36条)  | 


特に変更せずに クエリの実行 を押す

Query Sample
parse '* - * [*] "* * *" * * * *' as host, identity, dateTimeString, httpVerb, url, protocol, statusCode, bytes, referrer, userAgent
| filter statusCode like /(4\d\d)/ 

Amazon Q - 生成 AI 搭載アシスタント の登場により、
Query Generator を押して、 プロンプトを 英語 で入力してください
新しいクエリを生成 を押すと、クエリが置き換わります
英語が苦手な方は DeepL Translate を使ってみてください
例)
Give me searching for HTTP status code 200.
(HTTPのステータスコードが200のものを検索してください。)

https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#dashboards/

ダッシュボードの作成 を押す


線 を選択して 次へ を押す

EC2 > インスタンス別メトリック を選択する

検索窓 に 「 CPU 」と入力し絞り込む


ウィジェットの作成 を押す

🖊 アイコンを押すと名前が変更できる(今回は変更しません)


右端にある ➕ を押す

その他のコンテンツタイプ を選択する

テキスト/画像... がデフォルトで選択されているので 次へ を押す

マークダウンの枠に以下の文字列をコピー・アンド・ペーストする
Markdown Sample
# WordPress 運用者向け資料
## 公式ドキュメント
*  [CloudWatch Logs - ウィザードを使用して CloudWatch エージェント設定ファイルを作成する](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html).
[button:Emergency](https://jaws-ug.jp/) 
ウィジェットの追加 を押す

横幅を調整する

右上の 自動保存:オフ が標準になっているのでオンにする

再度EC2のCPU使用率を可視化するウィジェットを追加する

ウィジェットの位置を調整する


ウィジェットの追加で ログ > ログテーブル を選択して 次へ

クエリを特に修正することなく実行して、ウィジェットの作成 を押す


ダッシュボードを保存 を押す

各サービスには標準のダッシュボードが用意されている
EC2を選択する


リソースグループに移動する
https://ap-northeast-1.console.aws.amazon.com/resource-groups/home?region=ap-northeast-1#

リソースグループの作成 を押す


グループを作成 を押す

CloudWatchの画面に戻りリロード(F5)するとリソースグループが表示される

https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#rules:

ルールを作成 を押す



次へを押す

次へ を押す

ルールの作成 を押す

monitoring-1-WebServer01 を停止する

インスタンスを停止 (インスタンスを終了ではない)を押す

以下のようなメールが届いていれば設定完了している

https://ap-northeast-1.console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks
monitoring-1 のチェックを押し、削除を押す

削除 を押す

https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#alarmsV2:


https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#dashboards/






https://ap-northeast-1.console.aws.amazon.com/sns/v3/home?region=ap-northeast-1#/topics


※以降の手順はAWSアカウントで初めてCloudFormationを利用した方向けです。
※普段からCloudFormationを利用されている場合、S3バケット内の対象yamlファイル「monitoring-1.yaml」のみ削除してください。
https://ap-northeast-1.console.aws.amazon.com/s3/home?region=ap-northeast-1#




