aws nat gateway test(japanese)

12
AWS NAT Gateway Testing report Development section / CoreFighter co., ltd.

Upload: laporz

Post on 24-Jan-2017

829 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: AWS NAT Gateway Test(Japanese)

AWS NAT GatewayTesting reportDevelopment section / CoreFighter co., ltd.

Page 2: AWS NAT Gateway Test(Japanese)

作りたい構成

▪ 外からの攻撃を防ぐために、サービス利用サーバとそれ以外を分離する▪ DefaultVPCに踏み台サーバに構築▪ PrivateVPCにWEBサーバ /DBサーバを構築▪ とはいえWEBサーバから外部 APIを叩く必要がある

▪ 具体的に言うと▪ DefaultVPC→PrivateVPCを VPCPeeringで接続▪ PrivateVPC→Internetへ通信可能

Page 3: AWS NAT Gateway Test(Japanese)

今までだと

▪ NATサーバを構築して、 NAT経由でインターネットへのアクセスを中継する▪ 問題点

▪ NATサーバの費用▪ インスタンスの管理が必要▪ ダウンした際のサービス影響▪ 冗長化するともっとコスト増

Page 4: AWS NAT Gateway Test(Japanese)

つい先日・・・

▪ AWS NAT Gatewayリリースhttp://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html

▪ AWS側で PrivateVPCからインターネットへ通信を可能にする優れもの

Page 5: AWS NAT Gateway Test(Japanese)

NAT Gatewayがちゃんと使えれば

▪ インスタンス・管理コストが減る

▪ 運用コストも減る

▪ すばらしい

Page 6: AWS NAT Gateway Test(Japanese)

今までの構成

▪ NATサーバを使った SSH通信▪ インターネットに面した DefaultVPCにある踏み台サーバに接続する▪ VPCPeeringを利用し、 DefaultVPCから PrivateVPCのバックエンドネットワークからインスタンス群にアクセスする

▪ NATサーバを使ったWEBサーバからの API通信▪ インターネットから ELBを経由し、WEBサーバにアクセスがある▪ API通信が必要なアクセスの場合、バックエンドネットワークから NATサーバにアクセス

▪ NATサーバを経由し、インスタンスに割当られた ElasticIPを Srcにインターネットへの通信を行う

Page 7: AWS NAT Gateway Test(Japanese)

NAT Serverを使っていた構成 (SSH)

Default VPC

AWS cloud

Private VPC

踏み台サーバ WEBサーバ

DB RDS

172.16.1.0/24

Private back end network

172.31.0.0/16

Private front network

172.16.101.0/24

Default VPC network

eth0 :172.31.0.0/16 eth0 :172.31.0.0/16

eth0 :172.31.0.0/16

VPCPeering

NATサーバeth0 :172.31.0.0/16

いんたーねっとElasticIP

ELB

EC2Instance

Internet Gateway

Routing

VPCPeering

Page 8: AWS NAT Gateway Test(Japanese)

NATサーバ

NAT Serverを使っていた構成 (HTTP(API通信 ))

Default VPC

AWS cloud

Private VPC

踏み台サーバ WEBサーバ

DB RDS

172.16.1.0/24

Private back end network

172.31.0.0/16

Private front network

172.16.101.0/24

Default VPC network

eth0 :172.31.0.0/16 eth0 :172.31.0.0/16

eth0 :172.31.0.0/16

VPCPeering

いんたーねっとElasticIP

ELB

EC2Instance

Internet Gateway

Routing

VPCPeering

Page 9: AWS NAT Gateway Test(Japanese)

NAT Gatewayを使った構成

▪ SSH通信▪ NATサーバ利用時とかわらない

▪ NAT Gatewayを使ったWEBサーバからの API通信▪ インターネットから ELBを経由し、WEBサーバにアクセスがある▪ API通信が必要なアクセスの場合、バックエンドネットワークから NAT Gatewayへアクセス

▪ NAT Gatewayに割り当てられた ElasticIPを Srcに外部通信を行う

Page 10: AWS NAT Gateway Test(Japanese)

NAT Gatewayを使った構成案 (HTTP(API通信 ))

Default VPC

AWS cloud

Private VPC

踏み台サーバ WEBサーバ

DB RDS

172.16.1.0/24

Private back end network

172.31.0.0/16

Private front network

172.16.101.0/24

Default VPC network

eth0 :172.31.0.0/16 eth0 :172.31.0.0/16

eth0 :172.31.0.0/16

NAT GWVPCPeering

いんたーねっとElasticIP

ELB

EC2Instance

Internet Gateway

Routing

VPCPeering

Page 11: AWS NAT Gateway Test(Japanese)

つながったネットワーク並びにルートテーブル設定HostName NIC IPアドレス VPC 送信先 ターゲット踏み台 eth0 172.31.1.1

DefaultVPC 172.31.0.0/16 localDefaultVPC 0.0.0.0/0 インターネットゲートウェイDefaultVPC 172.16.0.0/16 VPCPeering

WEB

eth0 172.16.1.1PrivateVPC 172.16.0.0/16 localPrivateVPC 0.0.0.0/0 インターネットゲートウェイ

eth1 171.16.101.1PrivateVPC 172.16.0.0/16 localPrivateVPC 0.0.0.0/0 NAT GatewayPrivateVPC 172.31.0.0/16 VPCPeering

▪ 踏み台のeth0/WEBのeth1のVPCPeeringはSSH通信に必須▪ NAT Gateway用の設定

▪ 踏み台のeth0/WEBのeth1のインターネットゲートウェイが必要▪ WEBのeth1にNAT Gatewayのルーティング情報が必要▪ 上記設定の内一つでも抜けたら接続ができなかった

▪ ACL設定▪ DefaultVPCはSSH/HTTP/HTTPSを限られた IPからアクセス許可で、残りは全拒否▪ PrivateVPCは172.31.0.0/16と172.16.0.0/16は全許可 その他は拒否

Page 12: AWS NAT Gateway Test(Japanese)

おわり