ちょっと話題の記事

AWS Outposts に必要なネットワーク接続を理解しよう #reinvent

2019.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

AWS re:Invent 2019でいよいよ一般提供開始がアナウンスされた、AWS Outposts。気になっている方も多いと思います。本記事では、オンプレミスに設置するOutpostsを、どのようにオンプレミス/AWSとネットワーク的に接続するのか、どのように設計すべきかを紹介します。

参考資料

ネットワーク接続に必要な情報は、公式ドキュメントに詳細に記載されています。こちらを参考に読み解いていきます。

Outpostsのネットワーク

論理構成

Outpostsを利用すると、以下のように自社専用のAvailability ZoneのようにVPC内のサブネットを作成し、サブネット内にEC2などのインスタンスを配置することが可能になります。オンプレミスのネットワークとは、Loal Gatewayを経由して通信しますので、VPCサブネットにはLocal Gatewayを経由するルートを設定します。Outposts上のインスタンスとAWSリージョン側のリソース(VPC内のインスタンスやVPCエンドポイント)とは透過的に通信が可能になります。

AWS Outposts Network Components

Outpostsで発生するトラフィック

上記の図では、OutpostsのサブネットとAWSリージョン側サブネットはVPC内部でつながって見えますが、実態としてはOutpostsのラックに物理的に接続されたネットワーク回線を経由して行われます。Outpostsに接続される物理的なネットワーク回線には、論理的に2つのネットワークに分かれていて、以下のトラフィックが発生します。

  • Local Gateway
    • VPC内リソース(EC2など)とオンプレミス環境の間で発生するユーザートラフィック
  • Service Link
    • Outpostsそのもののモニタリングに利用されるトラフィック
    • Outposts内に起動したリソース(EC2など)の制御に利用されるトラフィック(API操作やCloudWatchメトリクス送信、Snapshotデータなどを含む)
    • Outposts側リソースとAWSリージョン側リソースがVPC内で通信するトラフィック

例えば、Outposts内に起動したEC2が、オンプレミスのサーバーと通信する際はLocal Gatewayを通ります。Outposts内に起動したEC2が、AWSリージョン側EC2と通信したり、Snapshotの取得を行うと、Service Link側にトラフィックが発生します。

これらを考慮して、Outpostsとの接続に利用する回線の帯域幅を決定する必要があります。

Outpostsとの接続方法

それでは、Outpostsとの具体的な接続方法です。各レイヤごとにみていきます。

物理層

Outpostsのラックには、物理的に2つのネットワーク機器が搭載されます。それぞれからオンプレミス側のネットワーク機器へ、合わせて最小2つの接続が必要です。1G、10G、40G、100Gのアップリンクスピードが利用できます。アップリンク速度ごとに利用可能なポート数が異なります。

アップリンク アップリンクポート数
1G 1/2/3/4/5/6/7/8
10G 1/2/3/4/8/12/16
40G 1/2/3/4
100G 1/2/3/4

SMF/MMF/MMF OM4に対応しコネクタはLCとなっています。

データリンク層

Outpostsとの接続にはLink Aggregation Control Protocol(LACP)が利用されます。対向となるオンプレミス側でもLACPの有効化が必要です。

Outpost Connectivity to the Local Network - Link Aggregation

Local GatewayとService Link用に、2つのVLANを利用してトラフィックが分離されます。IEEE 802.1Qによるカプセル化(タギング)を設定します。

Outpost Connectivity to the Local Network - VLANs

ネットワーク層

Outpostsとオンプレミス側とのポイントツーポイント接続用に、/30または/31のIPアドレスを割り当てます。Local Gateway用、Service Link用にそれぞれ2接続あるので、全部で4つのネットワークと8つのIPアドレスが必要です。例えば、以下のように割り当てます。

Outpostsネットワーク機器 オンプレミスネットワーク機器
Service Link VLAN 接続1 172.16.0.1/30 172.16.0.2/30
接続2 172.16.0.5/30 172.16.0.6/30
Local Gateway VLAN 接続1 10.0.0.1/30 10.0.0.2/30
接続2 10.0.0.5/30 10.0.0.6/30

また、OutpostsとオンプレミスではそれぞれBGPにて経路交換を行います。

Service Linkの通信

Service Linkでは、Outposts内の各種制御デバイスと、AWSのAPIが通信を行います。Service Linkの通信は、パブリックインターネットもしくはDirectConnectのパブリック接続が必要で、OutpostsとAWSリージョンの間でVPNで接続されます。

Outposts側には、あらかじめ/26のサイズのネットワークアドレスを割り振っておき、この範囲のIPアドレスがOutpost内のデバイスに割り当てられます。ルーティング可能な所有するパブリックIPもしくは、プライベートIP(NATしてパブリックネットワークに出る場合)から割り当てましょう。このネットワークがOutpostsからオンプレミス側ネットワーク機器にBGPにて広報されます。Outposts側にはデフォルトルート(0.0.0.0/0)もしくは利用するAWSリージョンのパブリックIPを広報する必要があります。

  • Outspotsからオンプレ側に広報 -> Outpostsに割り当てた/26のネットワーク(実際は/27のネットワーク2つ)
  • オンプレ側からOutpostsに広報 -> デフォルトルート(0.0.0.0/0)もしくは利用するAWSリージョンのパブリックIP

また、Service LinkではAWSリージョンとの通信のため、以下のアドレス/ポートを許可します。

プロトコル Sourceポート Sourceアドレス Destinationポート Destinationアドレス
UDP 443 Outpostsに割り当てた/26 443 AWSリージョンのパブリックIP
TCP 1025-65535 Outpostsに割り当てた/26 443 AWSリージョンのパブリックIP

Local Gatewayの通信

Local Gatewayでは、VPC内のリソースとオンプレミスサーバの間でのユーザートラフィックが流れます。そのため、以下の経路情報をBGPで交換します。

  • Outspotsからオンプレ側に広報 -> VPC CIDR
  • オンプレ側からOutpostsに広報 -> 連携が必要なオンプレミスネットワークのCIDR

まとめ

以上の接続をまとめると、以下のようなイメージとなります。ちょっと情報多くてごちゃごちゃしてますが、1枚の絵に描いてみました。(IPアドレスは環境に応じて割り当てます)

Outpostsを設置するにあたり、ネットワーク接続に関して事前に準備や設計が必要な情報をまとめました。Outpostsの導入を検討されている方の一助になれば幸いです。