โลโก้ MongoDB
อันดับ 13 ใน Top 100 ฐานข้อมูลSSPL (Community Edition)

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

MongoDB คือฐานข้อมูล NoSQL ที่เก็บข้อมูลเป็นเอกสารคล้าย JSON แทนตาราง เหมาะกับข้อมูลที่โครงสร้างเปลี่ยนบ่อยและระบบที่ต้องขยายตามปริมาณข้อมูลมหาศาล

หมวดหมู่
ฐานข้อมูล
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
SSPL (Community Edition)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

MongoDB คืออะไร

แทนที่จะบังคับให้ทุกแถวมีคอลัมน์เหมือนกัน MongoDB เก็บข้อมูลเป็นเอกสารที่มีฟิลด์ต่างกันได้ จึงเหมาะกับข้อมูลที่โครงสร้างยังไม่นิ่ง เช่น ข้อมูลจากอุปกรณ์ IoT บันทึกเหตุการณ์ หรือแคตตาล็อกสินค้าที่คุณสมบัติต่างกันในแต่ละหมวด

MongoDB ขยายแนวนอนด้วยการทำ Sharding คือกระจายข้อมูลไปหลายเครื่อง และรองรับความพร้อมใช้งานสูงด้วย Replica Set ที่เลือกโหนดหลักใหม่อัตโนมัติเมื่อโหนดเดิมล่ม

ประเด็นที่ต้องระวังที่สุดคือความปลอดภัย เพราะเคยมีเหตุข้อมูลรั่วจำนวนมากจากการเปิด MongoDB สู่อินเทอร์เน็ตโดยไม่ตั้งรหัสผ่าน ดังนั้นต้องเปิดการยืนยันตัวตนและผูกบริการกับวงภายในตั้งแต่วันแรก

แผนผังการวางระบบ MongoDB บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 27017 ตัว MongoDB และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
MongoDB ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ MongoDB

โครงสร้างข้อมูลยืดหยุ่น

เพิ่มฟิลด์ใหม่ได้โดยไม่ต้องแก้โครงสร้างทั้งตาราง เหมาะกับงานที่เปลี่ยนเร็ว

Replica Set

ทำสำเนาหลายชุดและเลือกโหนดหลักใหม่อัตโนมัติเมื่อเกิดปัญหา

Sharding

กระจายข้อมูลไปหลายเครื่องเพื่อรองรับข้อมูลระดับหลายเทระไบต์

Aggregation Pipeline

ประมวลผลและสรุปข้อมูลในฐานข้อมูลโดยตรงเป็นขั้นตอนต่อเนื่อง

ดัชนีหลากหลายชนิด

ทั้งดัชนีข้อความ ดัชนีเชิงพื้นที่ และดัชนีบางส่วน เพื่อให้คิวรีเร็วตามรูปแบบการใช้งาน

ใช้ MongoDB ทำอะไรได้บ้าง

  • ระบบเก็บข้อมูลจากอุปกรณ์ IoT และบันทึกเหตุการณ์จำนวนมาก
  • แคตตาล็อกสินค้าที่คุณสมบัติแตกต่างกันในแต่ละหมวด
  • ระบบจัดการเนื้อหาและโปรไฟล์ผู้ใช้ที่ฟิลด์เปลี่ยนบ่อย
  • แอปที่ทีมพัฒนาต้องการเริ่มเร็วโดยยังไม่ต้องออกแบบตารางให้ตายตัว

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ MongoDB 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
ระบบใหญ่Replica Set สามโหนดหรือระบบที่เขียนข้อมูลถี่มาก8 vCPU ขึ้นไป32 GB ขึ้นไปNVMe 500 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง MongoDB บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Ubuntu Server 22.04 หรือ 24.04 LTS
  • ดิสก์ NVMe และ RAM มากพอให้ Working Set อยู่ในหน่วยความจำ
  • ปิด Transparent Huge Pages ตามคำแนะนำของโครงการ

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    เพิ่มที่เก็บแพ็กเกจของ MongoDB

    ที่เก็บของ Ubuntu เองมักมีเวอร์ชันเก่า ให้ใช้ที่เก็บทางการเพื่อได้รุ่นที่ยังได้รับการสนับสนุน

    curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
      sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
    echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | \
      sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
  2. 2

    ติดตั้งและเปิดบริการ

    sudo apt update
    sudo apt -y install mongodb-org
    sudo systemctl enable --now mongod
  3. 3

    สร้างผู้ใช้ผู้ดูแลระบบ

    mongosh --eval 'db.getSiblingDB("admin").createUser({user:"admin",pwd:"ChangeThisStrongPassword",roles:["root"]})'
  4. 4

    เปิดการยืนยันตัวตนและผูกกับวงภายใน

    แก้ไฟล์ /etc/mongod.conf แล้วรีสตาร์ตบริการ ขั้นตอนนี้คือสิ่งที่ป้องกันเหตุข้อมูลรั่วที่พบบ่อยที่สุดของ MongoDB

    net:
      port: 27017
      bindIp: 127.0.0.1,10.10.0.20
    
    security:
      authorization: enabled
  5. 5

    รีสตาร์ตและทดสอบเข้าสู่ระบบ

    sudo systemctl restart mongod
    mongosh -u admin -p --authenticationDatabase admin
  6. 6

    สำรองข้อมูล

    mongodump --uri="mongodb://admin:[email protected]:27017/?authSource=admin" \
      --out=/var/backups/mongo/$(date +%F)

ถ้าต้องการความพร้อมใช้งานสูง ให้ตั้ง Replica Set สามโหนดตั้งแต่ต้น เพราะการแปลงจากเครื่องเดี่ยวภายหลังต้องมีช่วงหยุดให้บริการ

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

พอร์ตโปรโตคอลใช้ทำอะไร
27017TCPการเชื่อมต่อฐานข้อมูล (ห้ามเปิดสู่อินเทอร์เน็ต)

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

  • เปิด authorization ทุกครั้ง ห้ามรันโดยไม่มีการยืนยันตัวตนแม้ในเครื่องทดสอบ
  • ผูก bindIp กับไอพีภายในเท่านั้น
  • สร้างผู้ใช้แยกต่อแอปพร้อมสิทธิ์เฉพาะฐานข้อมูลที่ใช้
  • เปิด TLS สำหรับการเชื่อมต่อระหว่างเครื่อง
  • เปิด Audit Log เมื่อระบบเก็บข้อมูลส่วนบุคคลที่อยู่ภายใต้ PDPA

ทำไมควรรัน MongoDB บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

ขยาย RAM ได้ทันทีเมื่อชุดข้อมูลที่ใช้งานบ่อยโตเกินหน่วยความจำ ซึ่งเป็นตัวชี้วัดความเร็วหลักของ MongoDB

ตั้ง Replica Set ข้าม Cloud Server หลายเครื่องในวง Private Network ในไทยได้โดยไม่มีค่าทราฟฟิกภายใน

ข้อมูลอยู่ในประเทศไทย ต่างจากการใช้บริการฐานข้อมูลบนคลาวด์ต่างประเทศที่ข้อมูลออกนอกราชอาณาจักร

คำถามที่พบบ่อยเกี่ยวกับ MongoDB

MongoDB เหมาะกับงานแบบไหน ไม่เหมาะกับงานแบบไหน

เหมาะกับข้อมูลที่โครงสร้างเปลี่ยนบ่อยและงานที่อ่านเขียนเอกสารทั้งก้อน ไม่เหมาะเท่าฐานข้อมูลเชิงสัมพันธ์กับงานที่มีความสัมพันธ์ซับซ้อนหลายตารางและต้องการ Join จำนวนมาก เช่น ระบบบัญชี

ทำไมต้องเปิดการยืนยันตัวตนตั้งแต่แรก

เพราะเคยมีเหตุการณ์ข้อมูลรั่วและถูกเรียกค่าไถ่จำนวนมากทั่วโลก จากเซิร์ฟเวอร์ MongoDB ที่เปิดสู่อินเทอร์เน็ตโดยไม่มีรหัสผ่าน บอตสแกนหาเป้าหมายแบบนี้ตลอดเวลา

ต้องใช้กี่โหนดสำหรับ Replica Set

สามโหนดคือจำนวนมาตรฐาน เพราะต้องมีเสียงข้างมากในการเลือกโหนดหลักใหม่ หากมีงบจำกัดสามารถใช้สองโหนดข้อมูลกับหนึ่งโหนด Arbiter ได้ แต่ไม่แนะนำสำหรับงานที่ข้อมูลสำคัญมาก

แอปอื่นในหมวด ฐานข้อมูล

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

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

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