ไม่สามารถเชื่อมต่ออินสแตนซ์ EC2 ใน VPC (Amazon AWS)


46

ฉันทำตามขั้นตอนต่อไปนี้แล้ว:

  1. สร้าง VPC (ด้วยซับเน็ตสาธารณะเดียว)
  2. เพิ่มอินสแตนซ์ EC2 ไปยัง VPC
  3. จัดสรร IP แบบยืดหยุ่น
  4. เชื่อมโยง IP ยืดหยุ่นกับอินสแตนซ์
  5. สร้างกลุ่มความปลอดภัยและกำหนดให้กับอินสแตนซ์
  6. แก้ไขกฎความปลอดภัยเพื่ออนุญาต ICMP echo และ TCP บนพอร์ต 22

ฉันทำทั้งหมดนี้แล้วและฉันยังไม่สามารถ ping หรือ ssh ในอินสแตนซ์ได้ ถ้าฉันทำตามขั้นตอนเดียวกันลบบิต VPC ฉันสามารถตั้งค่านี้ได้โดยไม่มีปัญหา ฉันพลาดขั้นตอนใดไป


2
คุณกำหนดเกตเวย์และเส้นทางไปยังเครือข่ายย่อย VPC หรือไม่
zorlem

ถ้าฉันไปที่ Internet Gateway จะมีเกตเวย์ที่กำหนดให้กับ VPC ฉันจะตรวจสอบว่าเส้นทางได้รับมอบหมายได้อย่างไร
Ryan Lynch

จัดเส้นทางตารางเส้นทางหรือไม่?
Ryan Lynch

2
ใช่คุณต้องกำหนด "เกตเวย์อินเทอร์เน็ต" ให้กับตารางเส้นทางสาธารณะ
zorlem

1
ยอดเยี่ยมขอบคุณชาย หากคุณวางไว้ในรูปแบบของคำตอบฉันจะยอมรับมัน ในคำตอบของคุณคุณสามารถระบุสิ่งที่จะใส่ลงในตารางเส้นทางได้หรือไม่ ฉันใส่ใน 0.0.0.0/0 และเป้าหมายเป็นเกตเวย์อินเทอร์เน็ต แต่นั่นฟังดูไม่ถูกต้องนัก
Ryan Lynch

คำตอบ:


75

ในการสื่อสารภายนอก VPC แต่ละเครือข่ายย่อยที่ไม่ใช่ค่าเริ่มต้นจำเป็นต้องมีตารางเส้นทางและอินเทอร์เน็ตเกตเวย์ที่เกี่ยวข้อง (เครือข่ายย่อยเริ่มต้นจะได้รับเกตเวย์ภายนอกและตารางเส้นทางโดยค่าเริ่มต้น)

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

คุณจะต้องเพิ่มเกตเวย์อินเทอร์เน็ตเพื่อ VPC ของคุณและภายในตารางเครือข่ายย่อยสาธารณะเส้นทางกำหนด0.0.0.0/0 (เส้นทางเริ่มต้น) เพื่อไปที่เกตเวย์อินเทอร์เน็ตที่ได้รับมอบหมาย มีภาพประกอบที่ดีเกี่ยวกับทอพอโลยีเครือข่ายที่แน่นอนภายในเอกสาร

นอกจากนี้สำหรับข้อมูลเพิ่มเติมคุณสามารถตรวจสอบเอกสารVPC Internet Gateway AWS น่าเสียดายที่มันยุ่งเล็กน้อยและก็เป็น gotcha ที่ไม่ชัดเจน

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับปัญหาการเชื่อมต่อดูเพิ่มเติมที่: การแก้ไขปัญหาการเชื่อมต่อกับอินสแตนซ์ของคุณ


2
นอกเหนือจากการกำหนดเส้นทางเริ่มต้นสำหรับอินเทอร์เน็ตเกตเวย์ฉันยังต้องเชื่อมโยงเครือข่ายย่อยกับตารางเส้นทาง แต่เมื่อฉันได้ทำสองสิ่งนี้ฉันก็เริ่มทำงาน ขอบคุณ
Sam Kenny

4
การจัดการ VPC> ตารางเส้นทาง> [เส้นทาง]> เพิ่ม 0.0.0.0/0 เลื่อนลงเพื่อเลือกเกตเวย์อินเทอร์เน็ตของคุณ
Scott R. Frost

ฉันจะทิ้งสิ่งนี้ไว้ที่นั่นเพื่อให้อินเทอร์เน็ตได้เรียนรู้จากความผิดพลาดของฉัน หากเส้นทางของคุณไปยัง Internet Gateway มีปลายทางที่ 0.0.0.0/32 เส้นทางนั้นจะไม่ทำงาน เส้นทางต้องเปลี่ยนเป็น 0.0.0.0/0 ตามที่ระบุในคำตอบของ Zorlem
Douglas Held

4

ไม่แน่ใจว่าเป็นกรณีนี้ แต่ฉันเพิ่งสร้าง VPC ด้วย Public และ Private Subnets และสังเกตว่ามีกลุ่มความปลอดภัยเริ่มต้นที่มีที่อยู่ต้นทางเป็นชื่อกลุ่มความปลอดภัยเดียวกัน มีประสิทธิภาพไม่สามารถเข้าถึงได้ ต้องเปลี่ยนแหล่งนี้เป็นที่ใดก็ได้และมันเริ่มทำงานได้


สวัสดีฉันกำลังทดสอบสถานการณ์จำลอง 2 ด้วย อินสแตนซ์สาธารณะและส่วนตัวในเครือข่ายสาธารณะและส่วนตัว ประเด็นคือฉันไม่เข้าใจว่าอินสแตนซ์ส่วนตัวสามารถเข้าถึงอินเทอร์เน็ตและอัปเดตซอฟต์แวร์ได้อย่างไร
The One

ขอบคุณนี่เป็นปัญหาของฉันฉันถูกสมมติว่านั่นหมายความว่าทุกกรณีใน VPC สามารถเข้าถึงได้
Santthosh

3

ฉันสังเกตเห็นว่า (ฉันคิดว่า) คุณจะต้องระมัดระวังเกี่ยวกับอินสแตนซ์โซนที่คุณสร้างไว้ SubNet, Network Interface และอินสแตนซ์จำเป็นต้องอยู่ในโซนความพร้อมใช้งานเดียวกันมิฉะนั้นจะไม่มีวิธีเชื่อมต่อกับ IP สาธารณะ สำหรับตัวอย่างนั้น

ฉันอาจจะผิด - แต่ฉันไม่คิดอย่างนั้นค่าใช้จ่าย 12 ชั่วโมงในการคิดออก

หวังว่านี่จะช่วยคนอื่นได้


ถูกต้อง. สถานการณ์ที่ 1 ดังที่กล่าวไว้ในคำตอบคือที่ที่คุณสร้าง/16VPC จากนั้นสร้าง a /24ในแต่ละ AZ ที่คุณต้องการทำงานใน
Machavity

1

คุณควรจัดสรร ENI และกำหนด Elastic IP ให้กับ ENI นี้ นอกจากนี้คุณควรกำหนด ENI นี้ให้กับ VPC ของคุณ ตารางเส้นทางต้องถูกต้องเช่นกันเพื่อส่งต่อแพ็กเก็ตภายนอกไปยัง VPC ของคุณอย่างถูกต้อง


ฉันเชื่อว่าการเพิ่ม ENI เป็นสิ่งจำเป็นเมื่อคุณต้องการอินเทอร์เฟซเครือข่ายเพิ่มเติมในอินสแตนซ์ของคุณโดยค่าเริ่มต้นพวกเขามาพร้อมกับ NIC หนึ่งอัน
zorlem

0

เนื่องจาก SSH เป็นโปรโตคอล statefull คุณต้องตรวจสอบให้แน่ใจว่าคุณมีกฎ OUTBOUND ต่อไปนี้ใน ACL เครือข่ายของคุณ:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.