Panduan Migrasi

Migrasi dari Elasticsearch ke OpenSearch

OpenSearch lahir dari fork Elasticsearch 7.10 setelah perubahan lisensi pada 2021. Memindahkan beban kerja ke OpenSearch bisa mulus bila Anda memahami kompatibilitas versi, memilih metode yang tepat, dan mengganti klien. nusabet88 mendukung keduanya.

Latar Belakang Fork

  • 2021: Elastic mengubah lisensi dari Apache 2.0 ke SSPL/Elastic License.
  • AWS mem-fork versi Apache 2.0 terakhir (Elasticsearch 7.10) menjadi OpenSearch.
  • OpenSearch 1.0 setara fungsional dengan ES 7.10, lalu berevolusi terpisah (2.x, 3.x).
  • Plugin keamanan dan banyak fitur X-Pack digantikan padanan open source di OpenSearch.
Karena akar yang sama, migrasi dari ES 7.10 ke OpenSearch 1.x relatif mudah. Semakin jauh versi ES dari 7.10, semakin banyak penyesuaian.

Kompatibilitas Versi

SumberTarget OpenSearchMetode disarankan
Elasticsearch 6.xOpenSearch 1.xReindex-from-remote / Logstash
Elasticsearch 7.0–7.9OpenSearch 1.xReindex-from-remote
Elasticsearch 7.10OpenSearch 1.xSnapshot-restore (paling mulus)
Elasticsearch 8.xOpenSearch 2.x/3.xReindex-from-remote / Logstash
Snapshot dari Elasticsearch 8.x tidak kompatibel untuk direstore ke OpenSearch. Untuk sumber 8.x gunakan reindex-from-remote atau Logstash.

Opsi Migrasi

1. Snapshot & Restore (untuk ES 7.10)

# di ES 7.10: buat snapshot ke repository S3 bersama
PUT /_snapshot/shared_s3/migrate_snap?wait_for_completion=true
{ "indices": "*", "include_global_state": false }

# di OpenSearch: daftarkan repo yang sama lalu restore
POST /_snapshot/shared_s3/migrate_snap/_restore
{ "indices": "*" }

2. Reindex-from-remote (lintas versi)

# dijalankan DI cluster OpenSearch, menarik dari ES
POST /_reindex
{
  "source": {
    "remote": { "host": "https://es-lama:9200", "username": "user", "password": "pass" },
    "index": "pages_*"
  },
  "dest": { "index": "pages_migrated" }
}

Tambahkan host ES ke reindex.remote.whitelist di opensearch.yml agar diizinkan.

3. Logstash (transformasi + besar)

# pipeline: input elasticsearch -> output opensearch
input  { elasticsearch { hosts => ["https://es-lama:9200"] index => "pages_*" } }
output { opensearch    { hosts => ["https://opensearch:9200"] index => "%{[@metadata][_index]}" } }
Logstash cocok bila Anda perlu transformasi field saat migrasi, atau ingin migrasi bertahap sambil cluster tetap menerima trafik.

Perbedaan Klien & Fitur

AspekElasticsearchOpenSearch
Klien resmielasticsearch-py / -js (8.x ketat)opensearch-py / -js
Product checkKlien 8.x menolak non-ESTidak ada penolakan
KeamananX-Pack SecurityOpenSearch Security plugin
VisualisasiKibanaOpenSearch Dashboards
LisensiSSPL / Elastic LicenseApache 2.0
Jika aplikasi memakai klien resmi Elasticsearch 8.x, ia akan menolak terhubung ke OpenSearch karena product check. Ganti ke klien OpenSearch resmi.

Checklist Kompatibilitas

  • Petakan versi sumber → target dan pilih metode yang sesuai.
  • Inventaris fitur X-Pack/komersial yang dipakai; cari padanan di OpenSearch.
  • Ganti klien aplikasi ke library OpenSearch resmi.
  • Sesuaikan API keamanan (role, user, mapping) ke OpenSearch Security.
  • Uji query DSL kritis — sebagian besar sama, tetapi cek fitur spesifik.
  • Migrasikan dashboard ke OpenSearch Dashboards.
  • Backup snapshot lengkap sebelum cutover.

Jebakan Umum

Product check klien

Klien ES 8.x menolak OpenSearch. Pakai klien OpenSearch.

Snapshot 8.x

Tidak kompatibel ke OpenSearch. Gunakan reindex-from-remote.

Fitur komersial

Beberapa fitur X-Pack tak ada padanan; rencanakan ulang.

Kesimpulan

  • OpenSearch = fork Apache 2.0 dari Elasticsearch 7.10; migrasi dari 7.10 paling mulus.
  • Pilih metode sesuai versi: snapshot-restore (7.10), reindex-from-remote, atau Logstash.
  • Wajib ganti ke klien OpenSearch resmi agar lolos product check.
  • Jalankan checklist kompatibilitas dan backup snapshot sebelum cutover.

FAQ Migrasi OpenSearch

Kenapa OpenSearch ada, padahal sudah ada Elasticsearch?

Pada 2021 Elastic mengubah lisensi Elasticsearch dari Apache 2.0 menjadi SSPL/Elastic License. AWS lalu mem-fork versi Apache 2.0 terakhir (7.10) menjadi OpenSearch agar tetap open source murni. Jadi OpenSearch 1.x berakar dari Elasticsearch 7.10, lalu berkembang sendiri.

Apakah snapshot Elasticsearch bisa di-restore ke OpenSearch?

Bisa untuk versi yang kompatibel. Snapshot dari Elasticsearch 7.10 umumnya dapat direstore ke OpenSearch 1.x karena format-nya sama. Untuk versi Elasticsearch yang lebih baru (8.x), snapshot tidak kompatibel langsung; gunakan reindex-from-remote atau Logstash.

Apakah klien Elasticsearch lama tetap berfungsi dengan OpenSearch?

Klien Elasticsearch 7.x lama sering masih bisa, tetapi klien resmi 8.x menerapkan pemeriksaan versi/product yang menolak OpenSearch. Solusinya memakai klien OpenSearch resmi (opensearch-py, opensearch-js, dll.) yang dirancang untuk endpoint OpenSearch.

Apa jebakan paling umum saat migrasi?

Tiga yang sering: (1) klien resmi ES 8.x menolak OpenSearch karena product check; (2) fitur X-Pack/komersial Elastic tidak ada padanannya di OpenSearch; (3) perbedaan nama plugin keamanan dan API security. Selalu jalankan checklist kompatibilitas sebelum cutover.

Siapkan Backup Lintas Cluster

Repository S3 bersama mempermudah migrasi via snapshot. Pelajari cara menyiapkannya.

Backup Snapshot ke S3