Logo Zephyrnet

Xây dựng tiện ích mở rộng hiệu quả về chi phí cho cụm Elasticsearch của bạn với Dịch vụ Tìm kiếm Mở của Amazon

Ngày:

Trong năm qua, chúng tôi đã thấy những khách hàng đang chạy các cụm Elasticsearch tự quản lý trên AWS đã cạn kiệt dung lượng máy tính và dung lượng lưu trữ do tính không co giãn của các cụm của họ. Họ đã nhận nuôi Dịch vụ Tìm kiếm Mở của Amazon (Kế thừa Dịch vụ Amazon Elasticsearch) để được hưởng lợi từ tính linh hoạt tốt hơn cho nhật ký của họ và nâng cao thời gian lưu giữ.

Trong bài đăng này, chúng tôi thảo luận về cách tạo tiện ích mở rộng hiệu quả về chi phí cho cụm Elasticsearch của bạn với Dịch vụ Tìm kiếm Mở của Amazon để kéo dài thời gian lưu giữ dữ liệu của bạn.

Vào tháng 2021 năm XNUMX, chúng tôi đã xuất bản bài đăng trên blog Giới thiệu Kho lạnh cho Dịch vụ Tìm kiếm Mở của Amazon, giải thích cách giảm chi phí tổng thể của bạn. Kho lạnh tách biệt chi phí tính toán và lưu trữ khi bạn tách các chỉ số khỏi miền. Bạn được hưởng lợi từ tỷ lệ lưu trữ trên máy tính tổng thể tốt hơn. Lưu trữ lạnh có thể giảm chi phí lưu giữ dữ liệu của bạn lên đến 90% trên mỗi GB so với lưu trữ cùng một dữ liệu trong Bậc nóng. Bạn có thể tự động hóa việc quản lý vòng đời dữ liệu và di chuyển dữ liệu của mình giữa ba cấp (Nóng, UltraWarm và Lạnh) nhờ Quản lý trạng thái chỉ mục.

Các nhóm Dịch vụ Chuyên nghiệp của AWS đã làm việc với một khách hàng để thêm miền Dịch vụ Tìm kiếm Mở làm mục tiêu thứ hai cho nhật ký của họ. Khách hàng này chỉ có thể giữ các chỉ số của họ trong 8 ngày trên cụm Elasticsearch tự quản lý hiện có của họ. Do các yêu cầu pháp lý và bảo mật, họ cần lưu giữ dữ liệu lên đến 6 tháng. Giải pháp là sử dụng cụm Elasticsearch (chạy phiên bản 7.10) trên Amazon OpenSearch Service như một phần mở rộng của cụm Elasticsearch hiện có của họ. Điều này đã cung cấp cho các nhóm ứng dụng nội bộ của họ một bảng điều khiển Kibana bổ sung để trực quan hóa các chỉ số của họ trong hơn 8 ngày. Tiện ích mở rộng này sử dụng tầng UltraWarm để cung cấp quyền truy cập ấm vào dữ liệu của họ. Sau đó, họ di chuyển dữ liệu sang lớp Kho lạnh khi họ không tích cực sử dụng nó để loại bỏ tài nguyên máy tính và để tiết kiệm chi phí.

Việc xây dựng giải pháp này như một phần mở rộng cho cụm tự quản hiện có của họ đã giúp họ có thêm 172 ngày truy cập vào nhật ký của mình (gấp 21.5 lần thời lượng lưu giữ dữ liệu) với chi phí gia tăng là 15%.

Làm sáng tỏ chỉ mục Quản lý trạng thái

Quản lý trạng thái chỉ mục (ISM) cho phép bạn tạo chính sách để tự động hóa việc quản lý chỉ mục trong các cấp khác nhau trong miền Dịch vụ Tìm kiếm Mở.

Kể từ tháng 2022 năm XNUMX, ba cấp khả dụng trong Dịch vụ Tìm kiếm Mở của Amazon: Nóng, UltraWarm và Lạnh.

Tầng Hot mặc định dành cho việc viết đang hoạt động và phân tích độ trễ thấp. siêu ấm áp dành cho dữ liệu chỉ đọc lên đến ba petabyte với một phần mười chi phí cấp Hot và Lạnh là để lưu trữ dài hạn không giới hạn. Mặc dù Bộ nhớ nóng được sử dụng để lập chỉ mục và cung cấp khả năng truy cập nhanh nhất, UltraWarm bổ sung cho tầng bộ nhớ Nóng bằng cách cung cấp bộ nhớ ít tốn kém hơn cho dữ liệu cũ hơn và ít được truy cập thường xuyên hơn. Điều này được thực hiện trong khi vẫn duy trì cùng một trải nghiệm phân tích tương tác. Thay vì lưu trữ kèm theo, các nút UltraWarm sử dụng Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và giải pháp bộ nhớ đệm phức tạp để cải thiện hiệu suất.

ISM giúp bạn ở góc độ hiệu quả về chi phí — khi bạn không cần truy cập dữ liệu của mình sau một khoảng thời gian nhất định nhưng bạn vẫn cần giữ chúng vì các yêu cầu pháp lý, chẳng hạn như để tự động hóa quá trình chuyển đổi dữ liệu của bạn trong các cấp đó. Các hoạt động đó dựa trên độ tuổi, kích thước chỉ mục và các điều kiện khác.

Ngoài ra, thứ tự chuyển đổi cần được tuân thủ từ Nóng sang Cực nóng sang Lạnh và từ Lạnh sang Cực nóng sang Nóng — bạn không thể thay đổi thứ tự này.

Tổng quan về giải pháp

Giải pháp của chúng tôi cho phép bạn kéo dài thời gian lưu giữ dữ liệu của mình. Chúng tôi hướng dẫn bạn cách thêm miền Dịch vụ Tìm kiếm Mở Lạnh thứ hai vào triển khai Hot do bạn tự quản lý hiện có. Bạn sử dụng ảnh chụp nhanh Elasticsearch để di chuyển dữ liệu từ cụm Nóng sang miền Lạnh. Bạn sử dụng các chính sách ISM áp dụng cho các chỉ số này, với các khoảng thời gian lưu giữ khác nhau trước khi bị xóa, từ 14–180 ngày.

Ngoài ra, bạn thêm 9 cảnh báo được đề xuất cho Dịch vụ Tìm kiếm Mở của Amazon in amazoncloudwatch thông qua một Hình thành đám mây AWS mẫu để nâng cao khả năng giám sát ngăn xếp của bạn. Những cảnh báo được đề xuất đó sẽ thông báo cho bạn, thông qua một Dịch vụ thông báo đơn giản của Amazon Chủ đề (Amazon SNS), về các chỉ số chính mà bạn nên theo dõi, như ClusterStatus, FreeStorageSpace, CPUUtilizationJVMMemoryPressure.

Sơ đồ sau minh họa kiến ​​trúc giải pháp:

Sơ đồ chứa các thành phần sau trong giải pháp của chúng tôi để mở rộng cụm Elasticsearch tự quản lý của bạn với Dịch vụ Tìm kiếm Mở của Amazon (khả dụng trên GitHub):

  1. Kho lưu trữ ảnh chụp nhanh
    1. Bạn chạy một AWS Lambda chức năng một lần để đăng ký nhóm S3 của bạn (snapshots-bucket trong sơ đồ) dưới dạng kho lưu trữ ảnh chụp nhanh cho miền Dịch vụ Tìm kiếm Mở của bạn.
  2. Chính sách ISM
    1. Bạn chạy một chức năng Lambda một lần để tạo sáu chính sách ISM tự động di chuyển các chỉ số của bạn từ bậc Nóng sang UltraWarm và từ UltraWarm sang Kho lạnh, ngay sau khi chúng được khôi phục trong miền, với các khoảng thời gian lưu giữ khác nhau (14, 21 , 35, 60, 90 và 180 ngày trước khi xóa).
  3. Di chuyển chỉ mục
    1. Bạn sử dụng một Sự kiện Amazon quy tắc tự động kích hoạt — mỗi ngày một lần — một hàm Lambda (RestoreIndices trong sơ đồ).
    2. Chức năng này phân tích cú pháp các ảnh chụp nhanh mới nhất đã được đẩy bởi cụm Elasticsearch.
    3. Khi hàm tìm thấy một chỉ mục mới chưa tồn tại trong miền Dịch vụ Tìm kiếm Mở, nó sẽ bắt đầu hoạt động khôi phục và đính kèm chính sách ISM (được tạo trong bước 2.1).
  4. Bộ nhớ đệm UltraWarm miễn phí
    1. Bạn sử dụng quy tắc EventBridge để tự động kích hoạt - mỗi ngày một lần - một hàm AWS Lambda (MoveToCold trong sơ đồ).
    2. Chức năng này kiểm tra các chỉ số đã được truy cập vào mức ấm và di chuyển chúng trở lại tầng Lạnh để giải phóng bộ nhớ cache của các nút UltraWarm.
  5. Cảnh báo
    1. Bạn sử dụng CloudWatch để tạo 9 cảnh báo dựa trên Amazon OpenSearch Service Cloud
      số liệu dWatch.
    2. CloudWatch chuyển hướng cảnh báo đến một chủ đề SNS.
    3. Bạn nhận được thông báo từ chủ đề SNS, chủ đề này sẽ gửi email ngay sau khi có báo thức.

Điều kiện tiên quyết

Hoàn thành các bước điều kiện tiên quyết sau:

  1. Triển khai cụm Elasticsearch tự quản lý (chạy tại cơ sở hoặc trong AWS) để đẩy ảnh chụp nhanh định kỳ vào nhóm S3 (lý tưởng là mỗi ngày một lần).
  2. Triển khai miền Dịch vụ Tìm kiếm Mở (chạy phiên bản OpenSearch 1.1) và kích hoạt các tùy chọn UltraWarm và Cold.
  3. Triển khai một máy chủ proxy (NGINX trên sơ đồ kiến ​​trúc) trong một mạng con công cộng cho phép truy cập vào trang tổng quan cho các miền Dịch vụ Tìm kiếm Mở của bạn, được lưu trữ trong VPC.
  4. Để tự động hóa nhiều cơ chế trong giải pháp này, hãy tạo một Quản lý truy cập và nhận dạng AWS (IAM) vai trò cho các chức năng Lambda khác nhau của chúng tôi. Sử dụng chính sách IAM sau:
{ "Version": "2012-10-17", "Statement": [ { "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/*:*", "Effect": "Allow" }, { "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/snapshotsRole", "Effect": "Allow" }, { "Action": [ "es:ESHttpPut", "es:ESHttpGet", "es:ESHttpPost" ], "Resource": "arn:aws:es:us-east-1:123456789012:domain/my-test-domain/*", "Effect": "Allow" } ]
}

Chính sách này cho phép các chức năng Lambda của chúng tôi gửi các yêu cầu PUT, GET và POST tới miền Dịch vụ Tìm kiếm Mở của chúng tôi, đăng ký nhật ký của chúng trong Nhật ký CloudWatch và chuyển một vai trò IAM được sử dụng để truy cập nhóm S3 lưu trữ ảnh chụp nhanh.

  1. Ngoài ra, hãy chỉnh sửa mối quan hệ tin cậy do Lambda đảm nhận:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ]
    }

Bạn sử dụng vai trò IAM này cho các hàm Lambda mà bạn tạo.

Bạn cũng cần định cấu hình plugin bảo mật của OpenSearch để gán quyền cho lưu lượng truy cập mà Lambda gửi đến OpenSearch.

  1. Đăng nhập vào bảng điều khiển Kibana của miền Cold của bạn và trong Bảo mật phần, chọn Vai trò.

Tại đây bạn có thể tìm thấy các vai trò Kibana hiện có và được xác định trước.

  1. Chọn hình ba gạch all_access vai trò và lựa chọn Người dùng được ánh xạ.
  2. Chọn Quản lý ánh xạ để chỉnh sửa người dùng được ánh xạ.
  3. Nhập ARN của vai trò IAM mà bạn vừa tạo làm vai trò phụ trợ mới trên vai trò Kibana này.

Trong các phần sau, chúng tôi sẽ hướng dẫn bạn các bước để thiết lập từng thành phần trong kiến ​​trúc giải pháp.

Kho lưu trữ ảnh chụp nhanh

Để di chuyển nhật ký của bạn từ cụm Nóng sang miền Lạnh, bạn đăng ký nhóm S3 của mình để lưu trữ nhật ký dưới dạng ảnh chụp nhanh (từ cụm Elasticsearch) dưới dạng kho lưu trữ ảnh chụp nhanh cho miền Dịch vụ OpenSearch của bạn.

  1. Tạo vai trò IAM (đối với bài đăng này, chúng tôi sử dụng SnapshotsRole cho tên vai trò) để cấp quyền cho miền Cold để truy cập nhóm S3 của bạn, nơi lưu trữ ảnh chụp nhanh từ cụm Elasticsearch của bạn. Sử dụng chính sách IAM sau cho vai trò này:
    { "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name/*" ] } ]
    }

  2. Chỉnh sửa mối quan hệ tin cậy sẽ được sử dụng từ Dịch vụ Tìm kiếm Mở của Amazon:
    { "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

  3. Tạo hàm Lambda chịu trách nhiệm đăng ký nhóm S3 này làm kho lưu trữ ảnh chụp nhanh.

trên Kho GitHub, bạn có thể tìm thấy các tệp cần thiết để xây dựng phần này. Xem lambda-functions/register-snapshots-repository.py Tệp Python để tạo hàm Lambda.

  1. Chọn Thử nghiệm trên bảng điều khiển Lambda để chạy chức năng.

Bạn chỉ chạy nó một lần. Nó đăng ký nhóm S3 làm kho lưu trữ ảnh chụp nhanh mới cho miền Dịch vụ Tìm kiếm Mở của bạn.

  1. Xác minh kho lưu trữ ảnh chụp nhanh bằng cách điều hướng đến bảng điều khiển Kibana của miền Lạnh trên Những công cụ của nhà phát triển và chạy lệnh sau:
    GET _snapshots/myelasticsearch-snapshots-repository (replace with your repository name)

Bạn cũng có thể đạt được bước này từ một Đám mây điện toán đàn hồi Amazon Cá thể (Amazon EC2) (thay vì hàm Lambda) vì nó chỉ phải chạy một lần, với vai trò IAM cấu hình cá thể được đính kèm với cá thể EC2.

Lập chỉ mục Chính sách quản lý nhà nước

Bạn sử dụng Quản lý trạng thái chỉ mục để tự động chuyển đổi các chỉ số của mình giữa các cấp lưu trữ trong Dịch vụ Tìm kiếm mở của Amazon. Để sử dụng ISM, bạn tạo Chính sách (các tài liệu JSON nhỏ xác định một tự động hóa trạng thái) và đính kèm các chính sách này vào các chỉ mục trong miền của bạn. Chính sách ISM chỉ định các trạng thái có hành động chuyển tiếp cho phép bạn di chuyển và xóa các chỉ số. Bạn có thể dùng functions/create-indexstatemanagement-policy.py Mã Lambda để tạo sáu chính sách ISM tự động chuyển đổi trong các cấp và xóa các chỉ số Lạnh của bạn sau 14, 21, 35, 60, 90 và 180 ngày. Bạn sử dụng vai trò IAM mà bạn đã tạo trước đó và chạy chức năng đó một lần để tạo các chính sách trong miền của bạn.

Điều hướng đến Kibana trong miền Dịch vụ Tìm kiếm Mở của bạn và chọn Quản lý chỉ số. Trên Chính sách quản lý nhà nước , xác minh rằng bạn có thể thấy các chính sách ISM của mình.

Di chuyển chỉ mục

Để di chuyển dữ liệu của bạn từ cụm Nóng sang miền Lạnh, bạn sử dụng functions/restore-indices.py mã để tạo một hàm Lambda (RestoreIndices) Và cfn-templates/event-bridge-lambda-function.yaml Mẫu CloudFormation để tạo trình kích hoạt của nó, là quy tắc EventBridge (được lên lịch mỗi ngày một lần lúc 12 giờ sáng). Các chỉ số của bạn được di chuyển sang miền Lạnh nhờ hàm Lambda phân tích cú pháp các chỉ số trong kho lưu trữ ảnh chụp nhanh của bạn và bắt đầu hoạt động khôi phục cho từng chỉ mục mới không tồn tại trong miền Lạnh. Ngay sau khi chỉ mục được khôi phục trong miền, hàm Lambda sẽ đính kèm chính sách ISM vào nó, dựa trên mẫu chỉ mục của nó để xác định khoảng thời gian lưu giữ của nó.

Mã Python tìm kiếm một tên ứng dụng có cấu trúc chính xác bằng ba chữ cái (ví dụ: aws). Nếu nhật ký của bạn có mẫu chỉ mục khác, bạn cần cập nhật các dòng mã có liên quan (trigramme = index [5:8]).

Bộ nhớ đệm UltraWarm miễn phí

Để giải phóng bộ nhớ cache các nút UltraWarm của bạn khỏi miền Cold, bạn sử dụng functions/move-to-Cold.py mã để tạo một hàm Lambda (MoveToCold) Và cfn-templates/event-bridge-lambda-function.yaml Mẫu CloudFormation để tạo trình kích hoạt của nó, là quy tắc EventBridge (thay đổi lịch biểu của nó để tránh hoạt động song song với quy tắc trước đó). Các chỉ số của bạn nằm trong cấp UltraWarm để truy cập ấm được chuyển sang Kho lưu trữ lạnh để giải phóng bộ nhớ cache của các nút nhằm chuẩn bị cho việc di chuyển chỉ mục tiếp theo và để tiết kiệm chi phí.

Cảnh báo

Để được thông báo qua email khi miền Lạnh cần bạn chú ý, bạn sử dụng cfn-templates/alarms.yaml Mẫu CloudFormation để tạo một chủ đề SNS nhận thông báo khi một trong 9 cảnh báo CloudWatch được nâng lên, dựa trên các chỉ số của Dịch vụ Tìm kiếm Mở của Amazon. Những cảnh báo đó đến từ cảnh báo CloudWatch được đề xuất cho Dịch vụ Tìm kiếm Mở của Amazon.

Kết luận

Trong bài đăng này, chúng tôi đã đề cập đến giải pháp cho phép miền Tìm kiếm mở làm tiện ích mở rộng cho cụm Elasticsearch tự quản lý hiện có của bạn, để kéo dài thời gian lưu giữ nhật ký ứng dụng theo cách không có máy chủ và tiết kiệm chi phí.

Nếu bạn quan tâm đến việc tìm hiểu sâu hơn về Dịch vụ Tìm kiếm Mở của Amazon và các khả năng của AWS Analytics nói chung, bạn có thể nhận trợ giúp và tham gia các cuộc thảo luận về diễn đàn.


Về các tác giả

Alexandre Levret là nhà tư vấn Dịch vụ Chuyên nghiệp của Amazon Web Services (AWS) dành riêng cho khu vực công ở Châu Âu. Anh ấy đặt mục tiêu xây dựng, đổi mới và truyền cảm hứng cho nhiều khách hàng của mình, những người phải đối mặt với những thách thức mà điện toán đám mây có thể giúp họ giải quyết.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?