どうも、セクションナインの 吉田真吾(@yoshidashingo)です。
さきほどAWSからこんな発表がありました。
New – Managed NAT (Network Address Translation) Gateway for AWS | AWS News Blog
Amazon VPCにNAT Gateway機能が追加されたそうなのでさっそく以下のような構成で試してみました。
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
- Route Table 1
- Subnet 2: 10.0.16.0/20
- Route Table 2
- 10.0.0.0/16 local
- 0.0.0.0/0 Internet Gateway
- Route Table 2
- Subnet 1: 10.0.0.0/20
1. VPCとサブネットを作成する
こんな感じでPrivateとPublicのサブネットを作ります。
※Route Tableがそれぞれに作成されて当たっていて、Internet Gatewayへの経路はPublic側にしかないという構成
2. Nat Gatewayを作成する
ここからインターネットに出て行くので、Publicなサブネットに作ってくださいね。
できたのがこちら↓
3. 疎通確認
3-1. PrivateサブネットからNAT gatewayへの経路がない場合
[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への経路を設定した場合
[ec2-user@ip-10-0-4-65 ~]$ curl ifconfig.me 52.192.47.127
→ はい、2で作ったIPから出て行ったことがわかりますね。
まとめ
今までNATを冗長構成で構築するとなると、Corosync+Pacemakerで冗長化して、片系が落ちたらRoute Tableを書き換えて...といったことを組まないといけなかったですが、AWSによるマネージドなサービスであればそういった作業から開放されて嬉しいですね。
ということでこちらからは以上です。