View a markdown version of this page

Auto-scaling jumlah replika dalam cluster Amazon Neptune DB - Amazon Neptune

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

Auto-scaling jumlah replika dalam cluster Amazon Neptune DB

Anda dapat menggunakan penskalaan otomatis Neptune untuk secara otomatis menyesuaikan jumlah replika Neptunus dalam cluster DB untuk memenuhi persyaratan konektivitas dan beban kerja Anda. Auto-scaling memungkinkan cluster Neptune DB Anda menangani peningkatan beban kerja, dan kemudian, ketika beban kerja berkurang, penskalaan otomatis menghapus replika yang tidak perlu sehingga Anda tidak membayar untuk kapasitas yang tidak digunakan.

Anda hanya dapat menggunakan penskalaan otomatis dengan cluster Neptune DB yang sudah memiliki satu instance penulis utama dan setidaknya satu instance baca-replika (lihat). Klaster dan Instans DB Amazon Neptune Juga, semua instance baca-replika di cluster harus dalam status yang tersedia. Jika replika baca ada dalam keadaan selain yang tersedia, penskalaan otomatis Neptunus tidak melakukan apa pun sampai setiap replika baca di cluster tersedia.

Lihat Buat cluster Neptunus apakah Anda perlu membuat cluster baru.

Dengan menggunakan AWS CLI, Anda menentukan dan menerapkan kebijakan pen skalaan ke cluster DB. Anda juga dapat menggunakan AWS CLI untuk mengedit atau menghapus kebijakan penskalaan otomatis. Kebijakan ini menentukan parameter penskalaan otomatis berikut:

  • Jumlah minimum dan maksimum replika yang harus dimiliki dalam cluster.

  • ScaleOutCooldownInterval antara aktivitas penskalaan penambahan replika, dan ScaleInCooldown interval antara aktivitas penskalaan penghapusan replika.

  • Met CloudWatch rik dan nilai pemicu metrik untuk meningkatkan atau menurunkan skala.

Frekuensi tindakan penskalaan otomatis Neptunus diredam dalam beberapa cara:

  • Awalnya, untuk penskalaan otomatis untuk menambah atau menghapus pembaca, alarm CPUUtilization tinggi harus dilanggar setidaknya selama 3 menit atau alarm rendah harus dilanggar setidaknya selama 15 menit.

  • Setelah penambahan atau penghapusan pertama itu, frekuensi tindakan penskalaan otomatis Neptunus berikutnya dibatasi oleh ScaleInCooldown pengaturan ScaleOutCooldown dan dalam kebijakan penskalaan otomatis.

Jika CloudWatch metrik yang Anda gunakan mencapai ambang batas tinggi yang Anda tentukan dalam kebijakan, dan jika ScaleOutCooldown interval telah berlalu sejak tindakan penskalaan otomatis terakhir, dan jika cluster DB Anda belum memiliki jumlah maksimum replika yang Anda tetapkan, penskalaan otomatis Neptune akan membuat replika baru menggunakan jenis instans yang sama dengan instans utama cluster DB.

Demikian pula, jika metrik mencapai ambang batas rendah yang Anda tentukan dan jika ScaleInCooldown interval telah berlalu sejak tindakan penskalaan otomatis terakhir, dan jika cluster DB Anda memiliki lebih dari jumlah minimum replika yang Anda tentukan, penskalaan otomatis Neptunus menghapus salah satu replika.

catatan

Penskalaan otomatis Neptunus hanya menghapus replika yang dibuatnya. Itu tidak menghapus replika yang sudah ada sebelumnya.

catatan

Read-replica penskalaan otomatis menghapus pembaca melalui API Neptune, sehingga perlindungan penghapusan cluster tidak mencegah aktivitas scale-in menghapus replika baca. Perlindungan penghapusan memblokir penghapusan cluster DB itu sendiri, bukan penghapusan replika baca individu. Kebijakan penskalaan menentukan jumlah minimum pembaca yang dipertahankan penskalaan otomatis. min-capacity Untuk informasi selengkapnya tentang perlindungan penghapusan, lihat Bagaimana perlindungan penghapusan memengaruhi penghapusan instans DB.

Menggunakan parameter cluster neptune_autoscaling_config DB, Anda juga dapat menentukan jenis instance replika baca baru yang dibuat oleh penskalaan otomatis Neptunus, jendela pemeliharaan untuk replika baca tersebut, dan tag yang akan dikaitkan dengan masing-masing replika baca baru. Anda memberikan pengaturan konfigurasi ini dalam string JSON sebagai nilai neptune_autoscaling_config parameter, seperti ini:

"{ \"tags\": [ { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" }, { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" }, ], \"maintenanceWindow\" : \"wed:12:03-wed:12:33\", \"dbInstanceClass\" : \"db.r5.xlarge\" }"

Perhatikan bahwa tanda kutip dalam string JSON semuanya harus dilepaskan dengan karakter garis miring terbalik ()\. Semua spasi dalam string adalah opsional, seperti biasa.

Salah satu dari tiga pengaturan konfigurasi yang tidak ditentukan dalam neptune_autoscaling_config parameter disalin dari konfigurasi instance penulis utama cluster DB.

Saat penskalaan otomatis menambahkan instance baca-replika baru, itu mengawali ID instance DB dengan autoscaled-reader (misalnya,). autoscaled-reader-7r7t7z3lbd-20210828 Ini juga menambahkan tag ke setiap replika baca yang dibuatnya dengan kunci autoscaled-reader dan nilai. TRUE Anda dapat melihat tag ini pada tab Tag dari halaman detail instance DB di Konsol Manajemen AWS.

"key" : "autoscaled-reader", "value" : "TRUE"

Tingkat promosi dari semua instans baca-replika yang dibuat dengan penskalaan otomatis adalah prioritas terendah, yaitu 15 secara default. Ini berarti bahwa selama failover, setiap replika prioritas yang lebih tinggi, seperti yang dibuat secara manual, akan dipromosikan terlebih dahulu. Lihat Toleransi kesalahan untuk cluster DB Neptunus.

Penskalaan otomatis Neptunus diimplementasikan menggunakan Application Auto Scaling dengan kebijakan penskalaan pelacakan target yang menggunakan CPUUtilization CloudWatch metrik Neptunus sebagai metrik yang telah ditentukan sebelumnya.

Menggunakan penskalaan otomatis di cluster DB tanpa server Neptune

Neptune Serverless merespons jauh lebih cepat daripada penskalaan otomatis Neptunus ketika permintaan melebihi kapasitas instans, dan meningkatkan skala instans alih-alih menambahkan instance lain. Di mana penskalaan otomatis dirancang untuk mencocokkan peningkatan atau penurunan beban kerja yang relatif stabil, serverless unggul dalam menangani lonjakan cepat dan jitter dalam permintaan.

Memahami kekuatan mereka, Anda dapat menggabungkan penskalaan otomatis dan tanpa server untuk menciptakan infrastruktur fleksibel yang akan menangani perubahan beban kerja Anda secara efisien dan memenuhi permintaan sambil meminimalkan biaya.

Untuk memungkinkan penskalaan otomatis bekerja secara efektif bersama dengan serverless, penting untuk mengonfigurasi maxNCU pengaturan cluster tanpa server Anda cukup tinggi untuk mengakomodasi lonjakan dan perubahan singkat dalam permintaan. Jika tidak, perubahan sementara tidak memicu penskalaan tanpa server, yang dapat menyebabkan penskalaan otomatis memicu banyak instans tambahan yang tidak perlu. Jika maxNCU diatur cukup tinggi, penskalaan tanpa server dapat menangani perubahan tersebut lebih cepat dan lebih murah.

Cara mengaktifkan penskalaan otomatis untuk Amazon Neptunus

Auto-scaling hanya dapat diaktifkan untuk cluster Neptune DB menggunakan AWS CLI. Anda tidak dapat mengaktifkan penskalaan otomatis menggunakan. Konsol Manajemen AWS

Selain itu, penskalaan otomatis tidak didukung di wilayah Amazon berikut:

  • Afrika (Cape Town): af-south-1

  • Timur Tengah (UEA): me-central-1

  • AWS GovCloud (US-East): us-gov-east-1

  • AWS GovCloud (US-West): us-gov-west-1

Mengaktifkan penskalaan otomatis untuk cluster Neptune DB melibatkan tiga langkah:

1. Daftarkan cluster DB Anda dengan Application Auto Scaling

Langkah pertama dalam mengaktifkan penskalaan otomatis untuk cluster Neptune DB adalah mendaftarkan cluster dengan Application Auto Scaling, menggunakan AWS CLI atau salah satu SDK Penskalaan Otomatis Aplikasi. Cluster harus sudah memiliki satu instance utama dan setidaknya satu instance read-replica:

Misalnya, untuk mendaftarkan cluster yang akan diskalakan otomatis dengan dari satu hingga delapan replika tambahan, Anda dapat menggunakan AWS CLI register-scalable-target perintah sebagai berikut:

aws application-autoscaling register-scalable-target \ --service-namespace neptune \ --resource-id cluster:(your DB cluster name) \ --scalable-dimension neptune:cluster:ReadReplicaCount \ --min-capacity 1 \ --max-capacity 8

Ini setara dengan menggunakan operasi Appl RegisterScalableTarget ication Auto Scaling API.

Per AWS CLI register-scalable-target intah mengambil parameter berikut:

  • service-namespace – Atur ke neptune.

    Parameter ini setara dengan ServiceNamespace parameter di Application Auto Scaling API.

  • resource-id— Atur ini ke pengidentifikasi sumber daya untuk cluster Neptune DB Anda. Jenis sumber daya adalahcluster, yang diikuti oleh titik dua (:''), dan kemudian nama cluster DB Anda.

    Parameter ini setara dengan ResourceID parameter di Application Auto Scaling API.

  • scalable-dimension- Dimensi yang dapat diskalakan dalam hal ini adalah jumlah instance replika di cluster DB, jadi Anda mengatur parameter ini keneptune:cluster:ReadReplicaCount.

    Parameter ini setara dengan ScalableDimension parameter di Application Auto Scaling API.

  • min-capacity- Jumlah minimum instance replika DB pembaca yang akan dikelola oleh Application Auto Scaling. Nilai ini harus diatur dalam kisaran dari 0 hingga 15, dan harus sama dengan atau kurang dari nilai yang ditentukan untuk jumlah maksimum Replika Neptunus dimax-capacity. Harus ada setidaknya satu pembaca di cluster DB agar penskalaan otomatis berfungsi.

    Parameter ini setara dengan MinCapacity parameter di Application Auto Scaling API.

  • max-capacityJumlah maksimum instance replika DB pembaca di cluster DB, termasuk instans yang sudah ada sebelumnya dan instans baru yang dikelola oleh Application Auto Scaling. Nilai ini harus diatur dalam kisaran dari 0 hingga 15, dan harus sama dengan atau lebih besar dari nilai yang ditentukan untuk jumlah minimum Replika Neptunus dimin-capacity.

    max-capacity AWS CLI Parameter ini setara dengan MaxCapacity parameter di Application Auto Scaling API.

Saat Anda mendaftarkan cluster DB Anda, Application Auto Scaling membuat AWSServiceRoleForApplicationAutoScaling_NeptuneCluster peran terkait layanan. Untuk informasi selengkapnya, lihat Service-linked peran untuk penskalaan otomatis aplikasi di Panduan Pengguna Penskalaan Otomatis Aplikasi.

2. Tentukan kebijakan penskalaan otomatis untuk digunakan dengan cluster DB Anda

Kebijakan penskalaan pelacakan target didefinisikan sebagai objek teks JSON yang juga dapat disimpan dalam file teks. Untuk Neptunus kebijakan ini saat ini hanya dapat menggunakan CPUUtilization CloudWatch metrik Neptunus sebagai metrik yang telah ditentukan sebelumnya bernamaNeptuneReaderAverageCPUUtilization.

Berikut adalah contoh kebijakan konfigurasi penskalaan pelacakan target untuk Neptunus:

{ "PredefinedMetricSpecification": { "PredefinedMetricType": "NeptuneReaderAverageCPUUtilization" }, "TargetValue": 60.0, "ScaleOutCooldown" : 600, "ScaleInCooldown" : 600 }

TargetValueElemen di sini berisi persentase pemanfaatan CPU di atasnya pen skalaan otomatis (yaitu, menambahkan lebih banyak replika) dan di bawahnya skala (yaitu, menghapus replika). Dalam hal ini, persentase target yang memicu penskalaan adalah60.0%.

ScaleInCooldownElemen menentukan jumlah waktu, dalam detik, setelah aktivitas penskalaan selesai sebelum penskalaan lain dapat dimulai. Waktu default adalah 300 detik. Di sini, nilai 600 menentukan bahwa setidaknya sepuluh menit harus berlalu antara penyelesaian satu penghapusan replika dan dimulainya penghapusan yang lain.

ScaleOutCooldownElemen menentukan jumlah waktu, dalam detik, setelah aktivitas scale-out selesai sebelum scale-out lainnya dapat dimulai. Waktu default adalah 300 detik. Di sini, nilai 600 menentukan bahwa setidaknya sepuluh menit harus berlalu antara penyelesaian satu penambahan replika dan dimulainya yang lain.

DisableScaleInElemen ini adalah Boolean yang jika ada dan true disetel untuk menonaktifkan skala-in sepenuhnya, yang berarti bahwa penskalaan otomatis dapat menambahkan replika tetapi tidak akan pernah menghapusnya. Secara default, scale-in diaktifkan, dan DisableScaleIn masih ada. false

Setelah mendaftarkan cluster Neptune DB Anda dengan Application Auto Scaling dan menentukan kebijakan penskalaan JSON dalam file teks, selanjutnya terapkan kebijakan penskalaan ke cluster DB terdaftar. Anda dapat menggunakan AWS CLI put-scaling-policy perintah untuk melakukan ini, dengan parameter seperti berikut:

aws application-autoscaling put-scaling-policy \ --policy-name (name of the scaling policy) \ --policy-type TargetTrackingScaling \ --resource-id cluster:(name of your Neptune DB cluster) \ --service-namespace neptune \ --scalable-dimension neptune:cluster:ReadReplicaCount \ --target-tracking-scaling-policy-configuration file://(path to the JSON configuration file)

Bila Anda telah menerapkan kebijakan penskalaan otomatis, penskalaan otomatis diaktifkan pada cluster DB Anda.

Anda juga dapat menggunakan AWS CLI put-scaling-policy perintah untuk memperbarui kebijakan penskalaan otomatis yang ada.

Lihat juga PutScalingPolicy di Referensi API Penskalaan Otomatis Aplikasi.

Menghapus penskalaan otomatis dari cluster Neptune DB

Untuk menghapus penskalaan otomatis dari cluster Neptune DB, gunakan perintah AWS CLI delete-scaling-policy dan deregister-scalable-target. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html