このトピックでは、Network Load Balancer (NLB) に関するよくある質問とその回答を紹介します。
NLB は特定のインスタンスタイプを提供していますか?
いいえ。NLB は特定のインスタンスタイプを提供していません。インスタンスを作成する際に、インスタンスタイプを指定する必要はありません。
NLB は自動スケーリングをサポートしています。各 NLB インスタンスは、最大 1 億の同時接続数と 100 Gbit/s の帯域幅をサポートします。NLB は、クラシックロードバランサー (CLB) よりも高いレイヤー 4 負荷分散性能をサポートします。NLB の使用を推奨します。NLB と CLB の違いの詳細については、「機能と特徴」をご参照ください。
NLB インスタンスのセキュリティグループに設定したインバウンドルールが有効にならないのはなぜですか?
NLB インスタンスが拒否ルールを含まないセキュリティグループに追加された場合、NLB インスタンスのリスナーポートはすべてのリクエストを許可します。特定の IP アドレスからのリクエストのみを NLB インスタンスに許可するには、セキュリティグループにそれらの IP アドレスを許可するルールを追加します。セキュリティグループは、明示的に許可されていないトラフィックをデフォルトで拒否します。
セキュリティグループの管理方法の詳細については、次のトピックをご参照ください。
-
特定の IP アドレスからのリクエストをブロックまたは許可する方法の詳細については、「セキュリティグループをブラックリストまたはホワイトリストとして使用する」をご参照ください。
-
プロトコルとポートに基づいて NLB インスタンスのアクセス制御を有効にする方法の詳細については、「NLB インスタンスのセキュリティグループの設定」をご参照ください。
NLB インスタンスの仮想 IP アドレス (VIP) がリクエストを転送できないのはなぜですか?
エラーをトラブルシューティングするには、次の操作を実行します。
-
クロスゾーン分散 が無効になっているかどうかを確認します。クロスゾーン分散 を有効にすると、NLB インスタンス宛てのリクエストを他のゾーンのバックエンドサーバーに転送できます。クロスゾーン分散 を無効にし、かつ NLB インスタンスのゾーンにバックエンドサーバーがデプロイされていない場合、そのゾーンの VIP は NLB インスタンス宛てのリクエストの転送に使用できません。
-
ゾーンが DNS レコードから削除されているかどうかを確認します。ゾーンが DNS レコードから削除されると、そのゾーンの VIP は NLB インスタンスの A レコードから削除されます。VIP は NLB インスタンスのドメイン名に解決されなくなります。その結果、そのゾーンの VIP は、NLB インスタンスのドメイン名宛てのリクエストの転送に使用できなくなります。
-
ネットワークアクセスコントロールリスト (ACL) が NLB インスタンスで有効になっており、100.64.0.0/10 CIDR ブロックがホワイトリストにないかどうかを確認します。VIP の vSwitch に ACL を設定し、100.64.0.0/10 CIDR ブロックをホワイトリストに追加しない場合、100.64.0.0/10 はゾーンのヘルスチェックに使用されるため、VIP はヘルスチェックに失敗します。その結果、ゾーンの VIP は NLB インスタンスの A レコードから削除され、NLB インスタンスのドメイン名宛てのリクエストの転送に使用できなくなります。
サーバーグループ内の ECS インスタンスがバックエンドサーバーとクライアントの両方として機能するように NLB インスタンスを設定するにはどうすればよいですか?
NLB インスタンスに関連付けられているサーバーグループで、クライアントアドレスの保持 を無効にします。これにより、サーバーグループ内の Elastic Compute Service (ECS) インスタンスは、リクエストを処理するバックエンドサーバー、および NLB インスタンスにアクセスするクライアントとして機能できます。この場合でもクライアント IP アドレスを取得する場合は、関連付けられているリスナーで Proxy Protocol を有効にします。詳細については、次のリファレンスをご参照ください。
-
クライアント IP の保持を無効にする方法については、「基本情報の編集」をご参照ください。
-
TCP リスナーで Proxy Protocol を有効にする方法については、「TCP リスナーの追加」をご参照ください。
-
UDP リスナーで Proxy Protocol を有効にする方法については、「UDP リスナーの追加」をご参照ください。
サブスクリプションの EIP を NLB インスタンスに関連付けることはできますか?
いいえ、できません。
NLB インスタンスに関連付けることができる Elastic IP アドレス (EIP) は、次の要件を満たす必要があります。
-
課金方法:従量課金
-
インターネットの測定方法:データ転送量課金
-
Internet Shared Bandwidth インスタンスとの関連付け:なし
NLB インスタンスのローカル IP のホストルートを追加できないのはなぜですか?
NLB は、各ゾーンの対応する vSwitch の CIDR ブロックからローカル IP を割り当てます。たとえば、ゾーン H では、ローカル IP 10.0.0.86 は 10.0.0.0/24 vSwitch CIDR ブロックに属し、ゾーン I では、ローカル IP 10.0.1.16 は 10.0.1.0/24 vSwitch CIDR ブロックに属します。VPC ルートテーブルには、各 vSwitch CIDR ブロックをカバーするシステムローカルルート (たとえば、10.0.0.0/24 → local および 10.0.1.0/24 → local) が自動的に含まれます。これらのシステムルートによって、NLB のローカル IP への到達可能性はすでに保証されています。
CreateRouteEntry を呼び出してローカル IP (たとえば、10.0.0.86/32) の /32 ホストルートを追加しようとすると、システムは InvalidCidrBlock エラーを返します。これは、既存のローカルルート CIDR ブロック内にすでに含まれている IP アドレスのルートを追加できないようにする VPC の設計上の制限です。
NLB のローカル IP のルートを手動で設定する必要はありません。VPC ルートテーブルのシステムローカルルートは、各ゾーンの NLB インスタンスへのトラフィックの到達可能性をすでに保証しています。
NLB インスタンスのサービス IP アドレスは変更されることがありますか?
NLB インスタンスが作成されると、システムはトラフィックを処理するためにプライベート IP アドレスまたは EIP を割り当てます。このサービス IP アドレスは、作成後に自動的に変更されることはありません。ただし、次のシナリオではサービス IP アドレスが変更される可能性があります。
-
ゾーンの変更:インスタンスのゾーンを更新すると、IP アドレスが追加または削除される場合があります。インターネット向けインスタンスの場合、EIP が追加または削除されます。内部インスタンスの場合、プライベート IP アドレスが追加または削除されます。
-
ネットワークタイプの変更:内部からインターネット向けへの変更: 新しい EIP または Anycast EIP がインスタンスに割り当てられます。インターネット向けから内部への変更: すべてのパブリック IP アドレスのインスタンスとの関連付けが解除されます。
NLB インスタンスの VIP への Ping を無効にできますか?
はい。NLB では、セキュリティグループを使用してインバウンドトラフィックを管理できます。Ping を無効にするには、インスタンスに関連付けられているセキュリティグループに、すべての ICMP トラフィックを拒否するインバウンドルールを追加してください。
NLB インスタンスのデフォルトのドメイン名に直接アクセスできないのはなぜですか?
NLB インスタンスに割り当てられた DNS ドメイン名 (例:nlb-xxx.cn-shanghai.nlb.aliyuncsslb.com) は ICP ライセンスを取得していないため、ブラウザで直接アクセスすることはできません。NLB インスタンスにアクセスするには、ICP ライセンスの取得が完了している独自のドメイン名を使用し、NLB インスタンスの DNS ドメイン名を指す CNAME レコードを追加してください。
NLB インスタンスに関連付けられている IP アドレスを確認するにはどうすればよいですか?
-
NLB コンソールにログインします。左側メニューで、 [インスタンス] をクリックします。
-
[インスタンス] ページで、対象の NLB インスタンスの ID をクリックします。
-
「インスタンス詳細」ページの[ゾーン]セクションで、各ゾーンの仮想 IP アドレス (VIP) を表示できます。
-
NLB インスタンスがインターネット向けインスタンスである場合は、インスタンスに関連付けられている Elastic IP アドレス (EIP) も表示できます。
内部 NLB インスタンスの場合は VIP のみ、インターネット向け NLB インスタンスの場合は EIP と VIP の両方が表示されます。
NLB インスタンス経由でサービスにアクセスすると、接続拒否エラーが発生するのはなぜですか?
NLB インスタンス経由でサービスにアクセスしたときに、curl が "Connection refused" エラーを返す場合、これは通常、サーバーグループに設定されたバックエンドポートが、バックエンドサービスが実際にリッスンしているポートと異なることが原因です。その結果、NLB はバックエンドにトラフィックを転送できません。
この問題をトラブルシューティングするには、次の点を確認します。
-
ポートの一貫性を確認する:NLB コンソールで、サーバーグループに設定されているバックエンドポートを確認します。バックエンドサーバーにログインし、
ss -tlnpを実行して、バックエンドサービスが実際にリッスンしているポートを確認します。両方のポートは一致している必要があります。 -
セキュリティグループを確認する:NLB インスタンスのセキュリティグループとバックエンド ECS インスタンスのセキュリティグループの両方で、リスナーポートでのインバウンドトラフィックが許可されていることを確認してください。
-
ヘルスステータスを確認する:NLB コンソールで、リスナーのヘルスステータスを確認し、バックエンドサーバーが正常であることを確認してください。
プライベートネットワーク接続とディザスタリカバリ
同じ VPC 内の ECS インスタンスが NLB を介してバックエンドサービスに接続するにはどうすればよいですか?
同じ VPC 内の ECS インスタンスは、NLB の仮想 IP アドレス (VIP) を直接使用してバックエンドサービスに接続できます。たとえば、ECS インスタンスは、NLB の VIP に接続することで、ポート 1883 の MQTT ブローカーに接続できます。VIP は、NLB インスタンスの作成時に割り当てられる静的なプライベート IP アドレスであり、その後変更されることはありません。
NLB は、MQTT 用のポート 1883 を含む、任意のポート番号での TCP および UDP プロトコルのリスナーをサポートしています。NLB インスタンスの設定時に、必要なプロトコルとポートのリスナーを設定できます。
VIP 直接接続と CNAME ドメイン名接続の違いは何ですか?
NLB は、VPC 内からバックエンドサービスに接続する 2 つの方法を提供します。静的 VIP を直接使用する方法と、NLB の CNAME ドメイン名を使用する方法です。次の表は、2 つのオプションを比較したものです。
|
比較項目 |
VIP 直接接続 |
CNAME ドメイン名 |
|
IP タイプ |
静的プライベート IP アドレス |
DNS で解決されたプライベート IP アドレス |
|
ゾーン障害時の AZ フェイルオーバー |
非サポート — トラフィックはゾーン VIP に固定されたままになります |
サポート — 異常なゾーンは DNS から自動的に削除されます |
|
推奨されるユースケース |
一時的なテストまたはシングル AZ デプロイ |
本番環境または高可用性シナリオ |
バックエンドサービスへの接続には、NLB インスタンスのプライベート CNAME ドメイン名を使用することを推奨します。これにより、AZ レベルのディザスタリカバリが可能になります。NLB の CNAME を直接使用することも、PrivateZone を設定してカスタムプライベートドメイン名を NLB の CNAME に解決することもできます。
インターネット向け NLB インスタンスの CNAME を VPC 内部アクセスに使用できますか?
いいえ。インターネット向け NLB インスタンスの CNAME は、Elastic IP アドレス (EIP) に解決されます。VPC 内部トラフィックが EIP をターゲットにすると、VPC を出て Alibaba Cloud のインターネット境界を経由してルーティングされ、そこでブロックされます。
VPC 内部アクセスには、 内部 (プライベートネットワーク) NLB インスタンス の CNAME を使用するか、プライベート NLB インスタンスの CNAME を使用して PrivateZone を設定してください。
NLB のマルチ AZ ディザスタリカバリを設定するにはどうすればよいですか?
次のエンドツーエンド設定により、AZ レベルの自動フェイルオーバーが可能になります。
-
NLB インスタンスが少なくとも 2 つのアベイラビリティゾーンにまたがるように作成するか、またはまたがっていることを確認します。各ゾーンには専用の静的 VIP が割り当てられます (例:ゾーン H:10.0.0.86、ゾーン I:10.0.1.16)。
-
クロスゾーン転送を有効にします。 NLB インスタンスの詳細ページにある [ゾーン] セクションで、[クロスゾーン転送] が有効になっていることを確認します。この機能を有効にすると、ゾーンが利用不可になったときに、NLB は他のゾーンのバックエンドサーバーにトラフィックを転送します。
-
複数のゾーンからバックエンドサーバーを追加します。各アベイラビリティゾーンからサーバーグループに ECS インスタンスを追加して、バックエンドの冗長性を確保します。
-
NLB インスタンスへの接続には、VIP ではなく NLB の CNAME ドメイン名を使用します。ゾーンに障害が発生すると、NLB はそのゾーンの VIP を DNS レコードから自動的に削除します (DNS レコードの削除)。トラフィックは自動的に正常なゾーンにルーティングされます。
[クロスゾーン転送] を有効にし、CNAME ドメイン名を使用すると、NLB は AZ レベルの自動フェイルオーバーを提供し、ゾーンレベルのディザスタリカバリをサポートします。