1.はじめに

最近、ALBはターゲットにIPAddressを指定可能だということを知った。(今更..)
IPが指定可能なら他のVPC内のリソースも負荷分散出来るということだ。
今回、早速それを実践していこうと思う。

2.概要 & 目標

下記、本ハンズオンの流れ、および、目標である。
"2つのLightsailインスタンスを構築し、VPC(ALB側)とVPC(Lightsail側)をピアリング接続をして、ユーザーからLightsailへの通信をALBを使用して負荷分散を行う。"

※今回、写真を用いていない手順があるが、それらに関しては調べればすぐやり方がでてくるレベルのものであり、写真は不要と判断しました。

2-1 Question

Q.なぜLightsailなのか?
A.なんとなくだ。

Q.LightsailのLBを使ったらいいじゃん。
A.あれ意外と高いのだ..

3.構成

構成を以下のとおり紹介する。
3-1.構成図
3-2.使用サービス

3-1構成図

今回構築する構成図はこちらになる。
aws2.png
少し不格好なのは許して欲しい。(絵心が無いのだ..)

3-2.使用サービス

ハンズオンでは以下のサービスを利用する。

・AWS ELB
・AWS Lightsail
・AWS VPC Peering
・Default VPC(セット)

なんとコスパの良いハンズオンなのだろう。

4.ハンズオン①Lightsailインスタンスの構築

■手順①:Lightsailコンソールを開く
AWSの検索窓で"Lightsail"と入力する。
サービスの下にLightsailがでてきるはずなのでそちらをクリックしてLightsailコンソールを開く。

■手順②:AZ-aのインスタンスを構築
ホームコンソールのインスタンスタブをクリックする。
真ん中右上に【インスタンスの作成】ボタンがあると思うのでそちらをクリック。

下記のような作成画面が表示される。
赤枠で囲ってあるリンクをクリックしてロケーションを設定する。
図2.png
選択するロケーションは、
リージョン:東京
AZ:ゾーンA
なので間違えないようにしよう。
スクリーンショット (25).png
イメージを選択する。
画像ではwordpressになっているが、本ハンズオンでは以下のイメージで設計して欲しい。
プラットフォーム:Linux/Unix
設計図:Amazon Linux2
スクリーンショット (24).png
続いて、オプションの選択だ。
起動スクリプトの追加"を選択し、下記コードを貼り付けて欲しい。

#!/bin/bash
#apacheをインストール
yum install -y httpd mariadb-server
#apacheを起動
systemctl start httpd
#apacheを自動起動にする
systemctl enable httpd
#テストページを作成
#AZがCの方ではAZ-aをAZ-cに変える
echo "Web server AZ-a" > /var/www/html/index.html  

"スクリーンショット (25).png
後は、プラン(すぐ消すから無料のものを選んでね)とリソース名(AZごとにわかりやすい名前を設定しよう)を設定。
そして、インスタンスの作成をクリックして欲しい。

■手順③:AZ-cのインスタンスを作成
手順②と同様の手順でもう一つインスタンスを作成して欲しい。
AZが異なるので下記設定差異があることを絶対に忘れないで欲しい。
・AZの選択:"AZ-c"を選択。
・起動スクリプト:htmlで表示させる文字列をAZ-aからAZ-cに書き換え。

ここまでで2つのLightsailインスタンスが作成されていることだろう。
それぞれのPublicIPAddressをコピーしてブラウザに打ち込んで欲しい。
起動スクリプトで設定した文字列が出力されているテストページが表示されるはずだ。

5.ハンズオン②VPC Peeringの設定

■手順①:LightsailのPeering接続を有効化する
Lightsailコンソール画面右上の"アカウント"を選択する。
プルダウンがでてくるので"アカウント"を選択する。
図3.png
アドバンスドタブを選択する。
下にスクロールして、"VPC ピア接続"の東京リージョンのピア接続の有効化をクリックする。
図4.png
なんとこれだけでピアリング接続が完了した。(早い。。)
次の手順で実際に接続が作成されているのか確認してみよう。

■手順②:VPC Peering接続の確認
LightsailからAWSへ戻る。
検索窓でVPCと入力。
サービスの下にVPCと表示されるのでクリックしてVPCコンソールを開く。
開いたら左のタブから"ピアリング接続"を選択してVPC Peeringコンソール画面を開く。
すると先程の手順の結果作成されたピアリング接続がせきていることが確認できる。
※人によってはネットワーク周りの設定をいじる必要があるが(セキュリティグループの設定等..)
基本的な事故、その手順等については省略する。
スクリーンショット (24).png

6.ALBの作成

■手順①:ALBコンソールを開く
検索窓でEC2と入力。
サービスの下にEC2と表示されるのでクリックしてEC2コンソールを開く。
左のタブから”ロードバランサー”を選択する。
コンソール左上にある"ロードバランサーの作成をクリックする"
LBの種類は"Application Load Balancer"を選択する。

■手順②:ALBの作成
・ロードバランサーの設定
ここでは基本的な設定をしていただく。

<基本的な設定>
名前 → 好きな名前を付けてください。
スキーム → インターネット向け
ipタイプ → ipv4

<アベイラリビティゾーン>
VPC → デフォルトVPC
AZ → a と c を選択
スクリーンショット (25).png
スクリーンショット (25).png

・セキュリティの設定
セキュリティ関係で警告がでていますが、無視して次のステップへ進む。

・セキュリティグループの設定
80ポートを開かせるようにポートを設定する。

・ルーティングの設定
ここではターゲットグループを設定する。

ターゲットグループ → 新しいターゲットグループ
名前 → 好きな名前
ターゲットの種類 → IP ※はじまりにで言ってたのはこれ!
スクリーンショット (27).png

・ターゲットの登録
LightsailインスタンスのプライベートIPを登録する。
スクリーンショット (25).png

・確認
最後に手順通り設定できているか確認して、問題無ければ作成をクリックする。

7.構成通り負荷分散できているか確認

これで今回のハンズオンは完了したので、最後にALBのDNS名をコピーしてブラウザに貼り付ける。
無事テストページが表示されるはず。
F5を連打してみると無事ロード・バランシングできていることが確認できる。

8.まとめ

ハンズオン通り行えば最後まで無事完走できる。
ALBは日々のアップデートにより汎用性の高いものになってきた。
今後は更に様々なリソースを負荷分散していきたいと思う。
では以上で失礼する。

この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com