Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengganti deployment blue/green
Switchover mempromosikan klaster DB, termasuk instans DB-nya, di lingkungan hijau menjadi klaster DB produksi. Sebelum Anda switchover, lalu lintas produksi diarahkan ke klaster di lingkungan biru. Setelah Anda switchover, lalu lintas produksi diarahkan ke klaster DB di lingkungan hijau.
Topik
Waktu habis switchover
Anda dapat menentukan periode waktu habis switchover antara 30 detik dan 3.600 detik (satu jam). Jika switchover memakan waktu lebih lama dari durasi yang ditentukan, maka perubahan apa pun akan dikembalikan dan tidak ada perubahan pada lingkungan mana pun. Periode waktu habis default adalah 300 detik (lima menit).
Pagar pembatas switchover
Saat Anda memulai switchover, Amazon RDS menjalankan beberapa pemeriksaan dasar untuk menguji kesiapan lingkungan biru dan hijau untuk switchover. Pemeriksaan ini dikenal sebagai pagar pembatas switchover. Pagar pembatas switchover ini mencegah switchover jika lingkungan belum siap. Oleh karena itu, pagar pembatas tersebut dapat mencegah waktu henti yang lebih lama dari yang diharapkan dan mencegah hilangnya data antara lingkungan biru dan hijau yang mungkin terjadi jika switchover dimulai.
Amazon RDS menjalankan pemeriksaan pagar pembatas berikut pada lingkungan hijau:
-
Kondisi replikasi – Memeriksa apakah status replikasi klaster DB hijau berkondisi baik. klaster DB hijau adalah replika dari klaster DB biru.
-
Jeda replikasi – Memeriksa apakah jeda replika klaster DB hijau berada dalam batas yang diizinkan untuk switchover. Batas yang diizinkan didasarkan pada periode waktu habis yang ditentukan. Jeda replika menunjukkan seberapa jauh klaster DB tertinggal dari klaster DB biru. Untuk informasi selengkapnya, lihat Mendiagnosis dan mengatasi jeda di antara replika baca untuk Aurora MySQL dan Memantau replikasi Aurora PostgreSQL for Aurora PostgreSQL.
-
Penulisan aktif – Memastikan tidak ada penulisan aktif pada klaster DB hijau.
Amazon RDS menjalankan pemeriksaan pagar pembatas berikut pada lingkungan biru:
-
Replikasi eksternal — Untuk Aurora , pastikan bahwa lingkungan biru bukan sumber logis (penerbit) atau replika (pelanggan) yang dikelola sendiri. Jika ya, kami sarankan Anda melepaskan slot replikasi dan langganan yang dikelola sendiri di semua database di lingkungan biru, lanjutkan dengan peralihan, lalu buat ulang untuk melanjutkan replikasi. Untuk Aurora MySQL RDS untuk MySQL , periksa apakah database biru bukan replika binlog eksternal. Jika ya, pastikan itu tidak aktif mereplikasi.
-
Penulisan aktif yang berjalan lama – Memastikan tidak ada penulisan aktif yang berjalan lama pada klaster DB biru karena dapat meningkatkan jeda replika.
-
Pernyataan DDL yang berjalan lama – Memastikan tidak ada pernyataan DDL yang berjalan lama pada instans DB primer biru karena dapat meningkatkan jeda replika.
-
Perubahan PostgreSQL yang tidak didukung – Untuk klaster DB Aurora PostgreSQL, memastikan tidak ada perubahan DDL dan tidak ada penambahan atau perubahan objek besar yang dilakukan pada lingkungan biru. Untuk informasi selengkapnya, lihat Batasan replikasi logis PostgreSQL untuk deployment blue/green.
Jika Amazon RDS mendeteksi perubahan PostgreSQL yang tidak didukung, status replikasi diubah menjadi
Replication degraded
dan memberi tahu Anda bahwa switchover tidak tersedia untuk deployment blue/green. Untuk melanjutkan switchover, sebaiknya Anda menghapus dan membuat ulang deployment blue/green dan semua basis data hijau. Untuk melakukannya, pilih Tindakan, Hapus dengan basis data hijau.
Tindakan switchover
Saat Anda melakukan switchover pada deployment blue/green, RDS melakukan tindakan berikut:
-
Menjalankan pemeriksaan pagar pembatas untuk memverifikasi apakah lingkungan biru dan hijau siap untuk switchover.
-
Menghentikan operasi tulis baru pada instans DB primer di kedua lingkungan.
-
Memutuskan koneksi ke instans DB di kedua lingkungan dan tidak mengizinkan koneksi baru.
-
Menunggu replikasi untuk mengejar ketertinggalan di lingkungan hijau sehingga lingkungan hijau sinkron dengan lingkungan biru.
-
Mengganti nama DB dan instan DB dan klaster di kedua lingkungan.
RDS mengganti nama DB instans DB dan klaster di lingkungan hijau agar cocok dengan DB instans DB dan klaster di lingkungan biru. Misalnya, asumsikan nama instans DB di lingkungan biru adalah
mydb
. Asumsikan juga nama instans DB yang sesuai di lingkungan hijau adalahmydb-green-abc123
. Selama switchover, nama instans DB di lingkungan hijau berubah menjadimydb
.RDS mengganti nama DB instans DB dan klaster di lingkungan biru dengan menambahkan
-old
ke nama saat ini, dengann
adalah angka. Misalnya, asumsikan nama instans DB di lingkungan biru adalahn
mydb
. Setelah switchover, nama instans DB bisa jadimydb-old1
.RDS juga mengganti nama titik akhir di lingkungan hijau agar sinkron dengan titik akhir yang sesuai di lingkungan biru sehingga perubahan aplikasi tidak diperlukan.
-
Memungkinkan koneksi ke basis data di kedua lingkungan.
-
Memungkinkan operasi tulis pada instans DB primer di lingkungan produksi baru.
Setelah peralihan, cluster produksi sebelumnya hanya mengizinkan operasi baca . Bahkan jika Anda menonaktifkan
read_only
parameter pada cluster DB, itu tetap hanya-baca sampai Anda menghapus penerapan biru/hijau.
Anda dapat memantau status peralihan menggunakan Amazon. EventBridge Untuk informasi selengkapnya, lihat Peristiwa deployment blue/green.
Jika tag sudah dikonfigurasi di lingkungan biru, tag tersebut dipindahkan ke lingkungan produksi baru selama switchover. Lingkungan produksi sebelumnya juga mempertahankan tag ini. Untuk informasi selengkapnya tentang tag, lihat Memberi tag pada sumber daya Amazon RDS.
Jika switchover dimulai lalu berhenti sebelum selesai karena alasan apa pun, maka perubahan apa pun akan dikembalikan, dan tidak ada perubahan yang diterapkan pada lingkungan mana pun.
Praktik terbaik switchover
Sebelum melakukan switchover, Anda sangat dianjurkan untuk mengikuti praktik terbaik dengan menyelesaikan tugas-tugas berikut:
-
Uji sumber daya secara menyeluruh di lingkungan hijau. Pastikan sumber daya berfungsi dengan baik dan efisien.
-
Pantau CloudWatch metrik Amazon yang relevan. Untuk informasi selengkapnya, lihat Memverifikasi CloudWatch metrik sebelum peralihan.
-
Identifikasi waktu terbaik untuk melakukan switchover.
Selama switchover, penulisan terputus dari basis data di kedua lingkungan. Identifikasi waktu ketika lalu lintas berada pada titik terendah di lingkungan produksi Anda. Transaksi yang berjalan lama, seperti DDL aktif, dapat meningkatkan waktu switchover Anda, menghasilkan waktu henti yang lebih lama untuk beban kerja produksi.
Jika terdapat banyak koneksi pada klaster DB dan instans DB, pertimbangkan untuk menguranginya secara manual ke jumlah minimum yang diperlukan untuk aplikasi Anda sebelum Anda melakukan switchover pada deployment blue/green. Salah satu cara untuk melakukannya adalah dengan membuat skrip yang memantau status deployment blue/green dan mulai membersihkan koneksi ketika mendeteksi bahwa status telah berubah menjadi
SWITCHOVER_IN_PROGRESS
. -
Pastikan DB instans DB dan klaster di kedua lingkungan berada dalam status
Available
. -
Pastikan klaster DB di lingkungan hijau berkondisi baik dan bereplikasi.
-
Pastikan konfigurasi jaringan dan klien Anda tidak meningkatkan cache DNS Time-To-Live (TTL) lebih dari lima detik, yang merupakan default untuk zona DNS Aurora. Jika tidak, aplikasi akan terus mengirimkan lalu lintas tulis ke lingkungan biru setelah switchover.
-
Untuk klaster Aurora PostgreSQL DB untuk instance PostgreSQL DB, lakukan hal berikut:
-
Tinjau batasan replikasi logis dan lakukan tindakan apa pun yang diperlukan sebelum peralihan. Untuk informasi selengkapnya, lihat Batasan replikasi logis PostgreSQL untuk deployment blue/green.
-
Jalankan operasi
ANALYZE
untuk menyegarkan tabelpg_statistics
. Ini mengurangi risiko masalah kinerja setelah peralihan.
-
catatan
Selama switchover, Anda tidak dapat mengubah instans DB apa pun yang disertakan dalam switchover.
Memverifikasi CloudWatch metrik sebelum peralihan
Sebelum Anda mengalihkan penerapan biru/hijau, kami sarankan Anda memeriksa nilai metrik berikut di Amazon. CloudWatch
-
DatabaseConnections
– Gunakan metrik ini untuk memperkirakan tingkat aktivitas pada deployment blue/green, dan pastikan nilainya berada pada tingkat yang dapat diterima untuk deployment Anda sebelum Anda switchover. Jika Wawasan Performa diaktifkan,DBLoad
adalah metrik yang lebih akurat. -
ActiveTransactions
– Jikainnodb_monitor_enable
diatur keall
dalam grup parameter DB untuk salah satu instans DB Anda, gunakan metrik ini untuk melihat apakah ada banyak transaksi aktif yang mungkin memblokir switchover.
Untuk informasi selengkapnya tentang metrik ini, lihat CloudWatch Metrik Amazon untuk Amazon Aurora.
Memantau kelambatan replika sebelum peralihan
Sebelum Anda beralih ke penerapan biru/hijau, pastikan bahwa lag replika pada database hijau mendekati nol untuk mengurangi waktu henti.
-
Untuk Aurora MySQL, gunakan
AuroraBinlogReplicaLag
CloudWatch metrik untuk mengidentifikasi lag replikasi saat ini pada lingkungan hijau. -
Untuk Aurora PostgreSQL, gunakan kueri SQL berikut:
SELECT slot_name, confirmed_flush_lsn as flushed, pg_current_wal_lsn(), (pg_current_wal_lsn() - confirmed_flush_lsn) AS lsn_distance FROM pg_catalog.pg_replication_slots WHERE slot_type = 'logical'; slot_name | flushed | pg_current_wal_lsn | lsn_distance -----------------+---------------+--------------------+------------ logical_replica1 | 47D97/CF32980 | 47D97/CF3BAC8 | 37192
confirmed_flush_lsn
Ini mewakili nomor urutan log terakhir (LSN) yang dikirim ke replika.pg_current_wal_lsn
Ini mewakili di mana database sekarang. Sebuahlsn_distance
dari 0 berarti replika tertangkap.
Melakukan switchover pada deployment blue/green
Anda dapat mengalihkan penerapan biru/hijau menggunakan AWS Management Console, API AWS CLI, atau RDS.
Untuk melakukan switchover pada deployment blue/green
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.
-
Di panel navigasi, pilih Basis data, lalu pilih deployment blue/green yang ingin Anda switchover.
-
Untuk Tindakan, pilih Switchover.
Halaman Switchover muncul.
-
Di halaman Switchover, tinjau ringkasan switchover. Pastikan sumber daya di kedua lingkungan sesuai dengan yang Anda harapkan. Jika tidak, pilih Batalkan.
-
Untuk Pengaturan waktu habis, masukkan batas waktu untuk switchover.
-
Jika klaster menjalankan Aurora PostgreSQL, tinjau dan konfirmasi rekomendasi pra-switchover. Untuk informasi selengkapnya, lihat Batasan replikasi logis PostgreSQL untuk deployment blue/green.
-
Pilih Switchover.
Untuk mengalihkan penerapan biru/hijau dengan menggunakan, gunakan perintah switchover-blue-green-deployment dengan opsi berikut: AWS CLI
-
--blue-green-deployment-identifier
— Tentukan ID sumber daya dari penerapan biru/hijau. -
--switchover-timeout
– Tentukan waktu habis untuk switchover, dalam hitungan detik. Angka default-nya adalah 300.
contoh Melakukan switchover pada deployment blue/green
Untuk Linux, macOS, atau Unix:
aws rds switchover-blue-green-deployment \ --blue-green-deployment-identifier
bgd-1234567890abcdef
\ --switchover-timeout600
Untuk Windows:
aws rds switchover-blue-green-deployment ^ --blue-green-deployment-identifier
bgd-1234567890abcdef
^ --switchover-timeout600
Untuk melakukan switchover pada deployment blue/green menggunakan API Amazon RDS, gunakan operasi SwitchoverBlueGreenDeployment
dengan parameter berikut:
-
BlueGreenDeploymentIdentifier
— Tentukan ID sumber daya dari penerapan biru/hijau. -
SwitchoverTimeout
– Tentukan waktu habis untuk switchover, dalam hitungan detik. Angka default-nya adalah 300.
Setelah switchover
Setelah switchover, DB instans DB dan klaster di lingkungan biru sebelumnya akan dipertahankan. Biaya standar berlaku untuk sumber daya ini. Replikasi dan pencatatan log biner antara lingkungan biru dan hijau berhenti.
RDS mengganti nama DB instans DB dan klaster di lingkungan biru dengan menambahkan -old
ke nama sumber daya saat ini, dengan n
adalah angka. Cluster DB dipaksa menjadi status hanya-baca. Bahkan jika Anda menonaktifkan n
read_only
parameter pada cluster DB, itu tetap hanya-baca sampai Anda menghapus penerapan biru/hijau.
![Setelah beralih ke penerapan biru/hijau](images/blue-green-deployment-after-switchover-aurora.png)
Memperbarui node induk untuk konsumen
Setelah Anda mengalihkan penyebaran biru/hijau, jika cluster DB instans DB memiliki replika eksternal atau konsumen log biner sebelum peralihan, Anda harus memperbarui node induk mereka setelah peralihan untuk mempertahankan kontinuitas replikasi.
Setelah peralihan, instance DB penulis yang sebelumnya berada di lingkungan hijau memancarkan peristiwa yang berisi nama file log master dan posisi log master. Sebagai contoh:
aws rds describe-events --output json --source-type db-instance --source-identifier
db-instance-identifier
{ "Events": [ ... { "SourceIdentifier": "db-instance-identifier", "SourceType": "db-instance", "Message": "Binary log coordinates in green environment after switchover: file mysql-bin-changelog.000003
and position804
", "EventCategories": [], "Date": "2023-11-10T01:33:41.911Z", "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:db-instance-identifier" } ] }
Pertama, pastikan bahwa konsumen atau replika telah menerapkan semua log biner dari lingkungan biru tua. Kemudian, gunakan koordinat log biner yang disediakan untuk melanjutkan aplikasi pada konsumen. Misalnya, jika Anda menjalankan replika MySQL di EC2, Anda dapat menggunakan perintah: CHANGE MASTER TO
CHANGE MASTER TO MASTER_HOST='
{new-writer-endpoint}
', MASTER_LOG_FILE='mysql-bin-changelog.000003
', MASTER_LOG_POS=804
;