Alibaba CloudのALBとは?AWSのALBとの違い

執筆日:

更新日:

こんにちは、もーすけです。
ひさびさにAlibaba Cloud関連の情報を更新します。 2021年1月頃にALB(Application Load Balancer)がリリースしました。本日は、ALBについて、そしてCLB(Classic Load Balancer、従来のSLB)はかなり高機能だったのでどう違うのかなどみていきます。

スライド

本内容はAliEaters#18でも発表しているためスライドもあります。 合わせてご確認ください。

AWSにおけるALBとCLB

「ALB」と聞くと、AWSのALBを思い浮かべるでしょう。というわけで、まずはAWSのALBとCLBをおさらいしておきます。

2021年7月現在、AWSでは多くのLoad Balancerサービスがあります。ALB,NLB,GLB,CLBと4種類提供しています。今回は、ALBとCLBだけピックアップしますが、従来のCLBはL4/L7をサポートしつつも、L7らしい機能はあまり多く提供していませんでした。詳細は「特徴 - Elastic Load Balancing | AWS」を参照していただくとして、ここでは後ほどのAlibaba Cloudとの比較のために、超抜粋していくつかピックアップします。
AWS ALBは、L7のLBとして特化しているために、対応するプロトコルにTCPは当然含みません。そして、L7レイヤーでのデータを用いたルーティングや、コンテナへの分散ができるように設計されています。

AWS ALB AWS CLB
ロードバランサの種類 L7 L4/L7
プロトコルレイヤー HTTP、HTTPS、gRPC TCP、SSL/TLS、HTTP、HTTPS
サポートネットワーク VPC VPC/EC2-Classic
パスベースルーティング
ドメインベースルーティング
WebSocket対応
コンテナへの分散
SNI対応

Alibaba CloudのCLBは高機能

続いて、Alibaba Cloudの話にいきましょう。Alibaba Cloudでは、2020年10月にALBをリリースしましたが、そもそもCLBの機能が非常に充実していたのも事実です。 先程の表にAlibaba CloudのCLBを追加して比較してみましょう。

AWS ALB AWS CLB Alibaba Cloud CLB
ロードバランサの種類 L7 L4/L7 L4/L7
プロトコルレイヤー HTTP、HTTPS、gRPC TCP、SSL/TLS、HTTP、HTTPS TCP、UDP、SSL/TLS、HTTP、HTTPS
サポートネットワーク VPC VPC/EC2-Classic クラシックネットワーク
パスベースルーティング
ドメインベースルーティング
WebSocket対応
コンテナへの分散
SNI対応

いくつかピックアップして機能にたいしてコメントします。

  • パスベースルーティング、ドメインベースルーティング
  • WebSocket対応
  • コンテナへの分散
    • 正確には、CLBはENIにも分散でき、ECIにも分散できるという意味です。また、SLB Ingress Controllerも用意されているので、Container Service for Kubernetesを利用していてもSLBをIngressに利用できます。

Alibaba CloudのALB

Alibaba CloudのCLBは高機能とのことで、ALBはなんの役に立つのかと疑問に思います。 細かいところではいくつかあるみたいですが、大きな方向性としてピックアップします。 ALBとCLBの違いはドキュメントにまとまっていませんが、以下が参考になります。

Features and limits of different editions - Application Load Balancer

サポートプロトコル

まずは、サポートプロトコルです。当然ALBはL7に特化しているので、CLBが対応していたTCP/UDPでのListenerは作れません。その代わりQUICに対応しているのはめずらしいですね。

高度なルーティング

L7レイヤーのルーティングがより充実している印象です。 たとえば、HTTPのメソッドレベルのルーティングや、クエリストリングベースでのルーティングなどです。 おそらく、マイクロサービスの文脈で、Readする処理とWriteする処理を別々のアプリで受けたいといったニーズに対応するものではないかと思います。

課金体系

課金体系をみると、ALBが現代的なビジネスシナリオのために作られたことがわかります。 以下はドキュメントのALBの料金体系に独自にCLBの料金体系を加えたものです。

タイプ インスタンス料金 CU料金 帯域幅料金
ALB Internet 課金 課金 課金
ALB Private Network 課金 課金
CLB Internet 課金
CLB Private Network

ALBでは、主にCU料金と帯域幅料金が追加されていることがわかります。 帯域幅料金はインターネットに対するものなので、Private NetworkのALBであればかかりません。

このCU料金がなにものかというと、「新規コネクション数」「同時接続数」「処理トラフィック量」「ルール数」といった複数の指標をもとに計算されるものです。CLBでは、パフォーマンス確保型インスタンスと、ある程度トラフィック需要見込んだインスタンスの準備が必要でした。このあたりが、より現代のビジネスシナリオに対応してきたという感じです。

Kubernetes連携

ちなみに、Container Service for Kubernetesでは、SLB Ingress Controllerが用意されており、IngressにSLBを利用できます。しかし、現時点で国際版では、このIngress ControllerにはCLBが利用されます。前に述べたとおり、CLBはドメインやパスベースルーティングが可能であり、コンテナの世界でも十分使えてしまうということです。

おそらく、今後Ingress ControllerはALBに移行していくとは思います。

【2021/9/6追記】
2021年8月よりALB Ingress Controllerが追加されました(ドキュメント)。 Serverless Kubernetesを用いて検証しました。Serverless Kubernetesの所属するvswitchを自動で検出することはなく、Ingressリソースにvswitch idsを記載しなければならない点が少し使いづらくもありますが、期待通りにALB対応もしておきました。

まとめ

今回は、Alibaba CloudがリリースしたALBをAWSのものと比較しながら確認してきました。 個人的には、Container Service for Kubernetesでの、SLB Ingress Controllerでの対応を楽しみにしています。 より現代的なビジネスシナリオにあったプロダクトの登場をもっと楽しみにしています。

関連ドキュメント

記事の内容に関連した相談、仕事依頼したい New

記事の内容やクラウドネイティブ技術に関する相談、仕事依頼を開始しました。
仕事依頼、相談をしてみる

フィードバック

本記事に対して、フィードバックあればこちらのフォームからご記入ください。
記事の内容にフィードバックしてみる

このエントリーをはてなブックマークに追加