質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

2220閲覧

AWS EC2のLaravelアプリに、ロードバランサーを設置するとアクセスできません。

trigger

総合スコア8

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/05/22 05:50

編集2021/05/22 06:44

前提・実現したいこと

ロードバランサーを使用したSSL化でアプリにアクセスできません。

LaravelアプリをAmazon EC2にデプロイしました。
VPC内に、パブリックサブネットとプライベートサブネットを作成し、EC2はパブリック、RDSで作成したDBをプライベートに配置し、EC2インスタンスのIPアドレスでアプリにアクセスできます。
ここではDBへの保存など、アプリは正常に動作します。

ここで、SSL化を行うために、アプリケーションロードバランサーを作成しました。すでにドメインの取得と証明書の発行は終わっています。
ロードバランサーからのターゲットグループのEC2インスタンスへのヘルスチェックはHealthyです。

セキュリティグループの設定を以下にまとめます。

・ロードバランサー タイプ ポート ソース HTTPS 443 0.0.0.0/0 ・EC2 タイプ ポート ソース HTTP 80 ロードバランサーのセキュリティグループ SSH # 省略

ルートテーブル

送信先 ターゲット ステータス 伝播済み xx.x.x.x/xx local active いいえ 0.0.0.0/0 igw-xxx active いいえ

レコード

レコード名 タイプ 値/トラフィックのルーティング先 example.com A   dualstack.ロードバランサー名-xxxxxxxxxx.ap-northeast-1.elb.amazonaws.com. _xxx..example.com CNAME _xxxxxxxxx.aaabbbcccd.acm-validations.aws. example.com NS ns-xxxx.awsdns-xx.co.uk. ns-xxx.awsdns-xx.com. ns-xxx.awsdns-xx.net. ns-xxxx.awsdns-xx.org. example.com SOA ns-xxxx.awsdns-xx.co.uk. awsdns-hostmaster.amazon.com. x xxxx xxx xxxxxxx xxxxx

発生している問題・エラーメッセージ

取得したドメインにアクセスすると、延々とインジケータが回転しています。
ロードバランサーへアクセスできずに応答待ちなのか、ロードバランサーへアクセスはできており、インスタンスへのアクセスができずに応答待ちなのか、この辺りがわかりません。

試したこと

・Aレコードのテストでは、エラーなしでIPアドレスが返却されてきます。
・EC2のセキュリティグループのHTTPで待ち受けているソースを、試しに0.0.0.0にしてみましたが、挙動は同じです。(この状態でIPアドレスでアクセスするとアプリにアクセスできます。)

・digコマンドで以下を確認しました。

% dig example.com NS ;; ANSWER SECTION: example.com. 127 IN NS ns-xxxx.awsdns-xx.org. example.com. 127 IN NS ns-xxxx.awsdns-xx.co.uk. example.com. 127 IN NS ns-xxx.awsdns-xx.com. example.com. 127 IN NS ns-xxx.awsdns-xx.net. % dig www.example.com ;; ANSWER SECTION: www.example.com. 167 IN A xxx.xxx.xxx.xx

実行コマンドはこちらの記事を参考にしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/05/22 06:34

ちょっと情報が少ないので分からないところもありますが、そのAレコードはロードバランサー側へ向けてますか? aaaabbb-xxxxxxxxxx.ap-northeast-x.elb.amazonaws.com. みたいに設定する必要があるはずですが。その辺の情報が抜けているようですので、設定済みであればそれも一応書いておくといいとは思いました。
trigger

2021/05/22 06:36

はい、Aレコードの値/トラフィックのルーティング先がロードバランサーになっています。 ご指摘ありがとうございます!
yu_1985

2021/05/22 11:28

ターゲットグループの設定を貼ってください。 また、http://〜でアクセスしていないことを念の為確認してください。 あと、EC2インスタンス上のアクセスログを確認してください。 EC2上で動かしているアプリとミドルウェアの設定について何もないのでそちらも貼ってください。
trigger

2021/05/22 11:32

ご指摘ありがとうございます。 大変申し訳無いのですが、httpでアクセスしていたようです。。。 ドメインでアクセスすれば勝手にhttpsでアクセスされるものと思い込んでおりました。 https://ドメインで指定すれば正常にアクセスできました。 ありがとうございます。
guest

回答2

0

ベストアンサー

httpでアクセスしてもhttpsで表示するようにするには、http→httpsのリダイレクトをすればいいです。
今回はALBでhttpのリスナーを設定していないにも関わらずhttpでアクセスしていたのが原因ですね。

調べるとサーバ側でリダイレクトさせてる例が結構引っかかりますが、ALBを使っているならALBだけでリダイレクトが出来ます。
この方法のメリットは、サーバ側ではHTTPだけ受け付けることができればよく、サーバ上に証明書をわざわざ置かなくて良いことです。

Application Load Balancer を使い HTTP リクエストを HTTPS にリダイレクトするにはどうすればよいですか?
[新機能]Webサーバでの実装不要!ALBだけでリダイレクト出来るようになりました!

もちろんALB側のセキュリティグループでhttpのポートを許可するのもお忘れなく。

投稿2021/05/22 14:14

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trigger

2021/05/24 03:26

ありがとうございます! 無事HTTPをリダイレクトしてHTTPSで接続することができました。
guest

0

修正依頼をしていただき、解決しました。

ドメインを設定し、httpsでリッスンしていたにも関わらず、httpでアクセスしていました。

投稿2021/05/22 11:34

trigger

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2021/05/22 14:12

リスナーもそうですが、セキュリティグループでも80を許可していないのでそちらでも弾かれています。
trigger

2021/05/24 03:27

ありがとうございます! リスナーとセキュリティグループを見直します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問