Mencoba menggunakan layanan AWS Elasticsearch
Saya mencoba menjelaskan langkah-langkah apa yang harus dilakukan untuk setup layanan AWS Elasticsearch. Kondisinya saya sudah mempunyai sebuah self-managed Elasticsearch cluster
. Snapshot setiap jam dari Elasticsearch cluster tersebut sudah tersimpan didalam layanan AWS S3. Jadi nantinya saya akan melakukan migrasi dari self-managed Elasticsearch cluster
ke AWS Elasticsearch Service
1: Membuat Elasticsearch domain⌗
Pertama kali kamu harus membuat sebuah Elasticsearch domain
. Domain ini adalah sebuah cluster yang nanti memiliki data nodes
dan master nodes
.
1.1: Deployment type⌗
Pertama kali kamu harus memilih Deployment type
, saya memilih Development and testing
karena untuk mencoba saja.
1.2: Version⌗
Untuk Version
saya memilih 7.8
(saat tulisan ini dibuat adalah latest
). Karena self-managed Elasticsearch cluster
saya memakai versi 6.x, sehingga ketika akan melakukan migrasi data masih bisa diterima oleh versi 7.x. Tetapi tidak akan diterima oleh versi 8.x.
1.4: Elasticsearch domain name⌗
Isi nama domain yang akan kamu buat, misalnya es-aws-1
. Kamu nantinya bisa membuat beberapa domain, jadi kalau saya lebih menyukai terdapat penomoran pada namanya.
1.5: Custom endpoint⌗
Kamu bisa menggunakan Endpoint sendiri, dengan mengetik nama host dari domain yang kamu punya. Tetapi host tersebut harus memiliki sertifikat SSL yang sudah terdaftar di Amazon Certificate Manager
. Biarkan jika akan menggunakan Endpoint yang dibuatkan oleh AWS.
1.6: Data nodes⌗
Tentukan Instance type
yang akan dipakai sebagai Data nodes
dan jumlahnya, sesuaikan dengan kebutuhan aplikasi kamu. Untuk Production
disarankan minimal 3 nodes, baca Choosing Instance Types and Testing. Saya memilih t3.small.elasticsearch
karena hanya untuk mencoba saja dan hanya membutuhkan 1
(satu) node.
1.7: Data nodes storage⌗
Pilih EBS
, tipe General Purpose (SSD)
. Untuk besarnya tempat penyimpanan bisa baca Sizing Amazon ES Domains. Saya membutuhkan hanya 10
GiB untuk mencoba saja.
1.8: Dedicated master nodes⌗
Kamu harus memiliki Dedicated master nodes untuk Production
sesuai rekomendasi yang tertera. Sedangkan saya karena sebelumnya memilih Development and testing
, maka tidak memerlukan Dedicated master nodes.
1.9: Snapshot configuration⌗
Untuk versi 5.3 dan setelahnya
akan dilakukan snapshot secara otomatis setiap jam, dan tersimpan selama 14 hari dengan maksimal 336 snapshot.
Karena memilih versi 7.8
, maka tidak terdapat opsi untuk melakukan konfigurasi. Kamu nanti bisa membuat konfigurasi snapshot secara manual langsung terhadap Elasticsearch cluster yang telah sukses dibuat, dimana S3
sebagai media penyimpanannya.
1.10: Network configuration⌗
Kamu direkomendasikan untuk memilih VPC access
, karena menambah lapisan keamanan, jadi hanya sesuatu yang berada di-VPC
yang sama seperti layanan AWSEC2, Lambda, dan lainnya
yang bisa mengakses Elasticsearch cluster ini dan .
Jika kamu memilih VPC access
, maka bisa memilih Security Groups
yang akan dipakai. Sebagai contoh didalam Security Groups kamu bisa menentukan Instances EC2
atau IP Address
mana yang diperbolehkan mengakses Elasticsearch cluster ini. Kamu dapat memilih lebih dari 1 (satu) Security Group. Buat terlebih dahulu sebuah Security Group jika belum mempunyai, dengan isian yang sudah tersedia, hanya mengisi nama dan deskripsi saja.
1.11: Fine–grained access control⌗
Kamu disarankan untuk mengaktifkan fitur ini.
Sedangkan untuk Master user
, jika kamu memilih IAM ARN
, maka hanya bisa menggunakan IAM Roles
atau IAM Users
. Dimana untuk nantinya mengakses Kibana
, kamu harus mengaktifkan fitur otentikasi dari SAML
atau Amazon Cognito
. Dengan memilih IAM ARN
, ketika akan mengakses Elasticsearch cluster ini, jika kamu menggunakan:
IAM Roles
, maka sebagai contoh hanyaInstances EC2
yang memiliki roles itu yang dapat mengakses, baca Using an IAM role to grant permissions to applications running on Amazon EC2 instances.IAM Users
, maka aplikasi yang akan mengakses harus menggunakan kredensial dari user itu, menggunakanAccess key ID
danSecret access key
yang akan dipakai untuk melakukanrequest signing
.
Jika ingin lebih mudah, kamu bisa memilih Create master user
, nantinya kamu harus memakai <username>:<password>
ketika akan mengakses Elasticsearch cluster ini dengan HTTP basic authentication
.
1.12: SAML authentication for Kibana dan Amazon Cognito authentication⌗
Saat tulisan ini dibuat saya belum mencoba kedua fitur ini. Silahkan kamu tentukan sendiri sesuaikan dengan pilihan sebelumnya mengenai master user
atau biarkan saja.
1.13: Access policy⌗
Kamu bisa menambah lapisan keamanan dengan menentukan siapa atau apa yang diperbolehkan mengakses Elasticsearch cluster ini. Jika kamu mengaktifkan Fine–grained access control
pada opsi sebelumnya, tidak disarankan untuk menggunakan IAM-based
access policy, karena akan terjadi konflik. Jadi kamu cukup menentukan IPv4 address atau CIDR block
.
Kamu bisa memilih Allow open access to the domain
terlebih dahulu, dan nanti bisa menggubah opsi Access policy
jika Elasticsearch cluster ini sudah dicoba.
1.14: Encryption⌗
Jika kamu mengaktifkan Fine–grained access control
, maka semua opsi enkripsi wajib diaktifkan. Kemudian tentukan KMS master key
yang akan digunakan, atau biarkan pilihan Default
.
1.15: Review⌗
Periksa kembali semua opsi yang telah kamu tentukan. Kemudian Confirm
jika sudah yakin.
2: Menggunakan Elasticsearch cluster / domain⌗
Pada tab Overview
, tunggu hingga Domain satus
sudah Active
sebelum mulai menggunakan.
3: Migrasi data ke Amazon Elasticsearch Service⌗
Silahkan lanjutkan membaca bagian ini pada halaman Migrasi data ke Amazon Elasticsearch Service