AWSのALBとは?ELBとの違いや特長、料金について解説

  • 2022.07.08
       
AWSのALBとは?ELBとの違いや特長、料金について解説

ALBとは?

ALB(Application Load Balancer)とは、Amazon社が提供しているクラウドサービス「AWS」の一つで、Webサービスにおける負荷を分散させるロードバランシングサービスです。
AWS(Amazon Web Service)には、サーバへの負荷(load)を軽減させるために、外部から受けたリクエストを複数のサーバに振り分けることで負荷を分散させるロードバランサーというサービスがあります。このサービスは ELB(Elastic Load Balancing)と呼ばれ、さらに 4種類に分けられ、その一つが ALB です。
Webサービスにおいて、アクセスが集中するとサーバの処理能力が間に合わず、Webサービスでエラーが発生するケースがあります。こういった場合にロードバランサーであれば、アクセス集中によるサーバの負荷を分散できるため、Webサービスの安定稼働や高可用性が実現できます。

ELBとは?
AWS が提供するサービスである ELB は、アプリケーションにかかっている負荷や CPU の稼働状況をリアルタイムで監視できるロードバランサーです。これにより、システムの処理速度や通信速度といった問題の解消やアクセスの自動分散が可能になります。万が一、サーバがダウンしてしまった場合でも、該当のサーバへのアクセスを停止し、他のサーバに遷移させることも可能です。また、ヘルスチェック機能もあるため、ロードバランサー内の各サービスの状態も監視できます。

ALBとELBの違い
ELBは、2009年にリリースされました。今でこそ、ロードバランサーには 4種類ありますが、当時のロードバランシングサービスは ELB の 1種類のみであったため、AWSのロードバランサーといえば「ELB」という認識が一般的でした。その後、システムのニーズが多様化していったことに伴って、それぞれのニーズに合わせたサービスが誕生していきました。まず、2016年にWebサービスにおける負荷を分散する「ALB(Application Load Balancer)」が誕生し、そのすぐ後の2017年に高いパフォーマンスを必要とする環境の負荷を分散する「NLB(Network Load Balancer)」が生まれました。こうしてロードバランサーが細分化されたタイミングで従来の「ELB」は、「CLB(Classic Load Balancer)」に名称を変更しました。そして、2021年には、仮想アプライアンスをクラウド上に展開、スケーリング、管理できる「GLB(Gateway Load Balancer)」が新たに誕生しました。
このような過程を経て AWS のロードバランサーは4種になり、構築するシステムに適したサービスを選択できるようになっています。ちなみに、現時点において AWS は、ALB や NLB の利用を推奨しています。

ロードバランシングの目的
ロードバランシングの目的は、なんといってもやはり負荷分散です。新商品の発売や関心度の高いニュースがあると、該当の Webサイトへのアクセスが集中してしまうことがよくあります。こういったアクセスの集中にサーバの処理能力が追い付かず、サーバの処理速度の低下や、場合によってはサーバがダウンしてしまいます。こういった事態を避けるために、サーバの数を増やして対応することもできますが、サーバ自体の処理能力をより有効に活用するには、アクセスの集中による負荷を分散させる必要があります。これをロードラバンシングといい、それを行うのがロードバランサーです。
ELB は、ロードバランサーの機能をクラウド上で利用できるようにしたもので、効率よく負荷を分散させるために、サーバ上で動作しているアプリケーションの稼働状況を常時監視しています。そして、あるサーバの処理能力が限界に近づいたら、ほかのサーバに負荷を分散させます。

ALBの特長

レイヤー7(アプリケーション層)で機能
ALB は HTTP や HTTPS のプロトコルのレイヤー7(アプリケーション層)だけに対応するロードバランサーで、Webアプリによく利用されています。
複数の AZ(アベイラビリティゾーン=データセンタの集合の単位)をまたいだインスタンスに対応可能で、ハードウェアの故障や災害といった障害が発生した場合でも高い耐障害性を発揮し、キャパシティを自動で増減する機能が備わっているなど、可用性に優れています。
アプリケーション層に特化しているため、ELB よりも便利で使いやすい機能を実装することができ、全体のサポート力も高まりました。

堅牢性の高いセキュリティ機能
ALB は VPC(Amazon Virtual Private Cloud)内に配置しており、Security Group機能を利用可能です。これを使えば、必要なトラフィックだけを通過させるといった設定ができ、高い安全性が保たれます。
SSL証明書のインストールも可能なので、通信の HTTPS(SSL)化が簡単に行え、単一サーバで通信の SSL化が可能になります。このように、SSLやTLSの暗号化とプロトコルを使用できる点やアクセス制限できるという点でも安心です。

柔軟なアプリケーション管理ができる
ALB では、柔軟にアプリケーションのターゲットの設定が行えるため、単一のインスタンスで多くのアプリケーションをルーティングできます。

最新のアプリケーションに対応
ALB は、マイクロサービスやコンテナといった最新のアプリケーションアーキテクチャに対応できます。
高度なリクエストルーティングが可能になったことでより自由度が高くスムーズに利用できるようになります。

リアルタイムモニタリング機能
状態監視サービス「Amazon CloudWatch」と連携し、ロードバランサーに関する統計データをメトリクスとして取得することで、アプリケーションが正常に作動しているかリアルタイムで監視可能です。
アプリケーションに関するデータを詳細にチェックでき、トラブルシューティングがリクエスト単位で実行できます

URLに基づくルーティングが可能
ALB は Webサイトの URL に基づいたルーティングが可能です。そのため、複数のサービスをそれぞれ独立させ、各々に最適なリクエストを設定でき、ルーティングのルール定義も複数作成できます。
アプリケーションを小さなサイズで構成できるので、リクエストごと、ターゲットグループにルーティングできます。

新たにWebSocket とHTTP/2のサポートを追加
ALB は新たに WebSocket と HTTP/2 という 2つの通信プロトコルに対応し、トラフィックの削減やコネクション利用の効率化が可能になりました。

ELBからALBに移行するメリット

ELB から ALB に移行することによっていくつかのメリットが得られます。

  • 複数のロードバランサーを統合でき、コストを削減できる
  • パフォーマンス改善によって効率を上げられる
  • AWS WAFの利用によってセキュリティを強化できる

上記以外にもアクセスログに対する情報の追加や Lambda 関数における登録サポートなど、たくさんのメリットが得られるでしょう。

ALBの料金

ELBの料金は、1時間単位(または 1時間未満)のロードバランサーの使用量とロードバランサーキャパシティユニット(LCU)の使用量を合わせた金額になります。この LCUはロードバランサーの種類によって異なります。
ALBは、利用 1時間(または 1時間未満)あたり0.0243USD、LCU時間(または 1時間未満)あたり0.008USD の利用料金が発生します。
LCUは、次の 4つの要素のうち、1番使用量が多いものにのみ適応されます。

  • 「新しい接続」1秒あたりに新たに確立された接続の数
  • 「アクティブ接続」1分あたりのアクティブな接続の数
  • 「処理タイプ」ロードバランサーによって処理された HTTP(S)リクエストと応答のバイト数(GB 単位)
  • 「ルール評価」ロードバランサーが処理したルールの数とリクエストレートの積
     

AWSカテゴリの最新記事