はじめに
NATゲートウェイは、プライベートサブネット内のリソースをインターネットに接続する
以下のような方におすすめの内容になっています。
- AWSを初めて利用する
- NATゲートウェイについての基本を知りたい
- プライベートにインストールしたい
この記事を読むことで、NATゲートウェイの役割や利用シーンを理解し、実際の設定手順までスムーズに進められるようになります。
NATゲートウェイとは
NATゲートウェイは、プライベートサブネット内のリソースが安全にインターネット通信を行うための「ネットワーク変換サービス」です。
外部からの直接アクセスを防ぎつつ、インターネット接続を可能にします。
※NATゲートウェイはパブリックサブネットに設置しておく必要があります。
NATゲートウェイの設定手順
- サブネットを二つ作成
- パブリックサブネットの作成
- パブリックサブネットにNATゲートウェイを作成
- ルートテーブルの設定
- 接続の確認
サブネットを二つ作成します。

サブネットを作成したら自動でルートテーブルが作成されるので、任意で名前を変更しておきます。

パブリックサブネットを作成するため、インターネットゲートウェイをルートテーブルに設定します。
インターネットゲートウェイはインターネットと接続するために使用するゲートウェイです。

ルートテーブルを作成して、ルートの設定を行っていきます。
ルートテーブルはトラフィックのコントロールを行うことができます。

先ほど作成したパブリックサブネットにNATゲートウェイ作成します。
Elastic IPを作成していない場合は、割り当てを行うと自動でIPアドレスが割り当てられます。
※Elastic IPは使用していない期間、コストが発生するので使用しない場合は必ず削除しましょう。。

プライベートサブネットのルートテーブルを作成して、NATゲートウェイを設定しましょう。

これでプライベートサブネットから外部のサーバーにリクエストを行うことができるようになります。
一度動作確認のため、同じVPC内にEC2インスタンスを作成します。
- 踏み台サーバー(パブリックサブネット)
- 動作確認用サーバー(プライベートサブネット)
セキュリティグループは「すべてのトラフィック」を許可しますが、本来はNGなので動作確認の場合だけにしましょう。

同じVPC内のインターネットゲートウェイを設置したサブネットにパブリックIPを割り当てたEC2インスタンスを作成します。
パブリックIPを付与したインスタンスの作り方は以下の記事を参考にしてください。
Webサーバーですが、パブリックIPを付与してインスタンスを作成しています。
【AWS】VPCとサブネット、EC2でWebサーバー(Apache)を構築する初心者向け手順
キーペアは任意で設定してください。
プライベートサブネットからのアクセスなのでパブリックIPの自動割り当てはしないようにしましょう。

ssh接続をMacの場合はターミナルコマンドからやっていきます。
踏み台サーバー経由で作成したプライベートインスタンスに接続します。
# ローカルサーバーから踏み台サーバーにキーを転送する
scp -i "[キーペア]" [キーペア] ec2-user@<踏み台サーバーのパブリックIPアドレス>:/home/ec2-user/
# 踏み台サーバーにssh接続する
ssh -i "[キーペア]" ec2-user@[踏み台パブリックIP]
# 踏み台サーバー経由でssh接続する
ssh -i "[キーペア]" ec2-user@[動作確認用プライベートIP]
コマンドからサーバーに接続してgoogle.com
にcurlコマンドを実行してテストします。
curl google.com
データが取得できると、外部のデータを取得できていることになるのでOKです。

NATゲートウェイのコスト

NATゲートウェイの料金は、以下の2つが主な要素です
- 時間単位の料金
- データ転送料金
作成したNATゲートウェイごとに課金されます。
インターネット経由のデータ送受信に応じて料金が発生します。
※コスト最適化のため、必要に応じてAuto Scalingやスケジュール管理を活用しましょう。
NATゲートウェイのユースケース

一部のユースケースを紹介します。
セキュリティの確保
プライベートサブネット内のデータベースやアプリケーションが外部アクセスを防ぎつつ、インターネット接続を確保する。
ソフトウェアの更新や外部APIの利用
プライベートサブネット内のリソースが、最新のパッチを適用したり外部サービスと通信する。
まとめ
NATゲートウェイは、AWSネットワークのセキュリティと利便性を高める重要なサービスです。
この記事で解説した手順を参考にすることで、プライベートサブネット内のリソースを安全かつ効率的に運用できるようになります。
コストやユースケースも考慮しながら、自分の環境に適した設定を実践してみてください!