2021/03/9

AWSサービスのNAT gatewayとは?NAT gatewayの作成方法を紹介!

 
  

AWSサービスのNAT gatewayとは?

AWSから提供されているNAT gatewayは、プライベートIPアドレスをパブリックIPアドレスに変更するサービスです。 NAT gatewayを利用してネットワークアドレス変換 (NAT)することで、プライベートサブネットからインターネットや他のAWSサービスに接続できます。 なお「プライベートサブネット」とは、関連付けられているルートテーブルが、インターネットゲートウェイへのルートを持っていないサブネットのことです。

NAT gateway とNATインスタンスの違い

NAT gatewayと同様に、ネットワークアドレス変換するNATデバイスとして、NATインスタンスがあります。 AWSは、可用性と帯域幅の面からNAT gatewayの使用を推奨しています。NAT gatewayはアベイラビリティーゾーン内で冗長性を持ち、帯域幅は45Gbpsまで拡張できます。 一方で、NATインスタンスはAWS利用者が冗長構成にする必要があり、帯域幅はインスタンスタイプに依存します。

3ステップでNAT gatewayを作成しよう

NAT gatewayを利用するためには、Elastic IP アドレスの割り当て、サブネットの作成、NAT gatewayの作成の3ステップが必要です。 NAT gatewayを作成する時に、NAT gatewayに関連付ける Elastic IP アドレスと、NAT gatewayを作成するサブネットを指定する必要があるため、NAT gatewayを作成する前にElastic IP アドレスとサブネットを準備します。

ステップ1:Elastic IP アドレスの割り当て

NAT gatewayに関連付けるElastic IP アドレスは、他のEC2インスタンスやネットワークインターフェイスに関連付けられていないものを指定する必要があります。 今回は、NAT gatewayに関連付けるためのElastic IP アドレスを新たに割り当てます。

Elastic IP の設定画面に移動する

AWSマネジメントコンソールのAmazon EC2 コンソールで、Elastic IP アドレスの割り当てを行います。 Amazon EC2 コンソールの左側のナビゲーションペインで[Elastic IP]をクリックします。画面左上に表示される[Allocate Elastic IP address]というボタンをクリックすると、設定画面に移ります。

Elastic IPアドレスの設定を行う

設定画面では、Amazon の IP アドレスのプールから IPv4 アドレスを割り当てる設定をします。 設定画面では、[スコープ] に[VPC]を選択します。次に、IPアドレスプールとして[Amazon’s pool of IP addresses (Amazon の IP アドレスのプール)]を選択してください。 [Allocate] をクリックしたら、Elastic IPアドレスの割り当ては完了です。

ステップ2:サブネットの作成

NAT gateway作成時は作成先のサブネットを指定する必要があるので、次にそのサブネットを準備しましょう。 今回は、NAT gatewayを作成するためのサブネットを新たに作成します。

サブネットの設定画面に移動する

AWSマネジメントコンソールの Amazon VPC コンソールで、サブネットを作成します。 Amazon VPC コンソールの左側のナビゲーションペインで [サブネット]をクリックします。画面右上に表示される[サブネットの作成]というボタンをクリックすると、設定画面に移ります。

サブネットの設定を行う

設定画面では、サブネットのネットワーク情報を設定します。 設定画面では、[VPC]に サブネットを作成する VPC を選択します。[アベイラビリティーゾーン]は [指定なし]のままにします。 [IPv4 CIDR ブロック]にはサブネットの IPv4 CIDR ブロックを指定します。今回は「10.0.1.0/24」を指定してください。 [作成]をクリックしたら、サブネットの作成は完了です。

ステップ3:NAT gatewayを作成する

これまでの作業で、NAT gatewayの作成前に準備しなければいけないリソースの作成が完了しました。 今回は、以下の手順に従って新たなNAT gatewayの作成を行いましょう。

NAT gatewayの設定画面に移動する

AWSマネジメントコンソールの Amazon VPC コンソールで、NAT gatewayを作成します。 Amazon VPC コンソールの左側のナビゲーションペインで[NAT gateway]をクリックします。画面右上に表示される[NAT gatewayの作成]というボタンをクリックすると、設定画面に移ります。

NAT gatewayの設定を行う

設定画面では、NAT gatewayを作成するサブネットと、NAT gatewayに関連付ける Elastic IP アドレスを設定します。 [Elastic IP 割り当て ID]にはステップ1で割り当てたElastic IP を、[サブネット]にはステップ2で作成したサブネットを選択します。 [Create a NAT Gateway (NAT gatewayの作成)]をクリックしたら、NAT gatewayの作成は完了です。

NAT gatewayを使ってインターネットに接続しよう

NAT gatewayを作成しただけでは、インターネットへの接続はできません。 インターネットトラフィックがプライベートサブネットからNAT gatewayに向かうように、ルーティングを設定する必要があります。

NAT gatewayに向かうルートテーブルを追加する

AWSでは、ルートテーブルの編集によってルーティングを設定します。 今回は、ステップ2で作成したサブネットに関連付けられているルートテーブルを編集する必要があります。

ルートテーブルの設定画面に移動する

AWSマネジメントコンソールのAmazon VPC コンソールで、ルートテーブルの設定を行います。 Amazon VPC コンソールの左側のナビゲーションペインで、[Route Tables]をクリックします。ルートテーブルの一覧から、ステップ2で作成したサブネットに関連付けられているルートテーブルを選択してください。 画面下部にタブが表示されるので、[ルート]タブをクリックし、[編集]ボタンをクリックすると設定画面に移ります。

ルートテーブルを追加する

設定画面では、NAT gatewayへ向かうルートを追加します。 ルートテーブルの設定画面で、[別ルートの追加]ボタンをクリックします。追加されたレコードの[送信先] に「0.0.0.0/0」と入力します。[ターゲット]には、ステップ3で作成したNAT gatewayの ID を選択します。 [Save]をクリックしたら、ルートテーブルの追加は完了です。

インターネットに接続できることを確認する

以上の設定により、プライベートサブネットからインターネット接続ができるようになりました。 インターネット接続を確認するために、ステップ2で作成したサブネットにEC2インスタンスを1つ作成してください。また、パブリックサブネットとパブリックサブネット内にもEC2インスタンスを1つ作成してください。 EC2インスタンスを使ってインターネットに接続できることを確認します。

プライベートサブネットのEC2インスタンスにログインする

ステップ3で作成したサブネットはプライベートサブネットなので、インターネットからログインできません。パブリックサブネットのEC2インスタンスから、プライベートサブネットのEC2インスタンスにssh接続してください。 コマンドの例を示します。 ssh ec2-user@<プライベートサブネットのプライベート IPアドレス>

プライベートサブネットからpingコマンドを実行する

プライベートサブネット内のEC2インスタンスから、インターネットのウェブサイトに対してpingコマンドを実行します。 コマンドの例を示します。 ping <ウェブサイトのURL> 以下のような結果になれば、問題なく接続できています。 PING <ウェブサイトのURL> (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms

NAT gatewayを利用してインターネット接続するときの注意点3つ

NAT gatewayを作成できなかったり、NAT gatewayを作成しているのにインターネット接続ができないなど、NAT gatewayに関してよく発生する問題をまとめました。 紹介した手順通りに設定したのに、途中で失敗してしまう人は3つの注意点もチェックしてみてください。

注意点1:VPCにインターネットゲートウェイがアタッチされているか確認する

NAT gatewayからインターネットにアクセスするには、NAT gatewayが作成されているVPCにインターネットゲートウェイがアタッチされている必要があります。 NAT gatewayを作成した時に、「ネットワーク にインターネットゲートウェイがアタッチされていません」というエラーが表示される場合は、インターネットゲートウェイが作成されており、適切なVPCにアタッチされていることを確認してください。

注意点2:NAT gatewayを利用できるアベイラビリティーゾーンか確認する

AWSが提供するアベイラビリティーゾーンのなかには、NAT gatewayを作成できないアベイラビリティーゾーンがあります。 「NotAvailableInZone 」エラーが表示される場合は、他のアベイラビリティーゾーンでNAT gatewayを作成してください。

注意点3:セキュリティグループの設定が適切か確認する

EC2インスタンスからインターネットへ向けてpingコマンドを使用するには、セキュリティグループのアウトバウンドルールにより、ICMPトラフィックが許可されている必要があります。 pingコマンドが失敗する場合は、プライベートサブネット内のEC2インスタンスに関連付けられているセキュリティグループのアウトバウンドルールを確認してください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】