[無料] AWS EC2 + RDS + Flask でWebアプリを作り HTTPS 化する [その10: ロードバランサー設定]

[その9](https://qiita.com/nozomiyamada/items/d0e756a3492fe6c7f601) の続きです。ロードバランサーを設定します。

## ロードバランサーとは

一言で言うと、負荷分散装置です。ググれば記事がたくさん出てくるので細かい解説はそっちにお任せします。これを前におくことで大量のリクエストを複数のサーバーに振り分けて処理できます。まあ今作っているしょーもないアプリにこんな機能はなくてもいいのですが、これをEC2インスタンスの前に設置することで、発行済みのSSL証明書を割り当てることができるようになります。別にこんなものなくてもいいじゃないか、と思われるかもしれませんが、**AWSで発行したSSL証明書をEC2に直接組み込むことはできません**。ですので、このロードバランサーを設置し、そこに証明書を組み込むという手順をとります。

ちなみに最終的な構成はこんな感じになってます。ロードバランサーとEC2間はHTTPですが、クライアントとロードバランサーはHTTPSになっています。
![Screen Shot 2563-12-14 at 13.50.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/adedb77c-65b5-bfab-51c8-4805c2f045b0.png)

## ロードバランサー設置とSSL証明書の割り当て

EC2 ダッシュボードから、**Load balancers** に入ります。
![Screen Shot 2563-12-14 at 15.49.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/cd46c270-86d8-8ef0-47d9-a87fdce76842.png)
**Create Load Balancer** をクリックします。
![Screen Shot 2563-12-14 at 15.54.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/7d068ba0-b661-1295-edd5-d5e7e9bf47d6.png)
一番左の **Application Load Balancer** を選びます。真ん中の Network Load Balancer の説明は毎秒100万リクエストを処理できるとか書いてありますが、明らかに不要ですね。
![Screen Shot 2563-12-14 at 15.55.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/83d69761-f342-791c-d1ef-d998969ac619.png)
名前はわかりやすいように好きに付けて下さい。
![Screen Shot 2563-12-14 at 15.58.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/18224f2c-4f37-30ef-72f9-183bc3b7fef3.png)
**Listeners** には初期設定の HTTP に加え、HTTPS も追加して下さい。
![Screen Shot 2563-12-14 at 15.59.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/b034081f-9b0b-742b-fdab-875cedcf98a0.png)
**Availability Zones** から最低2つゾーンを選び、右下の **Next: Configure Security Settings** から次に進みます。
![Screen Shot 2563-12-14 at 16.00.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/4e05710e-ffdf-4e14-5bdb-b4bb4c72d395.png)
次のページで証明書の選択をします。**Choose a certificate from ACM** を選択します。証明書が発行済みであれば、**Certificate name** のところに自動で出てくるかと思います。**Next: Configure Security Groups** へ進みます。
![Screen Shot 2563-12-14 at 16.04.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/55049040-308c-a09e-3d5a-6b50bbd1487c.png)
作成済みのセキュリティグループを選択し、**Next: Configure Routing** へ進みます。
![Screen Shot 2563-12-14 at 16.10.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/5bd28987-4cc4-29a9-baa2-d375f711712c.png)
ここからロードバランサーがどこと接続するかを設定していきます。**Target group** は **New target group**, **Instance** **HTTP** を選びます。グループの名前は自由に付けて下さい。**Next: Register Targets** へ進みます。
![Screen Shot 2563-12-14 at 16.14.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/c2e5344f-9848-c514-cb29-0241f2c286ce.png)
下側の **Instance** から起動中のEC2インスタンスを選択し、**Add to registered** を押すと上側の **Registered targets** に登録されます。これで設定完了です。右下の **Review** を押して確認画面で **Create** すれば完了です。
![Screen Shot 2563-12-14 at 16.16.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/3555dc37-e8ce-d8ba-e926-50cd25813e8d.png)
![Screen Shot 2563-12-14 at 16.19.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/f35a9f43-66c6-494e-c7dc-3cfc37fac9b7.png)

[その11](https://qiita.com/nozomiyamada/items/c759ea24680758f6d551) に続きます。次回で完成です。