建立和管理 Amazon OpenSearch Service 網域 - Amazon OpenSearch Service

建立和管理 Amazon OpenSearch Service 網域

本章說明如何建立和管理 Amazon OpenSearch Service 網域。OpenSearch Service 網域與 OpenSearch 叢集同義。網域是指具有您指定之設定、執行個體類型、執行個體計數和儲存資源的叢集。

入門教學課程中的概要說明不同,本章會說明所有選項,並提供相關的參考資訊。您可以使用 OpenSearch Service 主控台、AWS Command Line Interface (AWS CLI) 或 AWS 開發套件的說明完成每個程序。

建立 OpenSearch Service 網域

本節說明如何使用 OpenSearch Service 主控台或搭配使用 AWS CLI 與 create-domain 命令,來建立 OpenSearch Service 網域。

建立 OpenSearch Service 網域 (主控台)

依照以下程序使用主控台建立 OpenSearch Service 網域。

若要建立 OpenSearch Service 網域 (主控台)

  1. 前往 https://aws.amazon.com 並選擇 Sign In to the Console (登入主控台)

  2. Analytics (分析) 下,選擇 Amazon OpenSearch Service

  3. 選擇 Create domain (建立網域)。

  4. Domain name (網域名稱) 中,輸入網域名稱。名稱必須符合下列條件:

    • 專屬於您的帳戶和 AWS 區域

    • 開頭為小寫字母

    • 包含 3 到 28 個之間字元數

    • 只能包含小寫字母 a-z、號碼 0-9 和連字號 (-)

  5. 如果您想要使用自訂端點,而不是標準的 https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com,請選擇 Enable custom endpoint (啟用自訂端點) 並提供名稱和憑證。如需詳細資訊,請參閱 為 Amazon OpenSearch Service 建立自訂端點

  6. 對於 Deployment type (部署類型),選擇最符合您的網域目的之選項。

    • Production (生產) 網域使用多個可用區和專用主節點以實現更高的可用性。

    • Development and testing (開發和測試) 網域使用單一可用區域。

    • Custom (自訂) 網域可讓您選擇所有組態選項。

      重要

      在接下來的頁面中,不同部署類型有不同的選項。這些步驟包含所有選項 (Custom (自訂) 部署類型)。

  7. 對於 Version (版本),選擇要使用的 OpenSearch 版本或舊版 Elasticsearch OSS。建議您選擇 OpenSearch 的最新版本。如需詳細資訊,請參閱 支援的 OpenSearch 與 Elasticsearch 版本

    (選用) 如果您為網域選擇 OpenSearch 版本,請選取 Enable compatibility mode (啟用相容性模式),讓 OpenSearch 將其版本報告為 7.10,這會允許某些 Elasticsearch OSS 用戶端和外掛程式在連線之前檢查該版本,以繼續使用該服務。

  8. 對於 Auto-Tune (自動調整),選擇是否允許 OpenSearch Service 對您的網域建議與記憶體相關的設定變更,以提高速度和穩定性。如需詳細資訊,請參閱 Amazon OpenSearch Service 的自動調整

    (選用) 選取 Add maintenance window (新增維護時段) 來排程週期性時段,「自動調整」在此期間會更新網域。

  9. Data nodes (資料節點) 下,選擇可用區域的數目。如需詳細資訊,請參閱 在 Amazon OpenSearch Service 中設定多可用區域網域

    注意

    OpenSearch Service 主控台不支援在建立網域後,從多個可用區域移動到單個可用區域。如果選擇 2 個或 3 個可用區域,且之後想要移動到 1,則必須使用使用 AWS CLI 或組態 API 停用 ZoneAwarenessEnabled 參數。

  10. 對於 Instance type (執行個體類型),選擇資料節點的執行個體類型。如需詳細資訊,請參閱 Amazon OpenSearch Service 中支援的執行個體類型

    注意

    並非所有可用區域皆支援所有執行個體類型。如果您選擇 3-AZ (3 個可用區域),我們建議您選擇最新一代執行個體類型 (例如 R5 或 I3)。

  11. 請在 Number of nodes (節點類型) 選擇資料節點數目。

    如需最大值,請參閱叢集和執行個體限制。單一節點叢集適用於開發和測試,但不應將其用於生產工作負載。如需詳細的指導方針,請參閱 調整 Amazon OpenSearch Service 網域的大小在 Amazon OpenSearch Service 中設定多可用區域網域

  12. 請在 Storage type (儲存類型),選擇 EBS (預設) 或 Instance (執行個體)。關於建立特大網域的說明資訊,請參閱 適用於 Amazon OpenSearch Service 的 PB 規模。如果選擇 EBS (EBS),會顯示以下選項:

    1. 對於 EBS Volume Type (EBS 磁碟區類型),選擇一種磁碟區類型。

      如果您選擇 Provisioned IOPS (SSD) (佈建 IOPS (SSD)),請在 Provisioned IOPS (佈建 IOPS) 下輸入您需要的基準 IOPS 效能。如需詳細資訊,請參閱 Amazon EC2 文件中的 Amazon EBS 磁碟區

    2. 針對 EBS storage size per node (每個節點的 EBS 儲存空間大小),輸入您想要連接到每個資料節點的 EBS 磁碟區大小。

      EBS 磁碟區大小是依照節點。您可以將資料節點的數量乘以 EBS 磁碟區大小來計算 OpenSearch Service 網域的總叢集大小。EBS 磁碟區的大小上限取決於兩個指定的 EBS 磁碟區類型,以及其所連接的執行個體類型。如需進一步了解,請參閱 EBS 磁碟區大小限制

  13. 選擇專用主節點的類型和數量。專用主節點可提高叢集穩定性,也是執行個體計數大於 10 的網域所需要的。我們建議生產網域應具備三個專用主節點。

    注意

    您可以為專用主節點及資料節點選擇不同的執行個體類型。例如,您可以針對資料節點選擇一般用途或儲存最佳化執行個體,而不是專用主節點的運算最佳化執行個體。

  14. (選用) 若要預覽 UltraWarm 儲存區,請選擇 Enable UltraWarm data nodes (啟用 UltraWarm 資料節點)。每個執行個體類型都有可處理的儲存量上限。將該數量乘以總計可處理暖儲存的暖資料節點數。

  15. (選用) 若要啟用 cold storage (冷儲存),選擇 Enable cold storage (啟用冷儲存)。您必須啟用 UltraWarm 才能啟用冷儲存。

  16. (選用) 對於執行 OpenSearch 或 Elasticsearch 5.3 或更高版本的網域,快照組態是不相關的。如需自動拍攝快照的詳細資訊,請參閱在 Amazon OpenSearch Service 中建立索引快照

  17. 對於 Network (網路),選擇 VPC access (VPC 存取) 或 Public access (公有存取)。如果選擇 Public access (公開存取),請跳到下一步驟。如果選擇 VPC access (VPC 存取),請確認符合先決條件,然後再執行下列動作:

    1. 對於 VPC,選擇您要使用的 VPC 的 ID。

      注意

      VPC 和網域必須位於相同 AWS 區域,而您必須選取一個租用設定為 Default (預設) 的 VPC。OpenSearch Service 尚不支援使用專用租用戶的 VPC。

    2. 針對 Subnet (子網路),請選擇子網路。如果您啟用多個可用區,必須選擇兩個或三個子網路。OpenSearch Service 將會在子網路中放置 VPC 端點和彈性網路介面

      注意

      您必須在子網路中保留足夠數量的 IP 地址給網路界面。如需詳細資訊,請參閱在 VPC 子網路中保留 IP 地址

    3. 對於 Security groups (安全群組),選擇一個或多個 VPC 安全性群組,讓您的必要應用程式能夠連線到網域公開的連接埠 (80 或 443) 和通訊協定 (HTTP 或 HTTPS) 上的 OpenSearch Service 網域。如需詳細資訊,請參閱 在 VPC 中啟動您的 Amazon OpenSearch Service 網域

    4. 對於 IAM 角色,保留預設的角色。OpenSearch Service 使用此預先定義的角色 (也稱為服務連結角色) 存取您的 VPC,並將 VPC 端點和網路界面放置在 VPC 子網路。如需詳細資訊,請參閱 VPC 存取的服務連結角色

  18. 啟用或停用精細存取控制:

    • 如果您希望使用 IAM 進行使用者管理,請選擇 Set IAM ARN as master user (將 IAM ARN 設為主要使用者),並指定 IAM 角色的 ARN。

    • 如果您希望使用內部使用者資料庫,請選擇 Create master user (建立主要使用者) 並指定使用者名稱和密碼。

    無論您選擇哪個選項,主要使用者都能夠存取叢集中的所有索引和所有 OpenSearch API。如需應選擇哪個選項的指導,請參閱 重要概念

    如果您停用精細存取控制,您仍然可以透過將網域置放在 VPC 中、套用限制性存取政策,或是同時使用兩者來控制對您網域的存取。您必須啟用節點對節點加密和靜態加密,才能使用精細存取控制。

    注意

    我們強烈建議啟用精細存取控制來保護網域中的資料。精細存取控制可提供叢集、索引、文件和欄位層級安全性。

  19. (選用) 如果您想要為 OpenSearch Dashboards 使用 SAML 身分驗證,請選擇 Prepare SAML authentication (準備 SAML 身分驗證)。網域變為可用之後,請參閱 OpenSearch Dashboards 的 SAML 身分驗證 了解更多步驟。

  20. (選用) 如果您想要為 OpenSearch Dashboards 使用 Amazon Cognito 身分驗證,請選擇 Enable Amazon Cognito authentication (啟用 Amazon Cognito 身分驗證)。

    1. 選擇您希望用於 OpenSearch Dashboards 身分驗證的 Amazon Cognito 使用者集區和身分集區。如需建立這些資源的指導方針,請參閱 設定 OpenSearch Dashboards 的 Amazon Cognito 身分驗證

  21. 對於網域存取政策,選擇存取政策或設定您自己的存取政策。如果您選擇建立自訂政策,您可以自行設定,或從另一個網域中匯入。如需詳細資訊,請參閱 Amazon OpenSearch Service 中的 Identity and Access Management

    注意

    如果已啟用 VPC 存取,就無法使用以 IP 為基礎的政策。您反而可以使用安全群組來控制哪些 IP 地址可以存取網域。如需詳細資訊,請參閱 關於 VPC 網域上的存取政策

  22. (選用) 若要求對網域發出的所有請求都透過 HTTPS 到達,請選取 Require HTTPS for all traffic to the domain (通往網域的所有流量都需要 HTTPS)。

  23. (選用) 若要啟用節點對節點加密,請選取 Node-to-node encryption (節點對節點加密)。如需詳細資訊,請參閱 Amazon OpenSearch Service 的節點對節點加密

  24. (選用) 若要啟用靜態資料加密,請選取 Enable encryption of data at rest (啟用靜態資料加密)。

    選取 Use AWS owned key (使用 AWS 擁有的金鑰),讓 OpenSearch Service 代表您建立 AWS KMS 加密金鑰 (或使用已建立好的加密金鑰)。否則,請選擇您自己的 KMS 金鑰。如需詳細資訊,請參閱 Amazon OpenSearch Service 的靜態資料加密

  25. (選用) 新增標籤以描述您的網域,以便分類和篩選該資訊。如需詳細資訊,請參閱 標記 Amazon OpenSearch Service 網域

  26. (選用) 展開 Advanced cluster settings (進階叢集設定)。如需這些選項的摘要,請參閱進階叢集設定

  27. 選擇 Create (建立 OpsItem)。

建立 OpenSearch Service 網域 (AWS CLI)

您可以使用 AWS CLI 建立 OpenSearch Service 網域,而不使用主控台。如需語法,請參閱 AWS CLI 命令參考中的 Amazon OpenSearch Service。

命令範例

第一個範例示範以下 OpenSearch Service 網域組態:

  • 使用 OpenSearch 1.0 版建立名為 mylogs 的 OpenSearch Service 網域

  • 在網域中填入兩個 r6g.large.search 執行個體類型的執行個體

  • 每個資料節點使用 100 GiB 一般用途 (SSD) EBS 磁碟區進行儲存

  • 允許匿名存取,但只從一個 IP 地址:192.0.2.0/32

aws opensearch create-domain --domain-name mylogs --engine-version OpenSearch_1.0 --cluster-config InstanceType=r6g.large.search,InstanceCount=2 --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [{"Action": "es:*", "Principal":"*","Effect": "Allow", "Condition": {"IpAddress":{"aws:SourceIp":["192.0.2.0/32"]}}}]}'

下一個範例示範以下 OpenSearch Service 網域組態:

  • 使用 Elasticsearch 7.10 版建立名為 mylogs 的 OpenSearch Service 網域

  • 在網域中填入六個 r6g.large.search 執行個體類型的執行個體

  • 每個資料節點使用 100 GiB 一般用途 (SSD) EBS 磁碟區進行儲存

  • 將對該服務的存取限制到單一使用者,透過該使用者的 AWS 帳戶 ID 進行識別:555555555555

  • 跨三個可用區域分佈執行個體

aws opensearch create-domain --domain-name mylogs --engine-version Elasticsearch_7.10 --cluster-config InstanceType=r6g.large.search,InstanceCount=6,ZoneAwarenessEnabled=true,ZoneAwarenessConfig={AvailabilityZoneCount=3} --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555:root" }, "Action":"es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/*" } ] }'

下一個範例示範以下 OpenSearch Service 網域組態:

  • 使用 OpenSearch 1.0 版建立名為 mylogs 的 OpenSearch Service 網域

  • 在網域中填入十個 r6g.xlarge.search 執行個體類型的執行個體

  • 在網域填入三個 r6g.large.search 執行個體類型的執行個體,以做為專用主節點

  • 使用 100 GiB 佈建 IOPS EBS 磁碟區進行儲存,為每個資料節點設定 1000 個 IOPS 基準效能

  • 限制存取單一使用者和單一附屬來源;_search API

aws opensearch create-domain --domain-name mylogs --engine-version OpenSearch_1.0 --cluster-config InstanceType=r6g.xlarge.search,InstanceCount=10,DedicatedMasterEnabled=true,DedicatedMasterType=r6g.large.search,DedicatedMasterCount=3 --ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::555555555555:root" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/_search" } ] }'
注意

如果您嘗試建立 OpenSearch Service 網域且已存在相同名稱的網域,則 CLI 不會報告錯誤。相反地,它會傳回現有網域的詳細資訊。

建立 OpenSearch Service 網域 (AWS 開發套件)

AWS 開發套件 (Android 及 iOS 開發套件除外) 支援 OpenSearch Service 組態 API 參考中定義的所有動作,包括 CreateDomain。如需程式碼範例,請參閱 使用 AWS 開發套件以便與 Amazon OpenSearch Service 互動。如需安裝與使用 AWS 開發套件的詳細資訊,請參閱 AWS 軟體開發套件

建立 OpenSearch Service 網域 (AWS CloudFormation)

OpenSearch Service 已與 AWS CloudFormation 整合,這項服務可協助您建立 AWS 資源的模型並進行設定,以減少建立和管理資源和基礎設施的時間。您建立一個描述您想要建立之 OpenSearch 網域的範本,而 CloudFormation 會為您佈建與設定網域。如需詳細資訊 (包括 OpenSearch 網域的 JSON 和 YAML 範本範例),請參閱 AWS CloudFormation 使用者指南中的 Amazon OpenSearch Service 資源類型參考

設定存取政策

Amazon OpenSearch Service 提供數種方式來設定對 OpenSearch Service 網域的存取。如需詳細資訊,請參閱 Amazon OpenSearch Service 中的 Identity and Access ManagementAmazon OpenSearch Service 中的精細存取控制

主控台提供預先設定存取政策,讓您可以為您網域的特定需求自訂。您也可以從其他 OpenSearch Service 網域匯入存取政策。如需有關這些存取政策如何與 VPC 存取進行互動的詳細資訊,請參閱 關於 VPC 網域上的存取政策

設定存取政策 (主控台)

  1. 前往 https://aws.amazon.com,然後選擇 Sign In to the Console (登入主控台)

  2. Analytics (分析) 下,選擇 Amazon OpenSearch Service

  3. 在導覽窗格中,在 My domains (我的網域) 下,選擇您想要更新的網域。

  4. 選擇 Actions (動作) 和 Edit security configuration (編輯安全組態)。

  5. 編輯存取政策 JSON,或匯入預先設定的選項。

  6. 選擇 Save changes (儲存變更)。

進階叢集設定

使用進階選項來設定下列項目:

請求主體中的索引

指定 HTTP 請求的內文中是否允許明確參照索引。將此屬性設為 false 以避免使用者繞開附屬資源的存取控制權。根據預設,此值為 true。如需詳細資訊,請參閱 進階選項和 API 考量

欄位資料快取分配

指定分配給欄位資料的 Java 堆積空間的百分比。依預設,此設定為 JVM 堆積的 20%。

注意

許多客戶查詢輪換每日索引。建議您開始基準測試時,針對大部分這些使用案例將 indices.fielddata.cache.size 設定為 40% 的 JVM 堆積。對於非常大的索引,您可能需要大型的欄位資料快取。

最大子句計數

指定 Lucene 布林查詢中允許的最大子句數量。預設值為 1,024。超過所允許的子句數量的查詢會導致 TooManyClauses 錯誤。如需詳細資訊,請參閱 Lucene 文件