日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

將Amazon OpenSearch Service中的Elasticsearch索引遷移至阿里云

本文介紹如何將Amazon OpenSearch Service中的Elasticsearch(以下簡稱ES)索引數據遷移到阿里云Elasticsearch中。

方案說明

該方案不局限云服務廠商,均依賴ES快照機制實現。例如,使用阿里云在線遷移(遷移實施)將存儲在Amazon OpenSearch Service或騰訊云COS的ES快照數據遷移到阿里云OSS,參考阿里云ES快照恢復OSS倉庫快照數據。具體操作,請參見手動備份與恢復

ES快照遷移僅支持低版本向高版本或同版本遷移恢復,詳見快照兼容性

背景信息

本次Elasticsearch索引遷移方案的參考架構如下。AWS遷移至阿里云ES架構圖

相關概念

  • Elasticsearch:一個分布式的RESTful風格的搜索與分析引擎,適用于各種應用場景。作為Elastic Stack的核心,Elasticsearch可以集中存儲您的數據,并對數據進行搜索分析。

  • Kibana:您可以使用Kibana對Elasticsearch數據進行可視化搜索分析。

  • Amazon OpenSearch Service:原Amazon Elasticsearch Service,2021年9月更名為Amazon OpenSearch Service。是AWS的一項托管服務,提供了各種易于使用的Elasticsearch API和實時分析功能,還可以實現生產工作負載需要的可用性、可擴展性和安全性。您可以使用Amazon OpenSearch Service輕松部署、保護、操作和擴展Elasticsearch,以便進行日志分析、全文搜索和應用程序監控等工作。

  • 阿里云Elasticsearch服務: 提供基于開源Elasticsearch服務,致力于數據分析、數據搜索等場景服務。在開源Elasticsearch基礎上提供企業級權限管控、安全監控告警、自動報表生成等功能。本文涉及的操作主要在阿里云Elasticsearch服務的中國站上進行。

  • 快照和恢復(Snapshot and Restore):您可以使用快照和恢復功能,在遠程存儲庫(如共享文件系統、S3或HDFS)中,創建各個索引或整個集群的快照。創建后的快照可以被恢復到對應版本的Elasticsearch中。

    • 在5.x中創建的索引快照可以恢復到6.x。

    • 在2.x中創建的索引快照可以恢復到5.x。

    • 在1.x中創建的索引快照可以恢復到2.x。

解決方案概述

您可以通過以下步驟來遷移索引數據:

  1. 創建基線索引。

    1. 創建一個快照存儲庫,并將其與Amazon Simple Storage Service (Amazon S3)存儲空間相關聯。

    2. 為要遷移的索引創建第一個完整的快照。

      該快照會自動存儲在步驟一中創建的Amazon S3存儲空間中。

    3. 在阿里云側創建一個對象存儲服務OSS(Object Storage Service)存儲空間,并將其注冊到阿里云Elasticsearch實例的快照存儲庫中。

    4. 使用OSS Import工具將Amazon S3存儲空間中的數據提取到阿里云OSS存儲空間中。

    5. 將此完整快照恢復到阿里云Elasticsearch實例。

  2. 定期處理增量快照 。

    重復以上步驟處理增量快照并進行恢復。

  3. 確定最終快照,進行服務切換。

    1. 停止可能會修改索引數據的服務。

    2. 創建Amazon OpenSearch Service實例的最終增量快照。

    3. 將最終增量快照遷移至OSS,然后恢復到阿里云Elasticsearch實例中。

    4. 進行服務切換,在阿里云Elasticsearch實例中,查看遷移成功的數據。

前提條件

您已完成以下操作:

  • 創建Amazon OpenSearch Service(原Amazon Elasticsearch Service)域,版本號為Elasticsearch 5.5.2,地域為新加坡。

    具體操作步驟請參見創建Amazon OpenSearch Service域

  • 創建阿里云Elasticsearch實例,版本號為5.5.3,地域為杭州。

    具體操作步驟請參見創建阿里云Elasticsearch實例

  • 創建OSS Bucket。

    本文創建的Bucket地域為華東1(杭州)、存儲類型為標準存儲、讀寫權限為私有,其他參數保持默認,具體操作步驟請參見控制臺創建存儲空間

  • 準備待遷移的索引,示例索引名稱為movies

在AWS中創建手動快照的前提條件

Amazon OpenSearch Service每天會自動為一個域中的主要索引分片創建快照,并將這些快照存儲在預配置的Amazon S3存儲空間中。這些快照會保留14天,您無需額外付費。此外,您還可以使用這些快照來恢復域,但是這些自動快照不能被遷移到新域。如果要遷移,您必須使用存儲在自己的存儲庫(S3存儲空間)中的手動快照。手動快照將收取標準S3費用。

您需要使用Amazon Identity and Access Management(IAM)和Amazon S3才能手動創建和恢復索引快照。創建快照之前,請確保已滿足以下條件。

前提條件

描述

創建Amazon S3存儲空間

存儲Amazon OpenSearch Service域的手動快照。

創建IAM角色

為Amazon OpenSearch Service授權。在給該角色添加信任關系時,必須在Principal語句中指定Amazon OpenSearch Service。使用Amazon OpenSearch Service注冊您的快照存儲庫時,也需要使用該IAM角色。只有具有該角色訪問權限的IAM用戶才可以注冊快照存儲庫。

創建IAM策略

指定IAM角色可以對S3存儲空間執行的操作。該策略必須添加給為Amazon OpenSearch Service授權的IAM角色。您需要在該策略的Resource語句中指定S3存儲空間。

  • 創建S3存儲空間

    創建一個Amazon S3存儲空間來存儲手動快照,并記錄其Amazon資源名稱(ARN)。該ARN在以下場景中會用到:

    • 用于IAM角色添加IAM策略的Resource語句。

    • 用于注冊快照存儲庫的Python客戶端。

    Amazon S3存儲空間的ARN示例如下。

    arn:aws:s3:::eric-es-index-backups
  • 創建IAM角色

    確保已經創建了一個IAM角色,且在其信任關系中的Service語句中指定該角色的服務類型為Amazon OpenSearch Service(es.amazonaws.com),如下所示。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "es.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }

    您可以在IAM控制臺查看信任關系的詳細信息。

    查看信任關系

    說明

    在IAM控制臺創建AWS服務角色時,Select role type下拉列表中不包含Amazon OpenSearch Service。 但是,您可以先選擇Amazon EC2,按照提示完成角色創建,然后將ec2.amazonaws.com修改為es.amazonaws.com

  • 創建IAM策略

    創建IAM策略,并將IAM策略添加給IAM角色。該策略指定存儲Amazon OpenSearch Service域的S3存儲空間。以下示例指定了存儲空間eric-es-index-backups的ARN。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "s3:ListBucket"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::eric-es-index-backups"
                ]
            },
            {
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::eric-es-index-backups/*"
                ]
            }
        ]
    }
    1. 將策略內容復制到編輯策略區域。策略編輯區域

    2. 檢查策略是否正確。Policy Summary

    3. 為IAM角色添加IAM策略。為IAM角色添加IAM策略

步驟一:注冊手動快照存儲庫

您必須通過Amazon OpenSearch Service注冊快照存儲庫后,才能創建手動索引快照。創建手動索引快照前,需要先為IAM角色的信任關系中指定的用戶或角色簽發您的AWS請求,詳情請參見在AWS中創建手動快照的前提條件

重要

由于curl命令不支持AWS請求簽名,因此不能使用curl命令注冊快照存儲庫。請使用示例Python客戶端注冊您的快照存儲庫。

  1. 下載示例Python客戶端文件。

  2. 修改示例Python客戶端文件。

    修改文件中標黃的值,填入實際匹配的值。修改完成后,復制示例Python客戶端文件中的內容至Python文件中,并命名為snapshot.py。

    示例Python客戶端文件中的參數說明如下。

    變量名

    描述

    region

    創建快照存儲庫所在的AWS地域。

    host

    Amazon OpenSearch Service域的訪問地址。

    aws_access_key_id

    IAM憑證ID。

    aws_secret_access_key

    IAM憑證Key。

    path

    快照存儲庫的路徑。

    data

    必須包含上文在AWS中創建手動快照的前提條件中,為IAM角色創建的S3存儲空間的名字和ARN。

    重要
    • 如果要為快照存儲庫啟用S3托管密鑰的服務器端加密,請將 "server_side_encryption": true添加到settings JSON中。

    • 如果S3存儲空間在ap-southeast-1地域,請使用"endpoint": "s3.amazonaws.com"替代"region": "ap-southeast-1"

  3. 安裝Amazon Web Services Library boto-2.48.0。

    上文的示例Python客戶端,需要您在注冊快照存儲庫的計算機上安裝boto軟件包的2.x版本。

    # wget https://pypi.python.org/packages/66/e7/fe1db6a5ed53831b53b8a6695a8f134a58833cadb5f2740802bc3730ac15/boto-2.48.0.tar.gz#md5=ce4589dd9c1d7f5d347363223ae1b970 
    # tar zxvf boto-2.48.0.tar.gz
    # cd boto-2.48.0
    # sudo python setup.py install
  4. 執行Python客戶端,注冊快照存儲庫。

    # python snapshot.py
  5. 進入對應Amazon OpenSearch Service的Kibana控制臺,在Dev Tools頁面的Console中,執行以下命令,查看請求結果。

    GET _snapshot

    查看請求結果

步驟二:創建首次快照并恢復

  1. 在Amazon OpenSearch Service上手動創建快照。

    說明

    以下命令可在Kibana控制臺上執行,也可以在Linux或者Mac OSX命令行中使用curl命令來執行。

    • 為在eric-snapshot-repository存儲庫中的movies索引,創建名稱為snapshot_movies_1的快照。

      PUT _snapshot/eric-snapshot-repository/snapshot_movies_1
      {
      "indices": "movies"
      }
    • 查看快照狀態。

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      查看快照狀態

    • 在Amazon S3控制臺中,查看快照文件。瞎看快照文件

  2. 從Amazon S3提取快照數據至阿里云OSS。

    詳細操作方法請參見從Amazon S3上的應用無縫切換至OSS

    數據提取后,在OSS控制臺中查看存儲的快照數據。

    OSS快照數據

  3. 還原快照至阿里云Elasticsearch實例。

    1. 創建快照存儲庫。

      進入目標阿里云Elasticsearch實例的Kibana控制臺(登錄Kibana控制臺),在Dev Tools頁面的Console中,執行如下命令創建一個同名的快照存儲庫。

      PUT _snapshot/eric-snapshot-repository
      {
      "type": "oss",
      "settings": {
                  "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",  
                  "access_key_id": "your AccessKeyID",
                  "secret_access_key": "your AccessKeySecret ",
                  "bucket": "eric-oss-aws-es-snapshot-s3",
                  "compress": true
            }
      }
    2. 查看名稱為snapshot_movies_1的快照狀態。

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      查看快照

      說明

      請記錄此快照操作的起始時間和結束時間。當您使用阿里云OssImport遷移工具遷移增量快照數據時,此記錄會被用到。例如:

      • “start_time_in_millis”: 1519786844591

      • “end_time_in_millis”: 1519786846236

  4. 恢復快照。

    POST _snapshot/eric-snapshot-repository/snapshot_movies_1/_restore
    {
        "indices": "movies"
    }

    執行以下命令,查看movies索引的可用性。

    GET movies/_recovery

    執行成功后,可以看到movies索引中存在三組數據,且與Amazon OpenSearch Service域中的數據相同。查看ES索引數據

步驟三:創建末次快照并恢復

  1. 在Amazon OpenSearch Service的movies索引中插入數據。

    movies索引中已存在三組數據,您還需插入另兩組數據。

    插入另外兩條數據

    使用GET movies/_count命令,可查看索引數據量。

  2. 手動創建另一個快照。

    執行以下命令手動創建快照,詳情請參見上文的在Amazon OpenSearch Service上手動創建快照步驟。

    PUT _snapshot/eric-snapshot-repository/snapshot_movies_2
    {
    "indices": "movies"
    }

    創建成功后,執行以下命令查看快照狀態。

    GET _snapshot/eric-snapshot-repository/snapshot_movies_2

    查看S3存儲空間中列出的文件。

    查看S3空間文件

  3. 從Amazon S3提取增量快照數據至阿里云OSS。

    您可以使用OSSImport工具從Amazon S3遷移數據至阿里云OSS。目前有兩個快照文件存儲在S3存儲空間里,可以通過修改配置文件local_job.cfg中的isSkipExistFile變量來遷移新的文件。

    isSkipExistFile表示數據遷移期間是否跳過現有對象,為布爾類型,默認值為false。如果設置為true,則根據sizeLastModifiedTime跳過對象;如果設置為false,則覆蓋現有對象。當jobType設置為audit時,此選項無效。

    遷移工作完成后,您可以看到新的文件已被遷移至OSS中。

    新文件遷移到OSS中

  4. 恢復增量快照。

    恢復增量快照詳細步驟請參見上文的步驟二:創建首次快照并恢復章節中的恢復快照步驟。但是首先需要關閉movies索引,然后再恢復快照。快照恢復后可以再次打開movies索引。

    • 關閉movies索引

      POST /movies/_close
    • 查看movies索引狀態

      GET movies/_stats
    • 恢復增量快照

      POST _snapshot/eric-snapshot-repository/snapshot_movies_2/_restore
      {
          "indices": "movies"
      }
    • 打開movies索引

      POST /movies/_open

    恢復快照步驟完成后,可以看到movies索引中文檔數量為5,與Amazon OpenSearch Service域中的文檔數量相同。

    恢復快照結果

總結

您可以通過創建和恢復快照的方法,將Amazon OpenSearch Service中的Elasticsearch索引數據遷移至阿里云Elasticsearch索引中。此方案要求先關閉需要遷移的集群索引,以防止遷移期間的寫入和請求。

相關文檔:

常見問題

Q:阿里云ES從OSS上做快照恢復索引數據時報錯,為什么?

A:可能是因為OSS上快照的文件名為符號,例如文件名為正斜線(/)。

阿里云ES從OSS上做快照恢復索引數據時,不支持OSS上快照的文件名為符號。解決方案為通過用圖形化管理工具ossbrowser快速入門,將OSS的快照數據移到正常的文件夾下。