โลโก้ Apache Cassandra
ฐานข้อมูลApache License 2.0 (โอเพนซอร์ส)

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

Apache Cassandra คือฐานข้อมูลกระจายศูนย์ที่ทุกโหนดมีสถานะเท่ากัน จึงไม่มีจุดล้มเหลวจุดเดียวและขยายด้วยการเพิ่มเครื่องได้เกือบเป็นเส้นตรง เหมาะกับข้อมูลปริมาณมหาศาลที่ต้องเขียนตลอดเวลา

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

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

Apache Cassandra คืออะไร

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

การขยายทำได้ด้วยการเพิ่มเครื่องเข้าคลัสเตอร์ ซึ่งเพิ่มทั้งความจุและความสามารถในการรับงานไปพร้อมกัน ต่างจากการต้องเปลี่ยนไปใช้เครื่องใหญ่ขึ้นเรื่อย ๆ

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

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

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

ไม่มีจุดล้มเหลวจุดเดียว

ทุกโหนดมีสถานะเท่ากัน ระบบยังรับงานต่อได้แม้บางโหนดล่ม

ขยายด้วยการเพิ่มเครื่อง

ความจุและกำลังรับงานเพิ่มขึ้นเกือบเป็นเส้นตรงตามจำนวนโหนด

รองรับการเขียนปริมาณสูงมาก

เหมาะกับข้อมูลเหตุการณ์และข้อมูลจากอุปกรณ์ที่ไหลเข้าตลอดเวลา

กระจายข้ามศูนย์ข้อมูลได้

วางโหนดไว้หลายไซต์เพื่อรองรับเหตุระดับสถานที่

ปรับระดับความสอดคล้องได้

เลือกได้ว่าจะให้ยืนยันการเขียนจากกี่โหนด เพื่อสมดุลระหว่างความเร็วกับความแน่นอน

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

  • ระบบเก็บข้อมูลเหตุการณ์ปริมาณมหาศาลที่เขียนตลอดเวลา
  • ข้อมูลจากอุปกรณ์ IoT จำนวนมากที่ต้องไม่สูญหาย
  • ระบบที่ต้องกระจายข้อมูลข้ามหลายศูนย์ข้อมูล
  • บริการที่ต้องรับการเขียนต่อเนื่องแม้บางเครื่องมีปัญหา

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Apache Cassandra 3 ระดับ เริ่มจาก 4 vCPU แรม 8 GB ดิสก์ NVMe 100 GB ไปจนถึง 16 vCPU ขึ้นไปต่อโหนด แรม 64 GB ขึ้นไปต่อโหนด ดิสก์ NVMe หลาย TB ต่อโหนด โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
ทดสอบคลัสเตอร์ทดลองหรือโหนดเดียวเพื่อเรียนรู้4 vCPU8 GBNVMe 100 GB
แนะนำคลัสเตอร์สามโหนดสำหรับงานจริง8 vCPU ต่อโหนด32 GB ต่อโหนดNVMe 1 TB ต่อโหนด
ข้อมูลมหาศาลคลัสเตอร์หลายโหนดข้ามศูนย์ข้อมูล16 vCPU ขึ้นไปต่อโหนด64 GB ขึ้นไปต่อโหนดNVMe หลาย TB ต่อโหนด

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

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

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

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

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

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง Java และ Cassandra บนทุกโหนด

    sudo apt update
    sudo apt -y install openjdk-17-jre-headless
    curl -fsSL https://downloads.apache.org/cassandra/KEYS | sudo gpg --dearmor -o /usr/share/keyrings/cassandra.gpg
    echo "deb [signed-by=/usr/share/keyrings/cassandra.gpg] https://debian.cassandra.apache.org 50x main" | sudo tee /etc/apt/sources.list.d/cassandra.list
    sudo apt update && sudo apt -y install cassandra
  2. 2

    ตั้งค่าคลัสเตอร์ใน /etc/cassandra/cassandra.yaml

    ตั้งชื่อคลัสเตอร์ให้ตรงกันทุกโหนด และระบุโหนดที่ใช้เป็นจุดเริ่มต้นการค้นหาสมาชิก

    cluster_name: 'tdc-cluster'
    listen_address: 10.10.0.31
    rpc_address: 10.10.0.31
    seed_provider:
      - class_name: org.apache.cassandra.locator.SimpleSeedProvider
        parameters:
          - seeds: "10.10.0.31,10.10.0.32"
  3. 3

    เริ่มบริการและตรวจสถานะคลัสเตอร์

    sudo systemctl enable --now cassandra
    nodetool status
  4. 4

    สร้าง Keyspace พร้อมกำหนดจำนวนสำเนา

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

    CREATE KEYSPACE events WITH replication = {'class':'SimpleStrategy','replication_factor':3};
  5. 5

    ออกแบบตารางตามคำถามที่จะถาม

    Cassandra ไม่มีการ Join จึงต้องออกแบบตารางให้ตอบคำถามหลักได้ในการอ่านครั้งเดียว และยอมเก็บข้อมูลซ้ำในหลายตารางเมื่อมีหลายคำถาม

  6. 6

    ตั้งงานบำรุงรักษาตามรอบ

    ตั้งงาน repair ตามรอบเพื่อให้สำเนาข้อมูลในทุกโหนดตรงกัน ซึ่งเป็นงานที่จำเป็นและมักถูกลืมในคลัสเตอร์ที่ใช้งานจริง

    nodetool repair -pr

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

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

พอร์ตโปรโตคอลใช้ทำอะไร
9042TCPการเชื่อมต่อของแอป (เปิดเฉพาะวงภายใน)
7000TCPการสื่อสารระหว่างโหนดในคลัสเตอร์
7199TCPการจัดการและเฝ้าระวัง

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

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

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

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

สร้างโหนดเพิ่มบน Cloud Server ได้ในไม่กี่นาทีเมื่อข้อมูลหรือทราฟฟิกโต

ทราฟฟิกระหว่างโหนดวิ่งในวง Private Network ในไทย จึงเร็วและไม่มีค่าใช้จ่ายภายใน

กระจายโหนดข้าม Data Center ในไทยและสิงคโปร์เพื่อรองรับเหตุระดับไซต์

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

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

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

ต้องใช้กี่โหนด

อย่างน้อยสามโหนดสำหรับงานจริง เพื่อให้เก็บสำเนาข้อมูลได้สามชุดและยังทำงานต่อได้เมื่อโหนดหนึ่งล่มหรือปิดปรับปรุง

ต่างจาก MongoDB อย่างไร

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

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

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

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