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

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

ただいまの
回答率

88.09%

AWSでロードバランサの設定および確認方法について

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,923

score 80

こんにちは、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サーバーにはアクセスできないと思っていましたが、何の設定が間違っているかもうわからず質問しました

よろしくお願いします

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

何点か確認させてください。
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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/10 17:12

    ありがとうございます。

    >1) ロードバランサー。。略。。。ALBかCLBだと思いますがどちらを選択されたのでしょうか?

    ALBです。

    >2) ロードバランサーのテストですが、。。。略。。。のパブリックDNSに対してでしょうか?


    EC2インスタンスに設定してある「IPv4パブリックIP」です。
    なにやらこの時点で自分がものすごい間違いを犯しているような気がしてきました
    申し訳ありません、ロードバランサーのパブリックDNSとは何でしょうか?


    >3) 質問文中にある次の「80番ポートを。。。略。。。、レスポンスが返ってくるという意味であれば、そのときのHTTPステータスはなんですか?

    200です。

    キャンセル

  • 2018/11/10 20:03

    コメントありがとうございます。ロードバランサーのパブリックDNSについて回答欄に追記しましたのでご確認ください。

    キャンセル

  • 2018/11/11 10:42

    なるほどありがとうございます。
    図で示していただいたおかげで大変助かりました。

    まず、80番ポートでの接続の確認の件ですが、
     ①ロードバランサ側のパブリックDNSで接続が確認できた
     ②ロードバランサ側のセキュリティグループから80番ポートを削除すると接続できない事が確認できた
     ③ロードバランサのリスナから80番ポートを削除すると接続できない事が確認できた
     ④上記①~③のあいだ、EC2インスタンスは直打ちで接続可能
      ※自分は①~③のあいだ、④の方法で確認を行おうとしていた。

    と言う事で一旦、ロードバランサ自身は動いていいる事は確認できたのかと思います。

    ターゲットのインスタンスステータスがhealthyかどうか?については以下でした。
    検証には、以下の環境を使用しています。
     (1)ロードバランサ側のセキュリティグループは以下の設定です
      ・INBOUNDは80番ポート、OUTBOUNDは全てを開けています
     (2)ロードバランサ側のリスナは80番ポートをリスンしています

     ①のケースではhealthy
     ②のケースではhealthy
     ③のケースではunused

    ③のケースではロードバランサのリスナ設定が無いのでunusedなのかと思い、とりあえず443をリスンするようにしたところ、一応healthyにはなりました。

    ちなみに、EC2側のセキュリティグループから80番ポートを削除すると、unhealthyになりますし、ロードバランサ側のOUTBOUNDをなしにすると同じくunhealthyになります。

    思い返してみれば、開発においてもステージング環境などでロードバランサで振り分けているけど、テストの都合上、実際のサーバーのIP直打ちで確認することもあるので、まず自分の確認方法がまちがっていたんだなと思いました。

    キャンセル

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

  • ただいまの回答率 88.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る