LoginSignup
6
14

More than 5 years have passed since last update.

ALBでのEC2へのリクエストルーティングの設定

Last updated at Posted at 2016-10-31

Classic Load Balancer(以下CLB)からApplication Load Balancer(以下ALB)へ移行しようと思ったところ、EC2へのリクエストルーティングの設定で少し詰まったので投稿します。

設定したいこととしては下記の2点でした。

  • HTTP(80番)接続されたら、EC2にも80番で接続する。
  • HTTPS(443番)接続されたら、EC2には8080番で接続する。

なお、EC2内のApacheの設定で、HTTP(80番)接続されたらHTTPSへリダイレクト、
HTTPS(8080番)接続されたらサイトを表示、というように設定してあります。

詰まったところ

詰まった点は、ALBからEC2へのリクエスト時のリスナーをどこで設定するかわからなくなってしまったことでした。

CLBで設定していた時はこういう状態でした。
スクリーンショット 2016-10-31 8.08.42.png

CLBでは、ロードバランサーとEC2へのリクエストのプロトコルとポート番号を同一画面で設定できます。

が、ALBではロードバランサーへのリクエスト時のプロトコル・ポート番号に対してターゲットグループを設定するようになっていたため、別画面で設定する情報になっていました。
スクリーンショット 2016-10-31 8.30.46.png

別画面だったので、どこでEC2へのルーティングを設定するのかすぐにわからず詰まってしまいました。

改めて考えれば、ALB → ターゲットグループ → EC2という流れでリクエストされていくので、ターゲットグループ上で設定しないといけないと気づきました。

(ターゲットグループ作成時にリクエストルーティングの設定が出てきていたのですが、ついALB側と同じようにHTTP・80番HTTPS・443番を設定してしまっていました。)

やったこと

ALBからEC2へのリクエスト時のリスナーの設定でやったことは下記の2つです。

  • ターゲットグループをHTTPHTTPS用にそれぞれ作る
  • ターゲットグループ内のEC2にどのポートで接続するかを設定する

スクリーンショット 2016-10-31 8.20.34.png

CLBで設定したリスナー1行ごとにターゲットグループが必要になるようなイメージですね。
この設定後、ターゲットグループ内のヘルスチェックが無事に通りました。

その他

ALBとAuto Scaling Group

今回の詰まった件とは直結しないのですが、今までCLBとAuto Scaling Group(以下ASG)を紐付けていたので、同じようにALBでもASGを紐付けようと思ってマネジメントコンソールを見たのですが、特に設定できる部分がありませんでした。(2016/10/31現在)

そのため、ALBはターゲットグループ(=EC2インスタンス単位)との紐付けしかできないのかと思っていました。

ですが、下記の記事のようにCLIで登録できましたので、追々マネジメントコンソール上でも扱えるようになるのでしょうか。
マネジメントコンソールでも確認や操作ができるようになるとさらに便利そうですね。

(2016/10/31追記)
すみません、ASG側の画面で紐付けるターゲットグループを設定する箇所がありました。
ターゲットグループ側ではなく、ASG側からならマネジメントコンソールを使って紐付けられます。

移行ツール

上記の記事の通りにやってみました。

ELB名・VPC・Subnet・Security Groupを引き継いだALBが1コマンドで出来上がります。
既存のCLBからALBへ移行する際は本当に便利ですね。

6
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
14