Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara kerja tabel global DynamoDB
Bagian berikut menjelaskan konsep dan perilaku tabel global di Amazon DynamoDB.
Konsep
Tabel global adalah fitur DynamoDB yang mereplikasi data tabel di seluruh Wilayah. AWS
Tabel replika (atau replika) adalah tabel DynamoDB yang berfungsi sebagai bagian dari tabel global. Tabel global terdiri dari dua atau lebih tabel replika di berbagai AWS Wilayah. Setiap tabel global hanya dapat memiliki satu replika per AWS Wilayah. Semua replika dalam tabel global berbagi nama tabel, skema kunci primer, dan data item yang sama.
Saat aplikasi menulis data ke replika di satu Wilayah, DynamoDB secara otomatis mereplikasi penulisan ke semua replika lain dalam tabel global. Untuk informasi selengkapnya tentang cara mulai menggunakan tabel global, lihat Tutorial: Membuat tabel global.
Versi
Ada dua versi tabel global DynamoDB yang tersedia: Versi 2019.11.21 (Saat Ini) dan Versi 2017.11.29 (Legacy). Anda harus menggunakan Versi 2019.11.21 (Saat ini) bila memungkinkan. Informasi di bagian dokumentasi ini adalah untuk Versi 2019.11.21 (Saat ini). Untuk informasi selengkapnya, lihat Menentukan versi tabel global.
Ketersediaan
Tabel global membantu meningkatkan kelangsungan bisnis Anda dengan membuatnya lebih mudah untuk menerapkan arsitektur ketersediaan tinggi Multi-wilayah. Jika beban kerja di satu AWS Wilayah menjadi terganggu, Anda dapat mengalihkan lalu lintas aplikasi ke Wilayah yang berbeda dan melakukan pembacaan dan penulisan ke tabel replika yang berbeda dalam tabel global yang sama.
Setiap tabel replika dalam tabel global memberikan daya tahan dan ketersediaan yang sama dengan tabel DynamoDB wilayah Tunggal. Tabel global menawarkan 99,999% ketersediaan Service Level Agreement (SLA)
Mode konsistensi
Saat Anda membuat tabel global, Anda dapat mengonfigurasi mode konsistensinya. Tabel global mendukung dua mode konsistensi: Multi-region end consistency (MREC), dan Multi-region strong consistency (MRSC).
Jika Anda tidak menentukan mode konsistensi saat membuat tabel global, tabel global default ke Multi-region eventual consistency (MREC). Tabel global tidak dapat berisi replika yang dikonfigurasi dengan mode konsistensi yang berbeda. Anda tidak dapat mengubah mode konsistensi tabel global setelah pembuatan.
Konsistensi akhir Multi-Region (MREC)
Konsistensi akhir Multi-Region (MREC) adalah mode konsistensi default untuk tabel global. Perubahan item dalam replika tabel global MREC direplikasi secara asinkron ke semua replika lainnya, biasanya dalam satu detik atau kurang. Jika replika dalam tabel global MREC menjadi terisolasi atau terganggu, data apa pun yang belum direplikasi ke Wilayah lain akan direplikasi ketika replika menjadi sehat.
Jika item yang sama dimodifikasi di beberapa Wilayah secara bersamaan, DynamoDB akan menyelesaikan konflik dengan menggunakan modifikasi dengan stempel waktu internal terbaru berdasarkan per item, yang disebut sebagai metode resolusi konflik “penulis terakhir menang”. Item pada akhirnya akan bertemu di semua replika ke versi yang dibuat oleh penulisan terakhir.
Operasi baca yang sangat konsisten mengembalikan versi terbaru item jika item tersebut terakhir diperbarui di Wilayah tempat pembacaan terjadi, tetapi dapat mengembalikan data basi jika item terakhir diperbarui di Wilayah lain. Penulisan bersyarat mengevaluasi ekspresi kondisi terhadap versi item di Wilayah.
Anda membuat tabel global MREC dengan menambahkan replika ke tabel DynamoDB yang ada. Menambahkan replika tidak berdampak kinerja pada tabel DynamoDB wilayah Tunggal atau replika tabel global yang ada. Anda dapat menambahkan replika ke tabel global MREC untuk memperluas jumlah Wilayah tempat data direplikasi, atau menghapus replika dari tabel global MREC jika tidak diperlukan lagi. Tabel global MREC dapat memiliki replika di Wilayah mana pun di mana DynamoDB tersedia, dan dapat memiliki replika sebanyak yang ada Wilayah di partisi.AWS
Konsistensi kuat Multi-Region (MRSC)
Anda dapat mengonfigurasi mode Multi-region strong consistency (MRSC) saat Anda membuat tabel global. Perubahan item dalam replika tabel global MRSC direplikasi secara sinkron ke setidaknya satu Wilayah lain sebelum operasi penulisan mengembalikan respons yang berhasil. Saat mengonversi tabel Single-region yang ada ke tabel global MRSC, Anda harus memastikan bahwa tabel kosong hingga konversi selesai untuk memastikan penyiapan inisialisasi dan replikasi yang tepat.
Operasi baca yang sangat konsisten pada replika MRSC apa pun selalu mengembalikan versi terbaru dari suatu item. Penulisan bersyarat selalu mengevaluasi ekspresi kondisi terhadap versi terbaru dari suatu item.
Operasi tulis gagal dengan ReplicatedWriteConflictException
ketika mencoba memodifikasi item yang sudah dimodifikasi di Wilayah lain. Menulis yang gagal dengan ReplicatedWriteConflictException
dapat dicoba lagi, dan akan berhasil jika item tersebut tidak lagi dimodifikasi di Wilayah lain.
Anda dapat mengonfigurasi tabel global MRSC dengan tiga replika, atau dengan dua replika dan satu saksi. Saksi adalah komponen dari tabel global MRSC yang berisi data yang ditulis ke replika tabel global, dan memberikan alternatif opsional untuk replika lengkap sambil mendukung arsitektur ketersediaan MRSC. Anda tidak dapat melakukan operasi membaca atau menulis pada saksi. Seorang saksi berada di Wilayah yang berbeda dari dua replika.
Saat membuat tabel global MRSC, Anda memilih Wilayah untuk replika dan penyebaran saksi pada waktu pembuatan tabel MRSC. Anda dapat menentukan apakah dan di Wilayah mana tabel global MRSC memiliki saksi yang dikonfigurasi dari output DescribeTable
API. Saksi dimiliki dan dikelola oleh DynamoDB, dan saksi tidak akan muncul di akun AWS Anda di Wilayah tempat ia dikonfigurasi.
Tabel global MRSC harus ditempatkan tepat di tiga Wilayah. Anda membuat tabel global MRSC dengan menambahkan satu replika dan saksi atau dua replika ke tabel DynamoDB yang ada yang tidak berisi data. Anda tidak dapat menambahkan replika tambahan ke tabel global MRSC yang ada. Anda tidak dapat menghapus satu replika atau saksi dari tabel global MRSC. Anda dapat menghapus dua replika atau menghapus satu replika dan saksi dari tabel global MRSC, mengubah replika yang tersisa menjadi tabel DynamoDB wilayah tunggal.
Pertimbangan berikut berlaku untuk tabel global MRSC:
-
Saat mengonversi tabel Single-region ke tabel global MRSC, Anda harus memastikan bahwa tabel tersebut kosong. Mengonversi tabel wilayah Tunggal ke tabel global MRSC dengan item yang ada tidak didukung. Pastikan tidak ada data yang ditulis ke dalam tabel selama proses konversi.
-
Tabel global MRSC tersedia dalam set Wilayah berikut:
-
Set Wilayah AS: AS Timur (Virginia N.), AS Timur (Ohio), AS Barat (Oregon)
-
Set Wilayah UE: Eropa (Irlandia), Eropa (London), Eropa (Paris), Eropa (Frankfurt)
-
Set Wilayah AP: Asia Pasifik (Tokyo), Asia Pasifik (Seoul), dan Asia Pasifik (Osaka).
-
-
Tabel global MRSC tidak dapat menjangkau set Wilayah (misalnya tabel global MRSC tidak dapat berisi replika dari set Wilayah AS dan UE).
-
Time to Live (TTL) tidak didukung untuk tabel global MRSC.
-
Indeks sekunder lokal (LSIs) tidak didukung untuk tabel global MRSC.
-
CloudWatch Informasi Wawasan Kontributor hanya dilaporkan untuk Wilayah tempat operasi terjadi.
Memilih mode konsistensi
Kriteria utama untuk memilih mode konsistensi Multi-region adalah apakah aplikasi Anda memprioritaskan penulisan latensi yang lebih rendah dan pembacaan yang sangat konsisten, atau memprioritaskan konsistensi global yang kuat.
Tabel global MREC akan memiliki latensi tulis yang lebih rendah dan latensi baca yang sangat konsisten dibandingkan dengan tabel global MRSC. Tabel global MREC dapat mendukung Recovery Point Objective (RPO) sama dengan penundaan replikasi antara replika, biasanya beberapa detik tergantung pada Regions replika.
Anda harus menggunakan mode MREC ketika:
-
Aplikasi Anda dapat mentolerir data basi yang dikembalikan dari operasi pembacaan yang sangat konsisten jika data tersebut diperbarui di Wilayah lain.
-
Anda memprioritaskan penulisan yang lebih rendah dan latensi baca yang sangat konsisten daripada konsistensi baca Multi-wilayah.
-
Strategi ketersediaan tinggi Multi-wilayah Anda dapat mentolerir RPO yang lebih besar dari nol.
Tabel global MRSC akan memiliki latensi baca tulis yang lebih tinggi dan sangat konsisten dibandingkan dengan tabel global MREC. Tabel global MRSC mendukung Recovery Point Objective (RPO) nol.
Anda harus menggunakan mode MRSC ketika:
-
Anda membutuhkan pembacaan yang sangat konsisten di beberapa Wilayah.
-
Anda memprioritaskan konsistensi baca global daripada latensi tulis yang lebih rendah.
-
Strategi ketersediaan tinggi Multi-wilayah Anda membutuhkan RPO nol.
Memantau tabel global
Tabel global yang dikonfigurasi untuk konsistensi akhir Multi-wilayah (MREC) mempublikasikan metrik ke. ReplicationLatency CloudWatch Metrik ini melacak waktu yang telah berlalu antara saat item ditulis ke tabel replika, dan kapan item itu muncul di replika lain di tabel global. ReplicationLatency
dinyatakan dalam milidetik dan dipancarkan untuk setiap pasangan Wilayah sumber dan tujuan dalam tabel global.
ReplicationLatency
Nilai tipikal tergantung pada jarak antara AWS Wilayah yang Anda pilih, serta variabel lain seperti jenis beban kerja dan throughput. Misalnya, replika sumber di Wilayah AS Barat (California Utara) (us-west-1) memiliki lebih rendah ReplicationLatency
ke Wilayah Barat AS (Oregon) (us-west-2) dibandingkan dengan Wilayah Afrika (Cape Town) (af-south-1).
Nilai yang meningkat untuk ReplicationLatency
dapat menunjukkan bahwa pembaruan dari satu replika tidak menyebar ke tabel replika lain secara tepat waktu. Dalam hal ini, Anda dapat mengalihkan sementara aktivitas baca dan tulis aplikasi Anda ke AWS Wilayah yang berbeda.
Tabel global yang dikonfigurasi untuk konsistensi kuat Multi-wilayah (MRSC) tidak mempublikasikan metrik. ReplicationLatency
Pengujian injeksi kesalahan
Tabel global MREC terintegrasi dengan AWSAWS Fault Injection Service (FIS) untuk melakukan eksperimen injeksi kesalahan pada beban kerja meja global Anda. Ini memungkinkan Anda untuk menguji respons aplikasi Anda terhadap isolasi Region simulasi dengan menjeda replikasi ke dan dari replika yang dipilih. Untuk informasi selengkapnya, lihat menjeda replikasi tabel global.
Waktu Untuk Tayang (TTL)
Tabel global yang dikonfigurasi untuk dukungan MREC mengonfigurasi penghapusan Time To Live (TTL). Pengaturan TTL secara otomatis disinkronkan untuk semua replika dalam tabel global. Ketika TTL menghapus item dari replika di Wilayah, penghapusan direplikasi ke semua replika lain di tabel global. TTL tidak menggunakan kapasitas tulis, jadi Anda tidak dikenakan biaya untuk penghapusan TTL di Wilayah tempat penghapusan terjadi. Namun, Anda dikenakan biaya untuk penghapusan yang direplikasi di setiap wilayah lain dengan replika di tabel global.
Replikasi penghapusan TTL mengkonsumsi kapasitas tulis pada replika tempat penghapusan direplikasi. Replika yang dikonfigurasi untuk kapasitas yang disediakan dapat membatasi permintaan jika kombinasi throughput tulis dan throughput penghapusan TTL lebih tinggi daripada kapasitas tulis yang disediakan.
Tabel global yang dikonfigurasi untuk konsistensi kuat Multi-wilayah (MRSC) tidak mendukung konfigurasi penghapusan Time To Live (TTL).
Pengaliran
Tabel global yang dikonfigurasi untuk konsistensi akhir Multi-wilayah (MREC) mereplikasi perubahan dengan membaca perubahan tersebut dari DynamoDB Stream pada tabel replika dan menerapkan perubahan itu ke semua tabel replika lainnya. Oleh karena itu, aliran diaktifkan secara default pada semua replika dalam tabel global MREC, dan tidak dapat dinonaktifkan pada replika tersebut. Proses replikasi MREC dapat menggabungkan beberapa perubahan dalam waktu singkat menjadi satu penulisan yang direplikasi, sehingga setiap Stream replika berisi catatan yang sedikit berbeda. Catatan aliran pada replika MREC selalu diurutkan berdasarkan per item, tetapi urutan antar item mungkin berbeda antar replika.
Tabel global yang dikonfigurasi untuk Multi-region strong consistency (MRSC) tidak menggunakan DynamoDB Streams untuk replikasi, sehingga Streams tidak diaktifkan secara default pada replika MRSC. Anda dapat mengaktifkan Streams pada replika MRSC. Catatan aliran pada replika MRSC identik untuk setiap replika, termasuk urutan rekaman Stream.
Jika Anda ingin menulis aplikasi yang memproses catatan Streams untuk perubahan yang terjadi di Wilayah tertentu tetapi tidak Wilayah lain dalam tabel global, Anda dapat menambahkan atribut ke setiap item yang menentukan di Wilayah mana perubahan untuk item tersebut terjadi. Anda dapat menggunakan atribut ini untuk memfilter catatan Streams untuk perubahan yang terjadi di Wilayah lain, termasuk penggunaan filter peristiwa Lambda untuk hanya memanggil fungsi Lambda untuk perubahan di Wilayah tertentu.
Transaksi
Pada tabel global yang dikonfigurasi untuk MREC, operasi transaksi DynamoDB (TransactWriteItems
dan TransactGetItems
) hanya atom dalam Wilayah tempat operasi dipanggil. Penulisan transaksional tidak direplikasi sebagai unit di seluruh Wilayah, yang berarti hanya beberapa penulisan dalam transaksi yang dapat dikembalikan oleh operasi baca di replika lain pada titik waktu tertentu.
Misalnya, jika Anda memiliki tabel global dengan replika di Wilayah AS Timur (Ohio) dan AS Barat (Oregon) dan melakukan TransactWriteItems
operasi di Wilayah AS Timur (Ohio), Anda dapat mengamati transaksi yang diselesaikan sebagian di Wilayah Barat AS (Oregon) saat perubahan direplikasi. Perubahan hanya akan direplikasi ke Wilayah lain setelah dilakukan di Wilayah sumber.
Tabel global yang dikonfigurasi untuk konsistensi kuat Multi-wilayah (MRSC) tidak mendukung operasi transaksi, dan akan mengembalikan kesalahan jika operasi tersebut dipanggil pada replika MRSC.
Throughput baca dan tulis
Replikasi mengkonsumsi kapasitas tulis. Replika yang dikonfigurasi untuk kapasitas yang disediakan dapat membatasi permintaan jika kombinasi throughput tulis dan throughput replikasi lebih tinggi daripada kapasitas tulis yang disediakan. Kapasitas tulis dalam mode sesuai permintaan disinkronkan untuk semua replika dalam tabel global. Tabel global yang dikonfigurasi untuk kapasitas yang disediakan menyinkronkan pengaturan penskalaan otomatis antar replika. Pengaturan kapasitas tulis yang disediakan sebenarnya dapat bervariasi antar replika sesuai dengan throughput penulisan yang dikonsumsi.
Anda dapat secara independen mengonfigurasi pengaturan kapasitas baca untuk setiap replika dalam tabel global. Saat menambahkan replika ke tabel global, kapasitas baca tabel sumber atau replika digunakan sebagai nilai awal kecuali nilai override ditentukan.
Pengaturan sinkronisasi
Pengaturan dalam tabel global DynamoDB adalah parameter konfigurasi yang mengontrol berbagai aspek perilaku tabel dan replikasi. Pengaturan ini dikelola melalui APIs bidang kontrol DynamoDB dan dapat dikonfigurasi saat membuat atau memodifikasi tabel global. Tabel global secara otomatis menyinkronkan pengaturan tertentu di semua replika untuk menjaga konsistensi, sekaligus memungkinkan fleksibilitas untuk pengoptimalan khusus wilayah. Memahami pengaturan mana yang disinkronkan dan bagaimana perilakunya membantu Anda mengonfigurasi tabel global Anda secara efektif. Pengaturan jatuh ke dalam tiga kategori utama berdasarkan bagaimana mereka disinkronkan di seluruh replika.
Pengaturan berikut selalu disinkronkan antara replika dalam tabel global:
-
Mode kapasitas (kapasitas yang disediakan atau sesuai permintaan)
-
Tabel menyediakan kapasitas tulis
-
Tabel tulis penskalaan otomatis
-
Definisi Indeks Sekunder Global (GSI)
-
GSI menyediakan kapasitas tulis
-
GSI tulis penskalaan otomatis
-
Jenis Enkripsi sisi server (SSE)
-
Definisi aliran dalam mode MREC
-
Waktu Untuk Tayang (TTL)
-
Throughput Hangat
-
Throughput penulisan maksimum sesuai permintaan
Pengaturan berikut disinkronkan antara replika, tetapi dapat diganti berdasarkan per-replika:
-
Tabel menyediakan kapasitas baca
-
Tabel baca penskalaan otomatis
-
GSI menyediakan kapasitas baca
-
GSI baca penskalaan otomatis
-
Kelas Tabel
-
Throughput baca maksimum sesuai permintaan
catatan
Nilai pengaturan yang dapat diganti diubah jika pengaturan dimodifikasi pada replika lainnya. Sebagai contoh, Anda memiliki tabel global MREC dengan replika di US East (Virginia N.) dan US West (Oregon). Replika US East (Virginia N.) telah menyediakan throughput baca yang disetel ke 200. RCUs Replika di US West (Oregon) memiliki override throughput baca yang disediakan disetel ke 100. RCUs Jika Anda memperbarui pengaturan throughput baca yang disediakan pada replika US East (Virginia N.) dari 200 RCUs menjadi 300 RCUs, nilai throughput baca baru yang disediakan juga akan diterapkan ke replika di US West (Oregon). Ini mengubah pengaturan throughput baca yang disediakan untuk replika AS Barat (Oregon) dari nilai penggantian 100 ke nilai baru 300. RCUs RCUs
Pengaturan berikut tidak pernah disinkronkan antara replika:
-
Perlindungan penghapusan
-
Point-in-time Pemulihan
-
Tanda
-
Pemberdayaan Wawasan CloudWatch Kontributor Tabel
-
Pemberdayaan Wawasan CloudWatch Kontributor GSI
-
Definisi Kinesis Data Streams
-
Kebijakan Sumber Daya
-
Definisi aliran dalam mode MRSC
Semua pengaturan lain tidak disinkronkan antara replika.
DynamoDB Accelerator (DAX)
Menulis ke replika tabel global melewati DynamoDB Accelerator (DAX), memperbarui DynamoDB secara langsung. Akibatnya, cache DAX dapat menjadi basi karena penulisan tidak memperbarui cache DAX. Cache DAX yang dikonfigurasi untuk replika tabel global hanya akan disegarkan ketika TTL cache kedaluwarsa.
Pertimbangan untuk mengelola tabel global
Anda tidak dapat menghapus tabel yang digunakan untuk menambahkan replika tabel global baru hingga 24 jam berlalu sejak replika baru dibuat.
Jika Anda menonaktifkan AWS Wilayah yang berisi replika tabel global, replika tersebut akan dikonversi secara permanen ke tabel Wilayah tunggal 20 jam setelah Wilayah dinonaktifkan.