ข้อที่ 9 การสร้าง RDS Instance ด้วย MySQL Engine และการเชื่อมต่อผ่าน EC2 Instance เพื่อสร้างฐานข้อมูลใหม่และยืนยันผลการสร้าง
🧠 เป้าหมาย
- สร้าง RDS instance ชื่อ
rdsxxxxyyyy(แทนxxxxกับyyyyตามรหัส) - ใช้ MySQL (Free Tier)
- เชื่อมจาก EC2 instance ผ่าน MySQL CLI
- สร้างฐานข้อมูล
CS332dbและแสดงให้เห็นว่ามีจริง -
แสดงภาพหน้าจอเดียวที่มี:
- หน้ารายละเอียดของ RDS
- Terminal ที่แสดงผลลัพธ์ของ
SHOW DATABASES;
🧰 บริการที่ใช้
- Amazon RDS (MySQL)
- Amazon EC2
- MySQL CLI
- Security Groups (สำหรับเปิด port 3306)
🛠️ ขั้นตอนการทำ
🔹 1. สร้าง RDS Instance (MySQL Free Tier)
- ไปที่ AWS Console → บริการ RDS → คลิก Create database
-
เลือก:
- Engine type: ✅ MySQL
- Edition: เลือกเวอร์ชัน 8.0 (ที่รองรับ Free Tier)
- Templates: ✅ Free tier
-
ตั้งค่าหลัก:
- DB instance identifier:
rdsxxxxyyyy - Master username:
admin - Master password: ตั้งรหัสผ่านจำง่าย เช่น
MySQLTest123!
- DB instance identifier:
-
กำหนด:
- Public access: ✅ Yes (สำคัญมาก)
- Availability zone: เลือก Default
- VPC security group: เลือก Create new หรือใช้ของ EC2 ก็ได้
- Port:
3306
-
ที่ Additional configuration:
- Encryption: ติ๊ก Enable encryption ออก
- กด Create database
- รอให้สถานะเป็น
Available(ใช้เวลาประมาณ 5–10 นาที)
🔹 2. สร้าง EC2 Instance (ถ้ายังไม่มี)
-
ไปที่ AWS Console → EC2 → Launch instance
-
ตั้งค่า:
- Name:
ec2xxxxyyyy - AMI: Amazon Linux 2023
- Instance Type:
t2.micro - Key Pair: เลือกที่มีอยู่ หรือสร้างใหม่
- Name:
-
คลิก Launch instance
-
รอให้สถานะเป็น
Running
🔹 3. แก้ Security Group ให้ EC2 → RDS สื่อสารกันได้
- ไปที่ EC2 → Security Groups → เลือกของ EC2 instance
- แก้ไข Outbound rules (ถ้าปิดไว้) → ให้มี Port 3306 → 0.0.0.0/0
- จากนั้น ไปที่ RDS → Databases → เลือก rdsxxxxyyyy
-
คลิก Security Group ที่ใช้ → แก้ Inbound rules
-
เพิ่ม rule:
- Type: MySQL/Aurora
- Port:
3306 - Source: เลือก
Security groupของ EC2 instance หรือ0.0.0.0/0ชั่วคราว
-
🔹 4. SSH เข้า EC2 และติดตั้ง MySQL Client
ssh -i /path/to/key.pem ec2-user@<your-ec2-public-ip>
ติดตั้ง MySQL Client:
sudo yum update -y
sudo yum install -y mysql
ถ้าไม่ได้ให้ใช้คำสั่งนี้ (หากใช้ Instance Amazon Linux 2023):
sudo dnf install -y mariadb105
🔹 5. เชื่อมต่อไปยัง RDS MySQL
-
กลับไปที่ RDS → rdsxxxxyyyy → Copy ค่า Endpoint เช่น:
rdsxxxxyyyy.xxxxxx.us-east-1.rds.amazonaws.com -
ใช้คำสั่งนี้ใน EC2:
mysql -h <your-endpoint> -u admin -p
แล้วพิมพ์รหัสผ่านที่ตั้งไว้ตอนสร้าง RDS เช่น
MySQLTest123!
ถ้าไม่ได้ให้ตรวจสอบ
❗️1. RDS ยังไม่เปิด Public Access
- ไปที่ AWS Console → RDS → rdsxxxxyyyy
- ตรวจดูว่า:
✅ Public access = "Yes" ❌ ถ้าเป็น "No" → EC2 จะเชื่อมต่อไม่ได้เลย
❗️2. Security Group ไม่เปิด port 3306
- ไปที่ RDS instance → คลิก Security group ที่ใช้
-
ตรวจ Inbound rules:
-
✅ ต้องมี:
-
Type: MySQL/Aurora
-
Port: 3306
-
Source: Security group ของ EC2 หรือ
0.0.0.0/0(สำหรับทดสอบ)
-
❗️3. EC2 อยู่ในคนละ VPC / คนละ Availability Zone
- ต้องให้ EC2 กับ RDS อยู่ใน VPC เดียวกัน หรือเปิด Public Access + port
-
ตรวจดู:
- EC2 instance → Networking → VPC ID = ?
- RDS instance → Connectivity → VPC ID = ?
❗️4. เชื่อมต่อช้าเกินไป หรือ RDS ยังไม่ Ready
- รอ 1–2 นาที แล้วลองใหม่
- ลอง
pingไปยัง endpoint:
ping <rds-endpoint>
ถ้าขึ้น unknown host หรือ Request timeout แปลว่า DNS หรือ network ยังไม่เปิด
✅ ทดสอบจาก EC2:
ลองเช็กแบบนี้ก่อน:
nc -zv <rds-endpoint> 3306
ถ้าเชื่อมต่อได้จะขึ้น:
Connection to <rds-endpoint> 3306 port [tcp/mysql] succeeded!
ถ้าไม่ได้จะขึ้น timeout → แปลว่า RDS ยังไม่เปิดให้เข้า
🔹 6. สร้างฐานข้อมูล CS332db และตรวจสอบ
ใน MySQL CLI:
CREATE DATABASE CS332db;
SHOW DATABASES;
ผลลัพธ์ที่ต้องแสดง เช่น:
+--------------------+
| Database |
+--------------------+
| CS332db |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
📸 สิ่งที่ต้องแคปส่ง
ภาพหน้าจอ รวมในภาพเดียว:
- หน้า RDS ที่แสดงชื่อ instance:
rdsxxxxyyyy - Terminal EC2 ที่แสดงผล
SHOW DATABASES;และเห็นCS332dbชัดเจน