Tôi đã tạo một bản thử nghiệm cơ bản PostgreSQL RDS trong một VPC có một mạng con công cộng duy nhất và nó sẽ có sẵn để kết nối qua internet công cộng. Nó sử dụng nhóm bảo mật mặc định, mở cho cổng 5432. Khi tôi cố gắng kết nối, nó không thành công. Tôi phải thiếu một cái gì đó rất đơn giản - nhưng tôi khá lạc lõng với điều này.
Đây là cài đặt cơ sở dữ liệu, lưu ý rằng nó được đánh dấu là Publicly Accessible
:
Dưới đây là cài đặt nhóm bảo mật, lưu ý rằng nó được mở rộng (được xác nhận trong cài đặt RDS ở trên bằng gợi ý "được ủy quyền" màu xanh lá cây bên cạnh điểm cuối):
Đây là lệnh tôi đang cố sử dụng để kết nối:
psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
--port=5432
--username=masteruser
--password
--dbname=testdb
Và đây là kết quả mà tôi nhận được khi cố gắng kết nối từ MacBook Pro Yosemite (lưu ý, nó đang phân giải thành địa chỉ 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?
Tôi không kích hoạt bất kỳ loại tường lửa nào và có thể kết nối với các phiên bản PostgreQuery công khai trên các nhà cung cấp khác (ví dụ Heroku).
Bất kỳ mẹo khắc phục sự cố nào cũng sẽ được đánh giá cao, vì tôi bị mất khá nhiều ở đây.
Cập nhật
Mỗi bình luận, đây là các quy tắc ACL gửi đến cho VPC mặc định: