今回は、負荷分散や高可用性を実現する為に必要な、
Application Load Balancer(ALB)を構築していきます。
ALBが動作しているかを確認する為に、EC2インスタンスを2つ構築し、
それぞれに、表示内容の違うWebサイトを立ち上げます。
Webサイトに何度かアクセスし、内容の違う表示が出るかを見ていきます。
やりたいこと
- ALBの構築
- 負荷分散 / 高可用性の確認
AWS構成図
やることリスト
- VPC内に、2つPublic Subnetを構築
- 各Public Subnet 内に EC2インスタンス を構築
- 各EC2インスタンス内に、Webサイトを立ち上げ
- ALBを構築
- 負荷分散 / 高可用性を確認
料金の確認
AWSサービスには、無料で使えるサービスもありますが、当然有料サービスもあります。
本章では、分かる範囲でAWSサービスの料金について書こうと思いますが、私の理解不足で漏れていることもあります。
各サービスを使う際は、料金がどのくらい掛かるかを理解した上で、自己責任で利用ください。
ALB
以下は、ALB利用時のコストの掛かる項目と単価です。
※ 2023/8/1 記載
コスト項目 | 単価 | 備考 |
ALB起動時間 | 0.0243 USD / 時間 | |
LCU 時間 | 0.008 USD / 時間 | LCU:ロードバランサーキャパシティーユニット LCUは、以下4つのディメンジョンの内、最も高いディメンジョンに対して課金されます。 新しい接続: 1 秒あたりの新たに確立された接続の数。通常、接続ごとに多くのリクエストが送信されます。 アクティブ接続: 1 分あたりのアクティブな接続の数。 処理タイプ: ロードバランサーによって処理された HTTP(S) リクエストと応答のバイト数 (GB 単位)。 ルール評価: ロードバランサーにより処理されたルールの数とリクエストレートの積。最初に処理される 10 個のルールは無料 (ルール評価 = リクエスト率 * (処理されたルールの数 – 無料分の 10 個のルール))。 |
ALBの料金の詳細に関しては以下を参照下さい。
無料枠
- 750 時間/月のロードバランサー時間分を Classic load balancer と Application load balancer の間で共有
- 15 GB の Classic Load Balancer でのデータ処理
- 15 LCU の Application Load Balancer 使用
AWS の無料利用枠は、以下サイトを確認ください。
VPC構築
EC2インスタンスを、VPC上に構築する必要があります。
そこで、VPCを構築していない人は、以下記事を参照して Public Subnet を2つ構築してください。
EC2インスタンス構築
EC2インスタンス を構築していきましょう!
EC2インスタンス を構築していない人は、以下記事を参照して 各Public Subnet にそれぞれ EC2インスタンス を構築してください。
あと、負荷分散が動作しているかを確認する為に、Webサイト で表示する文言を、
ec2-waku-test-web-2側は、「Hello World! 2」
にしておきましょう。
ALB構築
ALBの設定は、EC2サービス内にあります。
AWSのコンソール画面にログインし、EC2サービスに遷移します。
設定~ターゲットグループ~
ターゲットグループとは、ALBでバランシングを行うターゲット(ECインスタンスなど)と、アクセスする為のポートの設定です。
ターゲットグループ > Create target group ボタンをクリックし、設定画面に遷移します。
Basic configuration
以降の設定はデフォルトで、Next ボタンを押します。
Available instances
バランシングを行うインスタンスにチェックを入れ、「Include as pending below」ボタンを押します。
ボタンを押すと、下の Review targets 項目に、インスタンスが追加されます。
「Create target group」ボタンを押すと、ターゲットグループが作成されます。
設定~ロードバランサ―~
ロードバランサ― > ロードバランサ―の作成 ボタンをクリックし、設定画面に遷移します。
ロードバランサータイプ
Application Load Balancer の 作成 ボタンをクリックします。
基本的な設定
ネットワークマッピング
セキュリティグループ
リスナーとルーティング
他設定はデフォルトで、「ロードバランサーの作成」ボタンを押すと、ロードバランサ―が作成されます。
負荷分散 / 高可用性確認
負荷分散の確認
先ほど作ったロードバランサ―のDNS名をブラウザに貼り付けて、サイトの内容を確認してみてください。
ブラウザの更新ボタンを押す度に表示内容が変わり、各EC2インスタンス に分散アクセスしていることが確認出来ます。
高可用性の確認
一つのEC2インスタンスに問題が発生しても、もう片方のEC2インスタンスにアクセスすることにより、サイトの表示が出続けるか確認しましょう。
どちらでもいいのでインスタンスを停止し、ブラウザのサイトの更新ボタンを何度か押してみてください。
稼働しているインスタンスのサイトの内容が表示され続けていることが確認出来ます。
ロードバランサ―の削除
ターゲットグループは存在していても料金は発生しないので、放置でもいいですが、
ロードバランサーは存在しているだけで時間単位で料金が発生するので、不要であれば削除します。
ロードバランサー > 任意のロードバランサー選択 > アクション > ロードバランサ―の削除
最後に
如何でしたか?
座学で勉強するより更なる学びがあったのではないでしょうか。