質問: こんにちは、AWSで1台のEC2に対してロードバランサを設定してアクセスしたいと思っています。 理由としてはロードバランサにAWSで発行される証明書を設定するためです。 まずテストとして、ロードバランサ無しで80番ポートでEC2まで届くものを作成しようと思い以下のような構成にしました --- インターネットゲートウエイ:ig-test: vpcの項目にvpc-testを指定 --- ルートテーブル:route-test 以下を追加 * 送信先:0.0.0.0/0 * ターゲット:ig-test --- VPC:vpc-test ルートテーブルにroute-testが指定 --- サブネット 2つ作り、 * sb-public:vpc-testに紐付け -- アベイラビリティゾーン:ap-northeast-1b * sb-private:vpc-testに紐付け -- アベイラビリティゾーン:ap-northeast-1c --- EC2: セキュリティグループ:security-ec2 (80番ポートだけ開けてます) 80番ポート待ち受けのWebサーバを設定 --- この状態で、確認としてブラウザからhttp://EC2に設定書いてあるIPでアクセスし、普通にアクセスできたので次にロードバランサ を設定してみました --- ロードバランサ:lb-arcanum * リスナ:80,443をセット * スキーム:インターネット向け * アベイラビリティゾーン -- vpc: vac-test -- サブネットで作成したアベイラビリティゾーン -- セキュリティ設定の構成:以前に取っておいた証明書をセット -- セキュリティグループ、80, 443をリスンした、security-lb -- ターゲットグループ:作成したEC2に80番ポート --- この状態で確認方法として、同じくブラウザからEC2に設定されたIP直打ちでWEBサーバーにアクセスしています。 ロードバランサが正しくルーティングしているか確認のため、ロードバランサのセキュリティグループから 80番ポートを削除し、ブラウザからIP直打ちで80番ポートにアクセスし、返ってきます。(画面に表示される) 更に、ロードバランサのセキュリティグループの設定としてインバウンドもアウトバウンドも全て削除したものを設定しても同様になります また、ロードバランサ自身のリスン設定として80番ポートも削除してみても同じ結果となります。 予想としてロードバランサにリクエストが届いていないのかなと思っています。 AWSのコンソール上からはVPCの設定から対象のEC2まで追う事ができ、何かしらの設定が足りないのかなと思っています。 認識として、VPCに入ったきたリクエスト(80番ポート)はロードバランサに投げられ、先ほど80番ポートはセキュリティグループで閉じてますので、EC2のWEBサーバーにはアクセスできないと思っていましたが、何の設定が間違っているかもうわからず質問しました よろしくお願いします
回答: 何点か確認させてください。 1) ロードバランサーでSSLオフロードを行いたいということだと思いますので、ALBかCLBだと思いますがどちらを選択されたのでしょうか? 2) ロードバランサーのテストですが、ブラウザからアクセスしたのはロードバランサーのパブリックDNSに対してでしょうか? 3) 質問文中にある次の「80番ポートを削除し、ブラウザからIP直打ちで80番ポートにアクセスし、返ってきます。(画面に表示される)」の”返ってきます”とありますが、レスポンスが返ってくるという意味であれば、そのときのHTTPステータスはなんですか? 以上よろしくお願いいたします。 **追記** ALBのパブリックDNSは、下図のALBの説明タブで確認できるDNS名で確認できます。 ブラウザのアドレスバーにこのDNS名を指定すれば、ALBのターゲットに登録したEC2へアクセスが振り分けられると思います。 !図1 なお、ALBのターゲットに登録したインスタンスのステータスが"healthy"になっていることを確認してください。 (この図の例では、AZ-AとAZ-Cにそれぞれ1つずつインスタンスを登録しています。) !図2