เชื่อมต่อ AWS RDS ผ่าน Internet
วิธี เชื่อมต่อ AWS RDS ผ่าน Internet โดยอธิบายตั้งแต่ การสร้าง Database บน AWS RDS Cloud ไปจนถึงการเปิด Internet Gateway บน VPC Subnet

วิธี เชื่อมต่อ AWS RDS ผ่าน Internet โดยอธิบายตั้งแต่ การสร้าง Database บน AWS RDS Cloud ไปจนถึงการเปิด Internet Gateway บน VPC Subnet
สร้างฐานข้อมูลบน AWS RDS
เราจะสร้าง AWS RDS PostgreSQL
ไปที่ Amazon RDS สร้างฐานข้อมูล ด้วยปุ่ม Create database

เลือก Standard create ตรง Engine options เลือก PostgreSQL

Templates เลือก Free tier ตั้งชื่อฐานข้อมูลตามต้องการ

สามารถเปลี่ยนได้ทั้ง Master username และ Master password

ตรง Storage เลือก Allocated storage ซัก 50GiB ก็ได้ ให้คลิ๊ก Storage autoscaling ออกมาดู จะพบว่าเครื่องมัน Default เป็น Enable storage autoscaling โดยกำหนด Maximum storage threshold ไว้เป็น 1000 ให้แก้เป็นซัก 60GiB ก็ได้

ตรง Connectivity -> Computer resource ปล่อยไว้ตามเดิมครับ
Public access ให้ตอบ Yes
แต่ตรง Public access ให้เลือก Yes ตรงนี้สำคัญนะครับ ถ้าต้องการเชื่อมต่อ AWS RDS ผ่าน Internet ตรงนี้ต้องเป็น Public access
นอกนั้นก็ปล่อยค่าไว้ตาม Default

Database authentication ปล่อยไว้ตามเดิมคือ Password authentication

Additional configuration
เมื่อมาถึงตรง Additional configuration ให้คลี่ออกมาดู โดยคลิ๊กตรง เครื่องหมายสามเหลี่ยม ข้างหน้าคำว่า Additional configuration จะพบ Database options ให้ใส่ชื่อฐานข้อมูลด้วยครับ ในที่นี้จะเป็น db_1

Estimated Monthly costs ตรงนี้ไม่ต้องตกใจ เพราะเราใช้ Free Tier ต่อไปให้กดปุ่ม Create database

ถ้ามี Pop up ขึ้นมาถามว่าต้องการสร้าง RDS Proxy หรือไม่ ให้ปิดได้เลยครับ

เสร็จแล้วครับ ให้รอ AWS RDS สร้างฐานข้อมูลให้เสร็จ

เชื่อมต่อ AWS RDS ผ่าน Internet
หา AWS RDS Endpoint หรือ Host
เมื่อ AWS RDS สร้างฐานข้อมูลให้เราเสร็จแล้ว ฐานข้อมูลจะขึ้น Status Available

ให้มองหา แถบสีเขียว คลิ๊กปุ่ม View connection details

ให้คัดลอก Master password และ Endpoint ไว้ให้ดี

ขั้นตอนต่อไปให้ใช้คำสั่ง telnet เพื่อทดสอบว่าเราสามารถเชื่อมต่อ AWS RDS ผ่าน Internet ได้มั๊ย
telnet [database_endpoint] [port]
โดยในที่นี้จะเป็น
telnet database-1.xxxxx.ap.southeast-1.rds.amazonaws.com 5432
ถ้าขึ้นเป็น Trying ค้างอยู่ตามรูปข้างล่างนี้ แสดงว่าเชื่อมต่อไม่ได้ครับ เกิดจาก Subnet ของเราไม่รองรับ Internet Gateway

แก้ไข Subnet บน VPC
ไปที่ AWS EC2 กดปุ่ม Connect เพื่อเข้าไปที่ Terminal

พิมพ์คำสั่ง nslookup บน Terminal
nslookup database-1.xxxxx.ap.southeast-1.rds.amazonaws.com
ตรงบรรทัดสุดท้าย ที่เขียนว่า Address: 172.31.49.x ให้จำเลข IP ไว้

ไปที่ AWS VPC ที่หน้าจอแรก หรือ Dashboard เลือก Subnets

เมื่อเข้ามาที่หน้าจอถัดไป ให้ดูว่าเลข IP ที่จดไว้ตรงกับ IPv4 CIDR บรรทัดไหน คลิ๊กตรง subnet-xxxxx ในคอลัมน์ Subnet ID

หน้าจอถัดไปคลิ๊ก rtb-xxxxx ตรง Route table

คลิ๊กซ้ำอีกทีตรง Route table ID

ถัดไปเลือก Manage tags

ให้เพิ่ม Internet Gateway โดยทำตามรูปด้านล่างนี้ เสร็จแล้วกดปุ่ม Save changes

ให้ลองใช้คำสั่ง telnet อีกครั้ง ครั้งนี้ระบบจะตอบว่า
Connected to ec2-xxxxx

ถ้าตอบแบบนี้ แสดงว่าเราสามารถ เชื่อมต่อ AWS RDS ผ่าน Internet ได้แล้ว