ふとWebアプリケーションの外形監視をやりたくなり、調べたところAWSではCloudWatchにその機能があったので試してみた。(´Д`)
Amazon CloudWatch Syntheticsとは
CloudWatchの仲間でWebサイトやURL、REST APIに対してのURL監視などを行えるネージドサービス。Canaryというリソースを作成して監視を行う。CanaryはNode.jsまたはPythonランタイムのLambda関数を作成してスクリプトを実行できる。
やること
Elastic BeanstalkのPHPで簡単にウェブサーバを構築し、CloudWatch SyntheticsでエンドポイントをURL監視する。
環境
実践!
1.ウェブサーバ構築
1-1.Elastic Beanstalk-[アプリケーションを作成]
1-2.環境を設定が表示されたら下記を入力
・環境枠:ウェブサーバー環境
・アプリケーション名:sample-app
・環境名:sample-env
・プラットフォームタイプ:マネージドプラットフォーム
・プラットフォーム:PHP
・プラットフォームブランチ:PHP 8.1 runnning on 64bit Amazon Linux 2
・プラットフォームのバージョン:3.5.7(Recommended)
・アプリケーションコード:サンプルアプリケーション
・設定プリセット:単一インスタンス(無料利用枠の対象)
1-3.[次へ]
1-4.サービスアクセスの設定が表示されたら下記を入力
・サービスロール:既存のサービスロールを使用
・既存のサービスロール:aws-elasticbeanstalk-service-role
・EC2 キーペア:適当に作成
・EC2インスタンスプロファイル:aws-elasticebeanstalk-ec2-role
1-5.[レビューまでスキップ]
1-6.レビューが表示されたら内容を確認して[送信]
1-7.構築完了後、[ドメイン]のURLを控える
2.CloudWatch Synthetics監視設定
2-1.CloudWatch-[Synthetics Canaries]-[Canaryを作成]
2-2.Canaryを作成が表示されたら下記を選択
・Canaryを作成:設計図を使用する
・設計図:ハートビートのモニタリング
・名前:sample-canary
・アプリケーションまたはエンドポイントURL:[Elastic Beanstalkで払い出されたドメイン]
・スクリプトエディタ:デフォルト
・スケジュール:継続的に実行
・Canaryを実行:間隔
・頻度:1分
・作成後すぐに開始:✅
・障害データの保持:31日(~1か月)
・成功データの保持:31日(~1か月)
・データストレージ:デフォルト
2-3.[Canaryを作成]
3.動作確認
3-1.CloudWatch Canary-[sample-canary]でステータスが[成功]と表示されること
・前回の実行ステータス:成功
・成功%:100%
4.異常確認
4-1.適当なZipファイルをファイル名php_ng.zipで作成
※空だと作成できない場合は適当に空のメモ帳を作成してZip圧縮する。
4-2.Elastic Beanstalk-[sample-env]-[アップロードとデプロイ]
4-3.アップロードとデプロイが表示されたら下記を入力
・ファイル名:php_ng.zip
・バージョンラベル:1.0
4-4.[デプロイ]
4-5.デプロイ完了後、Elastic Beanstalkのドメインをクリックし、サイトが表示されないことを確認
4-6.CloudWatch Canaryのステータスが[失敗]に変化することを確認
感想
スクリプトをかませて複雑な処理もできるらしいので今度試してみよう(∩´∀`)∩