背景
既存のAWSのNAT Gateway がない時代にNATを利用したネットワーク環境が欲しいとのことなので、
構築した内容を記載します。
短くいうと
- Amazon Virtual Private Cloud - NATインスタンス とおりやれば出来る。
準備するもの
公式の図を参考にしつつ値を決めていく。
設定値を準備する
項目 | 値 | 備考 |
---|---|---|
VPCのアドレス | 10.0.0.0/16 | 10.0.0.1 ~ 10.0.255.255のVPC |
AZ用のサブネット(a) | 10.0.0.0/24 | publicIPを付与するサブネ |
AZ用のサブネット(a) | 10.0.1.0/24 | privateIPを付与するサブネ |
※AZはavailabilityzoneの略称です。
VPCを作る
とりあえず適当に設定する。
vpcを作成するの内容を参考にポチポチポチっとVPCを作成する
Subnetを作る
AZ用のサブネット(a)の値を参考にしてサブネットを作成します。
今回はpublicとprivateをそれぞれ作成します。
- publicは紐づけられたGlobalIPを使用した通信をします。
- privateはNAT経由で外部との通信をします。
IGWを作る
新しくIGWを作成します。
特段気にする事が無いので、ただただ作ります。
カスタムテーブルを設定する。
作成したVPCのサブネット(public)と作成したIGWを紐付けます。
これにより、
private-subnetからの通信をpublic-subnet経由で外部と通信ができる一番外側の設定が完了します。
設定はまだまだ続きます。
NATのセキュリティグループを作成する。
NATSGと表記されている部分です。
NATのセキュリティグループを作成します。
後から変更も可能なのでとりあえず作ってみましょう。
NATインスタンスを作成する。
ドキュメントではNAT用のAMIを使用しています。
今回は標準のamazonOSから作成します。
- EC2からamazonOSを選択肢立ち上げます。
- ElasticIPを付与します。(GlobalIPを付与する。)
- SSHでログイン後以下のコマンドを実行します。
### [NAT Instance]
$ /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
$ /sbin/iptables-save > /etc/sysconfig/iptables
$ echo 1 > /proc/sys/net/ipv4/ip_forward && echo 0 > % /proc/sys/net/ipv4/conf/eth0/send_redirects
mkdir -p /etc/sysctl.d
$ cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF