MongoDB คืออะไร และวิธีติดตั้งบน Cloud Server
MongoDB คือฐานข้อมูล NoSQL ที่เก็บข้อมูลเป็นเอกสารคล้าย JSON แทนตาราง เหมาะกับข้อมูลที่โครงสร้างเปลี่ยนบ่อยและระบบที่ต้องขยายตามปริมาณข้อมูลมหาศาล
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- SSPL (Community Edition)
- เว็บทางการ
- เปิดเว็บไซต์
- 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
โครงสร้างข้อมูลยืดหยุ่น
เพิ่มฟิลด์ใหม่ได้โดยไม่ต้องแก้โครงสร้างทั้งตาราง เหมาะกับงานที่เปลี่ยนเร็ว
Replica Set
ทำสำเนาหลายชุดและเลือกโหนดหลักใหม่อัตโนมัติเมื่อเกิดปัญหา
Sharding
กระจายข้อมูลไปหลายเครื่องเพื่อรองรับข้อมูลระดับหลายเทระไบต์
Aggregation Pipeline
ประมวลผลและสรุปข้อมูลในฐานข้อมูลโดยตรงเป็นขั้นตอนต่อเนื่อง
ดัชนีหลากหลายชนิด
ทั้งดัชนีข้อความ ดัชนีเชิงพื้นที่ และดัชนีบางส่วน เพื่อให้คิวรีเร็วตามรูปแบบการใช้งาน
ใช้ MongoDB ทำอะไรได้บ้าง
- ระบบเก็บข้อมูลจากอุปกรณ์ IoT และบันทึกเหตุการณ์จำนวนมาก
- แคตตาล็อกสินค้าที่คุณสมบัติแตกต่างกันในแต่ละหมวด
- ระบบจัดการเนื้อหาและโปรไฟล์ผู้ใช้ที่ฟิลด์เปลี่ยนบ่อย
- แอปที่ทีมพัฒนาต้องการเริ่มเร็วโดยยังไม่ต้องออกแบบตารางให้ตายตัว
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นงานพัฒนาและระบบขนาดเล็ก | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำProduction ที่ข้อมูลหลายสิบกิกะไบต์ | 4 vCPU | 16 GB | NVMe 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
เพิ่มที่เก็บแพ็กเกจของ 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
ติดตั้งและเปิดบริการ
sudo apt update sudo apt -y install mongodb-org sudo systemctl enable --now mongod - 3
สร้างผู้ใช้ผู้ดูแลระบบ
mongosh --eval 'db.getSiblingDB("admin").createUser({user:"admin",pwd:"ChangeThisStrongPassword",roles:["root"]})' - 4
เปิดการยืนยันตัวตนและผูกกับวงภายใน
แก้ไฟล์ /etc/mongod.conf แล้วรีสตาร์ตบริการ ขั้นตอนนี้คือสิ่งที่ป้องกันเหตุข้อมูลรั่วที่พบบ่อยที่สุดของ MongoDB
net: port: 27017 bindIp: 127.0.0.1,10.10.0.20 security: authorization: enabled - 5
รีสตาร์ตและทดสอบเข้าสู่ระบบ
sudo systemctl restart mongod mongosh -u admin -p --authenticationDatabase admin - 6
สำรองข้อมูล
mongodump --uri="mongodb://admin:[email protected]:27017/?authSource=admin" \ --out=/var/backups/mongo/$(date +%F)
ถ้าต้องการความพร้อมใช้งานสูง ให้ตั้ง Replica Set สามโหนดตั้งแต่ต้น เพราะการแปลงจากเครื่องเดี่ยวภายหลังต้องมีช่วงหยุดให้บริการ
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 27017 | TCP | การเชื่อมต่อฐานข้อมูล (ห้ามเปิดสู่อินเทอร์เน็ต) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- เปิด 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 ได้ แต่ไม่แนะนำสำหรับงานที่ข้อมูลสำคัญมาก
ทางเลือกอื่นที่คล้ายกับ MongoDB
แอปอื่นในหมวด ฐานข้อมูล
- #4MySQLฐานข้อมูลเชิงสัมพันธ์ที่ใช้กันแพร่หลายที่สุด
- #6PostgreSQLฐานข้อมูลโอเพนซอร์สที่ทรงพลังที่สุด
- #9Redisฐานข้อมูลในหน่วยความจำสำหรับ Cache และคิว
- #12MariaDBฐานข้อมูลสายพันธุ์เดียวกับ MySQL แต่เปิดกว้างกว่า
- #16phpMyAdminเครื่องมือจัดการ MySQL ผ่านหน้าเว็บ
- #17Elasticsearchเอนจินค้นหาและวิเคราะห์ข้อมูลขนาดใหญ่
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง MongoDB ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด