All Products
Search
Document Center

Elasticsearch:Migrasi indeks Amazon OpenSearch ke Alibaba Cloud Elasticsearch

Last Updated:Jun 03, 2026

Migrasikan indeks dari Amazon OpenSearch Service ke Alibaba Cloud Elasticsearch menggunakan snapshot. Panduan ini menggunakan kluster Elasticsearch 7.1.0.0.

Cara kerja

Solusi lintas cloud ini memanfaatkan mekanisme snapshot Elasticsearch. Gunakan alat Migration Implementation Alibaba Cloud untuk memigrasikan indeks dari AWS ES atau data snapshot dari Tencent Cloud COS ke Alibaba Cloud OSS, lalu pulihkan dari repositori OSS. Lihat juga Manual Backup and Restoration.

Snapshot hanya dapat dipulihkan ke kluster dengan versi yang sama atau lebih baru. Lihat Snapshot compatibility.

Latar belakang

Arsitektur referensi untuk migrasi ini:

Architecture for migrating from AWS to Alibaba Cloud ES

Konsep

  • Elasticsearch: mesin pencarian dan analitik terdistribusi berbasis RESTful. Sebagai inti Elastic Stack, Elasticsearch menyimpan data secara terpusat untuk pencarian dan analisis.

  • Kibana: alat visualisasi untuk mencari dan menganalisis data Elasticsearch.

  • Amazon OpenSearch Service: layanan terkelola AWS yang menyediakan API Elasticsearch dan analitik real-time.

  • Alibaba Cloud Elasticsearch: layanan terkelola berbasis Elasticsearch open source, dirancang untuk skenario analisis dan pencarian data. Menyediakan kontrol akses tingkat enterprise, pemantauan keamanan dan peringatan, serta pelaporan otomatis.

  • Snapshot dan restore: membuat snapshot dari indeks individual atau seluruh kluster di repositori jarak jauh (sistem file bersama, Amazon S3, atau HDFS) untuk dipulihkan ke versi Elasticsearch yang kompatibel.

    • Snapshot indeks yang dibuat di versi 5.x dapat dipulihkan ke versi 6.x.

    • Snapshot indeks yang dibuat di versi 2.x dapat dipulihkan ke versi 5.x.

    • Snapshot indeks yang dibuat di versi 1.x dapat dipulihkan ke versi 2.x.

Ikhtisar solusi

Langkah-langkah migrasi:

  1. Buat indeks garis dasar.

    1. Buat repositori snapshot dan kaitkan dengan bucket Amazon Simple Storage Service (Amazon S3).

    2. Ambil snapshot lengkap pertama dari indeks yang ingin Anda migrasikan.

      Snapshot ini secara otomatis disimpan di bucket Amazon S3 yang Anda buat pada langkah sebelumnya.

    3. Di Alibaba Cloud, buat bucket Object Storage Service (OSS) dan daftarkan sebagai repositori snapshot untuk kluster Alibaba Cloud Elasticsearch Anda.

    4. Gunakan ossimport untuk mentransfer data dari bucket Amazon S3 ke bucket Alibaba Cloud OSS.

    5. Pulihkan snapshot lengkap ini ke kluster Alibaba Cloud Elasticsearch.

  2. Secara berkala proses snapshot inkremental.

    Ulangi langkah-langkah sebelumnya untuk memproses dan memulihkan snapshot inkremental.

  3. Buat snapshot akhir dan lakukan cutover layanan.

    1. Hentikan layanan apa pun yang mungkin memodifikasi data indeks.

    2. Ambil snapshot inkremental terakhir dari domain Amazon OpenSearch Service sumber.

    3. Migrasikan snapshot inkremental terakhir ke OSS, lalu pulihkan ke kluster Alibaba Cloud Elasticsearch.

    4. Arahkan layanan Anda ke kluster Alibaba Cloud Elasticsearch dan verifikasi migrasi.

Prasyarat

Pastikan hal-hal berikut:

  • Domain Amazon OpenSearch Service dengan Elasticsearch 7.1.0.0 telah dibuat di wilayah Singapura.

    Create an Amazon OpenSearch Service domain.

  • Kluster Alibaba Cloud Elasticsearch versi 7.1.0.0 telah dibuat di wilayah Tiongkok (Hangzhou).

    Create an Alibaba Cloud Elasticsearch cluster.

  • Bucket OSS telah dibuat.

    Panduan ini menggunakan bucket di wilayah Tiongkok (Hangzhou) dengan kelas penyimpanan Standard dan ACL privat. Semua parameter lain menggunakan pengaturan default. Create buckets.

  • Indeks yang ingin Anda migrasikan sudah siap. Topik ini menggunakan indeks bernama movies sebagai contoh.

Prasyarat untuk snapshot manual di AWS

Amazon OpenSearch Service secara otomatis membuat snapshot harian dari shard indeks primer, yang disimpan di bucket S3 yang telah dikonfigurasi selama 14 hari tanpa biaya tambahan. Snapshot ini dapat memulihkan domain tetapi tidak dapat memigrasikan data ke domain baru. Untuk migrasi, buat snapshot manual di bucket S3 Anda sendiri. Biaya penyimpanan S3 standar berlaku.

Untuk membuat dan memulihkan snapshot indeks secara manual, Anda memerlukan IAM dan Amazon S3. Pastikan prasyarat berikut terpenuhi sebelum mengambil snapshot.

Prasyarat

Deskripsi

Create an Amazon S3 bucket

Menyimpan snapshot manual dari domain Amazon OpenSearch Service.

Create an IAM role

Memberikan izin kepada Amazon OpenSearch Service. Tentukan Amazon OpenSearch Service di pernyataan Principal dalam hubungan kepercayaan. Hanya pengguna IAM dengan izin untuk assume role ini yang dapat mendaftarkan repositori snapshot.

Create an IAM policy

Menentukan aksi yang dapat dilakukan oleh role IAM pada bucket S3. Lampirkan kebijakan ini ke role IAM. Pernyataan Resource harus menentukan ARN bucket S3.

  • Create an Amazon S3 bucket

    Buat bucket S3 untuk menyimpan snapshot manual. Catat ARN-nya untuk digunakan dalam:

    • Pernyataan Resource dari kebijakan IAM yang dilampirkan ke role IAM.

    • Klien Python yang digunakan untuk mendaftarkan repositori snapshot.

    Contoh ARN bucket S3:

    arn:aws:s3:::eric-es-index-backups
  • Create an IAM role

    Pastikan role IAM menentukan Amazon OpenSearch Service (es.amazonaws.com) di pernyataan Service dalam hubungan kepercayaannya:

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

    Lihat detail hubungan kepercayaan di Konsol IAM.

    View trust relationship

    Catatan

    Amazon OpenSearch Service tidak tersedia dalam daftar drop-down Select role type saat membuat role untuk layanan AWS. Pilih AWS EC2, buat role tersebut, lalu edit hubungan kepercayaan untuk mengubah ec2.amazonaws.com menjadi es.amazonaws.com.

  • Create an IAM policy

    Buat kebijakan IAM dan lampirkan ke role IAM. Contoh berikut menentukan ARN bucket eric-es-index-backups:

    {
        "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. Salin konten kebijakan ke editor kebijakan.Policy editor

    2. Tinjau kebijakan tersebut.Policy Summary

    3. Lampirkan kebijakan IAM ke role IAM.Attach IAM policy to role

Langkah 1: Daftarkan repositori snapshot manual

Daftarkan repositori snapshot dengan Amazon OpenSearch Service sebelum membuat snapshot manual. Tanda tangani permintaan pendaftaran menggunakan kredensial pengguna atau role yang ditentukan dalam hubungan kepercayaan role IAM. Lihat Prasyarat untuk snapshot manual di AWS.

Penting

Anda tidak dapat menggunakan curl untuk mendaftarkan repositori snapshot karena tidak mendukung penandatanganan permintaan AWS. Gunakan klien Python contoh (register_snapshot_repository.py) sebagai gantinya.

  1. Unduh file register_snapshot_repository.py.

  2. Modifikasi file klien Python contoh.

    Perbarui nilai-nilai yang disorot agar sesuai dengan konfigurasi Anda, lalu simpan file tersebut sebagai snapshot.py.

    Parameter dalam file klien Python contoh:

    Parameter

    Deskripsi

    region

    Wilayah AWS tempat repositori snapshot dibuat.

    host

    Titik akhir domain Amazon OpenSearch Service.

    aws_access_key_id

    ID kunci akses kredensial IAM Anda.

    aws_secret_access_key

    Kunci rahasia akses kredensial IAM Anda.

    path

    Jalur ke repositori snapshot.

    data

    Harus mencakup nama dan ARN bucket S3 yang dibuat untuk role IAM. Prasyarat untuk snapshot manual di AWS.

    Penting
    • Untuk mengaktifkan enkripsi sisi server dengan kunci yang dikelola S3 untuk repositori snapshot, tambahkan "server_side_encryption": true ke JSON settings.

    • Jika bucket Amazon S3 berada di wilayah ap-southeast-1, gunakan "endpoint": "s3.amazonaws.com" alih-alih "region": "ap-southeast-1".

  3. Instal boto-2.48.0.

    Klien Python contoh memerlukan 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. Jalankan klien Python untuk mendaftarkan repositori snapshot.

    # python snapshot.py
  5. Di Konsol Kibana untuk domain Amazon OpenSearch Service Anda, buka Dev Tools > Console dan jalankan:

    GET _snapshot

    View request result

Langkah 2: Buat dan pulihkan snapshot awal

  1. Buat snapshot secara manual di Amazon OpenSearch Service.

    Catatan

    Jalankan perintah berikut di Konsol Kibana atau dengan menggunakan curl dari command line Linux atau macOS.

    • Buat snapshot bernama snapshot_movies_1 untuk indeks movies di repositori eric-snapshot-repository.

      PUT _snapshot/eric-snapshot-repository/snapshot_movies_1
      {
      "indices": "movies"
      }
    • Periksa status snapshot.

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      Check snapshot status

    • Di Konsol Amazon S3, lihat file snapshot.View snapshot files in S3

  2. Transfer data snapshot dari Amazon S3 ke Alibaba Cloud OSS.

    Migrate applications from Amazon S3 to OSS.

    Setelah transfer, verifikasi data snapshot di Konsol OSS.

    Snapshot data in OSS

  3. Pulihkan snapshot ke kluster Alibaba Cloud Elasticsearch.

    1. Buat repositori snapshot.

      Penting

      Selama migrasi snapshot Elasticsearch, pastikan setiap kluster Elasticsearch menggunakan repositori atau jalur snapshot khusus. Jika beberapa kluster berbagi repositori yang sama, pemulihan data dapat gagal dan data mungkin hilang.

      Di Konsol Kibana kluster Alibaba Cloud Elasticsearch tujuan (Log on to the Kibana console), buka Dev Tools > Console dan buat repositori snapshot dengan nama yang sama:

      PUT _snapshot/eric-snapshot-repository
      {
      "type": "oss",
      "settings": {
                  "base_path": "my/snapshot/directory"
                  "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. Periksa status snapshot bernama snapshot_movies_1.

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      View snapshot

      Catatan

      Catat waktu mulai dan selesai untuk migrasi snapshot inkremental dengan ossimport:

      • "start_time_in_millis": 1519786844591

      • "end_time_in_millis": 1519786846236

  4. Pulihkan snapshot.

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

    Periksa ketersediaan indeks movies:

    GET movies/_recovery

    Setelah pemulihan berhasil, indeks movies berisi tiga dokumen, sesuai dengan domain Amazon OpenSearch Service.View ES index data

Langkah 3: Buat dan pulihkan snapshot akhir

  1. Masukkan data ke indeks movies di domain Amazon OpenSearch Service.

    Indeks movies sudah memiliki tiga dokumen. Masukkan dua dokumen lagi.

    Insert two more documents

    Gunakan perintah GET movies/_count untuk memeriksa jumlah dokumen dalam indeks.

  2. Buat snapshot lain secara manual.

    Buat snapshot lain. Lihat Manually create a snapshot on Amazon OpenSearch Service.

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

    Periksa status snapshot:

    GET _snapshot/eric-snapshot-repository/snapshot_movies_2

    Lihat file yang terdaftar di bucket Amazon S3.

    View files in S3 bucket

  3. Transfer data snapshot inkremental dari Amazon S3 ke Alibaba Cloud OSS.

    Gunakan ossimport untuk memigrasikan data dari S3 ke OSS. Untuk memigrasikan hanya file baru, atur isSkipExistFile ke true di local_job.cfg.

    Ketika isSkipExistFile bernilai true, objek dilewati jika size dan LastModifiedTime-nya cocok. Ketika false (default), objek yang sudah ada akan ditimpa. Opsi ini tidak berlaku ketika jobType bernilai audit.

    Setelah migrasi, verifikasi file baru di OSS.

    New files migrated to OSS

  4. Pulihkan snapshot inkremental.

    Ikuti prosedur pemulihan snapshot di Langkah 2: Buat dan pulihkan snapshot pertama. Tutup indeks movies sebelum pemulihan, lalu buka kembali indeks movies setelahnya.

    • Tutup indeks movies.

      POST /movies/_close
    • Periksa status indeks movies.

      GET movies/_stats
    • Pulihkan snapshot inkremental.

      POST _snapshot/eric-snapshot-repository/snapshot_movies_2/_restore
      {
          "indices": "movies"
      }
    • Buka indeks movies.

      POST /movies/_open

    Setelah pemulihan, indeks movies berisi 5 dokumen, sesuai dengan domain Amazon OpenSearch Service.

    Snapshot restore result

Ringkasan

Migrasikan data indeks dari Amazon OpenSearch Service ke Alibaba Cloud Elasticsearch menggunakan snapshot. Tutup indeks di kluster tujuan sebelum pemulihan untuk mencegah penulisan dan permintaan selama migrasi.

Sumber daya terkait:

FAQ

Mengapa repositori harus unik?

Jika beberapa kluster Elasticsearch berbagi repositori snapshot yang sama, masalah berikut dapat terjadi:

  1. Konflik metadata: Beberapa kluster yang beroperasi pada repositori yang sama dapat menimpa atau merusak file metadata, sehingga snapshot tidak dapat diidentifikasi dengan benar.

  2. Penimpaan data: Snapshot dari kluster berbeda dapat saling menimpa file datanya, menyebabkan kehilangan atau kerusakan data.

  3. Kegagalan pemulihan: Elasticsearch tidak dapat menentukan data mana yang dimiliki oleh kluster mana, sehingga operasi restore gagal atau memulihkan data yang salah.

Mengapa pemulihan snapshot OSS gagal?

Galat ini dapat terjadi jika nama objek snapshot di OSS mengandung karakter khusus seperti garis miring (/).

Alibaba Cloud Elasticsearch tidak mendukung nama objek dengan karakter khusus selama pemulihan snapshot OSS. Gunakan ossbrowser untuk memindahkan data snapshot ke folder dengan nama standar.