Application Load Balancer (ALB) は、アプリケーション層の処理機能と広範な高度転送ルールを提供するレイヤー 7 の負荷分散サービスです。ALB インスタンスを作成することで、クライアントからのリクエストをバックエンドサーバーに転送できます。
インスタンスの作成
前提条件
アカウント権限:初めて ALB インスタンスを作成する際、システムは
AliyunServiceRoleForAlbというサービスリンクロールの作成を要求します。このロールは、ALB が Elastic Network Interface、セキュリティグループ、Elastic IP アドレス (EIP)、共有帯域幅などのクラウドリソースにアクセスすることを許可します。アカウント残高:ALB インスタンスは従量課金方式を採用しています。アカウントに支払い遅延がある場合、インスタンスを作成できません。インスタンスを作成する前に、アカウントに十分な残高があることを確認してください。
ネットワークの準備:
ターゲットリージョンに Virtual Private Cloud (VPC) を作成済みであること。
高可用性を確保するため、リージョンが複数のアベイラビリティーゾーンをサポートしている場合、ALB インスタンスは少なくとも 2 つのアベイラビリティーゾーンにデプロイする必要があります。使用予定の各アベイラビリティーゾーンに、少なくとも 1 つの vSwitch を作成済みであることを確認してください。
IP アドレスの計画:
ALB インスタンスは、指定された各 vSwitch から 3 つの IP アドレスを割り当てます。1 つは外部サービス用の仮想 IP アドレス (VIP)、2 つはバックエンドサーバーとの通信用のローカル IP アドレスです。
完全な伸縮性を確保するため、ALB インスタンスがデプロイされる各 vSwitch には、少なくとも 8 つの IP アドレスを予約してください。IPv4 vSwitch の最初の 3 つと最後の 1 つの IP アドレスはシステムによって予約されます。したがって、vSwitch の IPv4 CIDR ブロックのプレフィックス長は
/28またはそれより小さい数値 (例:/27) である必要があります。
セキュリティ計画:iptables などのセキュリティポリシーを使用する場合、ALB インスタンスの vSwitch CIDR ブロックからのトラフィックを許可して、バックエンドサービスとの正常な接続を確保してください。
コンソール
ALB コンソールの インスタンス ページに移動し、ALB の作成 をクリックします。
購入ページで、次のパラメーターを指定し、今すぐ作成 をクリックします。
リージョン:クライアントに最も近いリージョンを選択して、アクセスレイテンシーを削減します。
「ALB 機能をサポートするリージョンとアベイラビリティーゾーン」をご参照ください。
インスタンスネットワークタイプ:
内部:プライベート IP アドレスのみを割り当てます。インスタンスは Alibaba Cloud プライベートネットワーク内からのみアクセス可能です。
インターネット:パブリック IP アドレスとプライベート IP アドレスの両方を割り当てます。インスタンスはインターネットおよびプライベートネットワーク内からアクセス可能です。デフォルトでは、ALB はパブリックネットワークアクセスに EIP を使用します。
[インターネット] を選択した場合、EIP の 設定料金とデータ転送料金 が請求されます。
インターネットネットワークタイプのデュアルスタックインスタンスは、デフォルトでパブリックアクセスに IPv4 アドレスを使用し、パブリック IPv6 機能はありません。パブリック IPv6 アクセスを有効にするには、ALB インスタンスのネットワークタイプを変更します。この操作により、IPv6 パブリックネットワーク料金 が発生します。
VPC:インスタンスとサーバーグループは、同じ VPC に配置する必要があります。作成後に ALB インスタンスの VPC を変更することはできません。
アベイラビリティーゾーン:
リージョンが複数のアベイラビリティーゾーンをサポートしている場合は、少なくとも 2 つのアベイラビリティーゾーンと、それに対応する vSwitch を選択してください。
(このパラメーターは、[インスタンスネットワークタイプ] が [インターネット] に設定されている場合にのみ使用できます) 既存の EIP をバインドするか、[パブリック IP を自動割り当て] を選択できます。[パブリック IP を自動割り当て] を選択すると、システムは従量課金 (データ転送量課金) の EIP を作成し、ALB インスタンスにバインドします。
バインドできるのは、共有帯域幅インスタンスに関連付けられていない、既存の従量課金 (データ転送量課金) の EIP のみです。ALB インスタンスにバインドされるすべての EIP は、同じタイプである必要があります。
IP バージョン:IPv6 アクセスをサポートするには、デュアルスタック を選択してください。それ以外の場合は、IPv4 を選択してください。
デュアルスタックの ALB インスタンスを作成する前に、インスタンスがデプロイされる vSwitch の IPv6 を有効にする必要があります。
デュアルスタックインスタンスのみ作成できます。既存の IPv4 インスタンスをデュアルスタックにアップグレードすることはできません。
エディション (インスタンス料金):
Basic Edition:ドメイン名、URL、HTTP ヘッダーに基づくルーティングなど、基本的なアプリケーション負荷分散機能を提供します。
Standard Edition:Basic Edition のすべての機能に加えて、カスタム TLS セキュリティポリシー、トレース分析、リダイレクトやリライトなどの高度なルーティング機能が追加されています。
WAF-enhanced Edition:Standard Edition のすべての機能を含み、アプリケーション層の Web セキュリティのために Web Application Firewall (WAF) 3.0 を統合します。
WAF インスタンスをアクティベートしていない場合、WAF-enhanced Edition の ALB インスタンスを作成すると、従量課金の WAF 3.0 インスタンスが自動的にアクティベートされます。
サブスクリプションベースの WAF 3.0 インスタンスが有効な場合、WAF-enhanced Edition の ALB インスタンスを作成しても、追加の WAF 料金は発生しません。
有効な WAF 2.0 インスタンスがある場合は、まず WAF 2.0 インスタンスを解放するか、WAF 3.0 に移行する必要があります。
デフォルトでは、ALB は X-Forwarded-Proto ヘッダーを有効にしません。WAF 2.0 インスタンスを解放した後、ALB インスタンスに直接アクセスすると、バックエンドサービスがプロトコル (HTTP または HTTPS) を正しく識別できないため、無限リダイレクトなどのサービスの問題が発生する可能性があります。この問題を回避するには、ALB のリスナー設定で X-Forwarded-Proto リクエストヘッダーを手動で有効にしてください。
(このパラメーターは、[インスタンスネットワークタイプ] が [インターネット] に設定されている場合にのみ使用できます) 共有帯域幅に追加:デフォルトでは、2 つのアベイラビリティーゾーンにデプロイされた ALB インスタンスのパブリック帯域幅制限は 400 Mbit/s です。インスタンスを 共有帯域幅 インスタンスに追加して、より高い帯域幅制限を取得できます。
(このパラメーターは、[インスタンスネットワークタイプ] が [インターネット] に設定されており、[共有帯域幅に追加] を選択していない場合にのみ使用できます) パブリック IP 課金方法:デフォルトの課金方法は データ転送量課金 であり、変更することはできません。
データ転送量課金モードでは、帯域幅制限は最大しきい値を表すものであり、帯域幅を保証するものではありません。リソースの競合期間中は、実際の帯域幅が低くなる可能性があります。
インスタンス名とリソースグループ:管理を簡素化するために、分かりやすい名前を指定し、リソースグループを選択してください。作成後、インスタンス ページで名前を変更するか、タグを使用して管理できます。
API
CreateLoadBalancer API を呼び出して、Application Load Balancer インスタンスを作成します。
次のステップ
サーバーグループの作成:ALB インスタンスから転送されたリクエストを受信するターゲットサーバーのグループを作成します。
リスナーの追加:ALB インスタンスにリスナーを追加して、受信リクエストの受け取り方法を定義します。HTTP、HTTPS、QUIC のリスナーを作成できます。
CNAME レコードの追加:ロードバランサーのドメインネームシステムがアップグレードされました。新しく作成された ALB インスタンスには、その DNS 名を使用して直接アクセスすることはできません。独自のドメイン名を使用し、そのドメイン名をインスタンスの DNS 名にマッピングする CNAME レコードを作成する必要があります。
インスタンスの解放
インスタンスが使用中であるかどうかにかかわらず、インスタンスの作成から解放されるまで インスタンス料金 が課金されます。不要なコストを避けるため、不要になったインスタンスは解放してください。
インターネット向けの ALB インスタンスを解放する際、ALB が自動的に作成してバインドした EIP を保持するかどうかを選択できます。Anycast EIP は保持できません。保持された EIP は従量課金で請求されます。手動でバインドした EIP は自動的に保持されます。
インスタンスの解放は、すべての設定を削除する元に戻せない操作です。注意して実行してください。
インスタンスが Container Service for Kubernetes (ACK) などの別のクラウドサービスによって管理されている場合、インスタンスを解放すると関連サービスが失敗します。この操作は元に戻せません。
インスタンスを解放する前に、サービスの中断を防ぐため、関連付けられているドメイン名を別のアドレスに変更してください。
インスタンスを解放する前に、インスタンスの [削除保護] が無効になっていることを確認してください。
コンソール
ALB コンソールの インスタンス ページに移動します。対象のインスタンスの 操作 列で、
> リリース を選択し、OK をクリックします。
API
DisableDeletionProtection API を呼び出して、インスタンスの削除保護を無効にします。
DeleteLoadBalancer API を呼び出して、ロードバランサーインスタンスを削除します。
削除保護と設定変更保護
削除保護と設定変更保護機能は、インスタンスの偶発的な削除や変更を防ぎます。
設定変更保護は、コンソール経由での変更のみを防ぎます。
コンソール
ALB コンソールの インスタンス ページに移動します。対象インスタンスの ID をクリックして、インスタンスの詳細 ページに移動します。インスタンスプロパティ セクションで、削除保護 と 設定変更保護モード を有効または無効にできます。
API
EnableDeletionProtection API と DisableDeletionProtection API を呼び出して、削除保護を有効または無効にします。
UpdateLoadBalancerAttribute API を呼び出す際に、
ModificationProtectionConfigのStatusパラメーターを設定して、設定変更保護を有効または無効にします。
課金
ALB は、従量課金とリソースプランの 2 つの課金方法をサポートしています。課金項目の詳細については、「ALB 課金の概要」をご参照ください。
クォータ
詳細については、「ALB クォータ」をご参照ください。