AWSのALBとは
AWSにはELB(Elastic Load Balancing)という優れたロードバランシング(負荷分散)サービスがありますが、そのELBの4つのサービスの中でも、最も利用されているのが「AWS ALB」です。
AWS ALBは「Application Load Balancer」の略で、使い方としては主にWebサービスの負荷分散を目的に利用されていますが、負荷分散の機能以外にも様々な優れた機能を有しています。
Webサービスはその多くが、一般ユーザが利用しますが、Webサービスの停止や遅延は一般ユーザのサービスへの信頼を損ね、ブランドイメージする壊しかねない大きなリスクがあります。そのため、Webサービスでは負荷分散のロードバランサの設置は必須とも言えます。
とはいえ、オンプレミス環境で、自前でロードバランサを導入、設置するのは大きな負担や負荷を伴います。そこで、様々なサービスが用意されているクラウドサービスを利用する企業や組織が増えているのです。
この記事では、AWSのロードバランシングサービス、ELBの中の主要サービスであるAWS ALBについて、その概要やメリット、料金などを解説していきます。
【参考】:Elastic Load Balancing(複数のターゲットにわたる着信トラフィックの分配)| AWS
AWS ALBの機能と概要
今や私たちの生活にとってWebサービスはなくてはならないものになっています。ネットでのショッピング、SNSの閲覧や投稿など、旅行予約でのホテルや列車の予約など、サービスが停止すると日常生活に大きな影響があります。
そのため、Webサービスにおいてはサービスの安定提供のため、負荷分散装置の設置がもはや義務とも言えます。AWSのクラウド環境において、そのWebサービスの安定稼働を支えるのがAWS ALBです。ここでは、ALBの機能や概要について紹介します。
ELBの4つのロードバランサ
AWS ALBの機能紹介を行う前に、ALBが属するAWS ELBが提供する4つのロードバランサについて紹介します。それぞれの違いを理解しておきましょう。
■ 1:ALB(Application Load Balancer ) ALBは、OSI参照モデル(コンピュータ通信の方式を層ごとにモデル化したもの)のアプリケーション層レベル(レイヤ7)で機能するロードバランサです。
Webサーバのロードバランシングに利用され、URLごとに通信をサーバに振り分けることができ、ベーシックなCLBと比較しても、非常に細かく設定を行えるのが特徴です。ALBのIPアドレスは可変ですので、DNSの利用が必要です。
【参考】:Application Load Balancer とは? | Elastic Load Balancing
■ 2:NLB(Network Load Balancer) NLBはOSI参照モデルのトランスポート層、レイヤー4でルーティングをコントロールするため、毎秒数百万件のリクエストにも対応する高パフォーマンスを発揮します。アクセス数が大きなサービスやアプリケーションではNLBの利用を推奨します。
高可用性、低レーテンシー(低遅延)、高スループットを特徴とします。NLBではIPアドレスは固定です。そのため、DNSとIPアドレスの両方を利用できます。
【参考】:Network Load Balancer とは?| Elastic Load Balancing
■ 3:GLB(Gateway Load Balancer)
2021年にリリースされたサービスです。GLBはクラウド上のセキュリティ機器(ファイアウォール)などの展開、スケーリング、管理などを行うためのフルマネージドサービスです。
【参考】:AWS Gateway Load Balancer のご紹介 |パートナーアプライアンスの簡単なデプロイ、スケーラビリティ、高可用性 | Amazon Web Services ブログ
■ 4:CLB(Classic Load Balancer) CLBはELBの前世代となるサービスで、シンプルなロードバランサです。初期から利用中のユーザ向けにサービスが残っていましたが、新規でCLBを選択することはできません。
【参考】:Classic Load Balancer の移行 | Elastic Load Balancing
AWS ALBの機能概要
AWS ALBには主に次のような機能が備わっており、負荷分散以外にも様々な機能を有しています。主な機能を見ていきましょう。
■ 負荷分散 Webサイトでは1つのサーバにアクセスが集中すると、遅延が起きてサービスが停止することがあります。ALBは特定のWebサーバへのトラフィック集中を避けて複数サーバに振り分け、Webサービスの安定と可用性を高める働きをします。
また、異なるアベイラビリティゾーン(東京と大阪など)への負荷分散も行えるなど、耐障害性にも優れています。
■ URLによるルーティング ALBではURLに従ってインスタンスのターゲットグループに対してルーティングができます。 ALB単独でAWS EC2やECS(Elastic Container Service)などに、パスで振り分けることが可能で、アプリケーション単位でロードバランサを設ける必要がありません。
【参考】:Amazon EC2(安全でスケーラブルなクラウド上の仮想サーバ)| AWS 【参考】:Amazon ECS(Docker コンテナを実行および管理)| AWS
■ 多様なコントロール ALBではアプリケーションのターゲットを柔軟に設定できます。たとえば、パスベースやホストベース、HTTPやクエリ文字ベースなど、コンテンツ主体のルーティングが行え、ターゲットアプリを個別にグループ化することも可能です。
■ セキュリティ機能の充実 AWSクラウドを利用する際に、セキュリティグループごとに通過するトラフィックの制限が可能です。 他には、SSL/TLS証明書の管理、Amazon Cognitoとの連携によるユーザ認証、アクセスログ管理機能、AWS WAFなどセキュリティ機能が非常に充実しています。
またALBのリスナールール(振り分けルール)を活用して、IPアドレスによるホワイトリストを作成し、特定のIPのみ管理者機能が使えるようにすることも可能です。これにより成りすましによる不正アクセスも防げます。なおリスナールールの優先度はマネジメントコンソールで設定できます。
【参考】:Amazon Cognito(ウェブ/モバイルアプリのユーザ管理)| AWS 【参考】:Application Load Balancer のリスナールール | Elastic Load Balancing
■ モニタリング機能 AWSのモニタリングサービス、「Amazon CloudWatch」を使用して、ロードバランサの統計情報を取得し、アプリケーションの実行状況をリアルタイムで監視することができます。 またアクセスログ取得やHTTPリクエストのトレースが可能で、きめ細かくトラフィック分析や、トラブルシューティングを行えます。
【参考】:Amazon CloudWatch(リソースとアプリケーションの監視と管理)| AWS
AWS ALBとELBの違い
ここまでAWS ALBについて解説してきましたが、ではAWS ELBとは何が違うのでしょうか?最初はELBがAWSのロードバランシングサービスの名称でした。その後、ALBが追加のオプションサービスとして導入されると、ELBはCLBと名称変更され、ELBの中にCLBとALBの2つのサービスができました。
その後、NLBとGLBが追加され、ELBは4つのロードバランシングサービスの総称となったのです。
AWS ALBのIPアドレス
AWS ALBでは割り当てられたIPアドレスが変わるタイミングがあります。それはスケールアウト(サーバの拡張)のタイミング、もしくはALBが代替されるタイミングです。
IPアドレスはトラブルシューティングやパケットキャプチャの際に把握する必要がありますので、IPアドレスが途中で変わるタイミングがあるという点をあらかじめ理解しておきましょう。
AWS ALBの料金
AWS ALBを利用すると、どの程度の料金が掛かるのでしょうか?AWSにはサービス毎に料金を見積もる仕組みが用意されていますので、利用する前にあらかじめ料金シミュレーションをしておきましょう。
【参照】:AWS 料金見積りツール
無料利用枠の利用
AWS ALBはAWSの無料利用枠を利用できます。ALBの場合、新規の AWSユーザは月間750時間、15LCU 分を無償で利用できますので、ロードバランサを試したい方は無料利用枠を使ってみてください。
ALBの料金体系
ALBは、利用1時間(1時間未満は1時間としてカウント)あたり0.0243USD、LCU 時間(または1時間未満)あたり0.008USDです。※2023年6月1日時点
LCUとは(Load Balancer Capacity Units)とのことで、ALBの使用量の単位です。
LCUは、以下の4つの要素のうち、1番使用量が多い要素にのみ費用がかかります。
① 新しい接続またはフロー:1秒あたりの新たに確立された接続またはフローの数 ② アクティブな接続またはフロー:1分ごとにサンプリングされたピーク時の同時接続またはフローの数 ③ 帯域幅(処理バイト):ロードバランサによって処理されたバイト数(GB 単位) ④ ルール評価:ロードバランサが処理したルールの数とリクエストレートの積
【参考】:料金 - Elastic Load Balancing | AWS
AWS ALBを有効に活用しよう
この記事では、AWS ALBの機能、ELBの他のサービスとの違い、料金などについて解説しました。AWS ALBはWebサービスの安定提供に重要なロードバランシングサービスです。
しかもALBは後発である分、高機能のロードバランサであり、セキュリティ対応や管理面で様々なコントロールが可能です。Webサービス、Webアプリケーションの開発に携わっている方は、ぜひAWS ALBに強いエンジニアを目指し、Webサービスの品質、性能向上に役立てましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから