Penskalaan otomatis jumlah replika di cluster DB Amazon Neptunus - Amazon Neptune

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

Penskalaan otomatis jumlah replika di cluster DB Amazon Neptunus

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

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

Lihat Membuat klaster DB apakah Anda perlu membuat cluster baru.

Dengan menggunakan AWS CLI, Anda menentukan dan menerapkan kebijakan penskalaan ke cluster DB. Anda juga dapat menggunakan AWS CLI untuk mengedit atau menghapus kebijakan auto-scaling Anda. Kebijakan menentukan parameter auto-scaling berikut:

  • Jumlah minimum dan maksimum replika yang ada di cluster.

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

  • CloudWatch Metrik dan nilai pemicu metrik untuk penskalaan naik atau turun.

Frekuensi tindakan auto-scaling Neptunus diredam dalam beberapa cara:

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

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

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

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

catatan

Neptunus auto-scaling hanya menghapus replika yang dibuatnya. Itu tidak menghapus replika yang sudah ada sebelumnya.

Dengan menggunakan parameter cluster neptune_autoscaling_config DB, Anda juga dapat menentukan jenis instance replika baca baru yang dibuat oleh auto-scaling 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 semua harus lolos 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.

Ketika auto-scaling menambahkan instance read-replica baru, itu akan mengawali ID instans DB dengan (misalnya,). autoscaled-reader 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 pada halaman detail instans DB di AWS Management Console.

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

Tingkat promosi dari semua instance read-replica yang dibuat oleh auto-scaling adalah prioritas terendah, yang secara default. 15 Ini berarti bahwa selama failover, replika apa pun dengan prioritas yang lebih tinggi, seperti yang dibuat secara manual, akan dipromosikan terlebih dahulu. Lihat Toleransi Kesalahan untuk Klaster DB DB Neptune.

Neptune auto-scaling diimplementasikan menggunakan Application Auto Scaling dengan kebijakan penskalaan pelacakan target yang menggunakan metrik Neptunus sebagai metrik yang telah ditentukan sebelumnya. CPUUtilization CloudWatch

Menggunakan auto-scaling di cluster DB tanpa server Neptunus

Neptune Serverless merespons jauh lebih cepat daripada auto-scaling Neptunus ketika permintaan melebihi kapasitas instans, dan meningkatkan skala instance alih-alih menambahkan instance lain. Jika auto-scaling dirancang agar sesuai dengan kenaikan atau penurunan beban kerja yang relatif stabil, tanpa server unggul dalam menangani lonjakan cepat dan kegelisahan dalam permintaan.

Memahami kekuatan mereka, Anda dapat menggabungkan auto-scaling dan serverless untuk menciptakan infrastruktur fleksibel yang akan menangani perubahan beban kerja Anda secara efisien dan memenuhi permintaan sambil meminimalkan biaya.

Agar auto-scaling bekerja secara efektif bersama tanpa server, penting untuk mengonfigurasi pengaturan klaster maxNCU tanpa server Anda yang cukup tinggi untuk mengakomodasi lonjakan dan perubahan permintaan singkat. Jika tidak, perubahan transien tidak memicu penskalaan tanpa server, yang dapat menyebabkan auto-scaling memutar banyak instance tambahan yang tidak perlu. Jika maxNCU disetel cukup tinggi, penskalaan tanpa server dapat menangani perubahan tersebut lebih cepat dan lebih murah.

Cara mengaktifkan auto-scaling untuk Amazon Neptunus

Penskalaan otomatis hanya dapat diaktifkan untuk cluster DB Neptunus menggunakan file. AWS CLI Anda tidak dapat mengaktifkan auto-scaling menggunakan file. AWS Management Console

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

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

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

  • AWS GovCloud (AS-Timur): us-gov-east-1

  • AWS GovCloud (AS-Barat): us-gov-west-1

Mengaktifkan auto-scaling untuk cluster DB Neptunus melibatkan tiga langkah:

1. Daftarkan cluster DB Anda dengan Application Auto Scaling

Langkah pertama dalam mengaktifkan auto-scaling untuk cluster DB Neptune adalah mendaftarkan cluster dengan Application Auto Scaling, menggunakan atau AWS CLI salah satu SDK Application Auto Scaling. 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-targetperintah 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 RegisterScalableTargetApplication Auto Scaling API.

AWS CLI register-scalable-targetPerintah mengambil parameter berikut:

  • service-namespace – Atur ke neptune.

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

  • resource-id— Setel ini ke pengidentifikasi sumber daya untuk cluster DB Neptunus 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 ke. neptune: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 di. max-capacity Harus ada setidaknya satu pembaca di cluster DB agar auto-scaling berfungsi.

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

  • max-capacity— Jumlah maksimum instans 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 di. min-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 peran terkait AWSServiceRoleForApplicationAutoScaling_NeptuneCluster layanan. Untuk informasi selengkapnya, lihat Peran terkait layanan untuk auto-scaling Aplikasi di Panduan Pengguna Application Auto Scaling.

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 metrik CPUUtilization CloudWatch Neptunus sebagai metrik yang telah ditentukan sebelumnya. NeptuneReaderAverageCPUUtilization

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 atas yang skala auto-scaling keluar (yaitu, menambahkan lebih banyak replika) dan di bawahnya diskalakan (yaitu, menghapus replika). Dalam hal ini, persentase target yang memicu penskalaan adalah%. 60.0

ScaleInCooldownElemen menentukan jumlah waktu, dalam detik, setelah aktivitas scale-in selesai sebelum scale-in 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 awal 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 awal yang lain.

DisableScaleInElemennya adalah Boolean yang jika ada dan disetel untuk true menonaktifkan scale-in sepenuhnya, yang berarti bahwa auto-scaling dapat menambahkan replika tetapi tidak akan pernah menghapusnya. Secara default, scale-in diaktifkan, dan DisableScaleIn sedang. false

Setelah mendaftarkan cluster DB Neptune 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-policyperintah 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 auto-scaling, auto-scaling diaktifkan pada cluster DB Anda.

Anda juga dapat menggunakan AWS CLI put-scaling-policyperintah untuk memperbarui kebijakan auto-scaling yang ada.

Lihat juga PutScalingKebijakan di Referensi API Application Auto Scaling.

Menghapus auto-scaling dari cluster DB Neptunus

Untuk menghapus auto-scaling dari cluster DB Neptunus, gunakan perintah delete-scaling-policy dan deregister-scalable-target. AWS CLI