Mengelola kapasitas throughput secara otomatis dengan penskalaan otomatis DynamoDB - Amazon DynamoDB

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

Mengelola kapasitas throughput secara otomatis dengan penskalaan otomatis DynamoDB

Banyak beban kerja basis data yang bersifat siklik, sementara yang lainnya sulit diprediksi sebelumnya. Sebagai salah satu contoh, perhatikan aplikasi jejaring sosial yang sebagian besar penggunanya aktif pada siang hari. Basis data harus mampu menangani aktivitas siang hari, tetapi tingkat throughput yang sama tidak diperlukan pada malam hari. Sebagai contoh lainnya, pertimbangkan aplikasi game seluler baru yang tidak disangka mengalami adopsi yang begitu cepat. Jika game menjadi terlalu populer, game tersebut bisa melampaui sumber daya basis data yang tersedia, sehingga performanya lambat dan pelanggan menjadi tidak puas. Beban kerja semacam ini kerap perlu dinaikkan atau dikurangi skala sumber daya basis datanya secara manual guna merespons berbagai tingkat penggunaan.

Penskalaan otomatis Amazon DynamoDB menggunakan layanan Application AWS Auto Scaling untuk menyesuaikan kapasitas throughput yang disediakan secara dinamis atas nama Anda, sebagai respons terhadap pola lalu lintas yang sebenarnya. Layanan ini memungkinkan tabel atau indeks sekunder global meningkatkan kapasitas baca dan tulis tersedia untuk menangani peningkatan lalu lintas yang mendadak, tanpa throttling. Ketika beban kerja berkurang, Application Auto Scaling dapat menurunkan throughput agar Anda tidak membayar kapasitas tersedia yang tidak terpakai.

catatan

Jika Anda menggunakan AWS Management Console untuk membuat tabel atau indeks sekunder global, penskalaan otomatis DynamoDB diaktifkan secara default. Anda dapat memodifikasi pengaturan penskalaan otomatis kapan saja. Untuk informasi selengkapnya, lihat Menggunakan penskalaan AWS Management Console otomatis with DynamoDB.

Saat Anda menghapus tabel atau replika tabel global, target yang dapat diskalakan, kebijakan penskalaan, atau CloudWatch alarm apa pun yang terkait tidak akan dihapus secara otomatis dengannya.

Dengan Application Auto Scaling, Anda membuat kebijakan penskalaan untuk tabel atau indeks sekunder global. Kebijakan penskalaan menentukan apakah Anda ingin menskalakan kapasitas baca atau tulis (atau keduanya), serta pengaturan unit kapasitas minimum dan maksimum yang tersedia untuk tabel atau indeks.

Kebijakan penskalaan juga berisi pemanfaatan target—persentase throughput tersedia yang dikonsumsi pada suatu titik waktu. Application Auto Scaling menggunakan algoritma pelacakan target untuk menyesuaikan throughput tersedia dari tabel (atau indeks) ke atas atau ke bawah sebagai respons atas beban kerja aktual, sehingga pemanfaatan kapasitas aktual tetap atau mendekati pemanfaatan target Anda.

Penskalaan otomatis dapat dipicu ketika dua titik data melanggar nilai pemanfaatan target yang dikonfigurasi dalam rentang satu menit. Oleh karena itu, penskalaan otomatis dapat terjadi karena kapasitas yang dikonsumsi berada di atas target pemanfaatan selama dua menit yang konsisten. Tetapi jika paku terpisah lebih dari satu menit, penskalaan otomatis mungkin tidak dipicu. Demikian pula, peristiwa penurunan skala dapat dipicu ketika 15 titik data berturut-turut lebih rendah dari pemanfaatan target. Dalam kedua kasus tersebut, setelah penskalaan otomatis dipicu, UpdateTablepanggilan dipanggil. Kemudian dapat memakan waktu beberapa menit untuk memperbarui kapasitas yang disediakan untuk tabel atau indeks. Selama periode ini, setiap permintaan yang melebihi kapasitas tabel yang disediakan sebelumnya akan dibatasi.

penting

Anda tidak dapat menyesuaikan jumlah titik data yang akan dilanggar untuk memicu alarm yang mendasarinya (meskipun nomor saat ini dapat berubah di masa mendatang).

Anda dapat menetapkan nilai pemanfaatan target penskalaan otomatis antara 20 dan 90 persen untuk kapasitas baca dan tulis Anda.

catatan

Selain tabel, penskalaan otomatis DynamoDB juga mendukung indeks sekunder global. Setiap indeks sekunder global memiliki kapasitas throughput tersedia miliknya sendiri, terpisah dari tabel dasarnya. Ketika Anda membuat kebijakan penskalaan untuk indeks sekunder global, Application Auto Scaling menyesuaikan pengaturan throughput tersedia untuk indeks guna memastikan bahwa pemanfaatan aktual tetap atau mendekati rasio pemanfaatan yang Anda inginkan.

Cara kerja penskalaan otomatis DynamoDB

catatan

Untuk memulai penggunaan penskalaan otomatis DynamoDB dengan cepat, lihat Menggunakan penskalaan AWS Management Console otomatis with DynamoDB.

Diagram berikut memberikan gambaran umum tingkat tinggi tentang bagaimana penskalaan otomatis DynamoDB mengelola kapasitas throughput untuk tabel.

Langkah-langkah berikut meringkas proses penskalaan otomatis seperti yang ditunjukkan pada diagram sebelumnya:

  1. Anda membuat kebijakan Application Auto Scaling untuk tabel DynamoDB Anda.

  2. DynamoDB menerbitkan metrik kapasitas yang dikonsumsi ke Amazon. CloudWatch

  3. Jika kapasitas konsumsi tabel melebihi pemanfaatan target Anda (atau jatuh di bawah target) untuk jangka waktu tertentu, Amazon CloudWatch memicu alarm. Anda dapat melihat alarm di konsol dan menerima pemberitahuan menggunakan Amazon Simple Notification Service (Amazon SNS).

  4. CloudWatch Alarm memanggil Application Auto Scaling untuk mengevaluasi kebijakan penskalaan Anda.

  5. Application Auto Scaling mengeluarkan permintaan UpdateTable untuk menyesuaikan throughput tersedia pada tabel Anda.

  6. DynamoDB memproses permintaan UpdateTable, secara dinamis menaikkan (atau menurunkan) kapasitas throughput tersedia pada tabel agar mendekati pemanfaatan target Anda.

Untuk memahami cara kerja penskalaan otomatis DynamoDB, misalnya Anda memiliki tabel bernama ProductCatalog. Tabel ini dimuat secara massal dengan data secara jarang, sehingga tidak mengalami aktivitas tulis yang sangat banyak. Namun, tabel tersebut memang mengalami aktivitas baca yang tinggi dan bervariasi dari waktu ke waktu. Dengan memantau CloudWatch metrik AmazonProductCatalog, Anda menentukan bahwa tabel memerlukan 1.200 unit kapasitas baca (untuk menghindari DynamoDB membatasi permintaan baca saat aktivitas mencapai puncaknya). Anda juga menentukan bahwa ProductCatalog memerlukan minimum 150 unit kapasitas baca, ketika lalu lintas baca berada pada titik terendah. Untuk informasi selengkapnya tentang mencegah throttling, lihat Masalah pelambatan untuk tabel DynamoDB menggunakan mode kapasitas yang disediakan.

Dalam kisaran 150 sampai 1.200 unit kapasitas baca, Anda memutuskan bahwa pemanfaatan target sebesar 70 persen akan sesuai untuk tabel ProductCatalog. Pemanfaatan target adalah rasio unit kapasitas yang dikonsumsi terhadap unit kapasitas yang disediakan, dinyatakan dengan persentase. Application Auto Scaling menggunakan algoritma pelacakan targetnya untuk memastikan bahwa kapasitas baca yang disediakan dari ProductCatalog disesuaikan sesuai kebutuhan sehingga pemanfaatan tetap atau mendekati 70 persen.

catatan

Penskalaan otomatis DynamoDB memodifikasi pengaturan throughput yang disediakan hanya ketika beban kerja sebenarnya tetap dinaikkan atau ditekan untuk jangka waktu berkelanjutan selama beberapa menit. Algoritma pelacakan target Application Auto Scaling berusaha menjaga pemanfaatan target ini pada atau mendekati nilai yang Anda pilih dalam jangka panjang.

Lonjakan aktivitas yang mendadak dan berdurasi singkat diakomodasi oleh kapasitas lonjakan bawaan tabel. Untuk informasi selengkapnya, lihat Kapasitas lonjakan.

Untuk mengaktifkan penskalaan otomatis DynamoDB untuk tabel ProductCatalog, Anda membuat kebijakan penskalaan. Kebijakan ini menentukan hal berikut:

  • Tabel atau indeks sekunder global yang ingin Anda kelola

  • Jenis kapasitas mana yang akan dikelola (kapasitas baca atau kapasitas tulis)

  • Batas atas dan bawah untuk pengaturan throughput yang tersedia

  • Pemanfaatan target Anda

Saat Anda membuat kebijakan penskalaan, Application Auto Scaling akan membuat sepasang alarm CloudWatch Amazon atas nama Anda. Setiap pasangan merepresentasikan batas atas dan bawah untuk pengaturan throughput tersedia Anda. CloudWatch Alarm ini dipicu ketika penggunaan tabel yang sebenarnya menyimpang dari penggunaan target Anda untuk jangka waktu yang berkelanjutan.

Ketika salah satu CloudWatch alarm dipicu, Amazon SNS mengirimi Anda pemberitahuan (jika Anda telah mengaktifkannya). CloudWatch Alarm kemudian memanggil Application Auto Scaling, yang pada gilirannya memberi tahu DynamoDB untuk menyesuaikan kapasitas yang disediakan tabel ke atas atau ke bawah ProductCatalog sebagaimana mestinya.

Selama acara penskalaan, AWS Config dibebankan per item konfigurasi yang direkam. Ketika peristiwa penskalaan terjadi, empat CloudWatch alarm dibuat untuk setiap peristiwa auto-scaling baca dan tulis: alarm:, dan ProvisionedCapacity alarm:,. ProvisionedCapacityLow ProvisionedCapacityHigh ConsumedCapacity AlarmHigh AlarmLow Ini menghasilkan total delapan alarm. Oleh karena itu, AWS Config catat delapan item konfigurasi untuk setiap peristiwa penskalaan.

catatan

Anda juga dapat menjadwalkan penskalaan DynamoDB Anda sehingga terjadi pada waktu-waktu tertentu. Pelajari langkah-langkah dasar di sini.

Catatan penggunaan

Sebelum Anda mulai menggunakan penskalaan otomatis DynamoDB, ketahui hal berikut:

  • Penskalaan otomatis DynamoDB dapat meningkatkan kapasitas baca atau kapasitas tulis sesering yang diperlukan, sesuai dengan kebijakan penskalaan otomatis Anda. Semua kuota DynamoDB tetap berlaku, seperti yang dijelaskan dalam Layanan, akun, dan tabel kuota di Amazon DynamoDB.

  • Penskalaan otomatis DynamoDB tidak mencegah Anda untuk memodifikasi sendiri pengaturan throughput yang tersedia. Penyesuaian manual ini tidak memengaruhi CloudWatch alarm yang ada yang terkait dengan penskalaan otomatis DynamoDB.

  • Jika Anda mengaktifkan penskalaan otomatis DynamoDB untuk tabel yang memiliki satu atau beberapa indeks global sekunder, kami sangat menyarankan Anda agar juga menerapkan penskalaan otomatis yang seragam untuk indeks tersebut. Hal ini akan membantu memastikan performa yang lebih baik untuk penulisan dan pembacaan tabel, serta membantu menghindari throttling. Anda dapat mengaktifkan penskalaan otomatis dengan memilih Terapkan pengaturan yang sama untuk indeks sekunder global di AWS Management Console. Untuk informasi selengkapnya, lihat Mengaktifkan penskalaan otomatis DynamoDB pada tabel yang ada.

  • Saat Anda menghapus tabel atau replika tabel global, target yang dapat diskalakan terkait, kebijakan penskalaan, atau CloudWatch alarm tidak akan dihapus secara otomatis dengannya.

  • Saat membuat GSI untuk tabel yang ada, penskalaan otomatis tidak diaktifkan untuk GSI. Anda harus mengelola kapasitas secara manual saat GSI sedang dibangun. Setelah backfill pada GSI selesai dan mencapai status aktif, penskalaan otomatis akan beroperasi seperti biasa.