โลโก้ Elasticsearch
อันดับ 17 ใน Top 100 ฐานข้อมูลElastic License 2.0 / SSPL

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

Elasticsearch คือเอนจินค้นหาแบบกระจายศูนย์ที่ค้นข้อความจำนวนมหาศาลได้ในเสี้ยววินาที นิยมใช้ทำระบบค้นหาในเว็บ ระบบรวม Log และแดชบอร์ดวิเคราะห์ข้อมูล

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

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

Elasticsearch คืออะไร

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

นอกจากค้นหา Elasticsearch ยังใช้เก็บและวิเคราะห์ Log ร่วมกับ Kibana และตัวเก็บ Log อย่าง Logstash หรือ Filebeat ซึ่งรวมกันเป็นชุดเครื่องมือที่หลายองค์กรใช้ดูสุขภาพระบบ

สำหรับภาษาไทยที่ไม่มีการเว้นวรรคระหว่างคำ ต้องตั้งค่าตัวตัดคำให้เหมาะสม เช่น ใช้ตัววิเคราะห์ที่รองรับภาษาไทยโดยเฉพาะ ไม่เช่นนั้นผลการค้นหาจะไม่ตรงตามที่ผู้ใช้คาดหวัง

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

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

ค้นข้อความเต็มรูปแบบ

รองรับการค้นหาแบบใกล้เคียง การจัดอันดับความเกี่ยวข้อง และการเน้นคำที่ตรงกัน

กระจายศูนย์โดยธรรมชาติ

แบ่งดัชนีเป็นชาร์ดและกระจายไปหลายโหนด ขยายได้ตามปริมาณข้อมูล

วิเคราะห์ข้อมูลแบบรวมกลุ่ม

สรุปข้อมูลเป็นสถิติและแนวโน้มได้ในคำขอเดียว เหมาะกับแดชบอร์ด

ทำงานคู่กับ Kibana

สร้างกราฟและแดชบอร์ดจากข้อมูลที่จัดเก็บได้โดยไม่ต้องเขียนโค้ด

REST API

เชื่อมต่อจากทุกภาษาโปรแกรมผ่าน HTTP ได้ทันที

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

  • ระบบค้นหาสินค้าและบทความในเว็บที่มีข้อมูลจำนวนมาก
  • ระบบรวม Log จากหลายเซิร์ฟเวอร์เพื่อตรวจสอบย้อนหลัง
  • แดชบอร์ดวิเคราะห์พฤติกรรมผู้ใช้แบบเกือบเรียลไทม์
  • ระบบค้นหาเอกสารภายในองค์กร

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Elasticsearch 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ต่อโหนด แรม 32 GB ต่อโหนด ดิสก์ NVMe 500 GB ขึ้นไปต่อโหนด โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นทดสอบหรือดัชนีขนาดเล็ก2 vCPU4 GBNVMe 40 GB
แนะนำระบบค้นหาของเว็บงานจริงหรือ Log ระดับกลาง4 vCPU16 GBNVMe 200 GB
คลัสเตอร์สามโหนดขึ้นไปสำหรับข้อมูลปริมาณมากและความพร้อมใช้งานสูง8 vCPU ต่อโหนด32 GB ต่อโหนดNVMe 500 GB ขึ้นไปต่อโหนด

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

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

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

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

  • Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
  • RAM อย่างน้อย 4 GB โดยตั้ง Heap ไม่เกินครึ่งหนึ่งของ RAM และไม่เกิน 31 GB
  • ตั้งค่า vm.max_map_count เป็น 262144
  • ดิสก์ NVMe เพราะการสร้างดัชนีอ่านเขียนหนัก

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    เพิ่มที่เก็บแพ็กเกจ

    curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
      sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | \
      sudo tee /etc/apt/sources.list.d/elastic-8.x.list
  2. 2

    ติดตั้ง Elasticsearch

    เก็บรหัสผ่านของผู้ใช้ elastic ที่ระบบพิมพ์ออกมาตอนติดตั้งไว้ให้ดี เพราะแสดงเพียงครั้งเดียว

    sudo apt update
    sudo apt -y install elasticsearch
  3. 3

    ตั้งค่าหน่วยความจำ

    สร้างไฟล์ /etc/elasticsearch/jvm.options.d/heap.options โดยตั้ง Heap เท่ากับครึ่งหนึ่งของ RAM

    -Xms8g
    -Xmx8g
  4. 4

    ตั้งค่าเครือข่ายใน /etc/elasticsearch/elasticsearch.yml

    cluster.name: tdc-search
    node.name: node-1
    network.host: 10.10.0.30
    discovery.type: single-node
  5. 5

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

    sudo sysctl -w vm.max_map_count=262144
    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
    sudo systemctl enable --now elasticsearch
  6. 6

    ทดสอบการเชื่อมต่อ

    curl -k -u elastic https://10.10.0.30:9200

ถ้าต้องการค้นหาภาษาไทยให้แม่นยำ ควรตั้ง Analyzer ที่รองรับการตัดคำภาษาไทย และทดสอบกับคำค้นจริงของผู้ใช้ก่อนขึ้นระบบ

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

พอร์ตโปรโตคอลใช้ทำอะไร
9200TCPREST API (เปิดเฉพาะวงภายใน)
9300TCPการสื่อสารระหว่างโหนดในคลัสเตอร์

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

  • ห้ามเปิดพอร์ต 9200 สู่อินเทอร์เน็ต เพราะเคยมีเหตุข้อมูลรั่วจำนวนมากจากคลัสเตอร์ที่เปิดสาธารณะ
  • เปิดการยืนยันตัวตนและ TLS ซึ่งรุ่นใหม่เปิดให้โดยค่าเริ่มต้นอยู่แล้ว
  • สร้างผู้ใช้แยกสำหรับแอปพร้อมสิทธิ์อ่านเฉพาะดัชนีที่ต้องใช้
  • ตั้งนโยบายวงจรชีวิตของดัชนีเพื่อลบข้อมูลเก่าอัตโนมัติ ไม่ให้ดิสก์เต็ม
  • สำรองข้อมูลด้วยกลไก Snapshot ไปยัง Object Storage

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

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

Snapshot ไปเก็บที่ Object Storage ของ THAI DATA CLOUD ได้โดยตรง ทำให้แผนสำรองข้อมูลครบวงจรในไทย

ขยายเป็นคลัสเตอร์หลายโหนดในวง Private Network ได้เมื่อข้อมูลโตขึ้น

ดัชนีค้นหาที่อยู่ใกล้ผู้ใช้ในไทยช่วยให้ผลลัพธ์แสดงเร็วขึ้นอย่างรู้สึกได้

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

Elasticsearch กับ OpenSearch ต่างกันอย่างไร

OpenSearch แยกสายออกมาจาก Elasticsearch เวอร์ชันโอเพนซอร์สเดิม และพัฒนาต่อภายใต้ใบอนุญาต Apache 2.0 ความสามารถพื้นฐานใกล้เคียงกันมาก การเลือกจึงมักขึ้นกับเงื่อนไขใบอนุญาตและเครื่องมือรอบข้างที่องค์กรใช้อยู่

ต้องใช้ RAM เท่าไหร่

ขั้นต่ำที่ใช้งานจริงได้คือ 4 GB แต่ระบบค้นหาของเว็บงานจริงควรมี 16 GB ขึ้นไป โดยตั้ง Heap ไว้ครึ่งหนึ่งและปล่อยที่เหลือให้ระบบปฏิบัติการใช้แคชไฟล์

ค้นหาภาษาไทยได้ดีไหม

ได้เมื่อตั้งค่าตัวตัดคำให้เหมาะสม เพราะภาษาไทยไม่เว้นวรรคระหว่างคำ ถ้าใช้ค่าเริ่มต้นแบบภาษาอังกฤษ ผลการค้นหาจะคลาดเคลื่อน ทีมงานของเราช่วยตั้งค่าและทดสอบกับคำค้นจริงได้

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

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

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