AWS VPC - เกตเวย์อินเทอร์เน็ตเทียบกับ NAT [ปิด]


209

เกตเวย์อินเทอร์เน็ตคืออะไร อินสแตนซ์ NAT คืออะไร พวกเขาเสนอบริการอะไรบ้าง

อ่านเอกสาร AWS VPC ฉันรวบรวมทั้งที่อยู่ IP ส่วนตัวแผนที่ไปยังที่อยู่ที่สามารถใช้เส้นทางอินเทอร์เน็ตสำหรับคำขอขาออกและกำหนดเส้นทางการตอบสนองที่เข้ามาจากอินเทอร์เน็ตไปยังผู้ร้องขอบนเครือข่ายย่อย

ดังนั้นความแตกต่างระหว่างพวกเขาคืออะไร? สถานการณ์ใดที่ฉันจะใช้ NAT Instance แทน (หรือนอกเหนือจาก) Internet Gateway โดยพื้นฐานแล้วอินสแตนซ์ EC2 ที่ใช้งานแอปพลิเคชั่นเครือข่ายบางส่วนหรือเป็นฮาร์ดแวร์พิเศษเช่นเราเตอร์หรือไม่?

แทนที่จะชี้ไปที่ลิงก์เอกสาร AWS คุณช่วยอธิบายสิ่งเหล่านี้ด้วยการเพิ่มภูมิหลังเกี่ยวกับเครือข่ายสาธารณะและส่วนตัวเพื่อให้ผู้เริ่มต้นที่มีความรู้ จำกัด ด้านเครือข่ายสามารถเข้าใจสิ่งเหล่านี้ได้อย่างง่ายดาย? นอกจากนี้เมื่อใดที่ฉันควรใช้ NAT เกตเวย์แทนอินสแตนซ์ NAT

PS ฉันใหม่กับ AWS VPC ดังนั้นฉันอาจเปรียบเทียบแอปเปิ้ลกับส้มที่นี่

คำตอบ:


230

เกตเวย์อินเทอร์เน็ต

อินเทอร์เน็ตเกตเวย์เป็นการเชื่อมต่อตรรกะระหว่าง Amazon VPC และอินเทอร์เน็ต มันไม่ใช่อุปกรณ์ทางกายภาพ หนึ่งอันสามารถเชื่อมโยงกับแต่ละ VPC มันไม่ได้จำกัด แบนด์วิดธ์ของการเชื่อมต่ออินเทอร์เน็ต (ข้อ จำกัด เพียงอย่างเดียวเกี่ยวกับแบนด์วิดท์คือขนาดของอินสแตนซ์ Amazon EC2 และใช้กับการรับส่งข้อมูลทั้งหมด - ภายใน VPC และออกสู่อินเทอร์เน็ต)

หาก VPC ไม่มี Internet Gateway ดังนั้นทรัพยากรใน VPC จะไม่สามารถเข้าถึงได้จากอินเทอร์เน็ต (ยกเว้นกรณีที่ปริมาณการรับส่งข้อมูลผ่านเครือข่ายองค์กรและ VPN / การเชื่อมต่อโดยตรง)

ซับเน็ตจะถือว่าเป็นซับเน็ตสาธารณะหากมีตารางเส้นทางที่นำการรับส่งข้อมูลไปยังอินเทอร์เน็ตเกตเวย์

อินสแตนซ์ NAT

NAT Instance เป็นอินสแตนซ์ 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 Instance ผ่านการกำหนดค่าเส้นทางตาราง NAT Instance จะทำการร้องขอไปยังอินเทอร์เน็ต (เนื่องจากอยู่ใน Public Subnet) และการตอบกลับจะถูกส่งต่อกลับไปยังอินสแตนซ์ส่วนตัว

โดยทั่วไปปริมาณข้อมูลที่ส่งไปยัง NAT Instance จะถูกส่งไปยังที่อยู่ IP ที่ไม่เกี่ยวข้องกับ NAT Instance เอง (จะถูกกำหนดไว้สำหรับเซิร์ฟเวอร์บนอินเทอร์เน็ต) ดังนั้นจึงเป็นสิ่งสำคัญที่จะปิดตัวเลือกการตรวจสอบแหล่งที่มา / ปลายทางใน NAT Instance มิฉะนั้นการรับส่งข้อมูลจะถูกปิดกั้น

เกตเวย์ของ NAT

AWS แนะนำบริการเกตเวย์ของ NATที่สามารถใช้แทน NAT Instance ได้ ประโยชน์ของการใช้บริการ NAT Gateway คือ:

  • มันเป็นบริการที่มีการจัดการอย่างสมบูรณ์ - เพียงแค่สร้างมันขึ้นมาและทำงานได้โดยอัตโนมัติรวมถึงการล้มเหลว
  • สามารถระเบิดได้สูงสุด 10 Gbps (NAT Instance ถูก จำกัด แบนด์วิดท์ที่เกี่ยวข้องกับประเภทอินสแตนซ์ของ EC2)

อย่างไรก็ตาม:

  • กลุ่มความปลอดภัยไม่สามารถเชื่อมโยงกับ NAT Gateway
  • คุณจะต้องใช้หนึ่งในแต่ละ AZ เนื่องจากทำงานใน AZ เดียวเท่านั้น

4
คุณสามารถเพิ่มอีกหนึ่งจุดในบันทึกย่อของคุณได้หรือไม่? อินสแตนซ์ NAT จะทำงานได้ถ้าคุณมี IGW บนซับเน็ตสาธารณะ พวกเขายัง จำกัด การค้นหาแบบย้อนกลับจากอินเทอร์เน็ตไปยังอินสแตนซ์ของคุณในซับเน็ต
Ameya

1
ตอนนี้ที่ปี 2562 NAT gw สามารถใช้งานได้ใน VPC โดยจัดสรร EIP ใน "สาธารณะ" ซับเน็ตหรือซับเน็ตด้วย "เกตเวย์อินเทอร์เน็ต" และในซับเน็ตภายในเพียงแค่ไปที่ NAT gw
Felipe Buccioni

คำตอบนี้ยังคงถูกต้องหรือไม่? จากเอกสาร AWSAn 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.ผมเห็น: จากคำอธิบายฉันได้รับความประทับใจว่าเป็นอุปกรณ์ฮาร์ดแวร์จริง แต่จัดการโดย AWS โปรดแก้ไขฉันหากความเข้าใจของฉันปิด
Abhishek Divekar

@AbhishekDivekar ไม่มีอะไรเปลี่ยนแปลง เมื่อทำงานกับ AWS ให้จดจ่อกับสิ่งที่คุณต้องการจะทำมากกว่าที่จะคิดถึงฮาร์ดแวร์พื้นฐาน
John Rotenstein

1
@Sandeep NAT Instances และ NAT Gateways มีอยู่ภายใน VPC ดังนั้นการรับส่งข้อมูลใด ๆ ที่ออกไปและเดินทางไปยังอินเทอร์เน็ตจะยังคงต้องผ่านอินเทอร์เน็ตเกตเวย์ หากไม่มีเกตเวย์อินเทอร์เน็ตจะไม่มีการเข้าถึงอินเทอร์เน็ต
John Rotenstein

127

เท่าที่เกตเวย์ NAT กับอินสแตนซ์ NAT จะทำงานได้ อินสแตนซ์ NAT อาจมีราคาถูกกว่าเล็กน้อย แต่เกตเวย์ NAT ได้รับการจัดการโดย AWS อย่างเต็มที่ดังนั้นจึงมีข้อได้เปรียบที่ไม่จำเป็นต้องบำรุงรักษาอินสแตนซ์ EC2 สำหรับ NATing

อย่างไรก็ตามสำหรับอินสแตนซ์ที่จำเป็นต้องมีสำหรับอินเทอร์เน็ตเกตเวย์ NAT / อินสแตนซ์ไม่ใช่สิ่งที่คุณกำลังมองหา NAT จะอนุญาตให้อินสแตนซ์ส่วนตัว (ไม่มี IP สาธารณะ) เข้าถึงอินเทอร์เน็ต แต่ไม่ใช่วิธีอื่น ดังนั้นสำหรับอินสแตนซ์ EC2 ที่จำเป็นต้องมีในอินเทอร์เน็ตคุณจะต้องกำหนด IP สาธารณะ มีวิธีแก้ไขหากคุณต้องการให้อินสแตนซ์ของ EC2 เป็นส่วนตัว - คุณสามารถใช้ตัวโหลดบาลานซ์แบบยืดหยุ่นเพื่อพร็อกซีคำขอ

เกตเวย์อินเทอร์เน็ต

Internet Gateway เป็นวิธีที่ VPC ของคุณเชื่อมต่อกับอินเทอร์เน็ต คุณใช้อินเทอร์เน็ตเกตเวย์พร้อมตารางเส้นทางเพื่อบอก VPC ว่าทราฟฟิกอินเทอร์เน็ตเข้าถึงอินเทอร์เน็ตอย่างไร

Internet Gateway ปรากฏใน VPC เป็นเพียงชื่อ Amazon จัดการเกตเวย์และไม่มีสิ่งใดที่คุณสามารถพูดได้จริง ๆ (นอกเหนือจากการใช้หรือไม่โปรดจำไว้ว่าคุณอาจต้องการเครือข่ายย่อยที่แบ่งกลุ่มอย่างสมบูรณ์ซึ่งไม่สามารถเข้าถึงอินเทอร์เน็ตได้เลย)

ซับเน็ตสาธารณะหมายถึงซับเน็ตที่มีการรับส่งข้อมูลทางอินเทอร์เน็ตผ่านเกตเวย์อินเทอร์เน็ตของ AWS อินสแตนซ์ใด ๆ ภายในซับเน็ตสาธารณะสามารถมี IP สาธารณะที่กำหนดไว้ได้ (เช่นอินสแตนซ์ EC2 ที่เปิดใช้งาน "เชื่อมโยงที่อยู่ IP สาธารณะ")

ซับเน็ตส่วนตัวหมายถึงอินสแตนซ์ที่ไม่สามารถเข้าถึงได้แบบสาธารณะจากอินเทอร์เน็ต พวกเขาไม่มีที่อยู่ IP สาธารณะ ตัวอย่างเช่นคุณไม่สามารถเข้าถึงได้โดยตรงผ่าน SSH อินสแตนซ์บนเครือข่ายย่อยส่วนตัวยังคงสามารถเข้าถึงอินเทอร์เน็ตได้ด้วยตนเอง (เช่นโดยใช้ NAT เกตเวย์)


23
คำตอบที่ดีที่สุดในแง่ของ NAT vs Internet gateway
Tagar

คำตอบที่ดี เพียงคำถามติดตาม: เมื่ออินสแตนซ์ EC2 บนซับเน็ตสาธารณะมี IP สาธารณะเหตุผลก็เพียงพอที่จะรับคำขอขาเข้าจากอินเทอร์เน็ตหรือทำการร้องขอขาออกไปยังอินเทอร์เน็ตเนื่องจาก IP นั้นสามารถเข้าถึงได้และเข้าถึงได้ Internet Gateway ทำหน้าที่อะไรเพิ่มเติม
Sandeep

อินสแตนซ์ของ @Sandeep EC2 ไม่มี IP สาธารณะจริง ๆ แต่อยู่เบื้องหลังก็ถูกแมปไปยังที่อยู่ IP ส่วนตัว เกตเวย์อินเทอร์เน็ตมีจุดประสงค์สองประการ: เพื่อให้เป้าหมายในตารางเส้นทาง VPC ของคุณสำหรับการรับส่งข้อมูลผ่านอินเทอร์เน็ตและเพื่อทำการแปลที่อยู่เครือข่าย (NAT) สำหรับอินสแตนซ์ที่ได้รับการกำหนดที่อยู่ IPv4 สาธารณะ
Omar

11

เกตเวย์อินเทอร์เน็ตใช้เพื่อเชื่อมต่อ vpc กับอินเทอร์เน็ตและเกตเวย์ NAT จะใช้ในการเชื่อมต่อเครือข่ายส่วนตัวซับเน็ตกับอินเทอร์เน็ต คุณต้องส่งต่อการจราจรในตารางเส้นทางไปยัง NAT

ตารางเส้นทาง 0.0.0.0/0


ขอบคุณสำหรับตัวอย่าง - ช่วยฉันออกจากการผูก!
Chris

มีแผนภาพในหน้านี้: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.htmlที่อธิบายจุดประสงค์ของเกตเวย์ NAT และ IGW ทั้งสองมีความจำเป็นสำหรับเครือข่ายย่อยส่วนตัวเพื่อให้สามารถเข้าถึงอินเทอร์เน็ตได้
Maruthi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.