ネットワークの設定(2): NAT設定

前回の記事: yusuke88841.hatenablog.com

目標

f:id:yusuke88841:20210409154619p:plain 内部ネットワークに作成したVMが外部へアクセスするための経路を作成する。 DBサーバのように外部からの接続は遮断したいけど、パッケージインストールのために外部への接続は欲しいようなときに必要。

ネットワークの設定

内部ネットワークの作成

VPC内部で使用するネットワークを作成する。

(外部から隠したいDBサーバと、外部とつながってるWebサーバとの通信に使用するなどの用途で内部ネットワークを使用するなどの目的に使用)

サブネットの作成方法は、前回の記事で説明済みのため、詳細は割愛。

  • サブネット名: private
  • CIDR: 10.0.2.0/24

NAT Gatewayの設定

内部ネットワークにのみ接続しているインスタンスでも、パッケージダウンロードなど外部接続できるようにNAT設定を行う。外部⇒インスタンスは遮断するけど、インスタンス⇒NAT⇒外部は接続できるようにするための設定。

  1. 「NATゲートウェイを作成」をクリック 1f:id:yusuke88841:20210409155812p:plain.

  2. 「名前」「サブネット」「Elastic IP割り当てID」を入力し、「NATゲートウェイを作成」をクリック

・サブネット:Internet Gatewayに接続しているサブネット(public)
・Elastic IPがない場合: 「Elastic IP割り当て」をクリックし確保
f:id:yusuke88841:20210409160113p:plain

ルートテーブルの更新

メインのルートテーブルを更新する

  1. "メイン"が「はい」となっているルートテーブルを選択し、「ルートの編集」をクリック f:id:yusuke88841:20210409160828p:plain
  2. 送信先:0.0.0.0/0, ターゲット: 作成したNAT gatewayを選択してテーブルを更新 f:id:yusuke88841:20210410112832p:plain

仮想マシンで動作確認

仮想マシンの作成、ネットワークの割り当て

前回と同じ要領で、private subnetを選択して仮想マシンを起動

  • 「ステップ 3: インスタンスの詳細の設定」
    • ネットワーク:作成したVPCを設定
    • サブネット:作成した"private" サブネットを設定

仮想マシンにアクセス

  • public networkに接続した仮想マシンを踏み台にして、作成したVMへアクセス
 [client  PC ]$ ssh -i "keypair.pem" <user>@public_vm_ip
 [public VM]$ ssh -i "keypair.pem" <user>@private_vm_ip

動作確認(今回はcurlでhttpアクセスを確認)

[private VM]$ curl -I www.google.com