Memigrasi indeks OpenSearch Layanan Amazon menggunakan indeks ulang jarak jauh - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memigrasi indeks OpenSearch Layanan Amazon menggunakan indeks ulang jarak jauh

Remote reindex memungkinkan Anda menyalin indeks dari satu domain OpenSearch Layanan Amazon ke domain lain. Anda dapat memigrasikan indeks dari domain OpenSearch Layanan atau cluster yang dikelola sendiri OpenSearch dan Elasticsearch.

Domain dan indeks jarak jauh mengacu pada sumber data, atau domain dan indeks tempat Anda ingin menyalin data. Domain dan indeks lokal mengacu pada target untuk data, atau domain dan indeks yang ingin Anda salin datanya.

Pengindeksan ulang jarak jauh membutuhkan OpenSearch 1.0 atau yang lebih baru, atau Elasticsearch 6.7 atau yang lebih baru, pada domain lokal. Versi domain jarak jauh harus lebih rendah atau versi utama yang sama dengan domain lokal. Versi Elasticsearch dianggap lebih rendah dari OpenSearch versi, artinya Anda dapat mengindeks ulang data dari domain Elasticsearch ke domain. OpenSearch Dalam versi utama yang sama, domain jarak jauh dapat berupa versi minor. Misalnya, pengindeksan ulang jarak jauh dari Elasticsearch 7.10.x ke 7.9 didukung, tetapi OpenSearch 1.0 ke Elasticsearch 7.10.x tidak didukung.

Dokumentasi lengkap untuk reindex operasi, termasuk langkah-langkah terperinci dan opsi yang didukung, tersedia dalam OpenSearchdokumentasi.

Prasyarat

Remote reindex memiliki persyaratan sebagai berikut:

  • Domain jarak jauh harus dapat diakses dari domain lokal. Untuk domain jarak jauh yang berada dalam VPC, domain lokal harus memiliki akses ke VPC. Proses ini bervariasi menurut konfigurasi jaringan, tetapi kemungkinan melibatkan koneksi ke VPN atau jaringan terkelola, atau menggunakan koneksi titik akhir VPC asli. Untuk mempelajari selengkapnya, lihat Meluncurkan domain OpenSearch Layanan Amazon Anda dalam VPC.

  • Permintaan harus disahkan oleh domain jarak jauh seperti permintaan REST lainnya. Jika domain jarak jauh telah mengaktifkan kontrol akses berbutir halus, Anda harus memiliki izin untuk melakukan reindex pada domain jarak jauh dan membaca indeks pada domain lokal. Untuk pertimbangan keamanan lebih lanjut, lihatKontrol akses berbutir halus di Layanan Amazon OpenSearch .

  • Kami sarankan Anda membuat indeks dengan pengaturan yang diinginkan pada domain lokal Anda sebelum Anda memulai proses mengindeks ulang.

  • Jika domain Anda menggunakan tipe instans T2 atau T3 untuk node data Anda, Anda tidak dapat menggunakan indeks ulang jarak jauh.

Mengindeks ulang data antara domain internet OpenSearch Layanan

Skenario paling dasar adalah indeks jarak jauh Wilayah AWS sama dengan domain lokal Anda dengan titik akhir yang dapat diakses publik dan Anda telah menandatangani kredensi IAM.

Dari domain jarak jauh, tentukan indeks jarak jauh untuk diindeks ulang dan indeks lokal untuk diindeks ulang ke:

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

Anda harus menambahkan 443 pada titik akhir domain jarak jauh untuk pemeriksaan validasi.

Untuk memverifikasi bahwa indeks disalin ke domain lokal, kirim permintaan ini ke domain lokal:

GET local_index/_search

Jika indeks jarak jauh berada di Wilayah yang berbeda dari domain lokal Anda, teruskan nama Regionalnya, seperti dalam permintaan sampel ini:

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "region": "eu-west-1" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

Dalam kasus Wilayah seperti AWS GovCloud (US) atau Wilayah China yang terisolasi, titik akhir mungkin tidak dapat diakses karena pengguna IAM Anda tidak dikenali di Wilayah tersebut.

Jika domain jarak jauh diamankan dengan otentikasi dasar, tentukan nama pengguna dan kata sandi:

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "username": "username", "password": "password" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

Mengindeks ulang data antara domain OpenSearch Layanan saat remote berada di VPC

Setiap domain OpenSearch Layanan terdiri dari infrastruktur internal virtual private cloud (VPC) sendiri. Saat Anda membuat domain baru di VPC OpenSearch Layanan yang ada, sebuah elastic network interface dibuat untuk setiap node data di VPC.

Karena operasi reindex jarak jauh dilakukan dari domain OpenSearch Layanan jarak jauh, dan oleh karena itu dalam VPC pribadinya sendiri, Anda memerlukan cara untuk mengakses VPC domain lokal. Anda dapat melakukan ini dengan menggunakan fitur koneksi titik akhir VPC bawaan untuk membuat koneksi melalui AWS PrivateLink, atau dengan mengonfigurasi proxy.

Jika domain lokal Anda menggunakan OpenSearch versi 1.0 atau yang lebih baru, Anda dapat menggunakan konsol atau AWS CLI untuk membuat AWS PrivateLink koneksi. AWS PrivateLink Koneksi memungkinkan sumber daya di VPC lokal untuk terhubung secara pribadi ke sumber daya di VPC jarak jauh dalam hal yang sama. Wilayah AWS

Anda dapat menggunakan indeks ulang jarak jauh dengan konsol untuk menyalin indeks antara dua domain yang berbagi koneksi titik akhir VPC.

  1. Arahkan ke konsol OpenSearch Layanan Amazon dihttps://console.aws.amazon.com/aos/.

  2. Di panel navigasi kiri, pilih Domain.

  3. Pilih domain lokal, atau domain yang ingin Anda salin datanya. Ini membuka halaman detail domain. Pilih tab Koneksi di bawah informasi umum dan pilih Permintaan.

  4. Pada halaman Minta koneksi, pilih Koneksi Titik Akhir VPC untuk mode koneksi Anda dan masukkan detail relevan lainnya. Detail ini termasuk domain jarak jauh, yang merupakan domain yang ingin Anda salin datanya. Kemudian, pilih Permintaan.

  5. Arahkan ke halaman detail domain jarak jauh, pilih tab Koneksi, dan temukan tabel Koneksi masuk. Pilih kotak centang di sebelah nama domain tempat Anda baru saja membuat koneksi dari (domain lokal). Pilih Menyetujui.

  6. Arahkan kembali ke domain lokal, pilih tab Koneksi, dan temukan tabel Koneksi keluar. Setelah koneksi antara dua domain aktif, titik akhir menjadi tersedia di kolom Endpoint dalam tabel. Salin titik akhir.

  7. Buka dasbor untuk domain lokal dan pilih Dev Tools di navigasi kiri. Untuk mengonfirmasi bahwa indeks domain jarak jauh belum ada di domain lokal Anda, jalankan permintaan GET berikut. Ganti remote-domain-index-namedengan nama indeks Anda sendiri.

    GET remote-domain-index-name/_search { "query":{ "match_all":{} } }

    Dalam output, Anda akan melihat kesalahan yang menunjukkan bahwa indeks tidak ditemukan.

  8. Di bawah permintaan GET Anda, buat permintaan POST dan gunakan titik akhir Anda sebagai host jarak jauh, sebagai berikut.

    POST _reindex { "source":{ "remote":{ "host":"endpoint", "username":"username", "password":"password" }, "index":"remote-domain-index-name" }, "dest":{ "index":"local-domain-index-name" } }

    Jalankan permintaan ini.

  9. Jalankan permintaan GET lagi. Output sekarang harus menunjukkan bahwa indeks lokal ada. Anda dapat melakukan kueri indeks ini untuk memverifikasi bahwa OpenSearch menyalin semua data dari indeks jarak jauh.

Anda dapat menggunakan indeks ulang jarak jauh dengan API untuk menyalin indeks antara dua domain yang berbagi koneksi titik akhir VPC.

  1. Gunakan operasi CreateOutboundConnectionAPI untuk meminta koneksi baru dari domain lokal Anda ke domain jarak jauh Anda.

    POST https://es.region.amazonaws.com/2021-01-01/opensearch/cc/outboundConnection { "ConnectionAlias": "remote-reindex-example", "ConnectionMode": "VPC_ENDPOINT", "LocalDomainInfo": { "AWSDomainInformation": { "DomainName": "local-domain-name", "OwnerId": "aws-account-id", "Region": "region" } }, "RemoteDomainInfo": { "AWSDomainInformation": { "DomainName": "remote-domain-name", "OwnerId": "aws-account-id", "Region": "region" } } }

    Anda menerima a ConnectionId dalam tanggapan. Simpan ID ini untuk digunakan pada langkah berikutnya.

  2. Gunakan operasi AcceptInboundConnectionAPI dengan ID koneksi Anda untuk menyetujui permintaan dari domain lokal.

    PUT https://es.region.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId/accept
  3. Gunakan operasi DescribeOutboundConnectionsAPI untuk mengambil titik akhir untuk domain jarak jauh Anda.

    { "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "connection-id", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint" }, ... } ] }

    Simpan titik akhir koneksi untuk digunakan pada Langkah 5.

  4. Untuk mengonfirmasi bahwa indeks domain jarak jauh belum ada di domain lokal Anda, jalankan permintaan GET berikut. Ganti remote-domain-index-namedengan nama indeks Anda sendiri.

    GET local-domain-endpoint/remote-domain-index-name/_search { "query":{ "match_all":{} } }

    Dalam output, Anda akan melihat kesalahan yang menunjukkan bahwa indeks tidak ditemukan.

  5. Buat permintaan POST dan gunakan endpoint Anda sebagai host jarak jauh, sebagai berikut.

    POST local-domain-endpoint/_reindex { "source":{ "remote":{ "host":"connection-endpoint", "username":"username", "password":"password" }, "index":"remote-domain-index-name" }, "dest":{ "index":"local-domain-index-name" } }

    Jalankan permintaan ini.

  6. Jalankan permintaan GET lagi. Output sekarang harus menunjukkan bahwa indeks lokal ada. Anda dapat melakukan kueri indeks ini untuk memverifikasi bahwa OpenSearch menyalin semua data dari indeks jarak jauh.

Jika domain jarak jauh di-host di dalam VPC dan Anda tidak ingin menggunakan fitur koneksi titik akhir VPC, Anda harus mengonfigurasi proxy dengan titik akhir yang dapat diakses publik. Dalam hal ini, OpenSearch Layanan memerlukan titik akhir publik karena tidak memiliki kemampuan untuk mengirim lalu lintas ke VPC Anda.

Saat Anda menjalankan domain dalam mode VPC, satu atau beberapa titik akhir ditempatkan di VPC Anda. Namun, titik akhir ini hanya untuk lalu lintas yang masuk ke domain dalam VPC, dan mereka tidak mengizinkan lalu lintas ke VPC itu sendiri.

Perintah reindex jarak jauh dijalankan dari domain lokal, sehingga lalu lintas yang berasal tidak dapat menggunakan titik akhir tersebut untuk mengakses domain jarak jauh. Itu sebabnya proxy diperlukan dalam kasus penggunaan ini. Domain proksi harus memiliki sertifikat yang ditandatangani oleh otoritas sertifikat publik (CA). Sertifikat yang ditandatangani sendiri atau ditandatangani CA privat tidak didukung.

Mengindeks ulang data antara domain OpenSearch non-Layanan

Jika indeks jarak jauh di-host di luar OpenSearch Layanan, seperti pada instans EC2 yang dikelola sendiri, setel external parameter ke: true

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "username": "username", "password": "password", "external": true }, "index": "remote_index" }, "dest": { "index": "local_index" } }

Dalam hal ini, hanya otentikasi dasar dengan nama pengguna dan kata sandi yang didukung. Domain jarak jauh harus memiliki titik akhir yang dapat diakses publik (meskipun berada di VPC yang sama dengan domain OpenSearch Layanan lokal) dan sertifikat yang ditandatangani oleh CA publik. Sertifikat yang ditandatangani sendiri atau ditandatangani CA pribadi tidak didukung.

Indeks ulang set data besar

Indeks ulang jarak jauh mengirimkan permintaan gulir ke domain jarak jauh dengan nilai default berikut:

  • Konteks pencarian 5 menit

  • Batas waktu soket 30 detik

  • Ukuran Batch 1.000

Kami merekomendasikan untuk menyetel parameter ini untuk mengakomodasi data Anda. Untuk dokumen besar, pertimbangkan ukuran batch yang lebih kecil dan/atau batas waktu yang lebih lama. Untuk informasi selengkapnya, lihat Pencarian Gulir.

POST _reindex?pretty=true&scroll=10h&wait_for_completion=false { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "socket_timeout": "60m" }, "size": 100, "index": "remote_index" }, "dest": { "index": "local_index" } }

Kami juga merekomendasikan menambahkan pengaturan berikut ke indeks lokal untuk performa yang lebih baik:

PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }

Setelah proses indeks ulang selesai, Anda dapat mengatur jumlah replika yang diinginkan dan menghapus pengaturan interval refresh.

Untuk mengindeks ulang hanya sebagian dokumen yang Anda pilih melalui kueri, kirim permintaan ini ke domain lokal:

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443" }, "index": "remote_index", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index" } }

Pengindeksan ulang jarak jauh tidak mendukung pemotongan, jadi Anda tidak dapat melakukan beberapa operasi gulir untuk permintaan yang sama secara paralel.

Pengaturan indeks ulang Jarak Jauh

Selain opsi pengindeksan ulang standar, OpenSearch Layanan mendukung opsi berikut:

Opsi Nilai yang valid Deskripsi Wajib
eksternal Boolean Jika domain jarak jauh bukan domain OpenSearch Layanan, atau jika Anda mengindeks ulang antara dua domain VPC, tentukan sebagai. true Tidak
wilayah String Jika domain jarak jauh berada di Wilayah yang berbeda, tentukan nama Wilayah. Tidak