触って学ぶELB ~ALB構築~

aws

今回は、負荷分散や高可用性を実現する為に必要な、
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の料金の詳細に関しては以下を参照下さい。

料金 - Elastic Load Balancing | AWS
複数のターゲット間で、アプリケーションの着信トラフィックを自動的に分散するサービス、Elastic Load Balancing の料金についてご紹介します。

無料枠

  • 750 時間/月のロードバランサー時間分を Classic load balancer と Application load balancer の間で共有
  • 15 GB の Classic Load Balancer でのデータ処理
  • 15 LCU の Application Load Balancer 使用

AWS の無料利用枠は、以下サイトを確認ください。

AWS クラウド無料利用枠 | AWS
AWS 無料利用枠を使用すると、AWS のプラットフォーム、製品、およびサービスを無料でお試しいただけます。各製品ごとの無料利用枠の詳細やご利用開始方法についてご紹介します。

VPC構築

EC2インスタンスを、VPC上に構築する必要があります。
そこで、VPCを構築していない人は、以下記事を参照して Public Subnet を2つ構築してください。

触って学ぶVPC ~Public subnet + Private subnet 構成~
Amazon Virtual Private Cloud(VPC)は、AWSのサービスの中でも理解しないといけない必須のサービスになります。VPCは、Amazon Web Services (AWS) が提供する、クラウド上に仮想...

EC2インスタンス構築

EC2インスタンス を構築していきましょう!
EC2インスタンス を構築していない人は、以下記事を参照して 各Public Subnet にそれぞれ EC2インスタンス を構築してください。

あと、負荷分散が動作しているかを確認する為に、Webサイト で表示する文言を、
ec2-waku-test-web-2側は、「Hello World! 2」
にしておきましょう。

触って学ぶEC2 ~WEBサイト作成~
今回は、AWSの醍醐味である、仮想サーバ環境を構築していきます。仮想サーバ環境を構築しただけでは楽しくないので、仮想サーバ上に簡易のWEBサイトを立ち上げ、ブラウザからWEBサイトの内容を表示していきます。やりたいこと...

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インスタンスにアクセスすることにより、サイトの表示が出続けるか確認しましょう。

どちらでもいいのでインスタンスを停止し、ブラウザのサイトの更新ボタンを何度か押してみてください。
稼働しているインスタンスのサイトの内容が表示され続けていることが確認出来ます。

ロードバランサ―の削除

ターゲットグループは存在していても料金は発生しないので、放置でもいいですが、
ロードバランサーは存在しているだけで時間単位で料金が発生するので、不要であれば削除します。

ロードバランサー > 任意のロードバランサー選択 > アクション > ロードバランサ―の削除

最後に

如何でしたか?
座学で勉強するより更なる学びがあったのではないでしょうか。

タイトルとURLをコピーしました