ALBのヘルスチェックでPHPとMySQL接続をチェック
2020/05/17
当ブログで504エラーが発生して、オートスケーリングにより自動でインスタンスが置換えされて復旧しました。
オートスケーリンググループのログです。
これはこれでいいのですが、現在ヘルスチェックの対象は、Nginxのindex.htmlです。
この場合、Nginxだけが正常でも、php-fpがだめ、MySQLへの接続もだめ、ってありそう。
今回もphp-fpmのエラーログでタイムアウトが発生してから、10分ぐらいしてから、ELBヘルスチェックに失敗、なのでNginxがまともに動かなくなるまでタイムラグがあるように見えます。
そして、WordPressなので、PHPもMySQLへの接続も正常でないとヘルスチェックの意味があまりありません。
なので、こうしてみました。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $dsn = 'mysql:host=rdsendpoint.rds.amazonaws.com;dbname=wordpressdb'; $user = 'wordpressuser'; $password = 'wordpresspassword'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { http_response_code(500) ; exit; } $dbh = null; http_response_code(200) ; |
一応ローカルでテスト。
|
1 2 3 4 5 6 7 8 |
$ curl -I http://127.0.0.1/hcheck.php HTTP/1.1 200 OK Server: nginx/1.12.2 Date: Sun, 17 May 2020 06:33:56 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/7.2.30 |
200のコード返ってきました。
一応、echo使ったり、エラーパターンも確認したのでよさそうです。
ついでに、nginx.confで、hcheck.phpへのアクセスは access.logから除外しておきました。
nginx.confに以下を追加。
|
1 2 3 4 |
location = /hcheck.php { access_log off; } |
経過観察して、また何かありましたら書きます。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
「JAWS-UG DE&I AWS re:Invent 2024 recap サーバーレス ハンズオン」でサポーターしてきました
JAWS-UG DE&I開催の「AWS re:Invent 2024 r …
-
-
AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧
EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …
-
-
AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用
ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …
-
-
TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する
Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …
-
-
Amazon Augmented AI (Amazon A2I) のチュートリアル
Amazon Augmented AI (Amazon A2I)を使ったことがあ …
-
-
S3オブジェクトへのリクエストをCloudTrail, Athenaで識別する(パーティショニング)
Amazon S3オブエジェクトへのリクエストをCloudTrail, Athe …
-
-
プライベートサブネットのEC2でセッションマネージャを使うようVPCエンドポイントを構成する
インターネットゲートウェイへのルートがないルートテーブルに関連付けられたプライベ …
-
-
EC2 プレイスメントグループを試してみました
やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …
-
-
CloudTrailのログファイルの整合性検証をAWS CLIで実行しました
CloudTrailのログファイルの検証を「有効」にしました。 上記のようなCl …
-
-
Amazon Linux 2023、T4Gインスタンス、PHP8にWordPressを移行しました
ブログをAmazon Linux 2からAmazon Linux 2023に移行 …




