プレビュー
ネットワークトラフィック振り分けの行うELBですが、取得したドメインでの利用も可能です。今回はEC2でWebサーバを構築しELBでトラフィックを振り分けつつ取得したドメインを割り当ててみましょう。
【ハンズオン】取得したドメインをELBに割当て使用してみる。

今回のハンズオンの構成図は以下の内容とします。

またプライベートサブネット内のインスタンス操作はSystems Managerのセッションマネージャーで行います。
先に学んだVPCやIAMの知識も必要になります。
上記の構成図内容ですが、今まで学んだ技術も必要になっています。
事前にVPCの作成やIAMロールの作成も必要になりますのでご注意ください。
【ハンズオン:01】VPCなどネットワーク基盤を準備する
まずは事前にネットワーク基盤の準備が必要です。過去の教材を確認しながら以下の構成を準備してください。

注意すべき点は、PrivateSubnetの通信経路でNAT Gatwayを準備している事です。(今回はMultiAZ構成ですがNAT Gatewayは1つのみ準備で結構です)
上記ネットワーク基盤が準備できたら次のステップに進んでください。
参考記事:17.VPCの機能::NATゲートウェイの利用について
【ハンズオン:02】EC2に付与するIAMロールを準備する
上記のネットワーク構成ですと、プライベートサブネット内のEC2インスタンスの操作がSSH接続では行えません。よって操作するためにSystems Managerのセッションマネージャーを利用します。

EC2がセッションマネージャーを利用するためにIAMロールを準備してください。
参考記事:21.IAMロール実習①
【ハンズオン:03】プライベートサブネット内にEC2をそれぞれ設置する
上記IAMロールの準備が完了しましたら、各プライベートサブネット内にAmazon Linux2インスタンスをそれぞれ設置します。

ネットワーク:作成したVPCを指定
サブネット:プライベートサブネットを指定
自動割当パブリックIP:無効
IAMロール:セッションマネージャーを使用するために作成したIAMロールを指定
なおタグ指定ではサーバ2台を区別しやすいように、Web01、Web02と名付けてください。


次にセキュリティグループですが、Webアクセスをすべての箇所から接続できるように指定してください。
タイプ:HTTP
ソース:カスタム、0.0.0.0/0

キーペアは無しで作成してください。

それぞれのプライベートサブネットにEC2インスタンスを設置すれば次に進みます(合計2台)

【ハンズオン:04】セッションマネージャーにてEC2インスタンスを操作する。
SSH接続が出来ない状況ですが、Systems ManagerのセッションマネージャにてEC2インスタンスが操作できます。マネージメントコンソールよりSystems Managerを選択します。

左メニューよりセッションマネージャーを選択します。

セッションの開始ボタンを押します。

操作を行いたいインスタンスを選択しセッションを開始します。

コマンド入力画面になります。今回はWebサーバソフトをインストールおよび起動していきます。
bash
sudo yum -y install httpd
sudo systemctl enable httpd
sudo systemctl start httpd

次にWebサーバを識別するように簡易的なファイルを準備し、ドキュメントルートに設置します。
echo Web01 > ~/index.html
sudo mv ~/index.html /var/www/html

ここまでで1台分のWebサーバの設定は終わりです。Exitで終了し2台目のWebサーバも同様に作業を行ってください。
2台目のWebサーバの識別
Webサーバを識別するための簡易的なファイルは、2台目だとコマンドは変わります。
echo Web02 > ~/index.html
sudo mv ~/index.html /var/www/html
【ハンズオン:05】ELBを作成する
いよいよ準備が出来ました。ここからELBを作成していきます。ELBはEC2のマネージメントコンソール画面より作成ができます。

左メニューよりロードバランサーを選択します。

ロードバランサーの作成ボタンを押します。

今回はWebアクセス用になりますので、Application Load Balancerを選択します。

ロードバランサーの名前を入力します。

次にELBを設置するVPCやサブネットを選択します。今回は作成したVPC内のパブリックサブネットを選択します。

設置サブネットを間違えないでください。
プライベートサブネットを選択すると間違いです。
Webからのアクセスを受け入れるサブネットになりますのでパブリックサブネットを選択です。
次の手順に進みます。

httpsを使ってないため注意表示されます。

後のハンズオンでhttps設定を行いますので今回はそのまま次の手順に進みます。

EC2に割り当てたセキュリティグループとは別に新しくELB用のセキュリティグループを作成します。
タイプ:HTTP
ソース:カスタム、0.0.0.0/0

なぜEC2用のセキュリティグループを指定しないのか?
あとあとEC2用のセキュリティグループは設定変更を行います。よって今回はELB用のセキュリティグループを別途作成しています。
次の手順に進みます。

次はELBのトラフィックを転送するターゲットの設定です。ターゲット名を入力します。ターゲットの種類はインスタンスです。

ヘルスチェックのパスでは先程作成したindex.htmlファイルを指定します。

次の手順に進みます。

ターゲット候補として先程作成したEC2インスタンス2台があります。選択し登録済に追加しましょう。

ターゲットが登録されます。

次の手順に進みます。

確認画面が出ます。これでOKならば作成しましょう!


ELBの作成が完了します。

ELB作成完了後は少し待つ必要があります。
ELB作成後、すぐには利用が出来ません。利用可能になるまで若干待つ必要がありますのでお気をつけください。
【ハンズオン:06】ELBの動作確認をする。
作成したELBを選択し詳細設定を確認するとDNS名が確認できます。

DNS名をコピーします。

ブラウザでコピーしたDNS名をURL欄に貼り付けてアクセスしてみます。

何度かリロードするとコンテンツ内容が変わります。

【ハンズオン:07】Route53でELBをレコード登録する
前のハンズオンと同様に作成したELBに独自ドメインを割り当てしてみましょう(Route53+ELB)
Route53を選択します。

登録したホストゾーンがあるのでクリックします。

ホストゾーン一覧画面より登録したホストゾーンをクリックします。

ELB用のレコードを作成します。レコードの作成ボタンを押します。

今回もクイック作成形式でレコード作成を行いましょう。レコード名の入力はなしで、エイリアスのボタンをONにします。

リソースとしてはApplication Load Balancerを選択します。また作成したリージョンを選択すると先程作成したELBが選択できます。

レコードを作成ボタンを押します。

レコードの作成が終わります。

【ハンズオン:08】改めてELBの動作確認をする。(独自ドメイン指定)
改めてブラウザで動作確認をします。今回はホスト名無しのドメイン名でブラウザへアクセスしてみます。

何度かアクセスを行いコンテンツが切り替わるか確認します。

正常にコンテンツが切り替われば、設定は完了です。
まとめ
以上により、ELBを作成しRoute53でレコード登録したハンズオンとなります。なお、正しくコンテンツが表示できない場合には以下の箇所をチェックしてみてください。
- VPC構成(インターネットゲートウェイやサブネット、ルーティング情報)
- セキュリティグループの設定(EC2やELBそれぞれのセキュリティグループ)
- ELBの設置サブネットの場所(パブリックサブネットに設置が必須)
- ターゲットグループにインスタンスが登録されているか?
- ドメイン名を正しくブラウザで指定しているか?
設定したリソースはそのまま残してください
次のレッスンでそのまま使いますので、今回設定した各リソースはそのまま残してください。