AWS Direct Connectを開通させてみた
本記事は、Japan Digital Design Advent Calendar 2023 の2日目の記事になります。
三菱UFJフィナンシャル・グループ(以下MUFG)の戦略子会社であるJapan Digital Design(以下JDD)でInfra Engineerをしている村田です。
本記事ではAWS Direct Connectを開通させてみたと題し、実際に開通させた経験をベースに手順や構成についてご紹介させていただきます。
なお本記事は2023年8月ごろの情報を元に記載しているため、最新情報を合わせてご確認いただくようお願い致します。
AWS Direct Connectとは
まず最初にAWS Direct Connectの概要を簡単にご説明します。
AWS Direct ConnectとはAmazon Web Services (以下AWS)が提供するサービスの一つで、オンプレミスの環境とAWSクラウドを接続することができます。
なおAWS Direct Connectは一般的に DX という略称が使われるので本記事でもDXと表記します。
前提条件
今回は以下のような条件でDXの環境を構築しました。
接続タイプは占有型を選択
開発環境として構築
冗長化は行わない
スモールな構成(DXGWを使わない)
データセンターと既存のAWSアカウントを接続する構成
DXロケーションはEquinixを利用
構築前の私の理解
DXというものについて「オンプレとクラウドをつなぐサービス」というくらいの認識しかなかったので、私の頭の中ではこんなイメージでした。
文字通り雲のように解像度の低い理解です。ここからドキュメントを調べたり実際に手を動かすことで理解を深めていきましたのでその過程も含めてご説明していきます。
構築作業全体像
今回、以下の流れで構築を進めました。
DX接続の作成
DXロケーションの事業者(Equinix)に構内接続の申込み
VPC側設定
仮想プライベートゲートウェイ(VGW)の設定
VIFの設定
ルートテーブルの設定
オンプレミス側のルータ設定
物理接続
それぞれ順を追って説明していきます。
構築作業詳細
1. DX接続の作成
まずDXの接続を作成します。これはAWS側の物理ポートを作成する作業と考えて頂ければわかりやすいかと思います。
DXのコンソール画面を表示し、 接続を作成するをクリックします。
接続を作成する の画面になるので接続の順序タイプ クラシック を選択します。
必要事項を記入し、最後に 接続を作成する をクリックして完了です。
(なお今回は開発環境なのでシングル構成で構築していますが、本番環境の場合は冗長化することをおすすめします)
これでDX接続の作成は完了です。ここからAWS側のリードタイムが必要なので数時間〜数日ほど待ちます。
数日後再度確認すると、以下のように状態が Down になっているかと思います。この状態になっていたら再度設定を開きます。
詳細設定の画面右上に LOAをダウンロードする というボタンがあるのでクリックし、ダウンロードします。
なおLOAは接続情報が記載されたPDFファイルです。こちらは後続の手順で必要となるため保管しておきます。
以上で一旦AWS側でのDX設定は完了です。
この時点での私の理解はこんな感じでした。
まだまだ雲のようにぼんやりしたイメージです。
2. DXロケーションの事業者(Equinix)に構内接続の申込み
DXにはロケーションというAWSと接続できるデータセンターが定められています。日本ではアット東京やEquinix、NEC等の事業者がロケーションを提供しています。ロケーションの一覧はこちらからご確認ください。
今回はDXロケーションの一つであるEquinixに対してAWSのラックと接続する構内接続を申込みます。(なお、前提としてEquinixにラックを契約している必要があります)
Equinix公式ドキュメント:https://docs.equinix.com/en-us/Content/Interconnection/Cross_Connects/xc-Order-cc.htm
まずEquinix Customer Portal にログインし、 オーダーとチケット -> Cross Connect の順に選択します。
Interconnection Catalog の画面が表示されるので 標準クロスコネクト を選択します。
標準クロスコネクトの画面が表示されるので、以下の要領で情報を入力します。
Aサイド:自社のラック情報やコネクタの種類などを入力
Zサイド:DX設定画面からダウンロードしたLOAファイルをアップロード
最後に金額が表示されるので、問題なければ 送信 をクリックします
これで構内接続の申込は完了です。これによりAWSラックと自社ラックを接続する構内配線が用意され、自社ラック内のパッチパネルまでケーブルが敷設されます。
この時点での私の理解はこんな感じでした。
オンプレミス側の構成はだいたい理解できてきました。
3. VPC側の設定
次にAWS側の設定を行うため再びAWSのマネジメントコンソールにログインします。
3-1. 仮想プライベートゲートウェイの作成
最初に仮想プライベートゲートウェイ(VGW)を作成します。これはVPC側のルータをイメージしてもらえればわかりやすいかと思います。
まずVPCの設定画面を開き、画面左のメニューから 仮想プライベートゲートウェイ を選択し、 画面右上の仮想プライベートゲートウェイを作成 をクリックします。
必要な情報を入力し、仮想プライベートゲートウェイを作成します。
ここで設定したASNは後ほどオンプレミス側のルータ設定に必要となります。
次に作成した仮想プライベートゲートウェイをVPCにアタッチします。(VPCは既に存在する前提です)
作成した仮想プライベートゲートウェイを選択し、 アクション -> VPCへアタッチ を選択します
対象のVPCを選択して VPCへアタッチ をクリックします。
以上で仮想プライベートゲートウェイの作成は完了です。
3-2. 仮想インターフェイス(VIF)の作成
次に仮想インターフェイスを作成します。DXの設定画面を開き 仮想インターフェイス -> 仮想インターフェイスを作成する を選択します
設定画面が表示されるので必要事項を入力し、仮想インターフェイスを作成します。(以下に記載されてないものは環境に合わせて適宜入力してください)
タイプ:プライベート
仮想インターフェイスの所有者:自分のAWSアカウント
ゲートウェイタイプ:仮想プライベートゲートウェイ
仮想プライベートゲートウェイ:先ほど作成したものを指定
以上で仮想インターフェイスの作成は完了です。
3-3. ルートテーブルの設定
次にルートテーブルの設定を行います。これによりオンプレミス側のルータとの間で経路の交換が行われるようになります。
VPCの設定画面を開き、サブネットに関連付けられたルートテーブルを選択します。詳細画面が表示されるので ルート伝搬 タブを選択し、 ルート伝搬の編集 をクリックします
ルート伝搬の編集画面が表示されるので、伝搬を有効化し保存をクリックします。
以上でVPCリソースの設定は完了です。
(なお本番環境ではDirect Connect Gatewayを利用することをおすすめします)
4. オンプレミス側ルータの設定
次にオンプレミス側のルータにDXと接続するための設定を行います。
この設定は機種によって変わるのですが、普通のBGPルータと接続する設定を入れてもらえれば問題ないです。
5. 物理接続
ここまで設定ができたらいよいよ物理的に接続します。
2.の手順で依頼した構内配線が自社ラック内のパッチパネルまで来ているはずなので、ルータのWAN側インターフェイスを接続します。
問題なく接続できていればDX接続の画面上で状態が available と表示されます。
これでオンプレミスのルータとDX間でBGPセッションが確立できている状態となり、無事開通できました。
以上が開通するまでの手順となります。
構築後の私の理解
最初は雲のようにふわふわとした理解でしたが、開通するまでの一連の手順を経験して詳細な構成を理解することができました。
後からドキュメントを見ると上記のような構成と書いてはいるのですが、机上の情報だけだと理解が難しいと感じました。やはり手を動かすことは大事ですね。
苦労した点など
今回の作業を通じて以下のような苦労ポイントがありました。
AWS側の設定は割とドキュメントがあったが、Equinixも含めた一気通貫の情報がなかなか見つからず困った
オンプレミスのルータと接続した時にBGPセッションが確立しなかったが、その時の切り分けが難しかった(オンプレ同士と違って情報量が少なく苦労した)
上記の原因は結局物理インターフェイスの仕様に起因する問題だったので、オンプレネットワークとつまずきポイントは同じだと感じた
まとめ
今回初めてDXの開通を行いましたが、これまでなかなか機会がなかったので良い経験ができました。
以上となります。最後までご覧いただきありがとうございました。
Japan Digital Design株式会社では、一緒に働いてくださる仲間を募集中です。カジュアル面談も実施しておりますので下記リンク先からお気軽にお問合せください。
この記事に関するお問い合わせはこちら
Technology and Development Division
Ken Murata
この記事が気に入ったらサポートをしてみませんか?