PostgreSQL คืออะไร และวิธีติดตั้งบน Cloud Server
PostgreSQL คือฐานข้อมูลเชิงสัมพันธ์โอเพนซอร์สที่ขึ้นชื่อเรื่องความถูกต้องของข้อมูลและความสามารถขั้นสูง ตั้งแต่การรองรับ JSON ไปจนถึงงานข้อมูลภูมิศาสตร์และการวิเคราะห์ที่ซับซ้อน
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- PostgreSQL License (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
PostgreSQL คืออะไร
PostgreSQL พัฒนาต่อเนื่องมากว่าสามสิบปีโดยชุมชนที่เข้มแข็ง จุดเด่นคือความเคร่งครัดในความถูกต้องของข้อมูลและการรองรับมาตรฐาน SQL ได้ครบถ้วนกว่าฐานข้อมูลโอเพนซอร์สตัวอื่น
ความสามารถที่ทำให้ทีมพัฒนายุคใหม่เลือกใช้ ได้แก่ ชนิดข้อมูล JSONB ที่คิวรีและทำดัชนีได้จริง ฟังก์ชันหน้าต่างสำหรับงานวิเคราะห์ Full-text search ในตัว และส่วนขยายอย่าง PostGIS สำหรับข้อมูลแผนที่ กับ pgvector สำหรับงาน AI
สิ่งที่ต้องดูแลคือกระบวนการ VACUUM ที่คอยเก็บกวาดแถวเก่า ถ้าตั้งค่าไม่เหมาะกับปริมาณการเขียน ฐานข้อมูลจะบวมและช้าลง ซึ่งเป็นปัญหาที่พบบ่อยที่สุดในระบบที่ปล่อยค่าเริ่มต้นไว้
ความสามารถเด่นของ PostgreSQL
ความถูกต้องของข้อมูลเป็นหลัก
รองรับ Transaction, Constraint และ Foreign Key อย่างเคร่งครัด ลดโอกาสข้อมูลเพี้ยน
JSONB ที่คิวรีได้จริง
เก็บข้อมูลกึ่งโครงสร้างพร้อมทำดัชนี จึงได้ความยืดหยุ่นแบบ NoSQL ในฐานข้อมูลเดียว
ส่วนขยายจำนวนมาก
PostGIS สำหรับข้อมูลภูมิศาสตร์ TimescaleDB สำหรับ Time-series และ pgvector สำหรับงาน AI
Replication ในตัว
ทำสำเนาแบบสตรีมไปยังเครื่องสำรองและใช้เป็นเครื่องอ่านได้
เหมาะกับงานวิเคราะห์
ฟังก์ชันหน้าต่างและ CTE ทำให้เขียนรายงานซับซ้อนได้โดยไม่ต้องดึงข้อมูลออกไปประมวลผลนอกฐาน
ใช้ PostgreSQL ทำอะไรได้บ้าง
- ระบบธุรกรรมที่ความถูกต้องของข้อมูลสำคัญที่สุด เช่น การเงินและคลังสินค้า
- แอปที่พัฒนาด้วย Django, Rails, Laravel และ Node.js สมัยใหม่
- ระบบข้อมูลภูมิศาสตร์และงานแผนที่ผ่าน PostGIS
- งาน AI ที่ต้องเก็บ Vector สำหรับการค้นหาเชิงความหมาย
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นแอปเดียวหรือระบบภายในทีม | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำฐานข้อมูล Production ที่มีผู้ใช้ต่อเนื่อง | 4 vCPU | 16 GB | NVMe 200 GB |
| ระบบใหญ่ระบบหลักขององค์กรหรือฐานข้อมูลที่รันงานวิเคราะห์ควบคู่ | 8 vCPU ขึ้นไป | 32 GB ขึ้นไป | NVMe 500 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง PostgreSQL บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- ดิสก์ NVMe สำหรับไฟล์ข้อมูลและ WAL
- RAM เพียงพอสำหรับ shared_buffers และ cache ของระบบปฏิบัติการ
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง PostgreSQL
sudo apt update sudo apt -y install postgresql postgresql-contrib sudo systemctl enable --now postgresql - 2
สร้างฐานข้อมูลและผู้ใช้
sudo -u postgres psql -c "CREATE USER appuser WITH PASSWORD 'ChangeThisStrongPassword';" sudo -u postgres psql -c "CREATE DATABASE appdb OWNER appuser;" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser;" - 3
จูนค่าหลักใน postgresql.conf
ค่าเริ่มต้นของ PostgreSQL ตั้งไว้เพื่อให้รันได้บนเครื่องเล็กมาก จึงควรปรับตามขนาดเครื่องจริงเสมอ ตัวอย่างนี้อ้างอิงเครื่อง RAM 16 GB
shared_buffers = 4GB effective_cache_size = 12GB maintenance_work_mem = 1GB work_mem = 32MB wal_buffers = 16MB max_connections = 200 random_page_cost = 1.1 - 4
เปิดการเชื่อมต่อจากวงภายใน
แก้ listen_addresses ใน postgresql.conf และเพิ่มบรรทัดอนุญาตใน pg_hba.conf โดยระบุช่วงไอพีให้แคบที่สุด
# postgresql.conf listen_addresses = '10.10.0.20' # pg_hba.conf host appdb appuser 10.10.0.0/24 scram-sha-256 - 5
รีสตาร์ตและตรวจสอบ
sudo systemctl restart postgresql sudo -u postgres psql -c "SELECT version();" - 6
ตั้งการสำรองข้อมูลอัตโนมัติ
pg_dump เหมาะกับฐานข้อมูลขนาดเล็กถึงกลาง ส่วนระบบใหญ่ควรใช้ pgBackRest หรือ Barman ที่รองรับการกู้คืน ณ จุดเวลาที่ต้องการ
sudo -u postgres pg_dump -Fc appdb > /var/backups/appdb-$(date +%F).dump
ตรวจสอบ autovacuum ให้ทำงานทันปริมาณการเขียนเสมอ ถ้าตารางที่เขียนบ่อยเริ่มบวม ให้ปรับค่า autovacuum ของตารางนั้นเป็นการเฉพาะ
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 5432 | TCP | การเชื่อมต่อฐานข้อมูล (เปิดเฉพาะวงภายใน) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ใช้การยืนยันตัวตนแบบ scram-sha-256 และเลิกใช้ md5 ที่เก่ากว่า
- จำกัดช่วงไอพีใน pg_hba.conf ให้แคบที่สุดเท่าที่ระบบทำงานได้
- เปิด TLS สำหรับการเชื่อมต่อข้ามเครื่อง
- แยกผู้ใช้สำหรับอ่านอย่างเดียวสำหรับงานรายงานและ BI
- ตั้ง log_min_duration_statement เพื่อจับคิวรีที่ช้า
- ทดสอบกู้คืนจากไฟล์สำรองจริงเป็นระยะ ไม่ใช่แค่ตรวจว่าไฟล์ถูกสร้าง
ทำไมควรรัน PostgreSQL บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
งาน Django, Rails และแอปยุคใหม่ส่วนใหญ่ใช้ PostgreSQL เป็นค่าเริ่มต้น การมีเครื่องฐานข้อมูลแยกในไทยจึงช่วยทั้งความเร็วและการปฏิบัติตาม PDPA
ขยาย RAM และดิสก์ได้ตามการเติบโตของข้อมูล โดยไม่ต้องย้ายเครื่อง
ทำ Streaming Replication ไปยัง Cloud Server อีกเครื่องหรืออีกไซต์เพื่อรองรับแผนกู้คืนระบบ
คำถามที่พบบ่อยเกี่ยวกับ PostgreSQL
PostgreSQL กับ MySQL ควรเลือกตัวไหน
ถ้างานเป็นเว็บ PHP ทั่วไปหรือใช้ซอฟต์แวร์สำเร็จรูปที่ระบุ MySQL ให้ใช้ MySQL หรือ MariaDB แต่ถ้าเขียนแอปเอง ต้องการความถูกต้องของข้อมูลสูง ใช้ JSON ปนกับตาราง หรือทำงานวิเคราะห์ในฐานข้อมูลเดียวกัน PostgreSQL จะได้เปรียบชัดเจน
ทำไมฐานข้อมูลโตขึ้นเรื่อย ๆ ทั้งที่ลบข้อมูลแล้ว
เพราะ PostgreSQL เก็บแถวเก่าไว้จนกว่า VACUUM จะเก็บกวาด ถ้าตารางถูกเขียนหนักแล้ว autovacuum ตามไม่ทัน ตารางจะบวม แก้โดยปรับค่า autovacuum ของตารางนั้นให้ทำงานถี่ขึ้น
ต้องใช้ Connection Pool ไหม
ควรใช้เมื่อแอปเปิดการเชื่อมต่อจำนวนมาก เพราะ PostgreSQL ใช้หนึ่งกระบวนการต่อหนึ่งการเชื่อมต่อ การมี PgBouncer คั่นช่วยลดภาระเครื่องได้มากในระบบที่มีผู้ใช้พร้อมกันสูง
ใช้ PostgreSQL เก็บ Vector สำหรับงาน AI ได้จริงไหม
ได้ ผ่านส่วนขยาย pgvector ซึ่งเก็บและค้นหา Vector ได้ในฐานข้อมูลเดียวกับข้อมูลธุรกิจ เหมาะกับระบบ RAG ขนาดเล็กถึงกลางที่ไม่อยากเพิ่มฐานข้อมูลอีกตัว
ทางเลือกอื่นที่คล้ายกับ PostgreSQL
แอปอื่นในหมวด ฐานข้อมูล
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง PostgreSQL ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด