AWS学習ステップを使用した構築のお勉強③

# はじめに
そういえば基本的なサーバの仕組みとか構築って知識だけあってやったことないなあと思いました。。（上の方に言うと驚かれますがマジでオンプレ触ったことないです）

そこで見つけたル〇コンさん。（Twitter[こちら]("https://twitter.com/RubiconLink" "ルビコンさんのTwitterプロフィール")）
直接お会いしたことないので名前はお伏せしますが、おそらく素晴らしいお方。
しかもなんと、AWS学習ステップ大全 AWS構成図集というのを無料で配布しているではありませんか！！
これは活用するしかない！！ということでAWS構成図集をお借りしてお勉強していきます！！

# AWS学習ステップ大全 AWS構成図集とは
こんな方にオススメだそうです。今の僕にピッタリ。
* AWSを勉強したいので、オススメの学習ステップを教えて欲しい
* AWSはEC2/RDS/ELBなど多すぎて、どれを組み合わせたらいいか分からない
* 簡単な構成から難しい構成まで、難易度別に構成図を知りたい
* HTTPSや独自ドメインなどは実装しつつ、なるべくお金がかからない構成が知りたい
* 転職応募時に「未経験なのにレベル高い」と刺さるレベルの構成を知りたい
* ポートフォリオと一緒に提出する構成図の参考例が知りたい
* 学んだスキルが現場で通用するのか＝実際の現場ではどういう構成が多いのか知りたい

# 今回は③をやるよ
ALBとACMを追加してセキュリティ強化と可用性の向上をします！！
だいぶそれっぽくなってきましたね、
ALBってほっといたら意外と金かかる時あるからパッとやってパッと消したいところ笑笑
NATも地味にたけぇからPublicサブネットのみでやりまーす。

# VPC追加
ALBで負荷分散するためにEC2を別サブネットにもう1つ立てる必要がありますね。
AWS構成図には書かれてないから、全く知らない人はつまずくかもね。
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/62e89ec5-7eee-7f3f-1955-a8a51b63caaf.png)

ルートテーブルもちゃんとInternet Gatewayに届くやつを付けましょう。意外と忘れるやつ。
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/b8e44f69-54f6-4b8d-2814-e104b411a20f.png)

# EC2をコピーする
同じEC2を何個も立てたいときは大体AMIを作って増殖していきます。
前回作成したEC2を選択してAMIを作成します。
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/128208c6-dc1e-38f7-827f-6b4215358773.png)

新しくインスタンスを立てる際に、先ほど作成したAMIを選択します。
サブネットは今回新規に作成した方。セキュリティグループは前回同様です。
![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/27e2f9e3-97ab-6198-39ea-5c6786a273c6.png)

# 疎通確認
IP打ち込みましょう。
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/5661fbfc-dfe3-a8e6-b261-c8f581077193.png)

## ちょっと変えとく
負荷分散ちゃんとされてるか確認するためにもindex.htmlの中身ちょっと変えました。
![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/7e0e799c-01d3-b56d-d8e3-373ed6804fe0.png)

# SSL/TLS通信のための証明書取得
ACMで無料の証明書をいただきます。
少し時間がかかるので先にやっておきます。

ドメイン名はサブドメインも使えるように*.example.comみたいな感じのも入れとくと良いです。
リクエストしたらおとなしく待ちましょう。
![7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/5d92c931-a79d-2865-1a71-fe9908f34283.png)

## Route53でレコード作成
Httpsようにレコード作成します。
ACMの画面「Route53でレコードを作成」から作成できます。べんり。
![9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/555700ea-bf61-f0f1-dee4-04302cea6d0f.png)

# ALBの作成
1. ターゲットグループで、作成した2台のEC2を対象にする。
1. ALB用のセキュリティグループを作成する
1. ALBの作成
の順番です。
## ターゲットグループの作成
作成した2台のEC2を選択して「Include as pending below」をクリックします。（ここだけなぜ英語）
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/67ea9361-d09e-5945-d795-7cf543220942.png)

## セキュリティグループを作成
インバウンドに自身のPCからのHTTP通信を許可します。
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/fe4541dd-b0c2-df9c-3381-4ecf0f872bcd.png)

## EC2側でALBからの通信を許可する
EC2のセキュリティグループのインバウンドにALBからの通信を許可します。
ICMPが許可されているのはping打ちたかったからですね、
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/1ea5ce91-acd8-40d7-2092-441050aa3951.png)

## ALBの作成
この感じで作成します。
セキュリティグループはミスってます。後で付け替えました笑笑
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/82d695f0-0dc5-42b7-9b16-dfd41b07726c.png)

## 疎通確認
ALBのDNSをコピって打ち込みます。
F5連打すると負荷分散されているのがわかると思います。
（ここでindex.htmlを書き換えた効果が出てきます）
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/e7e76564-802d-f2ac-89a1-dea1f3343f4b.png)
![16.2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/3f387125-19c9-6095-1cfd-0d7409717af5.png)

## ALBに証明書を設定
Https通信するためにリスナーを新規に追加します。
プロトコルはHttps
ターゲットグループはさっき作ったやつ
証明書はさっきリクエストしたやつ
を選択してください。
![17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/113c3d35-b00f-0530-6b0c-7001f3340deb.png)

## Route53にALBのDNSを紐づける
ドメイン名でALBに接続できるようにします。
Webサイトっぽくなってきましたね
![19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/084f7884-d189-a2b3-5ed5-6166c05625b1.png)

## ALBのセキュリティグループを更新
Httpsでの通信を許可します。
このタイミングでhttpの方を消してしまっても構いません。僕は後で消します。
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/97ccee24-473d-8f66-61f1-b4556eae9e19.png)

# Https通信での疎通確認
でけた～
かなりWebサイトぽくなりましたねええ。負荷分散もしっかりされています。
![21.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/8110d8bc-b6ae-8668-7f4e-be5a325b200a.png)
![23.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3138153/cc6d7603-802a-0318-1364-aa1197561c7f.png)

# おわり
Https通信と負荷分散を実現することができました！！
だいぶ実用性が出てきましたね！！

今回つまずきそうな部分はセキュリティグループの設定忘れですかね。
繋がらない～ってなったらとりあえずセキュリティグループ見直せば良いと思います。