web-dev-qa-db-ja.com

AWS VPC - インターネットゲートウェイとNAT

インターネットゲートウェイとは何ですか? NATインスタンスとは何ですか?彼らはどんなサービスを提供していますか?

AWS VPCのドキュメントを読んで、私たちは両方ともプライベートIPアドレスを発信リクエスト用のインターネットルーティング可能アドレスにマッピングし、インターネットからの着信レスポンスをサブネット上のリクエスターにルーティングします。

それで、それらの違いは何ですか?インターネットゲートウェイの代わりに(またはそれに加えて)NATインスタンスを使用するシナリオを教えてください。それらは本質的にいくつかのネットワークアプリケーションを実行しているEC2インスタンスですか、またはそれらはルータのような特別なハードウェアですか?

単にAWSのドキュメントリンクを指すのではなく、パブリックおよびプライベートサブネットとは何かについての背景を追加して説明してください。ネットワークに関する知識が少ない初心者でも簡単に理解できますか。また、NATインスタンスの代わりにNAT Gatewayを使用する必要がある場合もありますか。

P.S私はAWS VPCが初めてなので、ここではリンゴとオレンジを比較しているかもしれません。

164
HappyTown

インターネットゲートウェイ

インターネットゲートウェイは、Amazon VPCとインターネット間の論理接続です。物理デバイスではありません。各VPCに関連付けることができるのは1つだけです。インターネット接続の帯域幅は制限されません。 (帯域幅の唯一の制限は、Amazon EC2インスタンスのサイズです。これはすべてのトラフィックに適用されます(VPCの内部およびインターネットへの送信)。)

VPCにインターネットゲートウェイがない場合、VPC内のリソースにインターネットからアクセスできません(トラフィックが企業ネットワークおよびVPN/Direct Connectを経由しない限り)。

インターネットゲートウェイにトラフィックを転送するルートテーブルがある場合、サブネットはパブリックサブネットであると見なされます。

NATインスタンス

NATインスタンスは、トラフィックをインターネットに転送するように設定されたAmazon EC2インスタンスです。既存のAMIから起動することも、ユーザーデータを介して次のように設定することもできます。

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

インターネットにアクセスしたいプライベートサブネット内のインスタンスは、インターネット宛てのトラフィックをルートテーブル設定を介してNATインスタンスに転送させることができます。 NATインスタンスはインターネットにリクエストを出し(パブリックサブネットにあるため)、レスポンスはプライベートインスタンスに転送されます。

NATインスタンスに送信されたトラフィックは通常、NATインスタンス自体に関連付けられていないIPアドレスに送信されます(インターネット上のサーバー宛てに送信されます)。したがって、NATインスタンスの送信元/送信先チェックオプションをオフにすることが重要です。そうしないとトラフィックがブロックされます。

NATゲートウェイ

AWSはNATインスタンスに代わることができるNATゲートウェイサービスを導入しました。 NATゲートウェイサービスを使用する利点は次のとおりです。

  • それは完全に管理されたサービスです - それを作成するだけで、フェイルオーバーを含めて自動的に機能します。
  • 最大10 Gbpsまでバーストできます(NATインスタンスはEC2インスタンスタイプに関連付けられた帯域幅に制限されます)。

しかしながら:

  • セキュリティグループをNATゲートウェイに関連付けることはできません
  • 彼らは単一のAZで動作するため、それぞれのAZに1つ必要です。
183
John Rotenstein

NAT gateway vs. NAT instanceについては、どちらでもうまくいきます。 NATインスタンスは少し安くなることがありますが、NATゲート​​ウェイはAWSによって完全に管理されているため、NATのためだけにEC2インスタンスを維持する必要がないという利点があります。

ただし、インターネットで利用できるようにする必要があるインスタンスの場合、NAT gateway/instancesは探しているものではありません。 NATはプライベートIP(パブリックIPなし)からインターネットへのアクセスを許可しますが、その逆はできません。そのため、インターネットで利用可能にする必要があるEC2インスタンスには、パブリックIPを割り当てる必要があります。 EC2インスタンスを非公開にしておく必要がある場合は、回避策があります。リクエストをプロキシするには、エラスティックロードバランサを使用できます。

インターネットゲートウェイ

インターネットゲートウェイは、VPCがインターネットに接続する方法です。インターネットトラフィックがどのようにインターネットに到達するかをVPCに通知するには、ルートテーブルを含むインターネットゲートウェイを使用します。

インターネットゲートウェイはVPCに単なる名前として表示されます。 Amazonがゲートウェイを管理していますが、実際には何も言えることはありません(それを使用するかどうか以外には、インターネットにアクセスできない完全にセグメント化されたサブネットが必要な場合があります)。

パブリックサブネットとは、インターネットトラフィックがAWSのインターネットゲートウェイを通じてルーティングされているサブネットを意味します。パブリックサブネット内のどのインスタンスにもパブリックIPを割り当てることができます(たとえば、「関連パブリックIPアドレス」が有効になっているEC2インスタンス)。

プライベートサブネットは、インスタンスがインターネットから公的にアクセスできないことを意味します。彼らはパブリックIPアドレスを持っていません。たとえば、SSH経由で直接アクセスすることはできません。プライベートサブネット上のインスタンスは、それでもインターネットにアクセスする可能性があります(つまり、NATゲート​​ウェイを使用して)。

98
error2007s

インターネットゲートウェイはvpcをインターネットに接続するために使用され、NATゲート​​ウェイはプライベートサブネットをインターネットに接続するために使用されます(これはトラフィックがプライベートサブネットインスタンスに送られ、NATゲート​​ウェイ)。ルートテーブルのトラフィックをNATに転送する必要があります。

ルートテーブル0.0.0.0/0

9
GNK