【AWS_15】NATゲートウェイの作成と設定

プライベート用サブネットに作成した新規インスタンスは、インターネットから接続できないため安全ですが逆にインターネットへ接続できないためアップデートやソフトウェアの新規インストールができません。
NAT(Network Address Translation)を構成すればこの問題を解決できるそうで「プライベート用サブネットに作成した新規インスタンス ⇒ インターネット」の向きだけの通信が許可されるようになります。
今回は、NATを構成するために「NATゲートウェイ」を作成、設定していきたいと思います。
NATゲートウェイ作成前の確認
Teraterm でWebサーバーへSSH接続後、Webサーバーを踏み台にしてプライベート用サブネットの新規インスタンスへSSH接続します。
ssh -i mykey.pem ec2-user@10.0.2.10
以下コマンドを実行します。sudo yum check-updateは、アップデート可能なパッケージの一覧を表示するコマンドです。パッケージを公開するリポジトリの有効なURLが見つからないと表示されます。
sudo yum check-update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd・・・
~ 省略 ~
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot find a valid baseurl for repo: amzn2-core/2/x86_64
NATゲートウェイの作成
AWSのホームへ移動し、VPCをクリックします。
左ペインより「NATゲートウェイ」をクリックします。
右上の「NATゲートウェイを作成」をクリックします。

「NATゲートウェイを作成」画面で以下を選択、入力します。
最初にElastic IP を割り当てをクリックして割り当てます。(後でクリックすると名前やサブネットの情報が消えたため)
・名前 – オプション ⇒ NATゲートウェイを選択
・サブネット ⇒ パブリックサブネットを選択
・接続タイプ ⇒ パブリック
※タグはデフォルト設定のままとします
「NATゲートウェイを作成」をクリックします。


NATゲートウェイが正常に作成されましたが表示されます。

左ペインより「NATゲートウェイ」をクリックします。
NATゲートウェイが作成されていることが確認できます。

ルートテーブルを更新
プライベート用のサブネットからインターネットに対して通信できるようにルートテーブルを構成します。
左ペインより「NATゲートウェイ」をクリックします。
NATゲートウェイIDを確認しておきます。

左ペインより「ルートテーブル」をクリックします。
プライベート用のサブネットが利用しているルートテーブルにチェックを入れます。VPCを作成した際に作成されたものです。

画面下の「ルート」タブを選択し、右側の「ルートを編集」をクリックします。

「ルートを編集」画面で「ルートを追加」をクリックします。

以下を選択、入力し、「変更を保存」をクリックします。
・送信先 ⇒ 0.0.0.0/0を入力
・ターゲット ⇒ NATゲートウェイIDを入力(※事前に確認しておいたNATゲートウェイID)

ルートを正常に更新しましたが表示されます。

左ペインより「NATゲートウェイ」をクリックします。
プライベート用のサブネットが利用しているルートテーブルにチェックを入れます。
画面下の「ルート」タブを選択、ルートテーブルに設定が追加されたことが確認できます。

NATゲートウェイ作成後の確認
Teraterm でWebサーバーへSSH接続後、Webサーバーを踏み台にしてプライベート用サブネットの新規インスタンスへSSH接続します。
ssh -i mykey.pem ec2-user@10.0.2.10
以下コマンドを実行します。yum check-updateは、アップデート可能なパッケージの一覧を表示するコマンドです。アップデート可能なパッケージ一覧が表示されることを確認します。NATゲートウェイが正常動作していることを確認できます。
sudo yum check-update

curlコマンドで確認します。当ブログのURLで検証しました。
※画像は一部です

まとめ
今回は、NATを構成するために「NATゲートウェイ」を作成、設定しました。
次回は、プライベート用サブネットに作成した新規インスタンスへMariaDBをインストールしてデータベースを構成していきます。