まだ「完全に理解した」みたいな状態で書いていないので悪しからず。。

(理解したとは言っていない)

もし間違っている部分あればコメントして頂けると嬉しいです。

とは AWS Direct Connect - AWS Direct Connect

目次

構築手順

なにはともあれ、実際にどうやって構築するのか見てみます。

このブログに丁寧にまとめられていました。

やさしいDirect Connect の構築 | Oji-Cloud

この手順をまとめると、以下のようになります。

  1. Direct Connectを使用するためのConnectionを作成する
  2. 仮想プライベートゲートウェイを作成する
  3. 仮想インターフェースを作成する
  4. ルートテーブルに作成した仮想プライベートゲートウェイを設定する
  5. セキュリティグループにDirect Connectで使用するIPを設定する

公式に乗っているフローはこんな感じ。

AWS Direct Connectとオンプレネットワークがどのように連結されるかを大まかに表した図

それぞれの手順にポイントがあります。

1. Direct Connectを使用するためのConnectionを作成する

コネクションの作成方法として、「専用接続」と「ホスト型接続」の2種類があります。

AWS Direct Connectとは?基本を解説!メリット・デメリットから利用方法まで|ブログ|アイテック阪急阪神トータルクラウドソリューション

それぞれ以下のような特徴があります。

  • 専用接続
    • 専用の物理回線を引く
    • 複数のVPCを使用する場合、料金コストはこちらのほうがよい
  • ホスト型接続
    • 一つの物理回線をシェアする
    • 一つのVPCであればこちらのほうが料金コストはよい

また、契約方法も2種類存在します。

  • 直接契約
    • AWSとDirectConnectを直接契約する
    • 回線引き込みやネットワーク設定など全て自分でやる必要がある
    • 自身がAPNパートナーになる場合はこちら
  • APNパートナーと契約
    • APNパートナーが代理人となり、各種セッティングを行ってくれる
    • パートナーごとに専用接続・ホスト型接続への対応状況は異なる
    • パートナー一覧はここを確認

直接契約の場合は結構作業が大変なので、通常は「APNパートナーと契約」してConnectionを作成します。

ここで作成したコネクションにより、DirectConnectロケーションとつながるようになります。

DirectConnectロケーションの一覧は以下のとおりです。

AWS Direct Connect | Find Locations | Amazon Web Services (AWS)

2023-07-15現在、Asia Pacific (Tokyo)には以下の6つのロケーションがあります。(そのうち2つは台北ですが)

何気にNECがいますね。

Asia Pacific (Tokyo)のDirectConnectロケーション一覧

コネクションができたら、この後は仮想プライベートゲートウェイと仮想プライベートインターフェースを使用してDirectConnectロケーションとVPCを接続していく作業になります。

2. 仮想プライベートゲートウェイを作成する

VPCとプライベートに通信可能とするための入口を作成します。

Q: 仮想プライベートゲートウェイ (VGW) とは何ですか?

仮想プライベートゲートウェイ (VGW) は VPC の一部分であり、AWS が管理する VPN 接続と AWS Direct Connect 接続のために、エッジルーティングを提供します。仮想プライベートゲートウェイを AWS Direct Connect ゲートウェイに関連付けて、VPC で使用します。詳細については、このドキュメントを参照してください。

よくある質問 - AWS Direct Connect | AWS

まず、DirectConnectの中で登場するゲートウェイは「DirectConnectゲートウェイ」「仮想プライベートゲートウェイ」「トランジットゲートウェイ」の3つです。

使い分けとしては以下のとおりです。

  • 一つのVPCと接続したい場合:仮想プライベートゲートウェイ
  • 複数のVPCと接続したい場合:トランジットゲートウェイ
  • 仮想プライベートゲートウェイもしくはトランジットゲートウェイを一つのDirectConnect接続を経由して使用したい場合:DirectConnectゲートウェイ

DirectConnectゲートウェイだけちょっと説明が長いですが、要はこれを使うと複数のゲートウェイに対して個別に仮想インターフェースを作成しなくても済む、というふうに考えればよいです。

[新機能] AWS Direct Connect Gatewayで世界中のAWSリージョンとプライベート接続する | DevelopersIO

ただし、DirectConnectゲートウェイに関連付けられるのは「仮想プライベートゲートウェイ」か「トランジットゲートウェイ」かのどちらかです。

どちらも関連付けたDirectConnectゲートウェイは作成できません。

Direct Connect ゲートウェイが既にトランジットゲートウェイに関連付けられている場合、Direct Connect ゲートウェイを仮想プライベートゲートウェイにアタッチすることはできません。

AWS Direct Connect 仮想プライベートゲートウェイの関連付け - AWS Direct Connect

Direct Connect ゲートウェイが既に仮想プライベートゲートウェイに関連付けられている場合、または仮想プライベートインターフェイスにアタッチされている場合は、Direct Connect ゲートウェイを Transit Gateway にアタッチすることはできません。

AWS Direct Connect ゲートウェイとトランジットゲートウェイの関連付け - AWS Direct Connect

仮想プライベートゲートウェイ、トランジットゲートウェイにそれぞれDirectConnectゲートウェイをつなげた図が以下になります。

仮想プライベートゲートウェイをDirectConnectゲートウェイと接続するフロー
トランジットゲートウェイをDirectConnectゲートウェイと接続するフロー

一応、AWSとしてはDirectConnectゲートウェイを使用することを推奨しているようです。

(後述する仮想インターフェースの作成画面で推奨されていました。)

仮想インターフェースの作成画面(ゲートウェイタイプ)

また、トランジットゲートウェイについてはこちらを参照してください。

Transit Gatewayを利用してVPC間で通信してみた | DevelopersIO

さて、それでは仮想プライベートゲートウェイの作成を行うとどうなるか見てみます。

これが作成画面です。

仮想プライベートゲートウェイ作成画面

入力にはゲートウェイの名前と「デフォルトASN」「カスタムASN」の設定があります。かなりシンプルですね。

ただ、そもそもASNってなんだ???

ASN(自律システム番号)とは

ASN(Autonomous System Number)の略称です。

ASとは、翻訳すると「自律システム」となります。

このシステムは、インターネット全体を一つのものとして管理するのではなく、小さな単位に分けて管理するためのシステムのことです。

そして、この小さいインターネットに対して割り振られる番号がASNです。

この番号は全世界で使用されているASNでユニークなものでなければなりません。グローバルIPアドレスと一緒ですね。

自律システム【インターネット】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ただし、DirectConnectゲートウェイを使用する場合、仮想プライベートゲートウェイまたはトランジットゲートウェイのASNは重複しても良いみたいです。

Transit GatewayやDirect ConnectのAS番号について - サーバーワークスエンジニアブログ

BGP(ボーダーゲートウェイプロトコル)とは

更にDirectConnectの理解を深める上で、ANSに関連した「BGP」という概念も重要です。

BGP(Border Gateway Protocol)とは、異なるASどうしがルーティングテーブルを更新するために使用するプロトコルのことです。

BGPとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ここまで来ると、そもそもルーティングテーブルってなんだっけ?ってなってきましたが、CIDRとかサブネットマスクとかで指定しているあれですね。

こちらもあわせて参考になるサイトがありました。

ルーティングとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

3. 仮想インターフェースを作成する

ゲートウェイを作成したら、次に仮想インターフェースを作成します。

仮想インターフェースを使用して、DirectConnectロケーションと先ほど作成したゲートウェイをつないでいきます。

仮想インターフェースの作成画面は、ゲートウェイの作成画面よりも入力項目が断然多いです。

まず仮想インターフェースのタイプを選択します。

  • プライベート
    • VPCとプライベートな接続を確立したい場合
  • パブリック
    • VPC以外のリソースと接続したい場合
    • 「パブリック」という言葉から、どこからでも接続可能なインターフェース??と勘違いしてしまいましたが、あくまで確立されたプライベートな接続の中で、VPC以外のグローバルリージョンなサービスに接続するための方法です
  • トランジット
    • DirectConnectゲートウェイでトランジットゲートウェイを使用している場合

以下の図でも、パブリックタイプとプライベートタイプの接続が描写されています。

VPCを使用するかどうかで使い分けができることがわかります。

AWS Direct Connectとオンプレネットワークがどのように連結されるかを大まかに表した図

作成画面はタイプごとに違います。

仮想インターフェースの作成画面(プライベート)
仮想インターフェースの作成画面(パブリック)
仮想インターフェースの作成画面(トランジット)

いずれにも共通しているのは、「VLAN」の設定と「オンプレミスサーバーのASN」の設定です。

VLAN(仮想ローカルエリア・ネットワーク)とは

ローカルエリアネットワークを、論理的に小分けにしたもののことです。

VLANとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ややこしいですが、このVLANを小分けにするための方法は一つではなく複数あり、その中の一つに「タグVLAN」というものがあります。

タグVLANとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

このタグVLANの規格が「IEEE 802.1Q」です。

IEEE 802.1Qとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

DirectConnectでは、このVLANの方式として「IEEE 802.1Q」を使用しています。

また、コネクションの作成時に「ホスト型接続」を選択している場合、この値はホストから提供されたものを使用します。

仮想ローカルエリアネットワーク (VLAN) の、まだ接続で使用されていない一意のタグ。値は 1 ~ 4094 を指定する必要があります。またイーサネット 802.1Q 規格を満たしている必要があります。このタグは、AWS Direct Connect 接続を通過するすべてのトラフィックに必要です。

ホスト接続がある場合、AWS Direct Connect パートナーがこの値を提供します。仮想インターフェイス作成後に値を変更することはできません。

AWS Direct Connect 仮想インターフェイスとホスト仮想インターフェイス - AWS Direct Connect

専用接続の場合、VLANはどうやって設定するんだろう…?

オンプレミスサーバーのASN

オンプレミスサーバーのASNを添付します。

ちなみに、グローバルIPが分かれば以下のサイトからすぐにわかります。

The Internet Routing Registry - RADb

仮想インターフェース作成時のその他入力項目

それ以外の入力項目は、

  • 仮想インターフェース名: 仮想インターフェースの名前
  • 接続: 作成したConnectionを設定
  • 仮想インターフェースの所有者: 自分のAWSアカウントの場合はゲートウェイタイプと使用するゲートウェイを選択しますが、別のAWSアカウントの場合はそれらの項目の入力はせず、アカウントIDの指定を行います。
仮想インターフェースの所有者で「別のAWSアカウント」を選択した場合
  • アドレスファミリー: BGPの通信にIPv4かIPv6のどちらを使用するか
  • ルーターのピアIP
    • Direct Connect接続を行う対象のオンプレミスネットワーク側のルーターのIPアドレス

Direct Connect接続において、オンプレミス側のネットワークとAWS側のネットワークを接続するために、オンプレミス側のルーターとDirect Connectゲートウェイの間でBGP (Border Gateway Protocol) を使用します。このBGPセッションを確立するためには、オンプレミス側のルーターのIPアドレスを指定する必要があります。

  • AmazonルーターのピアIP
    • Direct Connectゲートウェイ(AWS側)のIPアドレス

Direct Connect接続において、AWS側のネットワークとオンプレミス側のネットワークを接続するために、AWS側のルーター(Direct Connectゲートウェイ)とオンプレミス側のルーターの間でBGPセッションを確立します。そのため、AWS側のルーターのIPアドレスを指定する必要があります。

イーサネット標準の最大フレームサイズ、1518バイトを超えるフレームサイズのことを「Jumbo(ジャンボ)フレーム」と呼びます。ジャンボフレームを有効にすると、一度に転送するデータサイズが大きくなり、その回数も少なくなるため、実行データ転送速度(スループット)の向上が見込めます。ジャンボフレームに対応し、それを利用することで、高速・大量なデータ転送に伴う負荷を軽減し、スループットが向上します。

ジャンボフレームについて

  • SiteLink
    • DirectConnect特有の機能
    • 別途課金あり

SiteLink は、仮想プライベートインターフェイス用のオプションの Direct Connect の機能であり、AWS ネットワーク上で利用可能な最短パスを使用して、同じ AWS パーティション内の任意の 2 つの Direct Connect の POP (Point Of Presence) 間の接続を可能にします。これにより、トラフィックをリージョン経由でルーティングすることなく、AWS グローバルネットワークを介してオンプレミスネットワークに接続できます。

AWS Direct Connect 仮想インターフェイスとホスト仮想インターフェイス - AWS Direct Connect

Introducing AWS Direct Connect SiteLink | Networking & Content Delivery

  • タグ: AWSの管理に使用するリソースタグ

4. ルートテーブルに作成した仮想プライベートゲートウェイを設定する

使用するルートテーブルに、作成した仮想プライベートゲートウェイをターゲットとして指定します。

インターネットゲートウェイの設定時と同じです。

5. セキュリティグループにDirect Connectで使用するIPを設定する

セキュリティグループのインバウンド設定から、自身のIPアドレスを設定し、通信可能な形にします。

これでDirectConnectを使用した通信ができるはず。。

感想

ネットワーク関連の前提知識を多く必要とするため、フローを理解するのに時間がかかってしまいました。

まだまとめきれていない部分があるので、後日またまとめるかも。

(書いている箇所でなにかあればコメントお願いします!)

参考

AWS Direct Connectの接続をザックリ理解する - サーバーワークスエンジニアブログ

AWS再入門ブログリレー AWS Direct Connect 編 | DevelopersIO