Amazon Elasticsearch Service Best Practice – Backup & Monitoring

Lời nói đầu:

  • Chào các bạn, mình là Duy Nam – Thành viên Group 1 VTI Japan. Hôm nay mình xin tiếp tục seri về Amazon Elasticsearch Service Best Practice.

Bài viết của mình chia ra làm 4 chương chính:

Chương 1: Kiến trúc tổng quan của Amazon ES

  • Kiến trúc tổng quan của Amazon ES
  • Giới thiệu vai trò của Master Node, Data Node, Shard
  • Lưu ý khi đặt Amazon ES vào trong VPC

Chương 2: Sizing Amazon ES

  • Tính toán dữ liệu đưa vào Amazon ES
  • Tính toán số Shard cần thiết cho Amazon ES
  • Lựa chọn instance type phù hợp cho Master Node và Data Node

Chương 3: Backup và Monitoring ES

  • Giới thiệu vai trò của Automated Backup và Manual Backup
  • Restore Data của Amazon ES, Migration Data từ Elasticseach on EC2
  • Giới thiệu các Metric cần theo dõi của Amazon ES

Chương 4: Một vài chia sẻ từ kinh nghiệm thực tế

  • Giới thiệu về Index, Document, Type
  • Một vài những câu query cơ bản của Elasticseach
  • Một vài option khác gặp trong thực tế

Chương 3: Backup và Monitoring ES

3.1 Những Action của ES khi có sự thay đổi

  • Amazon ES sẽ được tiến hành deploy Blue/Green khi tiến hành thay đổi liên quan đến Domain.
  • Cụ thể như việc thay đổi instance type, vô hiệu hay bật multi az, update version … Trường hợp đổi policy thì sẽ không tiến hành deploy Blue/Green mà update trực tiếp trong ES
  • Khi Deploy Blue/Green số lượng Node sẽ được tăng lên và sẽ làm tăng tải của Master Node cho nên việc Update thay đổi lớn của ES nên tiến hành vào giờ đêm khi có tải thấp
  • Mình có một Ví dụ như hình dưới đây:

3.2 Các hạng mục monitoring của Amazon ES

  • Trong Amazon ES có khoảng 70 Metric được đưa ra để tiến hành Monitoring
  • Việc phân tích từng Metric khá vất vả và mất thời gian, bản thân mình cũng không nắm hết được 70 metric đó
  • Tuy nhiên có một vài Metric các bạn cần phải lấy khi Monitoring ES, mình có chú thích dưới đây:
Metric và Alert Giải thích
CPUUtilization maximum is >= 80%
for 15 minutes, 3 consecutive times
Có nguy cơ không đủ CPU của DataNode -> Xem xét việc tăng instance type hoặc scale out
JVMMemoryPressure maximum is >= 80%
for 5 minutes, 3 consecutive times
Có nguy cơ không đủ Memory của DataNode -> Xem xét việc tăng instance type hoặc scale out
ClusterStatus.yellowmaximum is >= 1
for 1 minute, 1 consecutive time
Có trên 1 ReplicaShard đang không được phân bổ vào Node -> Cần confirm lại trạng thái của Cluster
FreeStorageSpace minimum is <= XXX
for 1 minute, 1 consecutive time
Dung lượng lưu trữ không đủ. XXX: 25% dung lượng của các Data Node. Đơn vị MB
MasterCPUUtilization maximum is >= 50%
for 15 minutes, 3 consecutive times
Có nguy cơ không đủ resource của MasterNode -> Xem xét việc tăng instance type
MasterJVMMemoryPressure maximum is >= 80%
for 15 minutes, 1 consecutive time
Có nguy cơ không đủ resource của MasterNode -> Xem xét việc tăng instance type

3.3 Backup Amazon ES (Snapshot)

  • Snapshot chính là backup của ES cluster
  • Tại Amazon ES có 2 loại snapshot như bảng dưới
Loại Snapshot Mục đích Giải thích
Automated snapshots •Backup •Từ sau bản ES 5.3 sẽ lấy 1h một lần và lưu trữ trong 14 ngày( Trước ES 5.1 sẽ là 1 ngày 1 lần)
•Sẽ không tốn thêm bất kì chi phí nào trên AWS
Manual snapshot •Backup
•Migration Data
•Sử dụng API của ES để tạo snapshot lên S3 một cách chủ động
•Tốn chi phí lưu trữ S3
  • Về cơ bản automation snapshot là đủ. Tuy nhiên việc di chuyển data sang một Amazon ES khác cần thiết phải lấy manual snapshot

3.4 Migration Elasticsearch on EC2 to Amazon ES

  • Trường hợp các bạn tiến hành Migration ES từ EC2 hoặc On-premise sang Amazon ES, các bạn sẽ tiến hành theo các bước dưới đây:
    • Sử dụng _snapshot/repos API tạo và đăng ký snapshot repository của ES trên EC2 lên trên S3
    • Tạo Domain mới cho Amazon ES, đăng ký snapshot repository lên trên cùng S3
    • Tại Amazon ES tiến hành phục hồi dữ liệu dựa trên _restore API

Lời Kết 3

  • Sau 3 bài viết mình đã có cơ hội giới thiệu về Best Practice của Amazon Elasticseach. Hi vọng qua 3 bài viết này các bạn có thêm kiến thức để tạo ra một Server Elasticseach có chi phí rẻ nhất mà hiệu quả cao nhất.
  • Ở bài sau mình sẽ chia sẻ thêm một vài các Query cơ bản của ES.
  • Mong các bạn ủng hộ seri này của mình

See you soon

Leave a Reply