SLB
目次
- 一般仕様
- ネットワーク
- 負荷分散
- ヘルスチェック
一般仕様
SLBはレイヤ4 (TCP、UDP)およびレイヤ7(HTTP、HTTPS)を提供しています。
レイヤ 4 SLB は、ロードバランシングを実現するために keepalived のオープンソースソフトウェアの Linux 仮想サーバー( LVS )を使用し、クラウドコンピューティングの要件に応じて、いくつかのカスタマイズを行っています。
レイヤ 7 SLB は、ロードバランシングを実現するために Tengine を使用しています。 Tengine、Nginx に基づいて Web サーバープロジェクトは、多量トラフィックのウェブサイトに対応する機能を追加しています。
SLBのレイヤ7のアクセスログは提供しています。
アクセスログの取得は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85974.htm
コンソールにて、SLBのスペック変更をオンラインで実施することができます。また、トラフィックが流れている状態でAPIよりSLBのスペックを変更することもできます。
ただし、スペックを変更している時に、SLBサービスが中断されることあります。スペックの変更が完了になると、SLBが自動的に再開します。
なお、SLBのスペック変更は「パフォーマンス専有型」から「パフォーマンス専有型」へのインスタンススペック変更、もしくは、「パフォーマンス共通型」から「パフォーマンス専有型」へのインスタンススペック変更となります。「パフォーマンス専有型」から「パフォーマンス共通型」へのスペック変更はできません。
スペックの変更は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85942.htm
Vserverグループを利用した場合、ディレクトリ転送機能を利用できます。
転送設定されてないディレクトリの場合、デフォルトバックエンドサーバーに分散されます。
デフォルトグループまたは、Vserverグループにて重みを0に設定してもマスタースレーブ構成になりませんので、マスタースレーブグループを利用する必要があります。
VServerグループは下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85964.htm
マスタースレーブグループは下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85965.htm
SLBにサードパーティ証明書をアップロードすることができます。
アップロード方法は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85971.htm
SLBでは、AccessKey1つあたりのAPI呼び出し回数を1日に5000回まで制限されます。
Server Load Balancer プロダクトの制限は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/32459.htm
接続要求のタイムアウト時間については、指定したタイムアウト期間中にバックエンドサーバーからレスポンスがない場合、Server Load Balancer は待機を止め、エラーコード HTTP 504 をクライアントに送信します。
この値を「60(秒)」とした場合は、「バックエンドサーバーからのレスポンス待ち時間」の最大値が60秒となります。
尚、接続要求(リクエスト)のタイムアウト期間は秒単位で設定すすることができ、有効値は 1〜180となります。
「接続要求のタイムアウト時間」を「60(秒)」にて作成したSLBに接続しているクライアントが10秒で接続を閉じた場合、SLBとバックエンドサーバーの間のコネクションは接続された状態となります。
尚、同じメニュー内に「接続アイドルのタイムアウト時間」を設定する項目があります。 こちらは接続のアイドルタイムアウトを秒単位で指定し(有効値: 1~60)、指定したタイムアウト期間中にリクエストが受信されない場合は、Server Load Balancer はいったん接続を閉じ、次のリクエストが入ってきたら接続を再開します。
SLBのタイプ変更時には、IPアドレスの変更はありませんが、パフォーマンス共有型から各パフォーマンス専有型に変更する際に、サービスは 10〜30 秒間切断することがございます。
なお、パフォーマンス専有型の上位タイプへご変更の際は、サービスの切断は発生いたしません。
スペック変更は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85942.htm
ネットワーク
パブリックSLBはインターネットからのリクエストを受け取るため、パブリックIPアドレスを提供しています。AlibabaCloudの仕様として、パブリックSLBがVPC内にあるバックエンドECSと通信できますが、該当VPCのプライベートIPアドレスを持っていません。
プライベートSLBはパブリックIPアドレスを提供しておらず、Alibaba Cloud イントラネットからのリクエストのみ受信できます。AlibabaCloudの仕様として、プライベートSLBはVPCのプライベートIPを持っています。 なお、プライベートSLBにEIPを付与することにより、パブリックSLBとして機能することもできます。
パブリックSLBとバックエンドECS間はプロクシ通信となります。該当通信は、ECSのセキュリティグループで遮断できない仕様となります。
SLBのアーキテクチャは下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/27544.htm
パブリックSLBにプライベートIPがない仕様に対して、プライベートIPとパブリックIP両方が必要の場合、プライベートSLBにEIPをバインド機能を利用して実現できます。
作成手順
1. 先にイントラネット型のSLBを作成します。
2. 作成したSLBにEIPをバインドします。
SLBはホワイトリストとブラックリスト方式でアクセスを制御しています。
ホワイトリストとブラックリストの設定方法は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85979.htm
SLBのインターネット通信帯域幅はコンソール上で表示されている値に準じます。
日本リージョン:インバウンド: 1024Mbps、アウトバウンド: 1024Mbps
中国リージョン:インバウンド: 5120Mbps、アウトバウンド: 5120Mbps
証明書の設置場所により、SSL通信空間は違います。
証明書をSLB側に設置: クライアント —> SLB の間の通信はHTTPSで行います。(SLB–>ECSはHTTPで行います。)
証明書をECS側に設置: SLB —> バックエンドECS の間の通信はHTTPSで行います。
なお、証明書をSLB側に設置した場合、SLBとECS間にHTTP通信のみ設定可能な仕様になります。
日本サイトのSLB現在レイヤー4のTCP over SSLを対応していません。SSL通信が必要な場合、レイヤー7のHTTPSを利用する必要があります。
SLBにHTTPSリスナーを利用する場合、利用可能のTLSバージョンを選択することが可能です。
低いバージョンを利用すると互換性が良いですが、ROBOT Attack のような脆弱性を対応するためには、TLSセキュリティポリシーで以下のいづれかを選択しする必要があります
尚、この機能は「パファーマンス共有タイプSLB」が対象外となります。
tls_cipher_policy_1_2_strict
tls_cipher_policy_1.2_strict_with_1_3
負荷分散
SLBの仕様上、セッションの保持時間内に再度SLBアクセスを実施すると 保持されているセッションにアクセスするため、重みと剥離してアクセスが偏ったことがあります。
実際にセッションの切り替えを確認する方法は下記となります。
・リスナー設定(HTTP)の場合
リスナー設定で「セッションの保持」を無効にし、リロードすることで確認できます。
・リスナー設定(TCP)の場合
リスナー設定の「接続タイムアウト」で最小値の10秒と設定し、10秒以上の間隔でリロードすることで確認できます。
SLBのバックエンドECSの重みの仕組みは下記となります。
例えば ECS インスタンス A の重みを 10 に設定し、ECS インスタンス B の重みを 100 に設定した場合、インスタンス A には総アクセス数の 10/(10+100)% が転送され、インスタンス B は 100/(10+100)% が転送されます。
APIでVServerグループを操作する際に、引数に「\」を利用する必要がります。
■バックエンドサーバを追加
aliyun slb AddBackendServers –RegionId ap-northeast-1 –LoadBalancerId SLB_ID –BackendServers [{\“ServerId\”:\“instance_ID\”\,\“Weight\”:\“100\“}]
■バックエンドサーバを削除
aliyun slb RemoveBackendServers –LoadBalancerId SLB_ID –BackendServers [{\“ServerId\”:\“instance_ID\”}]
SLBでは相互認証のアクセス方式に対応しています。
なお、SLBの仕様では現在失効リストに対応していません。
相互認証の設定方法は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/54508.htm
SLB自体はsorryサーバーの実装に対応していませんが、DNSの機能GTM(Global Traffic Management)を利用すれば、Sorryサーバーの切り替えを実現することができます。
GTMの概要は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/86630.htm
ヘルスチェック
SLBヘルスチェックの頻度はコンソール上で設定可能です。
なお、監視の信頼性を向上するため、複数台の監視サーバーから同時にヘルスチェックするような仕様となっています。コンソール上のヘルスチェック間隔設定は、1台の監視サーバーに対する設定値となりますので、結果的には、設定値より多いチェックが発生してしています。
設定方法は下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/85959.htm
SLBのヘルスチェック用CIDRは下記となります。
・100.64.0.0./10
ヘルスチェックは下記のドキュメントをご参照ください。
https://jp.alibabacloud.com/help/doc-detail/55205.htm