フォーム読み込み中
「パブリッククラウドのロードバランサ機能について比較をしてみた(Alibaba / AWS / Azure / GCP)」の続編として、Alibaba Cloudのロードバランサ(ALB, CLB)の簡単な構成の作り方、より詳細な機能についてこちらのBlogにてご紹介させていただきます。
※「パブリッククラウドのロードバランサ機能について比較をしてみた(Alibaba / AWS / Azure / GCP)」のBlogも参照して下さい。
Alibaba CloudはロードバランサをSLB(Server Load Balancer)というプロダクト名で、ALB(Application Load Balancer)とCLB(Classic Load Balancer)の2種類のロードバランサが提供されています。
●ALB (Application Load Balancer)
ALBはL7(アプリケーション層)の負荷分散をし、HTTPやHTTPS、QUICなどのプロトコルをサポートしています。大量のネットワークトラフィックを処理することが可能で、最大100万クエリ/秒(QPS)までサポートされています。
●CLB (Classic Load Balancer)
CLBはL4(トランスポート層)とL7(アプリケーション層)の負荷分散をし、TCPやUDP、HTTPやHTTPSなどのプロトコルをサポートしています。一般的な構成に使われるロードバランサでロードバランサの一般的な機能のラウンドロビン機能をはじめ、さまざまな機能を提供しています。
ALBとCLBで利用できる機能について、エディション等を比較しながら、具体的にご紹介したいと思います。
まず、ALBには「ベーシックエディション」と「スタンダードエディション」が提供されておりエディションによって機能の差分があります。また、CLBについてはエディションは提供されておりませんが、1つのCLBでL4とL7の機能を利用することが出来ます。
●ALBのエディション比較
ALBのスタンダードエディションでは、レイヤー7のネットワークトラフィックの負荷分散を目的とした高度なルーティング機能を提供しています。ベーシックエディションの場合、このネットワークトラフィックの分散機能の一部やセキュリティ機能の一部がサポートされていません。
●CLBの機能比較
一方、CLBはCLB単体でレイヤー4とレイヤー7を利用することができ、それぞれのレイヤーに応じた制御が可能なものの、範囲や機能はとてもシンプルです。その分価格もALBのベーシックエディションよりも安価になっております。
プロダクト | ALB | CLB | ||
エディション等 | ベーシックエディション | スタンダードエディション | L4 CLB | L7 CLB |
ロードバランサの種類 | レイヤー7 | レイヤー7 | レイヤー4 | レイヤー7 |
利用料金 | ||||
インスタンス | 0.007 | 0.021 | 0.009 | |
LCU | 0.007 | 0.007 | 0.012 | |
リスニングプロトコル | ||||
QUIC | 〇 | 〇 | × | × |
HTTP/2 | 〇 | 〇 | 〇 | 〇 |
WebSocket | 〇 | 〇 | × | 〇 |
リクエスト転送ルール (ネットワークトラフィックの分散) | ||||
ドメイン / URL | 〇 | 〇 | × | 〇 |
HTTPヘッダ | 〇 | 〇 | × | × |
クエリ文字列 | × | 〇 | × | × |
Cookie | × | 〇 | × | × |
送信元IP | × | 〇 | × | × |
応答ステータスコード | × | 〇 | × | × |
応答ヘッダ | × | 〇 | × | × |
リダイレクト | 〇 | 〇 | × | × |
リクエストの書き換え | × | 〇 | × | × |
ヘッダ情報の追加 / 削除 | × | 〇 | × | × |
トラフィックミラーリング | × | 〇 ※1 | × | × |
QPSスロットリング | × | 〇 ※1 | × | × |
AScript | × | 〇 ※1 | × | × |
IPv6 | 〇 | 〇 | ||
スケジューリングアルゴリズム | ||||
ラウンドロビン | 〇 | 〇 | 〇 | 〇 |
ラウンドロビン (重み設定) | 〇 | 〇 | 〇 | 〇 |
コンシステントハッシュ | 〇 | 〇 | 〇 | × |
セキュリティ | ||||
ホワイトリストでの制御 | 〇 | 〇 | 〇 | 〇 |
ブラックリストでの制御 | 〇 | 〇 | 〇 | 〇 |
TLS暗号スイート | 〇 | 〇 | × | × |
カスタムTLS暗号スイート | × | 〇 | × | × |
SNI | 〇 | 〇 | × | 〇 |
Rivest-Shamir-Adleman (RSA) 証明書対応 | 〇 | 〇 | × | × |
楕円曲線暗号 (ECC) 証明書対応 | 〇 | 〇 | × | × |
TLS 1.3 | 〇 | 〇 | × | × |
HTTPSを介したエンドツーエンドのデータ転送 | × | 〇 | × | × |
ログ | ||||
アクセスログ管理 | 〇 | 〇 | × | 〇 |
※1:Alibaba Cloudのコンソールから利用開始のチケット申請が必要です。
Application Load Balancerの詳細
Classic Load Balancerの詳細
CLBの機能は非常にシンプルですがL4 / L7の両方に対応しているため、L4とL7の両方を同時に使う場合には、CLBの利用が最適です。
一方、L7に特化した高度な負荷分散を実現したい場合には、CLBのL7より機能が充実しているALBの利用がおすすめです。上述の通り、特にリクエスト転送ルールでは、CLBと比較するとALBの方が機能を多く提供しており、柔軟に設定することが可能です。
その他、共通した機能での特徴として、どのエディション・機能においてもブラックリスト機能があり、リクエスト数が多い身に覚えがないIPに対して制限をすることが可能です。
今回はCLBを使って一般的なWebサイトの環境構成の構築方法と実際にCLBが機能している様子についてご紹介させていただきます。
環境については以下の通りです。
【Sumple1.PNG】
■環境詳細
・CLB (Tokyo)
・ECS_1 (Tokyo / ZoneA / CentOS 7)
・ECS_2 (Tokyo / ZoneA / CentOS 7)
■事前準備
TokyoリージョンのZoneA / Bにそれぞれ1台ずつECSインスタンスを作成します。
今回はECS_1をダウンさせて、ECS_2のWebページが表示されるかCLBの動作確認を行いますのでWebページをご用意ください。
※Webページを設定されていない場合は以下、手順をご参照いただき、Webページをご設定ください。
◆Webページの準備方法 (ECS_1 と ECS_2の両方に設定する必要があります)
1 ) ECSインスタンスにSSHでログインします
2 ) rootユーザで以下のコマンドを実行します
① #yum -y install httpd
② #vi /var/www/html/index.html
ECS_1の場合 ) This Page is test1
ECS_2の場合 ) This Page is test2
③ #systemctl enable httpd
④ #systemctl restart httpd
■構築手順
① SLBコンソールにアクセスし、【CLB】の作成をクリックします
② 購入画面が表示されますので以下の通り指定し、【今すぐ購入】をクリックします
【今すぐ購入】をクリック後、表示された画面で利用規約に同意いただき【Active Now】をクリックし、注文を確定します。
・リージョン : 日本 (東京)
・ゾーンタイプ : マルチゾーン
・プライマリゾーン : 日本ゾーンA
・バックアップゾーン : 日本ゾーンB
・インスタンス名 : 任意の名前をご入力ください
・インスタンス : インターネット
・仕様 : Small (slb.s1.small)
・IPバージョン : IPv4
・課金パターン : トラフィック課金
・リソースグループ : 任意でご指定ください
③ 購入したインスタンスがコンソールに表示されているか確認し、lbから始まるインスタンスID(リンク)をクリックします。
④ リスナーのタブをクリックし、【リスナーの作成】をクリックします。
⑤ リスナーの作成画面が表示されますので、設定を行います。
●プロトコルとリスナー
・リスナープロトコルの選択 : HTTPを選択します
・リスニングポート : 80
・リスナー名 : 任意の名前をご入力ください
・高度な設定 : 今回は設定しません 詳細につきましてはこちらからご確認ください
● バックエンドサーバ
リクエストの送信先をデフォルトのサーバーグループを選択し、【さらに追加】をクリックします。クリック後、リスナーの追加画面が表示されますので対象のインスタンスにチェックを入れ、【次へ】をクリックします
重み(今回は100と10)を設定します。
重みは 0 ~ 100までの値を指定出来ます。重みを0に指定した場合、バックエンドサーバにリクエストが転送されなくなりますので、ご注意ください
リスナーの追加が完了するとコンソールに追加したリスナーが表示されます。
表示されたリスナーの【ポート】の設定項目に 80 を入力します。
● ヘルスチェック
今回はデフォルト値で設定します。
ヘルスチェックの詳細についてはこちらからご確認ください。
設定が終わったら【確定】の画面が表示されるので【送信】をクリックし、設定を完了させます。
⑥ ⑤のリスナーの追加が完了するとリスナーの画面に作成したリスナーが表示されます。
設定は以上となります。
■動作確認
次にCLBで設定したバックエンドサーバの1台を停止させて切り替わるか見ていきたいと思います。
今回はECS_1, ECS_2に対して以下Webページを設定しています。
●ECS_1
●ECS_2
まずは、CLBのIPにアクセスし、現在表示されるページを確認します。
※CLBのIPはCLBインスタンスの画面から確認出来ます。
表示されたページを見るとECS_1のページが表示されています。
ECS_1が表示されるのは重みの設定でECS_2よりも高い値を入力したためです。
CLBのIPに対しアクセスし、ECS_1のWebページが表示されたので、ECS_1を停止し、ECS_2のページに切り替わるか確認します。
ECSコンソールでECS_1を停止します。
ECS_1のインスタンスステータスが【停止済み】の状態になりましたら、CLBのIPに対してアクセスします。
アクセスしてみるとECS_2のWebページに切り替わっていることが確認出来ました。
Alibaba Cloudのロードバランサは、設定方法がシンプルで多機能、なおかつAWSやAzure、GCPとロードバランサの価格を比較すると安価に利用できます。
今回ご紹介した構成は基本的にデフォルト値で設定を行いましたが、リスナーの高度な設定ができる箇所でカスタマイズすることによって、ラウンドロビンの方式や、ヘッダー情報の追加等も設定することが可能です。
また、他プロダクトとはなりますが、Alibaba Cloudが提供しているLog Serviceというプロダクトと連携することによって、アクセスログの詳細な分析をすることも可能です。
Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。
条件に該当するページがございません