Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Replikasi lintas cluster untuk Layanan Amazon OpenSearch
Dengan replikasi lintas klaster di Amazon OpenSearch Service, Anda dapat mereplikasi indeks, pemetaan, dan metadata pengguna dari satu domain Layanan ke domain Layanan lainnya. OpenSearch Menggunakan replikasi lintas cluster membantu memastikan pemulihan bencana jika terjadi pemadaman, dan memungkinkan Anda mereplikasi data di seluruh pusat data yang jauh secara geografis untuk mengurangi latensi. Anda membayar biaya transfer AWS data standar
Replikasi lintas cluster mengikuti model replikasi aktif-pasif di mana indeks lokal atau pengikut menarik data dari indeks jarak jauh atau pemimpin. Indeks pemimpin mengacu pada sumber data, atau indeks tempat Anda ingin mereplikasi data. Indeks pengikut mengacu pada target untuk data, atau indeks yang ingin Anda replikasi data.
Replikasi lintas-cluster tersedia di domain yang menjalankan Elasticsearch 7.10 atau 1.1 atau yang lebih baru. OpenSearch
catatan
Dokumentasi ini menjelaskan cara menyiapkan replikasi lintas klaster dari perspektif OpenSearch Layanan Amazon. Ini termasuk menggunakan AWS Management Console untuk mengatur koneksi lintas-cluster, yang tidak dimungkinkan pada cluster yang dikelola sendiri OpenSearch . Untuk dokumentasi lengkap, termasuk referensi pengaturan dan referensi API yang komprehensif, lihat Replikasi lintas klaster
Topik
Batasan
Replikasi lintas-cluster memiliki keterbatasan sebagai berikut:
-
Anda tidak dapat mereplikasi data antara domain OpenSearch Layanan Amazon dan cluster yang dikelola sendiri OpenSearch atau Elasticsearch.
-
Anda tidak dapat mereplikasi indeks dari domain pengikut ke domain pengikut lain. Jika Anda ingin mereplikasi indeks ke beberapa domain pengikut, Anda hanya dapat mereplikasi indeks dari domain pemimpin tunggal.
-
Sebuah domain dapat dihubungkan, melalui kombinasi koneksi masuk dan keluar, hingga maksimum 20 domain lainnya.
-
Ketika Anda awalnya mengatur koneksi lintas cluster, domain pemimpin harus pada versi yang sama atau lebih tinggi dari domain pengikut.
-
Anda tidak dapat menggunakan AWS CloudFormation untuk menghubungkan domain.
-
Anda tidak dapat menggunakan replikasi lintas-cluster pada instance M3 atau burstable (T2 dan T3).
-
Anda tidak dapat mereplikasi data antara UltraWarm atau indeks dingin. Kedua indeks harus dalam penyimpanan panas.
-
Saat Anda menghapus indeks dari domain pemimpin, indeks yang sesuai pada domain pengikut tidak akan dihapus secara otomatis.
Prasyarat
Sebelum menyiapkan replikasi lintas klaster, pastikan domain Anda memenuhi persyaratan berikut:
-
Elasticsearch 7.10 atau 1.1 atau OpenSearch yang lebih baru
-
ode-to-node Enkripsi N diaktifkan
Persyaratan izin
Untuk memulai replikasi, Anda harus menyertakan es:ESCrossClusterGet
izin pada domain jarak jauh (pemimpin). Kami merekomendasikan kebijakan IAM berikut pada domain jarak jauh. Kebijakan ini juga memungkinkan Anda melakukan operasi lain, seperti mengindeks dokumen dan melakukan pencarian standar:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }
Pastikan bahwa izin es:ESCrossClusterGet
diterapkan untuk /leader-domain
dan bukan /leader-domain/*
.
Agar pengguna non-admin dapat melakukan aktivitas replikasi, mereka juga perlu dipetakan ke izin yang sesuai. Sebagian besar izin sesuai dengan operasi REST APIindices:admin/plugins/replication/index/_resume
izin memungkinkan Anda melanjutkan replikasi indeks. Untuk daftar lengkap izin, lihat Izin replikasi dalam dokumentasi
catatan
Perintah untuk memulai replikasi dan membuat aturan replikasi adalah kasus khusus. Karena mereka memanggil proses latar belakang pada domain pemimpin dan pengikut, Anda harus lulus leader_cluster_role
dan follower_cluster_role
dalam permintaan. OpenSearch Layanan menggunakan peran ini dalam semua tugas replikasi backend. Untuk informasi tentang pemetaan dan penggunaan peran ini, lihat Memetakan peran klaster pemimpin dan pengikut
Siapkan koneksi lintas-cluster
Untuk mereplikasi indeks dari satu domain ke domain lainnya, Anda perlu menyiapkan koneksi lintas-cluster antar domain. Cara termudah untuk menghubungkan domain adalah melalui tab Koneksi pada dasbor domain. Anda juga dapat menggunakan API konfigurasi atau AWS CLI. Karena replikasi lintas cluster mengikuti model “tarik”, Anda memasukkan koneksi dari domain pengikut.
catatan
Jika sebelumnya Anda menghubungkan dua domain untuk melakukan pencarian lintas klaster, Anda tidak dapat menggunakan koneksi yang sama untuk replikasi. Koneksi ditandai seperti SEARCH_ONLY
di konsol. Untuk melakukan replikasi antara dua domain yang terhubung sebelumnya, Anda harus menghapus koneksi dan membuatnya kembali. Setelah Anda melakukan ini, koneksi tersedia untuk pencarian lintas cluster dan replikasi lintas cluster.
Untuk mengatur koneksi
-
Di konsol OpenSearch Layanan Amazon, pilih domain pengikut, buka tab Koneksi, dan pilih Permintaan.
-
Untuk alias Koneksi, masukkan nama untuk koneksi Anda.
-
Pilih antara menghubungkan ke domain di wilayah Anda Akun AWS atau di akun atau Wilayah lain.
-
Untuk terhubung ke domain di Wilayah Akun AWS dan Anda, pilih domain dan pilih Permintaan.
-
Untuk terhubung ke domain di wilayah lain Akun AWS atau wilayah, tentukan ARN dari domain jarak jauh dan pilih Permintaan.
-
OpenSearch Layanan memvalidasi permintaan koneksi. Jika domain tidak kompatibel, koneksi gagal. Jika validasi berhasil, validasi dikirim ke domain tujuan untuk persetujuan. Ketika domain tujuan menyetujui permintaan, Anda dapat memulai replikasi.
Replikasi lintas-cluster mendukung replikasi dua arah. Ini berarti Anda dapat membuat koneksi keluar dari domain A ke domain B, dan koneksi keluar lainnya dari domain B ke domain A. Anda kemudian dapat mengatur replikasi sehingga domain A mengikuti indeks di domain B, dan domain B mengikuti indeks di domain A.
Memulai replikasi
Setelah Anda membuat koneksi lintas cluster, Anda dapat mulai mereplikasi data. Pertama, buat indeks pada domain pemimpin untuk ditiru:
PUT leader-01
Untuk mereplikasi indeks itu, kirim perintah ini ke domain pengikut:
PUT _plugins/_replication/follower-01
/_start
{
"leader_alias": "connection-alias
",
"leader_index": "leader-01
",
"use_roles":{
"leader_cluster_role": "all_access
",
"follower_cluster_role": "all_access
"
}
}
Anda dapat menemukan alias koneksi di tab Connections di dasbor domain Anda.
Contoh ini mengasumsikan bahwa admin mengeluarkan permintaan dan penggunaan all_access
untuk dan untuk leader_cluster_role
kesederhanaanfollower_cluster_role
. Namun, di lingkungan produksi, kami menyarankan Anda membuat pengguna replikasi pada indeks pemimpin dan pengikut, dan memetakannya sesuai dengan itu. Nama pengguna harus identik. Untuk informasi tentang peran ini dan cara memetakannya, lihat Memetakan peran klaster pemimpin dan pengikut
Konfirmasikan replikasi
Untuk mengonfirmasi bahwa replikasi sedang terjadi, dapatkan status replikasi:
GET _plugins/_replication/follower-01
/_status
{
"status" : "SYNCING",
"reason" : "User initiated",
"leader_alias" : "connection-alias",
"leader_index" : "leader-01",
"follower_index" : "follower-01",
"syncing_details" : {
"leader_checkpoint" : -5,
"follower_checkpoint" : -5,
"seq_no" : 0
}
}
Nilai pos pemeriksaan pemimpin dan pengikut dimulai sebagai bilangan bulat negatif dan mencerminkan jumlah pecahan yang Anda miliki (-1 untuk satu pecahan, -5 untuk lima pecahan, dan seterusnya). Nilai bertambah menjadi bilangan bulat positif dengan setiap perubahan yang Anda buat. Jika nilainya sama, itu berarti indeks disinkronkan sepenuhnya. Anda dapat menggunakan nilai pos pemeriksaan ini untuk mengukur latensi replikasi di seluruh domain Anda.
Untuk memvalidasi replikasi lebih lanjut, tambahkan dokumen ke indeks pemimpin:
PUT leader-01
/_doc/1
{
"Doctor Sleep":"Stephen King"
}
Dan konfirmasikan bahwa itu muncul di indeks pengikut:
GET follower-01
/_search
{
...
"max_score" : 1.0,
"hits" : [
{
"_index" : "follower-01",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"Doctor Sleep" : "Stephen King"
}
}
]
}
}
Jeda dan lanjutkan replikasi
Anda dapat menghentikan sementara replikasi jika perlu memperbaiki masalah atau mengurangi beban pada domain pemimpin. Kirim permintaan ini ke domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:
POST _plugins/_replication/follower-01
/_pause
{}
Kemudian dapatkan status untuk memastikan bahwa replikasi dijeda:
GET _plugins/_replication/follower-01
/_status
{
"status" : "PAUSED",
"reason" : "User initiated",
"leader_alias" : "connection-alias",
"leader_index" : "leader-01",
"follower_index" : "follower-01"
}
Setelah selesai membuat perubahan, lanjutkan replikasi. Kirim permintaan ini ke domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:
POST _plugins/_replication/follower-01
/_resume
{}
Anda tidak dapat melanjutkan replikasi setelah dijeda selama lebih dari 12 jam. Anda harus menghentikan replikasi, menghapus indeks pengikut, dan memulai ulang replikasi pemimpin.
Hentikan replikasi
Ketika Anda menghentikan replikasi sepenuhnya, indeks pengikut berhenti mengikuti pemimpin dan menjadi indeks standar. Anda tidak dapat memulai ulang replikasi setelah Anda menghentikannya.
Hentikan replikasi dari domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:
POST _plugins/_replication/follower-01
/_stop
{}
Ikuti otomatis
Anda dapat menentukan seperangkat aturan replikasi terhadap domain pemimpin tunggal yang secara otomatis mereplikasi indeks yang cocok dengan pola tertentu. Ketika indeks pada domain pemimpin cocok dengan salah satu pola (misalnya,books*
), indeks pengikut yang cocok dibuat pada domain pengikut. OpenSearch Layanan mereplikasi indeks yang ada yang cocok dengan pola, serta indeks baru yang Anda buat. Itu tidak mereplikasi indeks yang sudah ada di domain pengikut.
Untuk mereplikasi semua indeks (dengan pengecualian indeks yang dibuat sistem, dan indeks yang sudah ada di domain pengikut), gunakan pola wildcard (). *
Buat aturan replikasi
Buat aturan replikasi pada domain pengikut, dan tentukan nama koneksi lintas-cluster:
POST _plugins/_replication/_autofollow
{
"leader_alias" : "connection-alias
",
"name": "rule-name
",
"pattern": "books*
",
"use_roles":{
"leader_cluster_role": "all_access
",
"follower_cluster_role": "all_access
"
}
}
Anda dapat menemukan alias koneksi di tab Connections di dasbor domain Anda.
Contoh ini mengasumsikan bahwa admin mengeluarkan permintaan, dan digunakan all_access
sebagai peran domain pemimpin dan pengikut untuk kesederhanaan. Namun, di lingkungan produksi, kami menyarankan Anda membuat pengguna replikasi pada indeks pemimpin dan pengikut dan memetakannya sesuai dengan itu. Nama pengguna harus identik. Untuk informasi tentang peran ini dan cara memetakannya, lihat Memetakan peran klaster pemimpin dan pengikut
Untuk mengambil daftar aturan replikasi yang ada di domain, gunakan operasi API statistik ikuti otomatis
Untuk menguji aturan, buat indeks yang cocok dengan pola pada domain pemimpin:
PUT books-are-fun
Dan periksa apakah replika muncul di domain pengikut:
GET _cat/indices
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open books-are-fun ldfHO78xYYdxRMULuiTvSQ 1 1 0 0 208b 208b
Hapus aturan replikasi
Saat Anda menghapus aturan replikasi, OpenSearch Service berhenti mereplikasi indeks baru yang cocok dengan pola, tetapi melanjutkan aktivitas replikasi yang ada hingga Anda menghentikan replikasi indeks tersebut.
Hapus aturan replikasi dari domain pengikut:
DELETE _plugins/_replication/_autofollow
{
"leader_alias" : "connection-alias
",
"name": "rule-name
"
}
Memutakhirkan domain yang terhubung
Untuk meningkatkan versi mesin dari dua domain yang memiliki koneksi lintas cluster, tingkatkan domain pengikut terlebih dahulu dan kemudian domain pemimpin. Jangan hapus koneksi di antara mereka, jika tidak replikasi berhenti dan Anda tidak akan dapat melanjutkannya.