質問: ### 前提・実現したいこと AWSにlaravelアプリをデプロイし、SSL化を行っています。 AWSのネットワーク構成は以下です。 【ELB】 ・セキュリティグループ(インバウンド) http 80 0.0.0.0/0 https 443 0.0.0.0/0 (httpはhttpsにリダイレクト) 【EC2インスタンス】 ・nginx ポート80 ・セキュリティグループ(インバウンド) http 80 ソースはELBのセキュリティグループ 【RDS】 RDBMS MySQL ・セキュリティグループ MySQL 3306 ソースはEC2のセキュリティグループ ### 発生している問題 接続が不安定です。アクセスした際にページが表示されるまでに数十秒を要する場合もあれば、瞬時に表示される場合もあります。また、時に502 Bad Gatewayになります。 また、リロードや通常のリンク移動でも同様に時間が掛かるケースと掛からないケースがあります。 原因の切り分けができず、詰まっています。 ### 試したこと メモリ使用率をcloudwatchから参照できるようにしました。 それも含め、1時間のEC2のモニタリング結果は以下です。この1時間の間に複数回サイトにアクセスしており、何度も上記の問題が発生しています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/375c4f68533df77364bde3eb5adfa8ed.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ea0ca6cceaddba82b8ef45b89091f668.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2c3709c36bcc0228c4854dac1fa8777b.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/31f73115ccbd01093aa534f43d6676f4.png) 以下はメモリです。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/aad1c181f2f05cee22530f9893a38dfc.png) ELBのログを取得しました。 ``` h2 [レスポンス生成時刻] [対象ロードバランサーのリソースID] [クライアントのIPアドレス:ポート番号] [リクエストを処理したターゲットのIPアドレス] 0.000 0.001 0.000 200 200 678 4440 "GET https://[アプリのドメイン]" /省略/ "forward" "-" "-" "[リクエストを処理したターゲットのIPアドレスとポート]" "200" "-" "-" https [レスポンス生成時刻] [対象ロードバランサーのリソースID] [クライアントのIPアドレス:ポート番号] [リクエストを処理したターゲットのIPアドレス] 0.008 0.000 404 404 421 6854 "GET https://[アプリのドメイン]" /省略/ "forward" "-" "-" "[リクエストを処理したターゲットのIPアドレスとポート]" "404" "-" "-" ``` ELBのメトリクス ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/afb0dfdab995dac58f56088556b93586.png) ### 補足情報(FW/ツールのバージョンなど) アプリ情報 バックエンド 言語 / FW : PHP / Laravel8 フロントエンド 言語 / FW : JS / Vue.js2 RDBMS : MySQL ご回答いただけると有り難いです。よろしくお願いします。
回答: 申し訳ないです。自己解決致しました。 原因は、サブネットとルーティングの設定に誤りがあったためでした。 2つあるサブネットのうち、片方にインターネットゲートウェイへのルーティングを設定していませんでした。 そのため、2つのサブネットのうち、設定されていない方に割り振られた通信は接続ができず、そうでない方は正常に応答があるため、動作が不安定という結果になっていたのだと思います。 それぞれの役割への認識が甘かったと痛感したので、勉強し直そうと思います。 回答と修正依頼をしてくださったお二方、大変ありがとうございました。