โลโก้ PostgreSQL
อันดับ 6 ใน Top 100 ฐานข้อมูลPostgreSQL License (โอเพนซอร์ส)

PostgreSQL คืออะไร และวิธีติดตั้งบน Cloud Server

PostgreSQL คือฐานข้อมูลเชิงสัมพันธ์โอเพนซอร์สที่ขึ้นชื่อเรื่องความถูกต้องของข้อมูลและความสามารถขั้นสูง ตั้งแต่การรองรับ JSON ไปจนถึงงานข้อมูลภูมิศาสตร์และการวิเคราะห์ที่ซับซ้อน

หมวดหมู่
ฐานข้อมูล
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
PostgreSQL License (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • 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 บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 5432 ตัว PostgreSQL และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
PostgreSQL ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ 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 ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ PostgreSQL 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 32 GB ขึ้นไป ดิสก์ NVMe 500 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นแอปเดียวหรือระบบภายในทีม2 vCPU4 GBNVMe 40 GB
แนะนำฐานข้อมูล Production ที่มีผู้ใช้ต่อเนื่อง4 vCPU16 GBNVMe 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. 1

    ติดตั้ง PostgreSQL

    sudo apt update
    sudo apt -y install postgresql postgresql-contrib
    sudo systemctl enable --now postgresql
  2. 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. 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. 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. 5

    รีสตาร์ตและตรวจสอบ

    sudo systemctl restart postgresql
    sudo -u postgres psql -c "SELECT version();"
  6. 6

    ตั้งการสำรองข้อมูลอัตโนมัติ

    pg_dump เหมาะกับฐานข้อมูลขนาดเล็กถึงกลาง ส่วนระบบใหญ่ควรใช้ pgBackRest หรือ Barman ที่รองรับการกู้คืน ณ จุดเวลาที่ต้องการ

    sudo -u postgres pg_dump -Fc appdb > /var/backups/appdb-$(date +%F).dump

ตรวจสอบ autovacuum ให้ทำงานทันปริมาณการเขียนเสมอ ถ้าตารางที่เขียนบ่อยเริ่มบวม ให้ปรับค่า autovacuum ของตารางนั้นเป็นการเฉพาะ

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
5432TCPการเชื่อมต่อฐานข้อมูล (เปิดเฉพาะวงภายใน)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ใช้การยืนยันตัวตนแบบ 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 ขนาดเล็กถึงกลางที่ไม่อยากเพิ่มฐานข้อมูลอีกตัว

บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ให้เราติดตั้ง PostgreSQL ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด