0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2のロードバランシングによるポート管理

0
Posted at

見えたらダメなポート番号とかが見えてたら教えてください

背景

わこにご飯を決めてもらおうのポート管理、SSL証明書発行などを Apache でしてたつもりが、SSL証明書が切れて全てやり直すことになったので新しく AWS EC2 内のロードバランシング機能を使った

リソースマップ

image.png

外部から HTTPS とか HTTP からたどって EC2インスタンスに届くって訳ですよ

ロードバランシングとは

本来はサーバーが重くなり過ぎないようにポート制御するための機能でもあるが、今回のWebサイトではその辺は無視していきますよ。

知っておきたい要素として、「ロードバランサー」「ターゲットグループ」がある。まずは「ロードバランサー」から見ていこう。

1. ロードバランサー

今回で言うと、ネットワークからわこにご飯を決めてもらうための一つ目の扉。

まずリスナー。プロトコルを決め、ポートを開け、次にどこターゲットグループに行くかを設定する。今回で言うとHTTPとHTTPSの二つがリスナーである。ポート番号は基本好きに設定してもよいが、実際やってみると結局 HTTP は80にした方がよい。80以外は分かりにくいだけ。

あと、ここではもちろんセキュリティの設定もできて、ファイアウォール(Webが安全になるポート制御)やらを設定できる。

ルールを設定してポート制御とかできるらしいけど、ここでは割愛。

2. ターゲットグループ

みんなをどこに連れていくかの分岐点。わこにご飯を決めてもらう二つ目の扉。今回は集めたインターネットのみんなをEC2インスタンスに連れていく。

実装

EC2に近い側からやった方がやりやすい気がするのでターゲットグループから作り上げていきます

1. ターゲットグループ

image.png

図左側赤丸内のターゲットグループを選択し、ターゲットグループを作成する。

 
image.png

このプロトコル選択が罠。HTTPを選んだ方が無難。このWebサイトにおいてはHTTPSを実装するのはロードバランサーの役割。仮にここでHTTPSにしたいのであれば、EC2側もHTTPSにする必要がある。かなり大変なのでHTTPにしましょう。ポートは無難に80で。他の設定はデフォルトで大丈夫。次に行こう。

 
image.png

ここのインスタンスのポートをきっちり設定する必要がある。私の場合はpython Flaskで設定したポート番号である。ここを設定したらターゲットグループは完成。

2.セキュリティグループ

ロードバランサーを作る前にロードバランサー用のセキュリティグループを作成しないといけない。EC2に使ったセキュリティグループを使うと、Webサイトは作れるし動くけど、何より安全性がだめ(らしい)。
 
image.png

ここからセキュリティグループを作成。名前とかを好きに設定できる。

 

image.png

インバウンドルールは難しいが設定しないといけない。ここでのインバウンドルールはロードバランサーの開けるポートを限定している雰囲気。ロードバランサーでも似たような設定をするが何が違うのかよくわからない。雰囲気で2回設定しよう。
今回は遊び心でカスタムTCPの7777を開けた。のちにロードバランサーでHTTPとして設定する。とにかく開けておく。
アウトバウンドルールはデフォルトで大丈夫
他もデフォルトで大丈夫

3. SSL/TLS 証明書

HTTPSで接続したい人はこの証明書をリクエストしないといけない。
 
 
image.png

まずはここから証明書をリクエストする
 
 
image.png

パブリック証明書で大丈夫
 
 
image.png

ドメインを設定しよう
そしたらあとはリクエストして待つだけ。割とすぐ発行できる。

4. ロードバランサー

image.png

次はロードバランサーを作成。

 
image.png

今回はWebなので一番左のApplication Load Balancerを選択。

 
image.png

ここが微罠。EC2で選択しているアベイラビリティーゾーンを選択するべし。

 
image.png

ここでさっき作ったセキュリティグループを選択。

 
image.png

リスナーを設定する。セキュリティグループ作ったときにいったん開けたポート7777を設定する。ターゲットグループはさっき作ったターゲットグループ。

 
image.png

HTTPSも設定する。どんどん点と点が繋がって気持ちよくなってきた。

 
image.png

HTTPSのSSL/TLSサーバー証明書の設定。さっき作ったやつを選んでおけばおけ。
これで他はデフォルトで設定し完成。
があと一つやっておかないといけないことがある。

5. Route 53 によるロードバランサーの設定

image.png

ホストゾーンから自分のWebドメインを選択。

image.png

Aタイプのレコードを選択して、レコードを編集

image.png

エイリアスをオンにして
「Application Load Balancer と Classic Load Balancer へのエイリアス」
を選択

 
image.png

EC2のリージョン先を選び、さっき作ったロードバランサーを選択し、保存

これにて完成。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?