Amazon VPCにNAT Gatewayが追加されたので試してみた

どうも、セクションナインの 吉田真吾@yoshidashingo)です。

さきほどAWSからこんな発表がありました。

New – Managed NAT (Network Address Translation) Gateway for AWS | AWS News Blog

Amazon VPCにNAT Gateway機能が追加されたそうなのでさっそく以下のような構成で試してみました。

f:id:yoshidashingo:20151218034951p:plain

VPC構成

  • VPC 10.0.0.0/16
    • Subnet 1: 10.0.0.0/20
      • Route Table 1
        • 10.0.0.0/16 local
        • 0.0.0.0/0 NAT Gateway
    • Subnet 2: 10.0.16.0/20
      • Route Table 2
        • 10.0.0.0/16 local
        • 0.0.0.0/0 Internet Gateway

1. VPCとサブネットを作成する

こんな感じでPrivateとPublicのサブネットを作ります。

f:id:yoshidashingo:20151218035800p:plain ※Route Tableがそれぞれに作成されて当たっていて、Internet Gatewayへの経路はPublic側にしかないという構成

2. Nat Gatewayを作成する

f:id:yoshidashingo:20151218035736p:plain ここからインターネットに出て行くので、Publicなサブネットに作ってくださいね。

できたのがこちら↓ f:id:yoshidashingo:20151218040457p:plain

3. 疎通確認

3-1. PrivateサブネットからNAT gatewayへの経路がない場合

f:id:yoshidashingo:20151218040052p:plain

[ec2-user@ip-10-0-4-65 ~]$ curl ifconfig.me
curl: (7) Failed to connect to ifconfig.me port 80: 接続がタイムアウトしました

→ はい、出られませんね。

3-2. PrivateサブネットからNAT gatewayへの経路を設定した場合

f:id:yoshidashingo:20151218042436p:plain

[ec2-user@ip-10-0-4-65 ~]$ curl ifconfig.me
52.192.47.127

→ はい、2で作ったIPから出て行ったことがわかりますね。

まとめ

今までNATを冗長構成で構築するとなると、Corosync+Pacemakerで冗長化して、片系が落ちたらRoute Tableを書き換えて...といったことを組まないといけなかったですが、AWSによるマネージドなサービスであればそういった作業から開放されて嬉しいですね。

ということでこちらからは以上です。