【目次】

  1. 1. 概要
  2. 2. ALBとは?
  3. 3. ALBとELBの違い?初心者にもわかりやすく解説
    1. a) ELBからALBに移行するメリット
  4. 4. ALB, NLB, CLB, ELB の違い
  5. 5. まとめ
  1. 1. 概要

    Webサービスにおいて、ロードバランサーの役割を持つシステムは必要不可欠です。
    AWSにはどのようなロードバランサーがあるのか、導入することでどのようなメリットがあるのかを知ることで、よりAWSの魅力がわかるようになるでしょう。
    一口にロードバランサーと言っても、AWSにはALBやELBなどいくつかのサービスがあるため、どれを利用すべきなのか迷うこともあるかもしれません。
    そこでこちらではALBとELBの違いから、サービスの内容をチェックしていきます。
    AWSを利用する予定があるのなら、こちらを参考にそれぞれの特徴を把握しておきましょう。

     
     

  2. 2. ALBとは?

    ALB(Application Load Balancer)とは、Amazon.comが提供するAWS(Amazon Web Services)と呼ばれるシステムの一部で、Webサービスに発生する負荷を分散するロードバランシングサービスです。
    近年はSNSでの拡散などによって、突然Webアプリケーションへアクセスが集中することも多くなっています。
    突然のアクセスの急増はWebサービスの表示スピードを重くしたり、エラーを引き起こしたりする原因になるでしょう。
    そんなWebサービスにかかる負荷を分散し、安定性や高可用性を向上させるのが、ALBのようなロードバランサーです。
    ALBが持つ数々の機能を利用することで、Webサービスを継続的かつ効果的に運用できるでしょう。

    AWSサービスにはさまざまなメリットがありますが、特にALBにおいて有益なのは以下のようなものになります。

    ・高可用性の実現をサポート
    ・証明書管理やユーザー認証のようなセキュリティ
    ・さまざまなレベルにおけるアプリケーション負荷への柔軟な対応
    ・アプリケーションの細かなモニタリングと監査

    これらのメリットは複雑なWebサービスの運用において、効率性と実用性を高めるきっかけになり得ます。
    あらゆる事業内容を改善し、新しい仕事を進めることもできるので、将来的にはメリットがさらに大きくなるでしょう。

     

  3. 3. ALBとELBの違い?初心者にもわかりやすく解説

    AWSでALBを利用する場合、よく一緒にされるのがELBという言葉です。
    ELBとは「Elastic Load Balancing」の略称で、元々はこのELBがAWSにおけるロードバランシングサービスでした。
    しかしのちにALBが追加オプションとして開発された際に、ELBはその名称を「Classic Load Balancer(CLB)」に変えることになります。
    そしてALBとCLBのサービスをまとめた総称として、ELBが使われるようになったのです。
    さらに今ではNetwork Load Balancer(NLB)も追加され、その内容がさらに充実しています。
    つまりELBとは、ALB、CLB、NLBという3種類の魅力的なロードバランサーを持つAWSのロードバランシングサービスの総称のことなのです。

    ALBはCLBと比べるとさまざまな面で特徴的な部分があり、ALBならではの魅力といったものが備わっています。
    例えば以下のような点は、ALBの特徴となっています。

    ・レイヤー7(アプリケーションレイヤー)での動作
    ・新たにWebSocket とHTTP/2をサポート
    ・最新のアプリケーションアーキテクチャを対象
    ・ターゲットグループにルーティングが行える
    ・複数のアベイラビリティーゾーンの利用

     
    <レイヤー7(アプリケーションレイヤー)での動作>

    旧来のELBはロードバランサーとして、レイヤー4のトランスポート層と、レイヤー7のアプリケーション層の両方で活動していました。
    レイヤー4ではネットワークパケットの内容を細かく精査することなく負荷を分散し、レイヤー7ではパケット内のHTTPとHTTPSといった情報にアクセスしてより効率的な負荷分散を実行します。

    一方でALBはレイヤー7だけで機能するロードバランサーであり、ELBとは違ってアプリケーション層に特化するスタイルを取っています。
    そのためより便利で使いやすい機能の実装や追加が可能となり、全体のサポート力が高まることになったのでしょう。

     
    <新たにWebSocket とHTTP/2をサポート>

    ALBは新たにWebSocket とHTTP/2という2つのプロトコルをサポートし、利用者の選択肢を広げています。
    それぞれの通信規格に対応することで、ネットワークトラフィックの削減や、効率の良いコネクション利用が可能となったのです。

     
    <最新のアプリケーションアーキテクチャを対象>

    ALBの利用時には、マイクロサービスやコンテナなどの最新アプリケーションアーキテクチャを対象とした設定が可能となります。
    高度なリクエストルーティングが実現されるので、より自由かつスムーズな利用が行えるでしょう。

     
    <ターゲットグループにルーティングが行える>

    ALBはターゲットグループと呼ばれる別々のサーバグループに対してインスタンスを紐付け、ルーティングを設定することができます。
    直接的にインスタンスを設定していたELBとは違って、サービスを独立させて実行することもでき、ルーティングのルール定義も複数作成可能です。

     

    1. a) ELBからALBに移行するメリット

      これまでELBを利用してきた内容をALBに移行することには、いくつかのメリットがあります。
      特に以下のメリットは、移行を検討する理由になるでしょう。

      ・複数のロードバランサーを統合してコストを削減できる
      ・WebSocket / http2等によるパフォーマンス改善による効率化
      ・AWS WAFの利用によるセキュリティ強化

      その他にもアクセスログに対しての情報追加や圧縮した形での保存、Lambda 関数の登録サポートなど、多くのメリットを得られるのが特徴となっています。
      環境によっては、ELBのままでいるよりも、ALBへの移行を行った方がその後が有意義となる場合もあるでしょう。

     

  4. 4. ALB, NLB, CLB, ELB の違い

    上記のような特徴を持つALB、CLBとは違って、NLBもまた独自の魅力を持ったロードバランサーです。
    Network Load Balancer(NLB)は、高パフォーマンスが必要な環境においての負荷分散に最適とされるロードバランサーモデルとなっているのが特徴となっています。
    通信遅延のレイテンシーを抑えながら1秒に数百万のリクエストを処理でき、トラフィックパターンが突発的であったり急変したりしても利用できるように最適化されています。
    こういった特徴を持つことから、NLBもまたELBにおいて欠かせない存在となっていくでしょう。

    さまざまな違いによって独自性を確立しているALB、CLB、NLBですが、料金体系は基本的に利用した分だけ請求が行われるシステムで統一されています。
    1時間単位の実行時間が参考とされ、ALBとNLBはロードバランサーキャパシティーユニット(LCU)の使用量で課金額が決まります。
    CLBも1時間単位の実行時間が参考とされますが、課金額はロードバランサーを経由して転送されたデータに応じたGB単位で決まります。
    このように多少の違いは見られるので、利用時はそれぞれの詳細をよく確認しておきましょう。

     

  5. 5.まとめ

    AWSにおいて、ELBは有効に使いたいサービスのひとつとなっています。
    事業に落とし込むためにもまずはALBとELBの違いを把握し、どちらを利用すべきか考えることから始めてみましょう。

    ALB、CLB、NLBには、独自の魅力がたくさんあります。
    それらを上手に活かせるように、この機会に詳細をチェックしておくことがおすすめです。