マルチAZで利用しているNLBのドメインに紐づく単一のIPアドレスを運用したい(GAを使わず)

0

お世話になります。

・マルチAZ構成でNLBを用いた場合にドメイン名と1:1で対応するような代表IPアドレスを用いることはできないのでしょうか?

NLBは固定IPを紐づけることができますが、これはサブネットごとのため、たとえば3つのAZをまたがるマルチAZ構成で冗長化している場合には、3つの固定IPアドレスを割り振らないといけない認識です。 NLBのドメイン名でCNAMEレコード登録するのであれば、この点は問題にならないのですが、CNAMEレコードは非常に制限が多いため、要件を満たさず使用できません。 AWS内で完結するシステムではないため、Route53のエイリアス機能も用いることはできません。

そこでAレコード登録でNLBにトラフィックを転送したい場合、上記の3つのIPアドレスをAレコード登録するような形となり、これはDNSラウンドロビンにはなっておりますがNLBのフローレベルのロードバランシングにはなっていない認識でおります。

Global Accelerator(GA)を用いてエッジ用の固定IPを作成し、エンドポイントとしてNLBを紐づけることで解決可能かと思っていたのですが、NLBとGAを併用すると、クライアントIPが保持されない(X-Forwarded-ForなどのHTTPヘッダに本来のwebクライアントのIPが表示されなくなる)といった問題があり、これもまた、要件的に採用できません。

同じ問題に困っている方がおられそうだと思っているのですが、 この件に関しまして、何かしら知見などお持ちの方おられましたら、ご教授いただけたりしませんでしょうか?

1回答
0

そこでAレコード登録でNLBにトラフィックを転送したい場合、上記の3つのIPアドレスをAレコード登録するような形となり、これはDNSラウンドロビンにはなっておりますがNLBのフローレベルのロードバランシングにはなっていない認識でおります。

NLB の1つの IP アドレスに対し複数のリクエストを送信した場合、NLB は登録されている複数のターゲットに対し、リクエストをロードバランスいたします。 この時ターゲットを選択するアルゴリズムについては以下ドキュメントをご参照ください。

-Elastic Load Balancing の仕組み#リクエストルーティング

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing

そのため、NLB の複数の IP アドレスの1つを DNS の A レコードに登録しても、NLB としての可用性は低下いたしますが複数のターゲットへの負荷分散を行うことは可能となります。

なお、NLB の1つの IP アドレスしか DNS の A レコードに登録しない場合には、その IP アドレスが存在するアベイラビリティゾーンに問題が発生した際に他の NLB の IP アドレスは利用可能であるにも関わらず、NLB を経由してリクエストを行うことができなくなります。 このような状況が発生した際の影響を軽減するために、リクエストの状態を監視することで1つのアベイラビリティゾーンで発生した問題を検知し、DNS の A レコードを NLB の他の IP アドレスに変更するといった仕組みを構築することもご検討いただければ幸いです。

AWS
回答済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン