เลือกฟอนต์:

ข้อที่ 9 การสร้าง RDS Instance ด้วย MySQL Engine และการเชื่อมต่อผ่าน EC2 Instance เพื่อสร้างฐานข้อมูลใหม่และยืนยันผลการสร้าง


🧠 เป้าหมาย


🧰 บริการที่ใช้


🛠️ ขั้นตอนการทำ

🔹 1. สร้าง RDS Instance (MySQL Free Tier)

  1. ไปที่ AWS Console → บริการ RDS → คลิก Create database
  2. เลือก:

    • Engine type: ✅ MySQL
    • Edition: เลือกเวอร์ชัน 8.0 (ที่รองรับ Free Tier)
    • Templates: ✅ Free tier
  3. ตั้งค่าหลัก:

    • DB instance identifier: rdsxxxxyyyy
    • Master username: admin
    • Master password: ตั้งรหัสผ่านจำง่าย เช่น MySQLTest123!
  4. กำหนด:

    • Public access: ✅ Yes (สำคัญมาก)
    • Availability zone: เลือก Default
    • VPC security group: เลือก Create new หรือใช้ของ EC2 ก็ได้
    • Port: 3306
  5. ที่ Additional configuration:

    • Encryption: ติ๊ก Enable encryption ออก
  6. กด Create database
  7. รอให้สถานะเป็น Available (ใช้เวลาประมาณ 5–10 นาที)

🔹 2. สร้าง EC2 Instance (ถ้ายังไม่มี)

  1. ไปที่ AWS Console → EC2 → Launch instance

  2. ตั้งค่า:

    • Name: ec2xxxxyyyy
    • AMI: Amazon Linux 2023
    • Instance Type: t2.micro
    • Key Pair: เลือกที่มีอยู่ หรือสร้างใหม่
  3. คลิก Launch instance

  4. รอให้สถานะเป็น Running


🔹 3. แก้ Security Group ให้ EC2 → RDS สื่อสารกันได้

  1. ไปที่ EC2 → Security Groups → เลือกของ EC2 instance
  2. แก้ไข Outbound rules (ถ้าปิดไว้) → ให้มี Port 3306 → 0.0.0.0/0
  3. จากนั้น ไปที่ RDS → Databases → เลือก rdsxxxxyyyy
  4. คลิก 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

  1. กลับไปที่ RDS → rdsxxxxyyyy → Copy ค่า Endpoint เช่น:

    rdsxxxxyyyy.xxxxxx.us-east-1.rds.amazonaws.com
  2. ใช้คำสั่งนี้ใน EC2:

    mysql -h <your-endpoint> -u admin -p

แล้วพิมพ์รหัสผ่านที่ตั้งไว้ตอนสร้าง RDS เช่น MySQLTest123!

ถ้าไม่ได้ให้ตรวจสอบ

❗️1. RDS ยังไม่เปิด Public Access

Public access = "Yes" ❌ ถ้าเป็น "No" → EC2 จะเชื่อมต่อไม่ได้เลย


❗️2. Security Group ไม่เปิด port 3306


❗️3. EC2 อยู่ในคนละ VPC / คนละ Availability Zone


❗️4. เชื่อมต่อช้าเกินไป หรือ RDS ยังไม่ Ready

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                |
+--------------------+

📸 สิ่งที่ต้องแคปส่ง

ภาพหน้าจอ รวมในภาพเดียว:

  1. หน้า RDS ที่แสดงชื่อ instance: rdsxxxxyyyy
  2. Terminal EC2 ที่แสดงผล SHOW DATABASES; และเห็น CS332db ชัดเจน

ตัวอย่างรูปภาพที่ต้องส่ง

Example Image 2