本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:遷移到亞馬遜OpenSearch服務
索引快照是從自我管理移轉的熱門方式OpenSearch或傳統彈性搜索集群到亞馬遜OpenSearch服務。此程序大致包含下列步驟:
-
建立現有叢集的快照,然後將快照上傳至 Amazon S3 儲存貯體。
-
創建一個OpenSearch服務網域。
-
給OpenSearch存取值區的服務權限,並確保您擁有使用快照的權限。
-
還原上的快照OpenSearch服務網域。
此演練提供更詳細的步驟和替代選項 (如適用)。
建立並上傳快照
雖然您可以使用 repository-s3opensearch.yml
(或 elasticsearch.yml
),重新啟動每個節點,新增 AWS 憑證,最後才能建立快照。外掛程式是適合持續使用或遷移較大型叢集的絕佳選擇。
若是較小的叢集,可以採用一次性的方法,先建立共用檔案系統快照
若要建立快照並上傳至 Amazon S3
-
將
path.repo
設定新增至所有節點上的opensearch.yml
(或Elasticsearch.yml
),然後重新啟動每個節點。path.repo: ["
/my/shared/directory/snapshots
"] -
註冊快照儲存庫
,此為建立快照前所需。儲存庫只是一個儲存位置:共用檔案系統、Amazon S3、Hadoop 分散式檔案系統 (HDFS) 等。在此情況下,我們將使用共用檔案系統 ("fs"): PUT _snapshot/
my-snapshot-repo-name
{ "type": "fs", "settings": { "location": "/my/shared/directory/snapshots
" } } -
建立快照:
PUT _snapshot/
my-snapshot-repo-name
/my-snapshot-name
{ "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false } -
安裝 AWS CLI
,然後執行 aws configure
以新增您的登入資料。 -
瀏覽至快照目錄。然後執行下列命令以建立新的 S3 儲存貯體,並將快照目錄的內容上傳至該儲存貯體:
aws s3 mb s3://
bucket-name
--regionus-west-2
aws s3 sync . s3://bucket-name
--sse AES256視快照大小和網際網路連線速度而定,此操作可能需要一段時間。
建立網域
雖然主控台是建立網域最簡單的方法,但在這種情況下,您已經開啟終端機而且已安裝 AWS CLI。修改下列命令即可建立符合您需求的網域:
aws opensearch create-domain \ --domain-name
migration-domain
\ --engine-versionOpenSearch_1.0
\ --cluster-config InstanceType=c5.large.search,InstanceCount=2 \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true,TLSSecurityPolicy=Policy-Min-TLS-1-2-2019-07 \ --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true,MasterUserOptions='{MasterUserName=master-user
,MasterUserPassword=master-user-password
}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["*"]},"Action":["es:ESHttp*"],"Resource":"arn:aws:es:us-west-2
:123456789012
:domain/migration-domain
/*"}]}' \ --regionus-west-2
若未經修改,此命令會建立具有兩個資料節點的網際網路存取網域,每個節點都有 100 GiB 的儲存空間。它也會啟用具有 HTTP 基本身分驗證和所有加密設定的精細存取控制。使用OpenSearch服務主控台 (如果您需要更進階的安全性設定,例如 VPC)。
發出命令之前,請先變更網域名稱、主要使用者登入資料和帳戶號碼。指定相同AWS 區域您用於 S3 存儲桶和OpenSearch/彈性搜索與您的快照兼容的版本。
重要
快照只能正向相容,而且只能往前一個主要版本。例如,您無法從OpenSearch1.x彈性搜索 7 上的集群。x叢集,只有一個OpenSearch1.x或 2.x集群。次要版本也很重要。您無法從 5.3.2 上的自我管理 5.3.3 叢集還原快照OpenSearch服務網域。我們建議您選擇最新版本OpenSearch或彈性搜索您的快照支持。如需相容版本的表格,請參閱使用快照來遷移資料。
提供許可以存取 S3 儲存貯體。
在 AWS Identity and Access Management (IAM) 主控台中,建立角色,它具有下列許可和信任關係。在建立角色時,選擇 S3 作為 AWS Service。將角色命名為 OpenSearchSnapshotRole
以便輕鬆找到。
許可
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
bucket-name
" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucket-name
/*" ] } ] }
信任關係
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
然後授予您的個人 IAM 角色許可,以擔任 OpenSearchSnapshotRole
。建立下列政策,並將它連接到您的身分:
許可
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
123456789012
:role/OpenSearchSnapshotRole" } ] }
對應快照角色OpenSearch儀表板 (如果使用精細的存取控制)
如果您已啟用精細存取控制,即使您將 HTTP 基本身分驗證用於所有其他目的,您也需要將 manage_snapshots
角色映射至 IAM 角色,以便您可以使用快照。
若要為您的身分授予許可以便使用快照
-
使用您在建立OpenSearch服務網域。您可以在OpenSearch服務主控台。其格式為
https://
。domain-endpoint
/_dashboards/ -
從主選單中選擇 Security (安全性)、Roles (角色),然後選取 manage_snapshots 角色。
-
選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。
-
在適當的欄位中新增您的個人 IAM 角色的網域 ARN。ARN 採用下列其中一種格式:
arn:aws:iam::
123456789123
:user/user-name
arn:aws:iam::
123456789123
:role/role-name
-
選擇 Map (映射),並確認角色顯示在 Mapped users (已映射的使用者) 中。
還原快照
此時,您有兩種方法可以訪問OpenSearch服務網域:使用您的主要使用者認證進行 HTTP 基本驗證,或AWS使用 IAM 登入資料進行身份驗證 由於快照使用沒有主要使用者概念的 Amazon S3,因此您必須使用 IAM 登入資料向您的OpenSearch服務網域。
大多數編程語言都有幫助簽名請求的庫,但更簡單的方法是使用類似的工具邮递员
還原快照
無論您選擇如何簽署請求,第一步都是註冊儲存庫:
PUT _snapshot/
my-snapshot-repo-name
{ "type": "s3", "settings": { "bucket": "bucket-name
", "region": "us-west-2
", "role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole" } }然後列出儲存庫中的快照,找到您要還原的快照。此時,您可以繼續使用 Postman,或切換到 curl
等工具。 速記
GET _snapshot/
my-snapshot-repo-name
/_allcurl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/_all還原快照。
速記
POST _snapshot/
my-snapshot-repo-name
/my-snapshot-name
/_restore { "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false }curl
curl -XPOST -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/my-snapshot-name
/_restore \ -H 'Content-Type: application/json' \ -d '{"indices":"migration-index1
,migration-index2
,other-indices-*
","include_global_state":false}'最後,確認索引是否已依照預期還原。
速記
GET _cat/indices?v
curl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_cat/indices?v
此時,遷移即已完成。您可以配置您的客戶端使用新的OpenSearch服務端點調整網域大小以適應您的工作負載,請檢查索引的碎片計數,切換到IAM 主要使用者,或開始建立視覺效果OpenSearch儀表板。