1.はじめに
最近、ALBはターゲットにIPAddressを指定可能だということを知りました。(今更..)
IPが指定可能なら他のVPC内のリソースも負荷分散出来るということなはず..
今回、早速それを検証していこうと思います。
1.1 更新履歴
更新日 - 更新内容
2021年02月28日 - 画像の差し替え、文言の変更
2.概要 & 目標
本ハンズオンの流れ、および、目標を以下に記載します。
<流れ>
1:各AZでLightsailインスタンスを構築
2:VPC(ALB側)とVPC(Lightsail側)をピアリング接続
3:ユーザーからLightsailへの通信をALBを使用して負荷分散を行う。
<目標>
AWS ELBを使用してのLightsailインスタンスの冗長構成の実現。
2-1 Q&A
Q.なぜLightsailなのか?
A.筆者が個人的に好きなので..
Q.LightsailのLBを使ったらいいのでは?
A.LightsailのLBですが、信じられないくらい高いのです..
安く済ませる方法があるのなら安く済ましてしまおうということです。
3.構成
構成を以下に記載する。
3-1.構成図
3-2.使用サービス
3-1構成図
3-2.使用サービス
ハンズオンでは以下のサービスを使用します。
・AWS ELB
・AWS Lightsail
・AWS VPC Peering
・Default VPC(セット)
なんとコスパの良いハンズオンなのだろう。。
4.ハンズオン①Lightsailインスタンスの構築
■手順①:Lightsailコンソールを開く
AWSの検索窓で"Lightsail"と入力する。
サービスの下にLightsailがでてきるはずなのでそちらをクリックしてLightsailコンソールを開く。
■手順②:AZ-aのインスタンスを構築
ホームコンソールのインスタンスタブをクリックする。
真ん中右上に【インスタンスの作成】ボタンがあると思うのでそちらをクリック。
下記のような作成画面が表示される。
赤枠で囲ってあるリンクをクリックしてロケーションを設定する。
選択するロケーションは、
リージョン:東京
AZ:ゾーンA
なので間違えないようにしてください。
イメージの選択。
以下のイメージで設計。
プラットフォーム:Linux/Unix
設計図:Amazon Linux2
続いて、オプションの選択です。
起動スクリプトの追加"を選択し、下記コードを貼り付けてください。
#!/bin/bash
#apacheをインストール
yum install -y httpd
#apacheを起動
systemctl start httpd
#apacheを自動起動にする
systemctl enable httpd
#テストページを作成
#AZがCの方ではAZ-aをAZ-cに変える
echo "Web server AZ-a" > /var/www/html/index.html
"
後は、プラン(無料のものを選んでね)とリソース名(AZごとにわかりやすい名前を設定しよう)を設定。
そして、インスタンスの作成をクリック。
■手順③:AZ-cのインスタンスを作成
手順②と同様の手順で別AZにもう一つインスタンスを作成してください。
作成するにあたって下記対応を忘れないようにしましょう。
・AZの選択:"AZ-c"を選択。
・起動スクリプト:htmlで表示させる文字列をAZ-aからAZ-cに書き換え。
ここまでで2つのLightsailインスタンスが作成されていると思います。
それぞれのPublicIPAddressをコピーしてブラウザに打ち込んでください。
起動スクリプトで設定した文字列が出力されているテストページが表示されるはず。
5.ハンズオン②VPC Peeringの設定
■手順①:LightsailのPeering接続を有効化する
Lightsailコンソール画面右上の"アカウント"を選択する。
プルダウンがでてくるので"アカウント"を選択する。
アドバンスドタブを選択する。
下にスクロールして、"VPC ピア接続"の東京リージョンのピア接続の有効化をクリック。
なんとこれだけでピアリング接続が完了しました。(早い。。)
次の手順で実際に接続が作成されているのか確認してみましょう。
■手順②:VPC Peering接続の確認
LightsailからAWSへ戻る。
検索窓でVPCと入力。
サービスの下にVPCと表示されるのでクリックしてVPCコンソールを開く。
開いたら左のタブから"ピアリング接続"を選択してVPC Peeringコンソール画面を開く。
すると先程の手順の結果作成されたピアリング接続がせきていることが確認できる。
※人によってはネットワーク周りの設定をいじる必要があるが(セキュリティグループの設定等..)
6.ALBの作成
■手順①:ALBコンソールを開く
検索窓でEC2と入力。
サービスの下にEC2と表示されるのでクリックしてEC2コンソールを開く。
左のタブから”ロードバランサー”を選択。
コンソール左上にある"ロードバランサーの作成をクリック"
LBの種類は"Application Load Balancer"を選択する。
■手順②:ALBの作成
・ロードバランサーの設定
ここでは基本的な設定を行う。
<基本的な設定>
名前 → 好きな名前を付けてください。
スキーム → インターネット向け
ipタイプ → ipv4
<アベイラリビティゾーン>
VPC → デフォルトVPC
AZ → a と c を選択
・セキュリティの設定
セキュリティ関係で警告がでていますが、無視して次のステップへ進む。
・セキュリティグループの設定
80ポートを開かせるようにポートを設定する。
・ルーティングの設定
ここではターゲットグループを設定する。
ターゲットグループ → 新しいターゲットグループ
名前 → 好きな名前
ターゲットの種類 → IP ※はじまりにで言ってたのはこれ!
・ターゲットの登録
LightsailインスタンスのプライベートIPを選択。
・確認
最後に手順通り設定できているか確認して、問題無ければ作成をクリック。
7.構成通り負荷分散できているか確認
これで今回のハンズオンは完了したので、最後にALBのDNS名をコピーしてブラウザに貼り付ける。
無事テストページが表示されるはず。
F5を連打してみると無事ロード・バランシングできていることが確認できる。
8.まとめ
ハンズオン通り行えば最後まで無事完走できるはずです。
ALBは日々のアップデートにより汎用性の高いものになってきました。
今後は更に様々なリソースを負荷分散していきたいと思います。
では以上で失礼します。
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com