batchiです。

ELBには下記2つのスキームがありますね。

●インターネット向け(internet-facing)
●内部向け(internal)

両者の違いは、ELBのロードバランサーノードが、
グローバルIPを持つか否かです。

今回は、内部向けロードバランサーに対して、
オンプレミス環境からDirectconnect経由でアクセスする際のケースを考えてみます。

IPではなくエンドポイントで指定する

ELBという一つのコンポーネントではありますが、
裏側では1つ以上のロードバランサーノードがそれぞれIPを保有しています。

このIPは可変であるため、ELBへのアクセスはIPではなく、
エンドポイントで指定する必要があります。
複数プールされているIPのいずれかが、DNSラウンドロビンで返されます。

エンドポイントとは

僕自身しっくりくる説明ができないのですが、
「グローバルに解決可能なホスト名です」というと伝わることが多いです。

内部向けロードバランサーのエンドポイント

こういった形式で発行されます。
internal-<ELB名>-<ランダムな数字9桁程度>.<リージョン名>.elb.amazonaws.com

エンドポイントからIPアドレスの正引き

エンドポイントに紐づくIPは一体いくつなのか。
これを解決できるのはAWS側で管理しているDNSサーバだけです。
ではどうやってAWS管理のDNSサーバに問い合わせに行くかというと、

今回考えているケースでは以下の2パターンが考えられます。

①インターネット経由で名前解決パターン
②AmazonDNSを用いて名前解決パターン

ELB名前解決

①インターネット経由で名前解決パターン

フルサービスリゾルバ(DNSキャッシュサーバ)がインターネット上に出ていき、
「.(ルート)」から順に反復問い合わせを行って名前解決を実施します。

今回のケースだと、
「.(ルート)」のDNSサーバに問い合わせをし、
その結果から「.com」のDNSサーバに問い合わせをし、
その結果から「amazonaws.com」のDNSサーバに問い合わせをし、
その結果から「elb.amazonaws.com」のDNSサーバに問い合わせをし…..といった具合ですね。

②AmazonDNSを用いて名前解決パターン

インターネットに出たくない、という場合は、AmazonDNSを用いるパターンがあります。
VPCの内部でエンドポイントの名前解決が可能です。
(AmazonDNSが裏側でインターネットに出ていってる?)

VPCでCIDRを切った時に、
合計5つほどAWS側で予約されているために使えないIPアドレスがありますが、
そのうちの1つがAmazonDNSに使用されます。

VPC内部からしか問い合わせを受け付けていないので、
オンプレミスのリゾルバから直接参照することはできず、
VPC内部にフォワーダとなるDNSサーバを構築する必要があります。

正引きで返ってくるのはプライベートIP

上記のいずれかのパターンで名前解決が正常に行われても、
リゾルバに返されるのはプライベートIPアドレスである点は注意が必要です。

オンプレミスのIP範囲とVPCのIP範囲がバッティングしていると、
よろしくないことになります。

設計を行う時はネットワークアドレスの重複がおこらないようにしましょう。
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Subnets.html#VGW

こちらからも以上です。

TOP