DigitalOcean Managed Databases: PostgreSQL, MySQL, Valkey ราคา ข้อดี วิธีเชื่อมต่อ และเมื่อไรควรใช้
คู่มือ DigitalOcean Managed Databases ภาษาไทย ราคาเริ่ม $15 ต่อเดือน backup รายวัน standby node Trusted Sources การเชื่อมต่อด้วย SSL เทียบกับการติดตั้งฐานข้อมูลเองบน Droplet
Managed Database คืออะไร
Managed Database คือบริการที่ DigitalOcean ติดตั้ง ดูแล อัปเดต สำรองข้อมูล และตรวจสอบสถานะ ฐานข้อมูลให้คุณ คุณเพียงสร้างคลัสเตอร์ ได้ connection string แล้วเชื่อมต่อจากแอปได้ทันที เหมาะกับคนที่ไม่อยากเสี่ยงกับการดูแลฐานข้อมูลเอง ซึ่งเป็นส่วนที่ผิดพลาดแล้วเจ็บที่สุด (ข้อมูลหาย)
ตามหน้าราคาทางการ ณ 3 พ.ย. 2569 Managed Databases เริ่มต้น $15/เดือน และมี backup รายวันรวมอยู่ในราคา (ไม่คิดเพิ่มเหมือน backup ของ Droplet)
ฐานข้อมูลที่ให้บริการ
DigitalOcean เปิดให้บริการเอนจินหลายชนิด เช่น PostgreSQL, MySQL, ที่เก็บแบบ key-value ตระกูล Valkey (ที่ใช้โปรโตคอลแบบ Redis), MongoDB, Kafka และ OpenSearch รายการที่ให้บริการและเวอร์ชันที่รองรับอาจเปลี่ยนไป ตรวจดูที่หน้าผลิตภัณฑ์ Managed Databases ก่อนเลือก
ทำไมควรใช้ Managed Database
- ไม่ต้องดูแล patch และอัปเกรด ระบบจัดการช่วงบำรุงรักษาให้
- Backup รายวันอัตโนมัติ รวมอยู่ในราคา
- High Availability เพิ่ม standby node เพื่อให้สลับอัตโนมัติเมื่อเครื่องหลักล้ม (มีค่าใช้จ่ายเพิ่มสำหรับ node เสริม)
- ปลอดภัยโดยค่าเริ่มต้น เชื่อมต่อผ่าน SSL/TLS และจำกัดผู้เข้าถึงด้วย Trusted Sources
- ขยายได้ ขยายขนาดเครื่องหรือเพิ่ม read replica เมื่อโหลดเพิ่ม
- เหมาะกับ App Platform และ Kubernetes เชื่อมกันภายใน VPC ได้สะดวก
เทียบกับการติดตั้งฐานข้อมูลเองบน Droplet
| หัวข้อ | Managed Database | ติดตั้งเองบน Droplet |
|---|---|---|
| ค่าใช้จ่ายเริ่มต้น | เริ่ม $15/เดือน | ใช้ทรัพยากรของ Droplet ที่มีอยู่ (ถูกกว่า) |
| การดูแล | DigitalOcean ดูแล | คุณดูแลเองทั้งหมด |
| Backup | รายวัน รวมในราคา | ต้องตั้งเอง |
| High Availability | เพิ่ม standby ได้ง่าย | ต้องออกแบบและตั้งค่าเอง |
| ปรับแต่งลึก | จำกัดบางส่วน | ทำได้ทุกอย่าง |
| เหมาะกับ | งานที่ข้อมูลสำคัญ ทีมเล็ก | งบจำกัด โปรเจกต์เล็ก คุมเองได้ |
หลักคิด: ถ้าข้อมูลคือหัวใจของธุรกิจ (ร้านค้าออนไลน์ ระบบสมาชิก) และคุณไม่ใช่ DBA ให้ใช้ Managed Database แต่ถ้าเป็นบล็อกหรือโปรเจกต์ทดลอง ติดตั้งบนเครื่องเดียวกันก็เพียงพอ ขอเพียงมี backup ดู คู่มือความปลอดภัยเซิร์ฟเวอร์
วิธีสร้างและเชื่อมต่อ (ตัวอย่าง PostgreSQL)
ขั้นที่ 1: สร้างคลัสเตอร์
- Control Panel → Create → Databases
- เลือกเอนจิน (เช่น PostgreSQL) และเวอร์ชัน
- เลือกภูมิภาค เดียวกับ Droplet/แอป ของคุณ (เช่น สิงคโปร์) เพื่อความหน่วงต่ำและเชื่อมกันผ่าน private network
- เลือกขนาดแผนและจำนวน node (1 = ไม่มี standby)
- ตั้งชื่อ และกด Create ใช้เวลาไม่กี่นาที
ขั้นที่ 2: ตั้ง Trusted Sources
ในแท็บ Settings → Trusted Sources เพิ่ม Droplet หรือ tag ที่อนุญาตให้เชื่อมต่อ หากไม่ตั้ง คลัสเตอร์อาจรับการเชื่อมต่อจากทุกที่ที่มีรหัสผ่าน ซึ่งไม่ปลอดภัย
ขั้นที่ 3: เชื่อมต่อ
ในหน้าคลัสเตอร์มี Connection Details (host, port, user, password, database, sslmode) คัดลอก connection string ไปใช้
psql "postgresql://doadmin:รหัสผ่าน@host-xxxx.db.ondigitalocean.com:25060/defaultdb?sslmode=require"
พอร์ตและรูปแบบ URL ให้ใช้ค่าที่หน้า Connection Details แสดง ซึ่งอาจต่างกันตามเอนจิน
ขั้นที่ 4: สร้างผู้ใช้และฐานข้อมูลแยกต่อแอป
อย่าใช้บัญชี doadmin ในแอปทุกตัว สร้างผู้ใช้เฉพาะต่อแอปด้วยสิทธิ์น้อยที่สุด
CREATE USER app1 WITH PASSWORD 'รหัสผ่านที่แข็งแรง';
CREATE DATABASE app1_db OWNER app1;
ขั้นที่ 5: ใช้ Connection Pool (PostgreSQL)
PostgreSQL มีขีดจำกัดจำนวนการเชื่อมต่อ ถ้าแอปเปิด connection จำนวนมาก (เช่น serverless หรือ PHP) ให้เปิด Connection Pool ของ DigitalOcean และเชื่อมต่อผ่านพอร์ตของ pool แทน
การเชื่อมต่อจากแอปยอดนิยม
Node.js (pg)
const { Pool } = require('pg');
const pool = new Pool({ connectionString: process.env.DATABASE_URL, ssl: { rejectUnauthorized: true, ca: process.env.DB_CA } });
ดาวน์โหลด CA certificate จากหน้า Connection Details เพื่อตรวจใบรับรองให้ครบ ไม่ควรปิดการตรวจสอบใบรับรองใน production
WordPress (MySQL)
กำหนดใน wp-config.php ให้ DB_HOST เป็น host:port ของคลัสเตอร์ และเพิ่ม define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL); ตามเอกสาร หากเปิด SSL บังคับ
การสำรองและกู้คืน
- Backup รายวันถูกเก็บให้อัตโนมัติ (จำนวนวันที่เก็บและความสามารถ point-in-time recovery ขึ้นกับเอนจินและแผน ตรวจสอบเอกสารล่าสุด)
- ทดลอง Fork คลัสเตอร์จาก backup เพื่อทดสอบการกู้คืนโดยไม่กระทบระบบจริง
- นอกจากนี้ควรทำ
pg_dump/mysqldumpเป็นระยะเก็บภายนอก ตามกฎ 3-2-1
ข้อควรระวัง
- เลือกภูมิภาคให้ถูก ไม่สามารถย้ายภูมิภาคโดยตรง ต้อง dump/restore หรือ fork ตามความสามารถของเอนจิน
- ขนาดดิสก์ ขึ้นกับแผนที่เลือก ตรวจเพดานและวิธีขยาย
- ต้นทุน standby และ replica แต่ละ node คิดค่าบริการ
- ช่วง maintenance กำหนดเวลาบำรุงรักษาให้ตรงช่วงที่ผู้ใช้น้อย (เช่น ตี 2-4 เวลาไทย)
- การเชื่อมต่อข้ามภูมิภาค ช้าและคิด bandwidth ควรอยู่ภูมิภาคเดียวกัน
เคล็ดลับประหยัด
- เริ่มด้วยแผนเล็กสุดและขยายเมื่อต้องการ
- ไม่เปิด standby ในสภาพแวดล้อม dev/test
- ลบคลัสเตอร์ทดลองทันที
- ใช้ dev database ฟรีของ App Platform สำหรับทดลอง (ถ้ามีในแผน) ดู คู่มือ App Platform
- อ่านเทคนิคเพิ่มเติมที่ 15 วิธีลดค่าใช้จ่าย DigitalOcean
คำถามที่พบบ่อย
ใช้ฟรีได้ไหม
ไม่มีแผนฟรีถาวรสำหรับ Managed Database ตามหน้าราคา เริ่ม $15/เดือน แต่ผู้ใช้ใหม่ใช้เครดิตทดลองได้ ดู วิธีรับเครดิตฟรี $200 DigitalOcean
ย้ายข้อมูลจากฐานข้อมูลเดิมมาอย่างไร
ใช้ pg_dump/pg_restore สำหรับ PostgreSQL หรือ mysqldump สำหรับ MySQL นำเข้าไปยังคลัสเตอร์ใหม่ หรือใช้เครื่องมือ migration ที่ DigitalOcean มีให้สำหรับบางเอนจิน
ใช้ Managed Database กับ Droplet ต่างภูมิภาคได้ไหม
ทำได้ผ่านอินเทอร์เน็ตสาธารณะ แต่ไม่แนะนำ เพราะความหน่วงสูงและปลอดภัยน้อยกว่าการใช้ VPC ในภูมิภาคเดียวกัน