Làm quen với Amazon Elasticsearch Service !

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Chào mọi người, trong quá trình tìm hiểu Amazon Clousearch, mình cũng đã tìm hiểu một số dịch vụ tìm kiếm khác được phát triển bởi AWS. Một trong số đó là Amazon Elasticsearch Service.

Hãy cùng Nghi tìm hiểu ngay nhé!

Khái niệm

Các bạn có thể chọn "Getting started guide" như hình trên để bắt đầu tìm hiểu sơ bộ về Amazon ElasticSearch Service

  • Elasticsearch được đánh giá là một search engine (công cụ tìm kiếm) khá mạnh mẽ hiện nay với hiệu quả cao, mình sẽ giải thích ở bên dưới lí do vì sao
  • Elasticsearch cũng có thể xem là một document oriented database, tức nó chứa dữ liệu và có chức năng gần giống như một database và cung cấp công cụ để thực hiện tìm kiếm trên những dữ liệu đó. Và điều qua trọng là thay vì bạn tìm kiếm trực tiếp trên file, trên các database như MySQL, Oracle, MongoDB,... thì bạn chuyển dữ liệu đó sang Elasticsearch và thực hiện tìm kiếm trên Elasticsearch sẽ mang lại hiệu quả rất lớn tốc độ cao, đặc biệt là trong những trường hợp dữ liệu lớn, và cũng an toàn hơn cho việc truy cập vào CSDL.

Một số đặc điểm, tính năng cơ bản cần chú ý

  • Elasticsearch được phát triển bằng ngôn ngữ lập trình Java.
  • Elasticsearch được thiết kế để hoạt động như một cloud server theo cơ chế RestFUL, tức là bạn có thể thêm/sửa/xóa/tìm kiếm(theo mô hình CRUD) cơ sở dữ liệu trên Elasticsearch với các API (POST,PUT,DELETE,GET).
  • Tất cả dữ liệu được lưu vào Elasticsearch đều được đánh dấu bằng index (đánh chỉ mục), đây là lý do tại sao hiệu năng tìm kiếm của Elasticsearch rất cao. Điều đặc biệt nằm ở chỗ: việc đánh index của Elasticsearch khá giống với MongoDB tuy nhiên đó đánh index một cách chi tiết hơn, ví dụ bạn có 1 đoạn text "amazon elasticsearch service", khi đánh index trong MongoDB nó sẽ tách ra làm 3 từ chứ không tách từng kí tự, còn với Elasticsearch , bạn vẫn tìm thấy các nội dung liên quan đầy đủ hơn, đó là lí do vì sao vì nói rằng dịch vụ này là một công cụ tìm kiếm hiệu suất cao!

Chính nhờ cơ chế đánh index đặc biệt và lưu dữ liệu dạng document oriented nên Amazon Elasticsearch Service rất thích hợp được triển khai trong các trường hợp:

  • Tìm kiếm text thông thường hoặc text dạng query like
  • Tìm kiếm text và dữ liệu có cấu trúc CSDL
  • Tổng hợp dữ liệu
  • Tìm kiếm theo tọa độ
  • Tìm kiếm với big data

Các dữ liệu tổng hợp, dữ liệu được người quản lý Databse tải lên sẽ được lưu vào database chính, sau đấy đồng bộ hóa sang Amazon Elasticsearch, khi người dùng tìm kiếm thì sẽ tìm kiếm trên Elasticsearch, tốc độ vừa nhanh, vừa giảm tải cho database.

Các khái niệm cần lưu ý:

Từ trên xuống dưới, chúng ta cần nắm các khái niệm sau:

  • Cluster: Một tập hợp các Nodes (servers) chứa tất cả các dữ liệu nhằm đảm bảo tính tin cậy và sẵn dùng
  • Node: Một server duy nhất chứa một số dữ liệu và tham gia vào tập hợp cluster’s indexing and querying.
  • Index: tương đương với khái niệm một database
  • Type: là 1 tập các document cùng loại (tương đương với khái niệm table trong database SQL)
  • Document: Một JSON object với một số dữ liệu,  đây là một đơn vị thông tin trong Elasticsearch (tương đương khái niệm row trong table của database SQL)
  • Shards: Tập con các documents của 1 Index. Một Index có thể được chia thành nhiều shard, mỗi shard cũng có thể coi là một index có thể được truy cập trực tiếp giúp tính toán, tìm kiếm 1 cách song song.

Các bước thiết lập cơ bản

Bạn sẽ có hai lựa chọn, tạo một domain mới cho Elasticsearch hoặc Sử dụng một Reserved Instance

Với "Create a new domain", các bước thiết lập gồm 4 bước:

ở bước 3: Configure access and security, các bạn sẽ cần thiết lập các tuỳ chọn về truy cập cơ sở dữ liệu trên Elasticsearch cũng như cơ chế mã hoá dữ liệu tuỳ theo nhu cầu sử dụng, các bạn xem theo hướng dẫn tại đây

Hoặc có thể thiết lập tuỳ chọn "Order Reserved Instance"( thêm Instance lưu trữ khi đã tạo domain cho Elasticsearch)

 

Chi phí

Gồm các loại phí sau:

  • Freetier: sử dụng miễn phí tới 750 giờ mỗi tháng trong trường hợp t2.small.elaticsearch và 10GB mỗi tháng cho dung lượng lưu trữ EBS tùy chọn.
  • On-Demand Instance
  • Reserved Instance ( theo hợp đồng 1-3 năm để giảm chi phí)
  • Amazon EBS Volume( trả phí khi chọn đăng ký và sử dụng)
  • Ultrawarm ( cho phép bạn vẫn có thể giữ lại một lượng lớn dữ liệu trong khi vẫn giữ được trải nghiệm phân tích tương tác.)
  • Standard AWS Data transfer( không tốn phí khi transfer giữa các node)

Tham khảo chi tiết: https://aws.amazon.com/elasticsearch-service/pricing/

 

Cám ơn các bạn đã theo dõi

Chào tạm biệt!