Logo Zephyrnet

Alcion hỗ trợ nền tảng nhiều bên thuê của họ với Amazon OpenSearch Serverless | Dịch vụ web của Amazon

Ngày:

Đây là một bài đăng trên blog của khách được đồng viết với Zack Rossman từ Alcion.

Alcion, nền tảng sao lưu dưới dạng dịch vụ (BaaS) dựa trên trí tuệ nhân tạo, ưu tiên bảo mật, giúp quản trị viên Microsoft 365 bảo vệ dữ liệu một cách nhanh chóng và trực quan khỏi các mối đe dọa mạng và mất dữ liệu do tai nạn. Trong trường hợp mất dữ liệu, khách hàng của Alcion cần tìm kiếm siêu dữ liệu cho các mục đã sao lưu (tệp, email, danh bạ, sự kiện, v.v.) để chọn phiên bản mục cụ thể để khôi phục. Alción sử dụng Dịch vụ Tìm kiếm Mở của Amazon để cung cấp cho khách hàng của họ khả năng tìm kiếm chính xác, hiệu quả và đáng tin cậy trên danh mục sao lưu này. Nền tảng này có nhiều bên thuê, có nghĩa là Alcion yêu cầu cách ly dữ liệu và bảo mật mạnh mẽ để đảm bảo rằng những bên thuê chỉ có thể tìm kiếm dữ liệu của chính họ.

OpenSearch Service là một dịch vụ được quản lý toàn phần giúp dễ dàng triển khai, thay đổi quy mô và vận hành OpenSearch trong Đám mây AWS. OpenSearch là bộ phân tích và tìm kiếm nguồn mở, được cấp phép Apache-2.0, bao gồm OpenSearch (công cụ tìm kiếm, công cụ phân tích và cơ sở dữ liệu vectơ), Bảng điều khiển OpenSearch (giao diện người dùng trực quan và tiện ích) và các plugin cung cấp các khả năng nâng cao như doanh nghiệp -bảo mật cấp độ, phát hiện bất thường, khả năng quan sát, cảnh báo, v.v. Amazon OpenSearch Serverless là một tùy chọn triển khai serverless giúp sử dụng OpenSearch đơn giản mà không cần định cấu hình, quản lý và mở rộng các miền của Dịch vụ OpenSearch.

Trong bài đăng này, chúng tôi chia sẻ cách áp dụng OpenSearch Serverless đã kích hoạt Alcion để đáp ứng các yêu cầu về quy mô của họ, giảm chi phí hoạt động và bảo mật dữ liệu của đối tượng thuê bằng cách thực thi cách ly người thuê nhà trong môi trường nhiều người thuê của họ.

Các miền được quản lý của OpenSearch Service

Đối với lần lặp đầu tiên của kiến ​​trúc tìm kiếm, Alcion đã chọn tùy chọn triển khai miền được quản lý trong Dịch vụ tìm kiếm mở và có thể khởi chạy chức năng tìm kiếm của họ trong sản xuất trong vòng chưa đầy một tháng. Để đáp ứng các yêu cầu về bảo mật, quy mô và người thuê, họ đã lưu trữ dữ liệu cho từng người thuê trong một chỉ mục chuyên dụng và được sử dụng kiểm soát truy cập chi tiết trong OpenSearch Service để ngăn rò rỉ dữ liệu giữa các đối tượng thuê. Khi khối lượng công việc của họ phát triển, các kỹ sư của Alcion đã theo dõi việc sử dụng miền OpenSearch thông qua công cụ được cung cấp amazoncloudwatch số liệu, thực hiện các thay đổi để tăng dung lượng lưu trữ và tối ưu hóa tài nguyên điện toán của họ.

Nhóm tại Alcion đã sử dụng một số tính năng của các miền được quản lý bởi Dịch vụ tìm kiếm mở để cải thiện trạng thái hoạt động của chúng. Họ đã giới thiệu các bí danh chỉ mục, cung cấp một tên bí danh duy nhất để truy cập (đọc và viết) nhiều chỉ mục cơ bản. Họ cũng cấu hình Quản lý trạng thái chỉ mục (ISM) để giúp họ kiểm soát vòng đời dữ liệu của mình bằng cách cuộn các chỉ mục dựa trên kích thước chỉ mục. Cùng với nhau, các chính sách ISM và bí danh chỉ mục là cần thiết để mở rộng chỉ mục cho các đối tượng thuê lớn. Alción cũng được sử dụng mẫu chỉ mục để xác định các phân đoạn trên mỗi chỉ mục (phân vùng) dữ liệu của họ để tự động hóa vòng đời dữ liệu của họ và cải thiện hiệu suất cũng như tính ổn định của miền của họ.

Sơ đồ kiến ​​trúc sau đây cho thấy cách Alcion định cấu hình các miền được quản lý OpenSearch của họ.

Sơ đồ sau đây cho thấy cách dữ liệu Microsoft 365 được lập chỉ mục và truy vấn từ các chỉ mục dành riêng cho đối tượng thuê. Alcion đã triển khai xác thực yêu cầu bằng cách cung cấp thông tin xác thực người dùng chính của OpenSearch với mỗi yêu cầu API.

Tổng quan về OpenSearch Serverless và các tùy chọn mô hình thuê

Các miền được quản lý của Dịch vụ tìm kiếm mở đã cung cấp nền tảng ổn định cho chức năng tìm kiếm của Alcion, nhưng nhóm cần cung cấp tài nguyên theo cách thủ công cho các miền để đáp ứng khối lượng công việc cao nhất của chúng. Điều này còn chỗ để tối ưu hóa chi phí vì khối lượng công việc của Alcion rất lớn—có sự khác biệt lớn về số lượng giao dịch tìm kiếm và lập chỉ mục mỗi giây, cho cả một khách hàng và toàn bộ. Để giảm chi phí và gánh nặng vận hành, nhóm đã chuyển sang OpenSearch Serverless, cung cấp khả năng tự động thay đổi quy mô.

Để sử dụng OpenSearch Serverless, bước đầu tiên là tạo một bộ sưu tập. MỘT bộ sưu tập là một nhóm các chỉ mục OpenSearch hoạt động cùng nhau để hỗ trợ khối lượng công việc hoặc trường hợp sử dụng cụ thể. Tài nguyên tính toán cho một bộ sưu tập, được gọi là Đơn vị tính toán OpenSearch (OCU), được chia sẻ trên tất cả các bộ sưu tập trong một tài khoản dùng chung khóa mã hóa. Nhóm OCU được tự động tăng và giảm quy mô để đáp ứng nhu cầu lập chỉ mục và lưu lượng tìm kiếm.

Mức độ nỗ lực cần thiết để di chuyển từ miền được quản lý của Dịch vụ OpenSearch sang OpenSearch Serverless có thể quản lý được nhờ vào thực tế là các bộ sưu tập OpenSearch Serverless hỗ trợ các API và thư viện OpenSearch giống như các miền được quản lý của Dịch vụ OpenSearch. Điều này cho phép Alcion tập trung vào việc tối ưu hóa mô hình thuê nhà cho kiến ​​trúc tìm kiếm mới. Cụ thể, nhóm cần quyết định cách phân vùng dữ liệu đối tượng thuê trong các bộ sưu tập và chỉ mục đồng thời cân bằng giữa bảo mật và tổng chi phí sở hữu. Các kỹ sư của Alcion, phối hợp với nhóm OpenSearch Serverless, xem xét ba mô hình thuê nhà:

  • Mô hình silo: Tạo bộ sưu tập cho từng đối tượng thuê
  • Mô hình nhóm: Tạo một bộ sưu tập duy nhất và sử dụng một chỉ mục duy nhất cho nhiều đối tượng thuê
  • Mô hình cầu nối: Tạo một bộ sưu tập duy nhất và sử dụng một chỉ mục duy nhất cho mỗi đối tượng thuê

Cả ba lựa chọn thiết kế đều có những lợi ích và sự đánh đổi phải được xem xét để thiết kế giải pháp cuối cùng.

Mô hình silo: Tạo bộ sưu tập cho từng đối tượng thuê

Trong mô hình này, Alcion sẽ tạo một bộ sưu tập mới bất cứ khi nào có khách hàng mới tham gia nền tảng của họ. Mặc dù dữ liệu đối tượng thuê sẽ được phân tách rõ ràng giữa các bộ sưu tập, tùy chọn này không đủ điều kiện vì thời gian tạo bộ sưu tập có nghĩa là khách hàng sẽ không thể sao lưu và tìm kiếm dữ liệu ngay sau khi đăng ký.

Mô hình nhóm: Tạo một bộ sưu tập duy nhất và sử dụng một chỉ mục duy nhất cho nhiều đối tượng thuê

Trong mô hình này, Alcion sẽ tạo một bộ sưu tập duy nhất cho mỗi tài khoản AWS và lập chỉ mục dữ liệu dành riêng cho đối tượng thuê trong một trong nhiều chỉ mục được chia sẻ thuộc bộ sưu tập đó. Ban đầu, việc tổng hợp dữ liệu đối tượng thuê vào các chỉ mục được chia sẻ rất hấp dẫn từ góc độ quy mô vì điều này dẫn đến việc sử dụng tài nguyên chỉ mục hiệu quả nhất. Nhưng sau khi phân tích sâu hơn, Alcion nhận thấy rằng họ sẽ vẫn ở trong hạn ngạch chỉ mục cho mỗi bộ sưu tập ngay cả khi họ phân bổ một chỉ mục cho mỗi người thuê. Với mối lo ngại về khả năng mở rộng đó đã được giải quyết, Alcion theo đuổi tùy chọn thứ ba vì việc trộn dữ liệu đối tượng thuê vào các chỉ mục chuyên dụng dẫn đến sự cô lập đối tượng thuê mạnh hơn so với mô hình chỉ mục chia sẻ.

Mô hình cầu nối: Tạo một bộ sưu tập duy nhất và sử dụng một chỉ mục duy nhất cho mỗi đối tượng thuê

Trong mô hình này, Alcion sẽ tạo một bộ sưu tập duy nhất cho mỗi tài khoản AWS và tạo chỉ mục cho từng đối tượng thuê trong số hàng trăm đối tượng thuê do tài khoản đó quản lý. Bằng cách chỉ định mỗi đối tượng thuê cho một chỉ mục chuyên dụng và gộp các chỉ mục này vào một bộ sưu tập duy nhất, Alcion đã giảm thời gian giới thiệu đối với đối tượng thuê mới và dữ liệu của đối tượng thuê được sắp xếp thành các nhóm được phân tách rõ ràng.

Triển khai kiểm soát truy cập dựa trên vai trò để hỗ trợ nhiều người thuê

OpenSearch Serverless cung cấp một bộ kiểm soát bảo mật đa điểm, kế thừa, bao gồm truy cập dữ liệu, truy cập mạng và mã hóa. Alcion đã tận dụng tối đa OpenSearch Serverless chính sách truy cập dữ liệu để triển khai kiểm soát truy cập dựa trên vai trò (RBAC) cho từng chỉ mục dành riêng cho đối tượng thuê với các chi tiết sau:

  • Phân bổ một chỉ mục có tiền tố chung và ID đối tượng thuê (ví dụ: index-v1-<tenantID>)
  • Tạo chuyên dụng Quản lý truy cập và nhận dạng AWS (IAM) vai trò được sử dụng để ký các yêu cầu đối với bộ sưu tập OpenSearch Serverless
  • Tạo chính sách truy cập dữ liệu OpenSearch Serverless cấp quyền đọc/ghi tài liệu trong chỉ mục đối tượng thuê dành riêng cho vai trò IAM đối với đối tượng thuê đó
  • Các yêu cầu API OpenSearch đối với chỉ mục đối tượng thuê được ký bằng thông tin xác thực tạm thời thuộc về vai trò IAM dành riêng cho đối tượng thuê

Sau đây là ví dụ về chính sách truy cập dữ liệu OpenSearch Serverless dành cho đối tượng thuê giả có ID t-eca0acc1-12345678910. Chính sách này cấp quyền truy cập đọc/ghi tài liệu vai trò IAM cho quyền truy cập đối tượng thuê chuyên dụng.

[ { "Rules": [ { "Resource": [ "index/collection-searchable-entities/index-v1-t-eca0acc1-12345678910" ], "Permission": [ "aoss:ReadDocument", "aoss:WriteDocument", ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::12345678910:role/OpenSearchAccess-t-eca0acc1-1b9f-4b3f-95d6-12345678910" ], "Description": "Allow document read/write access to OpenSearch index belonging to tenant t-eca0acc1-1b9f-4b3f-95d6-12345678910" }
] 

Sơ đồ kiến ​​trúc sau mô tả cách Alcion triển khai lập chỉ mục và tìm kiếm tài nguyên Microsoft 365 bằng cách sử dụng phương pháp thu thập chia sẻ OpenSearch Serverless.

Sau đây là đoạn mã mẫu để gửi yêu cầu API tới bộ sưu tập OpenSearch Serverless. Lưu ý cách ứng dụng khách API được khởi tạo với một đối tượng người ký ký các yêu cầu với cùng một hiệu trưởng IAM được liên kết với chính sách truy cập dữ liệu OpenSearch Serverless từ đoạn mã trước đó.

package alcion import ( "context" "encoding/json" "strings" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/credentials/stscreds" "github.com/aws/aws-sdk-go-v2/service/sts" "github.com/opensearch-project/opensearch-go/v2" "github.com/opensearch-project/opensearch-go/v2/opensearchapi" "github.com/opensearch-project/opensearch-go/v2/signer" awssignerv2 "github.com/opensearch-project/opensearch-go/v2/signer/awsv2" "github.com/pkg/errors"
) const ( // Scope the API request to the AWS OpenSearch Serverless service aossService = "aoss" // Mock values indexPrefix = "index-v1-" collectionEndpoint = "<https://kfbr3928z4y6vot2mbpb.us-east-1.aoss.amazonaws.com>" tenantID = "t-eca0acc1-1b9f-4b3f-95d6-b0b96b8c03d0" roleARN = "arn:aws:iam::1234567890:role/OpenSearchAccess-t-eca0acc1-1b9f-4b3f-95d6-b0b96b8c03d0"
) func CreateIndex(ctx context.Context, tenantID string) (*opensearchapi.Response, error) { sig, err := createRequestSigner(ctx) if err != nil { return nil, errors.Wrapf(err, "error creating new signer for AWS OSS") } cfg := opensearch.Config{ Addresses: []string{collectionEndpoint}, Signer: sig, } aossClient, err := opensearch.NewClient(cfg) if err != nil { return nil, errors.Wrapf(err, "error creating new OpenSearch API client") } body, err := getSearchBody() if err != nil { return nil, errors.Wrapf(err, "error getting search body") } req := opensearchapi.SearchRequest{ Index: []string{indexPrefix + tenantID}, Body: body, } return req.Do(ctx, aossClient)
} func createRequestSigner(ctx context.Context) (signer.Signer, error) { awsCfg, err := config.LoadDefaultConfig(ctx) if err != nil { return nil, errors.Wrapf(err, "error loading default config") } stsClient := sts.NewFromConfig(awsCfg) provider := stscreds.NewAssumeRoleProvider(stsClient, roleARN) awsCfg.Credentials = aws.NewCredentialsCache(provider) return awssignerv2.NewSignerWithService(awsCfg, aossService)
} func getSearchBody() (*strings.Reader, error) { // Match all documents, page size = 10 query := map[string]interface{}{ "size": 10, } queryJson, err := json.Marshal(query) if err != nil { return nil, err } return strings.NewReader(string(queryJson)), nil
} 

Kết luận

Vào tháng 2023 năm 30, Alcion đã triển khai kiến ​​trúc tìm kiếm dựa trên bộ sưu tập được chia sẻ và mô hình chỉ mục cho mỗi đối tượng thuê chuyên dụng trong tất cả các môi trường sản xuất và tiền sản xuất. Nhóm đã có thể loại bỏ các quy trình vận hành và mã phức tạp vốn được dành riêng cho việc mở rộng quy mô các miền được quản lý của Dịch vụ Tìm kiếm Mở. Hơn nữa, nhờ khả năng tự động thay đổi quy mô của OpenSearch Serverless, Alcion đã giảm XNUMX% chi phí OpenSearch của họ và hy vọng hồ sơ chi phí sẽ thay đổi quy mô một cách thuận lợi.

Trong hành trình của họ từ Dịch vụ Tìm kiếm Mở được quản lý sang Dịch vụ Tìm kiếm Mở không có máy chủ, Alcion đã được hưởng lợi trong lựa chọn ban đầu của họ về các miền được Dịch vụ Tìm kiếm Mở quản lý. Khi di chuyển về phía trước, họ có thể sử dụng lại cùng các thư viện và API OpenSearch cho các bộ sưu tập OpenSearch Serverless mà họ đã sử dụng cho miền được quản lý Dịch vụ OpenSearch của mình. Ngoài ra, họ đã cập nhật mô hình thuê nhà của mình để tận dụng các chính sách truy cập dữ liệu OpenSearch Serverless. Với OpenSearch Serverless, họ có thể dễ dàng điều chỉnh theo nhu cầu về quy mô của khách hàng trong khi vẫn đảm bảo cách ly đối tượng thuê.

Để biết thêm thông tin về Alcion, hãy truy cập trang web của họ trang mạng.


Về các tác giả

Zack Rossman là Thành viên của Ban Kỹ thuật tại Alcion. Anh ấy là trưởng nhóm công nghệ cho các nền tảng tìm kiếm và AI. Trước Alcion, Zack là Kỹ sư phần mềm cao cấp tại Okta, phát triển các sản phẩm quản lý truy cập và nhận dạng lực lượng lao động cốt lõi cho nhóm Thư mục.

Niraj Jetly là Giám đốc phát triển phần mềm cho Amazon OpenSearch Serverless. Niraj lãnh đạo một số nhóm mặt phẳng dữ liệu chịu trách nhiệm khởi chạy Amazon OpenSearch Serverless. Trước AWS, Niraj đã lãnh đạo một số nhóm sản phẩm và kỹ thuật với tư cách là CTO, Phó Giám đốc Kỹ thuật và Trưởng phòng Quản lý Sản phẩm trong hơn 15 năm. Niraj là người đã nhận được hơn 15 giải thưởng đổi mới, bao gồm cả việc được vinh danh là CIO của năm vào năm 2014 và 100 CIO hàng đầu vào năm 2013 và 2016. Là diễn giả thường xuyên tại một số hội nghị, ông đã được trích dẫn trên NPR, WSJ và The Boston Globe.

Jon xử lý là Kiến trúc sư giải pháp chính cấp cao tại Amazon Web Services có trụ sở tại Palo Alto, CA. Jon hợp tác chặt chẽ với OpenSearch và Amazon OpenSearch Service, cung cấp trợ giúp và hướng dẫn cho nhiều khách hàng có khối lượng công việc phân tích nhật ký và tìm kiếm muốn chuyển sang Đám mây AWS. Trước khi gia nhập AWS, sự nghiệp phát triển phần mềm của Jon bao gồm 4 năm viết mã cho một công cụ tìm kiếm thương mại điện tử quy mô lớn. Jon có bằng Cử nhân Nghệ thuật của Đại học Pennsylvania và bằng Thạc sĩ Khoa học và bằng Tiến sĩ Khoa học Máy tính và Trí tuệ Nhân tạo của Đại học Northwestern.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img