ฉันสร้างอินสแตนซ์ทดสอบ PostgreSQL RDS ขั้นพื้นฐานใน VPC ที่มีซับเน็ตสาธารณะเดียวและควรจะสามารถเชื่อมต่อผ่านอินเทอร์เน็ตสาธารณะได้ ใช้กลุ่มความปลอดภัยเริ่มต้นซึ่งเปิดสำหรับพอร์ต 5432 เมื่อฉันพยายามเชื่อมต่อจะล้มเหลว ฉันต้องคิดถึงบางสิ่งที่ตรงไปตรงมามาก - แต่ฉันก็หลงทางไปแล้ว
นี่คือการตั้งค่าฐานข้อมูลโปรดทราบว่ามีการทำเครื่องหมายเป็นPublicly Accessible
:
นี่คือการตั้งค่ากลุ่มความปลอดภัยโปรดทราบว่ามันเปิดกว้าง (ยืนยันในการตั้งค่า RDS ข้างต้นโดยคำแนะนำ "อนุญาต" สีเขียวถัดจากจุดสิ้นสุด):
นี่คือคำสั่งที่ฉันพยายามใช้เพื่อเชื่อมต่อ:
psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
--port=5432
--username=masteruser
--password
--dbname=testdb
และนี่คือผลลัพธ์ที่ฉันได้รับเมื่อพยายามเชื่อมต่อจาก Yosemite MacBook Pro (หมายเหตุมันแก้ไขไปที่ 54. * ที่อยู่ ip):
psql: could not connect to server: Operation timed out
Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting
TCP/IP connections on port 5432?
ฉันไม่ได้เปิดใช้งานไฟร์วอลล์ชนิดใดและสามารถเชื่อมต่อกับอินสแตนซ์ PostgreSQL สาธารณะในผู้ให้บริการรายอื่น (เช่น Heroku)
เคล็ดลับการแก้ไขปัญหาใด ๆ จะได้รับการชื่นชมมากเพราะฉันค่อนข้างเสียที่นี่
ปรับปรุง
ต่อความคิดเห็นนี่คือกฎ ACL ขาเข้าสำหรับ VPC เริ่มต้น: