AWS VPC - Gateway Internet vs NAT [ditutup]

209

Apa itu Gateway Internet? Apa itu Instance NAT? Layanan apa yang mereka tawarkan?

Membaca dokumentasi AWS VPC, saya mengumpulkan mereka berdua memetakan alamat IP pribadi ke alamat yang mampu rute internet untuk permintaan keluar dan merutekan tanggapan yang masuk dari internet ke pemohon pada subnet.

Jadi apa perbedaan di antara mereka? Skenario apa yang saya gunakan dengan Instance NAT alih-alih (atau selain) Gateway Internet? Apakah mereka pada dasarnya contoh EC2 menjalankan beberapa aplikasi jaringan atau apakah mereka perangkat keras khusus seperti router?

Alih-alih hanya menunjuk ke tautan dokumentasi AWS, dapatkah Anda menjelaskannya dengan menambahkan beberapa latar belakang tentang apa itu subnet publik dan pribadi sehingga setiap pemula dengan pengetahuan jaringan yang terbatas dapat memahaminya dengan mudah? Juga kapan saya harus menggunakan Gateway NAT bukannya instance NAT?

PS Saya baru di AWS VPC, jadi saya mungkin membandingkan apel dengan jeruk di sini.

HappyTown
sumber

Jawaban:

230

Gateway Internet

Gateway Internet adalah koneksi logis antara VPC Amazon dan Internet . Ini bukan perangkat fisik. Hanya satu yang dapat dikaitkan dengan setiap VPC. Itu tidak membatasi bandwidth konektivitas Internet. (Satu-satunya batasan bandwidth adalah ukuran instance Amazon EC2, dan berlaku untuk semua lalu lintas - internal ke VPC dan keluar ke Internet.)

Jika VPC tidak memiliki Gateway Internet, maka sumber daya dalam VPC tidak dapat diakses dari Internet (kecuali lalu lintas mengalir melalui jaringan perusahaan dan VPN / Koneksi Langsung).

Subnet dianggap sebagai Subnet Publik jika memiliki Tabel Rute yang mengarahkan lalu lintas ke Internet Gateway.

Instance NAT

Instance NAT adalah instance Amazon EC2 yang dikonfigurasi untuk meneruskan lalu lintas ke Internet. Itu dapat diluncurkan dari AMI yang ada, atau dapat dikonfigurasi melalui Data Pengguna seperti ini:

#!/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

Contoh dalam subnet pribadi yang ingin mengakses Internet dapat memiliki lalu lintas terikat Internetnya diteruskan ke Mesin Virtual NAT melalui konfigurasi Tabel Tabel. Instance NAT kemudian akan membuat permintaan ke Internet (karena itu dalam Subnet Publik) dan respons akan diteruskan kembali ke instance pribadi.

Lalu lintas yang dikirim ke Instance NAT biasanya akan dikirim ke alamat IP yang tidak terkait dengan Instance NAT itu sendiri (itu akan diperuntukkan bagi server di Internet). Oleh karena itu, penting untuk mematikan opsi Pemeriksaan Sumber / Tujuan pada NAT Instance jika tidak, lalu lintas akan diblokir.

Gerbang NAT

AWS memperkenalkan Layanan Gateway NAT yang dapat menggantikan Instance NAT. Manfaat menggunakan layanan NAT Gateway adalah:

  • Ini adalah layanan yang sepenuhnya dikelola - buat saja dan berfungsi secara otomatis, termasuk fail-over
  • Itu bisa meledak hingga 10 Gbps (Mesin Virtual NAT terbatas pada bandwidth yang terkait dengan tipe instance EC2)

Namun:

  • Grup Keamanan tidak dapat dikaitkan dengan NAT Gateway
  • Anda akan membutuhkan satu di setiap AZ karena mereka hanya beroperasi di satu AZ
John Rotenstein
sumber
4
Bisakah Anda menambahkan satu poin lagi di catatan Anda? Contoh NAT akan bekerja jika Anda memiliki IGW di subnet publik. Mereka juga membatasi pencarian balik dari internet ke instance Anda di subnet.
Ameya
1
Sekarang pada tahun 2019, NAT gw dapat digunakan hanya di VPC, mengalokasikan EIP di subnet "publik" atau subnet dengan "gateway internet" dan di subnet internal, cukup rute ke NAT gw.
Felipe Buccioni
Apakah jawaban ini masih akurat? Dari docs AWS , saya lihat: An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.. Dari uraian saya mendapatkan kesan bahwa itu adalah perangkat perangkat keras yang sebenarnya, tetapi dikelola oleh AWS. Harap perbaiki saya jika pemahaman saya tidak aktif.
Abhishek Divekar
@AbhishekDivekar Tidak ada yang berubah. Saat bekerja dengan AWS, berkonsentrasilah pada apa yang ingin Anda capai, daripada memikirkan perangkat keras yang mendasarinya.
John Rotenstein
1
@Sandeep NAT Instances dan NAT Gateways ada dalam VPC. Oleh karena itu setiap lalu lintas yang keluar dan bepergian ke Internet masih harus melewati Gateway Internet. Jika tidak ada Internet Gateway, maka tidak akan ada akses ke Internet.
John Rotenstein
127

Sejauh NAT gateway vs instance NAT, keduanya akan berfungsi. Sebuah instance NAT dapat menjadi sedikit lebih murah, tetapi gateway NAT sepenuhnya dikelola oleh AWS, sehingga memiliki keuntungan tidak perlu mempertahankan instance EC2 hanya untuk NATing.

Namun, untuk instance yang perlu tersedia di Internet, NAT gateway / instance bukan yang Anda cari. NAT akan memungkinkan instance pribadi (tanpa IP publik) untuk mengakses Internet, tetapi tidak sebaliknya. Jadi, untuk instance EC2 yang perlu tersedia untuk Internet, Anda perlu menetapkan IP publik. Ada solusi jika Anda benar-benar harus menjaga instance EC2 pribadi - Anda dapat menggunakan penyeimbang beban elastis untuk mem-proxy permintaan.

Gateway Internet

Gateway Internet adalah cara VPC Anda terhubung ke internet. Anda menggunakan Gateway Internet dengan tabel rute untuk memberi tahu VPC bagaimana lalu lintas internet sampai ke internet.

Gateway Internet muncul di VPC hanya sebagai nama. Amazon mengelola gateway dan tidak ada yang benar-benar Anda ucapkan (selain menggunakannya atau tidak; ingatlah bahwa Anda mungkin menginginkan subnet yang sepenuhnya tersegmentasi yang tidak dapat mengakses internet sama sekali).

Subnet publik berarti subnet yang memiliki lalu lintas internet yang dirutekan melalui Gateway Internet AWS. Setiap instance dalam subnet publik dapat memiliki IP publik yang ditetapkan untuknya (misalnya instance EC2 dengan "associate public ip address" diaktifkan).

Subnet pribadi berarti instance tidak dapat diakses publik dari internet. Mereka TIDAK memiliki alamat IP publik. Misalnya, Anda tidak dapat mengaksesnya secara langsung melalui SSH. Contoh pada subnet pribadi masih dapat mengakses internet sendiri (yaitu dengan menggunakan NAT Gateway).

error2007s
sumber
23
Jawaban terbaik dalam hal NAT vs gateway Internet.
Tagar
Jawaban yang bagus Hanya pertanyaan tindak lanjut: Ketika sebuah instance EC2 pada subnet publik memiliki IP Publik, secara logis cukup untuk menerima permintaan masuk dari internet atau membuat permintaan keluar ke internet karena IP-nya dapat dirutekan dan dapat dijangkau. Jadi pekerjaan apa lagi yang dilakukan Internet Gateway di sini?
Sandeep
Contoh @Sandeep EC2 tidak memiliki IP publik nyata tetapi di belakang layar, ini dipetakan ke alamat IP pribadi. Gateway Internet melayani dua tujuan: untuk memberikan target dalam tabel rute VPC Anda untuk lalu lintas yang dapat dialihkan melalui internet, dan untuk melakukan terjemahan alamat jaringan (NAT) untuk instance yang telah ditetapkan alamat IPv4 publik
Omar Faroque Anik
11

Gateway Internet digunakan untuk menghubungkan vpc ke internet dan gateway NAT digunakan untuk menghubungkan subnet Private ke internet (yang berarti lalu lintas apa pun yang datang ke instance subnet pribadi yang akan meneruskan ke gateway NAT). Anda perlu meneruskan lalu lintas di tabel rute ke NAT

Tabel rute 0.0.0.0/0

GNK
sumber
Terima kasih untuk contohnya - membantu saya keluar dari ikatan!
Chris
Ada diagram di halaman ini: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html yang menjelaskan tujuan gateway NAT dan IGW. Keduanya diperlukan untuk subnet pribadi untuk bisa mendapatkan akses internet
Maruthi