はじめに
プロジェクトでOutpostsを構築することがあり、オンプレミスとの接続方法やルーティング設定について勉強する機会となりました。
個人環境では中々触ることがない大規模なサービスを扱う経験を得たため、調べた内容や構築にあたって得た知見等をまとめます。
この記事でわかること
- Outpostsとオンプレ間の接続について
- LGW、Outpostsサブネットのルートテーブル設定について
Outpostsとは
はじめに、主題のOutpostsを一言で説明すると、AWS Regionのサービスをオンプレミス上で実行できるサービスです。
AWS Regionを自社環境まで拡張(または延伸)して利用できるようなイメージを持っていただくとわかりやすいかと思います。
データを自社内で保管する要件や、ローカルのコンピューティングリソースとの低レイテンシー接続などの要件に応えるサービスとなっています。
OutpostsにはOutpostsラックとOutpostsサーバの2種類がありますが、今回はOutpostsラックを対象とします。
AWS Region・オンプレミスとの接続
前述の通り、Outpostsラックは自社環境にサーバラックを配置しながらAWSサービスを提供します。そのため、AWS Regionとの接続を確立する必要があります。
OutpostsはAWS Regionやオンプレミスの環境とローカルネットワークを介して接続されるので、ローカルネットワークはAWS RegionにもどるWANのアクセスと、オンプレ環境へのLAN(またはWAN)のアクセスを提供する必要があります。
本記事では、特にオンプレ環境との接続をピックアップして内容を記載しています。
Outpostsとオンプレ間の接続設定
Outpostsラックを利用する場合、デフォルトで構成されるLocal Gateway(LGW)を用いてオンプレミスのネットワークと接続します。
1つのOutpostsラックにつき、1つのLGWが構成されます。
ユーザ側では、LGWルートテーブルの作成、LGWルートテーブルとVPCとの関連付け、LGWルートテーブルとVIFグループの関連付けの操作を実施する必要があります。
各操作はAWSマネジメントコンソールのOutpostsサービスの画面から実施可能です。
上記の設定を行うことで、Outpostsラックとオンプレミスの通信が可能となります。
ここからは、Outposts上のサブネットとオンプレミスの通信方式の詳細について確認していきます。
Outpostsサブネットとオンプレミス間の通信方法
Outpostsサブネットがオンプレミスと通信する際には、デフォルトで「ダイレクトVPCルーティング」と呼ばれる通信方式が適用されます。
ダイレクトVPCルーティングでは、サブネットやインスタンスのプライベートIPアドレスをそのまま利用してオンプレミスのネットワークと接続します。
また、ダイレクトVPCルーティングでは、ルーティングプロトコルにBGPを使用してオンプレとOutpostsの経路情報をアドバタイズ(広告・広報)しています。
BGP(Border Gateway Protocol)とは、組織(ASと呼ばれるネットワークの集まり)間での経路情報交換を行うルーティングプロトコルの一種です。
ここでは、オンプレミスのローカルネットワークと、Outpostsという異なる組織で経路情報の交換を行っています。
BGPへのアドバタイズの対象となるのはOupostsサブネットに属するプライベートIPアドレスのみとなります。
BGP で交換される経路情報について、プレフィックス等をクライアント側でフィルタリングすることは不可となっています。
このような通信方式において、Outpostsサブネット上のインスタンスとオンプレミスのコンピューティングリソースが通信するには具体的にどのようなルートテーブルを設定すればよいのかについて見ていきます。
ルートテーブルの設定
Outpostsサブネットのルートテーブル
まず、Outpostsサブネットのルートテーブル設定についてです。
Outpostsに作成したサブネットのルートテーブルでは、LGWを指定することができます。
例えば、オンプレミス環境(例として 172.16.100.0/24)を宛先、ターゲットにLGWを指定して下記のようなルートを指定することができます。
Destination | Target |
---|---|
172.16.100.0/24 | lgw-id |
LGWをターゲットとしたルートを追加することにより、ローカルのコンピューティングリソースへEC2インスタンスからの低レイテンシな接続が実現可能となります。
LGWルートテーブル
続いて、LGWのルートテーブルについてです。
基本的には、先のダイレクトVPCルーティングによってOutpostsサブネットのCIDRがアドバタイズされるため、サブネット向けのルート設定は不要です。
ただし注意点として、ダイレクトVPCルーティングではインスタンスのENIへのルーティングのみをサポートしており、VPCエンドポイントなどのプライベートIPアドレスにはオンプレミスから直接アクセスすることはできません。
また、LGWのルートテーブルには、ローカルネットワークと接続するためのデフォルトルートが必要となります。このルートは、VIFとLGWのルートテーブルを紐づけした時点で作成される下表のようなルールとなっています。
Destination | Target |
---|---|
0.0.0.0/0 | LGW-VIF-GRP |
オンプレミス側の経路情報もBGPへアドバタイズされますが、経路情報が追加されたことをLGWのルートテーブル上などユーザ側で確認することはできないようです。
まとめ
以上、Outpostsラックのオンプレミスとの通信方式と、Outpostsサブネット・LGWのルートテーブル設定について説明しました。
Outpostsを通じて、普段マネジメントコンソールから利用している際にはあまり意識することのないネットワークやルーティングについて学ぶ良いきっかけとなりました。