

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

# Enkripsi Amazon RDS yang ada untuk instans DB Amazon RDS for PostgreSQL
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance"></a>

*Piyush Goyal, Shobana Raghu, dan Yaser Raja, Amazon Web Services*

## Ringkasan
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-summary"></a>

Pola ini menjelaskan cara mengenkripsi Amazon Relational Database Service (Amazon RDS) yang ada untuk instans PostgreSQL DB di AWS Cloud dengan waktu henti minimal. Proses ini juga berfungsi untuk Amazon RDS for MySQL DB instans.

Anda dapat mengaktifkan enkripsi untuk instans Amazon RDS DB saat Anda membuatnya, tetapi tidak setelah dibuat. Namun, Anda dapat menambahkan enkripsi ke instans DB yang tidak terenkripsi dengan membuat snapshot dari instans DB Anda, dan kemudian membuat salinan terenkripsi dari snapshot itu. Anda kemudian dapat memulihkan instans DB dari snapshot terenkripsi untuk mendapatkan salinan terenkripsi dari instans DB asli Anda. Jika proyek Anda memungkinkan downtime (setidaknya untuk transaksi tulis) selama aktivitas ini, hanya ini yang perlu Anda lakukan. Ketika salinan instans DB yang baru dan terenkripsi tersedia, Anda dapat mengarahkan aplikasi Anda ke database baru. Namun, jika proyek Anda tidak mengizinkan waktu henti yang signifikan untuk aktivitas ini, Anda memerlukan pendekatan alternatif yang membantu meminimalkan waktu henti. Pola ini menggunakan AWS Database Migration Service (AWS DMS) untuk bermigrasi dan terus mereplikasi data sehingga cutover ke database baru yang terenkripsi dapat dilakukan dengan waktu henti minimal. 

Instans DB terenkripsi Amazon RDS menggunakan algoritme enkripsi AES-256 standar industri untuk mengenkripsi data Anda di server yang menghosting instans Amazon RDS DB Anda. Setelah data Anda dienkripsi, Amazon RDS menangani otentikasi akses dan dekripsi data Anda secara transparan, dengan dampak minimal pada kinerja. Anda tidak perlu memodifikasi aplikasi klien basis data untuk menggunakan enkripsi.

## Prasyarat dan batasan
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Amazon RDS yang tidak terenkripsi untuk instans DB Amazon RDS for PostgreSQL
+ Pengalaman bekerja dengan (membuat, memodifikasi, atau menghentikan) tugas AWS DMS (lihat [Bekerja dengan tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) dalam dokumentasi AWS DMS)
+ [Keakraban dengan AWS Key Management Service (AWS KMS) untuk mengenkripsi database (lihat dokumentasi AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)

**Batasan**
+ Anda dapat mengaktifkan enkripsi untuk instans Amazon RDS DB hanya ketika Anda membuatnya, bukan setelah instans DB dibuat.
+ Data dalam [tabel yang tidak tercatat](https://www.postgresql.org/docs/current/sql-createtable.html) tidak akan dipulihkan menggunakan snapshot. Untuk informasi lebih lanjut, tinjau [Praktik terbaik untuk bekerja dengan PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL).
+ Anda tidak dapat memiliki replika baca terenkripsi dari instans DB yang tidak dienkripsi atau replika baca yang tidak dienkripsi dari instans DB terenkripsi.
+ Anda tidak dapat memulihkan cadangan atau snapshot yang tidak terenkripsi ke instans DB terenkripsi.
+ AWS DMS tidak secara otomatis mentransfer Urutan sehingga diperlukan langkah-langkah tambahan untuk menangani hal ini.

Untuk informasi selengkapnya, lihat [Batasan instans DB terenkripsi Amazon RDS dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html#Overview.Encryption.Limitations) Amazon RDS.

## Arsitektur
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-architecture"></a>

**Arsitektur sumber**
+ Instans RDS DB yang tidak terenkripsi

**Arsitektur target**
+ Instans RDS DB terenkripsi
  + Instans RDS DB tujuan dibuat dengan memulihkan salinan snapshot DB dari instans RDS DB sumber.
  + Kunci AWS KMS digunakan untuk enkripsi saat memulihkan snapshot.
  + Tugas replikasi AWS DMS digunakan untuk memigrasikan data. 

![Process menggunakan AWS DMS untuk mengenkripsi instans Amazon RDS for PostgreSQL DB yang ada ke DB baru.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/820d17c0-0eed-4ed9-9f43-cbada081d924/images/44dd8420-d89d-466e-b7fb-1bdafab8f7f9.png)


## Alat
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-tools"></a>

**Alat yang digunakan untuk mengaktifkan enkripsi:**
+ Kunci AWS KMS untuk enkripsi — Saat membuat instans DB terenkripsi, Anda dapat memilih kunci yang dikelola pelanggan atau kunci terkelola AWS untuk Amazon RDS untuk mengenkripsi instans DB Anda. Jika Anda tidak menentukan pengenal kunci untuk kunci yang dikelola pelanggan, Amazon RDS menggunakan kunci terkelola AWS untuk instans DB baru Anda. Amazon RDS membuat kunci terkelola AWS untuk Amazon RDS untuk akun AWS Anda. Akun AWS Anda memiliki kunci terkelola AWS yang berbeda untuk Amazon RDS untuk setiap Wilayah AWS. Untuk informasi selengkapnya tentang menggunakan kunci KMS untuk enkripsi Amazon RDS, lihat [Mengenkripsi Sumber Daya Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) RDS.

**Alat yang digunakan untuk replikasi berkelanjutan**:
+ AWS DMS — Anda dapat menggunakan AWS Database Migration Service (AWS DMS) untuk mereplikasi perubahan dari DB sumber ke DB target. Penting untuk menjaga sumber dan target DB tetap sinkron untuk meminimalkan waktu henti. Untuk informasi tentang menyiapkan AWS DMS dan membuat tugas, lihat dokumentasi [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html).

## Epik
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-epics"></a>

### Buat snapshot dari instance DB sumber dan enkripsi
<a name="create-a-snapshot-of-the-source-db-instance-and-encrypt-it"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa detail untuk sumber PostgreSQL DB instance. | Di konsol Amazon RDS, pilih instans DB PostgreSQL sumber. Pada tab **Konfigurasi**, pastikan enkripsi tidak diaktifkan untuk instance. Untuk ilustrasi layar, lihat bagian [Informasi tambahan](#encrypt-an-existing-amazon-rds-for-postgresql-db-instance-additional). | DBA | 
| Buat snapshot DB. | Buat snapshot DB dari instance yang ingin Anda enkripsi. Jumlah waktu yang diperlukan untuk membuat snapshot tergantung pada ukuran database Anda. Untuk petunjuknya, lihat [Membuat snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) di dokumentasi Amazon RDS. | DBA | 
| Enkripsi snapshot. | Di panel navigasi konsol Amazon RDS, pilih Snapshots, dan pilih **snapshot** DB yang Anda buat. Untuk **Tindakan**, pilih **Salin Snapshot**. Berikan Wilayah AWS tujuan dan nama salinan snapshot DB di bidang yang sesuai. Pilih kotak centang **Aktifkan Enkripsi**. Untuk **Master Key**, tentukan pengidentifikasi kunci KMS yang akan digunakan untuk mengenkripsi salinan snapshot DB. Pilih **Salin Snapshot**. Untuk informasi selengkapnya, lihat [Menyalin snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) di dokumentasi Amazon RDS. | DBA | 

### Siapkan instans DB target
<a name="prepare-the-target-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembalikan snapshot DB. | Di konsol Amazon RDS, pilih **Snapshots**. Pilih snapshot terenkripsi yang Anda buat. Untuk **Tindakan**, pilih **Pulihkan Snapshot**. Untuk **DB Instance Identifier**, berikan nama unik untuk instans DB baru. Tinjau detail instans, lalu pilih **Restore DB Instance**. Instans DB baru yang terenkripsi akan dibuat dari snapshot Anda. Untuk informasi selengkapnya, lihat [Memulihkan dari snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) di dokumentasi Amazon RDS. | DBA | 
| Migrasikan data dengan menggunakan AWS DMS. | Di konsol AWS DMS, buat tugas AWS DMS. Untuk **Jenis Migrasi**, pilih **Migrasikan data yang ada dan replikasi perubahan yang sedang berlangsung**. Di **Pengaturan Tugas**, untuk **mode persiapan tabel Target**, pilih **Potong.** Untuk informasi selengkapnya, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) dalam dokumentasi AWS DMS. | DBA | 
| Aktifkan validasi data. | Di **Pengaturan Tugas**, pilih **Aktifkan validasi**. Ini memungkinkan Anda membandingkan data sumber dengan data target untuk memverifikasi bahwa data telah dimigrasi secara akurat.  | DBA | 
| Nonaktifkan kendala pada instans DB target. | [Nonaktifkan pemicu dan batasan kunci asing apa pun pada instans](https://www.postgresql.org/docs/current/sql-altertable.html) DB target, lalu mulai tugas AWS DMS. [Untuk informasi selengkapnya tentang menonaktifkan pemicu dan batasan kunci asing, lihat dokumentasi AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) | DBA | 
| Verifikasi data.  | Setelah beban penuh selesai, verifikasi data pada instans DB target untuk melihat apakah itu cocok dengan data sumber. Untuk informasi selengkapnya, lihat [validasi data AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) AWS DMS. | DBA | 

### Potong ke instans DB target
<a name="cut-over-to-the-target-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan operasi tulis pada instans DB sumber. | Hentikan operasi tulis pada instans DB sumber sehingga downtime aplikasi dapat dimulai. Verifikasi bahwa AWS DMS telah menyelesaikan replikasi untuk data dalam pipeline. Aktifkan pemicu dan kunci asing pada instans DB target. | DBA | 
| Perbarui urutan basis data | Jika database sumber berisi nomor urut, verifikasi dan perbarui urutan dalam database target. | DBA | 
| Konfigurasikan titik akhir aplikasi. | Konfigurasikan koneksi aplikasi Anda untuk menggunakan titik akhir instans Amazon RDS DB yang baru. Instans DB sekarang dienkripsi. | DBA, Pemilik aplikasi | 

## Sumber daya terkait
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-resources"></a>
+ [Membuat tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) 
+ [Memantau tugas replikasi menggunakan Amazon CloudWatch](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Monitoring.CloudWatch)
+ [Memantau tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html)
+ [Memperbarui kunci enkripsi Amazon RDS](https://aws.amazon.com/premiumsupport/knowledge-center/update-encryption-key-rds/)

## Informasi tambahan
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-additional"></a>

Memeriksa enkripsi untuk sumber PostgreSQL DB instance:

![Halaman Ringkasan instance PostgreSQL DB sumber menunjukkan enkripsi yang tidak diaktifkan untuk penyimpanan.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/820d17c0-0eed-4ed9-9f43-cbada081d924/images/d53d1dab-b5c2-452d-b823-ba3d6508ad15.png)


Catatan tambahan untuk pola ini:
+ Aktifkan replikasi pada PostgreSQL dengan mengatur parameter ke 1. `rds.logical_replication`

**Catatan penting:** Slot replikasi menyimpan file write ahead log (WAL) sampai file dikonsumsi secara eksternal—misalnya, oleh`pg_recvlogical`; dengan mengekstrak, mengubah, dan memuat (ETL) pekerjaan; atau oleh AWS DMS. Saat Anda menetapkan nilai `rds.logical_replication` parameter ke 1, AWS DMS menetapkan`wal_level`,, `max_wal_senders``max_replication_slots`, dan `max_connections` parameter. Jika slot replikasi logis hadir tetapi tidak ada konsumen untuk file WAL yang disimpan oleh slot replikasi, Anda mungkin melihat peningkatan penggunaan disk log transaksi dan penurunan konstan dalam ruang penyimpanan gratis. Untuk informasi lebih lanjut dan langkah-langkah untuk mengatasi masalah ini, lihat artikel [Bagaimana saya bisa mengidentifikasi apa yang menyebabkan kesalahan “Tidak ada ruang tersisa di perangkat” atau "DiskFull" di Amazon RDS for](https://aws.amazon.com/premiumsupport/knowledge-center/diskfull-error-rds-postgresql/) PostgreSQL? di Pusat Pengetahuan AWS Support.
+ Perubahan skema apa pun yang Anda buat pada instans DB sumber setelah Anda membuat snapshot DB tidak akan ada pada instans DB target.
+ Setelah Anda membuat instans DB terenkripsi, Anda tidak dapat mengubah kunci KMS yang digunakan oleh instans DB tersebut. Pastikan untuk menentukan persyaratan kunci KMS Anda sebelum Anda membuat instans DB terenkripsi Anda.
+ Anda harus menonaktifkan pemicu dan kunci asing pada instans DB target sebelum menjalankan tugas AWS DMS. Anda dapat mengaktifkan kembali ini ketika tugas selesai.