Posted at

AWS NAT構成の作り方(NATゲートウェイ編)

More than 1 year has passed since last update.

AWSでのNAT接続を実現する方法を備忘を兼ねて記載。

NATインスタンス編はこちら


NAT構成の必要性

簡単にいうと、

インターネットから接続される必要のないインスタンスについて、

インターネットからの接続を遮断しつつ、

自身はインターネットに接続を出来るようにするため。

外部から接続される危険性を減らすことと、

ライブラリの取得などで必要になる外部への接続の両立が可能となる。


参考

シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC(NAT)

http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Scenario2.html

NATゲートウェイ

http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html


注意

NATゲートウェイはAWSの12ヶ月無料利用枠の対象外です。

(2016/10/23 現在)


NAT構成の作り方(NATゲートウェイ)

マネジメントコンソール(GUI)にて作成


VPC

項目名
設定値

ネームタグ
nat-test-vpc

CIDRブロック
192.168.0.0/24

テナンシー
デフォルト

image


サブネット作成


パブリック用サブネット作成

項目名
設定値

ネームタグ
nat-test-public-1a-subnet

VPC
nat-test-vpc

アベイラビリティーゾーン
ap-northeast-1a

CIDRブロック
192.168.0.0/25

image


プライベート用サブネット作成

項目名
設定値

ネームタグ
nat-test-private-1a-subnet

VPC
nat-test-vpc

アベイラビリティーゾーン
ap-northeast-1a

CIDRブロック
192.168.0.128/25

image


IGW(インターネットゲートウェイ)作成


インターネットゲートウェイ作成

項目名
設定値

ネームタグ
nat-test-igw

image


インターネットゲートウェイをVPCにアタッチ

項目名
設定値

VPC
nat-test-vpc

image


NATゲートウェイ

項目名
設定値

サブネット
nat-test-public-1a-subnet

Elastic IP 割り当て ID
新しいEIPの作成

image


ルートテーブル作成


カスタムルートテーブル作成

項目名
設定値

ネームタグ
nat-test-public-rt

VPC
nat-test-vpc

image


メインルートテーブル編集


ルート追加

ルートにNATゲートウェイを追加

送信先
ターゲット

0.0.0.0/0
nat-test-igw

image


プライベート用サブネット割り当て

サブネットの関連付けで、

nat-test-private-1a-subnet

を関連付ける。

image


ネームタグ変更

変更ついでにネームタグを

nat-test-private-rt

に変更して、

ルートテーブルの役割を名前から判別しやすくしておきます。

image


カスタムルートテーブル編集


パブリック用サブネット割り当て

サブネットの関連付けで、

nat-test-public-1a-subnet

を関連付ける。

image


ルート追加

ルートにインターネットゲートウェイを追加

送信先
ターゲット

0.0.0.0/0
nat-test-igw

image


セキュリティグループ

NAT接続インスタンス用セキュリティグループ

項目名
設定値

セキュリティグループ名
nat-test-ap-sg

説明
security group for ap

VPC
nat-test-vpc

インバウンド

タイプ
プロトコル
ポート範囲
送信元

SSH
TCP
22
踏み台サーバーのIP or セキュリティグループ

image


EC2作成

設定値(重要な箇所のみ抜粋)

項目名
設定値

AMI
なんでも
(検証ではAmazon Linux:ami-1a15c77b
(2016/10時点の東京リージョン最新Amazon Linux用AMI)を使用)

ネットワーク
nat-test-vpc

サブネット
nat-test-private-1a-subnet

自動割り当てパブリックIP
無効

セキュリティグループ
nat-test-ap-sg


動作確認

踏み台サーバーからNAT接続するインスタンスにログインし、

pingやcurlでインターネットに接続できることを確認する。

ping google.co.jp

curl http://google.co.jp/

image

image


最後に

NATゲートウェイを作成することで、

NATインスタンスを使用するより(若干)簡単にNAT接続を行うことができます。

またAWSが用意するサービスであるので、

デフォルトで冗長性が担保されています。

では、NAT接続をすべてNATゲートウェイで行えばいいのかというと、

そういうわけでもないようです。

NAT インスタンスと NAT ゲートウェイの比較

http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-nat-comparison.html

によると、監視やカスタマイズを柔軟に行おうとするとNATインスタンスのほうが良いようです。(※よくわかっていない)

結局、双方のメリット・デメリットを見て、

どちらを選択するのかということになるようです。

※記述ミス・認識違いなどがあれば、ご指摘いただけると幸いです。