AWS private subnetのEC2からネットへ接続(NAT Gateway)

目次

プライベートサブネットとEC2を作成する

VPC サブネット 追加
test-vpc3 test-pub-subnet NAT gateway
test-pri-subnet Route table
EC2
  • プライベートサブネットのEC2(test3-private-ec2)について以下の設定をします。
    ・インタ-ネット側からEC2にはアクセスできない
    ・EC2からインターネット側にはアクセスできる
  • 以下の設定を行います。
    ・public subnetにNATゲートウェイを作成しEIP(Elastic IP)を付加する
    ・private subnetにルートテーブルを作成し、NATゲートウェイと紐づける
  • パブリクのEC2からはプライベートのEC2にSSH接続できます。
  • NATゲートウェイは、1つのパブリクなEIP(Elastic IP)と複数のEC2のプライベートIPアドレスとを変換できます。
  • プライベートサブネットに関連付けられたルートテーブルの0.0.0.0/0をNATゲートウェイに設定します。
  • テストの場合、テスト終了後はEIPは料金がかかるため解放します。

 

前提

以下が行われていることが前提です。

AWS Tera TermのSSHでEC2に接続する

 

プライベートサブネットにEC2を作成する

1.以下の設定で、EC2を作成します。

ECの名前 test3-private-ec2
vpc test-vpc3
subnet test-pri-subnet
パブリックIPの
自動割り当て
無効化
セキュリティグループ test3-security
キーペア test3-public-ec2と同じ

 

キーペアをpublicのEC2に作成

publicのEC2からprivateのEC2にログインするため、publicのEC2にキーペアを配置します。

[ec2-user@ip-10-0-0-92 ~]$ vi test3-key-pair.pem
[ec2-user@ip-10-0-0-92 ~]$ ls -lrt
total 4
-rw-rw-r-- 1 ec2-user ec2-user 1675 Jan  9 01:37 test3-key-pair.pem
[ec2-user@ip-10-0-0-92 ~]$ mv test3-key-pair.pem ~/.ssh
[ec2-user@ip-10-0-0-92 ~]$ ls -lrt ~/.ssh
total 8
-rw------- 1 ec2-user ec2-user  396 Jan  8 16:26 authorized_keys
-rw-rw-r-- 1 ec2-user ec2-user 1675 Jan  9 01:37 test3-key-pair.pem
[ec2-user@ip-10-0-0-92 ~]$
[[ec2-user@ip-10-0-0-92 ~]$ chmod 600 ~/.ssh/test3-key-pair.pem
[ec2-user@ip-10-0-0-92 ~]$
[ec2-user@ip-10-0-0-92 ~]$ ls -lrt ~/.ssh/test3-key-pair.pem
-rw------- 1 ec2-user ec2-user 1675 Jan  9 01:37 /home/ec2-user/.ssh/test3-key-pair.pem
[ec2-user@ip-10-0-0-92 ~]$

1行目は、viでファイルを作成し、ローカルPCにあるキーペアを開いてコピーして貼り付けています。

5行目は、作成したファイルを移動しています。

11行目は、chmodでアクセス制限を厳しくしています。制限がゆるいとssh使用時に Unprotected Private Key File という警告が表示されます。

 

publicのEC2からprivateのEC2にログインする

sshコマンドで、publicのEC2からprivateのEC2にログインします。

ssh -i ~/.ssh/test3-key-pair.pem ec2-user@10.0.0.243

接続先のIPアドレスは、AWSの画面のインスタンスをクリックしてプライベートIPの箇所から取得します。

まだNATゲートウェイの設定が完了していないのでprivateのEC2からは、pingでインターネットに接続できないです。

[ec2-user@ip-10-0-0-243 ~]$ ping yahoo.co.jp
PING yahoo.co.jp (183.79.219.252) 56(84) bytes of data.
^C
--- yahoo.co.jp ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 8195ms

[ec2-user@ip-10-0-0-243 ~]$

 

NATゲートウェイを作成する

1.検索入力欄で「vpc」と入力し、表示された「VPC」をクリックします。

2.「NATゲートウェイ」から「NATゲートウェイを作成」ボタンをクリックします。

3.名前に任意の名称を設定します。サブネットはパブリクのサブネットを選択します。
「NATゲートウェイを作成」ボタンを押します。
「Elastic IP 割り当て」ボタンをクリックするとElastic IPが割り当てられます。

 

4.NATゲートウェイが作成されます。

 

ルートテーブルを作成する

1.検索入力欄で「vpc」と入力し、表示された「VPC」をクリックします。

2.「ルートテーブル」から「ルートテーブルを作成」ボタンをクリックします。

3.名前に任意の名称を設定します。VPCは、作成したVPC(test-vpc3)を選択します。
「ルートテーブルを作成」ボタンを押します。

 

4.作成後、作成した「ルートテーブル」のリンクをクリックし「ルートを編集」をクリックします。

5.「ルートを追加」をクリックし、NATゲートウェイの0.0.0.0/0を作成します。

 

6.サブネットの関連付けのタブから「サブネットの関連付けを編集」をクリックします。

 

7.privateのサブネットにチェックを入れ、「関連付けを保存」をクリックします。

 

8.ルートテーブルのルートは以下のようになります。

1行目のターゲットは、NATゲートウェイです。

 

privateのEC2からインターネットへpingで確認

privateのEC2にログインしてpingでインターネットに接続できることを確認します。

[ec2-user@ip-10-0-0-243 ~]$ ping yahoo.co.jp
PING yahoo.co.jp (183.79.250.251) 56(84) bytes of data.
64 bytes from 183.79.250.251 (183.79.250.251): icmp_seq=1 ttl=42 time=8.39 ms
64 bytes from 183.79.250.251 (183.79.250.251): icmp_seq=2 ttl=42 time=7.66 ms

 

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る