

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

# 
<a name="blue-green-deployments-switching"></a>

*Peralihan* transisi lingkungan hijau menjadi lingkungan produksi baru. Ketika instance DB hijau telah membaca replika, mereka juga dialihkan. Sebelum Anda switchover, lalu lintas produksi diarahkan ke instans DB dan replika baca di lingkungan biru. Setelah Anda switchover, lalu lintas produksi diarahkan ke instans DB dan replika baca di lingkungan hijau.

*Mengalihkan* blue/green penerapan tidak sama dengan *mempromosikan* hijau dalam blue/green penerapan. Jika Anda secara manual mempromosikan hijau dengan memilih **Promosikan** dari menu **Tindakan**, replikasi antara lingkungan biru dan hijau akan rusak dan blue/green penerapan akan memasuki status konfigurasi **Tidak valid**. 

**Topics**
+ [Waktu habis switchover](#blue-green-deployments-switching-timeout)
+ [Pagar pembatas switchover](#blue-green-deployments-switching-guardrails)
+ [Tindakan switchover](#blue-green-deployments-switching-actions)
+ [Praktik terbaik switchover](#blue-green-deployments-switching-best-practices)
+ [Memverifikasi CloudWatch metrik sebelum peralihan](#blue-green-deployments-switching-over-cloudwatch)
+ [Memantau kelambatan replika sebelum peralihan](#blue-green-deployments-monitor-replica-lag)
+ [Beralih dari blue/green penerapan](#blue-green-deployments-switching-over)
+ [Setelah switchover](#blue-green-deployments-switching-after)

## Waktu habis switchover
<a name="blue-green-deployments-switching-timeout"></a>

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
<a name="blue-green-deployments-switching-guardrails"></a>

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 instans DB primer hijau berkondisi baik. Instans DB primer hijau adalah replika dari instans DB primer biru.
+ **Jeda replikasi** – Memeriksa apakah jeda replika instans DB primer hijau berada dalam batas yang diizinkan untuk switchover. Batas yang diizinkan didasarkan pada periode waktu habis yang ditentukan. Jeda replika menunjukkan seberapa jauh instans DB primer tertinggal dari instans DB primer biru. Untuk informasi selengkapnya, lihat [Memantau kelambatan replika sebelum peralihan](#blue-green-deployments-monitor-replica-lag).
+ **Penulisan aktif** – Memastikan tidak ada penulisan aktif pada instans DB primer hijau.

Amazon RDS menjalankan pemeriksaan pagar pembatas berikut pada lingkungan biru:
+ **Replikasi eksternal** — Untuk PostgreSQL RDS untuk PostgreSQL, 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 dan RDS untuk MariaDB, 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 instans DB primer biru karena dapat meningkatkan jeda replika.
+ **Pernyataan DDL yang berjalan lama** – Memastikan tidak ada pernyataan DDL yang berjalan lama pada klaster DB biru karena dapat meningkatkan jeda replika.
+ **Perubahan PostgreSQL yang tidak didukung** - Untuk PostgreSQL RDS blue/green untuk penyebaran PostgreSQL yang menggunakan replikasi logis, memastikan bahwa tidak ada perubahan DDL dan tidak ada penambahan atau modifikasi objek besar telah dilakukan pada lingkungan biru. Untuk informasi selengkapnya, lihat [Keterbatasan spesifik replikasi logis untuk penerapan blue/green](blue-green-deployments-considerations.md#blue-green-deployments-limitations-postgres).

  Jika Amazon RDS mendeteksi perubahan PostgreSQL yang tidak didukung, Amazon RDS akan mengubah status replikasi menjadi dan memberi tahu Anda bahwa peralihan tidak `Replication degraded` tersedia untuk penerapan. blue/green Untuk melanjutkan dengan peralihan, kami sarankan Anda menghapus dan membuat ulang blue/green penyebaran dan semua database hijau. Untuk melakukannya, pilih **Tindakan**, **Hapus dengan basis data hijau**.

## Tindakan switchover
<a name="blue-green-deployments-switching-actions"></a>

Saat Anda mengalihkan blue/green penerapan, RDS melakukan tindakan berikut:

1. Menjalankan pemeriksaan pagar pembatas untuk memverifikasi apakah lingkungan biru dan hijau siap untuk switchover.

1. Menghentikan operasi tulis baru pada klaster DB di kedua lingkungan.

1. Memutuskan koneksi ke instans DB di kedua lingkungan dan tidak mengizinkan koneksi baru.

1. Menunggu replikasi untuk mengejar ketertinggalan di lingkungan hijau sehingga lingkungan hijau sinkron dengan lingkungan biru.

1. Mengganti nama instans DB dan di kedua lingkungan.

   RDS mengganti nama instans DB di lingkungan hijau agar cocok dengan instans DB di lingkungan biru. Misalnya, asumsikan nama instans DB di lingkungan biru adalah `mydb`. Asumsikan juga nama instans DB yang sesuai di lingkungan hijau adalah `mydb-green-abc123`. Selama switchover, nama instans DB di lingkungan hijau berubah menjadi `mydb`.

   RDS mengganti nama instans DB di lingkungan biru dengan menambahkan `-oldn` ke nama saat ini, dengan `n` adalah angka. Misalnya, asumsikan nama instans DB di lingkungan biru adalah `mydb`. Setelah switchover, nama instans DB bisa jadi `mydb-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.

1. Memungkinkan koneksi ke basis data di kedua lingkungan.

1. Memungkinkan operasi tulis pada klaster DB di lingkungan produksi baru.

   Setelah switchover, . `0` 

Anda dapat memantau status peralihan menggunakan Amazon. EventBridge Untuk informasi selengkapnya, lihat [Peristiwa deployment blue/green](USER_Events.Messages.md#USER_Events.Messages.BlueGreenDeployments).

Selama peralihan, tag dari lingkungan biru menggantikan semua tag pada sumber daya di lingkungan hijau. Tag apa pun yang Anda tambahkan langsung ke sumber daya lingkungan hijau akan ditimpa selama proses ini. Untuk informasi selengkapnya tentang tag, lihat [Menandai sumber Amazon RDS](USER_Tagging.md).

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
<a name="blue-green-deployments-switching-best-practices"></a>

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](#blue-green-deployments-switching-over-cloudwatch).
+ 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 aktif DDLs, dapat meningkatkan waktu peralihan Anda, menghasilkan waktu henti yang lebih lama untuk beban kerja produksi Anda.

  Jika ada sejumlah besar koneksi pada instans DB Anda, pertimbangkan untuk menguranginya secara manual ke jumlah minimum yang diperlukan untuk aplikasi Anda sebelum Anda mengalihkan penerapan. blue/green Salah satu cara untuk mencapai ini adalah dengan membuat skrip yang memantau status blue/green penyebaran dan mulai membersihkan koneksi ketika mendeteksi bahwa status telah berubah menjadi. `SWITCHOVER_IN_PROGRESS`
+ Pastikan instans DB di kedua lingkungan berada dalam status `Available`.
+ Pastikan instans DB primer 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 RDS. Jika tidak, aplikasi akan terus mengirim lalu lintas tulis ke lingkungan biru setelah peralihan.
+ Pastikan pemuatan data selesai sebelum switchover. Untuk informasi selengkapnya, lihat [Pemuatan malas dan inisialisasi penyimpanan untuk penerapan blue/green](blue-green-deployments-creating.md#blue-green-deployments-creating-lazy-loading).
+ Untuk penerapan yang menggunakan replikasi logis, lakukan hal berikut:
  + Tinjau batasan replikasi logis dan lakukan tindakan apa pun yang diperlukan sebelum peralihan. Untuk informasi selengkapnya, lihat [Keterbatasan spesifik replikasi logis untuk penerapan blue/green](blue-green-deployments-considerations.md#blue-green-deployments-limitations-postgres).
  + Jalankan operasi `ANALYZE` untuk menyegarkan tabel `pg_statistics`. Ini mengurangi risiko masalah kinerja setelah peralihan.
  + Sebelum memulai peralihan blue/green penerapan, verifikasi bahwa aplikasi Anda tidak mengganti `default_transaction_read_only` parameter di tingkat sesi. Selama peralihan, parameter ini diatur ke `on` pada penulis lingkungan hijau untuk mencegah penulisan hingga promosi selesai. Jika aplikasi atau transaksi Anda mengganti konfigurasi ini`off`, aplikasi Anda dapat menulis data ke lingkungan hijau selama proses peralihan. Jika peralihan harus diputar kembali, penulisan ini tidak tersedia di lingkungan biru, mengharuskan Anda untuk menyelesaikan inkonsistensi data secara manual. Kami sangat menyarankan untuk mengaudit kueri aplikasi Anda untuk memastikan mereka menghormati `default_transaction_read_only` pengaturan sebelum melanjutkan dengan peralihan.

**catatan**  
Selama switchover, Anda tidak dapat mengubah klaster DB apa pun yang disertakan dalam switchover.

## Memverifikasi CloudWatch metrik sebelum peralihan
<a name="blue-green-deployments-switching-over-cloudwatch"></a>


+ `DatabaseConnections`— Gunakan metrik ini untuk memperkirakan tingkat aktivitas pada blue/green penerapan, dan pastikan nilainya berada pada tingkat yang dapat diterima untuk penerapan Anda sebelum Anda beralih. Jika Wawasan Performa diaktifkan, `DBLoad` adalah metrik yang lebih akurat.

Untuk informasi selengkapnya, lihat [CloudWatch Metrik Amazon untuk Amazon RDS](rds-metrics.md).

## Memantau kelambatan replika sebelum peralihan
<a name="blue-green-deployments-monitor-replica-lag"></a>

Sebelum Anda mengalihkan blue/green penerapan, pastikan lag replika mendekati nol untuk mengurangi waktu henti.

### dan RDS untuk MariaDB
<a name="blue-green-deployments-monitor-replica-lag-ms-mdb"></a>

Untuk penerapan MySQL dan blue/green MariaDB, CloudWatch periksa metrik di lingkungan hijau untuk mengidentifikasi lag replika saat ini. Untuk informasi selengkapnya, lihat [Mendiagnosis dan mengatasi jeda di antara replika baca](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.ReplicaLag).

### 
<a name="blue-green-deployments-monitor-replica-lag-pg"></a>

Untuk penerapan blue/green PostgreSQL yang menggunakan replikasi fisik, [Memantau dan menyetel proses replikasi](USER_PostgreSQL.Replication.ReadReplicas.Monitor.md) lihat instruksi untuk mengidentifikasi lag replika saat ini.

Untuk penerapan blue/green PostgreSQL yang menggunakan replikasi logis, periksa metrik di lingkungan biru untuk mengidentifikasi lag replika `OldestReplicationSlotLag` CloudWatch saat ini. Untuk informasi selengkapnya, lihat [Metrik CloudWatch tingkat instans Amazon untuk Amazon RDS](rds-metrics.md#rds-cw-metrics-instance).

Selain itu, Anda dapat menjalankan query SQL berikut di lingkungan biru:

```
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. Sebuah `lsn_distance` dari 0 berarti replika tertangkap.

Untuk penjelasan kapan blue/green penerapan menggunakan replikasi fisik versus replikasi logis, lihat. [Metode replikasi PostgreSQL untuk penerapan blue/green](blue-green-deployments-replication-type.md)

## Beralih dari blue/green penerapan
<a name="blue-green-deployments-switching-over"></a>

Anda dapat mengalihkan blue/green penerapan menggunakan Konsol Manajemen AWS, AWS CLI, atau RDS API.

### Konsol
<a name="blue-green-deployments-switching-console"></a>

**Untuk beralih ke blue/green penerapan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Databases**, lalu pilih blue/green deployment yang ingin Anda alihkan.

1. Untuk **Tindakan**, pilih **Switchover**.

   Halaman **Switchover** muncul.  
![\[Beralih blue/green penyebaran\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/blue-green-deployment-switch-over.png)

1. Di halaman **Switchover**, tinjau ringkasan switchover. Pastikan sumber daya di kedua lingkungan sesuai dengan yang Anda harapkan. Jika tidak, pilih **Batalkan**.

1. Untuk **Pengaturan waktu habis**, masukkan batas waktu untuk switchover.

1. Jika instans menjalankan RDS for PostgreSQL, tinjau dan konfirmasi rekomendasi pra-switchover. Untuk informasi selengkapnya, lihat [Keterbatasan spesifik replikasi logis untuk penerapan blue/green](blue-green-deployments-considerations.md#blue-green-deployments-limitations-postgres).

1. Pilih **Switchover**.

### AWS CLI
<a name="blue-green-deployments-switching-cli"></a>

Untuk beralih blue/green penyebaran dengan menggunakan AWS CLI, gunakan [switchover-blue-green-deployment](https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-blue-green-deployment.html)perintah dengan opsi berikut:
+ `--blue-green-deployment-identifier`— Tentukan ID sumber daya dari blue/green penerapan.
+ `--switchover-timeout` – Tentukan waktu habis untuk switchover, dalam hitungan detik. Angka default-nya adalah 300.

**Example Beralih dari blue/green penerapan**  
Untuk Linux, macOS, atau Unix:  

```
aws rds switchover-blue-green-deployment \
    --blue-green-deployment-identifier bgd-1234567890abcdef \
    --switchover-timeout 600
```
Untuk Windows:  

```
aws rds switchover-blue-green-deployment ^
    --blue-green-deployment-identifier bgd-1234567890abcdef ^
    --switchover-timeout 600
```

### API RDS
<a name="blue-green-deployments-switching-api"></a>

Untuk mengalihkan blue/green penerapan menggunakan Amazon RDS API, gunakan [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverBlueGreenDeployment.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverBlueGreenDeployment.html)operasi dengan parameter berikut:
+ `BlueGreenDeploymentIdentifier`— Tentukan ID sumber daya dari blue/green penerapan.
+ `SwitchoverTimeout` – Tentukan waktu habis untuk switchover, dalam hitungan detik. Angka default-nya adalah 300.

## Setelah switchover
<a name="blue-green-deployments-switching-after"></a>

Setelah switchover, instans DB di lingkungan biru sebelumnya akan dipertahankan. Biaya standar berlaku untuk sumber daya ini. Replikasi antara lingkungan biru dan hijau berhenti.

RDS mengganti nama instans DB di lingkungan biru dengan menambahkan `-oldn` ke nama sumber daya saat ini, dengan `n` adalah angka. Instans DB di lingkungan biru lama hanya-baca sampai Anda mengatur parameter (untuk RDS untuk MySQL) atau `read_only` parameter (untuk RDS untuk PostgreSQL) ke`default_transaction_read_only`. `0` RDS menamai di lingkungan hijau. `-newn`

Jika Anda menghapus sumber daya blue/green penerapan, RDS mempertahankan sumber daya dan sumber daya. `-oldn` `-newn`

![\[Setelah beralih dari blue/green penerapan\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/blue-green-deployment-after-switchover.png)


### Memperbarui node induk untuk konsumen
<a name="blue-green-deployments-switching-reparent"></a>

RDS menawarkan replika baca yang dikelola sepenuhnya. Namun, ini juga menyediakan opsi untuk mengatur replika yang dikelola sendiri, juga dikenal sebagai replika *eksternal*. Replika eksternal memungkinkan Anda menggunakan sumber daya pihak ketiga sebagai target replikasi.

Setelah Anda mengalihkan RDS untuk MariaDB atau RDS untuk MySQL blue/green MySQL penyebaran MySQL, jika cluster biru memiliki replika eksternal atau konsumen log biner sebelum peralihan, Anda harus memperbarui node induk mereka setelah peralihan untuk mempertahankan kontinuitas replikasi. 

**Untuk memperbarui node induk**

1. Setelah peralihan, instance DB yang sebelumnya berada di lingkungan hijau memancarkan peristiwa yang berisi nama file log master dan posisi log master. Untuk menemukan acara, navigasikan ke konsol RDS dan pilih **Acara** dari panel navigasi kiri.

1. Filter berdasarkan peristiwa di mana sumbernya adalah nama instance DB hijau tua, sebelum beralih.

1. Temukan acara yang berisi koordinat log biner. Pesan acara mirip dengan:`Binary log coordinates in green environment after switchover: file mysql-bin-changelog.000003 and position 40134574`.

1. Pastikan bahwa konsumen atau replika telah menerapkan semua log biner dari lingkungan biru tua. Kemudian, gunakan koordinat log biner yang disediakan untuk melanjutkan replikasi pada konsumen. Misalnya, jika Anda menjalankan replika MySQL di EC2, Anda dapat menggunakan perintah berikut:

   **MySQL 8.0.22 dan versi mayor dan minor yang lebih rendah**

   ```
   CHANGE MASTER TO MASTER_HOST='{new-writer-endpoint}', MASTER_LOG_FILE='mysql-bin-changelog.000003', MASTER_LOG_POS=40134574;
   ```

   **MySQL 8.0.23 dan versi mayor dan minor yang lebih tinggi**

   ```
   CHANGE REPLICATION SOURCE TO SOURCE_HOST='{new-writer-endpoint}', SOURCE_LOG_FILE='mysql-bin-changelog.000003', SOURCE_LOG_POS=40134574;
   ```

Jika konsumen adalah RDS lain untuk MySQL atau RDS untuk instance MariaDB DB, jalankan prosedur tersimpan berikut secara berurutan: 

1. [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication)

1. [mysql.rds\$1reset\$1external\$1master (untuk versi 8.0 dan lebih rendah) atau mysql\$1rds\$1reset\$1external\$1source](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) [(untuk versi 8.4 dan lebih tinggi)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source)

1. [mysql.rds\$1set\$1external\$1master (untuk versi 8.0 dan lebih rendah) atau mysql\$1rds\$1set\$1external\$1source](mysql-stored-proc-replicating.md#mysql_rds_set_external_master) [(untuk versi 8.4 dan lebih tinggi)](mysql-stored-proc-replicating.md#mysql_rds_set_external_source)

1. [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication)