1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プライベートサブネットからNATゲートウェイを使って通信する。

Last updated at Posted at 2020-12-08

背景

NATゲートウェイというものを理解したかった。

前提(NATゲートウェイとは)

EC2側からネットワークを使いたいがクライアントから通信したくないというときに利用する。パブリックなサーバー(踏み台サーバー)を介してインターネットを利用できる。

準備

VPCを準備する。
パブリックサブネットとプライベートサブネットを持つVPCを用意しよう!最終的にはこんな感じの構成になります。
aws-nat.png
プライベートIPアドレスに172.31を指定した意味は特にないです。10.0.0.0/16とかでも大丈夫です。

ポイントはIGW(インターネットゲートウェイ)の付いたルートテーブルとNATゲートウェイをくっつけたルートテーブルを作ることです。

まずはパブリックのルートテーブルの定義です。IGWとローカルでの通信ができるようにします。

2020-12-08_23h38_56.png

続いてプライベート用のルートテーブルを作ります。ローカルでの通信とNATゲートウェイでの通信がしたいのでNATゲートウェイを作ります。
ここでの注意はパブリックのサブネットに置きます。また、Elastic IPも割り当てます。
作ったらこれをルート編集でプライベートのルートテーブルに付け加えます。
最終的にはこんな感じになります。

2020-12-08_23h51_56.png

NATゲートウェイは文頭にnatが付きます。わかりやすい!

あとはEC2をパブリックとプライベートに置きます。もちろんパブリックのEC2にはパブリックIPを付けます。
キーペアはパブリック、サブネットで同じにするとスムーズです。今回はamazon linuxで作っておきます。

SSH接続

まずはパブリックサブネットに入りましょう。

$ ssh -i xxxxxxxxx.pem ec2-user@xx.xx.xx.xx(public-ip)

パブリックのEC2に、ローカルにあるキーペアをコピペしましょう。

$ vim xxxxxxxxx.pem
コピペしましょう
$ chmod 600 xxxxxxxxx.pem
権利を変更します。

次にパブリックサブネットからプライベートサブネットにssh接続しましょう。この時に使うのはプライベートIPです。

$ ssh -i xxxxxxxxx.pem ec2-user@xx.xx.xx.xx(private-ip)

これでプライベートサブネット内のEC2に入れます。

試しにgoogleにアクセスしてみましょう

curl https://www.google.com/
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head>...

たくさん文字列が表示されたら成功です。インターネットゲートウェイを付けずにインターネットに接続できました。

所感

VPCウィザードでなんとなく一緒に定義していたNATゲートウェイですが、プライベート性を保持しつつインターネットに接続できる便利な機能だというのが理解できました。AWSは箱庭みたいで楽しいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?