

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

# Database & penyimpanan
<a name="databases-storage-pattern-list"></a>

**Topics**
+ [Basis Data](databases-pattern-list.md)
+ [Penyimpanan & cadangan](storageandbackup-pattern-list.md)

# Basis Data
<a name="databases-pattern-list"></a>

**Topics**
+ [Mengakses tabel Microsoft SQL Server lokal dari Microsoft SQL Server di Amazon EC2 menggunakan server tertaut](access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers.md)
+ [Tambahkan HA ke Oracle PeopleSoft di Amazon RDS Custom dengan menggunakan replika baca](add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.md)
+ [Menganalisis dependensi objek untuk migrasi database sebagian dari Oracle ke PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Menilai kinerja kueri untuk memigrasi database SQL Server ke MongoDB Atlas di AWS](assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws.md)
+ [Mengotomatiskan blue/green penyebaran database global Amazon Aurora dengan menggunakan prinsip IAc](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Otomatiskan replikasi instans Amazon RDS di seluruh Akun AWS](automate-the-replication-of-amazon-rds-instances-across-aws-accounts.md)
+ [Mengotomatiskan tugas database dalam edisi SQL Server Express yang berjalan di Amazon EC2 dengan menggunakan AWS Lambda dan Penjadwal Tugas](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Otomatiskan failover dan failback lintas wilayah dengan menggunakan DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Secara otomatis mencadangkan database SAP HANA menggunakan Systems Manager dan EventBridge](automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.md)
+ [Secara otomatis menghasilkan model PynamoDB dan fungsi CRUD untuk Amazon DynamoDB dengan menggunakan aplikasi Python](automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.md)
+ [Blokir akses publik ke Amazon RDS dengan menggunakan Cloud Custodian](block-public-access-to-amazon-rds-by-using-cloud-custodian.md)
+ [Konfigurasikan otentikasi Windows untuk Amazon RDS untuk Microsoft SQL Server menggunakan AWS Managed Microsoft AD](configure-windows-authentication-for-amazon-rds-using-microsoft-ad.md)
+ [Mengonfigurasikan akses lintas akun ke Amazon DynamoDB](configure-cross-account-access-to-amazon-dynamodb.md)
+ [Konfigurasikan perutean hanya-baca dalam grup ketersediaan Selalu Aktif di SQL Server di AWS](configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.md)
+ [Connect dengan menggunakan terowongan SSH di pgAdmin](connect-by-using-an-ssh-tunnel-in-pgadmin.md)
+ [Mengkonversi kueri JSON Oracle ke database PostgreSQL SQL](convert-json-oracle-queries-into-postgresql-database-sql.md)
+ [Salin tabel Amazon DynamoDB di seluruh akun menggunakan AWS Backup](copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.md)
+ [Salin tabel Amazon DynamoDB di seluruh akun menggunakan implementasi kustom](copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation.md)
+ [Buat laporan biaya dan penggunaan terperinci untuk Amazon RDS dan Amazon Aurora](create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora.md)
+ [Menerapkan instance cluster failover SQL Server di Amazon EC2 dan Amazon FSx dengan menggunakan Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Meniru array PL/SQL asosiatif Oracle di Amazon Aurora PostgreSQL dan Amazon RDS untuk PostgreSQL](emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql.md)
+ [Aktifkan koneksi terenkripsi untuk instans PostgreSQL DB di Amazon RDS](enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.md)
+ [Enkripsi Amazon RDS yang ada untuk instans DB Amazon RDS for PostgreSQL](encrypt-an-existing-amazon-rds-for-postgresql-db-instance.md)
+ [Menerapkan penandaan otomatis database Amazon RDS saat diluncurkan](enforce-automatic-tagging-of-amazon-rds-databases-at-launch.md)
+ [Perkirakan biaya tabel DynamoDB untuk kapasitas sesuai permintaan](estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.md)
+ [Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB](estimate-storage-costs-for-an-amazon-dynamodb-table.md)
+ [Perkirakan ukuran mesin Amazon RDS untuk database Oracle dengan menggunakan laporan AWR](estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.md)
+ [Ekspor Amazon RDS untuk tabel SQL Server ke bucket S3 dengan menggunakan AWS DMS](export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.md)
+ [Menangani blok anonim dalam pernyataan SQL Dinamis di Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Membantu menegakkan penandaan DynamoDB](help-enforce-dynamodb-tagging.md)
+ [Menerapkan pemulihan bencana lintas wilayah dengan AWS DMS dan Amazon Aurora](implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.md)
+ [Migrasikan fungsi dan prosedur Oracle yang memiliki lebih dari 100 argumen ke PostgreSQL](migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql.md)
+ [Migrasikan beban kerja Redis ke Redis Enterprise Cloud di AWS](migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.md)
+ [Migrasikan SAP HANA ke AWS menggunakan SAP HSR dengan nama host yang sama](migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.md)
+ [Migrasi grup ketersediaan Microsoft SQL Server Always On menggunakan AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.md)
+ [Migrasikan SQL Server ke AWS menggunakan grup ketersediaan terdistribusi](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Migrasi database relasional ke MongoDB Atlas di AWS](migrate-relational-database-to-mongodb-atlas.md)
+ [Migrasikan lingkungan MongoDB yang dihosting sendiri ke MongoDB Atlas di AWS](migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud.md)
+ [Migrasikan database Oracle ke Amazon DynamoDB menggunakan AWS DMS](migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Oracle dan AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.md)
+ [Memigrasikan database MySQL lokal ke Amazon EC2](migrate-an-on-premises-mysql-database-to-amazon-ec2.md)
+ [Pantau Amazon Aurora untuk instance tanpa enkripsi](monitor-amazon-aurora-for-instances-without-encryption.md)
+ [Memantau GoldenGate log Oracle dengan menggunakan Amazon CloudWatch](monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.md)
+ [Replatform Oracle Database Enterprise Edition ke Edisi Standar 2 di Amazon RDS for Oracle](replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle.md)
+ [Replikasi database mainframe ke AWS dengan menggunakan Exactly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)
+ [Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager](schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager.md)
+ [Mengirim pemberitahuan untuk instans database Amazon RDS for SQL Server dengan menggunakan server SMTP lokal dan Database Mail](send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.md)
+ [Siapkan pemulihan bencana untuk SAP di IBM Db2 di AWS](set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.md)
+ [Siapkan CI/CD pipeline untuk migrasi database dengan menggunakan Terraform](set-up-ci-cd-pipeline-for-db-migration-with-terraform.md)
+ [Mengatur cluster failover Microsoft SQL Server di Amazon EC2 menggunakan Windows FSx File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Menyiapkan HA/DR arsitektur untuk Oracle E-Business Suite di Amazon RDS Custom dengan database siaga aktif](set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database.md)
+ [Streaming data dari IBM Db2, SAP, Sybase, dan database lainnya ke MongoDB Atlas AWS](stream-data-from-ibm-db2-to-mongodb-atlas.md)
+ [Peran transisi untuk PeopleSoft aplikasi Oracle di Amazon RDS Custom for Oracle](transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.md)
+ [Membongkar data dari klaster Amazon Redshift di seluruh akun ke Amazon S3](unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.md)
+ [Pola migrasi database berdasarkan beban kerja](databases-database-migration-patterns-by-workload-pattern-list.md)
+ [Lebih banyak pola](databases-more-patterns-pattern-list.md)

# Mengakses tabel Microsoft SQL Server lokal dari Microsoft SQL Server di Amazon EC2 menggunakan server tertaut
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers"></a>

*Tirumala Dasari dan Eduardo Valentim, Amazon Web Services*

## Ringkasan
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-summary"></a>

Pola ini menjelaskan cara mengakses tabel database Microsoft SQL Server lokal yang berjalan di Microsoft Windows, dari database Microsoft SQL Server yang berjalan atau dihosting di instans Amazon Elastic Compute Cloud ( EC2Amazon) Windows atau Linux dengan menggunakan server tertaut.

## Prasyarat dan batasan
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Amazon EC2 dengan Microsoft SQL Server berjalan di Amazon Linux AMI (Gambar Mesin Amazon)
+ AWS Direct Connect antara server Microsoft SQL Server (Windows) lokal dan instans Windows atau Linux EC2 

**Versi produk**
+ SQL Server 2016 atau yang lebih baru

## Arsitektur
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal yang berjalan di Windows
+ Amazon EC2 dengan Microsoft SQL Server berjalan pada Windows AMI atau Linux AMI

**Tumpukan teknologi target**
+ Amazon EC2 dengan Microsoft SQL Server berjalan di Amazon Linux AMI
+ Amazon EC2 dengan Microsoft SQL Server berjalan pada Windows AMI

**Arsitektur basis data sumber dan target**

![\[AWS Cloud architecture with VPC, availability zones, and hybrid environment connecting to on-premises database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8e4a3222-0850-4980-8028-c710dcdb9186/images/fa157992-0ed9-46e1-8059-0cbbb74a98ec.png)


## Alat
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-tools"></a>
+ [Microsoft SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16) adalah lingkungan terintegrasi untuk mengelola infrastruktur SQL Server. Ini menyediakan antarmuka pengguna dan sekelompok alat dengan editor skrip kaya yang berinteraksi dengan SQL Server.

## Epik
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-epics"></a>

### Ubah mode otentikasi ke Windows untuk SQL Server di Windows SQL Server
<a name="change-authentication-mode-to-windows-for-sql-server-in-windows-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke Windows SQL Server melalui SSMS. |  | DBA | 
| Ubah mode otentikasi ke Windows di SQL Server dari menu konteks (klik kanan) untuk instance Windows SQL Server. |  | DBA | 

### Mulai ulang layanan Windows MSSQL
<a name="restart-the-windows-mssql-service"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai ulang layanan SQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers.html) | DBA | 

### Buat login baru dan pilih database untuk diakses di Windows SQL Server
<a name="create-new-login-and-choose-databases-to-access-in-windows-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Di tab Keamanan, buka menu konteks (klik kanan) untuk Login dan pilih login baru. |  | DBA | 
| Di tab Umum, pilih otentikasi SQL Server, masukkan nama pengguna, masukkan kata sandi, lalu konfirmasikan kata sandi dan hapus opsi untuk mengubah kata sandi pada login berikutnya. |  | DBA | 
| Di tab Peran Server, pilih Publik. |  | DBA | 
| Di tab Pemetaan Pengguna, pilih database dan skema yang ingin Anda akses, lalu sorot database untuk memilih peran database. | Pilih public dan db\$1datareader untuk mengakses data dari tabel database. | DBA | 
| Pilih OK untuk membuat pengguna. |  | DBA | 

### Tambahkan IP Windows SQL Server ke file host Linux SQL Server
<a name="add-windows-sql-server-ip-to-linux-sql-server-host-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke kotak Linux SQL Server melalui jendela terminal. |  | DBA | 
| Buka file /etc/hosts dan tambahkan alamat IP mesin Windows dengan SQL Server. |  | DBA | 
| Simpan file host. |  | DBA | 

### Buat server tertaut di Linux SQL Server
<a name="create-linked-server-on-linux-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server tertaut dengan menggunakan prosedur tersimpan master.sys.sp\$1addlinkedserver dan master.dbo.sp\$1addlinkedsrvlogin. | Untuk informasi selengkapnya tentang menggunakan prosedur tersimpan ini, lihat bagian *Informasi tambahan*. | DBA, Pengembang | 

### Verifikasi server dan database tertaut yang dibuat di SSMS
<a name="verify-the-created-linked-server-and-databases-in-ssms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Di Linux SQL Server di SSMS, buka Server Tertaut dan segarkan. |  | DBA | 
| Perluas server dan katalog tertaut yang dibuat di panel kiri. | Anda akan melihat database SQL Server yang dipilih dengan tabel dan tampilan. | DBA | 

### Verifikasi bahwa Anda dapat mengakses tabel database Windows SQL Server
<a name="verify-that-you-can-access-windows-sql-server-database-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Di jendela kueri SSMS, jalankan kueri: “pilih 3 teratas \$1 dari [sqllin] .dms\$1sample\$1win.dbo.mlb\$1data”. | Perhatikan bahwa klausa FROM menggunakan sintaks empat bagian: computer.database.schema.table (misalnya, PILIH nama "database” FROM [sqllin] .master.sys.databases). SQL2 Dalam contoh kami, kami membuat alias untuk SQL2 dalam file host, jadi Anda tidak perlu memasukkan nama NetBIOS yang sebenarnya di antara tanda kurung siku. Jika Anda menggunakan nama NetBIOS yang sebenarnya, perhatikan bahwa AWS default ke nama NetBIOS seperti Win-XXXX, dan SQL Server memerlukan tanda kurung siku untuk nama dengan tanda hubung. | DBA, Pengembang | 

## Sumber daya terkait
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-resources"></a>
+ [Catatan rilis untuk SQL Server di Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes?view=sql-server-2017) 

 

## Informasi tambahan
<a name="access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers-additional"></a>

**Menggunakan prosedur tersimpan untuk membuat server tertaut**

SSMS tidak mendukung pembuatan server tertaut untuk Linux SQL Server, jadi Anda harus menggunakan prosedur tersimpan ini untuk membuatnya:

```
EXEC master.sys.sp_addlinkedserver @server= N'SQLLIN' , @srvproduct= N'SQL Server'    
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SQLLIN',@useself=N'False',@locallogin=NULL,@rmtuser=N'username',@rmtpassword='Test123$'
```

Catatan 1: Masukkan kredenal masuk yang Anda buat sebelumnya di Windows SQL Server dalam prosedur tersimpan. `master.dbo.sp_addlinkedsrvlogin`

Catatan 2: `@server` nama `SQLLIN` dan nama entri file host `172.12.12.4 SQLLIN` harus sama.

 Anda dapat menggunakan proses ini untuk membuat server tertaut untuk skenario berikut:
+ Linux SQL Server ke Windows SQL Server melalui server tertaut (seperti yang ditentukan dalam pola ini)
+ Windows SQL Server ke Linux SQL Server melalui server tertaut
+ Linux SQL Server ke Linux SQL Server lain melalui server yang terhubung

# Tambahkan HA ke Oracle PeopleSoft di Amazon RDS Custom dengan menggunakan replika baca
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica"></a>

*sampath kathirvel, Amazon Web Services*

## Ringkasan
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-summary"></a>

Untuk menjalankan solusi [Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) Enterprise Resource Planning (ERP) di Amazon Web Services (AWS), Anda dapat menggunakan [Amazon Relational Database Service (Amazon RDS) atau Amazon](https://aws.amazon.com/rds/) [RDS Custom for](https://aws.amazon.com/rds/custom/) Oracle, yang mendukung aplikasi lama, kustom, dan paket yang memerlukan akses ke sistem operasi dan lingkungan database yang mendasarinya. Untuk faktor kunci yang perlu dipertimbangkan saat merencanakan migrasi, lihat [Strategi migrasi database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) di AWS Prescriptive Guidance.

Pada tulisan ini, RDS Custom for Oracle tidak mendukung opsi [Multi-AZ](https://aws.amazon.com/blogs/aws/multi-az-option-for-amazon-rds-oracle/), yang tersedia untuk [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) sebagai solusi HA menggunakan replikasi penyimpanan. Sebaliknya, pola ini mencapai HA dengan menggunakan database siaga yang membuat dan memelihara salinan fisik database utama. Pola ini berfokus pada langkah-langkah untuk menjalankan database PeopleSoft aplikasi di Amazon RDS Custom dengan HA dengan menggunakan Oracle Data Guard untuk menyiapkan replika baca.

Pola ini juga mengubah replika baca menjadi mode hanya-baca. Memiliki replika baca Anda dalam mode hanya-baca memberikan manfaat tambahan:
+ Memunggah beban kerja hanya-baca dari database utama
+ Mengaktifkan perbaikan otomatis blok rusak dengan mengambil blok sehat dari database siaga menggunakan fitur Oracle Active Data Guard
+ Menggunakan kemampuan Far Sync untuk menjaga database siaga jarak jauh tetap sinkron tanpa overhead kinerja yang terkait dengan transmisi log redo jarak jauh.

Menggunakan replika dalam mode read-only memerlukan opsi [Oracle Active Data Guard](https://www.oracle.com/assets/technology-price-list-070617.pdf), yang datang dengan biaya tambahan karena merupakan fitur berlisensi terpisah dari Oracle Database Enterprise Edition.

## Prasyarat dan batasan
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-prereqs"></a>

**Prasyarat**
+  PeopleSoft Aplikasi yang ada di Amazon RDS Custom. Jika Anda tidak memiliki aplikasi, lihat polanya [Migrasikan Oracle ke PeopleSoft Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) Custom.
+ Tingkat PeopleSoft aplikasi tunggal. Namun, Anda dapat menyesuaikan pola ini untuk bekerja dengan beberapa tingkatan aplikasi.
+ Amazon RDS Kustom dikonfigurasi dengan setidaknya 8 GB ruang swap.
+ Lisensi database Oracle Active Data Guard untuk mengubah replika baca menjadi mode hanya-baca dan menggunakannya untuk membongkar tugas pelaporan ke siaga. Untuk informasi selengkapnya, lihat [Daftar Harga Komersil Teknologi Oracle](https://www.oracle.com/corporate/pricing/#technology).

**Keterbatasan******
+ Batasan umum dan konfigurasi yang tidak didukung untuk [RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.limits)
+ Keterbatasan yang terkait dengan [Amazon RDS Custom untuk replika baca Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html#custom-rr.limitations)

**Versi produk**
+ Untuk versi Oracle Database yang didukung oleh Amazon RDS Custom, lihat [RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora) for Oracle.
+ Untuk kelas instans Oracle Database yang didukung oleh Amazon RDS Custom, lihat [dukungan kelas instans DB untuk RDS Custom for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances) Oracle.

## Arsitektur
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-architecture"></a>

**Tumpukan teknologi target**
+ Amazon RDS Custom for Oracle
+ AWS Secrets Manager
+ Penjaga Data Aktif Oracle
+ Aplikasi Oracle PeopleSoft 

**Arsitektur target**

Diagram berikut menunjukkan instans Amazon RDS Custom DB dan replika baca Amazon RDS Custom. Replika baca menggunakan Oracle Active Data Guard untuk mereplikasi ke Availability Zone lain. Anda juga dapat menggunakan replika baca untuk membongkar lalu lintas baca di database utama dan untuk tujuan pelaporan.

![\[VPC mencakup AWS Secrets Manager, Amazon EFS, tingkat aplikasi, dan tingkat basis data.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7df4b2d0-b833-4ba3-98e4-a178db395d9d/images/463aefbe-70ad-4cd3-9ddc-0d8347e848c6.png)


Untuk arsitektur representatif yang menggunakan Oracle PeopleSoft di AWS, lihat [Menyiapkan PeopleSoft arsitektur yang sangat tersedia di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html).

## Alat
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-tools"></a>

**Layanan AWS**
+ [Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) adalah layanan database terkelola untuk aplikasi lama, kustom, dan paket yang memerlukan akses ke sistem operasi dan lingkungan database yang mendasarinya.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Dalam pola ini, Anda mengambil kata sandi pengguna database dari Secrets Manager `RDS_DATAGUARD` dengan nama `do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg` rahasia.

**Alat Lainnya**
+ [Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/preface.html#GUID-B6209E95-9DA8-4D37-9BAD-3F000C7E3590) membantu Anda membuat, memelihara, mengelola, dan memantau database siaga.

## Praktik terbaik
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-best-practices"></a>

Untuk bekerja menuju tujuan zero data loss (RPO = 0), gunakan mode perlindungan `MaxAvailability` Data Guard, dengan `SYNC+NOAFFIRM` pengaturan redo transport untuk kinerja yang lebih baik. Untuk informasi selengkapnya tentang memilih mode perlindungan basis data, lihat bagian *Informasi tambahan*.

## Epik
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-epics"></a>

### Buat replika baca
<a name="create-the-read-replica"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat replika baca. | Untuk membuat replika baca instans Amazon RDS Custom DB, ikuti petunjuk dalam [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.Create) dan gunakan instans Amazon RDS Custom DB yang Anda buat (lihat bagian *Prasyarat*) sebagai database sumber.Secara default, replika baca Kustom Amazon RDS dibuat sebagai siaga fisik dan dalam keadaan terpasang. Ini disengaja untuk memastikan kepatuhan dengan lisensi Oracle Active Data Guard.Pola ini mencakup kode untuk menyiapkan database kontainer multitenant (CDB) atau instance non-CDB. | DBA | 

### Ubah mode perlindungan Oracle Data Guard menjadi MaxAvailability
<a name="change-oracle-data-guard-protection-mode-to-maxavailability"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Akses konfigurasi broker Data Guard pada database utama. | Dalam contoh ini, replika baca Kustom Amazon RDS adalah `RDS_CUSTOM_ORCL_D` untuk instans non-CDB dan `RDS_CUSTOM_RDSCDB_B` untuk instance CDB. Database untuk non-CDB adalah `orcl_a` (primer) dan `orcl_d` (siaga). Nama database untuk CDB adalah `rdscdb_a` (primer) dan `rdscdb_b` (siaga).Anda dapat terhubung ke replika baca Kustom RDS secara langsung atau melalui database utama. Anda dapat menemukan nama layanan bersih untuk database Anda di `tnsnames.ora` file yang terletak di `$ORACLE_HOME/network/admin` direktori. RDS Custom for Oracle secara otomatis mengisi entri ini untuk database utama Anda dan replika baca Anda.Kata sandi untuk `RDS_DATAGUARD` pengguna disimpan di AWS Secrets Manager, dengan nama rahasia`do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg`. Untuk informasi selengkapnya tentang cara menyambung ke instans Kustom RDS menggunakan kunci SSH (Secure Shell) yang diambil dari Secrets Manager, lihat [Menyambung ke instans RDS Custom DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.ssh) menggunakan SSH.Untuk mengakses konfigurasi broker Oracle Data Guard melalui baris perintah Data Guard (`dgmgrl`), gunakan kode berikut.**Non-CDB**<pre>$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 22:44:49 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />DGMGRL> <br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Average Apply Rate: 11.00 KByte/s<br />Instance(s):<br />ORCL<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 20:24:11 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_B"<br />Connected as SYSDG.<br />DGMGRL><br />DGMGRL> show database rdscdb_b<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 2.00 KByte/s<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL></pre> | DBA | 
| Ubah pengaturan transport log dengan menghubungkan ke DGMGRL dari node utama. | Ubah mode transportasi log menjadi`FastSync`, sesuai dengan pengaturan `SYNC+NOAFFIRM` redo transport. Untuk memastikan bahwa Anda memiliki pengaturan yang valid setelah peralihan peran, ubah untuk database utama dan database siaga.**Non-CDB**<pre>DGMGRL><br />DGMGRL> edit database orcl_d set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database orcl_d LogXptMode;<br />LogXptMode = 'fastsync'<br />DGMGRL> edit database orcl_a set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database orcl_a logxptmode;<br />LogXptMode = 'fastsync'<br />DGMGRL>   </pre>**CDB**<pre>DGMGRL> edit database rdscdb_b set property logxptmode=fastsync;DGMGRL> edit database rdscdb_b set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database rdscdb_b LogXptMode;<br />  LogXptMode = 'fastsync'<br />DGMGRL> edit database rdscdb_a set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database rdscdb_a logxptmode;<br />  LogXptMode = 'fastsync'<br />DGMGRL></pre> | DBA | 
| Ubah mode perlindungan ke MaxAvailability. | Ubah mode perlindungan `MaxAvailability` dengan menghubungkan ke `DGMGRL` dari simpul utama.**Non-CDB**<pre>DGMGRL> edit configuration set protection mode as maxavailability;<br />Succeeded.<br />DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 38 seconds ago)<br />DGMGRL> </pre>**CDB**<pre>DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 57 seconds ago)<br />DGMGRL></pre> | DBA | 

### Ubah status replika dari mount menjadi read-only dan aktifkan redo apply
<a name="change-the-replica-status-from-mount-to-read-only-and-enable-redo-apply"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Stop redo mendaftar untuk database siaga. | Replika baca dibuat dalam `MOUNT` mode secara default. Untuk membukanya dalam mode read-only, pertama-tama Anda harus mematikan redo apply dengan menghubungkan ke `DGMGRL` dari node primer atau siaga.**Non-CDB**<pre>DGMGRL> show database orcl_dDGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 0 seconds (computed 1 second ago)<br />Average Apply Rate: 11.00 KByte/s<br />Real Time Query: OFF<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL> edit database orcl_d set state=apply-off;<br />Succeeded.<br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-OFF<br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 42 seconds (computed 1 second ago)<br />Average Apply Rate: (unknown)<br />Real Time Query: OFF<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>DGMGRL> show configurationDGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 57 seconds ago)<br />DGMGRL> show database rdscdb_b;<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 2.00 KByte/s<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL> edit database rdscdb_b set state=apply-off;<br />Succeeded.<br />DGMGRL> show database rdscdb_b;<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-OFF<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: (unknown)<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS</pre> | DBA | 
| Buka contoh replika baca dalam mode hanya-baca. | Connect ke database siaga dengan menggunakan entri TNS, dan buka dalam mode read-only dengan menghubungkannya dari node primer atau siaga.**Non-CDB**<pre>$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg<br />-bash-4.2$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg<br />SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 23:00:14 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2020, Oracle. All rights reserved.<br />Enter password: <br />Last Successful login time: Fri Sep 30 2022 22:48:27 +00:00<br />Connected to:<br />Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br />Version 19.10.0.0.0<br />SQL> select open_mode from v$database;<br />OPEN_MODE<br />--------------------<br />MOUNTED<br />SQL> alter database open read only;<br />Database altered.<br />SQL> select open_mode from v$database;<br />OPEN_MODE<br />--------------------<br />READ ONLY<br />SQL> </pre>**CDB**<pre>-bash-4.2$ sqlplus C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B as sysdg<br />SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 11 21:14:07 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2022, Oracle.  All rights reserved.<br />Enter password: <br />Last Successful login time: Wed Jan 11 2023 21:12:05 +00:00<br />Connected to:<br />Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br />Version 19.16.0.0.0<br />SQL> select name,open_mode from v$database;<br />NAME   OPEN_MODE<br />--------- --------------------<br />RDSCDB   MOUNTED<br />SQL> alter database open read only;<br />Database altered.<br />SQL> select name,open_mode from v$database;<br />NAME   OPEN_MODE<br />--------- --------------------<br />RDSCDB   READ ONLY<br />SQL></pre> | DBA | 
| Aktifkan redo apply pada instance replika baca. | Aktifkan redo apply pada instance replika baca dengan menggunakan `DGMGR` L dari node primer atau siaga.**Non-CDB**<pre>$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 23:02:16 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />DGMGRL> <br />edit database orcl_d set state=apply-on;<br />DGMGRL> edit database orcl_d set state=apply-on;<br />Succeeded.<br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Average Apply Rate: 496.00 KByte/s<br />Real Time Query: ON<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 21:21:11 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_B"<br />Connected as SYSDG.<br />DGMGRL> edit database rdscdb_b set state=apply-on;<br />Succeeded.<br />DGMGRL> show database rdscdb_b           <br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 0 seconds ago)<br />  Apply Lag:          0 seconds (computed 0 seconds ago)<br />  Average Apply Rate: 35.00 KByte/s<br />  Real Time Query:    ON<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL> show database rdscdb_b   <br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 16.00 KByte/s<br />  Real Time Query:    ON<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL></pre> | DBA | 

## Sumber daya terkait
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-resources"></a>
+ [Mengkonfigurasi Amazon RDS sebagai Oracle Database PeopleSoft (whitepaper AWS)](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf)
+ [Panduan Oracle Data Guard Broker](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/index.html) (dokumentasi referensi Oracle)
+ [Konsep dan Administrasi Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/index.html) (dokumentasi referensi Oracle)

## Informasi tambahan
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-additional"></a>

**Pilih mode perlindungan basis data Anda**

Oracle Data Guard menyediakan tiga mode perlindungan untuk mengonfigurasi lingkungan Data Guard Anda berdasarkan ketersediaan, perlindungan, dan persyaratan kinerja Anda. Tabel berikut merangkum ketiga mode ini.


| 
| 
| Modus perlindungan | Ulangi pengaturan transportasi | Deskripsi | 
| --- |--- |--- |
| ***PERFORMA MAKSIMAL*** | `ASYNC` | Untuk transaksi yang terjadi pada database utama, data redo ditransmisikan secara asinkron dan ditulis ke log redo database siaga. Oleh karena itu, dampak kinerjanya minimal.`MaxPerformance`tidak dapat memberikan RPO = 0 karena pengiriman log asinkron. | 
| ***PERLINDUNGAN MAKSIMAL*** | `SYNC+AFFIRM` | Untuk transaksi pada database utama, data redo ditransmisikan secara sinkron dan ditulis ke database siaga redo log on disk sebelum transaksi diakui. Jika database siaga menjadi tidak tersedia, database utama menutup dirinya sendiri untuk memastikan transaksi dilindungi. | 
| ***KETERSEDIAAN MAKSIMUM*** | `SYNC+AFFIRM` | Ini mirip dengan `MaxProtection` mode, kecuali ketika tidak ada pengakuan yang diterima dari database siaga. Dalam hal ini, ia beroperasi seolah-olah berada dalam `MaxPerformance` mode untuk mempertahankan ketersediaan basis data utama hingga dapat menulis aliran redo ke database siaga yang disinkronkan lagi. | 
| `SYNC+NOAFFIRM` | Untuk transaksi pada database utama, redo ditransmisikan secara sinkron ke database siaga, dan primer hanya menunggu pengakuan bahwa pengulangan telah diterima pada siaga, bukan bahwa itu telah ditulis ke disk siaga. Mode ini, yang juga dikenal sebagai`FastSync`, dapat memberikan manfaat kinerja dengan mengorbankan potensi paparan kehilangan data dalam kasus khusus beberapa kegagalan simultan. | 

Baca replika di RDS Custom for Oracle dibuat dengan mode perlindungan kinerja maksimum, yang juga merupakan mode perlindungan default untuk Oracle Data Guard. Mode kinerja maksimum memberikan dampak kinerja terendah pada database utama, yang dapat membantu Anda memenuhi persyaratan tujuan titik pemulihan (RPO) yang diukur dalam hitungan detik.

Untuk bekerja untuk mencapai tujuan nol kehilangan data (RPO = 0), Anda dapat menyesuaikan mode perlindungan Oracle Data Guard `MaxAvailability` dengan `SYNC+NOAFFIRM` pengaturan untuk redo transport untuk kinerja yang lebih baik. Karena komit pada database utama diakui hanya setelah vektor redo yang sesuai berhasil ditransmisikan ke database siaga, latensi jaringan antara instance utama dan replika dapat menjadi penting untuk beban kerja yang sensitif terhadap komitmen. Sebaiknya lakukan pengujian beban untuk beban kerja Anda guna menilai dampak kinerja saat replika baca disesuaikan untuk dijalankan dalam `MaxAvailability` mode.

Menerapkan replika baca di Availability Zone yang sama dengan database utama memberikan latensi jaringan yang lebih rendah dibandingkan dengan menerapkan replika baca di Availability Zone yang berbeda. Namun, menerapkan replika primer dan baca di Availability Zone yang sama mungkin tidak memenuhi persyaratan HA Anda karena, jika tidak tersedianya Availability Zone, instance primer dan instance replika baca akan terpengaruh.

# Menganalisis dependensi objek untuk migrasi database sebagian dari Oracle ke PostgreSQL
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql"></a>

*Situs web, Amazon Web Services*

## Ringkasan
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-summary"></a>

Pola ini menjelaskan pentingnya mengidentifikasi dan mengelola dependensi sistem secara sistematis saat memigrasikan sebagian database Oracle ke Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora PostgreSQL. Dalam migrasi sebagian, hanya subset objek database dan data dari database asli yang dimigrasikan, sedangkan database sumber terus beroperasi dan melayani aplikasi yang bergantung pada komponen yang tidak bermigrasi.

Anda harus mengidentifikasi dan menganalisis ruang lingkup migrasi saat menangani database skala besar yang memiliki aplikasi yang digabungkan erat dengan dependensi hulu dan hilir. Untuk memulai migrasi sebagian, identifikasi objek lingkup, termasuk tabel, pemicu, tampilan, prosedur tersimpan, fungsi, dan paket. Proses identifikasi ruang lingkup mengikuti pendekatan komprehensif:
+ Objek lingkup tingkat pertama diidentifikasi melalui referensi langsung dalam kode aplikasi dan pekerjaan khusus modul kritis.
+ Objek tingkat kedua diturunkan melalui analisis ketergantungan yang komprehensif.

Ketika Anda memahami bagaimana bagian-bagian yang berbeda dari sistem Anda berinteraksi, Anda dapat merencanakan urutan yang benar untuk memindahkan komponen database dengan lebih baik dan mengurangi risiko kegagalan migrasi. Tabel berikut mencantumkan berbagai jenis analisis ketergantungan.


| 
| 
| Jenis analisis | Area fokus | Tujuan | 
| --- |--- |--- |
| Ketergantungan objek | TabelTampilanProsedur TersimpanFungsiPemicu | Mengidentifikasi hubungan antara objek database dan struktur hierarkisnya | 
| Dependensi segmen | Hubungan kunci asingGantungan kunci primerReferensi lintas skema | Memetakan hubungan data dan menjaga integritas referensial | 
| Dependensi keamanan | Izin penggunaHirarki peranHak istimewa objek | Memastikan migrasi kontrol akses yang tepat dan pemeliharaan keamanan | 
| Pola akses | Operasi bacaOperasi tulis | Menentukan pola interaksi database | 

Untuk menjaga konsistensi antara sistem sumber dan target, buat mekanisme sinkronisasi data selama masa transisi. Anda juga harus memodifikasi kode aplikasi dan fungsi untuk menangani distribusi data di kedua sumber Oracle dan target database PostgreSQL.

## Prasyarat dan batasan
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Database Oracle (sumber)
+ Amazon RDS atau Amazon Aurora PostgreSQL (target)

**Versi produk**
+ Oracle 19c atau yang lebih baru
+ PostgreSQL 16 atau yang lebih baru

## Arsitektur
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Oracle 19c atau yang lebih baru

**Tumpukan teknologi target**
+ Amazon RDS atau Amazon Aurora PostgreSQL

**Arsitektur target**

Diagram berikut menunjukkan proses migrasi dari database Oracle lokal ke Amazon RDS for Oracle, yang melibatkan hal-hal berikut:
+ Mengidentifikasi dependensi database
+ Migrasi kode database dan objek menggunakan AWS Schema Conversion Tool ()AWS SCT
+ Migrasi data menggunakan AWS Database Migration Service ()AWS DMS
+ Mereplikasi perubahan yang sedang berlangsung melalui change data capture (CDC) menggunakan AWS DMS

Untuk informasi selengkapnya, lihat [Mengintegrasikan AWS Database Migration Service dengan AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_DMSIntegration.html) dalam AWS dokumentasi.

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/90160825-3199-4382-95a8-ad63139c5c89/images/b09c36a4-27fa-412e-877e-57a31bcce0dc.png)


## Alat
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-tools"></a>

**Layanan AWS**
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)) untuk Oracle membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional Oracle di. AWS Cloud
+ Amazon Aurora adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ AWS Schema Conversion Tool (AWS SCT) mendukung migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke dalam AWS Cloud atau di antara kombinasi pengaturan cloud dan lokal.

**Layanan lainnya**
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud. Untuk pola ini, Anda dapat menggunakan [SQL\$1 Plus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm).

## Praktik terbaik
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-best-practices"></a>

Untuk praktik terbaik tentang penyediaan dan migrasi database Oracle, lihat [Praktik terbaik untuk bermigrasi ke Amazon RDS for](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/best-practices.html) Oracle.

## Epik
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-epics"></a>

### Identifikasi dependensi objek
<a name="identify-object-dependencies"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel objek. | Identifikasi objek yang penting untuk fungsionalitas aplikasi, dan buat tabel bernama`DEPENDENT_ANALYSIS_BASELINE`. Tambahkan catatan untuk setiap objek ke tabel. Sebagai contoh, lihat bagian *Informasi tambahan*. | Insinyur data, DBA | 
| Buat prosedur database. | Buat prosedur tersimpan bernama `sp_object_dependency_analysis` untuk menganalisis dependensi objek di kedua arah (maju dan mundur) dengan menggunakan data dari tabel. `DBA_DEPENDENCIES` Sebagai contoh, lihat bagian *Informasi tambahan*. | Insinyur data, DBA | 
| Jalankan prosedurnya. | Jalankan skrip di setiap tingkat berturut-turut sampai tidak ada dependensi objek baru yang ditemukan. Semua dependensi dan level disimpan dalam tabel. `DEPENDENT_ANALYSIS_BASELINE` | DBA, Insinyur data | 

### Buat prosedur untuk dependensi tingkat segmen
<a name="create-a-procedure-for-segment-level-dependencies"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel ketergantungan. | Buat tabel dependensi tingkat segmen bernama. `REFERENTIAL_ANALYSIS_BASELINE` Ketika semua dependensi tingkat objek ditemukan, periksa tabel induk dengan menanyakan tabel. `DEPENDENT_ANALYSIS_BASELINE` `DBA_CONSTRAINT`Kecualikan dependensi di mana tabel dasar direferensikan oleh tabel lain. Penimbunan ulang menangani hubungan ini. Berikut ini adalah contoh skrip:<pre>CREATE TABLE REFERENTIAL_ANALYSIS_BASELINE<br />(CHILD_OWNER VARCHAR2(50 BYTE),<br />CHILD_NAME VARCHAR2(100 BYTE),<br />PARENT_OWNER VARCHAR2(50 BYTE),<br />PARENT_NAME VARCHAR2(50 BYTE),<br />REFERENCE_PATH VARCHAR2(1000 BYTE));</pre> | Insinyur data, DBA | 
| Buat prosedur database. | Buat prosedur yang disebut`SP_OBJECT_REFERENTIAL_ANALYSIS`, dan hasilkan analisis referensial untuk semua objek yang diidentifikasi. Sebagai contoh, lihat bagian *Informasi tambahan*. | Insinyur data, DBA | 
| Jalankan prosedurnya. | Jalankan prosedur untuk mendapatkan dependensi referensial. Hasilkan detail objek analisis referensial di`REFERENTIAL_ANALYSIS_BASELINE`. | Insinyur data, DBA | 

### Identifikasi objek yang membaca dan menulis
<a name="identify-objects-that-read-and-write"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel untuk membaca dan menulis objek. | Gunakan skrip berikut untuk membuat tabel objek baca bernama `TABLE_READ_OBJECT_DETAILS` dan tabel objek tulis bernama`TABLE_WRITE_OBJECT_DETAILS`:<pre>CREATE TABLE TABLE_READ_OBJECT_DETAILS<br />(OWNER VARCHAR2(50 BYTE),<br />TAB_NAME VARCHAR2(50 BYTE),<br />READER_OWNER VARCHAR2(50 BYTE),<br />READER_NAME VARCHAR2(50 BYTE),<br />READER_TYPE VARCHAR2(50 BYTE));</pre><pre>CREATE TABLE TABLE_WRITE_OBJECT_DETAILS<br />(TABLE_NAME VARCHAR2(100 BYTE),<br />WRITEOBJ_OWNER VARCHAR2(100 BYTE),<br />WRITEOBJ_NAME VARCHAR2(100 BYTE),<br />WRITEOBJ_TYPE VARCHAR2(100 BYTE),<br />LINE VARCHAR2(100 BYTE),<br />TEXT VARCHAR2(4000 BYTE),<br />OWNER VARCHAR2(50 BYTE));</pre> | Insinyur data, DBA | 
| Buat prosedur untuk analisis. | Buat prosedur `SP_READER_OBJECTS_ANALYSIS` dan `SP_WRITER_OBJECTS_ANALYSIS` untuk menganalisis objek baca dan tulis objek, masing-masing. Prosedur ini menggunakan pencocokan pola untuk menemukan objek terkait. Sebagai contoh, lihat bagian *Informasi tambahan*. | Insinyur data, DBA | 
| Jalankan prosedurnya. | Jalankan prosedur ini untuk mengidentifikasi objek dependen. | DBA, Insinyur data | 

### Tinjau hak istimewa basis data
<a name="review-database-privileges"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel untuk meninjau hak istimewa. | Buat tabel untuk menganalisis hak istimewa bernama`OBJECT_PRIVS_ANALYSIS`. Untuk menangkap hak istimewa objek secara rekursif dalam `DEPENDENT_ANALYSIS_BASELINE` tabel, gunakan skrip berikut:<pre>CREATE TABLE OBJECT_PRIVS_ANALYSIS<br />(OWNER VARCHAR2(50 BYTE),<br />OBJECT_NAME VARCHAR2(50 BYTE),<br />USER_NAME VARCHAR2(50 BYTE),<br />PRIVS VARCHAR2(50 BYTE));</pre> | Insinyur data, DBA | 
| Buat prosedur untuk meninjau hak istimewa. | Buat prosedur bernama`SP_OBJECT_PRIVS_ANALYSIS`. Hasilkan analisis hak istimewa untuk objek yang diidentifikasi. Sebagai contoh, lihat bagian *Informasi tambahan*. | DBA, Insinyur data | 
| Jalankan prosedurnya. | Jalankan prosedur untuk menangkapnya di `OBJECT_PRIVS_ANALYSIS` tabel. | DBA, Insinyur data | 

## Pemecahan masalah
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Tidak dapat mengakses tabel kamus | Pastikan bahwa pengguna yang membuat objek analisis dapat mengakses tabel DBA. | 

## Sumber daya terkait
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-resources"></a>

**Dokumentasi AWS**
+ [Dokumentasi Amazon RDS dan Aurora](https://docs.aws.amazon.com/rds/)
+ [Basis data Oracle 19c ke buku pedoman migrasi Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html)
+ [Apa itu AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/)
+ [Apa itu AWS Schema Conversion Tool?](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/)

**Dokumentasi lainnya**
+ [Objek database Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Database-Objects.html)

## Informasi tambahan
<a name="multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql-additional"></a>

**Script untuk `DEPENDENT_ANALYSIS_BASELINE`**

```
CREATE TABLE DEPENDENT_ANALYSIS_BASELINE
(OWNER VARCHAR2(128 BYTE) NOT NULL ENABLE,
OBJECT_NAME VARCHAR2(128 BYTE) NOT NULL ENABLE,
OBJECT_TYPE VARCHAR2(20 BYTE),
DEPEDNCY_LEVEL NUMBER,
PROJECT_NEED VARCHAR2(20 BYTE),
CATAGORY VARCHAR2(4000 BYTE),
COMMENTS VARCHAR2(4000 BYTE),
CATAGORY1 CLOB,
COMMENTS1 CLOB,
CUSTOMER_COMMENTS VARCHAR2(1000 BYTE),
BACKFILL_TO_GUS VARCHAR2(1000 BYTE),
BACKFILL_NEAR_REAL_TIME_OR_BATCH VARCHAR2(1000 BYTE),
PK_EXISTS VARCHAR2(3 BYTE),
UI_EXISTS VARCHAR2(3 BYTE),
LOB_EXISTS VARCHAR2(3 BYTE),
MASTER_LINK VARCHAR2(100 BYTE),
CONSTRAINT PK_DEPENDENT_ANALYSIS_BASELINE PRIMARY KEY (OWNER,OBJECT_NAME,OBJECT_TYPE));
```

**Prosedur untuk `SP_WRITER_OBJECTS_ANALYSIS`**

```
CREATE OR REPLACE PROCEDURE SP_WRITER_OBJECTS_ANALYSIS IS
BEGIN
  EXECUTE IMMEDIATE 'TRUNCATE TABLE TABLE_WRITE_OBJECT_DETAILS';
  FOR I IN (SELECT OWNER, OBJECT_NAME FROM DEPENDENT_ANALYSIS_BASELINE WHERE OBJECT_TYPE = 'TABLE')
  LOOP
    INSERT INTO TABLE_WRITE_OBJECT_DETAILS(OWNER, TABLE_NAME, WRITEOBJ_OWNER, WRITEOBJ_NAME, WRITEOBJ_TYPE, LINE, TEXT)
    SELECT DISTINCT I.OWNER, I.OBJECT_NAME, OWNER WRITEOBJ_OWNER, NAME, TYPE, LINE, TRIM(TEXT)
    FROM DBA_SOURCE 
    WHERE UPPER(TEXT) LIKE '%' || I.OBJECT_NAME || '%'
      AND (UPPER(TEXT) LIKE '%INSERT%' || I.OBJECT_NAME || '%' 
        OR UPPER(TEXT) LIKE '%UPDATE%' || I.OBJECT_NAME || '%' 
        OR UPPER(TEXT) LIKE '%DELETE%' || I.OBJECT_NAME || '%' 
        OR UPPER(TEXT) LIKE '%UPSERT%' || I.OBJECT_NAME || '%' 
        OR UPPER(TEXT) LIKE '%MERGE%' || I.OBJECT_NAME || '%') 
      AND UPPER(TEXT) NOT LIKE '%PROCEDURE%' 
      AND UPPER(TEXT) NOT LIKE 'PROCEDURE%' 
      AND UPPER(TEXT) NOT LIKE '%FUNCTION%' 
      AND UPPER(TEXT) NOT LIKE 'FUNCTION%'
      AND UPPER(TEXT) NOT LIKE '%TRIGGER%' 
      AND UPPER(TEXT) NOT LIKE 'TRIGGER%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE '%AFTER UPDATE%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE 'BEFORE UPDATE%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE 'BEFORE INSERT%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE 'AFTER INSERT%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE 'BEFORE DELETE%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE 'AFTER DELETE%' 
      AND UPPER(TRIM(TEXT)) NOT LIKE '%GGLOGADM.GG_LOG_ERROR%' 
      AND (TRIM(TEXT) NOT LIKE '/*%' AND TRIM(TEXT) NOT LIKE '--%' ) 
      AND (OWNER, NAME, TYPE) IN (SELECT OWNER, NAME, TYPE FROM DBA_DEPENDENCIES WHERE REFERENCED_NAME = I.OBJECT_NAME);
  END LOOP;
END;
```

**Script untuk `SP_READER_OBJECTS_ANALYSIS`**

```
CREATE OR REPLACE PROCEDURE SP_READER_OBJECTS_ANALYSIS IS
BEGIN
  EXECUTE IMMEDIATE 'TRUNCATE TABLE TABLE_READ_OBJECT_DETAILS';
  FOR I IN (SELECT OWNER, OBJECT_NAME FROM DEPENDENT_ANALYSIS_BASELINE WHERE OBJECT_TYPE = 'TABLE')
  LOOP
    INSERT INTO TABLE_READ_OBJECT_DETAILS
    SELECT DISTINCT i.owner, i.object_name, owner, name, type 
    FROM dba_dependencies 
    WHERE referenced_name = I.OBJECT_NAME
    AND referenced_type = 'TABLE' 
    AND type NOT IN ('SYNONYM', 'MATERIALIZED VIEW', 'VIEW') 
    AND (owner, name, type) NOT IN (
      SELECT DISTINCT owner, trigger_name, 'TRIGGER' 
      FROM dba_triggers 
      WHERE table_name = I.OBJECT_NAME 
      AND table_owner = i.owner
      UNION ALL
      SELECT DISTINCT owner, name, type 
      FROM dba_source
      WHERE upper(text) LIKE '%' || I.OBJECT_NAME || '%' 
      AND (upper(text) LIKE '%INSERT %' || I.OBJECT_NAME || '%' 
        OR upper(text) LIKE '%UPDATE% ' || I.OBJECT_NAME || '%' 
        OR upper(text) LIKE '%DELETE %' || I.OBJECT_NAME || '%' 
        OR upper(text) LIKE '%UPSERT %' || I.OBJECT_NAME || '%' 
        OR upper(text) LIKE '%MERGE %' || I.OBJECT_NAME || '%') 
      AND upper(text) NOT LIKE '%PROCEDURE %' 
      AND upper(text) NOT LIKE 'PROCEDURE %'
      AND upper(text) NOT LIKE '%FUNCTION %' 
      AND upper(text) NOT LIKE 'FUNCTION %'
      AND upper(text) NOT LIKE '%TRIGGER %'
      AND upper(text) NOT LIKE 'TRIGGER %'
      AND upper(trim(text)) NOT LIKE 'BEFORE INSERT %'
      AND upper(trim(text)) NOT LIKE 'BEFORE UPDATE %' 
      AND upper(trim(text)) NOT LIKE 'BEFORE DELETE %' 
      AND upper(trim(text)) NOT LIKE 'AFTER INSERT %' 
      AND upper(trim(text)) NOT LIKE 'AFTER UPDATE %' 
      AND upper(trim(text)) NOT LIKE 'AFTER DELETE %' 
      AND (trim(text) NOT LIKE '/*%' AND trim(text) NOT LIKE '--%'));
  END LOOP;
END;
```

**Script untuk `SP_OBJECT_REFERENTIAL_ANALYSIS`**

```
CREATE OR REPLACE PROCEDURE SP_OBJECT_REFERENTIAL_ANALYSIS IS
BEGIN
  EXECUTE IMMEDIATE 'TRUNCATE TABLE REFERENTIAL_ANALYSIS_BASELINE';
  INSERT INTO REFERENTIAL_ANALYSIS_BASELINE
  WITH rel AS (
    SELECT DISTINCT c.owner, c.table_name, c.r_owner r_owner,
      (SELECT table_name FROM dba_constraints 
       WHERE constraint_name = c.r_constraint_name 
       AND owner = c.r_owner) r_table_name 
    FROM dba_constraints c 
    WHERE constraint_type = 'R' 
    AND c.owner NOT IN (SELECT username FROM dba_users WHERE oracle_maintained = 'Y')
    AND c.r_owner NOT IN (SELECT username FROM dba_users WHERE oracle_maintained = 'Y')),
  tab_list AS (
    SELECT OWNER, object_name 
    FROM DEPENDENT_ANALYSIS_BASELINE 
    WHERE UPPER(OBJECT_TYPE) = 'TABLE')
  SELECT DISTINCT owner child_owner, table_name child, r_owner parent_owner,
    r_table_name parent, SYS_CONNECT_BY_PATH(r_table_name, ' -> ') || ' -> ' || table_name PATH
  FROM rel 
  START WITH (r_owner, r_table_name) IN (SELECT * FROM tab_list)
  CONNECT BY NOCYCLE (r_owner, r_table_name) = ((PRIOR owner, PRIOR table_name))
  UNION
  SELECT DISTINCT owner child_owner, table_name child, r_owner parent_owner,
    r_table_name parent, SYS_CONNECT_BY_PATH(table_name, ' -> ') || ' -> ' || r_table_name PATH
  FROM rel 
  START WITH (owner, table_name) IN (SELECT * FROM tab_list)
  CONNECT BY NOCYCLE (owner, table_name) = ((PRIOR r_owner, PRIOR r_table_name));
END;
```

**Script untuk `SP_OBJECT_PRIVS_ANALYSIS`**

```
CREATE OR REPLACE PROCEDURE SP_OBJECT_PRIVS_ANALYSIS IS
  V_SQL VARCHAR2(4000);
  V_CNT NUMBER;
BEGIN
  V_SQL := 'TRUNCATE TABLE OBJECT_PRIVS_ANALYSIS';
  EXECUTE IMMEDIATE V_SQL;
  FOR I IN (SELECT OWNER, OBJECT_NAME FROM DEPENDENT_ANALYSIS_BASELINE WHERE OBJECT_TYPE = 'TABLE')
  LOOP
    INSERT INTO OBJECT_PRIVS_ANALYSIS(OWNER, OBJECT_NAME, USER_NAME, PRIVS)
    WITH obj_to_role AS (
      SELECT DISTINCT GRANTEE role_name, 
        DECODE(privilege, 'SELECT', 'READ', 'REFERENCE', 'READ', 'INSERT', 'WRITE', 
               'UPDATE', 'WRITE', 'DELETE', 'WRITE', privilege) privs
      FROM DBA_TAB_PRIVS t, DBA_ROLES r 
      WHERE OWNER = I.OWNER 
      AND TYPE = 'TABLE' 
      AND TABLE_NAME = I.OBJECT_NAME 
      AND t.GRANTEE = r.ROLE 
      AND r.ROLE IN (SELECT ROLE FROM DBA_ROLES WHERE ORACLE_MAINTAINED = 'N')
    )
    SELECT I.OWNER, I.OBJECT_NAME, grantee, privs 
    FROM (
      -- Recursively Role to User mapping with privilege
      SELECT DISTINCT grantee, privs 
      FROM (SELECT rp.granted_role, rp.grantee, privs,
        (SELECT DECODE(COUNT(*), 0, 'ROLE', 'USER') 
         FROM (SELECT 'User' FROM DBA_users WHERE username = rp.GRANTEE)) grantee_type 
        FROM DBA_role_privs rp, obj_to_role r 
        WHERE rp.granted_role = r.role_name 
        AND grantee IN ((SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED = 'N') 
                       UNION (SELECT ROLE FROM DBA_ROLES WHERE ORACLE_MAINTAINED = 'N'))
        AND granted_role IN (SELECT ROLE FROM DBA_ROLES WHERE ORACLE_MAINTAINED = 'N') 
        START WITH granted_role IN (SELECT DISTINCT role_name FROM obj_to_role) 
        CONNECT BY granted_role = PRIOR grantee) 
      WHERE grantee_type = 'USER'
    )
    UNION
    (
      -- Direct Object grants to User
      SELECT I.OWNER, I.OBJECT_NAME, GRANTEE, 
        DECODE(privilege, 'SELECT', 'READ', 'REFERENCE', 'READ', 'INSERT', 'WRITE',
               'UPDATE', 'WRITE', 'DELETE', 'WRITE', privilege) privs 
      FROM DBA_TAB_PRIVS, DBA_USERS 
      WHERE GRANTEE = USERNAME 
      AND OWNER = I.OWNER 
      AND TYPE = 'TABLE' 
      AND TABLE_NAME = I.OBJECT_NAME
    ) 
    ORDER BY 2 DESC;
  END LOOP;
END;
```

**Prosedur untuk `SP_OBJECT_DEPENDENCY_ANALYSIS`**

```
CREATE OR REPLACE PROCEDURE SP_OBJECT_DEPENDENCY_ANALYSIS (v_level NUMBER) IS
  TYPE typ IS RECORD (
    schema VARCHAR2(100),
    obj_type VARCHAR2(100),
    obj_name VARCHAR2(100),
    path VARCHAR2(5000)
  );
  TYPE array IS TABLE OF typ;
  l_data array;
  c SYS_REFCURSOR;
  l_errors NUMBER;
  l_errno NUMBER;
  l_msg VARCHAR2(4000);
  l_idx NUMBER;
  l_level NUMBER;
BEGIN
  l_level := v_level + 1;
  OPEN c FOR 
    WITH obj_list AS (
      SELECT owner schema_name, object_type, object_name 
      FROM DEPENDENT_ANALYSIS_BASELINE 
      WHERE depedncy_level = v_level
    ),
    fw_dep_objects AS (
      SELECT level lvl, owner, name, type, referenced_owner, referenced_name,
        referenced_type, SYS_CONNECT_BY_PATH(name, ' -> ') || ' -> ' || referenced_name PATH 
      FROM dba_dependencies
      START WITH (owner, CASE WHEN type = 'PACKAGE BODY' THEN 'PACKAGE' ELSE type END, name) 
        IN (SELECT schema_name, object_type, object_name FROM obj_list)
      CONNECT BY NOCYCLE (owner, type, name) = 
        ((PRIOR referenced_owner, PRIOR referenced_type, PRIOR referenced_name))
    ),
    bw_dep_objects AS (
      SELECT level lvl, owner, name, type, referenced_owner, referenced_name,
        referenced_type, SYS_CONNECT_BY_PATH(name, ' <- ') || ' <- ' || referenced_name PATH 
      FROM dba_dependencies
      START WITH (referenced_owner, CASE WHEN referenced_type = 'PACKAGE BODY' THEN 'PACKAGE' 
        ELSE referenced_type END, referenced_name) IN (SELECT schema_name, object_type, object_name FROM obj_list)
      CONNECT BY NOCYCLE (referenced_owner, referenced_type, referenced_name) = 
        ((PRIOR owner, PRIOR type, PRIOR name))
    )
    SELECT * FROM (
      (SELECT DISTINCT referenced_owner schema, referenced_type obj_type, 
        referenced_name obj_name, path FROM fw_dep_objects)
      UNION
      (SELECT DISTINCT owner schema, type obj_type, name obj_name, path 
       FROM bw_dep_objects)
    )
    WHERE schema IN (SELECT username FROM all_users WHERE oracle_maintained = 'N')
    ORDER BY obj_type;

  LOOP
    FETCH c BULK COLLECT INTO l_data LIMIT 100;
    BEGIN
      FORALL i IN 1..l_data.count SAVE EXCEPTIONS
        INSERT INTO DEPENDENT_ANALYSIS_BASELINE (
          owner, object_name, object_type, catagory, depedncy_level, project_need, comments
        ) 
        VALUES (
          l_data(i).schema, 
          l_data(i).obj_name,
          CASE WHEN l_data(i).obj_type = 'PACKAGE BODY' THEN 'PACKAGE' ELSE l_data(i).obj_type END,
          'level ' || l_level || ' dependency',
          l_level,
          '',
          'from dependency proc' || l_data(i).path
        );
    EXCEPTION
      WHEN OTHERS THEN
        l_errors := sql%bulk_exceptions.count;
        FOR i IN 1..l_errors LOOP
          l_errno := sql%bulk_exceptions(i).error_code;
          l_msg := SQLERRM(-l_errno);
          l_idx := sql%bulk_exceptions(i).error_index;
          UPDATE DEPENDENT_ANALYSIS_BASELINE 
          SET catagory1 = catagory1 || ', found in level' || l_level || ' dependent of ' || l_data(l_idx).path,
              comments1 = comments1 || ', from dependency proc exception ' || l_data(i).path
          WHERE owner = l_data(l_idx).schema 
          AND object_name = l_data(l_idx).obj_name 
          AND object_type = l_data(l_idx).obj_type;
        END LOOP;
    END;
    EXIT WHEN c%NOTFOUND;
  END LOOP;
  CLOSE c;
END;
```

# Menilai kinerja kueri untuk memigrasi database SQL Server ke MongoDB Atlas di AWS
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws"></a>

*Battulga Purevragchaa, Amazon Web Services*

*Krishnakumar Sathyanarayana, AS Inc PeerIslands *

*Babu Srinivasan, MongoDB*

## Ringkasan
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-summary"></a>

Pola ini memberikan panduan untuk memuat MongoDB dengan data dekat dunia nyata dan menilai kinerja kueri MongoDB yang sedekat mungkin dengan skenario produksi. Penilaian memberikan masukan untuk membantu Anda merencanakan migrasi ke MongoDB dari database relasional. Pola ini menggunakan [PeerIslands Test Data Generator dan Performance Analyzer](https://tools.peerislands.io/) untuk menguji kinerja kueri.

Pola ini sangat berguna untuk migrasi Microsoft SQL Server ke MongoDB, karena melakukan transformasi skema dan memuat data dari instance SQL Server saat ini ke MongoDB bisa sangat kompleks. Sebagai gantinya, Anda dapat memuat data dekat dunia nyata ke MongoDB, memahami kinerja MongoDB, dan menyempurnakan desain skema sebelum memulai migrasi yang sebenarnya.

## Prasyarat dan batasan
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Keakraban dengan [MongoDB](https://www.mongodb.com/docs/atlas/getting-started/) Atlas
+ Sasaran skema MongoDB
+ Pola kueri yang khas

**Batasan**
+ Waktu muat data dan kinerja akan dibatasi oleh ukuran instance cluster MongoDB. Kami menyarankan Anda memilih instans yang direkomendasikan untuk penggunaan produksi guna memahami kinerja dunia nyata.
+ PeerIslands Test Data Generator dan Performance Analyzer saat ini hanya mendukung pemuatan dan kueri data online. Pemrosesan batch offline (misalnya, memuat data ke MongoDB dengan menggunakan konektor Spark) belum didukung.
+ PeerIslands Test Data Generator dan Performance Analyzer mendukung hubungan lapangan dalam koleksi. Itu tidak mendukung hubungan di seluruh koleksi.

**Edisi produk**
+ [Pola ini mendukung [MongoDB Atlas dan MongoDB](https://www.mongodb.com/atlas) Enterprise Advanced.](https://www.mongodb.com/products/mongodb-enterprise-advanced)

## Arsitektur
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-architecture"></a>

**Tumpukan teknologi target**
+ MongoDB Atlas atau MongoDB Enterprise Advanced

**Arsitektur **

![\[Arsitektur untuk menilai kinerja kueri untuk memigrasi database SQL Server ke MongoDB Atlas di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/25f0ab73-d587-4bd0-9fc0-ac675d5aa349/images/717caae4-d52e-4c78-bb7d-2ecb5acccd42.png)


PeerIslands Test Data Generator dan Performance Analyzer dibuat dengan menggunakan Java dan Angular, dan menyimpan data yang dihasilkan di Amazon Elastic Block Store (Amazon EBS). Alat ini terdiri dari dua alur kerja: pembuatan data uji dan pengujian kinerja. 
+ Dalam pembuatan data pengujian, Anda membuat template, yang merupakan representasi JSON dari model data yang harus dihasilkan. Setelah membuat template, Anda dapat menghasilkan data dalam kumpulan target, seperti yang ditentukan oleh konfigurasi pembuatan beban.
+ Dalam pengujian kinerja, Anda membuat profil. Profil adalah skenario pengujian multi-tahap di mana Anda dapat mengonfigurasi operasi membuat, membaca, memperbarui, dan menghapus (CRUD), jalur agregasi, bobot untuk setiap operasi, dan durasi setiap tahap. Setelah Anda membuat profil, Anda dapat menjalankan pengujian kinerja pada database target berdasarkan konfigurasi.

PeerIslands Test Data Generator dan Performance Analyzer menyimpan datanya di Amazon EBS, sehingga Anda dapat menghubungkan Amazon EBS ke MongoDB dengan menggunakan mekanisme koneksi yang didukung MongoDB, termasuk peering, daftar izin, dan titik akhir pribadi. Secara default, alat ini tidak menyertakan komponen operasional; namun, alat ini dapat dikonfigurasi dengan Amazon Managed Service untuk Prometheus, Amazon Managed Grafana, Amazon, CloudWatch dan AWS Secrets Manager jika diperlukan.

## Alat
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-tools"></a>
+ [PeerIslands Test Data Generator dan Performance Analyzer](https://tools.peerislands.io/) mencakup dua komponen. Komponen Test Data Generator membantu Anda menghasilkan data dunia nyata yang sangat spesifik pelanggan berdasarkan skema MongoDB Anda. Alat ini sepenuhnya digerakkan oleh UI dengan pustaka data yang kaya dan dapat digunakan untuk menghasilkan miliaran catatan dengan cepat di MongoDB. Alat ini juga menyediakan kemampuan untuk mengimplementasikan hubungan antar bidang dalam skema MongoDB. Komponen Performance Analyzer membantu Anda menghasilkan kueri dan agregasi yang sangat spesifik pelanggan, dan melakukan pengujian kinerja yang realistis pada MongoDB. Anda dapat menggunakan Performance Analyzer untuk menguji kinerja MongoDB dengan profil beban kaya dan kueri berparameter untuk kasus penggunaan spesifik Anda.

## Praktik terbaik
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-best-practices"></a>

Lihat sumber daya berikut:
+ [Praktik Terbaik Desain Skema MongoDB](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/) (situs web Pengembang MongoDB)
+ [Praktik Terbaik Menerapkan MongoDB Atlas di AWS (situs web MongoDB](https://www.mongodb.com/presentation/best-practices-of-deploying-mongodb-atlas-on-aws))
+ [Menghubungkan Aplikasi dengan Aman ke Pesawat Data Atlas MongoDB dengan AWS (postingan blog PrivateLink AWS](https://aws.amazon.com/blogs/apn/connecting-applications-securely-to-a-mongodb-atlas-data-plane-with-aws-privatelink/))
+ [Panduan Praktik Terbaik untuk Kinerja MongoDB (situs web MongoDB](https://www.mongodb.com/basics/best-practices))

## Epik
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-epics"></a>

### Memahami data sumber Anda
<a name="understand-your-source-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memahami jejak database dari sumber SQL Server saat ini. | Pahami jejak SQL Server Anda saat ini. Hal ini dapat dicapai dengan menjalankan query terhadap `INFORMATION` skema database. Tentukan jumlah tabel dan ukuran setiap tabel. Analisis indeks yang terkait dengan setiap tabel. Untuk informasi lebih lanjut tentang analisis SQL, lihat posting blog [SQL2Mongo: Perjalanan Migrasi Data](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) di situs web. PeerIslands  | DBA | 
| Memahami skema sumber. | Tentukan skema tabel dan representasi bisnis data (misalnya, kode pos, nama, dan mata uang). Gunakan diagram relasi entitas (ER) yang ada atau buat diagram ER dari database yang ada. Untuk informasi lebih lanjut, lihat posting blog [SQL2Mongo: Perjalanan Migrasi Data](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) di PeerIslands situs web. | DBA | 
| Memahami pola kueri. | Dokumentasikan 10 kueri SQL teratas yang Anda gunakan. Anda dapat menggunakan tabel **performance\$1schema.events\$1statements\$1summary\$1by\$1digest yang tersedia dalam database untuk memahami kueri** teratas. Untuk informasi lebih lanjut, lihat posting blog [SQL2Mongo: Perjalanan Migrasi Data](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) di PeerIslands situs web. | DBA | 
| Memahami komitmen SLA. | Dokumentasikan perjanjian tingkat layanan target (SLAs) untuk operasi database. Ukuran umum termasuk latensi kueri dan kueri per detik. Langkah-langkah dan targetnya biasanya tersedia dalam dokumen persyaratan non-fungsional (NFR). | DBA | 

### Tentukan skema MongoDB
<a name="define-the-mongodb-schema"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan skema target. | Tentukan berbagai opsi untuk skema MongoDB target. Untuk informasi lebih lanjut, lihat [Skema dalam dokumentasi](https://www.mongodb.com/docs/atlas/app-services/schemas/) MongoDB Atlas. Pertimbangkan praktik terbaik dan pola desain berdasarkan hubungan tabel.  | Insinyur MongoDB | 
| Tentukan pola kueri target. | Tentukan kueri MongoDB dan jalur agregasi. Kueri ini setara dengan kueri teratas yang Anda ambil untuk beban kerja SQL Server Anda. [Untuk memahami cara membuat pipeline agregasi MongoDB, lihat dokumentasi MongoDB.](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/) | Insinyur MongoDB | 
| Tentukan jenis instance MongoDB. | Tentukan ukuran instance yang Anda rencanakan untuk digunakan untuk pengujian. Untuk panduan, lihat dokumentasi [MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | Insinyur MongoDB | 

### Siapkan database target
<a name="prepare-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan cluster MongoDB Atlas. | [Untuk menyiapkan cluster MongoDB di AWS, ikuti petunjuk dalam dokumentasi MongoDB.](https://www.mongodb.com/docs/atlas/tutorial/create-new-cluster/) | Insinyur MongoDB | 
| Buat pengguna di database target. | [Konfigurasikan cluster MongoDB Atlas untuk akses dan keamanan jaringan dengan mengikuti instruksi dalam dokumentasi MongoDB.](https://www.mongodb.com/docs/atlas/connect-to-database-deployment/) | Insinyur MongoDB | 
| Buat peran yang sesuai di AWS dan konfigurasikan kontrol akses berbasis peran untuk Atlas. | Jika diperlukan, siapkan pengguna tambahan dengan mengikuti petunjuk dalam dokumentasi [MongoDB](https://www.mongodb.com/docs/atlas/security/set-up-unified-aws-access/). Konfigurasikan [otentikasi dan otorisasi melalui peran](https://www.mongodb.com/docs/atlas/security/config-db-auth/) AWS. | Insinyur MongoDB | 
| Siapkan Kompas untuk akses MongoDB Atlas. | Siapkan utilitas [GUI MongoDB Compass untuk kemudahan navigasi](https://www.mongodb.com/products/compass) dan akses. | Insinyur MongoDB | 

### Mengatur beban dasar dengan menggunakan Test Data Generator
<a name="set-up-the-base-load-by-using-test-data-generator"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Generator Data Uji. | Instal [PeerIsland Test Data Generator](https://github.com/PeerIslands/loadgen_binary) di lingkungan Anda. | Insinyur MongoDB | 
| Konfigurasikan Test Data Generator untuk menghasilkan data yang sesuai. | Buat template dengan menggunakan pustaka data untuk menghasilkan data spesifik untuk setiap bidang dalam skema MongoDB. Untuk informasi lebih lanjut, lihat [MongoDB Data Generator & Perf. Video penganalisis](https://vimeo.com/570068857). | Insinyur MongoDB | 
| Generator Data Uji skala horizontal untuk menghasilkan beban yang dibutuhkan. | Gunakan template yang Anda buat untuk memulai pembuatan beban terhadap koleksi target dengan mengonfigurasi paralelisme yang diperlukan. Tentukan kerangka waktu dan skala untuk menghasilkan data yang diperlukan. | Insinyur MongoDB | 
| Validasi beban di MongoDB Atlas. | Periksa data yang dimuat ke MongoDB Atlas. | Insinyur MongoDB | 
| Hasilkan indeks yang diperlukan di MongoDB. | Tentukan indeks sesuai kebutuhan, berdasarkan pola kueri. Untuk praktik terbaik, lihat dokumentasi [MongoDB](https://www.mongodb.com/docs/manual/applications/indexes/). | Insinyur MongoDB | 

### Melakukan pengujian kinerja
<a name="conduct-performance-testing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan profil beban di Performance Analyzer. | Buat profil pengujian kinerja di Performance Analyzer dengan mengonfigurasi kueri tertentu dan bobot yang sesuai, durasi uji coba, dan tahapannya. Untuk informasi lebih lanjut, lihat [MongoDB Data Generator & Perf. Video penganalisis](https://vimeo.com/570068857). | Insinyur MongoDB | 
| Jalankan pengujian kinerja. | Gunakan profil pengujian kinerja yang Anda buat untuk memulai pengujian terhadap pengumpulan target dengan mengonfigurasi paralelisme yang diperlukan. Skala alat uji kinerja secara horizontal untuk menjalankan kueri terhadap MongoDB Atlas. | Insinyur MongoDB | 
| Catat hasil tes. | Rekam latensi P95, P99 untuk kueri. | Insinyur MongoDB | 
| Sesuaikan skema dan pola kueri Anda. | Ubah indeks dan pola kueri untuk mengatasi masalah kinerja apa pun. | Insinyur MongoDB | 

### Tutup proyek
<a name="close-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. | Hapus semua sumber daya sementara yang Anda gunakan untuk Test Data Generator dan Performance Analyzer. | Administrator AWS | 
| Perbarui hasil tes kinerja. | Pahami kinerja kueri MongoDB dan bandingkan dengan Anda. SLAs Jika perlu, sesuaikan skema MongoDB dan jalankan kembali prosesnya. | Insinyur MongoDB | 
| Akhiri proyek. | Tutup proyek dan berikan umpan balik. | Insinyur MongoDB | 

## Sumber daya terkait
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-resources"></a>
+ GitHub [repositori: S3toAtlas](https://github.com/mongodb-partners/S3toAtlas)
+ Skema: Desain Skema [MongoDB](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/)
+ [Pipa agregasi: Pipa agregasi MongoDB](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/)
+ [Ukuran MongoDB Atlas: Pemilihan tingkat ukuran](https://www.mongodb.com/docs/atlas/sizing-tier-selection/)
+ Video: Generator [& Kinerja Data MongoDB](https://vimeo.com/570068857). Analyzer
+ Referensi: [Dokumentasi MongoDB](https://www.mongodb.com/docs/)
+ [Tutorial: [Panduan**** pengembang MongoDB, MongoDB Jumpstart](https://www.mongodb.com/docs/develop-applications/)](https://www.youtube.com/playlist?list=PL4RCxklHWZ9v2lcat4oEVGQhZg6r4IQGV)
+ AWS Marketplace: Atlas**** [MongoDB](https://aws.amazon.com/marketplace/seller-profile?id=c9032c7b-70dd-459f-834f-c1e23cf3d092) di AWS Marketplace
+ Solusi Mitra AWS: [Atlas**** MongoDB pada Penerapan](https://aws.amazon.com/quickstart/architecture/mongodb-atlas/) Referensi AWS

Sumber daya tambahan:
+ [Analisis SQL](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60)
+ [Forum Komunitas Pengembang MongoDB](https://www.mongodb.com/community/forums/)
+ [Pertanyaan Penyetelan Kinerja MongoDB](https://www.mongodb.com/developer/products/mongodb/performance-tuning-tips/)
+ [Analisis Operasional dengan Atlas dan Redshift](https://github.com/mongodb-partners/Atlas_to_Redshift)
+ [Modernisasi aplikasi dengan MongoDB Atlas dan AWS Elastic Beanstalk](https://github.com/mongodb-partners/MEANStack_with_Atlas_on_AWS_EB)

# Mengotomatiskan blue/green penyebaran database global Amazon Aurora dengan menggunakan prinsip IAc
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac"></a>

*Ishwar Chathaiwale, ANKIT JAIN, dan Ramu Jagini, Amazon Web Services*

## Ringkasan
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-summary"></a>

Mengelola pembaruan database, migrasi, atau upaya penskalaan dapat menjadi tantangan bagi organisasi yang menjalankan beban kerja penting di database global [Amazon](https://aws.amazon.com/rds/aurora/global-database/) Aurora. Memastikan bahwa operasi ini dilakukan dengan mulus, tanpa downtime, sangat penting untuk menjaga ketersediaan layanan dan menghindari gangguan bagi pengguna Anda.

Strategi blue/green penyebaran menawarkan solusi untuk tantangan ini dengan memungkinkan Anda menjalankan dua lingkungan yang identik secara bersamaan: biru (lingkungan saat ini) dan hijau (lingkungan baru). Sebuah blue/green strategi memungkinkan Anda untuk menerapkan perubahan, melakukan pengujian, dan mengalihkan lalu lintas antar lingkungan dengan risiko minimal dan downtime.

Pola ini membantu Anda mengotomatiskan proses blue/green penyebaran untuk database global Aurora dengan menggunakan prinsip infrastruktur sebagai kode (IAc). Ini menggunakan [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html), [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), dan [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) untuk menyederhanakan blue/green penerapan. Untuk meningkatkan keandalan, ia menggunakan pengidentifikasi transaksi global (GTIDs) untuk replikasi. Replikasi berbasis GTID memberikan konsistensi data dan kemampuan failover yang lebih baik antar lingkungan dibandingkan dengan replikasi log biner (binlog).

**catatan**  
Pola ini mengasumsikan bahwa Anda menggunakan cluster database global Aurora MySQL yang kompatibel dengan Edition. Jika Anda menggunakan Aurora PostgreSQL kompatibel sebagai gantinya, silakan gunakan PostgreSQL setara dengan perintah MySQL.

Dengan mengikuti langkah-langkah dalam pola ini, Anda dapat:
+ Menyediakan database global Aurora hijau: Menggunakan CloudFormation template, Anda membuat lingkungan hijau yang mencerminkan lingkungan biru Anda yang ada.
+ Siapkan replikasi berbasis GTID: Anda mengonfigurasi replikasi GTID agar lingkungan biru dan hijau tetap disinkronkan.
+ Beralih lalu lintas dengan mulus: Anda menggunakan Route 53 dan Lambda untuk secara otomatis mengalihkan lalu lintas dari biru ke lingkungan hijau setelah sinkronisasi penuh.
+ Selesaikan penerapan: Anda memvalidasi bahwa lingkungan hijau beroperasi penuh sebagai basis data utama, dan kemudian menghentikan replikasi dan membersihkan sumber daya sementara.

Pendekatan dalam pola ini memberikan manfaat ini:
+ Mengurangi waktu henti selama pembaruan atau migrasi basis data penting: Otomatisasi memastikan transisi yang mulus antar lingkungan dengan gangguan layanan minimal.
+ Mengaktifkan rollback cepat: Jika masalah muncul setelah lalu lintas beralih ke lingkungan hijau, Anda dapat dengan cepat kembali ke lingkungan biru dan mempertahankan kontinuitas layanan.
+ Meningkatkan pengujian dan verifikasi: Lingkungan hijau dapat sepenuhnya diuji tanpa mempengaruhi lingkungan biru hidup, yang mengurangi kemungkinan kesalahan dalam produksi.
+ Memastikan konsistensi data: Replikasi berbasis GTID membuat lingkungan biru dan hijau Anda tetap sinkron, yang mencegah kehilangan data atau ketidakkonsistenan selama migrasi.
+ Menjaga kelangsungan bisnis: Mengotomatiskan blue/green penerapan Anda membantu menghindari pemadaman yang lama dan kerugian finansial dengan menjaga layanan Anda tetap tersedia selama pembaruan atau migrasi.

## Prasyarat dan batasan
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Sumber cluster database global yang kompatibel dengan Aurora MySQL (lingkungan biru). Database global menyediakan konfigurasi Multi-wilayah untuk ketersediaan tinggi dan pemulihan bencana. Untuk petunjuk untuk menyiapkan kluster database global, lihat dokumentasi [Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html).
+ [Replikasi berbasis GTID](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-replication-gtid.html) diaktifkan pada cluster sumber.

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**
+ Aurora MySQL kompatibel 8.0 atau yang lebih baru

## Arsitektur
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-architecture"></a>

![\[Menggunakan replikasi GTID untuk menyinkronkan lingkungan biru dan hijau di Wilayah yang berbeda.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/19922266-c2e5-460b-9a0f-22e6d6736094/images/7a8c3095-7904-4080-906f-0c403c289a4f.png)


Diagram ini menggambarkan hal sebagai berikut:
+ Pengaturan basis data global: Kluster basis data global Aurora digunakan secara strategis di dua. Wilayah AWS Konfigurasi ini memungkinkan distribusi geografis dan redundansi Regional untuk meningkatkan kemampuan pemulihan bencana.
+ Replikasi Wilayah primer ke sekunder: Mekanisme replikasi logis memastikan sinkronisasi data yang mulus dari Wilayah primer ke Wilayah sekunder. Replikasi ini mempertahankan konsistensi data dengan latensi minimal di seluruh jarak geografis.
+ Replikasi berbasis GTID antar cluster: Replikasi berbasis GTID mempertahankan konsistensi transaksional dan aliran data yang teratur antara cluster primer biru dan cluster primer hijau, dan memastikan sinkronisasi data yang andal.
+ Replikasi primer ke sekunder biru: Replikasi logis membentuk jalur data yang kuat antara cluster primer biru dan cluster sekundernya. Replikasi ini memungkinkan sinkronisasi data berkelanjutan dan ketersediaan tinggi.
+ Konfigurasi DNS Route 53: Route 53 catatan zona yang dihosting mengelola resolusi DNS untuk semua titik akhir database cluster biru dan hijau. Konfigurasi ini menyediakan pemetaan titik akhir yang mulus dan memungkinkan perutean lalu lintas yang efisien selama skenario failover.

## Alat
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-tools"></a>

**Layanan AWS**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda memodelkan dan mengatur AWS sumber daya sehingga Anda dapat menghabiskan lebih sedikit waktu untuk mengelola sumber daya tersebut dan lebih banyak waktu untuk berfokus pada aplikasi yang berjalan AWS. Anda membuat template yang menjelaskan semua AWS sumber daya yang Anda inginkan, dan CloudFormation mengurus penyediaan dan konfigurasi sumber daya tersebut untuk Anda.
+  [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.

## Praktik terbaik
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-best-practices"></a>

[Kami menyarankan Anda meninjau AWS dokumentasi secara menyeluruh untuk memperdalam pemahaman Anda tentang [strategi penerapan biru/hijau](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-overview.html), [replikasi berbasis GTID](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-replication-gtid.html), dan kebijakan perutean tertimbang di Route 53.](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html) Pengetahuan ini sangat penting untuk menerapkan dan mengelola migrasi database Anda secara efektif, memastikan konsistensi data, dan mengoptimalkan perutean lalu lintas. Dengan mendapatkan pemahaman yang komprehensif tentang AWS fitur dan praktik terbaik ini, Anda akan lebih siap untuk menangani pembaruan masa depan, meminimalkan waktu henti, dan mempertahankan lingkungan database yang tangguh dan aman.

Untuk pedoman penggunaan pola Layanan AWS untuk ini, lihat AWS dokumentasi berikut:
+ [Praktik terbaik dengan Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html)
+ [CloudFormation praktik terbaik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html)
+ [Praktik terbaik untuk bekerja dengan AWS Lambda fungsi](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
+ [Praktik terbaik untuk Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/best-practices.html)

## Epik
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-epics"></a>

### Ciptakan lingkungan hijau
<a name="create-the-green-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cadangan snapshot dari cluster biru. | Dalam blue/green penerapan, lingkungan hijau mewakili versi baru yang identik dari lingkungan database (biru) Anda saat ini. Anda menggunakan lingkungan hijau untuk menguji pembaruan dengan aman, memvalidasi perubahan, dan memastikan stabilitas sebelum mengalihkan lalu lintas produksi. Ini bertindak sebagai landasan pementasan untuk menerapkan perubahan database dengan gangguan minimal terhadap lingkungan hidup.Untuk membuat lingkungan hijau, pertama-tama Anda membuat snapshot dari cluster utama (biru) di database global yang kompatibel dengan Aurora MySQL Anda. Snapshot ini berfungsi sebagai dasar untuk menciptakan lingkungan hijau.Untuk membuat snapshot:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Atau, Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk membuat snapshot:<pre>aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier blue-green-demo --db-cluster-identifier ex-global-cluster --region eu-west-1</pre>Pastikan snapshot selesai dengan sukses sebelum melanjutkan ke langkah berikutnya. | DBA | 
| Hasilkan CloudFormation template untuk database global Anda dan sumber dayanya. | Generator CloudFormation IAc membantu Anda menghasilkan CloudFormation template dari AWS sumber daya yang ada. Gunakan fitur ini untuk membuat CloudFormation template untuk database global Aurora MySQL yang kompatibel dengan Aurora yang ada dan sumber daya yang terkait. Template ini mengonfigurasi grup subnet, grup keamanan, grup parameter, dan pengaturan lainnya.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html) | DBA | 
| Ubah CloudFormation template untuk lingkungan hijau. | Sesuaikan CloudFormation template untuk mencerminkan pengaturan untuk lingkungan hijau. Ini termasuk memperbarui nama sumber daya dan pengidentifikasi untuk memastikan bahwa lingkungan hijau beroperasi secara independen dari cluster biru.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Jika Anda menggunakan `SnapshotIdentifier` properti untuk memulihkan cluster DB, hindari menentukan properti seperti`GlobalClusterIdentifier`,`MasterUsername`, atau`MasterUserPassword`. | DBA | 
| Terapkan CloudFormation tumpukan untuk membuat sumber daya untuk lingkungan hijau. | Pada langkah ini, Anda menerapkan CloudFormation template yang disesuaikan untuk membuat sumber daya untuk lingkungan hijau.Untuk menyebarkan CloudFormation tumpukan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)CloudFormation memulai proses menciptakan sumber daya lingkungan hijau. Proses ini mungkin memakan waktu beberapa menit untuk menyelesaikannya. | DBA | 
| Validasi CloudFormation tumpukan dan sumber daya. | Saat penerapan CloudFormation tumpukan selesai, Anda harus memverifikasi bahwa lingkungan hijau telah berhasil dibuat:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Setelah verifikasi, lingkungan hijau Anda siap untuk pengaturan lebih lanjut, termasuk replikasi dari lingkungan biru. | DBA | 

### Konfigurasikan replikasi berbasis GTID
<a name="configure-gtid-based-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi pengaturan GTID pada cluster biru. | GTIDs menyediakan metode yang sangat andal untuk mereplikasi data antara lingkungan biru dan hijau Anda. [Replikasi berbasis GTID](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-replication-gtid.html) menawarkan pendekatan yang tangguh dan disederhanakan dengan menetapkan pengenal unik untuk setiap transaksi di lingkungan biru. Metode ini memastikan bahwa sinkronisasi data antar lingkungan mulus, konsisten, dan lebih mudah dikelola daripada replikasi binlog tradisional.Sebelum Anda mengonfigurasi replikasi, Anda perlu memastikan bahwa replikasi berbasis GTID diaktifkan dengan benar di cluster biru. Langkah ini menjamin bahwa setiap transaksi di lingkungan biru dilacak secara unik dan dapat direplikasi di lingkungan hijau.Untuk mengonfirmasi bahwa GTID diaktifkan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Pengaturan ini memungkinkan pelacakan GTID untuk semua transaksi future di lingkungan biru. Setelah Anda mengonfirmasi pengaturan ini, Anda dapat mulai mengatur replikasi. | DBA | 
| Buat pengguna replikasi. | Untuk mereplikasi data dari lingkungan biru ke lingkungan hijau, Anda perlu membuat pengguna replikasi khusus di cluster biru. Pengguna ini akan bertanggung jawab untuk mengelola proses replikasi.Untuk mengatur pengguna replikasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Pengguna ini sekarang memiliki izin yang diperlukan untuk mereplikasi data antara dua lingkungan. | DBA | 
| Konfigurasikan replikasi berbasis GTID pada cluster hijau. | Langkah selanjutnya adalah mengkonfigurasi cluster hijau untuk replikasi berbasis GTID. Pengaturan ini memastikan bahwa lingkungan hijau akan terus mencerminkan semua transaksi yang terjadi di lingkungan biru.Untuk mengkonfigurasi cluster hijau:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html) | DBA | 
| Mulai replikasi pada cluster hijau. | Anda sekarang dapat memulai proses replikasi. Pada cluster hijau, jalankan perintah:<pre>START SLAVE;</pre>Hal ini memungkinkan lingkungan hijau untuk mulai menyinkronkan data, dan menerima dan menerapkan transaksi dari lingkungan biru. | DBA | 
| Verifikasi proses replikasi. | Untuk memverifikasi bahwa lingkungan hijau secara akurat mereplikasi data dari cluster biru:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Jika semua indikator benar, replikasi berbasis GTID berfungsi dengan lancar, dan lingkungan hijau sepenuhnya disinkronkan dengan lingkungan biru. | DBA | 

### Beralih lalu lintas dari klaster biru ke hijau
<a name="switch-traffic-from-blue-to-green-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan kebijakan perutean tertimbang Route 53. | Setelah Anda memverifikasi konsistensi data antara lingkungan biru dan hijau, Anda dapat mengalihkan lalu lintas dari cluster biru ke cluster hijau. Transisi ini harus lancar dan harus meminimalkan downtime dan memastikan integritas database aplikasi Anda. Untuk mengatasi persyaratan ini, Anda dapat menggunakan Route 53 untuk perutean DNS dan Lambda untuk mengotomatiskan peralihan lalu lintas. Selain itu, rencana rollback yang terdefinisi dengan baik memastikan bahwa Anda dapat kembali ke cluster biru jika terjadi masalah.Langkah pertama adalah mengkonfigurasi routing tertimbang di Route 53. Perutean tertimbang memungkinkan Anda untuk mengontrol distribusi lalu lintas antara cluster biru dan hijau, dan secara bertahap mengalihkan lalu lintas dari satu lingkungan ke lingkungan lainnya.Untuk mengonfigurasi perutean tertimbang:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Untuk informasi selengkapnya tentang kebijakan perutean tertimbang, lihat dokumentasi [Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html). | AWS DevOps | 
| Menerapkan fungsi Lambda untuk memantau kelambatan replikasi. | Untuk memastikan bahwa lingkungan hijau sepenuhnya disinkronkan dengan lingkungan biru, gunakan fungsi Lambda yang memantau jeda replikasi antar cluster. Fungsi ini dapat memeriksa status replikasi, khususnya metrik **Seconds\$1Behind\$1Master**, untuk menentukan apakah cluster hijau siap menangani semua lalu lintas.Berikut contoh fungsi Lambda yang dapat Anda gunakan:<pre>import boto3<br /><br />def check_replication_lag(event, context):<br />    client = boto3.client('rds')<br />    response = client.describe_db_instances(DBInstanceIdentifier='green-cluster-instance')<br />    replication_status = response['DBInstances'][0]['ReadReplicaDBInstanceIdentifiers']<br />    if replication_status:<br />        lag = replication_status[0]['ReplicationLag']<br />        return lag<br />    return -1</pre>Fungsi ini memeriksa lag replikasi dan mengembalikan nilai. Jika lag nol, cluster hijau sepenuhnya sinkron dengan cluster biru. | AWS DevOps | 
| Otomatiskan penyesuaian berat DNS dengan menggunakan Lambda. | Ketika lag replikasi mencapai nol, saatnya untuk mengalihkan semua lalu lintas ke cluster hijau. Anda dapat mengotomatiskan transisi ini dengan menggunakan fungsi Lambda lain yang menyesuaikan bobot DNS di Route 53 untuk mengarahkan 100 persen lalu lintas ke cluster hijau.Berikut adalah contoh fungsi Lambda yang mengotomatiskan sakelar lalu lintas:<pre>import boto3<br /><br />def switch_traffic(event, context):<br />    route53 = boto3.client('route53')<br />    lag = check_replication_lag(event, context)<br />    if lag == 0:<br />        response = route53.change_resource_record_sets(<br />            HostedZoneId='YOUR_HOSTED_ZONE_ID',<br />            ChangeBatch={<br />                'Changes': [<br />                    {<br />                        'Action': 'UPSERT',<br />                        'ResourceRecordSet': {<br />                            'Name': 'db.example.com',<br />                            'Type': 'CNAME',<br />                            'SetIdentifier': 'GreenCluster',<br />                            'Weight': 100,<br />                            'TTL': 60,<br />                            'ResourceRecords': [{'Value': 'green-cluster-endpoint'}]<br />                        }<br />                    },<br />                    {<br />                        'Action': 'UPSERT',<br />                        'ResourceRecordSet': {<br />                            'Name': 'db.example.com',<br />                            'Type': 'CNAME',<br />                            'SetIdentifier': 'BlueCluster',<br />                            'Weight': 0,<br />                            'TTL': 60,<br />                            'ResourceRecords': [{'Value': 'blue-cluster-endpoint'}]<br />                        }<br />                    }<br />                ]<br />            }<br />        )<br />        return response</pre>Fungsi ini memeriksa lag replikasi dan memperbarui bobot DNS Route 53 saat jeda nol untuk sepenuhnya mengalihkan lalu lintas ke cluster hijau.****Selama proses cutover, Jika cluster biru mengalami lalu lintas tulis yang padat, pertimbangkan untuk menghentikan sementara operasi penulisan selama cutover. Ini memastikan bahwa replikasi menyusul, dan mencegah inkonsistensi data antara cluster biru dan hijau. | AWS DevOps | 
| Verifikasi sakelar lalu lintas. | Setelah fungsi Lambda menyesuaikan bobot DNS, Anda harus memverifikasi bahwa semua lalu lintas diarahkan ke cluster hijau dan bahwa sakelar berhasil.Untuk memverifikasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Jika semuanya berjalan seperti yang diharapkan, sakelar lalu lintas selesai. | AWS DevOps | 
| Jika Anda mengalami masalah, putar kembali perubahan. | Memiliki rencana rollback sangat penting jika ada masalah yang muncul setelah sakelar lalu lintas. Berikut cara cepat kembali ke cluster biru jika perlu:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Dengan menerapkan rencana rollback ini, Anda dapat memastikan gangguan minimal pada pengguna Anda jika terjadi masalah yang tidak terduga. | AWS DevOps | 

### Validasi dan hentikan replikasi berbasis GTID
<a name="validate-and-stop-gtid-based-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan replikasi berbasis GTID pada cluster hijau. | Setelah Anda mengalihkan lalu lintas dari lingkungan biru ke lingkungan hijau, Anda harus memvalidasi keberhasilan transisi dan memastikan bahwa cluster hijau berfungsi seperti yang diharapkan. Selain itu, replikasi berbasis GTID antara cluster biru dan hijau harus dihentikan, karena lingkungan hijau sekarang berfungsi sebagai database utama. Menyelesaikan tugas-tugas ini memastikan bahwa lingkungan Anda aman, efisien, dan dioptimalkan untuk operasi yang sedang berlangsung.Untuk menghentikan replikasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Ketika Anda menghentikan replikasi, cluster hijau menjadi sepenuhnya independen dan beroperasi sebagai lingkungan database utama untuk beban kerja Anda. | DBA | 
| Pembersihan sumber daya  | Membersihkan sumber daya sementara atau tidak terpakai yang dibuat selama migrasi dari klaster biru ke hijau memastikan bahwa lingkungan Anda tetap dioptimalkan, aman, dan hemat biaya. Pembersihan termasuk menyesuaikan pengaturan keamanan, mengambil cadangan akhir, dan menonaktifkan sumber daya yang tidak perlu.Untuk membersihkan sumber daya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/p-automate-blue-green-deployments-aurora-global-databases-iac.html)Membersihkan sumber daya membantu menjaga lingkungan yang aman dan efisien, mengurangi biaya, dan memastikan bahwa hanya infrastruktur yang diperlukan yang tersisa. | AWS DevOps | 

## Sumber daya terkait
<a name="p-automate-blue-green-deployments-aurora-global-databases-iac-resources"></a>

CloudFormation:
+ [CloudFormation Panduan Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation praktik terbaik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html)
+ [Hasilkan templat dari sumber daya yang ada dengan IAc Generator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC.html)
+ [Impor seluruh aplikasi ke CloudFormation](https://aws.amazon.com/blogs/devops/import-entire-applications-into-aws-cloudformation/) (posting AWS blog)

Amazon Aurora:
+ [Panduan Pengguna Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Welcome.html)
+ [Mengelola cluster DB Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Aurora.html)

Strategi penyebaran biru/hijau:
+ [Ikhtisar Penerapan Amazon Aurora Blue/Green ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-overview.html)

Replikasi berbasis GTID:
+ [Menggunakan replikasi berbasis GTID (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-replication-gtid.html) Amazon RDS)

AWS Lambda:
+ [AWS Lambda Panduan Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+ [Praktik terbaik untuk bekerja dengan AWS Lambda fungsi](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)

Rute Amazon 53:
+ [Panduan Pengembang Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html)
+ [Perutean tertimbang](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html)

Alat klien MySQL:
+ [PyMySQL](https://github.com/PyMySQL/PyMySQL)

# Otomatiskan replikasi instans Amazon RDS di seluruh Akun AWS
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts"></a>

*Parag Nagwekar dan Arun Chandapillai, Amazon Web Services*

## Ringkasan
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-summary"></a>

Pola ini menunjukkan kepada Anda cara mengotomatiskan proses mereplikasi, melacak, dan memutar kembali instans DB Amazon Relational Database Service (Amazon RDS) Anda di berbagai tempat dengan menggunakan dan. Akun AWS AWS Step Functions AWS Lambda Anda dapat menggunakan otomatisasi ini untuk melakukan replikasi skala besar instans RDS DB tanpa dampak kinerja atau overhead operasional—terlepas dari ukuran organisasi Anda. Anda juga dapat menggunakan pola ini untuk membantu organisasi Anda mematuhi strategi tata kelola data wajib atau persyaratan kepatuhan yang meminta agar data Anda direplikasi dan berlebihan di berbagai bidang. Akun AWS Wilayah AWS Replikasi lintas akun data Amazon RDS dalam skala besar adalah proses manual yang tidak efisien dan rawan kesalahan yang dapat memakan biaya dan memakan waktu, tetapi otomatisasi dalam pola ini dapat membantu Anda mencapai replikasi lintas akun dengan aman, efektif, dan efisien.

## Prasyarat dan batasan
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-prereqs"></a>

**Prasyarat**
+ Dua Akun AWS
+ Instans RDS DB, aktif dan berjalan di sumbernya Akun AWS
+ Grup subnet untuk instans RDS DB di tujuan Akun AWS
+ Kunci AWS Key Management Service (AWS KMS) yang dibuat di sumber Akun AWS dan dibagikan dengan akun tujuan (Untuk informasi selengkapnya tentang detail kebijakan, lihat bagian [Informasi tambahan](#automate-the-replication-of-amazon-rds-instances-across-aws-accounts-additional) dari pola ini.)
+ Sebuah AWS KMS key di tujuan Akun AWS untuk mengenkripsi database di akun tujuan

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**
+ Python 3.9 (menggunakan) AWS Lambda
+ PostgreSQL 11.3, 13.x, dan 14.x

## Arsitektur
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-architecture"></a>

**Tumpukan teknologi**
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Simple Notification Service (Amazon SNS)
+ AWS Key Management Service (AWS KMS)
+ AWS Lambda
+ AWS Secrets Manager
+ AWS Step Functions

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk menggunakan Step Functions untuk mengatur replikasi instans RDS DB yang dijadwalkan dan sesuai permintaan dari akun sumber (akun A) ke akun tujuan (akun B).

![\[Mereplikasi instans Amazon RDS DB di seluruh akun sumber dan tujuan dengan menggunakan Step Functions.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6310ad9b-1b1a-4a67-b684-ef605fef3e87/images/001550bb-cf6b-493d-9de9-0229a43753a1.png)


Di akun sumber (akun A dalam diagram), mesin status Step Functions melakukan hal berikut:

1. Membuat snapshot dari instans RDS DB di akun A.

1. Menyalin dan mengenkripsi snapshot dengan akun AWS KMS key A. Untuk memastikan enkripsi dalam perjalanan, snapshot dienkripsi apakah instans DB dienkripsi atau tidak.

1. Berbagi snapshot DB dengan akun B dengan memberikan akses akun B ke snapshot.

1. Mendorong pemberitahuan ke topik SNS, dan kemudian topik SNS memanggil fungsi Lambda di akun B.

Di akun tujuan (akun B dalam diagram), fungsi Lambda menjalankan mesin status Step Functions untuk mengatur hal-hal berikut:

1. Menyalin snapshot bersama dari akun A ke akun B, saat menggunakan AWS KMS key dari akun A untuk mendekripsi data terlebih dahulu dan kemudian mengenkripsi data dengan menggunakan akun dalam B. AWS KMS key 

1. Membaca rahasia dari Secrets Manager untuk menangkap nama instans DB saat ini.

1. Mengembalikan instans DB dari snapshot dengan nama baru dan default untuk AWS KMS key Amazon RDS.

1. Membaca endpoint dari database baru dan memperbarui rahasia di Secrets Manager dengan endpoint database baru, dan kemudian tag instance DB sebelumnya sehingga dapat dihapus nanti.

1. Menyimpan instance N terbaru dari database dan menghapus semua instance lainnya.

## Alat
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-tools"></a>

**Layanan AWS**
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)adalah kit pengembangan perangkat lunak yang membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan fungsi Lambda dan lainnya untuk membangun aplikasi bisnis yang penting. Layanan AWS 

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Crossaccount RDS Replication](https://github.com/aws-samples/aws-rds-crossaccount-replication).

## Epik
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-epics"></a>

### Otomatiskan replikasi instans RDS DB dengan satu klik Akun AWS
<a name="automate-the-replication-of-rds-db-instances-across-aws-accounts-with-a-single-click"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan CloudFormation tumpukan di akun sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Administrator cloud, Arsitek cloud | 
| Menyebarkan CloudFormation tumpukan di akun tujuan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Arsitek cloud, DevOps insinyur, administrator Cloud | 
| Verifikasi pembuatan instans RDS DB di akun tujuan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Administrator cloud, arsitek Cloud, DevOps insinyur | 
| Berlangganan fungsi Lambda ke topik SNS. | Anda harus menjalankan perintah AWS Command Line Interface (AWS CLI) berikut untuk berlangganan fungsi Lambda di akun tujuan (akun B) ke topik SNS di akun sumber (akun A).Di akun A, jalankan perintah berikut:<pre>aws sns add-permission \<br />--label lambda-access --aws-account-id <DestinationAccount> \<br />--topic-arn <Arn of SNSTopic > \<br />--action-name Subscribe ListSubscriptionsByTopic </pre>Di akun B, jalankan perintah berikut:<pre>aws lambda add-permission \<br />--function-name <Name of InvokeStepFunction> \<br />--source-arn <Arn of SNSTopic > \<br />--statement-id function-with-sns \<br />--action lambda:InvokeFunction \<br />--principal sns.amazonaws.com</pre>Di akun B, jalankan perintah berikut:<pre>aws sns subscribe \<br />--protocol "lambda" \<br />--topic-arn <Arn of SNSTopic> \<br />--notification-endpoint <Arn of InvokeStepFunction></pre> | Administrator cloud, arsitek Cloud, DBA | 
| Sinkronkan instans RDS DB dari akun sumber dengan akun tujuan. | Memulai replikasi database on-demand dengan memulai mesin status Step Functions di akun sumber.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html)Penjadwal tersedia untuk membantu Anda menjalankan replikasi secara otomatis sesuai jadwal, tetapi penjadwal dimatikan secara default. Anda dapat menemukan nama CloudWatch aturan Amazon untuk penjadwal di tab **Sumber daya** CloudFormation tumpukan di akun tujuan. Untuk petunjuk tentang cara mengubah aturan CloudWatch Peristiwa, lihat [Menghapus atau Menonaktifkan Aturan CloudWatch Peristiwa dalam dokumentasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Delete-or-Disable-Rule.html). CloudWatch  | Arsitek cloud, DevOps insinyur, administrator Cloud | 
| Putar kembali database Anda ke salah satu salinan sebelumnya bila diperlukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Administrator cloud, DBA, DevOps insinyur | 

## Sumber daya terkait
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-resources"></a>
+ [Replika baca Lintas Wilayah](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.html) (dokumentasi Amazon RDS)
+ [Penerapan Biru/Hijau (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.html) Amazon RDS)

## Informasi tambahan
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-additional"></a>

Anda dapat menggunakan contoh kebijakan berikut untuk membagikan informasi AWS KMS key Anda Akun AWS.

```
{
    "Version": "2012-10-17",		 	 	 
    "Id": "cross-account-rds-kms-key",
    "Statement": [
        {
            "Sid": "Enable user permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<SourceAccount>:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow administration of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<DestinationAccount>:root"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::<DestinationAccount>:root",
                    "arn:aws:iam::<SourceAccount>:root"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

# Mengotomatiskan tugas database dalam edisi SQL Server Express yang berjalan di Amazon EC2 dengan menggunakan AWS Lambda dan Penjadwal Tugas
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2"></a>

*Subhani Shaik, Amazon Web Services*

## Ringkasan
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-summary"></a>

Pola ini menunjukkan bagaimana menjadwalkan dan mengelola tugas-tugas database dalam edisi SQL Server Express, yang merupakan versi gratis dari SQL Server. Namun, edisi SQL Server Express tidak memiliki layanan SQL Server Agent yang biasanya menangani operasi database otomatis. Pola ini menjelaskan bagaimana Anda dapat menggunakan Penjadwal Tugas dan Lambda sebagai alternatif untuk mengotomatiskan tugas database dalam edisi SQL Server Express yang berjalan pada instans Amazon Elastic Compute Cloud (Amazon). EC2

[Penjadwal Tugas](https://learn.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page) adalah utilitas sistem Windows bawaan yang memfasilitasi pelaksanaan otomatis tugas-tugas rutin. Ini menyediakan mekanisme untuk menjadwalkan dan mengelola operasi otomatis, menghilangkan kebutuhan untuk intervensi manual dalam proses berulang. [AWS Lambda](https://aws.amazon.com/lambda/)adalah layanan komputasi tanpa server yang secara otomatis menjalankan kode sebagai respons terhadap peristiwa, tanpa mengharuskan Anda mengelola infrastruktur yang mendasarinya.

## Prasyarat dan batasan
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Virtual Private Cloud (VPC) yang dibuat dengan Amazon Virtual Private Cloud (Amazon VPC)
+  EC2 Instans Amazon dengan Windows Server
+ Volume Amazon Elastic Block Store (Amazon EBS) yang dilampirkan ke instans EC2 Amazon dengan Windows Server
+ [Binari SQL Server Express Edition](https://www.microsoft.com/en-us/download/details.aspx?id=101064)

**Batasan**
+ Untuk informasi tentang batasan fitur edisi SQL Server Express, lihat [situs web Microsoft](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16).
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**
+ SQL Server 2016 atau yang lebih baru dengan edisi SQL Server Express

## Arsitektur
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-architecture"></a>

Diagram berikut menunjukkan EC2 instans Amazon yang berjalan dengan edisi SQL Server Express diinstal. Instans ini dapat diakses melalui klien Remote Desktop Protocol (RDP) atau dari. AWS Systems Manager Session Manager AWS Key Management Service (AWS KMS) menangani enkripsi data untuk volume Amazon EBS untuk memastikan data-at-rest keamanan. Infrastruktur juga mencakup AWS Identity and Access Management (IAM), yang menyediakan kontrol akses dan mengelola izin untuk pelaksanaan fungsi Lambda. Amazon Simple Storage Service (Amazon S3) menyimpan fungsi Lambda.

![\[EC2 Instans Amazon yang berjalan dengan edisi SQL Server Express diinstal pada subnet pribadi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/3af2174d-bf49-4e43-86f7-34759e5eea84/images/3a37dcb8-10af-42f2-8ff1-fab4f87eb646.png)


## Alat
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) menyediakan volume penyimpanan tingkat blok untuk digunakan dengan instans Amazon. EC2 
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)adalah AWS Systems Manager alat yang dikelola sepenuhnya. Dengan Session Manager, Anda dapat mengelola EC2 instans Amazon, perangkat edge, server lokal, dan mesin virtual ()VMs.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS

**Alat lainnya**
+ [Microsoft SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/ssms/download-sql-server-management-studio-ssms) adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server.
+ [Python adalah bahasa](https://www.python.org/) pemrograman komputer tujuan umum. Anda dapat menggunakannya untuk membangun aplikasi, mengotomatiskan tugas, dan mengembangkan layanan di [AWS Cloud](https://aws.amazon.com/developer/language/python/)aplikasi.
+ [Penjadwal Tugas](https://learn.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page) adalah alat Microsoft yang dapat Anda gunakan untuk menjadwalkan tugas rutin di komputer Anda secara otomatis.

## Praktik terbaik
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-best-practices"></a>
+ [Praktik terbaik untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-best-practices.html)
+ [Praktik terbaik untuk menyebarkan Microsoft SQL Server di Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-ec2-best-practices/welcome.html)
+ [Praktik terbaik untuk bekerja dengan AWS Lambda fungsi](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
+ [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)

## Epik
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-epics"></a>

### Buat EC2 instans Amazon dan instal edisi SQL Server Express
<a name="create-an-amazon-ec2-instance-and-install-sql-server-express-edition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menerapkan EC2 instans Amazon. | Untuk membuat EC2 instans Amazon, buka EC2 konsol Amazon di [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)dan pilih [Amazon Machine Image (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) dari daftar instance yang tersedia untuk Windows Server.Untuk informasi selengkapnya, lihat [Meluncurkan EC2 instans Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) di AWS dokumentasi. | DBA, AWS DevOps | 
| Instal edisi SQL Server Express. | Untuk menginstal edisi SQL Server Express, selesaikan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | DBA, AWS DevOps | 

### Buat tugas pemeliharaan basis data otomatis
<a name="create-automated-database-maintenance-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi tugas rutin. | Identifikasi tugas rutin yang ingin Anda otomatiskan. Misalnya, tugas-tugas berikut memenuhi syarat untuk otomatisasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | DBA | 
| Siapkan skrip SQL. | Untuk menyiapkan skrip SQL, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | DBA | 
| Konfigurasikan izin akses. | Untuk mengonfigurasi izin akses, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | DBA | 

### Mengotomatiskan tugas dengan Penjadwal Tugas
<a name="automate-tasks-with-task-scheduler"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat file batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html)<pre>sqlcmd -S servername -U username -P password -i <T-SQL query path.sql></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html)<pre><br />@echo off<br />sqlcmd -S [ServerName] -d [DatabaseName] -U username -P password -i "PathToSQLScript\Script.sql" -o "PathToOutput\Output.txt"</pre> | AWS DevOps, DBA | 
| Buat tugas di Penjadwal Tugas. | Untuk membuat tugas di Penjadwal Tugas, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html)Untuk menjalankan tugas secara manual, klik kanan tugas yang baru dibuat dan kemudian pilih **Jalankan**. | DBA | 
| Lihat status tugas. | Untuk melihat status tugas di Penjadwal Tugas, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | DBA, AWS DevOps | 

### Mengotomatiskan tugas dengan AWS Lambda
<a name="automate-tasks-with-lamlong"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menerapkan solusinya. | Untuk menerapkan solusi pola ini, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.html) | AWS DevOps, DevOps insinyur | 

## Pemecahan masalah
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Masalah Lambda | Untuk bantuan terkait kesalahan dan masalah yang mungkin Anda temui saat menggunakan AWS Lambda, lihat [Memecahkan masalah di Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-troubleshooting.html) dalam dokumentasi. AWS  | 

## Sumber daya terkait
<a name="automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2-resources"></a>
+ [Jenis EC2 instans Amazon](https://aws.amazon.com/ec2/instance-types/)
+ [AWS Lambda dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/with-eventbridge-scheduler.html)
+ [AWS Lambda harga](https://aws.amazon.com/lambda/pricing/)
+ [Penjadwal Tugas untuk pengembang](https://learn.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page) (situs web Microsoft)

# Otomatiskan failover dan failback lintas wilayah dengan menggunakan DR Orchestrator Framework
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework"></a>

*Jitendra Kumar, Pavithra Balasubramanian, dan Oliver Francis, Amazon Web Services*

## Ringkasan
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-summary"></a>

Pola ini menjelaskan cara menggunakan [DR Orchestrator Framework](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html) untuk mengatur dan mengotomatiskan langkah-langkah manual yang rawan kesalahan untuk melakukan pemulihan bencana di seluruh Wilayah Amazon Web Services ().AWS Pola ini mencakup database berikut:
+ Amazon Relational Database Service (Amazon RDS) untuk MySQL, Amazon RDS untuk PostgreSQL, atau Amazon RDS for MariaDB
+ Amazon Aurora Edisi yang kompatibel dengan MySQL atau Edisi yang kompatibel dengan Amazon Aurora PostgreSQL (menggunakan file terpusat)
+ Amazon ElastiCache (Redis OSS)

Untuk mendemonstrasikan fungsionalitas DR Orchestrator Framework, Anda membuat dua instance atau cluster DB. Yang utama ada di Wilayah AWS `us-east-1`, dan yang sekunder ada di`us-west-2`. Untuk membuat sumber daya ini, Anda menggunakan AWS CloudFormation template di `App-Stack` folder repositori [aws-cross-region-dr-databases](https://github.com/aws-samples/aws-cross-region-dr-databases) GitHub .

## Prasyarat dan batasan
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-prereqs"></a>

**Prasyarat umum**
+ DR Orchestrator Framework digunakan di primer dan sekunder Wilayah AWS
+ Dua [ember Layanan Penyimpanan Sederhana Amazon](https://aws.amazon.com/s3/)
+ [Virtual Private Cloud (VPC)](https://aws.amazon.com/vpc/) dengan dua subnet dan grup keamanan AWS 

**Prasyarat khusus mesin**
+ **Amazon Aurora** — Setidaknya satu database global Aurora harus tersedia dalam dua. Wilayah AWS Anda dapat menggunakan `us-east-1` sebagai Wilayah utama, dan digunakan `us-west-2` sebagai Wilayah sekunder.
+ **Amazon ElastiCache (Redis OSS)** — Datastore ElastiCache global harus tersedia dalam dua. Wilayah AWS Anda dapat `use us-east-1` sebagai Wilayah utama, dan digunakan `us-west-2` sebagai Wilayah sekunder.

**Keterbatasan Amazon RDS**
+ DR Orchestrator Framework tidak memeriksa kelambatan replikasi sebelum melakukan failover atau failback. Kelambatan replikasi harus diperiksa secara manual.
+ Solusi ini telah diuji menggunakan instance database utama dengan satu replika baca. Jika Anda ingin menggunakan lebih dari satu replika baca, uji solusinya secara menyeluruh sebelum menerapkannya di lingkungan produksi.

**Keterbatasan Aurora**
+ Ketersediaan dan dukungan fitur bervariasi di seluruh versi tertentu dari setiap mesin database dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang fitur dan ketersediaan Wilayah untuk replikasi Lintas wilayah, lihat replika baca [Lintas Wilayah](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.html).
+ Database global Aurora memiliki persyaratan konfigurasi khusus untuk kelas instans Aurora DB yang didukung dan jumlah maksimum. Wilayah AWS Untuk informasi selengkapnya, lihat [Persyaratan konfigurasi database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.configuration.requirements).
+ Solusi ini telah diuji menggunakan instance database utama dengan satu replika baca. Jika Anda ingin menggunakan lebih dari satu replika baca, uji solusinya secara menyeluruh sebelum menerapkannya di lingkungan produksi.

**ElastiCache keterbatasan**
+ Untuk informasi tentang ketersediaan Wilayah untuk Datastore Global dan persyaratan ElastiCache konfigurasi, lihat [Prasyarat](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html) dan batasan dalam dokumentasi. ElastiCache 

**Amazon RDS p versi** **roduct**

Amazon RDS mendukung versi mesin berikut:
+ **MySQL** — Amazon RDS mendukung instans DB yang menjalankan versi MySQL berikut: MySQL 8.0 dan [MySQL 5.7](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html)
+ **PostgreSQL** [— Untuk informasi tentang versi Amazon RDS yang didukung untuk PostgreSQL, lihat Versi database PostgreSQL yang tersedia.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions)
+ **MariaDB** [- Amazon RDS mendukung instans DB yang menjalankan versi MariaDB berikut:](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)
  + MariaDB 10.11
  + MariaDB 10.6
  + MariaDB 10.5

**Versi produk Aurora**
+ Peralihan basis data global Amazon Aurora memerlukan Aurora MySQL yang kompatibel dengan kompatibilitas MySQL 5.7, versi 2.09.1 dan yang lebih tinggi

  Untuk informasi selengkapnya, lihat [Batasan database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**ElastiCache (Redis OSS) versi produk**

Amazon ElastiCache (Redis OSS) mendukung versi Redis berikut:
+ Redis 7.1 (ditingkatkan)
+ Redis 7.0 (ditingkatkan)
+ Redis 6.2 (ditingkatkan)
+ Redis 6.0 (ditingkatkan)
+ Redis 5.0.6 (ditingkatkan)

Untuk informasi selengkapnya, lihat [Versi yang didukung ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html).

## Arsitektur
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-architecture"></a>

****Arsitektur Amazon RDS****

Arsitektur Amazon RDS mencakup sumber daya berikut:
+ Instans Amazon RDS DB utama yang dibuat di Region (`us-east-1`) utama dengan read/write akses untuk klien
+ Replika baca Amazon RDS yang dibuat di Region sekunder (`us-west-2`) dengan akses hanya-baca untuk klien
+ DR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

![\[Diagram arsitektur RDS dua wilayah dalam satu akun AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/ad217033-600c-40da-929c-b9f9aecb4c2c.png)


Diagram menunjukkan yang berikut:

1. Replikasi asinkron antara instance primer dan instance sekunder

1. Akses baca/tulis untuk klien di Wilayah utama

1. Akses hanya-baca untuk klien di Wilayah sekunder

**Arsitektur Aurora**

Arsitektur Amazon Aurora mencakup sumber daya berikut:
+ Cluster Aurora DB utama yang dibuat di Region (`us-east-1`) primer dengan titik akhir penulis aktif
+ Cluster Aurora DB yang dibuat di Region sekunder (`us-west-2`) dengan titik akhir penulis yang tidak aktif
+ DR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

![\[Diagram penyebaran Aurora dua wilayah dalam satu akun AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/524ec002-5aa7-47b2-8c8d-6d1a3b535e9e.png)


Diagram menunjukkan yang berikut:

1. Replikasi asinkron antara cluster primer dan cluster sekunder

1. Cluster DB utama dengan titik akhir penulis aktif

1. Cluster DB sekunder dengan titik akhir penulis yang tidak aktif

**ElastiCache Arsitektur (Redis OSS)**

Arsitektur Amazon ElastiCache (Redis OSS) mencakup sumber daya berikut:
+ Datastore global ElastiCache (Redis OSS) yang dibuat dengan dua cluster:

  1. Cluster utama di Region primer (`us-east-1`)

  1. Cluster sekunder di Region sekunder (`us-west-2`)
+ Tautan Amazon Cross-region dengan enkripsi TLS 1.2 antara kedua cluster
+ DR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

![\[Diagram ElastiCache penyebaran dua wilayah dengan tautan Lintas wilayah Amazon.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/cf6620a0-dd42-4042-8dc2-012bf514ffc0.png)


**Otomatisasi dan skala**

DR Orchestrator Framework dapat diskalakan dan mendukung failover atau failback lebih dari satu database secara paralel. AWS 

Anda dapat menggunakan kode payload berikut untuk gagal melalui beberapa AWS database di akun Anda. Dalam contoh ini, tiga AWS database (dua database global seperti Aurora MySQL kompatibel atau Aurora PostgreSQL kompatibel, dan satu Amazon RDS untuk MySQL instance) gagal ke Wilayah DR:

```
{
  "StatePayload": [
    {
      "layer": 1,
      "resources": [
        {
          "resourceType": "PlannedFailoverAurora",
          "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)",
          "parameters": {
            "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier",
            "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" 
          }
        },
        {
          "resourceType": "PlannedFailoverAurora",
          "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)",
          "parameters": {
            "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier",
            "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" 
          }
        },
        {
          "resourceType": "PromoteRDSReadReplica",
          "resourceName": "Promote RDS for MySQL Read Replica",
          "parameters": {
            "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier",
            "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn"
          }
        }         
      ]
    }
  ]
}
```

## Alat
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-tools"></a>

**AWS layanan**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [Amazon ElastiCache](https://docs.aws.amazon.com/elasticache/) membantu Anda mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di. AWS Cloud Pola ini menggunakan Amazon ElastiCache (Redis OSS).
+ [AWS Lambda](https://aws.amazon.com/lambda/)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan. Dalam pola ini, fungsi Lambda digunakan oleh AWS Step Functions untuk melakukan langkah-langkah.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud Pola ini mendukung Amazon RDS for MySQL, Amazon RDS for PostgreSQL, dan Amazon RDS for MariaDB.
+ [AWS SDK untuk Python (Boto3)](https://aws.amazon.com/sdk-for-python/)membantu Anda mengintegrasikan aplikasi, pustaka, atau skrip Python Anda. Layanan AWS Dalam pola ini, Boto3 APIs digunakan untuk berkomunikasi dengan instance database atau database global.
+ [AWS Step Functions](https://aws.amazon.com/step-functions/)adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting. Dalam pola ini, mesin status Step Functions digunakan untuk mengatur dan menjalankan failover Cross-region dan failback dari instance database atau database global.

**Repositori kode**

Kode untuk pola ini tersedia di repositori [aws-cross-region-dr-databases](https://github.com/aws-samples/aws-cross-region-dr-databases/tree/main/App-Stack) pada. GitHub

## Epik
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-epics"></a>

### Instal Kerangka Orkestrator DR
<a name="install-dr-orchestrator-framework"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning GitHub repositori. | Untuk mengkloning repositori, jalankan perintah berikut:<pre>git clone https://github.com/aws-samples/aws-cross-region-dr-databases.git</pre> | AWS DevOps, administrator AWS | 
| Package Lambda berfungsi kode dalam arsip file.zip. | Buat file arsip untuk fungsi Lambda untuk menyertakan dependensi DR Orchestrator Framework:<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts<br /><br />bash scripts/deploy-orchestrator-sh.sh</pre> | Administrator AWS | 
| Buat ember S3. | Bucket S3 diperlukan untuk menyimpan DR Orchestrator Framework bersama dengan konfigurasi terbaru Anda. Buat dua bucket S3, satu di Region utama (`us-east-1`), dan satu di Region sekunder (`us-west-2`):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)Ganti `xxxxxx` dengan nilai acak untuk membuat nama bucket unik. | Administrator AWS | 
| Buat subnet dan grup keamanan. | Di Region (`us-east-1`) primer dan Region sekunder (`us-west-2`), buat dua subnet dan satu grup keamanan untuk penerapan fungsi Lambda di VPC Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | Administrator AWS | 
| Perbarui file parameter DR Orchestrator. | Di `<YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation` folder, perbarui file parameter DR Orchestrator berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)Gunakan nilai parameter berikut, ganti `x` dan `y` dengan nama sumber daya Anda:<pre>[<br />    {<br />         "ParameterKey": "TemplateStoreS3BucketName",<br />         "ParameterValue": "dr-orchestrator-xxxxxx-us-east-1"<br />    },<br />    {<br />        "ParameterKey": "TemplateVPCId",<br />        "ParameterValue": "vpc-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID1",<br />        "ParameterValue": "subnet-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID2",<br />        "ParameterValue": "subnet-yyyyyy"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSecurityGroupID",<br />        "ParameterValue": "sg-xxxxxxxxxx"<br />    }<br /> ]</pre> | Administrator AWS | 
| Unggah kode DR Orchestrator Framework ke bucket S3. | Kode akan lebih aman di ember S3 daripada di direktori lokal. Unggah `DR-Orchestration-artifacts` direktori, termasuk semua file dan subfolder, ke bucket S3.Untuk mengunggah kode, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | Administrator AWS | 
| Menyebarkan Kerangka Orkestrator DR di Wilayah utama. | Untuk menerapkan DR Orchestrator Framework di Region (`us-east-1`) primer, jalankan perintah berikut:<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | Administrator AWS | 
| Menyebarkan Kerangka Orkestrator DR di Wilayah sekunder. | Di Region sekunder (`us-west-2`), jalankan perintah berikut: <pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | Administrator AWS | 
| Verifikasi penyebaran. | Jika CloudFormation perintah berjalan berhasil, ia mengembalikan output berikut:<pre>Successfully created/updated stack - dr-orchestrator</pre>Atau, Anda dapat menavigasi ke CloudFormation konsol dan memverifikasi status `dr-orchestrator` tumpukan.  | Administrator AWS | 

### Membuat instance database atau cluster
<a name="create-the-database-instances-or-clusters"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat subnet database dan grup keamanan. | Di VPC Anda, buat dua subnet dan satu grup keamanan untuk instans DB atau database global di Wilayah primer (`us-east-1`) dan sekunder (`us-west-2`):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | Administrator AWS | 
| Perbarui file parameter untuk instance atau cluster DB primer. | Di `<YOUR LOCAL GIT FOLDER>/App-Stack` folder, perbarui file parameter untuk Wilayah utama.**Amazon RDS**Dalam `RDS-MySQL-parameter-us-east-1.json` file, perbarui `SubnetIds` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId"<br />  }<br />}<br /></pre>**Amazon Aurora** Dalam `Aurora-MySQL-parameter-us-east-1.json` file, perbarui `SubnetIds` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-xxxxxx,subnet2-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre>**Amazon ElastiCache (Redis OSS)**Dalam `ElastiCache-parameter-us-east-1.json` file, perbarui `SubnetIds` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat.<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | Administrator AWS | 
| Terapkan instans atau cluster DB Anda di Wilayah utama. | Untuk menerapkan instance atau cluster Anda di Region (`us-east-1`) primer, jalankan perintah berikut berdasarkan mesin database Anda.**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-Primary.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-Primary.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 --stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-Primary.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback<br /></pre>Verifikasi bahwa CloudFormation sumber daya berhasil digunakan. | Administrator AWS | 
| Perbarui file parameter untuk instance atau cluster DB sekunder. | Di `<YOUR LOCAL GIT FOLDER>/App-Stack` folder, perbarui file parameter untuk Wilayah sekunder.**Amazon RDS**Dalam `RDS-MySQL-parameter-us-west-2.json` file, perbarui `SubnetIDs` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat. Perbarui `PrimaryRegionKMSKeyArn` dengan nilai yang `MySQLKmsKeyId` diambil dari bagian **Output** dari CloudFormation tumpukan untuk instance DB utama:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId",<br />    "PrimaryRegionKMSKeyArn":"arn:aws:kms:us-east-1:xxxxxxxxx:key/mrk-xxxxxxxxxxxxxxxxxxxxx"<br />  }<br />} </pre>**Amazon Aurora**Dalam `Aurora-MySQL-parameter-us-west-2.json` file, perbarui `SubnetIDs` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat. Perbarui `PrimaryRegionKMSKeyArn` dengan nilai yang `AuroraKmsKeyId` diambil dari bagian **Output** dari CloudFormation tumpukan untuk instance DB utama:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-aaaaaaaaa,subnet2-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre>**Amazon ElastiCache (Redis OSS)**Dalam `ElastiCache-parameter-us-west-2.json` file, perbarui `SubnetIDs` dan `DBSecurityGroup` dengan nama sumber daya yang Anda buat. Perbarui `PrimaryRegionKMSKeyArn` dengan nilai yang `ElastiCacheKmsKeyId` diambil dari bagian **Output** dari CloudFormation tumpukan untuk instance DB utama:<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | Administrator AWS | 
| Terapkan instans atau cluster DB Anda di Wilayah sekunder. | Jalankan perintah berikut, berdasarkan mesin database Anda.**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-DR.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-DR.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-DR.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>Verifikasi bahwa CloudFormation sumber daya berhasil digunakan. | Administrator AWS | 

## Sumber daya terkait
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-resources"></a>
+ [Strategi pemulihan bencana untuk database pada AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-disaster-recovery/welcome.html) (Strategi Panduan AWS Preskriptif)
+ [Otomatiskan solusi DR Anda untuk database relasional di AWS(panduan panduan AWS preskriptif](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html))
+ [Menggunakan basis data global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
+ [Replikasi di seluruh Wilayah AWS menggunakan datastores global](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html)
+ [Otomatiskan solusi DR Anda untuk database relasional di AWS(panduan panduan AWS preskriptif](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/introduction.html))

# Secara otomatis mencadangkan database SAP HANA menggunakan Systems Manager dan EventBridge
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge"></a>

*Ambarish Satarkar dan Gaurav Rath, Amazon Web Services*

## Ringkasan
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-summary"></a>

Pola ini menjelaskan cara mengotomatiskan backup database SAP HANA menggunakan AWS Systems Manager, Amazon, Amazon Simple Storage Service ( EventBridgeAmazon S3), dan AWS Backint Agent untuk SAP HANA.

Pola ini menyediakan pendekatan berbasis skrip shell menggunakan `BACKUP DATA` perintah dan menghilangkan kebutuhan untuk memelihara skrip dan konfigurasi pekerjaan untuk setiap instance sistem operasi (OS) di berbagai sistem.


| 
| 
| Catatan: Mulai April 2023, AWS Backup mengumumkan dukungan untuk database SAP HANA di Amazon Elastic Compute Cloud (Amazon). EC2 Untuk informasi selengkapnya, lihat [database SAP HANA di cadangan EC2 instans Amazon](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-saphana.html).Berdasarkan kebutuhan organisasi Anda, Anda dapat menggunakan layanan AWS Backup untuk secara otomatis mencadangkan database SAP HANA Anda atau Anda dapat menggunakan pola ini. | 
| --- |

## Prasyarat dan batasan
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-prereqs"></a>

**Prasyarat**
+ Instans SAP HANA yang ada dengan rilis yang didukung dalam status berjalan pada instans Amazon Elastic Compute Cloud EC2 (Amazon) terkelola yang dikonfigurasi untuk Systems Manager
+ Agen Systems Manager (Agen SSM) 2.3.274.0 atau yang lebih baru diinstal
+ Bucket S3 yang tidak mengaktifkan akses publik
+ Sebuah `hdbuserstore` kunci bernama `SYSTEM`
+ Peran AWS Identity and Access Management (IAM) agar runbook Otomasi berjalan sesuai jadwal
+ `AmazonSSMManagedInstanceCore`dan `ssm:StartAutomationExecution` kebijakan dilampirkan pada peran layanan Systems Manager Automation.

**Batasan**
+ AWS Backint Agent untuk SAP HANA tidak mendukung deduplikasi.
+ AWS Backint Agent untuk SAP HANA tidak mendukung kompresi data.

**Versi produk**

AWS Backint Agent didukung pada sistem operasi berikut:
+ Server Perusahaan SUSE Linux
+ SUSE Linux Enterprise Server untuk SAP
+ Red Hat Enterprise Linux untuk SAP

AWS Backint Agent mendukung database berikut: 
+ SAP HANA 1.0 SP12 (simpul tunggal dan beberapa node)
+ SAP HANA 2.0 dan yang lebih baru (simpul tunggal dan beberapa node)

## Arsitektur
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-architecture"></a>

**Tumpukan teknologi target**
+ AWS Backint Agent
+ Amazon S3
+ AWS Systems Manager
+ Amazon EventBridge
+ SAP HANA

**Arsitektur target**

Diagram berikut menunjukkan skrip instalasi yang menginstal AWS Backint Agent, bucket S3, dan Systems Manager dan EventBridge, yang menggunakan dokumen Command untuk menjadwalkan pencadangan reguler.

![\[Alur kerja untuk menjadwalkan backup reguler.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0aa22a27-d100-483d-95f9-c3101f40402c/images/201d2b9a-b88e-4432-82cd-240b81da981e.png)


**Otomatisasi dan skala**
+ Beberapa Agen AWS Backint dapat diinstal dengan menggunakan runbook Automation Systems Manager.
+ Setiap runbook Systems Manager dapat menskalakan ke *n* jumlah instans SAP HANA, berdasarkan pemilihan target.
+ EventBridge dapat mengotomatiskan cadangan SAP HANA.

## Alat
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-tools"></a>
+ [AWS Backint Agent for SAP](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-sap-hana.html) HANA adalah aplikasi mandiri yang terintegrasi dengan alur kerja yang ada untuk mencadangkan database SAP HANA Anda ke bucket S3 yang Anda tentukan dalam file konfigurasi. AWS Backint Agent mendukung pencadangan penuh, inkremental, dan diferensial dari database SAP HANA. Ini berjalan pada server database SAP HANA, di mana backup dan katalog ditransfer dari database SAP HANA ke AWS Backint Agent.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang dapat Anda gunakan untuk menghubungkan aplikasi Anda dengan data dari berbagai sumber. EventBridge mengirimkan aliran data real-time dari aplikasi Anda, aplikasi perangkat lunak sebagai layanan (SaaS), dan layanan AWS ke target seperti fungsi AWS Lambda, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di akun lain.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) membantu Anda melihat dan mengontrol infrastruktur di AWS. Menggunakan konsol Systems Manager, Anda dapat melihat data operasional dari beberapa layanan AWS dan mengotomatiskan tugas operasional di seluruh sumber daya AWS Anda.

**Kode**

Kode untuk pola ini tersedia di [aws-backint-automated-backup](https://github.com/aws-samples/aws-backint-automated-backup) GitHub repositori.

## Epik
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-epics"></a>

### Buat sistem kunci hdbuserstore
<a name="create-an-hdbuserstore-key-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kunci hdbuserstore. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.html) | Administrator AWS, Administrator SAP HANA | 

### Instal AWS Backint Agent
<a name="install-aws-backint-agent"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS Backint Agent. | Ikuti petunjuk di [Instal dan konfigurasikan AWS Backint Agent untuk SAP](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-installing-configuring.html) HANA di dokumentasi AWS Backint Agent. | Administrator AWS, administrator SAP HANA | 

### Buat dokumen Command Systems Manager
<a name="create-the-systems-manager-command-document"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dokumen Systems Manager Command. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.html) | Administrator AWS, administrator SAP HANA | 

### Jadwalkan pencadangan pada frekuensi reguler
<a name="schedule-backups-on-a-regular-frequency"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jadwalkan pencadangan reguler menggunakan Amazon. EventBridge | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.html)Anda dapat memverifikasi keberhasilan pencadangan dari jalur bucket S3.  <pre> s3:/<your_bucket_name>/<target folder>/<SID>/usr/sap/<SID>/SYS/global/hdb/backint/DB_<SID>/</pre>Anda juga dapat memverifikasi cadangan dari katalog cadangan SAP HANA. | Administrator AWS, administrator SAP HANA | 

## Sumber daya terkait
<a name="automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge-resources"></a>
+ [AWS Backint Agent untuk SAP HANA](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-sap-hana.html)
+ [Instal dan konfigurasikan AWS Backint Agent untuk SAP HANA](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-installing-configuring.html)

# Secara otomatis menghasilkan model PynamoDB dan fungsi CRUD untuk Amazon DynamoDB dengan menggunakan aplikasi Python
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application"></a>

*Vijit Vashishtha, Dheeraj Alimchandani, dan Dhananjay Karanjkar, Amazon Web Services*

## Ringkasan
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-summary"></a>

Adalah umum untuk meminta entitas dan membuat, membaca, memperbarui, dan menghapus (CRUD) fungsi operasi untuk secara efisien melakukan operasi database Amazon DynamoDB. PynamoDB adalah antarmuka berbasis Python yang mendukung Python 3. Ini juga menyediakan fitur seperti dukungan untuk transaksi Amazon DynamoDB, serialisasi nilai atribut otomatis dan deserialisasi, dan kompatibilitas dengan kerangka kerja Python umum, seperti Flask dan Django. Pola ini membantu pengembang bekerja dengan Python dan DynamoDB dengan menyediakan perpustakaan yang merampingkan pembuatan otomatis model PynamoDB dan fungsi operasi CRUD. Meskipun menghasilkan fungsi CRUD penting untuk tabel database, ia juga dapat merekayasa balik model PynamoDB dan fungsi CRUD dari tabel Amazon DynamoDB. Pola ini dirancang untuk menyederhanakan operasi database dengan menggunakan aplikasi berbasis Python.

Berikut ini adalah fitur utama dari solusi ini:
+ **Skema JSON ke model PynamoDB - Secara otomatis menghasilkan model PynamodB** dengan Python dengan mengimpor file skema JSON.
+ **Pembuatan fungsi CRUD** - Secara otomatis menghasilkan fungsi untuk melakukan operasi CRUD pada tabel DynamoDB.
+ **Rekayasa balik dari DynamoDB** - Gunakan pynamoDB object-relational mapping (ORM) untuk merekayasa balik model PynamoDB dan fungsi CRUD untuk tabel Amazon DynamoDB yang ada.

## Prasyarat dan batasan
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ [Python versi 3.8 atau yang lebih baru, diunduh dan diinstal](https://www.python.org/downloads/)
+ [Jinja2 versi 3.1.2 atau yang lebih baru, diunduh dan diinstal](https://pypi.org/project/Jinja2/#files)
+ Tabel Amazon DynamoDB yang ingin Anda hasilkan ORM
+ AWS Command Line Interface (AWS CLI), [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [PynamoDB versi 5.4.1 atau yang lebih baru, diinstal](https://pynamodb.readthedocs.io/en/stable/tutorial.html#installation)

## Arsitektur
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-architecture"></a>

**Tumpukan teknologi target**
+ Skrip JSON
+ Aplikasi Python
+ Model PynamoDB
+ Contoh basis data Amazon DynamoDB

**Arsitektur target**

![\[Menggunakan aplikasi Python untuk menghasilkan fungsi CRUD dan model PynamoDB dari tabel DynamoDB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/74cc4c73-5c8b-448d-98fb-b681cfa5f860/images/c2c367d6-d88a-4f49-8571-89160539eb08.png)


1. Anda membuat file skema JSON masukan. File skema JSON ini mewakili atribut dari tabel DynamoDB masing-masing yang Anda ingin membuat model PynamoDB dari dan fungsi CRUD untuk. Ini berisi tiga kunci penting berikut:
   + `name`—Nama tabel DynamoDB target.
   + `region`— Wilayah AWS Tempat tabel dihosting
   + `attributes`[Atribut yang merupakan bagian dari tabel target, seperti [kunci partisi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) (juga dikenal sebagai *atribut hash*), [kunci sortir](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey), [indeks sekunder lokal, indeks sekunder](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html)[global](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html), dan atribut non-kunci apa pun.](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes) Alat ini mengharapkan skema input hanya menyediakan atribut non-kunci karena aplikasi mengambil atribut kunci langsung dari tabel target. Untuk contoh cara menentukan atribut dalam file skema JSON, lihat bagian [Informasi tambahan](#automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-additional) dari pola ini.

1. Jalankan aplikasi Python dan berikan file skema JSON sebagai masukan.

1. Aplikasi Python membaca file skema JSON.

1. Aplikasi Python terhubung ke tabel DynamoDB untuk mendapatkan skema dan tipe data. Aplikasi ini menjalankan operasi [describe\$1table](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/describe_table.html) dan mengambil atribut kunci dan indeks untuk tabel.

1. Aplikasi Python menggabungkan atribut dari file skema JSON dan tabel DynamoDB. Ini menggunakan mesin template Jinja untuk menghasilkan model PynamoDB dan fungsi CRUD yang sesuai.

1. Anda mengakses model PynamoDB untuk melakukan operasi CRUD pada tabel DynamoDB.

## Alat
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-tools"></a>

**Layanan AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

**Alat-alat lainnya**
+ [Jinja](https://jinja.palletsprojects.com/en/) adalah mesin templating extensible yang mengkompilasi template ke dalam kode Python yang dioptimalkan. Pola ini menggunakan Jinja untuk menghasilkan konten dinamis dengan menyematkan placeholder dan logika dalam template.
+ [PynamoDB](https://pynamodb.readthedocs.io/en/stable/) adalah antarmuka berbasis Python untuk Amazon DynamoDB.
+ [Python adalah bahasa](https://www.python.org/) pemrograman komputer tujuan umum.

**Repositori kode**

Kode untuk pola ini tersedia dalam model [PynamoDB yang GitHub dihasilkan otomatis](https://github.com/aws-samples/amazon-reverse-engineer-dynamodb) dan repositori fungsi CRUD. Repositori dibagi menjadi dua bagian utama: paket controller dan template.

*Controller paket*

Paket Python controller berisi logika aplikasi utama yang membantu menghasilkan model PynamoDB dan fungsi CRUD. Ini berisi yang berikut:
+ `input_json_validator.py`- Skrip Python ini memvalidasi file skema JSON masukan dan membuat objek Python yang berisi daftar tabel DynamoDB target dan atribut yang diperlukan untuk masing-masing.
+ `dynamo_connection.py`— Skrip ini membuat koneksi ke tabel DynamoDB dan menggunakan operasi untuk mengekstrak atribut `describe_table` yang diperlukan untuk membuat model PynamoDB.
+ `generate_model.py`- Script ini berisi kelas Python `GenerateModel` yang menciptakan model PynamoDB berdasarkan file skema JSON masukan dan operasi. `describe_table`
+ `generate_crud.py`— Untuk tabel DynamoDB yang didefinisikan dalam file skema JSON, skrip ini menggunakan `GenerateCrud` operasi untuk membuat kelas Python.

*Template*

Direktori Python ini berisi template Jinja berikut:
+ `model.jinja`- Template Jinja ini berisi ekspresi template untuk menghasilkan skrip model PynamoDB.
+ `crud.jinja`- Template Jinja ini berisi ekspresi template untuk menghasilkan skrip fungsi CRUD.

## Epik
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-epics"></a>

### Mengatur lingkungan
<a name="set-up-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Masukkan perintah berikut untuk mengkloning model [PynamoDB yang dihasilkan otomatis dan repositori fungsi CRUD](https://github.com/aws-samples/amazon-reverse-engineer-dynamodb).<pre>git clone https://github.com/aws-samples/amazon-reverse-engineer-dynamodb.git</pre> | Pengembang aplikasi | 
| Siapkan lingkungan Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.html) | Pengembang aplikasi | 

### Hasilkan model PynamoDB dan fungsi CRUD
<a name="generate-the-pynamodb-model-and-crud-functions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah file skema JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.html) | Pengembang aplikasi | 
| Jalankan aplikasi Python. | Masukkan perintah berikut untuk menghasilkan model PynamoDB dan fungsi CRUD, `<input_schema.json>` di mana nama file skema JSON Anda.<pre>python main.py --file <input_schema.json></pre> | Pengembang aplikasi | 

### Verifikasi model PynamoDB dan fungsi CRUD
<a name="verify-the-pynamodb-model-and-crud-functions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi model PynamodB yang dihasilkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.html) | Pengembang aplikasi | 
| Verifikasi fungsi CRUD yang dihasilkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.html) | Pengembang aplikasi | 

## Sumber daya terkait
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-resources"></a>
+ [Komponen inti Amazon DynamoDB (dokumentasi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html) DynamoDB)
+ [Meningkatkan akses data dengan indeks sekunder](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SecondaryIndexes.html) (dokumentasi DynamoDB)

## Informasi tambahan
<a name="automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application-additional"></a>

**Contoh atribut untuk file skema JSON**

```
[
{
"name": "test_table",
"region": "ap-south-1",
"attributes": [
{
"name": "id",
"type": "UnicodeAttribute"
},
{
"name": "name",
"type": "UnicodeAttribute"
},
{
"name": "age",
"type": "NumberAttribute"
}
]
}
]
```

# Blokir akses publik ke Amazon RDS dengan menggunakan Cloud Custodian
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian"></a>

*abhay kumar dan Dwarika Patra, Amazon Web Services*

## Ringkasan
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-summary"></a>

Banyak organisasi menjalankan beban kerja dan layanan mereka di beberapa vendor cloud. Dalam lingkungan cloud hybrid ini, infrastruktur cloud membutuhkan tata kelola cloud yang ketat, selain keamanan yang disediakan oleh penyedia cloud individu. Database cloud seperti Amazon Relational Database Service (Amazon RDS) adalah salah satu layanan penting yang harus dipantau untuk setiap kerentanan akses dan izin. Meskipun Anda dapat membatasi akses ke database Amazon RDS dengan mengonfigurasi grup keamanan, Anda dapat menambahkan lapisan perlindungan kedua untuk melarang tindakan seperti akses publik. Memblokir akses publik membantu Anda dengan Peraturan Perlindungan Data Umum (GDPR), Undang-Undang Portabilitas dan Akuntabilitas Asuransi Kesehatan (HIPAA), Institut Standar dan Teknologi Nasional (NIST), dan Standar Keamanan Data Industri Kartu Pembayaran (PCI DSS).

Cloud Custodian adalah mesin aturan sumber terbuka yang dapat Anda gunakan untuk memberlakukan pembatasan akses untuk sumber daya Amazon Web Services (AWS) seperti Amazon RDS. Dengan Cloud Custodian, Anda dapat menetapkan aturan yang memvalidasi lingkungan berdasarkan standar keamanan dan kepatuhan yang ditetapkan. Anda dapat menggunakan Cloud Custodian untuk mengelola lingkungan cloud Anda dengan membantu memastikan kepatuhan terhadap kebijakan keamanan, kebijakan tag, dan pengumpulan sampah sumber daya dan manajemen biaya yang tidak digunakan. Dengan Cloud Custodian, Anda dapat menggunakan satu antarmuka untuk menerapkan tata kelola di lingkungan cloud hybrid. Misalnya, Anda dapat menggunakan antarmuka Cloud Custodian untuk berinteraksi dengan AWS Microsoft Azure, mengurangi upaya bekerja dengan mekanisme seperti AWS Config, grup AWS keamanan, dan kebijakan Azure.

Pola ini memberikan instruksi untuk menggunakan Cloud Custodian on AWS untuk memberlakukan pembatasan aksesibilitas publik pada instans Amazon RDS.

## Prasyarat dan batasan
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ [Sebuah key pair](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds-create)
+ AWS Lambda dipasang

## Arsitektur
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-architecture"></a>

Diagram berikut menunjukkan Cloud Custodian yang menerapkan kebijakan ke AWS Lambda, AWS CloudTrail memulai `CreateDBInstance` acara, dan setelan fungsi Lambda ke `PubliclyAccessible` false di Amazon RDS.

![\[Menggunakan Cloud Custodian di AWS untuk membatasi akses publik ke instans Amazon RDS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/90f9537e-9365-4da2-8a28-da0ff374743c/images/6d04ca3b-6aa4-4c62-ade9-8b7474928c5e.png)


## Alat
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-tools"></a>

**Layanan AWS**
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)membantu Anda mengaudit tata kelola, kepatuhan, dan risiko operasional Anda Akun AWS.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud

**Alat lainnya**
+ [Cloud Custodian](https://cloudcustodian.io/) menyatukan alat dan skrip yang digunakan banyak organisasi untuk mengelola akun cloud publik mereka menjadi satu alat open source. Ini menggunakan mesin aturan stateless untuk definisi dan penegakan kebijakan, dengan metrik, output terstruktur, dan pelaporan terperinci untuk infrastruktur cloud. Ini terintegrasi erat dengan runtime tanpa server untuk memberikan remediasi dan respons waktu nyata dengan overhead operasional yang rendah.

## Epik
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-epics"></a>

### Mengatur AWS CLI
<a name="set-up-the-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS CLI. | Untuk menginstal AWS CLI, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). | Administrator AWS | 
| Siapkan AWS kredensil. | Konfigurasikan pengaturan yang AWS CLI digunakan untuk berinteraksi AWS, termasuk Wilayah AWS dan format output yang ingin Anda gunakan.<pre>$>aws configure<br />AWS Access Key ID [None]: <your_access_key_id><br />AWS Secret Access Key [None]: <your_secret_access_key><br />Default region name [None]:<br />Default output format [None]:</pre>Lihat informasi yang lebih lengkap dalam [dokumentasi AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). | Administrator AWS | 
| Buat peran IAM. | Untuk membuat peran IAM dengan peran eksekusi Lambda, jalankan perintah berikut.<pre>aws iam create-role --role-name lambda-ex --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}</pre> | AWS DevOps | 

### Siapkan Cloud Custodian
<a name="set-up-cloud-custodian"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Cloud Custodian. | Untuk menginstal Cloud Custodian untuk sistem operasi dan lingkungan Anda, ikuti petunjuk dalam dokumentasi [Cloud Custodian](https://cloudcustodian.io/docs/quickstart/index.html#install-cc). | DevOps insinyur | 
| Periksa skema Cloud Custodian. | Untuk melihat daftar lengkap sumber daya Amazon RDS yang dapat digunakan untuk menjalankan kebijakan, gunakan perintah berikut.<pre>custodian schema aws.rds</pre> | DevOps insinyur | 
| Buat kebijakan Cloud Custodian. | Simpan kode yang ada di bawah *file kebijakan Cloud Custodian* di bagian [Informasi tambahan](#block-public-access-to-amazon-rds-by-using-cloud-custodian-additional) menggunakan ekstensi YAMM. | DevOps insinyur | 
| Tentukan tindakan Cloud Custodian untuk mengubah flag yang dapat diakses publik. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/block-public-access-to-amazon-rds-by-using-cloud-custodian.html) | DevOps insinyur | 
| Lakukan lari kering. | (Opsional) Untuk memeriksa sumber daya mana yang diidentifikasi oleh kebijakan tanpa menjalankan tindakan apa pun pada sumber daya, gunakan perintah berikut.<pre>custodian run -dryrun <policy_name>.yaml -s <output_directory></pre> | DevOps insinyur | 

### Terapkan kebijakan
<a name="deploy-the-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Terapkan kebijakan dengan menggunakan Lambda. | Untuk membuat fungsi Lambda yang akan menjalankan kebijakan, gunakan perintah berikut.<pre>custodian run -s policy.yaml</pre>Kebijakan ini kemudian akan diprakarsai oleh AWS CloudTrail `CreateDBInstance` acara tersebut.Akibatnya, AWS Lambda akan mengatur flag yang dapat diakses publik `false` untuk instance yang sesuai dengan kriteria. | DevOps insinyur | 

## Sumber daya terkait
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-resources"></a>
+ [AWS Lambda situs web](https://aws.amazon.com/lambda/)
+ [Situs Amazon RDS](https://aws.amazon.com/rds/)
+ [Dokumentasi Cloud Custodian](https://cloudcustodian.io/docs/quickstart/index.html)

## Informasi tambahan
<a name="block-public-access-to-amazon-rds-by-using-cloud-custodian-additional"></a>

**File YAMM kebijakan Cloud Custodian**

```
policies:
  - name: "block-public-access"
    resource: rds
    description: |
      This Enforcement blocks public access for RDS instances.
    mode:
      type: cloudtrail
      events:
        - event: CreateDBInstance # Create RDS instance cloudtrail event
          source: rds.amazonaws.com
          ids: requestParameters.dBInstanceIdentifier
      role: arn:aws:iam::1234567890:role/Custodian-compliance-role
    filters:
      - type: event
        key: 'detail.requestParameters.publiclyAccessible'
        value: true
    actions:
      - type: set-public-access
        state: false
```

**file rds.py sumber daya c7n**

```
@actions.register('set-public-access')
 class RDSSetPublicAvailability(BaseAction):
 
     schema = type_schema(
         "set-public-access",
         state={'type': 'boolean'})
     permissions = ('rds:ModifyDBInstance',)
 
     def set_accessibility(self, r):
         client = local_session(self.manager.session_factory).client('rds')
         waiter = client.get_waiter('db_instance_available')
         waiter.wait(DBInstanceIdentifier=r['DBInstanceIdentifier'])
         client.modify_db_instance(
             DBInstanceIdentifier=r['DBInstanceIdentifier'],
             PubliclyAccessible=self.data.get('state', False))
 
 
     def process(self, rds):
         with self.executor_factory(max_workers=2) as w:
             futures = {w.submit(self.set_accessibility, r): r for r in rds}
             for f in as_completed(futures):
                 if f.exception():
                     self.log.error(
                         "Exception setting public access on %s  \n %s",
                         futures[f]['DBInstanceIdentifier'], f.exception())
         return rds
```

**Integrasi CSPM Security Hub**

Cloud Custodian dapat diintegrasikan [AWS Security Hub CSPM](https://aws.amazon.com/security-hub/)untuk mengirim temuan keamanan dan mencoba tindakan remediasi. Untuk informasi selengkapnya, lihat [Mengumumkan Integrasi Cloud Custodian](https://aws.amazon.com/blogs/opensource/announcing-cloud-custodian-integration-aws-security-hub/) dengan. AWS Security Hub CSPM

# Konfigurasikan otentikasi Windows untuk Amazon RDS untuk Microsoft SQL Server menggunakan AWS Managed Microsoft AD
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad"></a>

*Ramesh Babu Donti, Amazon Web Services*

## Ringkasan
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-summary"></a>

Pola ini menunjukkan cara mengonfigurasi otentikasi Windows untuk Amazon Relational Database Service (Amazon RDS) untuk instance SQL Server menggunakan (). AWS Directory Service for Microsoft Active Directory AWS Managed Microsoft AD Otentikasi Windows memungkinkan pengguna untuk terhubung ke instance RDS menggunakan kredensyal domain mereka alih-alih nama pengguna dan kata sandi khusus database.

Anda dapat mengaktifkan otentikasi Windows baik saat membuat database RDS SQL Server baru atau dengan menambahkannya ke instance database yang ada. Instance database terintegrasi dengan AWS Managed Microsoft AD untuk menyediakan otentikasi terpusat dan otorisasi bagi pengguna domain yang mengakses database SQL Server.

Konfigurasi ini meningkatkan keamanan dengan memanfaatkan infrastruktur Active Directory yang ada dan menghilangkan kebutuhan untuk mengelola kredensi database terpisah untuk pengguna domain.

## Prasyarat dan batasan
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS dengan izin yang sesuai
+ Virtual Private Cloud (VPC) dengan berikut ini:
  + Gateway Internet dan tabel rute yang dikonfigurasi
  + Gateway NAT di subnet publik (jika akses internet diperlukan untuk instance)
+ AWS Identity and Access Management Peran (IAM):
  + Peran domain dengan kebijakan AWS terkelola berikut:
    + `AmazonSSMManagedInstanceCore`untuk mengaktifkan AWS Systems Manager
    + `AmazonSSMDirectoryServiceAccess`untuk memberikan izin untuk menggabungkan instance ke direktori
  + Peran pemantauan yang ditingkatkan RDS (jika pemantauan yang ditingkatkan diaktifkan)
+ Grup keamanan:
  + Grup keamanan layanan direktori untuk memungkinkan port komunikasi Active Directory
  + Grup keamanan Amazon Elastic Compute Cloud (Amazon EC2) untuk memungkinkan komunikasi RDP `3389` dan domain
  + Grup keamanan RDS untuk mengizinkan port SQL Server `1433` dari sumber resmi
+ Konektivitas jaringan:
  + Resolusi DNS yang tepat dan konektivitas jaringan antar subnet

**Batasan**
+ Untuk informasi tentang dukungan Wilayah AWS tersebut AWS Managed Microsoft AD dengan RDS untuk SQL Server, lihat Ketersediaan [wilayah dan versi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html#USER_SQLServerWinAuth.RegionVersionAvailability).
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-architecture"></a>

**Tumpukan teknologi sumber**
+ Direktori Aktif lokal atau AWS Managed Microsoft AD

**Tumpukan teknologi target**
+ Amazon EC2
+ Amazon RDS for Microsoft SQL Server
+ AWS Managed Microsoft AD

**Arsitektur target**

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e02f6059-6631-46f6-819c-5961af7ba4ae/images/1aa50e3b-b4f6-4d44-9f9e-6cbb248a159c.png)


Arsitekturnya meliputi:
+ Peran IAM yang menggabungkan EC2 instans Amazon ke domain. AWS Managed Microsoft AD 
+ Instans Amazon EC2 Windows untuk administrasi dan pengujian database.
+ VPC Amazon dengan subnet pribadi untuk meng-host instans Amazon RDS dan sumber daya internal di seluruh Availability Zone.
+ Grup keamanan untuk kontrol akses jaringan:
  + Grup keamanan Amazon RDS untuk mengontrol akses masuk ke port SQL Server `1433` dari sumber resmi.
  + Grup EC2 keamanan Amazon untuk mengelola akses RDP melalui port `3389` dan port komunikasi domain.
  + Grup keamanan Layanan Direktori untuk komunikasi Active Directory melalui port`53`,`88`,`389`, dan`445`.
+ AWS Managed Microsoft AD untuk menyediakan layanan otentikasi dan otorisasi terpusat untuk sumber daya Windows.
+ Contoh database Amazon RDS for SQL Server di subnet pribadi dengan otentikasi Windows diaktifkan.

## Alat
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ Amazon Relational Database Service (Amazon RDS) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
+ [AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)menyediakan beberapa cara untuk menggunakan Microsoft Active Directory (AD) dengan yang lain Layanan AWS seperti Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) untuk SQL Server, dan FSx Amazon untuk Windows File Server.
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)memungkinkan beban kerja dan sumber daya yang sadar direktori Anda AWS untuk menggunakan Microsoft Active Directory di file. AWS Cloud
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

**Layanan lainnya**
+ [Microsoft SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server.

## Praktik terbaik
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-best-practices"></a>
+ Untuk praktik terbaik umum, lihat [Praktik terbaik untuk Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html)

## Epik
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-epics"></a>

### Konfigurasikan AWS Managed Microsoft AD
<a name="configure-managed-ad"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan jenis direktori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan informasi direktori. | Di bagian **Informasi direktori**, masukkan informasi yang diperlukan, dan simpan nilai opsional:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan VPC dan subnet. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Tinjau dan buat direktori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 

### Membuat dan mengonfigurasi EC2 instans Amazon
<a name="create-and-configure-an-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AMI untuk Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Mengkonfigurasi pengaturan jaringan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan penyimpanan. | Konfigurasikan volume Amazon EBS sesuai kebutuhan. | DBA, DevOps insinyur | 
| Konfigurasikan detail lanjutan dan luncurkan instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 

### Buat dan konfigurasikan RDS untuk SQL Server dengan otentikasi Windows
<a name="create-and-configure-rds-for-sql-server-with-windows-authentication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database dan konfigurasikan opsi mesin. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Pilih templat. | Pilih contoh template yang memenuhi kebutuhan Anda. | DBA, DevOps insinyur | 
| Konfigurasikan pengaturan basis data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan instance. | Di bagian **konfigurasi Instans**, di bawah **kelas instans DB**, pilih ukuran instans yang memenuhi persyaratan Anda. | DBA, DevOps insinyur | 
| Konfigurasikan penyimpanan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan konektivitas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan otentikasi Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan pemantauan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html)Catatan: Metrik berguna saat Anda ingin melihat bagaimana proses atau utas yang berbeda menggunakan CPU. Anda juga dapat mengekspor log kesalahan ke Amazon CloudWatch jika **log kesalahan** diaktifkan. | DBA, DevOps insinyur | 
| Konfigurasikan pengaturan tambahan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Tinjau biaya dan buat database. | Tinjau bagian **Perkiraan biaya bulanan**, lalu pilih **Buat database**. | DBA, DevOps insinyur | 

### Konfigurasikan akses database dan uji koneksi
<a name="configure-database-access-and-test-connections"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke mesin Windows. | Connect ke mesin Windows Anda dan luncurkan SQL Server Management Studio.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan koneksi SSMS. | Siapkan koneksi database menggunakan otentikasi Windows.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Konfigurasikan pengaturan keamanan. | Tetapkan parameter keamanan yang diperlukan untuk SSMS versi 20 atau yang lebih baru.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 
| Buat login Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html)<pre>CREATE LOGIN [<domainName>\<user_name>] FROM WINDOWS;<br />GO</pre> | DBA, DevOps insinyur | 
| Uji otentikasi Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-windows-authentication-for-amazon-rds-using-microsoft-ad.html) | DBA, DevOps insinyur | 

## Sumber daya terkait
<a name="configure-windows-authentication-for-amazon-rds-using-microsoft-ad-resources"></a>
+ [Membuat Anda AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html)
+ [Bergabung dengan instans Amazon EC2 Windows ke AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html)
+ [Wilayah dan mesin DB yang Didukung untuk otentikasi Kerberos di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.html)
+ [Apa itu SQL Server Management Studio (SSMS)?](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms)

# Mengonfigurasikan akses lintas akun ke Amazon DynamoDB
<a name="configure-cross-account-access-to-amazon-dynamodb"></a>

*Shashi Dalmia, Imhoertha Ojior, dan Esteban Serna Parra, Amazon Web Services*

## Ringkasan
<a name="configure-cross-account-access-to-amazon-dynamodb-summary"></a>

Pola ini menjelaskan langkah-langkah untuk mengonfigurasi akses lintas akun ke Amazon DynamoDB dengan menggunakan kebijakan berbasis sumber daya. Untuk beban kerja yang menggunakan DynamoDB, semakin umum [menggunakan strategi isolasi beban kerja](https://aws.amazon.com/solutions/guidance/workload-isolation-on-aws/?did=sl_card&trk=sl_card) untuk meminimalkan ancaman keamanan dan memenuhi persyaratan kepatuhan. Menerapkan strategi isolasi beban kerja seringkali memerlukan akses lintas akun dan lintas wilayah ke sumber daya DynamoDB dengan menggunakan kebijakan berbasis identitas (IAM). AWS Identity and Access Management Ini melibatkan pengaturan izin IAM dan membangun hubungan kepercayaan antara. Akun AWS

[Kebijakan berbasis sumber daya untuk DynamoDB sangat menyederhanakan postur keamanan untuk beban kerja](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) lintas akun. Pola ini menyediakan langkah-langkah dan kode sampel untuk menunjukkan bagaimana Anda dapat mengkonfigurasi AWS Lambda fungsi dalam satu Akun AWS untuk menulis data ke tabel database DynamoDB di akun yang berbeda.

## Prasyarat dan batasan
<a name="configure-cross-account-access-to-amazon-dynamodb-prereqs"></a>

**Prasyarat**
+ Dua aktif Akun AWS. Pola ini mengacu pada akun ini sebagai *Akun A* dan *Akun B*.
+ AWS Command Line Interface (AWS CLI) [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) untuk mengakses Akun A, untuk membuat tabel DynamoDB. Langkah-langkah lain dalam pola ini memberikan instruksi untuk menggunakan konsol IAM, DynamoDB, dan Lambda. Jika Anda berencana untuk menggunakannya, AWS CLI konfigurasikan untuk mengakses kedua akun.

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="configure-cross-account-access-to-amazon-dynamodb-architecture"></a>

Diagram berikut menunjukkan arsitektur akun tunggal. AWS Lambda, Amazon Elastic Compute Cloud (Amazon EC2), dan DynamoDB semuanya berada di akun yang sama. Dalam skenario ini, fungsi Lambda dan EC2 instans Amazon dapat mengakses DynamoDB. Untuk memberikan akses ke tabel DynamoDB, Anda dapat membuat kebijakan berbasis identitas di IAM, atau Anda dapat membuat kebijakan berbasis sumber daya di DynamoDB.

![\[Menggunakan izin IAM untuk mengakses tabel DynamoDB di akun yang sama.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bfc32fe8-5db0-4cac-a30f-b870a1a82875/images/cbb009eb-422d-4833-a1bc-0c571d83c21f.png)


Diagram berikut menunjukkan arsitektur multi-akun. Jika sumber daya dalam satu Akun AWS memerlukan akses ke tabel DynamoDB di akun lain, Anda perlu menyiapkan kebijakan berbasis sumber daya di DynamoDB untuk memberikan akses yang diperlukan. Misalnya, dalam diagram berikut, akses ke tabel DynamoDB di Akun A diberikan ke fungsi Lambda di Akun B dengan menggunakan kebijakan berbasis sumber daya.

![\[Menggunakan kebijakan berbasis sumber daya untuk mengakses tabel DynamoDB di akun yang berbeda.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bfc32fe8-5db0-4cac-a30f-b870a1a82875/images/9f9165a8-b767-4427-a2ae-31b5b8c83326.png)


Pola ini menjelaskan akses lintas akun antara Lambda dan DynamoDB. Anda dapat menggunakan langkah serupa untuk yang lain Layanan AWS jika izin yang sesuai dikonfigurasi di kedua akun. [Misalnya, jika ingin memberikan akses fungsi Lambda ke bucket Amazon Simple Storage Service (Amazon S3) di Akun A, Anda dapat membuat [kebijakan berbasis sumber daya di Amazon S3 dan menambahkan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) izin ke peran eksekusi Lambda di Akun B.](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)

## Alat
<a name="configure-cross-account-access-to-amazon-dynamodb-tools"></a>

**Layanan AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

**Kode**

Pola ini mencakup kode sampel di bagian [Informasi tambahan](#configure-cross-account-access-to-amazon-dynamodb-additional) untuk menunjukkan bagaimana Anda dapat mengonfigurasi fungsi Lambda di Akun B untuk menulis ke tabel DynamoDB di Akun A. Kode disediakan hanya untuk tujuan ilustrasi dan pengujian. Jika Anda menerapkan pola ini di lingkungan produksi, gunakan kode sebagai referensi, dan sesuaikan untuk lingkungan Anda sendiri.

## Praktik terbaik
<a name="configure-cross-account-access-to-amazon-dynamodb-best-practices"></a>
+ Ikuti [praktik terbaik untuk kebijakan berbasis sumber daya dalam](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-best-practices.html) dokumentasi DynamoDB.
+ Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat [Berikan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) dan [praktik terbaik Keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam dokumentasi IAM.

## Epik
<a name="configure-cross-account-access-to-amazon-dynamodb-epics"></a>

### Buat kebijakan dan peran IAM untuk fungsi Lambda di Akun B
<a name="create-an-iam-policy-and-role-for-the-lam-function-in-account-b"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan di Akun B. | Kebijakan IAM ini memungkinkan [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)tindakan untuk tabel DynamoDB di Akun A.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | AWS Umum | 
| Buat peran di Akun B. | Fungsi Lambda di Akun B menggunakan peran IAM ini untuk mengakses tabel DynamoDB di Akun A.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)Untuk informasi selengkapnya tentang membuat peran, lihat [dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS Umum | 
| Perhatikan ARN peran. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | AWS Umum | 

### Buat tabel DynamoDB di Akun A
<a name="create-a-ddb-table-in-account-a"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel DynamoDB. | Gunakan AWS CLI perintah berikut untuk membuat tabel DynamoDB.<pre> aws dynamodb create-table \<br />    --table-name Table-Account-A \<br />    --attribute-definitions \<br />      AttributeName=category,AttributeType=S \<br />      AttributeName=item,AttributeType=S \<br />    --key-schema \<br />      AttributeName=category,KeyType=HASH \<br />      AttributeName=item,KeyType=RANGE \<br />    --provisioned-throughput \<br />      ReadCapacityUnits=5,WriteCapacityUnits=5 \<br />    --resource-policy \<br />      '{         <br />          "Version": "2012-10-17",		 	 	 <br />          "Statement": [<br />            {                    <br />               "Sid": "Statement1",<br />               "Effect": "Allow",<br />               "Principal": {<br />                  "AWS": "arn:aws:iam::<Account-B-ID>:role/<Role-Name>"<br />               },<br />               "Action": "dynamodb:PutItem",<br />               "Resource": "arn:aws:dynamodb:<Region>:<Account-A-ID>:table/Table-Account-A"<br />            }            <br />         ]<br />      }'</pre>Ganti yang berikut ini dalam contoh kode ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)Anda menentukan konfigurasi kebijakan berbasis sumber daya dalam `create-table` pernyataan menggunakan tanda. `--resource-policy` Kebijakan ini mengacu pada ARN untuk tabel DynamoDB di Akun A.Untuk informasi selengkapnya tentang membuat tabel, lihat dokumentasi [DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html). | AWS Umum | 

### Buat fungsi Lambda di Akun B
<a name="create-a-lam-function-in-account-b"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi Lambda untuk menulis data ke DynamoDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)[Untuk informasi selengkapnya tentang membuat fungsi Lambda, lihat dokumentasi Lambda.](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) | AWS Umum | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus sumber daya. | Untuk menghindari timbulnya biaya yang terkait dengan sumber daya yang dibuat dalam pola ini, lakukan hal berikut untuk menghapus sumber daya ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | AWS Umum | 

## Pemecahan masalah
<a name="configure-cross-account-access-to-amazon-dynamodb-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Saat membuat fungsi Lambda, Anda menerima kesalahan. `ResourceNotFoundException` | Konfirmasikan bahwa Anda telah memasukkan Wilayah AWS dan ID Akun A. Ini adalah bagian dari ARN untuk tabel DynamoDB. | 

## Sumber daya terkait
<a name="configure-cross-account-access-to-amazon-dynamodb-resources"></a>
+ [Memulai dengan DynamoDB (dokumentasi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html) DynamoDB)
+ [Memulai dengan Lambda (dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) Lambda)
+ [Menggunakan kebijakan berbasis sumber daya untuk DynamoDB (dokumentasi DynamoDB)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html)
+ [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) (dokumentasi IAM)
+ [Logika evaluasi kebijakan lintas akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) (dokumentasi IAM)
+ [Referensi elemen kebijakan IAM JSON (dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) IAM)

## Informasi tambahan
<a name="configure-cross-account-access-to-amazon-dynamodb-additional"></a>

*Kode sampel*

```
import boto3
from datetime import datetime

dynamodb_client = boto3.client('dynamodb')

def lambda_handler(event, context):
     now = datetime.now().isoformat()
     data = dynamodb_client.put_item(TableName='arn:aws:dynamodb:<Region>:<Account-A-ID>:table/Table-Account-A', Item={"category": {"S": "Fruit"},"item": {"S": "Apple"},"time": {"S": now}})
     return data
```

**catatan**  
Ketika klien DynamoDB dipakai, ARN dari tabel DynamoDB disediakan bukan nama tabel. Ini diperlukan agar fungsi Lambda terhubung ke tabel DynamoDB yang benar saat dijalankan.

# Konfigurasikan perutean hanya-baca dalam grup ketersediaan Selalu Aktif di SQL Server di AWS
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws"></a>

*Subhani Shaik, Amazon Web Services*

## Ringkasan
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-summary"></a>

Pola ini mencakup cara menggunakan replika sekunder siaga di SQL Server Always On dengan menurunkan beban kerja read-only dari replika primer ke replika sekunder.

Pencerminan basis data memiliki one-to-one pemetaan. Anda tidak dapat membaca database sekunder secara langsung, jadi Anda harus membuat snapshot. Fitur grup ketersediaan Selalu Aktif diperkenalkan di Microsoft SQL Server 2012. Dalam versi yang lebih baru, fungsionalitas utama telah diperkenalkan, termasuk perutean hanya-baca. Di grup ketersediaan Selalu Aktif, Anda dapat membaca data langsung dari replika sekunder dengan mengubah mode replika menjadi hanya-baca.

Solusi grup ketersediaan Always On mendukung ketersediaan tinggi (HA), pemulihan bencana (DR), dan alternatif untuk pencerminan basis data. Grup ketersediaan Always On bekerja di tingkat database dan memaksimalkan ketersediaan satu set database pengguna.

SQL Server menggunakan mekanisme routing read-only untuk mengarahkan koneksi read-only yang masuk ke replika baca sekunder. Untuk mencapai ini, Anda harus menambahkan parameter dan nilai berikut dalam string koneksi:
+ `ApplicationIntent=ReadOnly`
+ `Initial Catalog=<database name>`

## Prasyarat dan batasan
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif dengan virtual private cloud (VPC), dua Availability Zone, subnet pribadi, dan grup keamanan
+ Dua mesin Amazon Elastic Compute Cloud (Amazon EC2) dengan [SQL Server 2019 Enterprise Edition Amazon Machine Image](https://aws.amazon.com/marketplace/pp/prodview-btjcozd246p6w) dengan [Windows Server Failover Clustering (WSFC)](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/ec2-fci.html) yang dikonfigurasi pada tingkat instans dan grup ketersediaan Selalu Aktif yang dikonfigurasi pada tingkat SQL Server antara node primer (`WSFCNODE1`) dan node sekunder (`WSFCNODE2`), yang merupakan bagian dari direktori AWS Directory Service untuk Microsoft Active Directory bernama `tagechtalk.com`
+ Satu atau lebih node dikonfigurasi untuk menerima `read-only` dalam replika sekunder
+ Pendengar yang diberi nama `SQLAG1` untuk grup ketersediaan Selalu Aktif
+ SQL Server Database Engine berjalan dengan akun layanan yang sama pada dua node
+ Studio Manajemen SQL Server (SSMS)
+ Database uji bernama `test`

**Versi Produk**
+ SQL Server 2014 dan yang lebih baru

## Arsitektur
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-architecture"></a>

**Tumpukan teknologi target**
+ Amazon EC2
+ AWS Dikelola Microsoft AD
+ Amazon FSx

**Arsitektur target**

Diagram berikut menunjukkan bagaimana pendengar Always On availability group (AG) mengalihkan kueri yang berisi `ApplicationIntent` parameter dalam koneksi ke node sekunder yang sesuai.

![\[Tiga langkah proses antara dua Availability Zone untuk node 1 WSFC dan node 2 WSFC dengan Amazon EFS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/19b5937b-da10-4c74-8619-fdcb758f2211/images/f9ba0f89-7dc2-4f4c-8eee-bef56968ad2d.png)


1. Permintaan dikirim ke pendengar grup ketersediaan Selalu Aktif.

1. Jika string koneksi tidak memiliki `ApplicationIntent` parameter, permintaan dikirim ke instance utama.

1. Jika string koneksi berisi`ApplicationIntent=ReadOnly`, permintaan dikirim ke instance sekunder dengan konfigurasi routing read-only, yaitu WSFC dengan grup ketersediaan Selalu Aktif.

## Alat
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-tools"></a>

**Layanan AWS**
+ [AWS Directory Service untuk Microsoft Active Directory memungkinkan beban kerja yang sadar direktori](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) dan sumber daya AWS Anda untuk menggunakan Microsoft Active Directory di AWS Cloud.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) menyediakan sistem file yang mendukung protokol konektivitas standar industri dan menawarkan ketersediaan dan replikasi tinggi di seluruh Wilayah AWS.

**Layanan lainnya**
+ SQL Server Management Studio (SSMS) adalah alat untuk menghubungkan, mengelola, dan mengelola instance SQL Server.
+ sqlcmd adalah utilitas baris perintah.

## Praktik terbaik
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-best-practices"></a>

Untuk informasi selengkapnya tentang grup ketersediaan Selalu Aktif, lihat [dokumentasi SQL Server](https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-availability-groups-sql-server?view=sql-server-ver16).

## Epik
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-epics"></a>

### Mengatur perutean hanya-baca
<a name="set-up-read-only-routing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui replika menjadi hanya-baca. | *Untuk memperbarui replika primer dan sekunder menjadi hanya-baca, sambungkan ke replika utama dari SSMS, dan jalankan kode *Langkah 1* dari bagian Informasi tambahan.* | DBA | 
| Buat URL perutean. | Untuk membuat URL routing untuk kedua replika, jalankan kode *Langkah 2* dari bagian *Informasi tambahan*. Dalam kode ini, `tagechtalk.com` adalah nama direktori AWS Managed Microsoft AD. | DBA | 
| Buat daftar routing. | Untuk membuat daftar routing untuk kedua replika, jalankan kode Langkah 3 dari bagian *Informasi tambahan*. | DBA | 
| Validasi daftar routing. | Connect ke instance utama dari SQL Server Management Studio, dan jalankan kode *Langkah 4* dari bagian *Informasi tambahan* untuk memvalidasi daftar routing. | DBA | 

### Uji perutean hanya-baca
<a name="test-the-read-only-routing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect dengan menggunakan ApplicationIntent parameter. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.html) | DBA | 
| Lakukan failover. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.html) | DBA | 

### Connect dengan menggunakan utilitas baris perintah sqlcmd
<a name="connect-by-using-the-sqlcmd-command-line-utility"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect dengan menggunakan sqlcmd. | Untuk terhubung dari sqlcmd, jalankan kode *Langkah 5* dari bagian *Informasi tambahan* di prompt perintah. Setelah Anda terhubung, jalankan perintah berikut untuk menunjukkan nama server yang terhubung.<pre>SELECT SERVERPROPERTY('ComputernamePhysicalNetBios') .</pre>Output akan menampilkan nama replika sekunder saat ini (`WSFCNODE1`). | DBA | 

## Pemecahan masalah
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Membuat pendengar gagal dengan pesan 'Kluster WSFC tidak dapat membawa sumber daya Nama Jaringan online'. | Untuk selengkapnya, lihat posting blog Microsoft [Buat Pendengar Gagal dengan Pesan 'Kluster WSFC tidak dapat membawa sumber daya Nama Jaringan online'](https://techcommunity.microsoft.com/t5/sql-server-support-blog/create-listener-fails-with-message-the-wsfc-cluster-could-not/ba-p/318235). | 
| Masalah potensial, termasuk masalah pendengar lainnya atau masalah akses jaringan. | Lihat [Memecahkan Masalah Selalu Pada Konfigurasi Grup Ketersediaan (SQL Server) di dokumentasi](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/troubleshoot-always-on-availability-groups-configuration-sql-server?view=sql-server-ver16) Microsoft. | 

## Sumber daya terkait
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-resources"></a>
+ [Konfigurasikan perutean hanya-baca untuk grup ketersediaan Selalu Aktif](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server?view=sql-server-ver16)
+ [Memecahkan Masalah Selalu Pada Konfigurasi Grup Ketersediaan (SQL Server)](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/troubleshoot-always-on-availability-groups-configuration-sql-server?view=sql-server-ver16)

## Informasi tambahan
<a name="configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws-additional"></a>

**Langkah 1. Perbarui replika menjadi hanya-baca**

```
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY))
GO
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY))
GO
```

**Langkah 2. Buat URL perutean**

```
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode1.tagechtalk.com:1433'))
GO
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode2.tagechtalk.com:1433'))
GO
```

**Langkah 3. Buat daftar perutean**

```
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('WSFCNODE2','WSFCNODE1')));
GO
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('WSFCNODE1','WSFCNODE2')));
GO
```

**Langkah 4. Validasi daftar perutean**

```
SELECT AGSrc.replica_server_name AS PrimaryReplica, AGRepl.replica_server_name AS ReadOnlyReplica, AGRepl.read_only_routing_url AS RoutingURL , AGRL.routing_priority AS RoutingPriority FROM sys.availability_read_only_routing_lists AGRL INNER JOIN sys.availability_replicas AGSrc ON AGRL.replica_id = AGSrc.replica_id INNER JOIN sys.availability_replicas AGRepl ON AGRL.read_only_replica_id = AGRepl.replica_id INNER JOIN sys.availability_groups AV ON AV.group_id = AGSrc.group_id ORDER BY PrimaryReplica
```

**Langkah 5. Utilitas Perintah SQL**

```
sqlcmd -S SQLAG1,1433 -E -d test -K ReadOnly
```

# Connect dengan menggunakan terowongan SSH di pgAdmin
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin"></a>

*Jeevan Shetty dan Bhanu Ganesh Gudivada, Amazon Web Services*

## Ringkasan
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-summary"></a>

Untuk alasan keamanan, selalu baik untuk menempatkan database di subnet pribadi. Kueri terhadap database dapat dijalankan dengan menghubungkan melalui host bastion Amazon Elastic Compute Cloud EC2 (Amazon) di subnet publik di Amazon Web Services (AWS) Cloud. Ini memerlukan penginstalan perangkat lunak, seperti pgAdmin DBeaver atau, yang biasa digunakan oleh pengembang atau administrator basis data, di host Amazon. EC2 

Menjalankan pgAdmin di server Linux dan mengaksesnya melalui browser web memerlukan instalasi dependensi tambahan, pengaturan izin, dan konfigurasi.

Sebagai solusi alternatif, pengembang atau administrator database dapat terhubung ke database PostgreSQL dengan menggunakan pgAdmin untuk mengaktifkan terowongan SSH dari sistem lokal mereka. Dalam pendekatan ini, pgadmin menggunakan host EC2 Amazon di subnet publik sebagai host perantara sebelum menghubungkan ke database. Diagram di bagian *Arsitektur* menunjukkan pengaturan.

**catatan**  
Pastikan bahwa grup keamanan yang dilampirkan ke database PostgreSQL memungkinkan koneksi pada port 5432 dari host Amazon. EC2 

## Prasyarat dan batasan
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-prereqs"></a>

**Prasyarat**
+ Akun AWS yang ada
+ Virtual Private Cloud (VPC) dengan subnet publik dan subnet pribadi
+  EC2 Contoh dengan grup keamanan terlampir
+ Database Edisi Amazon Aurora PostgreSQL yang kompatibel dengan grup keamanan terlampir
+ Sebuah key pair Secure Shell (SSH) untuk menyiapkan terowongan

**Versi produk**
+ pgAdmin versi 6.2\$1
+ Amazon Aurora PostgreSQL Edisi yang kompatibel dengan versi 12.7\$1

## Arsitektur
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-architecture"></a>

**Tumpukan teknologi target**
+ Amazon EC2
+ Kompatibel dengan Amazon Aurora PostgreSQL

**Arsitektur target**

Diagram berikut menunjukkan penggunaan pgAdmin dengan terowongan SSH untuk terhubung melalui gateway internet ke instance, yang terhubung ke EC2 database.

![\[pGADmin dengan terowongan SSH terhubung melalui gateway internet ke instance yang terhubung EC2 ke database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7d25d570-5685-4f1a-bef0-212e257cb589/images/4556d930-f9b3-4b65-be5d-d40dd9437d5a.png)


## Alat
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-tools"></a>

**Layanan AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.

**Layanan lainnya**
+ [pgAdmin](https://www.pgadmin.org/) adalah alat manajemen sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database.

## Epik
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-epics"></a>

### Buat koneksi
<a name="create-the-connection"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server. | **Di pgAdmin, **pilih Buat, lalu pilih** Server.** *Untuk bantuan tambahan dalam mengatur pgAdmin untuk mendaftarkan server, mengonfigurasi koneksi, dan terhubung melalui tunneling SSH dengan menggunakan Dialog Server, lihat tautan di bagian Sumber daya terkait.* | DBA | 
| Berikan nama untuk server. | Pada tab **Umum**, masukkan nama. | DBA | 
| Masukkan detail database. | Pada tab **Koneksi**, masukkan nilai untuk yang berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/connect-by-using-an-ssh-tunnel-in-pgadmin.html) | DBA | 
| Masukkan detail EC2 server Amazon. | Pada tab **SSH Tunnel**, berikan detail EC2 instance Amazon yang ada di subnet publik.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/connect-by-using-an-ssh-tunnel-in-pgadmin.html) | DBA | 
| Simpan dan sambungkan. | Pilih **Simpan** untuk menyelesaikan pengaturan dan terhubung ke database Aurora PostgreSQL yang kompatibel dengan menggunakan terowongan SSH. | DBA | 

## Sumber daya terkait
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-resources"></a>
+ [Dialog Server](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html)
+ [Connect ke Server](https://www.pgadmin.org/docs/pgadmin4/latest/connect_to_server.html)

# Mengkonversi kueri JSON Oracle ke database PostgreSQL SQL
<a name="convert-json-oracle-queries-into-postgresql-database-sql"></a>

*Pinesh Singal dan Lokesh Gurram, Amazon Web Services*

## Ringkasan
<a name="convert-json-oracle-queries-into-postgresql-database-sql-summary"></a>

Proses migrasi untuk berpindah dari lokal ke Amazon Web Services (AWS) Cloud menggunakan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi kode dari database Oracle menjadi database PostgreSQL. Sebagian besar kode secara otomatis dikonversi oleh AWS SCT. Namun, kueri Oracle terkait JSON tidak dikonversi secara otomatis.

Mulai dari versi Oracle 12.2, Oracle Database mendukung berbagai fungsi JSON yang membantu dalam mengubah data berbasis JSON menjadi data berbasis Row. Namun, AWS SCT tidak secara otomatis mengonversi data berbasis JSON ke dalam bahasa yang didukung oleh PostgreSQL.

Pola migrasi ini terutama berfokus pada mengonversi kueri Oracle terkait JSON secara manual dengan fungsi seperti`JSON_OBJECT`,`JSON_ARRAYAGG`, dan `JSON_TABLE` dari database Oracle ke database PostgreSQL.

## Prasyarat dan batasan
<a name="convert-json-oracle-queries-into-postgresql-database-sql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instans database Oracle lokal (aktif dan berjalan)
+ Amazon Relational Database Service (Amazon RDS) untuk instans database PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan PostgreSQL (aktif dan berjalan)

**Batasan**
+ Kueri terkait JSON memerlukan format dan tetap. `KEY` `VALUE` Tidak menggunakan format itu mengembalikan hasil yang salah.
+ Jika ada perubahan dalam struktur JSON menambahkan baru `KEY` dan `VALUE` pasangan di bagian hasil, prosedur atau fungsi yang sesuai harus diubah dalam kueri SQL.
+ Beberapa fungsi terkait JSON didukung di versi Oracle dan PostgreSQL sebelumnya tetapi dengan kemampuan yang lebih sedikit.

**Versi produk**
+ Oracle Database versi 12.2 dan yang lebih baru
+ Amazon RDS untuk PostgreSQL atau Aurora PostgreSQL yang kompatibel dengan versi 9.5 dan yang lebih baru
+ AWS SCT versi terbaru (diuji menggunakan versi 1.0.664) 

## Arsitektur
<a name="convert-json-oracle-queries-into-postgresql-database-sql-architecture"></a>

**Tumpukan teknologi sumber**
+ Sebuah instance database Oracle dengan versi 19c

**Tumpukan teknologi target**
+ Instans database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL dengan versi 13

**Arsitektur target**

![\[Deskripsi mengikuti diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5e2c3b07-9ef5-417f-b049-bcea58f2c3ec/images/2ff8b00b-8849-4ef1-9be1-579f7b51be10.png)


1. Gunakan AWS SCT dengan kode fungsi JSON untuk mengonversi kode sumber dari Oracle ke PostgreSQL.

1. Konversi menghasilkan file.sql bermigrasi yang didukung PostgreSQL.

1. Secara manual mengonversi kode fungsi Oracle JSON yang tidak dikonversi ke kode fungsi PostgreSQL JSON.

1. Jalankan file.sql pada instans DB yang kompatibel dengan Aurora PostgreSQL target.

## Alat
<a name="convert-json-oracle-queries-into-postgresql-database-sql-tools"></a>

**Layanan AWS**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional PostgreSQL di AWS Cloud.
+ [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)) mendukung migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target.

**Layanan lainnya**
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud.
+ pgAdmin atau. DBeaver [pgAdmin](https://www.pgadmin.org/) adalah alat manajemen sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. [DBeaver](https://dbeaver.io/)adalah alat database universal.

## Praktik terbaik
<a name="convert-json-oracle-queries-into-postgresql-database-sql-best-practices"></a>

Kueri Oracle memiliki tipe `CAST` sebagai default saat menggunakan `JSON_TABLE` fungsi. Praktik terbaik adalah menggunakan `CAST` PostgreSQL juga, menggunakan double greater-than characters (). `>>`

*Untuk informasi selengkapnya, lihat *PostgreS\$1SQL\$1READ\$1JSON* di bagian Informasi tambahan.*

## Epik
<a name="convert-json-oracle-queries-into-postgresql-database-sql-epics"></a>

### Menghasilkan data JSON dalam database Oracle dan PostgreSQL
<a name="generate-the-json-data-in-the-oracle-and-postgresql-databases"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Simpan data JSON dalam database Oracle. | Buat tabel di database Oracle, dan simpan data JSON di kolom. `CLOB`  *Gunakan *Oracle\$1Table\$1Creation\$1Insert\$1Script yang ada di bagian Informasi tambahan*.* | Insinyur migrasi | 
| Simpan data JSON dalam database PostgreSQL. | Buat tabel di database PostgreSQL, dan simpan data JSON di kolom. `TEXT` *Gunakan *Postgres\$1Table\$1Creation\$1Insert\$1Script yang ada di bagian Informasi* tambahan.* | Insinyur migrasi | 

### Ubah JSON menjadi format ROW
<a name="convert-the-json-into-row-format"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konversi data JSON pada database Oracle. | Tulis query Oracle SQL untuk membaca data JSON ke dalam format ROW. *Untuk detail selengkapnya dan contoh sintaks, lihat *Oracle\$1SQL\$1READ\$1JSON* di bagian Informasi tambahan.* | Insinyur migrasi | 
| Konversi data JSON pada database PostgreSQL. | Tulis kueri PostgreSQL untuk membaca data JSON ke dalam format ROW. *Untuk detail selengkapnya dan contoh sintaks, lihat *PostgreS\$1SQL\$1READ\$1JSON* di bagian Informasi tambahan.*  | Insinyur migrasi | 

### Secara manual mengkonversi data JSON menggunakan query SQL dan melaporkan output dalam format JSON
<a name="manually-convert-the-json-data-using-the-sql-query-and-report-the-output-in-json-format"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan agregasi dan validasi pada query Oracle SQL. | Untuk mengonversi data JSON secara manual, lakukan gabungan, agregasi, dan validasi pada kueri Oracle SQL, dan laporkan output dalam format JSON. *Gunakan kode di bawah *Oracle\$1SQL\$1JSON\$1AGGREGATION\$1JOIN di bagian Informasi tambahan*.*[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-json-oracle-queries-into-postgresql-database-sql.html) | Insinyur migrasi | 
| Lakukan agregasi dan validasi pada query Postgres SQL. | Untuk mengonversi data JSON secara manual, lakukan gabungan, agregasi, dan validasi pada kueri PostgreSQL, dan laporkan output dalam format JSON. *Gunakan kode di bawah *Postgres\$1SQL\$1JSON\$1AGGREGATION\$1JOIN* di bagian Informasi tambahan.*[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-json-oracle-queries-into-postgresql-database-sql.html) | Insinyur migrasi | 

### Ubah prosedur Oracle menjadi fungsi PostgreSQL yang berisi kueri JSON
<a name="convert-the-oracle-procedure-into-a-postgresql-function-that-contains-json-queries"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah kueri JSON dalam prosedur Oracle menjadi baris. | *Untuk contoh prosedur Oracle, gunakan kueri Oracle sebelumnya dan kode di bawah *Oracle\$1procedure \$1with\$1json\$1query* di bagian Informasi tambahan.* | Insinyur migrasi | 
| Ubah fungsi PostgreSQL yang memiliki kueri JSON menjadi data berbasis baris. | **Untuk contoh fungsi PostgreSQL, gunakan kueri PostgreSQL sebelumnya dan kode yang ada di bawah PostgreS\$1Function\$1With\$1JSON\$1QUERY di bagian Informasi tambahan.** | Insinyur migrasi | 

## Sumber daya terkait
<a name="convert-json-oracle-queries-into-postgresql-database-sql-resources"></a>
+ [Fungsi Oracle JSON](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/generation.html)
+ [Fungsi PostgreSQL JSON](https://www.postgresql.org/docs/13/functions-json.html)
+ [Contoh Fungsi Oracle JSON](https://oracle-base.com/articles/12c/sql-json-functions-12cr2)
+ [Contoh fungsi PostgreSQL JSON](https://dba.stackexchange.com/questions/69655/select-columns-inside-json-agg)
+ [Alat Konversi Skema AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)

## Informasi tambahan
<a name="convert-json-oracle-queries-into-postgresql-database-sql-additional"></a>

Untuk mengonversi kode JSON dari database Oracle ke database PostgreSQL, gunakan skrip berikut, secara berurutan.

**1. Oracle\$1Table\$1Creation\$1Insert\$1Script**

```
create table aws_test_table(id number,created_on date default sysdate,modified_on date,json_doc clob);

REM INSERTING into EXPORT_TABLE
SET DEFINE OFF;
Insert into aws_test_table (ID,CREATED_ON,MODIFIED_ON,json_doc)
values (1,to_date('02-AUG-2022 12:30:14','DD-MON-YYYY HH24:MI:SS'),to_date('02-AUG-2022 12:30:14','DD-MON-YYYY HH24:MI:SS'),TO_CLOB(q'[{
  "metadata" : {
    "upperLastNameFirstName" : "ABC XYZ",
    "upperEmailAddress" : "abc@gmail.com",
    "profileType" : "P"
  },
  "data" : {
    "onlineContactId" : "032323323",
    "displayName" : "Abc, Xyz",
    "firstName" : "Xyz",
    "lastName" : "Abc",
    "emailAddress" : "abc@gmail.com",
    "productRegistrationStatus" : "Not registered",
    "positionId" : "0100",
    "arrayPattern" : " -'",
    "a]')
|| TO_CLOB(q'[ccount" : {
      "companyId" : "SMGE",
      "businessUnitId" : 7,
      "accountNumber" : 42000,
      "parentAccountNumber" : 32000,
      "firstName" : "john",
      "lastName" : "doe",
      "street1" : "retOdertcaShr ",
      "city" : "new york",
      "postalcode" : "XY ABC",
      "country" : "United States"
    },
    "products" : [
      {
        "appUserGuid" : "i0acc4450000001823fbad478e2eab8a0",
        "id" : "0000000046",
]')
|| TO_CLOB(q'[        "name" : "ProView",
        "domain" : "EREADER",
        "registrationStatus" : false,
        "status" : "11"
      }
    ]
  }
}]'));
Insert into aws_test_table (ID,CREATED_ON,MODIFIED_ON,json_doc) values (2,to_date('02-AUG-2022 12:30:14','DD-MON-YYYY HH24:MI:SS'),to_date('02-AUG-2022 12:30:14','DD-MON-YYYY HH24:MI:SS'),TO_CLOB(q'[{
  "metadata" : {
    "upperLastNameFirstName" : "PQR XYZ",
    "upperEmailAddress" : "pqr@gmail.com",
    "profileType" : "P"
  },
  "data" : {
    "onlineContactId" : "54534343",
    "displayName" : "Xyz, pqr",
    "firstName" : "pqr",
    "lastName" : "Xyz",
    "emailAddress" : "pqr@gmail.com",
    "productRegistrationStatus" : "Not registered",
    "positionId" : "0090",
    "arrayPattern" : " -'",
    "account" : {
      "companyId" : "CARS",
      "busin]')
|| TO_CLOB(q'[essUnitId" : 6,
      "accountNumber" : 42001,
      "parentAccountNumber" : 32001,
      "firstName" : "terry",
      "lastName" : "whitlock",
      "street1" : "UO  123",
      "city" : "TOTORON",
      "region" : "NO",
      "postalcode" : "LKM 111",
      "country" : "Canada"
    },
    "products" : [
      {
        "appUserGuid" : "ia744d7790000016899f8cf3f417d6df6",
        "id" : "0000000014",
        "name" : "ProView eLooseleaf",
      ]')
|| TO_CLOB(q'[  "domain" : "EREADER",
        "registrationStatus" : false,
        "status" : "11"
      }
    ]
  }
}]'));

commit;
```

**2. Postgres\$1Table\$1Creation\$1Insert\$1Script**

```
create table aws_test_pg_table(id int,created_on date ,modified_on date,json_doc text);
insert into aws_test_pg_table(id,created_on,modified_on,json_doc)
values(1,now(),now(),'{
  "metadata" : {
    "upperLastNameFirstName" : "ABC XYZ",
    "upperEmailAddress" : "abc@gmail.com",
    "profileType" : "P"
  },
  "data" : {
    "onlineContactId" : "032323323",
    "displayName" : "Abc, Xyz",
    "firstName" : "Xyz",
    "lastName" : "Abc",
    "emailAddress" : "abc@gmail.com",
    "productRegistrationStatus" : "Not registered",
    "positionId" : "0100",
    "arrayPattern" : " -",
    "account" : {
      "companyId" : "SMGE",
      "businessUnitId" : 7,
      "accountNumber" : 42000,
      "parentAccountNumber" : 32000,
      "firstName" : "john",
      "lastName" : "doe",
      "street1" : "retOdertcaShr ",
      "city" : "new york",
      "postalcode" : "XY ABC",
      "country" : "United States"
    },
    "products" : [
      {
        "appUserGuid" : "i0acc4450000001823fbad478e2eab8a0",
        "id" : "0000000046",
        "name" : "ProView",
        "domain" : "EREADER",
        "registrationStatus" : false,
        "status" : "11"
      }
    ]
  }
}');


insert into aws_test_pg_table(id,created_on,modified_on,json_doc)
values(2,now(),now(),'{
  "metadata" : {
    "upperLastNameFirstName" : "PQR XYZ",
    "upperEmailAddress" : "pqr@gmail.com",
    "profileType" : "P"
  },
  "data" : {
    "onlineContactId" : "54534343",
    "displayName" : "Xyz, pqr",
    "firstName" : "pqr",
    "lastName" : "Xyz",
    "emailAddress" : "a*b**@h**.k**",
    "productRegistrationStatus" : "Not registered",
    "positionId" : "0090",
    "arrayPattern" : " -",
    "account" : {
      "companyId" : "CARS",
      "businessUnitId" : 6,
      "accountNumber" : 42001,
      "parentAccountNumber" : 32001,
      "firstName" : "terry",
      "lastName" : "whitlock",
      "street1" : "UO  123",
      "city" : "TOTORON",
      "region" : "NO",
      "postalcode" : "LKM 111",
      "country" : "Canada"
    },
    "products" : [
      {
        "appUserGuid" : "ia744d7790000016899f8cf3f417d6df6",
        "id" : "0000000014",
        "name" : "ProView eLooseleaf",
        "domain" : "EREADER",
        "registrationStatus" : false,
        "status" : "11"
      }
    ]
  }
}');
```

**3. Oracle\$1SQL\$1READ\$1JSON**

Blok kode berikut menunjukkan bagaimana mengkonversi data Oracle JSON ke dalam format baris.

*Contoh query dan sintaks*

```
SELECT   JSON_OBJECT( 
 'accountCounts' VALUE JSON_ARRAYAGG( 
            JSON_OBJECT( 
                'businessUnitId' VALUE business_unit_id, 
                        'parentAccountNumber' VALUE parent_account_number, 
                        'accountNumber' VALUE account_number, 
                        'totalOnlineContactsCount' VALUE online_contacts_count, 
                        'countByPosition' VALUE 
                    JSON_OBJECT( 
                        'taxProfessionalCount' VALUE tax_count, 
                        'attorneyCount' VALUE attorney_count,
                        'nonAttorneyCount' VALUE non_attorney_count, 
                        'clerkCount' VALUE clerk_count
                               ) ) ) ) FROM 
    (SELECT   tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number, 
            SUM(1) online_contacts_count, 
            SUM(CASE WHEN tab_data.position_id = '0095' THEN  1 ELSE 0 END) tax_count, 
            SUM(CASE    WHEN tab_data.position_id = '0100' THEN 1 ELSE 0 END) attorney_count, 
            SUM(CASE    WHEN tab_data.position_id = '0090' THEN 1 ELSE 0 END) non_attorney_count,                                       
            SUM(CASE    WHEN tab_data.position_id = '0050' THEN 1 ELSE 0 END) clerk_count 
        FROM aws_test_table scco,JSON_TABLE ( json_doc, '$' ERROR ON ERROR         COLUMNS ( 
          parent_account_number NUMBER PATH
           '$.data.account.parentAccountNumber',
            account_number NUMBER PATH '$.data.account.accountNumber',
            business_unit_id NUMBER PATH '$.data.account.businessUnitId',
            position_id VARCHAR2 ( 4 ) PATH '$.data.positionId'    )
            ) AS tab_data 
            INNER JOIN JSON_TABLE ( '{ 
        "accounts": [{ 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }, { 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }] 
      }', '$.accounts[*]' ERROR ON ERROR 
      COLUMNS (
      parent_account_number PATH '$.parentAccountNumber',
      account_number PATH '$.accountNumber',
      business_unit_id PATH '$.businessUnitId')
      ) static_data 
      ON ( static_data.parent_account_number = tab_data.parent_account_number 
           AND static_data.account_number = tab_data.account_number  
           AND static_data.business_unit_id = tab_data.business_unit_id ) 
        GROUP BY 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number );
```

Dokumen JSON menyimpan data sebagai koleksi. Setiap koleksi dapat memiliki `KEY` dan `VALUE` berpasangan. Setiap `VALUE` bisa bersarang `KEY` dan `VALUE` berpasangan. Tabel berikut memberikan informasi tentang membaca spesifik `VALUE` dari dokumen JSON.


| 
| 
| KUNCI | HIERARKI atau PATH yang akan digunakan untuk mendapatkan NILAI | NILAI | 
| --- |--- |--- |
| `profileType` | `metadata` -> `profileType` | “P” | 
| `positionId` | `data` -> `positionId` | “0100" | 
| `accountNumber` | `data`-> akun -> `accountNumber` | 42000 | 

Pada tabel sebelumnya, `KEY` `profileType` adalah a `VALUE` dari `metadata``KEY`. `KEY``positionId`Itu adalah `VALUE` dari `data``KEY`. `KEY``accountNumber`Itu adalah `VALUE` dari `account``KEY`, dan itu `account` `KEY` adalah `VALUE` dari `data``KEY`.

*Contoh dokumen JSON*

```
{
  "metadata" : {
    "upperLastNameFirstName" : "ABC XYZ",
    "upperEmailAddress" : "abc@gmail.com",
"profileType" : "P"
  },
  "data" : {
    "onlineContactId" : "032323323",
    "displayName" : "Abc, Xyz",
    "firstName" : "Xyz",
    "lastName" : "Abc",
    "emailAddress" : "abc@gmail.com",
    "productRegistrationStatus" : "Not registered",
"positionId" : "0100",
    "arrayPattern" : " -",
    "account" : {
      "companyId" : "SMGE",
      "businessUnitId" : 7,
"accountNumber" : 42000,
      "parentAccountNumber" : 32000,
      "firstName" : "john",
      "lastName" : "doe",
      "street1" : "retOdertcaShr ",
      "city" : "new york",
      "postalcode" : "XY ABC",
      "country" : "United States"
    },
    "products" : [
      {
        "appUserGuid" : "i0acc4450000001823fbad478e2eab8a0",
        "id" : "0000000046",
        "name" : "ProView",
        "domain" : "EREADER",
        "registrationStatus" : false,
        "status" : "11"
      }
    ]
  }
}
```

*Kueri SQL yang digunakan untuk mendapatkan bidang yang dipilih dari dokumen JSON*

```
select parent_account_number,account_number,business_unit_id,position_id from aws_test_table aws,JSON_TABLE ( json_doc, '$' ERROR ON ERROR
COLUMNS (
parent_account_number NUMBER PATH '$.data.account.parentAccountNumber',
account_number NUMBER PATH '$.data.account.accountNumber',
business_unit_id NUMBER PATH '$.data.account.businessUnitId',
position_id VARCHAR2 ( 4 ) PATH '$.data.positionId'
)) as sc
```

Dalam query sebelumnya, `JSON_TABLE` adalah fungsi built-in di Oracle yang mengubah data JSON ke dalam format baris. Fungsi JSON\$1TABLE mengharapkan parameter dalam format JSON.

Setiap item di `COLUMNS` memiliki standar`PATH`, dan ada yang sesuai `VALUE` untuk yang `KEY` diberikan dikembalikan dalam format baris.

*Hasil dari query sebelumnya*


| 
| 
| PARENT\$1ACCOUNT\$1NUMBER | ACCOUNT\$1NUMBER | BUSINESS\$1UNIT\$1ID | POSISI\$1ID | 
| --- |--- |--- |--- |
| 32000 | 42000 | 7 | 0100 | 
| 32001 | 42001 | 6 | 0090 | 

**4. PostgreS\$1SQL\$1READ\$1JSON**

*****Contoh query dan sintaks*

```
select *
from ( 
select (json_doc::json->'data'->'account'->>'parentAccountNumber')::INTEGER as parentAccountNumber, 
(json_doc::json->'data'->'account'->>'accountNumber')::INTEGER as accountNumber, 
(json_doc::json->'data'->'account'->>'businessUnitId')::INTEGER as businessUnitId, 
(json_doc::json->'data'->>'positionId')::VARCHAR as positionId 
from aws_test_pg_table) d ;
```

Di Oracle, `PATH` digunakan untuk mengidentifikasi spesifik `KEY` dan`VALUE`. Namun, PostgreSQL menggunakan model untuk membaca dan dari `HIERARCHY` JSON. `KEY` `VALUE` Data JSON yang sama yang disebutkan di bawah `Oracle_SQL_Read_JSON` digunakan dalam contoh berikut.

*Kueri SQL dengan tipe CAST tidak diizinkan*

(Jika Anda memaksa mengetik`CAST`, kueri gagal dengan kesalahan sintaks.)

```
select *
from ( 
select (json_doc::json->'data'->'account'->'parentAccountNumber') as parentAccountNumber, 
(json_doc::json->'data'->'account'->'accountNumber')as accountNumber, 
(json_doc::json->'data'->'account'->'businessUnitId') as businessUnitId, 
(json_doc::json->'data'->'positionId')as positionId 
from aws_test_pg_table) d ;
```

Menggunakan satu operator yang lebih besar dari (`>`) akan mengembalikan yang `VALUE` ditentukan untuk itu. `KEY` Misalnya,`KEY`:`positionId`, dan`VALUE`:`"0100"`.

Jenis tidak `CAST` diperbolehkan saat Anda menggunakan operator tunggal yang lebih besar dari ()`>`.

*Kueri SQL dengan tipe CAST diperbolehkan*

```
select *
from ( 
select (json_doc::json->'data'->'account'->>'parentAccountNumber')::INTEGER as parentAccountNumber, 
(json_doc::json->'data'->'account'->>'accountNumber')::INTEGER as accountNumber, 
(json_doc::json->'data'->'account'->>'businessUnitId')::INTEGER as businessUnitId, 
(json_doc::json->'data'->>'positionId')::varchar as positionId 
from aws_test_pg_table) d ;
```

Untuk menggunakan tipe`CAST`, Anda harus menggunakan operator ganda yang lebih besar dari pada. Jika Anda menggunakan operator tunggal yang lebih besar dari pada, kueri mengembalikan yang `VALUE` ditentukan (misalnya,`KEY`:`positionId`, dan`VALUE`:`"0100"`). Menggunakan double greater-than operator (`>>`) akan mengembalikan nilai aktual yang ditentukan untuk itu `KEY` (misalnya,`KEY`:, dan`VALUE`: `positionId``0100`, tanpa tanda kutip ganda).

Dalam kasus sebelumnya, `parentAccountNumber` adalah type `CAST` to`INT`, `accountNumber` is type `CAST` to`INT`, `businessUnitId` is type `CAST` to`INT`, dan `positionId` type `CAST` to. `VARCHAR`

Tabel berikut menunjukkan hasil kueri yang menjelaskan peran operator tunggal yang lebih besar dari (`>`) dan operator ganda yang lebih besar dari (). `>>`

Pada tabel tabel pertama, kueri menggunakan single greater-than operator ()`>`. Setiap kolom dalam tipe JSON dan tidak dapat diubah menjadi tipe data lain.


| 
| 
| parentAccountNumber | accountNumber | businessUnitId | PositionId | 
| --- |--- |--- |--- |
| 2003565430 | 2003564830 | 7 | “0100" | 
| 2005284042 | 2005284042 | 6 | “0090" | 
| 2000272719 | 2000272719 | 1 | “0100" | 

Pada tabel kedua, query menggunakan double greater-than operator ()`>>`. Setiap kolom mendukung jenis `CAST` berdasarkan nilai kolom. Misalnya, `INTEGER` dalam konteks ini.


| 
| 
| parentAccountNumber | accountNumber | businessUnitId | PositionId | 
| --- |--- |--- |--- |
| 2003565430 | 2003564830 | 7 | 0100 | 
| 2005284042 | 2005284042 | 6 | 0090 | 
| 2000272719 | 2000272719 | 1 | 0100 | 

**5. ORACLE\$1SQL\$1JSON\$1AGGREGATION\$1BERGABUNG**

*Contoh kueri*

```
SELECT 
    JSON_OBJECT( 
        'accountCounts' VALUE JSON_ARRAYAGG( 
            JSON_OBJECT( 
                'businessUnitId' VALUE business_unit_id, 
                        'parentAccountNumber' VALUE parent_account_number, 
                        'accountNumber' VALUE account_number, 
                        'totalOnlineContactsCount' VALUE online_contacts_count, 
                        'countByPosition' VALUE 
                    JSON_OBJECT( 
                        'taxProfessionalCount' VALUE tax_count, 
                        'attorneyCount' VALUE attorney_count, 
                        'nonAttorneyCount' VALUE non_attorney_count, 
                        'clerkCount' VALUE clerk_count
                               ) ) ) ) 
FROM 
    (SELECT 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number, 
            SUM(1) online_contacts_count, 
            SUM(CASE WHEN tab_data.position_id = '0095' THEN  1 ELSE 0 END) tax_count, 
            SUM(CASE    WHEN tab_data.position_id = '0100' THEN 1 ELSE 0 END) attorney_count,                                                       
            SUM(CASE    WHEN tab_data.position_id = '0090' THEN 1 ELSE 0 END) non_attorney_count,                                                   
            SUM(CASE    WHEN tab_data.position_id = '0050' THEN 1 ELSE 0 END) clerk_count                                                           
        FROM aws_test_table scco,JSON_TABLE ( json_doc, '$' ERROR ON ERROR         COLUMNS ( 
          parent_account_number NUMBER PATH
           '$.data.account.parentAccountNumber',
            account_number NUMBER PATH '$.data.account.accountNumber',
            business_unit_id NUMBER PATH '$.data.account.businessUnitId',
            position_id VARCHAR2 ( 4 ) PATH '$.data.positionId'    )
            ) AS tab_data 
            INNER JOIN JSON_TABLE ( '{ 
        "accounts": [{ 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }, { 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }] 
      }', '$.accounts[*]' ERROR ON ERROR    
      COLUMNS (
      parent_account_number PATH '$.parentAccountNumber',
      account_number PATH '$.accountNumber',
      business_unit_id PATH '$.businessUnitId')
      ) static_data 
      ON ( static_data.parent_account_number = tab_data.parent_account_number 
           AND static_data.account_number = tab_data.account_number                
           AND static_data.business_unit_id = tab_data.business_unit_id ) 
        GROUP BY 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number 
    );
```

Untuk mengonversi data tingkat baris ke dalam format JSON, Oracle memiliki fungsi bawaan seperti`JSON_OBJECT`,,, `JSON_ARRAY` dan. `JSON_OBJECTAGG` `JSON_ARRAYAGG`
+ `JSON_OBJECT`menerima dua parameter: `KEY` dan`VALUE`. `KEY`Parameter harus di-hardcode atau statis. `VALUE`Parameter ini berasal dari output tabel.
+ `JSON_ARRAYAGG`menerima `JSON_OBJECT` sebagai parameter. Ini membantu dalam mengelompokkan kumpulan `JSON_OBJECT` elemen sebagai daftar. Misalnya, jika Anda memiliki `JSON_OBJECT` elemen yang memiliki beberapa catatan (beberapa `KEY` dan `VALUE` pasangan dalam kumpulan data), `JSON_ARRAYAGG` tambahkan kumpulan data dan buat daftar. Menurut bahasa Struktur Data, `LIST` adalah sekelompok elemen. Dalam konteks ini, `LIST` adalah sekelompok `JSON_OBJECT` elemen.

Contoh berikut menunjukkan satu `JSON_OBJECT` elemen.

```
{
   "taxProfessionalCount": 0,
   "attorneyCount": 0,
   "nonAttorneyCount": 1,
   "clerkCount": 0
}
```

Contoh berikutnya menunjukkan dua `JSON_OBJECT` elemen, dengan `LIST` ditunjukkan oleh kawat gigi persegi (`[ ]`).

```
[ 
    {
        "taxProfessionalCount": 0,
        "attorneyCount": 0,
        "nonAttorneyCount": 1,
        "clerkCount": 0
      }
,
    {
        "taxProfessionalCount": 2,
        "attorneyCount": 1,
        "nonAttorneyCount": 3,
        "clerkCount":4
      }
]
```

*Contoh query SQL*

```
SELECT 
    JSON_OBJECT( 
        'accountCounts' VALUE JSON_ARRAYAGG( 
            JSON_OBJECT( 
                'businessUnitId' VALUE business_unit_id, 
                        'parentAccountNumber' VALUE parent_account_number, 
                        'accountNumber' VALUE account_number, 
                        'totalOnlineContactsCount' VALUE online_contacts_count, 
                        'countByPosition' VALUE 
                    JSON_OBJECT( 
                        'taxProfessionalCount' VALUE tax_count, 
                        'attorneyCount' VALUE attorney_count, 
                        'nonAttorneyCount' VALUE non_attorney_count, 
                        'clerkCount' VALUE clerk_count
                               ) 
                        ) 
                                           ) 
              ) 
FROM 
    (SELECT 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number, 
            SUM(1) online_contacts_count, 
            SUM(CASE WHEN tab_data.position_id = '0095' THEN  1 ELSE   0 END 
            )      tax_count, 
            SUM(CASE    WHEN tab_data.position_id = '0100' THEN        1    ELSE        0 END 
            )      attorney_count,                                                       
            SUM(CASE    WHEN tab_data.position_id = '0090' THEN        1    ELSE        0 END 
            )      non_attorney_count,                                                   
            SUM(CASE    WHEN tab_data.position_id = '0050' THEN        1    ELSE        0 END 
            )      clerk_count                                                           
        FROM 
            aws_test_table scco,  JSON_TABLE ( json_doc, '$' ERROR ON ERROR    
            COLUMNS ( 
            parent_account_number NUMBER PATH '$.data.account.parentAccountNumber',
            account_number NUMBER PATH '$.data.account.accountNumber',
            business_unit_id NUMBER PATH '$.data.account.businessUnitId',
            position_id VARCHAR2 ( 4 ) PATH '$.data.positionId'    )
            ) AS tab_data 
            INNER JOIN JSON_TABLE ( '{ 
        "accounts": [{ 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }, { 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }] 
      }', '$.accounts[*]' ERROR ON ERROR    
      COLUMNS (
      parent_account_number PATH '$.parentAccountNumber',
      account_number PATH '$.accountNumber',
      business_unit_id PATH '$.businessUnitId')
      ) static_data ON ( static_data.parent_account_number = tab_data.parent_account_number 
                         AND static_data.account_number = tab_data.account_number                
                         AND static_data.business_unit_id = tab_data.business_unit_id ) 
        GROUP BY 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number 
    );
```

*Contoh output dari query SQL sebelumnya*

```
{
  "accountCounts": [
    {
      "businessUnitId": 6,
      "parentAccountNumber": 32001,
      "accountNumber": 42001,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 0,
        "nonAttorneyCount": 1,
        "clerkCount": 0
      }
    },
    {
      "businessUnitId": 7,
      "parentAccountNumber": 32000,
      "accountNumber": 42000,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 1,
        "nonAttorneyCount": 0,
        "clerkCount": 0
      }
    }
  ]
}
```

**6.  PostgreS\$1SQL\$1JSON\$1AGGREGATION\$1BERGABUNG**

PostgreSQL built-in `JSON_BUILD_OBJECT` berfungsi `JSON_AGG` dan mengkonversi data tingkat baris ke dalam format JSON.  `JSON_BUILD_OBJECT`PostgreSQL `JSON_AGG` dan setara dengan Oracle dan. `JSON_OBJECT` `JSON_ARRAYAGG`

*Contoh kueri*

```
select    
JSON_BUILD_OBJECT ('accountCounts', 
    JSON_AGG( 
        JSON_BUILD_OBJECT ('businessUnitId',businessUnitId 
        ,'parentAccountNumber',parentAccountNumber 
        ,'accountNumber',accountNumber 
        ,'totalOnlineContactsCount',online_contacts_count, 
        'countByPosition',
            JSON_BUILD_OBJECT (
            'taxProfessionalCount',tax_professional_count 
            ,'attorneyCount',attorney_count 
            ,'nonAttorneyCount',non_attorney_count 
            ,'clerkCount',clerk_count 
            ) 
        )  
    ) 
) 
from ( 
with tab as (select * from ( 
select (json_doc::json->'data'->'account'->>'parentAccountNumber')::INTEGER as parentAccountNumber, 
(json_doc::json->'data'->'account'->>'accountNumber')::INTEGER as accountNumber, 
(json_doc::json->'data'->'account'->>'businessUnitId')::INTEGER as businessUnitId, 
(json_doc::json->'data'->>'positionId')::varchar as positionId 
from aws_test_pg_table) a ) , 
tab1 as ( select   
(json_array_elements(b.jc -> 'accounts') ->> 'accountNumber')::integer accountNumber, 
(json_array_elements(b.jc -> 'accounts') ->> 'businessUnitId')::integer businessUnitId, 
(json_array_elements(b.jc -> 'accounts') ->> 'parentAccountNumber')::integer parentAccountNumber 
from ( 
select '{ 
        "accounts": [{ 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }, { 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }] 
      }'::json as jc) b) 
select  
tab.businessUnitId::text, 
tab.parentAccountNumber::text, 
tab.accountNumber::text, 
SUM(1) online_contacts_count, 
SUM(CASE WHEN tab.positionId::text = '0095' THEN 1 ELSE 0  END)      tax_professional_count,  
SUM(CASE WHEN tab.positionId::text = '0100' THEN 1 ELSE 0  END)      attorney_count, 
SUM(CASE  WHEN tab.positionId::text = '0090' THEN      1  ELSE      0 END)      non_attorney_count, 
SUM(CASE  WHEN tab.positionId::text = '0050' THEN      1  ELSE      0 END)      clerk_count
from tab1,tab  
where tab.parentAccountNumber::INTEGER=tab1.parentAccountNumber::INTEGER  
and tab.accountNumber::INTEGER=tab1.accountNumber::INTEGER 
and tab.businessUnitId::INTEGER=tab1.businessUnitId::INTEGER 
GROUP BY      tab.businessUnitId::text, 
            tab.parentAccountNumber::text, 
            tab.accountNumber::text) a;
```

*Contoh output dari query sebelumnya*

Output dari Oracle dan PostgreSQL persis sama.

```
{
  "accountCounts": [
    {
      "businessUnitId": 6,
      "parentAccountNumber": 32001,
      "accountNumber": 42001,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 0,
        "nonAttorneyCount": 1,
        "clerkCount": 0
      }
    },
    {
      "businessUnitId": 7,
      "parentAccountNumber": 32000,
      "accountNumber": 42000,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 1,
        "nonAttorneyCount": 0,
        "clerkCount": 0
      }
    }
  ]
}
```

**7.ORACLE\$1PROCEDURE\$1with\$1JSON\$1QUERY**

Kode ini mengubah prosedur Oracle menjadi fungsi PostgreSQL yang memiliki query JSON SQL. Ini menunjukkan bagaimana query mentransposisi JSON menjadi baris dan sebaliknya.

```
CREATE OR REPLACE PROCEDURE p_json_test(p_in_accounts_json IN varchar2,   p_out_accunts_json  OUT varchar2)
IS
BEGIN
/*
p_in_accounts_json paramter should have following format:
       { 
        "accounts": [{ 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }, { 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }] 
      }
*/
SELECT 
    JSON_OBJECT( 
        'accountCounts' VALUE JSON_ARRAYAGG( 
            JSON_OBJECT( 
                'businessUnitId' VALUE business_unit_id, 
                        'parentAccountNumber' VALUE parent_account_number, 
                        'accountNumber' VALUE account_number, 
                        'totalOnlineContactsCount' VALUE online_contacts_count, 
                        'countByPosition' VALUE 
                    JSON_OBJECT( 
                        'taxProfessionalCount' VALUE tax_count, 
                        'attorneyCount' VALUE attorney_count, 
                        'nonAttorneyCount' VALUE non_attorney_count, 
                        'clerkCount' VALUE clerk_count
                               ) ) ) ) 
into p_out_accunts_json
FROM 
    (SELECT 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number, 
            SUM(1) online_contacts_count, 
            SUM(CASE WHEN tab_data.position_id = '0095' THEN  1 ELSE 0 END) tax_count, 
            SUM(CASE    WHEN tab_data.position_id = '0100' THEN 1 ELSE 0 END) attorney_count,                                                       
            SUM(CASE    WHEN tab_data.position_id = '0090' THEN 1 ELSE 0 END) non_attorney_count,                                                   
            SUM(CASE    WHEN tab_data.position_id = '0050' THEN 1 ELSE 0 END) clerk_count                                                           
        FROM aws_test_table scco,JSON_TABLE ( json_doc, '$' ERROR ON ERROR    
            COLUMNS ( 
            parent_account_number NUMBER PATH '$.data.account.parentAccountNumber',
            account_number NUMBER PATH '$.data.account.accountNumber',
            business_unit_id NUMBER PATH '$.data.account.businessUnitId',
            position_id VARCHAR2 ( 4 ) PATH '$.data.positionId'    )
            ) AS tab_data 
            INNER JOIN JSON_TABLE ( p_in_accounts_json, '$.accounts[*]' ERROR ON ERROR    
      COLUMNS (
      parent_account_number PATH '$.parentAccountNumber',
      account_number PATH '$.accountNumber',
      business_unit_id PATH '$.businessUnitId')
      ) static_data 
      ON ( static_data.parent_account_number = tab_data.parent_account_number 
           AND static_data.account_number = tab_data.account_number                
           AND static_data.business_unit_id = tab_data.business_unit_id ) 
        GROUP BY 
            tab_data.business_unit_id, 
            tab_data.parent_account_number, 
            tab_data.account_number 
    ); 
EXCEPTION 
WHEN OTHERS THEN
   raise_application_error(-20001,'Error while running the JSON query');
END;
/
```

*Menjalankan prosedur*

Blok kode berikut menjelaskan bagaimana Anda dapat menjalankan prosedur Oracle yang dibuat sebelumnya dengan contoh input JSON ke prosedur. Ini juga memberi Anda hasil atau output dari prosedur ini.

```
set serveroutput on;
declare
v_out varchar2(30000);
v_in varchar2(30000):= '{ 
        "accounts": [{ 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }, { 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }] 
      }';
begin
  p_json_test(v_in,v_out);
  dbms_output.put_line(v_out);
end;
/
```

*Keluaran prosedur*

```
{
  "accountCounts": [
    {
      "businessUnitId": 6,
      "parentAccountNumber": 32001,
      "accountNumber": 42001,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 0,
        "nonAttorneyCount": 1,
        "clerkCount": 0
      }
    },
    {
      "businessUnitId": 7,
      "parentAccountNumber": 32000,
      "accountNumber": 42000,
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 1,
        "nonAttorneyCount": 0,
        "clerkCount": 0
      }
    }
  ]
}
```

**8.PostgreS\$1Function\$1with\$1JSON\$1QUERY**

*Contoh fungsi*

```
CREATE OR REPLACE  FUNCTION f_pg_json_test(p_in_accounts_json  text)
RETURNS text  
LANGUAGE plpgsql  
AS  
$$  
DECLARE  
 v_out_accunts_json   text;  
BEGIN  
SELECT    
JSON_BUILD_OBJECT ('accountCounts',
    JSON_AGG(
        JSON_BUILD_OBJECT ('businessUnitId',businessUnitId
        ,'parentAccountNumber',parentAccountNumber
        ,'accountNumber',accountNumber
        ,'totalOnlineContactsCount',online_contacts_count,
        'countByPosition',
            JSON_BUILD_OBJECT (
            'taxProfessionalCount',tax_professional_count
            ,'attorneyCount',attorney_count
            ,'nonAttorneyCount',non_attorney_count
            ,'clerkCount',clerk_count
            ))))
INTO v_out_accunts_json
FROM (
WITH tab AS (SELECT * FROM (
SELECT (json_doc::json->'data'->'account'->>'parentAccountNumber')::INTEGER AS parentAccountNumber,
(json_doc::json->'data'->'account'->>'accountNumber')::INTEGER AS accountNumber,
(json_doc::json->'data'->'account'->>'businessUnitId')::INTEGER AS businessUnitId,
(json_doc::json->'data'->>'positionId')::varchar AS positionId
FROM aws_test_pg_table) a ) ,
tab1 AS ( SELECT  
(json_array_elements(b.jc -> 'accounts') ->> 'accountNumber')::integer accountNumber,
(json_array_elements(b.jc -> 'accounts') ->> 'businessUnitId')::integer businessUnitId,
(json_array_elements(b.jc -> 'accounts') ->> 'parentAccountNumber')::integer parentAccountNumber
FROM (
SELECT p_in_accounts_json::json AS jc) b)
SELECT  
tab.businessUnitId::text,
tab.parentAccountNumber::text,
tab.accountNumber::text,
SUM(1) online_contacts_count,
SUM(CASE WHEN tab.positionId::text = '0095' THEN 1 ELSE 0  END)      tax_professional_count,  
SUM(CASE WHEN tab.positionId::text = '0100' THEN 1 ELSE 0  END)      attorney_count,
SUM(CASE  WHEN tab.positionId::text = '0090' THEN      1  ELSE      0 END)      non_attorney_count,
SUM(CASE  WHEN tab.positionId::text = '0050' THEN      1  ELSE      0 END)      clerk_count
FROM tab1,tab  
WHERE tab.parentAccountNumber::INTEGER=tab1.parentAccountNumber::INTEGER  
AND tab.accountNumber::INTEGER=tab1.accountNumber::INTEGER
AND tab.businessUnitId::INTEGER=tab1.businessUnitId::INTEGER
GROUP BY      tab.businessUnitId::text,
            tab.parentAccountNumber::text,
            tab.accountNumber::text) a;
RETURN v_out_accunts_json;          
END;  
$$;
```

*Menjalankan fungsi*

```
select    f_pg_json_test('{ 
        "accounts": [{ 
          "accountNumber": 42001, 
          "parentAccountNumber": 32001, 
          "businessUnitId": 6 
        }, { 
          "accountNumber": 42000, 
          "parentAccountNumber": 32000, 
          "businessUnitId": 7 
        }] 
      }')   ;
```

*Output fungsi*

Output berikut ini mirip dengan output prosedur Oracle. Perbedaannya adalah bahwa output ini dalam format Teks.

```
{
  "accountCounts": [
    {
      "businessUnitId": "6",
      "parentAccountNumber": "32001",
      "accountNumber": "42001",
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 0,
        "nonAttorneyCount": 1,
        "clerkCount": 0
      }
    },
    {
      "businessUnitId": "7",
      "parentAccountNumber": "32000",
      "accountNumber": "42000",
      "totalOnlineContactsCount": 1,
      "countByPosition": {
        "taxProfessionalCount": 0,
        "attorneyCount": 1,
        "nonAttorneyCount": 0,
        "clerkCount": 0
      }
    }
  ]
}
```

# Salin tabel Amazon DynamoDB di seluruh akun menggunakan AWS Backup
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup"></a>

*Ramkumar Ramanujam, Amazon Web Services*

## Ringkasan
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-summary"></a>

Saat bekerja dengan Amazon DynamoDB aktif AWS, kasus penggunaan umum adalah menyalin atau menyinkronkan tabel DynamoDB dalam lingkungan pengembangan, pengujian, atau pementasan dengan data tabel yang ada di lingkungan produksi. Sebagai praktik standar, setiap lingkungan menggunakan yang berbeda Akun AWS. 

AWS Backup mendukung pencadangan dan pemulihan data lintas wilayah dan lintas akun untuk DynamoDB, Amazon Simple Storage Service (Amazon S3), dan lainnya. Layanan AWS Pola ini menyediakan langkah-langkah untuk menggunakan AWS Backup cross-account backup dan restore untuk menyalin tabel DynamoDB antara. Akun AWS

## Prasyarat dan batasan
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-prereqs"></a>

**Prasyarat**
+ Dua aktif Akun AWS yang berasal dari organisasi yang sama di AWS Organizations
+ Izin untuk membuat tabel DynamoDB di kedua akun
+ AWS Identity and Access Management (IAM) izin untuk membuat dan menggunakan brankas AWS Backup 

**Batasan**
+ Sumber dan target Akun AWS harus menjadi bagian dari organisasi yang sama di AWS Organizations.

## Arsitektur
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-architecture"></a>

**Tumpukan teknologi target**
+ AWS Backup 
+ Amazon DynamoDB

**Arsitektur target**

![\[Deskripsi menyalin tabel antara brankas cadangan mengikuti diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/ef6e7393-edb6-4744-be26-43f1cbff9de9/images/fa9f3f2f-7a01-4093-9bd5-fc355e57ba67.png)


1. Buat cadangan tabel DynamoDB di brankas cadangan AWS Backup di akun sumber.

1. Salin cadangan ke brankas cadangan di akun target.

1. Kembalikan tabel DynamoDB di akun target dengan menggunakan cadangan dari brankas cadangan di akun target.

**Otomatisasi dan skala**

Anda dapat menggunakan AWS Backup untuk menjadwalkan backup untuk berjalan pada interval tertentu.

## Alat
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-tools"></a>
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)adalah layanan yang dikelola sepenuhnya untuk memusatkan dan mengotomatiskan perlindungan data di seluruh Layanan AWS, di cloud, dan di tempat. Dengan menggunakan layanan ini, Anda dapat mengonfigurasi kebijakan pencadangan dan memantau aktivitas AWS sumber daya Anda di satu tempat. Ini memungkinkan Anda untuk mengotomatiskan dan mengkonsolidasikan tugas pencadangan yang sebelumnya dilakukan layanan demi layanan, dan menghilangkan kebutuhan untuk membuat skrip khusus dan proses manual.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang memberikan kinerja yang cepat dan dapat diprediksi dengan skalabilitas yang mulus.

## Epik
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-epics"></a>

### Aktifkan AWS Backup fitur di akun sumber dan target
<a name="turn-on-bkp-features-in-the-source-and-target-accounts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan fitur lanjutan untuk DynamoDB dan cadangan lintas akun. | Baik di sumber maupun target Akun AWS, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.html) | AWS DevOps, Insinyur migrasi | 

### Buat brankas cadangan di akun sumber dan target
<a name="create-backup-vaults-in-the-source-and-target-accounts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat brankas cadangan. | Baik di sumber maupun target Akun AWS, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.html)Vault cadangan sumber dan target akan diperlukan saat Anda menyalin cadangan tabel DynamoDB antara akun sumber dan target. ARNs  | AWS DevOps, Insinyur migrasi | 

### Lakukan pencadangan dan pemulihan menggunakan brankas cadangan
<a name="perform-backup-and-restore-using-backup-vaults"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Di akun sumber, buat cadangan tabel DynamoDB. | Untuk membuat cadangan untuk tabel DynamoDB di akun sumber, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.html)Pekerjaan cadangan baru dibuat. Untuk memantau status pekerjaan cadangan, pada halaman AWS Backup **Pekerjaan**, pilih tab **Backup Jobs**. Semua pekerjaan pencadangan yang aktif, sedang berlangsung, dan selesai tercantum di tab ini. | AWS DevOps, DBA, Insinyur migrasi | 
| Salin cadangan dari akun sumber ke akun target. | Setelah pekerjaan pencadangan selesai, salin cadangan tabel DynamoDB dari brankas cadangan di akun sumber ke brankas cadangan di akun target.Untuk menyalin brankas cadangan, di akun sumber, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.html) | AWS DevOps, Insinyur migrasi, DBA | 
| Kembalikan cadangan di akun target. | Dalam target Akun AWS, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.html) | AWS DevOps, DBA, Insinyur migrasi | 

## Sumber daya terkait
<a name="copy-amazon-dynamodb-tables-across-accounts-using-aws-backup-resources"></a>
+ [Menggunakan AWS Backup dengan DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/backuprestore_HowItWorksAWS.html)
+ [Membuat salinan cadangan di seluruh Akun AWS](https://docs.aws.amazon.com/aws-backup/latest/devguide/create-cross-account-backup.html)
+ [AWS Backup harga](https://aws.amazon.com/backup/pricing/)

# Salin tabel Amazon DynamoDB di seluruh akun menggunakan implementasi kustom
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation"></a>

*Ramkumar Ramanujam, Amazon Web Services*

## Ringkasan
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-summary"></a>

Saat bekerja dengan Amazon DynamoDB di Amazon Web Services (AWS), kasus penggunaan umum adalah menyalin atau menyinkronkan tabel DynamoDB dalam lingkungan pengembangan, pengujian, atau pementasan dengan data tabel yang ada di lingkungan produksi. Sebagai praktik standar, setiap lingkungan menggunakan akun AWS yang berbeda.

DynamoDB sekarang mendukung pencadangan lintas akun menggunakan AWS Backup. Untuk informasi tentang biaya penyimpanan terkait saat menggunakan AWS Backup, lihat [harga AWS Backup](https://aws.amazon.com/backup/pricing/). Saat Anda menggunakan AWS Backup untuk menyalin seluruh akun, akun sumber dan target harus menjadi bagian dari organisasi AWS Organizations. Ada solusi lain untuk pencadangan dan pemulihan lintas akun menggunakan layanan AWS seperti AWS Glue. Namun, menggunakan solusi tersebut meningkatkan jejak aplikasi, karena ada lebih banyak layanan AWS untuk diterapkan dan dipelihara. 

Anda juga dapat menggunakan Amazon DynamoDB Streams untuk menangkap perubahan tabel di akun sumber. Kemudian Anda dapat memulai fungsi AWS Lambda, dan membuat perubahan yang sesuai pada tabel target di akun target. Tetapi solusi itu berlaku untuk kasus penggunaan di mana tabel sumber dan target harus selalu disinkronkan. Ini mungkin tidak berlaku untuk pengembangan, pengujian, dan lingkungan pementasan di mana data sering diperbarui.

Pola ini menyediakan langkah-langkah untuk menerapkan solusi khusus untuk menyalin tabel Amazon DynamoDB dari satu akun ke akun lainnya. Pola ini dapat diimplementasikan menggunakan bahasa pemrograman umum seperti C \$1, Java, dan Python. Sebaiknya gunakan bahasa yang didukung oleh [AWS SDK](https://aws.amazon.com/tools/).

## Prasyarat dan batasan
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-prereqs"></a>

**Prasyarat**
+ Dua akun AWS aktif
+ Tabel DynamoDB di kedua akun
+ Pengetahuan tentang peran dan kebijakan AWS Identity and Access Management (IAM)
+ Pengetahuan tentang cara mengakses tabel Amazon DynamoDB menggunakan bahasa pemrograman umum, seperti C \$1, Java, atau Python

**Batasan**

Pola ini berlaku untuk tabel DynamoDB yang berukuran sekitar 2 GB atau lebih kecil. Dengan logika tambahan untuk menangani koneksi atau interupsi sesi, pelambatan, dan kegagalan dan percobaan ulang, ini dapat digunakan untuk tabel yang lebih besar.

Operasi pemindaian DynamoDB, yang membaca item dari tabel sumber, hanya dapat mengambil hingga 1 MB data dalam satu panggilan. Untuk tabel yang lebih besar, lebih besar dari 2 GB, batasan ini dapat meningkatkan total waktu untuk melakukan salinan tabel lengkap.

## Arsitektur
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-architecture"></a>

Diagram berikut menunjukkan implementasi kustom antara sumber dan target akun AWS. Kebijakan IAM dan token keamanan digunakan dengan implementasi khusus. Data dibaca dari Amazon DynamoDB di akun sumber dan ditulis ke DynamoDB di akun target.

![\[Arsitektur akun sumber dan target untuk menyalin dengan menggunakan implementasi kustom.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/ba8175be-9809-4c2e-b2d1-6b9180ed056c/images/d9d4c2c8-ff04-443f-9137-e37b8e23ccb5.png)


 

**Otomatisasi dan skala**

Pola ini berlaku untuk tabel DynamoDB yang ukurannya lebih kecil, sekitar 2 GB. 

Untuk menerapkan pola ini untuk tabel yang lebih besar, atasi masalah berikut:
+ Selama operasi penyalinan tabel, dua sesi aktif dipertahankan, menggunakan token keamanan yang berbeda. Jika operasi penyalinan tabel memakan waktu lebih lama dari waktu kedaluwarsa token, Anda harus menerapkan logika untuk menyegarkan token keamanan. 
+ Jika unit kapasitas baca (RCUs) dan unit kapasitas tulis (WCUs) tidak disediakan, pembacaan atau penulisan pada tabel sumber atau target mungkin terhambat. Pastikan untuk menangkap dan menangani pengecualian ini. 
+ Tangani kegagalan atau pengecualian lain dan letakkan mekanisme coba lagi untuk mencoba lagi atau melanjutkan dari tempat operasi penyalinan gagal.

## Alat
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-tools"></a>

**Alat**
+ [Amazon DynamoDB - Amazon](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang memberikan kinerja yang cepat dan dapat diprediksi dengan skalabilitas yang mulus. 
+ Alat tambahan yang diperlukan akan berbeda berdasarkan bahasa pemrograman yang Anda pilih untuk implementasi. Misalnya, jika Anda menggunakan C \$1, Anda memerlukan Microsoft Visual Studio dan NuGet paket-paket berikut:
  + `AWSSDK`
  + `AWSSDK.DynamoDBv2`

**Kode**

Cuplikan kode Python berikut menghapus dan membuat ulang tabel DynamoDB menggunakan perpustakaan Boto3.

Jangan gunakan `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` pengguna IAM karena ini adalah kredensil jangka panjang, yang harus dihindari untuk akses terprogram ke layanan AWS. Untuk informasi selengkapnya tentang kredensil sementara, lihat bagian *Praktik terbaik*.

Cuplikan kode berikut `AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`,, dan `TEMPORARY_SESSION_TOKEN` digunakan dalam cuplikan kode berikut adalah kredensil sementara yang diambil dari AWS Security Token Service (AWS STS).

```
import boto3
import sys
import json

#args = input-parameters = GLOBAL_SEC_INDEXES_JSON_COLLECTION, ATTRIBUTES_JSON_COLLECTION, TARGET_DYNAMODB_NAME, TARGET_REGION, ...

#Input param: GLOBAL_SEC_INDEXES_JSON_COLLECTION
#[{"IndexName":"Test-index","KeySchema":[{"AttributeName":"AppId","KeyType":"HASH"},{"AttributeName":"AppType","KeyType":"RANGE"}],"Projection":{"ProjectionType":"INCLUDE","NonKeyAttributes":["PK","SK","OwnerName","AppVersion"]}}]

#Input param: ATTRIBUTES_JSON_COLLECTION
#[{"AttributeName":"PK","AttributeType":"S"},{"AttributeName":"SK","AttributeType":"S"},{"AttributeName":"AppId","AttributeType":"S"},{"AttributeName":"AppType","AttributeType":"N"}]

region = args['TARGET_REGION']
target_ddb_name = args['TARGET_DYNAMODB_NAME']

global_secondary_indexes = json.loads(args['GLOBAL_SEC_INDEXES_JSON_COLLECTION'])
attribute_definitions = json.loads(args['ATTRIBUTES_JSON_COLLECTION'])

# Drop and create target DynamoDB table
dynamodb_client = boto3.Session(
        aws_access_key_id=args['AWS_ACCESS_KEY_ID'],
        aws_secret_access_key=args['AWS_SECRET_ACCESS_KEY'],
        aws_session_token=args['TEMPORARY_SESSION_TOKEN'],
    ).client('dynamodb')
    
# Delete table
print('Deleting table: ' + target_ddb_name + ' ...')

try:
    dynamodb_client.delete_table(TableName=target_ddb_name)

    #Wait for table deletion to complete
    waiter = dynamodb_client.get_waiter('table_not_exists')
    waiter.wait(TableName=target_ddb_name)
    print('Table deleted.')
except dynamodb_client.exceptions.ResourceNotFoundException:
    print('Table already deleted / does not exist.')
    pass

print('Creating table: ' + target_ddb_name + ' ...')

table = dynamodb_client.create_table(
    TableName=target_ddb_name,
    KeySchema=[
        {
            'AttributeName': 'PK',
            'KeyType': 'HASH'  # Partition key
        },
        {
            'AttributeName': 'SK',
            'KeyType': 'RANGE'  # Sort key
        }
    ],
    AttributeDefinitions=attribute_definitions,
    GlobalSecondaryIndexes=global_secondary_indexes,
    BillingMode='PAY_PER_REQUEST'
)
    
waiter = dynamodb_client.get_waiter('table_exists')
waiter.wait(TableName=target_ddb_name)
    
print('Table created.')
```

## Praktik terbaik
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-best-practices"></a>

**Kredensial sementara**

Sebagai praktik keamanan terbaik, saat mengakses layanan AWS secara terprogram, hindari menggunakan `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` pengguna IAM karena ini adalah kredensil jangka panjang. Selalu coba gunakan kredensil sementara untuk mengakses layanan AWS secara terprogram.

Sebagai contoh, pengembang hardcode `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` pengguna IAM dalam aplikasi selama pengembangan tetapi gagal menghapus nilai hardcode sebelum mendorong perubahan ke repositori kode. Kredensi yang terbuka ini dapat digunakan oleh pengguna yang tidak diinginkan atau jahat, yang dapat memiliki implikasi serius (terutama jika kredensil yang terekspos memiliki hak istimewa admin). Kredensi yang terbuka ini harus segera dinonaktifkan atau dihapus dengan menggunakan konsol IAM atau AWS Command Line Interface (AWS CLI).

Untuk mendapatkan kredensi sementara untuk akses terprogram ke layanan AWS, gunakan AWS STS. Kredensi sementara hanya berlaku untuk waktu yang ditentukan (dari 15 menit hingga 36 jam). Durasi maksimum yang diizinkan untuk kredensil sementara bervariasi tergantung pada faktor-faktor seperti pengaturan peran dan rantai peran. Untuk informasi selengkapnya tentang AWS STS, lihat [dokumentasinya](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html).

## Epik
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-epics"></a>

### Siapkan tabel DynamoDB
<a name="set-up-dynamodb-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel DynamoDB. | Buat tabel DynamoDB, dengan indeks, di akun AWS sumber dan target.Tetapkan penyediaan kapasitas sebagai mode sesuai permintaan, yang memungkinkan DynamoDB untuk read/write menskalakan kapasitas secara dinamis berdasarkan beban kerja. Atau, Anda dapat menggunakan kapasitas yang disediakan dengan 4000 RCUs dan 4000. WCUs | Pengembang aplikasi, DBA, insinyur Migrasi | 
| Isi tabel sumber. | Isi tabel DynamoDB di akun sumber dengan data uji. Memiliki setidaknya 50 MB atau lebih data pengujian membantu Anda melihat puncak dan rata-rata yang RCUs dikonsumsi selama penyalinan tabel. Anda kemudian dapat mengubah penyediaan kapasitas sesuai kebutuhan. | Pengembang aplikasi, DBA, insinyur Migrasi | 

### Siapkan kredensil untuk mengakses tabel DynamoDB
<a name="set-up-credentials-to-access-the-dynamodb-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM untuk mengakses sumber dan target tabel DynamoDB. | Buat peran IAM di akun sumber dengan izin untuk mengakses (baca) tabel DynamoDB di akun sumber.Tambahkan akun sumber sebagai entitas tepercaya untuk peran ini.Buat peran IAM di akun target dengan izin untuk mengakses (membuat, membaca, memperbarui, menghapus) tabel DynamoDB di akun target.  Tambahkan akun target sebagai entitas tepercaya untuk peran ini. | Pengembang aplikasi, AWS DevOps | 

### Salin data tabel dari satu akun ke akun lainnya
<a name="copy-table-data-from-one-account-to-another"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan kredensi sementara untuk peran IAM. | Dapatkan kredensi sementara untuk peran IAM yang dibuat di akun sumber.Dapatkan kredensi sementara untuk peran IAM yang dibuat di akun target.Salah satu cara untuk mendapatkan kredensil sementara untuk peran IAM adalah dengan menggunakan AWS STS dari AWS CLI.<pre>aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/<role-name> --role-session-name <session-name> --profile <profile-name></pre>Gunakan profil AWS yang sesuai (sesuai dengan sumber atau akun target).Untuk informasi selengkapnya tentang berbagai cara untuk mendapatkan kredensil sementara, lihat berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation.html) | Pengembang aplikasi, insinyur Migrasi | 
| Inisialisasi klien DynamoDB untuk sumber dan target akses DynamoDB. | Inisialisasi klien DynamoDB, yang disediakan oleh AWS SDK, untuk tabel DynamoDB sumber dan target.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation.html)[Untuk informasi selengkapnya tentang membuat permintaan dengan menggunakan kredensil sementara IAM, lihat dokumentasi AWS.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AuthUsingTempSessionToken.html) | Pengembang aplikasi | 
| Jatuhkan dan buat ulang tabel target. | Hapus dan buat ulang tabel DynamoDB target (bersama dengan indeks) di akun target, menggunakan klien DynamoDB akun target.Menghapus semua catatan dari tabel DynamoDB adalah operasi yang mahal karena mengkonsumsi provisioned. WCUs Menghapus dan membuat ulang tabel menghindari biaya tambahan tersebut.Anda dapat menambahkan indeks ke tabel setelah Anda membuatnya, tetapi ini membutuhkan waktu 2-5 menit lebih lama. Membuat indeks selama pembuatan tabel, dengan meneruskan koleksi indeks ke `createTable` panggilan, lebih efisien. | Pengembang aplikasi | 
| Lakukan salinan tabel. | Ulangi langkah-langkah berikut hingga semua data disalin:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation.html)*Untuk informasi selengkapnya, lihat implementasi referensi di C \$1 (untuk menjatuhkan, membuat, dan mengisi tabel) di bagian Lampiran.* Contoh tabel konfigurasi JavaScript Object Notation (JSON) file juga dilampirkan. | Pengembang aplikasi | 

## Sumber daya terkait
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-resources"></a>
+ [Dokumentasi Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)
+ [Membuat pengguna IAM di akun AWS Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)
+ [AWS SDKs](https://aws.amazon.com/tools/)
+ [Menggunakan kredensil sementara dengan sumber daya AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)

## Informasi tambahan
<a name="copy-amazon-dynamodb-tables-across-accounts-using-a-custom-implementation-additional"></a>

Pola ini diimplementasikan menggunakan C\$1 untuk menyalin tabel DynamoDB dengan 200.000 item (ukuran item rata-rata 5 KB dan ukuran tabel 250 MB). Tabel DynamoDB target disiapkan dengan kapasitas yang disediakan 4000 dan 4000. RCUs WCUs

Operasi penyalinan tabel lengkap (dari akun sumber ke akun target), termasuk menjatuhkan dan membuat ulang tabel, membutuhkan waktu 5 menit. Total unit kapasitas yang dikonsumsi: 30.000 RCUs dan sekitar WCUs 400.000.

Untuk informasi selengkapnya tentang mode kapasitas DynamoDB, [lihat Mode kapasitas Baca/Tulis dalam dokumentasi AWS](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html).

## Lampiran
<a name="attachments-ba8175be-9809-4c2e-b2d1-6b9180ed056c"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/ba8175be-9809-4c2e-b2d1-6b9180ed056c/attachments/attachment.zip)

# Buat laporan biaya dan penggunaan terperinci untuk Amazon RDS dan Amazon Aurora
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora"></a>

*Lakshmanan Lakshmanan dan Sudarshan Narasimhan, Amazon Web Services*

## Ringkasan
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-summary"></a>

[Pola ini menunjukkan cara melacak biaya penggunaan untuk Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora cluster dengan mengonfigurasi tag alokasi biaya yang ditentukan pengguna.](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html) Anda dapat menggunakan tag ini untuk membuat laporan biaya dan penggunaan terperinci di AWS Cost Explorer untuk klaster di berbagai dimensi. Misalnya, Anda dapat melacak biaya penggunaan di tingkat tim, proyek, atau pusat biaya, lalu menganalisis data di Amazon Athena.

## Prasyarat dan batasan
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Satu atau lebih contoh [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) atau [Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) Aurora

**Batasan**

Untuk pembatasan penandaan, lihat [Panduan Pengguna Penagihan AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html).

## Arsitektur
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-architecture"></a>

**Tumpukan teknologi target**
+ Amazon RDS atau Amazon Aurora
+ Laporan Biaya dan Penggunaan AWS
+ AWS Cost Explorer
+ Amazon Athena

**Alur kerja dan arsitektur**

Alur kerja penandaan dan analisis terdiri dari langkah-langkah berikut:

1. Insinyur data, administrator database, atau administrator AWS membuat tag alokasi biaya yang ditentukan pengguna untuk klaster Amazon RDS atau Aurora.

1. Administrator AWS mengaktifkan tag.

1. Tag melaporkan metadata ke AWS Cost Explorer.

1. Insinyur data, administrator database, atau administrator AWS membuat [laporan alokasi biaya bulanan](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html#allocation-viewing).

1. Insinyur data, administrator database, atau administrator AWS menganalisis laporan alokasi biaya bulanan dengan menggunakan Amazon Athena.

Diagram berikut menunjukkan cara menerapkan tag untuk melacak biaya penggunaan untuk instans Amazon RDS atau Aurora.

 

![\[Menerapkan tag untuk melacak biaya penggunaan untuk instance dan cluster database\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/eab5001d-5115-4aa6-bdd2-23063b08b262/images/63292b18-01d6-4523-b8ac-2c3b12b11b84.png)


Diagram arsitektur berikut menunjukkan bagaimana laporan alokasi biaya terintegrasi dengan Amazon Athena untuk analisis.

![\[Menanyakan laporan alokasi biaya di Athena\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/eab5001d-5115-4aa6-bdd2-23063b08b262/images/9c028405-1e93-4f6a-a0e5-36154e2b8eab.png)


Laporan alokasi biaya bulanan disimpan dalam bucket Amazon S3 yang Anda tentukan. Saat Anda menyiapkan Athena dengan CloudFormation template AWS, seperti yang dijelaskan di bagian *Epics*, templat tersebut menyediakan beberapa sumber daya tambahan, termasuk crawler AWS Glue, database AWS Glue, peristiwa Amazon Simple Notification System (Amazon SNS), fungsi AWS Lambda, dan peran AWS Identity and Access Management (IAM) untuk fungsi Lambda. Saat file data biaya baru tiba di bucket S3, pemberitahuan acara digunakan untuk meneruskan file ini ke fungsi Lambda untuk diproses. Fungsi Lambda memulai pekerjaan crawler AWS Glue untuk membuat atau memperbarui tabel di AWS Glue Data Catalog. Tabel ini kemudian digunakan untuk query data di Athena.

 

## Alat
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-tools"></a>
+ [Amazon Athena](https://aws.amazon.com/athena/) adalah layanan kueri interaktif yang memudahkan untuk menganalisis data di Amazon S3 menggunakan SQL standar.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/) adalah layanan infrastruktur sebagai kode (IAc) yang memungkinkan Anda memodelkan, menyediakan, dan mengelola AWS dan sumber daya pihak ketiga dengan mudah.
+ [AWS Cost Explorer](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-what-is.html) membantu Anda melihat dan menganalisis biaya dan penggunaan AWS Anda.

## Epik
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-epics"></a>

### Buat dan aktifkan tag untuk klaster Amazon RDS atau Aurora Anda
<a name="create-and-activate-tags-for-your-amazon-rds-or-aurora-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tag alokasi biaya yang ditentukan pengguna untuk Amazon RDS atau klaster Aurora Anda. | Untuk menambahkan tag ke kluster Amazon RDS atau Aurora baru atau yang sudah ada, ikuti petunjuk [di Menambahkan, mencantumkan, dan menghapus](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html#Tagging.HowTo) tag di Panduan Pengguna *Amazon Aurora*.*Untuk informasi tentang cara menyiapkan klaster Amazon Aurora, lihat petunjuk untuk MySQL [dan](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.Aurora.html) [PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html) di Panduan Pengguna Amazon Aurora.* | Administrator AWS, Insinyur data, DBA | 
| Aktifkan tag alokasi biaya yang ditentukan pengguna. | Ikuti petunjuk dalam [Mengaktifkan tag alokasi biaya yang ditentukan pengguna di](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html) Panduan Pengguna Penagihan *AWS*. | Administrator AWS | 

### Membuat laporan biaya dan penggunaan
<a name="create-cost-and-usage-reports"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan konfigurasikan laporan biaya dan penggunaan untuk cluster Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora.html)Data akan tersedia dalam 24 jam. | Pemilik aplikasi, administrator AWS, DBA, AWS Umum, Insinyur data | 

### Menganalisis data laporan biaya dan penggunaan
<a name="analyze-cost-and-usage-report-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menganalisis data laporan biaya dan penggunaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora.html)<pre>select status from cost_and_usage_data_status</pre>Untuk informasi selengkapnya, lihat [Menjalankan kueri Amazon Athena](https://docs.aws.amazon.com/cur/latest/userguide/cur-ate-run.html) di Panduan Pengguna *Laporan Biaya dan Penggunaan AWS*.Ketika Anda menjalankan query SQL Anda, pastikan bahwa database yang benar dipilih dari daftar dropdown. | Pemilik aplikasi, administrator AWS, DBA, AWS Umum, Insinyur data | 

## Sumber daya terkait
<a name="create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora-resources"></a>

**Referensi**
+ [Menyiapkan Athena menggunakan CloudFormation templat AWS (disarankan](https://docs.aws.amazon.com/cur/latest/userguide/use-athena-cf.html))
+ [Menyiapkan Athena secara manual](https://docs.aws.amazon.com/cur/latest/userguide/cur-ate-manual.html)
+ [Menjalankan kueri Amazon Athena](https://docs.aws.amazon.com/cur/latest/userguide/cur-ate-run.html)
+ [Memuat data laporan ke sumber daya lain](https://docs.aws.amazon.com/cur/latest/userguide/cur-query-other.html)

**Tutorial dan video**
+ [Analisis Laporan Biaya dan Penggunaan menggunakan Amazon Athena (video](https://youtu.be/KEeJEZTYE8E)) YouTube 

# Menerapkan instance cluster failover SQL Server di Amazon EC2 dan Amazon FSx dengan menggunakan Terraform
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx"></a>

*Mark Hudson dan Matt Burgess, Amazon Web Services*

## Ringkasan
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-summary"></a>

Pola ini menggunakan Terraform untuk menyebarkan instance cluster failover SQL Server () di seluruh node Windows Server Failover Cluster (WSFCFCIs) di Amazon Elastic Compute Cloud (Amazon). EC2 Selain itu, pola menggunakan penyimpanan FSx bersama Amazon untuk data dan file log. 

Ketika database SQL Server dimigrasikan ke AWS, pilihan pertama adalah Amazon RDS for SQL Server. Namun, terkadang Amazon RDS for SQL Server tidak cocok dan SQL Server harus digunakan di EC2 Amazon dalam arsitektur yang sangat tersedia. Dalam solusi ini, SQL Server FCIs diinstal di seluruh node WSFC.

Modul Terraform yang disertakan dengan pola ini menyediakan hingga dua instance Amazon EC2 SQL Server. Sistem file Amazon FSx untuk Windows File Server bertindak sebagai saksi kuorum dan menyimpan data bersama dan file log. Terlepas dari jumlah instance yang dikonfigurasi, node instance SQL Server akan selalu membuat dan bergabung dengan cluster FCI untuk memastikan paritas lingkungan. (Biasanya, satu instance dikonfigurasi untuk pengembangan dan dua instance untuk lingkungan produksi.) Untuk konfigurasi yang menggunakan dua node untuk ketersediaan tinggi, Network Load Balancer internal disediakan. Network Load Balancer menggunakan probe kesehatan yang dikonfigurasi pada cluster FCI untuk mengidentifikasi node mana yang utama. 

## Prasyarat dan batasan
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Amazon Virtual Private Cloud (Amazon VPC) dengan dua subnet di Availability Zone terpisah.
+ Set opsi Amazon VPC [DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/DHCPOptionSet.html). Konfigurasikan nama domain untuk menyelesaikan nama domain Active Directory Anda dan domain dan server nama NetBIOS untuk menunjuk ke pengontrol domain Active Directory Anda. Untuk informasi selengkapnya, lihat *Konfigurasi VPC* di Informasi [tambahan](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional).
+ AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD).
+ Gambar Mesin Amazon Kustom (AMI). Untuk detail selengkapnya, lihat *konfigurasi AMI* di [Informasi tambahan](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional).
+ Bucket Amazon Simple Storage Service (Amazon S3) yang berisi image ISO SQL Server. Prasyarat ini hanya diperlukan jika menggunakan [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) dengan `component.yaml` file yang disediakan untuk membuat AMI kustom.
+ AWS Key Management Service (AWS KMS) kunci enkripsi.
+ Secara default, SQL Server diinstal menggunakan kunci produk edisi pengembang. Sistem produksi diharapkan menggunakan kunci produk yang valid yang diteruskan ke modul oleh variabel yang relevan.

**Batasan**
+ Solusi ini membutuhkan AWS Managed Microsoft AD. Namun, jika Anda mau, Anda dapat menggunakan implementasi Active Directory yang dikelola sendiri sebagai gantinya. Untuk melakukannya, ubah modul Amazon FSx Terraform yang disertakan untuk menghapus atribut. `active_directory_id` Kemudian, tambahkan empat atribut yang diperlukan untuk Active Directory yang dikelola sendiri seperti yang ditunjukkan dalam dokumentasi [Terraform](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/fsx_windows_file_system).
+ SQL Server diatur untuk menggunakan otentikasi mode campuran. Jika mau, Anda dapat menggunakan otentikasi khusus Windows. Untuk melakukannya, dalam skrip data pengguna yang disediakan, hapus `/SECURITYMODE` dan `/SAPWD` parameter yang disediakan ke `setup.exe` perintah. Anda dapat menghapus `sql_accounts.tf` file, dan Anda dapat memodifikasi `instances.tf` file untuk menghapus `sql_sa_password` entri.
+ Saat menghapus cluster yang digunakan, Anda harus menghapus objek komputer virtual yang sesuai dan objek komputer individual di Active Directory. Untuk menghapus objek, gunakan alat administratif Direktori Aktif.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**

Solusi ini diuji dengan versi berikut:
+ Windows Server 2019
+ SQL Server 2019
+ [Terraform v0.13.0](https://developer.hashicorp.com/terraform/language/v1.1.x/upgrade-guides/0-13)

## Arsitektur
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-architecture"></a>

**Tumpukan teknologi sumber**
+ SQL Server

**Tumpukan teknologi target**
+ SQL Server FCI pada node WSFC menggunakan Amazon EC2
+ Amazon FSx untuk Server File Windows
+ Buket Amazon S3
+ AWS Secrets Manager
+ AWS Managed Microsoft AD
+ AWS KMS
+ AWS Identity and Access Management (IAM)

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk solusi ini.

![\[Arsitektur untuk menyebarkan instance cluster failover SQL Server di seluruh node Windows Server Failover Cluster di Amazon. EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/45f3ab19-d240-4353-ab6e-f6e565f537a4/images/0bff16f2-94e7-4e86-91ea-7ab5f3725620.png)


Diagram menunjukkan yang berikut:
+ Peran IAM yang menyediakan akses EC2 instans ke AWS KMS dan Secrets Manager
+ Dua node SQL Server digunakan pada EC2 instans Amazon dalam subnet pribadi di dua Availability Zone
+ Network Load Balancer untuk memfasilitasi koneksi ke instance SQL Server aktif (tidak digunakan saat menyiapkan cluster node tunggal)
+ Amazon FSx untuk sistem file Windows File Server digunakan di kedua subnet pribadi untuk penyimpanan bersama oleh node SQL Server
+ Secrets Manager untuk menyimpan kredensil dan konfigurasi Active Directory dan SQL Server
+ Bucket Amazon S3 untuk menyimpan gambar instalasi SQL Server
+ AWS Managed Microsoft AD untuk otentikasi Windows
+ AWS KMS untuk membuat kunci enkripsi

**Otomatisasi dan skala**

[Anda dapat mengotomatiskan penerapan arsitektur target dengan menggunakan modul Terraform yang ada di repositori. GitHub ](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server) Anda harus memodifikasi `terraform.tfvars` file untuk menyertakan nilai variabel yang spesifik untuk lingkungan Anda. Bucket Amazon S3, AWS Managed Microsoft AD komponen, kunci AWS KMS enkripsi, dan beberapa rahasia adalah prasyarat untuk penerapan ini dan tidak termasuk dalam kode Terraform. 

## Alat
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-tools"></a>

**Layanan AWS**
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)memungkinkan beban kerja dan sumber daya yang sadar direktori Anda AWS untuk menggunakan Microsoft Active Directory di file. AWS Cloud Dalam pola ini, AWS Managed Microsoft AD digunakan untuk otentikasi Windows Server dan SQL Server dan untuk DNS.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah. Dalam pola ini, instance cluster failover SQL Server diinstal pada instans Amazon. EC2 
+ [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) membantu Anda mengotomatiskan pembuatan, pengelolaan, dan penyebaran gambar server yang disesuaikan.
+ [Amazon FSx untuk Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) menyediakan penyimpanan bersama yang dikelola sepenuhnya di Windows Server. Dalam pola ini, FSx untuk Windows File Server menyediakan penyimpanan bersama untuk data SQL Server dan file log dan saksi kuorum.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda. Dalam pola ini, ini digunakan untuk mengenkripsi rahasia Secrets Manager, penyimpanan SQL Server pada volume Amazon Elastic Block Store (Amazon EBS), dan FSx sistem file untuk Windows File Server.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Dalam pola ini, kredensi Active Directory untuk menginstal dan menjalankan SQL Server, kredensi `sa` pengguna, dan informasi koneksi database disimpan di Secrets Manager.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data. Pola ini menggunakan bucket Amazon S3 untuk menyimpan image instalasi SQL Server.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS

******Alat-alat lainnya**
+ [Microsoft SQL Server FCIs](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/always-on-failover-cluster-instances-sql-server?view=sql-server-ver15) diinstal di seluruh node cluster Windows Server. Selain itu, mereka dapat diinstal di beberapa subnet. Dalam pola ini, instance SQL Server FCI diinstal di seluruh node WSFC.
+ [Terraform](https://www.terraform.io/) adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud. Dalam pola ini, Terraform digunakan untuk membuat sumber daya dan mengkonfigurasi instance SQL Server FCI.
+ [Windows Server Failover Clustering](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/windows-server-failover-clustering-wsfc-with-sql-server?view=sql-server-ver15) menyediakan fitur infrastruktur yang mendukung ketersediaan tinggi aplikasi server yang dihosting seperti SQL Server. Dalam pola ini, node FCI menggunakan fungsionalitas WSFC untuk menyediakan ketersediaan tinggi lokal melalui redundansi di tingkat instans.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [cluster-amazon-elastic-compute- cloud-amazon-fsx-microsoft -sql-server](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server). Sumber daya berikut tersedia di repositori:
+ `README.md`File yang memberikan gambaran umum tentang solusi dan informasi instalasi dan penggunaan tambahan
+ Kumpulan dasar file konfigurasi Terraform dan modul FSx khusus Amazon untuk menyediakan komponen untuk pola ini
+ Skrip penyiapan instans yang dijalankan sebagai skrip data EC2 pengguna Amazon
+ File `component.yam` l yang dapat digunakan Image Builder untuk membuat AMI kustom

## Praktik terbaik
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-best-practices"></a>

**Keamanan dan penambalan**
+ Instalasi dan konfigurasi prasyarat AMI adalah persyaratan minimum untuk menerapkan cluster SQL Server FCI. Perangkat lunak dan konfigurasi tambahan mungkin diperlukan untuk mematuhi standar dan persyaratan keamanan organisasi Anda.
+ Setelah penerapan, tambal Windows secara berkelanjutan. Baik langsung menambal instance yang sedang berjalan, atau buat AMI baru dengan tambalan Windows terbaru dan ganti instance (satu per satu) menggunakan AMI baru. AWS merilis Windows baru AMIs setiap bulan yang berisi patch sistem operasi terbaru, driver, dan agen peluncuran. Kami menyarankan Anda memeriksa AMI terbaru saat meluncurkan instans baru, atau saat Anda membuat gambar kustom Anda sendiri.
+  EC2 Instans Amazon dikonfigurasi untuk memungkinkan semua lalu lintas keluar. Ketika diterapkan di lingkungan produksi, aturan keluar dalam kelompok keamanan harus diberlakukan untuk membatasi lalu lintas ini ke tujuan yang diperlukan.
+ Sistem file FSx untuk Windows File Server dapat secara otomatis merekam log audit untuk berbagi file dan akses file dan folder dan mengirimkannya ke tujuan yang Anda inginkan jika ini adalah persyaratan di lingkungan Anda.
+ Putar rahasia Secrets Manager secara otomatis secara teratur. Untuk key pair EC2 instans Amazon, pertimbangkan solusi rotasi otomatis seperti yang dijelaskan dalam [Cara menggunakan AWS Secrets Manager untuk menyimpan dan memutar pasangan kunci SSH dengan aman](https://aws.amazon.com/blogs/security/how-to-use-aws-secrets-manager-securely-store-rotate-ssh-key-pairs/). Untuk kredensi Active Directory dan `sa` rahasia kredensi SQL Server, siapkan rotasi otomatis sesuai dengan kebijakan Anda untuk pengelolaan kata sandi.

**Manajemen Direktori Aktif**
+ Sebagai bagian dari cluster FCI, Windows menghasilkan Computer Name Object (CNO) di Active Directory. CNO merespons permintaan DNS dan meneruskan lalu lintas ke node SQL aktif. Kami *tidak* menyarankan menggunakan DNS yang disediakan Direktori Aktif ini. TTL terlalu tinggi untuk memberikan waktu failover yang masuk akal dan seringkali membutuhkan waktu lebih dari 5 menit untuk mencerminkan alamat IP utama yang baru. Sebaliknya, untuk instalasi yang sangat tersedia, Network Load Balancer internal dikonfigurasi untuk failover dalam 30 detik.
+ Administrator domain Active Directory diperlukan untuk membuat cluster. Persyaratan ini karena izin tinggi yang diperlukan untuk membuat objek cluster dan memodifikasi izin di Active Directory. Namun, layanan SQL Server tidak perlu dijalankan sebagai administrator domain. Oleh karena itu, kami menyarankan Anda membuat pengguna Active Directory kedua untuk tujuan ini. Namun, Anda dapat menghilangkan pengguna ini jika layanan akan berjalan sebagai pengguna administrator domain. Dalam hal ini, pengguna administrator domain harus ditambahkan ke grup administrator Direktori Aktif yang dibuat sebagai bagian dari pola ini. 

## Epik
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-epics"></a>

### Siapkan kredenal cluster
<a name="set-up-cluster-credentials"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup Active Directory. | Di AWS Managed Microsoft AD, buat grup berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Untuk detail selengkapnya, lihat [Membuat AWS Managed Microsoft AD grup](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_create_group.html) dalam AWS dokumentasi. | Administrator AD | 
| Buat pengguna Active Directory. | Di AWS Managed Microsoft AD, buat pengguna berikut[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Untuk detail selengkapnya, lihat [Membuat AWS Managed Microsoft AD pengguna](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) dalam AWS dokumentasi. | Administrator AD | 
| Tambahkan kredensil Active Directory ke rahasia. | Gunakan Secrets Manager untuk membuat empat rahasia untuk menyimpan informasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Untuk detail selengkapnya, lihat [Membuat AWS Secrets Manager rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) di AWS dokumentasi. | Administrator AWS | 

### Siapkan lingkungan
<a name="prepare-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat AMI Windows. | Buat AMI Windows kustom yang mencakup perangkat lunak dan konfigurasi prasyarat. Untuk detail selengkapnya, lihat [Informasi Tambahan](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional). | Administrator AWS, AWS DevOps | 
| Instal Terraform. | Untuk menginstal Terraform, ikuti instruksi di situs web [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli). | AWS DevOps | 
| Kloning repositori. | Kloning [repositori](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server) pola ini. Untuk detail selengkapnya, lihat [Mengkloning repositori](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) di situs web. GitHub  | AWS DevOps | 

### Instal cluster
<a name="install-the-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah variabel Terraform. | Perbarui `terraform.tfvars` file yang disediakan untuk mengatur semua variabel ke nilai yang sesuai untuk lingkungan Anda.Misalnya, perbarui `domain_group_rdp_users` variabel `domain_group_administrators` dan untuk menggunakan nama domain Active Directory dan nama grup Active Directory yang dibuat sebelumnya. | AWS DevOps | 
| Inisialisasi Terraform. | Untuk melihat penerapan yang diusulkan, arahkan ke root repositori. Gunakan antarmuka baris perintah Terraform (CLI) untuk menjalankan dan kemudian menjalankan`terraform init`. `terraform plan` | AWS DevOps | 
| Menyebarkan sumber daya. | Untuk menerapkan cluster SQL dan sumber daya terkait, gunakan Terraform CLI untuk menjalankannya. `terraform apply` | AWS DevOps, administrator AWS | 
| Validasi penerapan. | Untuk memvalidasi penerapan, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html) | DBA, administrator sistem AWS | 

## Pemecahan masalah
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Penyediaan Terraform selesai tetapi Windows Failover Cluster Manager tidak menunjukkan cluster telah dibuat atau cluster dalam keadaan tidak dapat dioperasikan. | Seluruh instalasi sumber daya dan konfigurasi cluster dapat memakan waktu 45-60 menit. Setelah Terraform selesai, skrip data pengguna harus berjalan hingga selesai, yang memerlukan beberapa reboot. Untuk memantau kemajuan, Anda dapat menggunakan `Checkpoints` direktori di `C:\` drive dan log instalasi SQL Server. `C:\Program Data\Microsoft SQL Server\150\Log` Setelah selesai, pesan **Instalasi Lengkap** tersedia dalam `C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log` file. | 
| Setelah menyediakan cluster yang berfungsi, menggunakan Terraform untuk menghapus dan membuat ulang cluster tidak berhasil. Terraform selesai, tetapi cluster tidak diatur dengan benar. | Bagian dari proses penyediaan melibatkan mendaftarkan mesin dan objek virtual ke Active Directory dan Active Directory DNS. Ketika nama komputer ada untuk node EC2 cluster Amazon dan node cluster, FCI tidak dapat menginisialisasi dengan benar dan akan gagal penyediaan.Untuk memperbaiki masalah ini, lakukan langkah-langkah berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html) | 

## Sumber daya terkait
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-resources"></a>

**AWS dokumentasi**
+ [Buat gambar kustom dengan Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/create-images.html)
+ [Buat kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)
+ [Membuat ember tujuan umum](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)
+ [Membuat kebijakan utama](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)
+ [Menciptakan AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html)

## Informasi tambahan
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional"></a>

**Informasi modul Terraform**

Modul ini menggunakan campuran konfigurasi AMI dan konfigurasi data pengguna untuk mendapatkan perpaduan yang baik antara waktu penyediaan dan stabilitas. Selama penyediaan, Windows memerlukan beberapa restart dan menunggu. Metode pos pemeriksaan telah diterapkan untuk melindungi terhadap loop tak terbatas selama restart data pengguna persisten. Data pengguna dikonfigurasi agar persisten. Oleh karena itu, skrip konfigurasi data pengguna memiliki, dan harus melanjutkan, untuk dikembangkan menjadi idempoten. Idempotency merampingkan proses pembaruan, memungkinkan instance ditukar selama siklus pembaruan tanpa konfigurasi manual untuk bergabung kembali atau membuat ulang cluster FCI.

**String koneksi SQL Server dan pengelompokan failover**

Modul akan menerbitkan rahasia yang berisi alamat titik akhir yang harus digunakan dalam string koneksi untuk database ini. Nama rahasia mengikuti format`{environment_name}/sqlserver/{cluster_name}/endpoint`. Untuk instalasi di mana hanya satu node yang digunakan, Anda dapat mengharapkan ini menjadi alamat IP dari antarmuka SQL Server Amazon EC2 instance. Untuk instalasi ketersediaan tinggi (dua contoh), Anda dapat mengharapkan ini menjadi nama DNS dari Network Load Balancer internal.

Virtual pengelompokan failover IPs tidak didukung dalam modul ini. IP virtual harus tetap berada di subnet yang sama agar dapat berfungsi. Di AWS, satu subnet tidak dapat menjangkau beberapa Availability Zone. Oleh karena itu, penggunaan virtual IPs akan menghilangkan kemampuan modul ini untuk dianggap sangat tersedia.

Setiap EC2 instans Amazon diberikan tiga alamat IP pribadi. USAI mereka sebagai berikut:
+ **IP utama untuk lalu lintas jaringan** — IP sumber untuk lalu lintas keluar.
+ **Komunikasi FCI** — Digunakan untuk mempertahankan status dan sinkronisasi cluster failover.
+ **SQL Server (port TCP 1433)** - Pendengar dan juga mendengarkan lalu lintas detak jantung untuk menentukan instance mana yang utama.

**Konfigurasi VPC**

[Prasyarat](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-prereqs) mencantumkan set opsi DHCP yang dikonfigurasi untuk menggunakan Active Directory untuk resolusi DNS. Namun, prasyarat ini bukanlah persyaratan yang sulit. Persyaratan yang sulit adalah bahwa EC2 instance harus dapat menyelesaikan nama domain Active Directory Anda. Memenuhi persyaratan ini dapat dicapai dengan cara lain, seperti dengan menggunakan titik Amazon Route 53 Resolver akhir. Untuk informasi selengkapnya, lihat [Mengintegrasikan resolusi DNS Layanan Direktori Anda dengan Amazon Route 53 Resolvers](https://aws.amazon.com/blogs/networking-and-content-delivery/integrating-your-directory-services-dns-resolution-with-amazon-route-53-resolvers/) (AWS posting Blog).

**Konfigurasi AMI**

AMI yang digunakan dalam pola ini harus berisi perangkat lunak dan konfigurasi prasyarat berikut:

1. Unduh dan perluas file instalasi SQL Server 2019 ke dalam`C:\SQL_Install_media`.

1. Instal fitur Windows berikut:
   + `Install-WindowsFeature Failover-Clustering`
   + `Install-WindowsFeature RSAT-AD-PowerShell`
   + `Install-WindowsFeature RSAT-AD-Tools`
   + `Install-WindowsFeature RSAT-Clustering-Mgmt`
   + `Install-WindowsFeature RSAT-Clustering-PowerShell`
   + `Install-WindowsFeature RSAT-Clustering-CmdInterface`

1. Nonaktifkan firewall Windows sebagai berikut:
   + `Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled False`

1. Aktifkan metode otentikasi CredSSP (ganti `<domain>` dengan nama domain Windows organisasi Anda) sebagai berikut:
   + `Enable-WSManCredSSP -Role "Server" -Force`
   + `Enable-WSManCredSSP -Role "Client" -DelegateComputer *.<domain>.com -Force`

1. Mengatur kunci registri berikut:
   + Izinkan kredensi otentikasi NTLM:
     + `HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation`
       + Nama: `AllowFreshCredentialsWhenNTLMOnly`
       + Nilai: 1
       + Tipe: `REG_DWORD`
   + Izinkan komputer domain lokal menggunakan NTLM dari: PowerShell
     + Jalan: `HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentialsWhenNTLMOnly`
       + Nama: `1`
       + Nilai: `wsman/*.<domain>.com`
       + Tipe: `REG_SZ`

1. Siapkan [PowerShell Galeri](https://learn.microsoft.com/en-us/powershell/gallery/overview?view=powershellget-3.x) sebagai berikut:
   + `[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12`
   + `Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force`
   + `Set-PSRepository -Name PSGallery -InstallationPolicy Trusted`

1. Instal PowerShell modul Windows berikut`*`:
   + `Install-Module -Name ComputerManagementDsc`
   + `Install-Module -Name FailOverClusterDsc`
   + `Install-Module -Name PSDscResources`
   + `Install-Module -Name xSmbShare`
   + `Install-Module -Name xActiveDirectory`
   + `Install-Module -Name SqlServer`

Untuk menggunakan Image Builder untuk membuat AMI, ikuti petunjuk di [Membuat pipeline gambar menggunakan wizard EC2 Image Builderconsole](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html) dalam dokumentasi Image Builder. Untuk membuat komponen resep dengan prasyarat sebelumnya, gunakan langkah-langkah berikut:

1. [Unduh file [component.yaml](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server/blob/main/ami/component.yaml) dari `ami ` folder repositori. GitHub ](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server)

1. Salin konten ke komponen Image Builder baru.

1. Perbarui placeholder berikut dengan informasi Anda:
   + `<domain>`— Nama domain Direktori Aktif Anda
   + `<bucket_name>`— Nama bucket Amazon S3 yang berisi gambar SQL Server

# Meniru array PL/SQL asosiatif Oracle di Amazon Aurora PostgreSQL dan Amazon RDS untuk PostgreSQL
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql"></a>

*Rajkumar Raghuwanshi, Bhanu Ganesh Gudivada, dan Sachin Khanna, Amazon Web Services*

## Ringkasan
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-summary"></a>

[Pola ini menjelaskan cara meniru array PL/SQL asosiatif Oracle dengan posisi indeks kosong di Amazon [Aurora PostgreSQL dan Amazon RDS untuk lingkungan PostgreSQL](https://aws.amazon.com/rds/aurora/).](https://aws.amazon.com/rds/postgresql/) Ini juga menjelaskan beberapa perbedaan antara array PL/SQL asosiatif Oracle dan array PostgreSQL sehubungan dengan bagaimana masing-masing menangani posisi indeks kosong selama migrasi.

Kami menyediakan alternatif PostgreSQL untuk `aws_oracle_ext` menggunakan fungsi untuk menangani posisi indeks kosong saat memigrasi database Oracle. Pola ini menggunakan kolom tambahan untuk menyimpan posisi indeks, dan mempertahankan penanganan Oracle terhadap array jarang sambil menggabungkan kemampuan PostgreSQL asli.

**Oracle**

Di Oracle, koleksi dapat diinisialisasi sebagai kosong dan diisi menggunakan metode `EXTEND` pengumpulan, yang menambahkan `NULL` elemen ke array. Saat bekerja dengan array PL/SQL asosiatif yang diindeks oleh`PLS_INTEGER`, `EXTEND` metode ini menambahkan `NULL` elemen secara berurutan, tetapi elemen juga dapat diinisialisasi pada posisi indeks nonsequential. Posisi indeks apa pun yang tidak diinisialisasi secara eksplisit tetap kosong.

Fleksibilitas ini memungkinkan struktur array jarang di mana elemen dapat diisi pada posisi arbitrer. Saat melakukan iterasi melalui koleksi menggunakan `FOR LOOP` with `FIRST` dan `LAST` bounds, hanya elemen yang diinisialisasi (baik `NULL` atau dengan nilai yang ditentukan) yang diproses, sementara posisi kosong dilewati.

**PostgreSQL (Amazon Aurora dan Amazon RDS)**

PostgreSQL menangani nilai kosong secara berbeda dari nilai. `NULL` Ini menyimpan nilai kosong sebagai entitas berbeda yang menggunakan satu byte penyimpanan. Ketika sebuah array memiliki nilai kosong, PostgreSQL menetapkan posisi indeks sekuensial seperti nilai non-kosong. Tetapi pengindeksan sekuensial membutuhkan pemrosesan tambahan karena sistem harus mengulangi semua posisi yang diindeks, termasuk yang kosong. Ini membuat pembuatan array tradisional tidak efisien untuk kumpulan data yang jarang.

**AWS Schema Conversion Tool**

The [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/) biasanya menangani Oracle-to-PostgreSQL migrasi menggunakan `aws_oracle_ext` fungsi. Dalam pola ini, kami mengusulkan pendekatan alternatif yang menggunakan kemampuan PostgreSQL asli, yang menggabungkan tipe array PostgreSQL dengan kolom tambahan untuk menyimpan posisi indeks. Sistem kemudian dapat mengulangi melalui array hanya menggunakan kolom indeks.

## Prasyarat dan batasan
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Pengguna AWS Identity and Access Management (IAM) dengan izin administrator.
+ Instance yang kompatibel dengan Amazon RDS atau Aurora PostgreSQL.
+ Pemahaman dasar tentang database relasional.

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**

Pola ini diuji dengan versi berikut:
+ Amazon Aurora PostgreSQL 13.3
+ Amazon RDS untuk PostgreSQL 13.3
+ AWS SCT 1.0.674
+ Oracle 12c EE 12.2

## Arsitektur
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal

**Tumpukan teknologi target**
+ Amazon Aurora PostgreSQL
+ Amazon RDS for PostgreSQL

**Arsitektur target**

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a62d038c-ca3c-41e1-aa7e-74282d2e54f4/images/13aacf00-655a-4149-a4e7-42b66dbea4e1.png)


Diagram menunjukkan yang berikut:
+ Sumber Amazon RDS for Oracle database instance
+  EC2 Instans Amazon dengan AWS SCT untuk mengonversi fungsi Oracle ke PostgreSQL yang setara
+ Database target yang kompatibel dengan Amazon Aurora PostgreSQL

## Alat
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-tools"></a>

**Layanan AWS**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
+ [Amazon Relational Database Service (Amazon RDS) untuk](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional Oracle di file. AWS Cloud
+ [Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional PostgreSQL di file. AWS Cloud
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) mendukung migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target.

**Alat lainnya**
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud.
+ [pgAdmin](https://www.pgadmin.org/) adalah alat manajemen open source untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. Dalam pola ini, pgAdmin terhubung ke RDS untuk instance database PostgreSQL dan menanyakan data. Atau, Anda dapat menggunakan klien baris perintah psql.

## Praktik terbaik
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-best-practices"></a>
+ Uji batas set data dan skenario tepi.
+ Pertimbangkan untuk menerapkan penanganan kesalahan untuk kondisi out-of-bounds indeks.
+ Optimalkan kueri untuk menghindari pemindaian kumpulan data yang jarang.

## Epik
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-epics"></a>

### Perilaku array asosiatif Oracle (sumber)
<a name="oracle-associative-array-behavior-source"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PL/SQL blok sumber di Oracle. | Buat PL/SQL blok sumber di Oracle yang menggunakan array asosiatif berikut:<pre>DECLARE<br />    TYPE country_codes IS TABLE OF VARCHAR2(100) INDEX BY pls_integer;<br />    cc country_codes;<br />    cc_idx NUMBER := NULL;<br />BEGIN<br />    cc(7) := 'India';<br />    cc(3) := 'UK';<br />    cc(5) := 'USA';<br />    cc(0) := 'China';<br />    cc(-2) := 'Invalid';<br />    dbms_output.put_line('cc_length:' || cc.COUNT);<br />    IF (cc.COUNT > 0) THEN<br />        cc_idx := cc.FIRST;<br />        FOR i IN 1..cc.COUNT LOOP<br />            dbms_output.put_line('cc_idx:' || cc_idx || ' country:' || cc(cc_idx));<br />            cc_idx := cc.next(cc_idx);<br />        END LOOP;<br />    END IF;<br />END;</pre> | DBA | 
| Jalankan PL/SQL blok. | Jalankan PL/SQL blok sumber di Oracle. Jika ada kesenjangan antara nilai indeks dari array asosiatif, tidak ada data yang disimpan dalam celah tersebut. Hal ini memungkinkan loop Oracle untuk iterasi hanya melalui posisi indeks. | DBA | 
| Tinjau output. | Lima elemen dimasukkan ke dalam array (`cc`) pada interval yang tidak berurutan. Jumlah array ditunjukkan pada output berikut:<pre>cc_length:5<br />cc_idx:-2 country:Invalid<br />cc_idx:0 country:China<br />cc_idx:3 country:UK<br />cc_idx:5 country:USA<br />cc_idx:7 country:India</pre> | DBA | 

### Perilaku array asosiatif PostgreSQL (target)
<a name="postgresql-associative-array-behavior-target"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PL/pgSQL blok target di PostgreSQL. | Buat PL/pgSQL blok target di PostgreSQL yang menggunakan array asosiatif berikut:<pre>DO $$<br />DECLARE<br />    cc character varying(100)[];<br />    cc_idx integer := NULL;<br />BEGIN<br />    cc[7] := 'India';<br />    cc[3] := 'UK';<br />    cc[5] := 'USA';<br />    cc[0] := 'China';<br />    cc[-2] := 'Invalid';<br />    RAISE NOTICE 'cc_length: %', ARRAY_LENGTH(cc, 1);<br />    IF (ARRAY_LENGTH(cc, 1) > 0) THEN<br />        FOR i IN ARRAY_LOWER(cc, 1)..ARRAY_UPPER(cc, 1)<br />        LOOP<br />            RAISE NOTICE 'cc_idx:% country:%', i, cc[i];<br />        END LOOP;<br />    END IF;<br />END;<br />$$;</pre> | DBA | 
| Jalankan PL/pgSQL blok. | Jalankan PL/pgSQL blok target di PostgreSQL. Jika ada kesenjangan antara nilai indeks dari array asosiatif, tidak ada data yang disimpan dalam celah tersebut. Hal ini memungkinkan loop Oracle untuk iterasi hanya melalui posisi indeks. | DBA | 
| Tinjau output. | Panjang array lebih besar dari 5 karena `NULL` disimpan dalam celah antara posisi indeks. Seperti yang ditunjukkan pada output berikut, loop menyelesaikan 10 iterasi untuk mengambil 5 nilai dalam array.<pre>cc_length:10<br />cc_idx:-2 country:Invalid<br />cc_idx:-1 country:<NULL><br />cc_idx:0 country:China<br />cc_idx:1 country:<NULL><br />cc_idx:2 country:<NULL><br />cc_idx:3 country:UK<br />cc_idx:4 country:<NULL><br />cc_idx:5 country:USA<br />cc_idx:6 country:<NULL><br />cc_idx:7 country:India</pre> | DBA | 

### Meniru perilaku array asosiatif Oracle
<a name="emulate-oracle-associative-array-behavior"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PL/pgSQL blok target dengan array dan tipe yang ditentukan pengguna. | Untuk mengoptimalkan kinerja dan mencocokkan fungsionalitas Oracle, kita dapat membuat tipe yang ditentukan pengguna yang menyimpan posisi indeks dan data yang sesuai. Pendekatan ini mengurangi iterasi yang tidak perlu dengan mempertahankan asosiasi langsung antara indeks dan nilai.<pre>DO $$<br />DECLARE<br />    cc country_codes[];<br />    cc_append country_codes := NULL;<br />    i record;<br />BEGIN<br />    cc_append.idx = 7;<br />    cc_append.val = 'India';<br />    cc := array_append(cc, cc_append);<br />    cc_append.idx = 3;<br />    cc_append.val = 'UK';<br />    cc := array_append(cc, cc_append);<br />    cc_append.idx = 5;<br />    cc_append.val = 'USA';<br />    cc := array_append(cc, cc_append);<br />    cc_append.idx = 0;<br />    cc_append.val = 'China';<br />    cc := array_append(cc, cc_append);<br />    cc_append.idx = - 2;<br />    cc_append.val = 'Invalid';<br />    cc := array_append(cc, cc_append);<br />    RAISE NOTICE 'cc_length: %', ARRAY_LENGTH(cc, 1);<br />    IF (ARRAY_LENGTH(cc, 1) > 0) THEN<br />        FOR i IN (<br />            SELECT<br />                *<br />            FROM<br />                unnest(cc)<br />            ORDER BY<br />                idx)<br />                LOOP<br />                    RAISE NOTICE 'cc_idx:% country:%', i.idx, i.val;<br />                END LOOP;<br />    END IF;<br />END;<br />$$;</pre> | DBA | 
| Jalankan PL/pgSQL blok. | Jalankan PL/pgSQL blok target. Jika ada kesenjangan antara nilai indeks dari array asosiatif, tidak ada data yang disimpan dalam celah tersebut. Hal ini memungkinkan loop Oracle untuk iterasi hanya melalui posisi indeks. | DBA | 
| Tinjau output. | Seperti yang ditunjukkan pada output berikut, tipe yang ditentukan pengguna hanya menyimpan elemen data yang terisi, yang berarti bahwa panjang array cocok dengan jumlah nilai. Akibatnya, `LOOP` iterasi dioptimalkan untuk memproses hanya data yang ada, menghilangkan kebutuhan untuk melacak posisi kosong.<pre>cc_length:5<br />cc_idx:-2 country:Invalid<br />cc_idx:0 country:China<br />cc_idx:3 country:UK<br />cc_idx:5 country:USA<br />cc_idx:7 country:India</pre> | DBA | 

## Sumber daya terkait
<a name="emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql-resources"></a>

**AWS dokumentasi**
+ [AWS blog basis data](https://aws.amazon.com/blogs/database/)
+ [Buku pedoman migrasi Oracle ke Aurora PostgreSQL](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html)

**Dokumentasi lainnya**
+ [Array asosiatif Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/23/lnpls/associative-arrays.html#GUID-8060F01F-B53B-48D4-9239-7EA8461C2170)
+ [Fungsi dan operator array PostgreSQL](https://www.postgresql.org/docs/current/functions-array.html)
+ [PostgreSQL tipe yang ditentukan pengguna](https://www.postgresql.org/docs/current/sql-createtype.html)

# Aktifkan koneksi terenkripsi untuk instans PostgreSQL DB di Amazon RDS
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds"></a>

*Rohit Kapoor, Amazon Web Services*

## Ringkasan
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-summary"></a>

Amazon Relational Database Service (Amazon RDS) mendukung enkripsi SSL untuk instans PostgreSQL DB. Menggunakan SSL, Anda dapat mengenkripsi koneksi PostgreSQL antara aplikasi dan Amazon RDS for PostgreSQL DB instans. Secara default, Amazon RDS SSL/TLS for PostgreSQL menggunakan dan mengharapkan semua klien terhubung dengan menggunakan enkripsi. SSL/TLS Amazon RDS for PostgreSQL mendukung TLS versi 1.1 dan 1.2.

Pola ini menjelaskan bagaimana Anda dapat mengaktifkan koneksi terenkripsi untuk instans Amazon RDS for PostgreSQL DB. Anda dapat menggunakan proses yang sama untuk mengaktifkan koneksi terenkripsi untuk Amazon Aurora PostgreSQL Edisi yang kompatibel.

## Prasyarat dan batasan
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-prereqs"></a>
+ Akun AWS yang aktif
+ Sebuah [Amazon RDS untuk instans DB Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_RDS_Configuring.html)
+ [Bundel SSL](https://www.postgresql.org/docs/current/ssl-tcp.html)

## Arsitektur
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-architecture"></a>

![\[Mengaktifkan koneksi terenkripsi untuk instans PostgreSQL DB di Amazon RDS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4f87c6a3-b4ff-4248-96d3-a4a498659735/images/ccc5c880-1191-4c12-a255-6908b96b96a5.png)


## Alat
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-tools"></a>
+ [pgAdmin](https://www.pgadmin.org/) adalah platform administrasi dan pengembangan open-source untuk PostgreSQL. Anda dapat menggunakan pgAdmin di Linux, Unix, macOS, dan Windows untuk mengelola objek database Anda di PostgreSQL 10 dan yang lebih baru.
+ Editor [PostgreSQL](https://wiki.postgresql.org/wiki/PostgreSQL_Clients) menyediakan antarmuka yang lebih ramah pengguna untuk membantu Anda membuat, mengembangkan, dan menjalankan kueri, dan mengedit kode sesuai dengan kebutuhan Anda.

## Praktik terbaik
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-best-practices"></a>
+ Pantau koneksi database yang tidak aman.
+ Audit hak akses basis data.
+ Pastikan bahwa backup dan snapshot dienkripsi saat istirahat.
+ Pantau akses basis data.
+ Hindari grup akses yang tidak terbatas.
+ Tingkatkan notifikasi Anda dengan [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html).
+ Pantau kepatuhan kebijakan secara teratur.

## Epik
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-epics"></a>

### Unduh sertifikat tepercaya dan impor ke toko kepercayaan Anda
<a name="download-a-trusted-certificate-and-import-it-into-your-trust-store"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Muat sertifikat tepercaya ke komputer Anda. | Untuk menambahkan sertifikat ke toko Otoritas Sertifikasi Root Tepercaya untuk komputer Anda, ikuti langkah-langkah berikut. (Instruksi ini menggunakan Window Server sebagai contoh.)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) | DevOps insinyur, insinyur migrasi, DBA | 

### Paksa koneksi SSL
<a name="force-ssl-connections"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup parameter dan atur parameter rds.force\$1ssl. | Jika instance PostgreSQL DB memiliki grup parameter kustom, edit grup parameter dan ubah ke 1. `rds.force_ssl`Jika instans DB menggunakan grup parameter default yang belum `rds.force_ssl` diaktifkan, buat grup parameter baru. Anda dapat memodifikasi grup parameter baru dengan menggunakan Amazon RDS API atau secara manual seperti pada petunjuk berikut.Untuk membuat grup parameter baru:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html)Untuk mengaitkan grup parameter dengan instance PostgreSQL DB Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html)Untuk informasi selengkapnya, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html). | DevOps insinyur, insinyur migrasi, DBA | 
| Memaksa koneksi SSL. | Connect ke instans Amazon RDS for PostgreSQL DB. Upaya koneksi yang tidak menggunakan SSL ditolak dengan pesan kesalahan. Untuk informasi selengkapnya, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Requiring). | DevOps insinyur, insinyur migrasi, DBA | 

### Instal ekstensi SSL
<a name="install-ssl-extension"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal ekstensi SSL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html)Untuk informasi selengkapnya, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html). | DevOps insinyur, insinyur migrasi, DBA | 

### Konfigurasikan klien PostgreSQL Anda untuk SSL
<a name="configure-your-postgresql-client-for-ssl"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan klien untuk SSL. | Dengan menggunakan SSL, Anda dapat memulai server PostgreSQL dengan dukungan untuk koneksi terenkripsi yang menggunakan protokol TLS. Server mendengarkan koneksi standar dan SSL pada port TCP yang sama, dan bernegosiasi dengan klien penghubung apakah akan menggunakan SSL. Secara default, ini adalah opsi klien.Jika Anda menggunakan klien psql:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html)Untuk klien PostgreSQL lainnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html)Tinjau halaman berikut untuk klien ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) | DevOps insinyur, insinyur migrasi, DBA | 

## Pemecahan masalah
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Tidak dapat mengunduh sertifikat SSL. | Periksa koneksi Anda ke situs web, dan coba lagi unduh sertifikat ke komputer lokal Anda. | 

## Sumber daya terkait
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-resources"></a>
+ [Amazon RDS untuk dokumentasi PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Menggunakan SSL dengan instance PostgreSQL DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html) (dokumentasi Amazon RDS)
+ [ TCP/IP Koneksi Aman dengan SSL (dokumentasi](https://www.postgresql.org/docs/9.1/ssl-tcp.html) PostgreSQL)
+ [Menggunakan SSL (dokumentasi](https://jdbc.postgresql.org/documentation/ssl/) JDBC)

# 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.

# Menerapkan penandaan otomatis database Amazon RDS saat diluncurkan
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch"></a>

*Susanne Kangnoh dan Archit Mathur, Amazon Web Services*

## Ringkasan
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-summary"></a>

Amazon Relational Database Service (Amazon RDS) adalah layanan web yang memudahkan penyiapan, pengoperasian, dan skala database relasional di Amazon Web Services (AWS) Cloud. Layanan ini menyediakan kapasitas yang hemat biaya dan dapat diubah ukurannya untuk basis data relasional standar industri serta mengelola tugas administrasi basis data umum.

Anda dapat menggunakan penandaan untuk mengkategorikan sumber daya AWS Anda dengan berbagai cara. Penandaan basis data relasional berguna ketika Anda memiliki banyak sumber daya di akun Anda dan Anda ingin dengan cepat mengidentifikasi sumber daya tertentu berdasarkan tag. Anda dapat menggunakan tag Amazon RDS untuk menambahkan metadata kustom ke instans RDS DB Anda. Tag terdiri dari kunci dan nilai yang ditentukan pengguna. Kami menyarankan Anda membuat kumpulan tag yang konsisten untuk memenuhi persyaratan organisasi Anda.

Pola ini menyediakan CloudFormation template AWS untuk membantu Anda memantau dan menandai instans RDS DB. Template membuat CloudWatch acara Amazon Events yang mengawasi acara AWS CloudTrail **Create DBInstance**. (CloudTrail menangkap panggilan API untuk Amazon RDS sebagai acara.) Saat mendeteksi peristiwa ini, ia memanggil fungsi AWS Lambda yang secara otomatis menerapkan kunci tag dan nilai yang Anda tentukan. Template juga mengirimkan pemberitahuan bahwa instance telah diberi tag, dengan menggunakan Amazon Simple Notification Service (Amazon SNS).

## Prasyarat dan batasan
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Bucket Amazon Simple Storage Service (Amazon S3) untuk mengunggah kode Lambda.
+ Alamat email tempat Anda ingin menerima pemberitahuan penandaan.

**Batasan**
+ Solusinya mendukung CloudTrail **Buat DBInstance** acara. Itu tidak membuat pemberitahuan untuk acara lainnya.

## Arsitektur
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-architecture"></a>

**Arsitektur alur kerja**

![\[Workflow diagram showing Layanan AWS interaction for RDS instance creation and notification.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5541bc1e-e00f-4b5a-94b7-bb1808b5591a/images/ec0bcf92-f986-4af3-bfe7-d2c5e04051c5.png)


 

**Otomatisasi dan skala**
+ Anda dapat menggunakan CloudFormation template AWS beberapa kali untuk Wilayah dan akun AWS yang berbeda. Anda perlu menjalankan template hanya sekali di setiap Wilayah atau akun.

## Alat
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-tools"></a>

**Layanan AWS**
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) — AWS CloudTrail adalah layanan AWS yang membantu Anda dalam tata kelola, kepatuhan, serta audit operasional dan risiko akun AWS Anda. Tindakan yang diambil oleh pengguna, peran, atau layanan AWS dicatat sebagai peristiwa di CloudTrail. 
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — Amazon CloudWatch Events menghadirkan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan sumber daya AWS. CloudWatch Peristiwa menjadi sadar akan perubahan operasional saat terjadi dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk merespons lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi yang mendukung kode berjalan tanpa perlu menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel yang dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan danau data.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) adalah layanan web yang memungkinkan aplikasi, pengguna akhir, dan perangkat untuk langsung mengirim dan menerima pemberitahuan dari cloud. 

**Kode**

Pola ini mencakup lampiran dengan dua file:
+ `index.zip`adalah file terkompresi yang menyertakan kode Lambda untuk pola ini.
+ `rds.yaml`adalah CloudFormation template yang menyebarkan kode Lambda.

Lihat bagian *Epics* untuk informasi tentang cara menggunakan file-file ini.

## Epik
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-epics"></a>

### Terapkan kode Lambda
<a name="deploy-the-lambda-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah kode ke bucket S3. | Buat bucket S3 baru atau gunakan bucket S3 yang sudah ada untuk mengunggah `index.zip` file terlampir (kode Lambda). Bucket ini harus berada di Wilayah AWS yang sama dengan sumber daya (instans RDS DB) yang ingin Anda pantau. | Arsitek awan | 
| Menyebarkan CloudFormation template. | Buka konsol Cloudformation di Wilayah AWS yang sama dengan bucket S3, dan terapkan `rds.yaml` file yang disediakan di lampiran. Dalam epik berikutnya, berikan nilai untuk parameter template. | Arsitek awan | 

### Lengkapi parameter dalam CloudFormation template
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Berikan nama bucket S3. | Masukkan nama bucket S3 yang Anda buat atau pilih di epik pertama. Bucket S3 ini berisi file.zip untuk kode Lambda dan harus berada di Wilayah AWS yang sama dengan CloudFormation template dan instans RDS DB yang ingin Anda pantau. | Arsitek awan | 
| Berikan kunci S3. | Berikan lokasi file kode Lambda .zip di bucket S3 Anda, tanpa garis miring di depan (misalnya, atau). `index.zip` `controls/index.zip` | Arsitek awan | 
| Berikan alamat email. | Berikan alamat email aktif tempat Anda ingin menerima pemberitahuan pelanggaran. | Arsitek awan | 
| Tentukan tingkat logging. | Tentukan tingkat logging dan verbositas. `Info`menunjuk pesan informasi rinci tentang kemajuan aplikasi dan harus digunakan hanya untuk debugging. `Error`menunjuk peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan. `Warning`menunjuk situasi yang berpotensi berbahaya. | Arsitek awan | 
| Masukkan kunci tag dan nilai untuk instans RDS DB Anda. | Masukkan kunci tag dan nilai yang diperlukan yang ingin Anda terapkan secara otomatis ke instance RDS. Untuk informasi selengkapnya, lihat [Menandai resource Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) dalam dokumentasi AWS. | Arsitek awan | 

### Konfirmasi langganan.
<a name="confirm-the-subscription"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasikan langganan email. | Ketika CloudFormation template berhasil digunakan, ia mengirimkan pesan email berlangganan ke alamat email yang Anda berikan. Untuk menerima pemberitahuan saat instans Anda ditandai, Anda harus mengonfirmasi langganan email ini. | Arsitek awan | 

## Sumber daya terkait
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-related-resources"></a>
+ [Membuat ember](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) (dokumentasi Amazon S3)
+ [Menandai sumber daya Amazon RDS (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) Amazon Aurora)
+ [Mengunggah objek](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) (dokumentasi Amazon S3)
+ [Membuat aturan CloudWatch Peristiwa yang memicu panggilan AWS API menggunakan AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) ( CloudWatch dokumentasi Amazon)

## Lampiran
<a name="attachments-5541bc1e-e00f-4b5a-94b7-bb1808b5591a"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/5541bc1e-e00f-4b5a-94b7-bb1808b5591a/attachments/attachment.zip)

# Perkirakan biaya tabel DynamoDB untuk kapasitas sesuai permintaan
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Ringkasan
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-summary"></a>

[Amazon DynamoDB](https://aws.amazon.com/dynamodb/) adalah database transaksional NoSQL yang menyediakan latensi milidetik satu digit bahkan pada skala petabyte. Penawaran tanpa server Amazon Web Services (AWS) ini semakin populer karena kinerja dan skalabilitasnya yang konsisten.  Anda tidak perlu menyediakan infrastruktur yang mendasarinya. Meja tunggal Anda bisa tumbuh hingga petabyte.

Dengan mode kapasitas sesuai permintaan, Anda membayar per permintaan untuk data yang dibaca dan ditulis bahwa aplikasi Anda bekerja di tabel. Biaya AWS didasarkan pada akumulasi unit permintaan baca (RRUs) dan unit permintaan tulis (WRUs) dalam sebulan. DynamoDB memantau ukuran meja Anda terus menerus sepanjang bulan untuk menentukan biaya penyimpanan Anda. Ini mendukung pencadangan berkelanjutan dengan point-in-time-recovery (PITR). DynamoDB memantau ukuran tabel berkemampuan PITR Anda secara terus menerus sepanjang bulan untuk menentukan biaya cadangan Anda.

Untuk memperkirakan biaya DynamoDB untuk sebuah proyek, penting untuk menghitung berapa banyak RRU, WRU, dan penyimpanan yang akan dikonsumsi pada berbagai tahap siklus hidup produk Anda. Untuk estimasi biaya kasar, Anda dapat menggunakan [Kalkulator Harga AWS](https://calculator.aws/#/createCalculator/DynamoDB), tetapi Anda harus memberikan perkiraan jumlah RRUs, WRUs, dan persyaratan penyimpanan untuk tabel Anda. Ini bisa sulit untuk diperkirakan pada awal proyek. AWS Pricing Calculator tidak mempertimbangkan tingkat pertumbuhan data atau ukuran item, dan tidak mempertimbangkan jumlah pembacaan dan penulisan untuk tabel dasar dan indeks sekunder global (GSIs) secara terpisah. Untuk menggunakan Kalkulator Harga AWS, Anda harus memperkirakan semua aspek tersebut untuk mengasumsikan angka rata-rata untuk WRU, RRU, dan ukuran penyimpanan untuk mendapatkan estimasi biaya Anda.

Pola ini menyediakan mekanisme dan template Microsoft Excel yang dapat digunakan kembali untuk memperkirakan faktor biaya DynamoDB dasar, seperti biaya tulis, baca, penyimpanan, cadangan dan pemulihan, untuk mode kapasitas sesuai permintaan. Ini lebih terperinci daripada AWS Pricing Calculator, dan mempertimbangkan tabel dasar dan GSIs persyaratan secara independen. Ini juga mempertimbangkan tingkat pertumbuhan data item bulanan dan perkiraan biaya selama tiga tahun.

## Prasyarat dan batasan
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-prereqs"></a>

**Prasyarat**
+ Pengetahuan dasar tentang desain model data DynamoDB dan DynamoDB
+ [Pengetahuan dasar tentang harga DynamoDB, WRU, RRU, penyimpanan, dan pencadangan dan pemulihan DynamoDB (untuk informasi lebih lanjut, lihat Harga untuk Kapasitas Sesuai Permintaan)](https://aws.amazon.com/dynamodb/pricing/on-demand/)
+ Pengetahuan tentang data, model data, dan ukuran item Anda di DynamoDB
+ Pengetahuan tentang DynamoDB GSIs

**Batasan**
+ Template memberi Anda perkiraan perhitungan, tetapi tidak sesuai untuk semua konfigurasi. Untuk mendapatkan perkiraan yang lebih akurat, Anda harus mengukur ukuran item individual untuk setiap item di tabel dasar dan GSIs.
+ Untuk perkiraan yang lebih akurat, Anda harus mempertimbangkan jumlah penulisan yang diharapkan (menyisipkan, memperbarui, dan menghapus) dan membaca untuk setiap item dalam satu bulan rata-rata.
+ Pola ini mendukung estimasi hanya biaya tulis, baca, penyimpanan, dan cadangan dan pemulihan untuk beberapa tahun ke depan berdasarkan asumsi pertumbuhan data tetap.

## Alat
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-tools"></a>

**Layanan AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

**Alat lainnya**
+ [AWS Pricing Calculator](https://calculator.aws/#/createCalculator/DynamoDB) adalah alat perencanaan berbasis web yang dapat Anda gunakan untuk membuat perkiraan kasus penggunaan AWS Anda.

## Praktik terbaik
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-best-practices"></a>

Untuk membantu menjaga biaya tetap rendah, pertimbangkan praktik terbaik desain DynamoDB berikut.
+ [Desain kunci partisi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-uniform-load.html) - Gunakan kunci partisi kardinalitas tinggi untuk mendistribusikan beban secara merata.
+ [Pola desain daftar kedekatan](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html) - Gunakan pola desain ini untuk mengelola one-to-many dan many-to-many hubungan.
+ [Indeks jarang](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-general-sparse-indexes.html) — Gunakan indeks jarang untuk Anda. GSIs Saat Anda membuat GSI, Anda menentukan kunci partisi dan secara opsional kunci pengurutan. Hanya item di tabel dasar yang berisi kunci partisi GSI yang sesuai yang muncul di indeks jarang. Ini membantu untuk tetap GSIs lebih kecil.
+ [Index overloading](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html) — Gunakan GSI yang sama untuk mengindeks berbagai jenis item.
+ [GSI menulis sharding](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-gsi-sharding.html) — Shard dengan bijak untuk mendistribusikan data di seluruh partisi untuk kueri yang efisien dan lebih cepat.
+ [Item besar](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-use-s3-too.html) — Simpan hanya metadata di dalam tabel, simpan gumpalan di Amazon S3, dan simpan referensi di DynamoDB. Pecahkan item besar menjadi beberapa item, dan indeks secara efisien dengan menggunakan tombol sortir.

Untuk praktik terbaik desain lainnya, lihat Panduan Pengembang [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html).

## Epik
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-epics"></a>

### Ekstrak informasi item dari model data DynamoDB Anda
<a name="extract-item-information-from-your-dynamodb-data-model"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan ukuran item. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | Insinyur data | 
| Perkirakan biaya tulis. | Untuk memperkirakan biaya tulis dalam mode kapasitas sesuai permintaan, pertama-tama Anda harus mengukur berapa banyak yang WRUs akan dikonsumsi dalam sebulan. Untuk itu, Anda perlu mempertimbangkan faktor-faktor berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html)Untuk informasi selengkapnya, lihat bagian *Informasi tambahan*. | Insinyur data | 
| Perkirakan biaya baca. | Untuk memperkirakan biaya baca dalam mode sesuai permintaan, pertama-tama Anda harus mengukur berapa banyak yang RRUs akan dikonsumsi dalam sebulan. Untuk itu, Anda perlu mempertimbangkan faktor-faktor berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | Insinyur data, Pengembang aplikasi | 
| Perkirakan ukuran dan biaya penyimpanan. | Pertama, perkirakan kebutuhan penyimpanan bulanan rata-rata berdasarkan ukuran item Anda di tabel. Kemudian hitung biaya penyimpanan dengan mengalikan ukuran penyimpanan dengan harga penyimpanan per GB untuk Wilayah AWS Anda. Jika Anda sudah memasukkan data untuk memperkirakan biaya penulisan, Anda tidak perlu memasukkannya lagi untuk menghitung ukuran penyimpanan. Jika tidak, untuk memperkirakan ukuran penyimpanan, Anda perlu mempertimbangkan faktor-faktor berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | Insinyur data | 

### Masukkan informasi item dan objek di template Excel
<a name="enter-the-item-and-object-information-in-the-excel-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh templat Excel dari bagian Lampiran, dan sesuaikan dengan tabel kasus penggunaan Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | Insinyur data | 
| Masukkan informasi dalam template Excel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html)Dalam template, ada tiga item, atau entitas: informasi, metadata, dan hubungan. Ada dua GSIs. Untuk kasus penggunaan Anda, jika Anda membutuhkan lebih banyak item, buat baris baru. Jika Anda membutuhkan lebih banyak GSIs, salin blok GSI yang ada, dan tempel untuk membuat blok GSI sebanyak yang Anda butuhkan. Kemudian sesuaikan perhitungan kolom SUM dan TOTAL. | Insinyur data | 

## Sumber daya terkait
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-resources"></a>

**Referensi**
+ [Harga Amazon DynamoDB untuk kapasitas sesuai permintaan](https://aws.amazon.com/dynamodb/pricing/on-demand/)
+ [Kalkulator Harga AWS untuk DynamoDB](https://calculator.aws/#/createCalculator/DynamoDB)
+ [Praktik terbaik untuk merancang dan membuat arsitektur dengan DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html)
+ [Mulai menggunakan DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html)

**Panduan dan pola**
+ [Pemodelan data dengan Amazon DynamoDB](https://docs.aws.amazon.com/prescriptive-guidance/latest/dynamodb-data-modeling/)
+ [Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB](https://apg-library.amazonaws.com/content/9b74399d-9655-47ee-b9b3-de46b65bc4e3)

## Informasi tambahan
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-additional"></a>

**Tulis contoh perhitungan biaya**

Desain model data DynamoDB menunjukkan tiga item untuk suatu produk, dan ukuran item rata-rata 4 KB. Ketika Anda menambahkan produk baru ke dalam tabel dasar DynamoDB, ia mengkonsumsi jumlah item\$1 (ukuran item/1 KB unit tulis) = 3 \$1 (4/1) = 12 WRU. Dalam contoh ini, untuk menulis 1 KB, produk mengkonsumsi 1 WRU. 

**Baca contoh perhitungan biaya**

Untuk mendapatkan estimasi RRU, pertimbangkan rata-rata berapa kali setiap item akan dibaca dalam sebulan. Misalnya, item Informasi akan dibaca, rata-rata, 10 kali dalam sebulan, dan item metadata akan dibaca dua kali, dan item hubungan akan dibaca lima kali. Dalam contoh template, total RRU untuk semua komponen = jumlah komponen baru yang dibuat setiap bulan\$1 RRU per komponen per bulan = 10 juta \$1 17 RRU = 170 juta RRU setiap bulan.

Setiap bulan, hal-hal baru (komponen atau produk akan ditambahkan, dan jumlah total produk akan bertambah seiring waktu. Jadi, persyaratan RRU juga akan tumbuh seiring waktu.
+ Untuk RRU bulan pertama, konsumsi akan menjadi 170 juta.
+ Untuk bulan kedua, konsumsi RRU akan menjadi 2 \$1 170 juta = 340 juta.
+ Untuk bulan ketiga konsumsi RRU akan menjadi 3 \$1 170 juta = 510 juta.

Grafik berikut menunjukkan konsumsi RRU bulanan dan perkiraan biaya.

![\[Konsumsi RRU meningkat lebih tajam daripada biaya.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/1797b48f-a183-4f25-811f-44921c3a48ee/images/3505bfc8-694d-4acc-8585-cd71258fa315.png)


Perhatikan bahwa harga dalam grafik hanya untuk ilustrasi. Untuk membuat prakiraan akurat untuk kasus penggunaan Anda, periksa halaman harga AWS, dan gunakan harga tersebut di lembar Excel.

**Contoh perhitungan biaya penyimpanan, pencadangan, dan pemulihan**

DynamoDB penyimpanan, backup dan restore semuanya terhubung satu sama lain. Backup terhubung langsung dengan penyimpanan, dan pemulihan terhubung langsung dengan ukuran cadangan. Ketika ukuran tabel meningkat, biaya penyimpanan, cadangan, dan pemulihan yang sesuai akan meningkat secara proporsional.

*Ukuran dan biaya penyimpanan*

Biaya penyimpanan akan meningkat seiring waktu berdasarkan tingkat pertumbuhan data Anda. Misalnya, asumsikan bahwa ukuran rata-rata komponen atau produk dalam tabel dasar dan 11 KB, dan GSIs 10 juta produk baru akan ditambahkan setiap bulan ke dalam tabel database Anda. Dalam hal ini, ukuran tabel DynamoDB Anda akan bertambah (11 KB\$1 10 juta) /1024/1024 = 105 GB per bulan. Pada bulan pertama, ukuran penyimpanan meja Anda akan menjadi 105 GB, pada bulan kedua akan menjadi 105\$1105 = 210 GBs, dan seterusnya.
+ Untuk bulan pertama, biaya penyimpanan akan menjadi 105 GB\$1 harga penyimpanan per GB untuk Wilayah AWS Anda. 
+ Untuk bulan kedua, biaya penyimpanan akan menjadi 210 GB \$1 harga penyimpanan per GB untuk Wilayah Anda.
+ Untuk bulan ketiga, biaya penyimpanan akan menjadi 315 GB\$1 harga penyimpanan per GB untuk Wilayah Anda.

Untuk ukuran dan biaya penyimpanan selama tiga tahun ke depan, lihat bagian *Ukuran dan perkiraan penyimpanan*.

*Biaya Backup*

Biaya Backup akan meningkat seiring waktu berdasarkan tingkat pertumbuhan data Anda. Saat Anda mengaktifkan pencadangan berkelanjutan dengan point-in-time-recovery (PITR), biaya pencadangan berkelanjutan didasarkan pada penyimpanan rata-rata GB-bulan. Dalam satu bulan kalender, ukuran cadangan rata-rata akan sama dengan ukuran penyimpanan tabel Anda, meskipun ukuran sebenarnya bisa sedikit berbeda. Karena produk baru akan ditambahkan setiap bulan, ukuran penyimpanan total dan ukuran cadangan akan bertambah seiring waktu. Misalnya, untuk bulan pertama, ukuran cadangan rata-rata 105 GB bisa tumbuh menjadi 210 GB untuk bulan kedua.
+ Untuk bulan pertama, biaya pencadangan akan menjadi 105 GB-bulan\$1 harga pencadangan berkelanjutan per GB untuk Wilayah AWS Anda. 
+ Untuk bulan kedua, biaya cadangan akan menjadi 210 GB-bulan\$1 harga cadangan berkelanjutan per GB untuk Wilayah Anda.
+ Untuk bulan ketiga, biaya cadangan akan menjadi 315 GB-bulan\$1 harga cadangan berkelanjutan per GB untuk Wilayah Anda.
+ dan, seterusnya

Biaya cadangan termasuk dalam grafik di bagian *Ukuran penyimpanan dan perkiraan biaya*.

*Biaya pemulihan*

Saat Anda mengambil cadangan terus menerus dengan PITR diaktifkan, biaya operasi pemulihan didasarkan pada ukuran pemulihan. Setiap kali Anda memulihkan, Anda membayar berdasarkan gigabyte data yang dipulihkan. Jika ukuran meja Anda besar dan Anda melakukan pemulihan beberapa kali dalam sebulan, itu akan mahal.

Untuk memperkirakan biaya pemulihan, contoh ini mengasumsikan bahwa Anda melakukan pemulihan PITR satu kali setiap bulan pada akhir bulan. Contoh menggunakan ukuran cadangan rata-rata bulanan sebagai ukuran data pemulihan untuk bulan itu. Untuk bulan pertama, ukuran cadangan rata-rata adalah 105 GB, dan untuk pemulihan pada akhir bulan, ukuran data pemulihan akan menjadi 105 GB. Untuk bulan kedua, itu akan menjadi 210 GBs, dan seterusnya.

Biaya pemulihan akan meningkat seiring waktu berdasarkan tingkat pertumbuhan data Anda.
+ Untuk bulan pertama, biaya pemulihan akan menjadi 105 GB\$1 harga pemulihan per GB untuk Wilayah AWS Anda. 
+ Untuk bulan kedua, biaya pemulihan akan menjadi 210 GB \$1 harga pemulihan per GB untuk Wilayah Anda.
+ Untuk bulan ketiga, biaya pemulihan akan menjadi 315 GB\$1 harga pemulihan per GB untuk Wilayah Anda.

Untuk informasi selengkapnya, lihat tab Penyimpanan, pencadangan, dan pemulihan di templat Excel dan grafik di bagian berikut.

*Ukuran penyimpanan dan perkiraan biaya*

Dalam template, ukuran penyimpanan aktual yang dapat ditagih dihitung dengan mengurangi tingkat gratis 25 GB per bulan untuk kelas tabel Standar. Di lembar, Anda akan mendapatkan grafik peramalan yang dipecah menjadi nilai bulanan.

Bagan contoh berikut memperkirakan ukuran penyimpanan bulanan dalam GB, biaya penyimpanan yang dapat ditagih, biaya cadangan sesuai permintaan, dan biaya pemulihan untuk 36 bulan kalender ke depan. Semua biaya dalam USD. Dari grafik, jelas bahwa biaya penyimpanan, cadangan, dan pemulihan meningkat secara proporsional dengan peningkatan ukuran penyimpanan.

![\[Ukuran penyimpanan naik di atas tiga ribu sedangkan biayanya kurang dari seribu.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/1797b48f-a183-4f25-811f-44921c3a48ee/images/fd9f06d0-bc9c-4b4e-8cbd-3e527fe09e88.png)


Perhatikan bahwa harga yang digunakan dalam grafik hanya untuk tujuan ilustrasi. Untuk membuat harga yang akurat untuk kasus penggunaan Anda, periksa halaman harga AWS, dan gunakan harga tersebut di templat Excel.

## Lampiran
<a name="attachments-1797b48f-a183-4f25-811f-44921c3a48ee"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/1797b48f-a183-4f25-811f-44921c3a48ee/attachments/attachment.zip)

# Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Ringkasan
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-summary"></a>

Amazon DynamoDB adalah database transaksional NoSQL yang menyediakan latensi milidetik satu digit bahkan pada skala petabyte. Penawaran tanpa server yang populer ini AWS memberikan kinerja dan skalabilitas yang konsisten. Anda tidak perlu menyediakan penyimpanan, dan tabel tunggal Anda dapat tumbuh hingga petabyte. 

DynamoDB memantau ukuran meja Anda terus menerus sepanjang bulan untuk menentukan biaya penyimpanan Anda. AWS kemudian menagih Anda untuk ukuran penyimpanan rata-rata dalam gigabyte. Semakin banyak meja Anda tumbuh dari waktu ke waktu, semakin banyak biaya penyimpanan Anda akan tumbuh. Untuk menghitung biaya penyimpanan, Anda dapat menggunakan [Kalkulator AWS Harga](https://calculator.aws/#/createCalculator/DynamoDB), tetapi Anda perlu memberikan perkiraan ukuran tabel Anda, termasuk indeks sekunder global (GSIs), yang sangat sulit diperkirakan pada awal proyek. Juga, Kalkulator AWS Harga tidak mempertimbangkan tingkat pertumbuhan data.

Pola ini menyediakan mekanisme dan template Microsoft Excel yang dapat digunakan kembali untuk menghitung ukuran dan biaya penyimpanan DynamoDB. Ini mempertimbangkan persyaratan penyimpanan untuk tabel dasar dan secara GSIs independen. Ini menghitung ukuran penyimpanan dengan mempertimbangkan ukuran item individual Anda dan tingkat pertumbuhan data dari waktu ke waktu. 

Untuk mendapatkan perkiraan, masukkan dua informasi ke dalam template:
+ Ukuran item individu dalam kilobyte untuk tabel dasar dan GSIs
+ Berapa banyak objek atau produk baru yang dapat ditambahkan ke tabel, rata-rata, dalam sebulan, (misalnya, 10 juta)

Template menghasilkan grafik penyimpanan dan perkiraan biaya untuk tiga tahun ke depan, yang ditunjukkan pada contoh berikut.

![\[Garis bawah untuk biaya bergerak naik perlahan dan garis yang lebih tinggi untuk penyimpanan bergerak lebih cepat.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9b74399d-9655-47ee-b9b3-de46b65bc4e3/images/c0436252-cc42-4ea3-ac50-c0455aece39d.png)


 

## Prasyarat dan batasan
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-prereqs"></a>

**Prasyarat**
+ Pengetahuan dasar tentang DynamoDB, termasuk penyimpanan dan harga DynamoDB
+ Pengetahuan tentang data, model data, dan ukuran item Anda di DynamoDB
+ Pengetahuan tentang indeks sekunder global DynamoDB () GSIs

**Batasan**
+ Template memberi Anda perkiraan perhitungan, tetapi tidak sesuai untuk semua konfigurasi. Untuk mendapatkan perkiraan yang lebih akurat, Anda harus mengukur ukuran item individual untuk setiap item di tabel dasar dan GSIs. 
+ Pola ini mendukung estimasi hanya ukuran penyimpanan dan biaya untuk beberapa tahun ke depan berdasarkan asumsi pertumbuhan data tetap.

## Alat
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-tools"></a>

**Layanan AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

**Alat lainnya**
+ [AWS Kalkulator Harga](https://docs.aws.amazon.com/pricing-calculator/latest/userguide/what-is-pricing-calculator.html) adalah alat perencanaan berbasis web yang dapat Anda gunakan untuk membuat perkiraan untuk kasus AWS penggunaan Anda.

## Epik
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-epics"></a>

### Ekstrak informasi item dari model data DynamoDB Anda
<a name="extract-item-information-from-your-ddb-data-model"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan ukuran item. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-storage-costs-for-an-amazon-dynamodb-table.html) | Insinyur data | 
| Dapatkan jumlah objek yang ditambahkan dalam sebulan. | Perkirakan berapa banyak komponen, atau objek, yang akan ditambahkan ke dalam tabel DynamoDB, rata-rata, dalam satu bulan. | Insinyur data | 

### Masukkan informasi item dan objek di template Excel
<a name="enter-the-item-and-object-information-in-the-excel-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan sesuaikan spreadsheet Excel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-storage-costs-for-an-amazon-dynamodb-table.html) | Insinyur data | 
| Masukkan informasi dalam template Excel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-storage-costs-for-an-amazon-dynamodb-table.html) | Insinyur data | 

## Sumber daya terkait
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-resources"></a>
+ [Harga untuk Kapasitas Sesuai Permintaan](https://aws.amazon.com/dynamodb/pricing/on-demand/) untuk Amazon DynamoDB
+ [AWS Kalkulator Harga untuk DynamoDB](https://calculator.aws/#/createCalculator/DynamoDB)

## Informasi tambahan
<a name="estimate-storage-costs-for-an-amazon-dynamodb-table-additional"></a>

Perhatikan bahwa template terlampir hanya memperkirakan ukuran penyimpanan dan biaya untuk kelas tabel penyimpanan Standar. Berdasarkan perkiraan biaya penyimpanan, dan mempertimbangkan ukuran item individu dan tingkat pertumbuhan produk atau objek, Anda dapat memperkirakan hal berikut:
+ Biaya ekspor data
+ Biaya Backup dan Pemulihan
+ Persyaratan penyimpanan data.

**Biaya penyimpanan data Amazon DynamoDB**

DynamoDB memantau ukuran tabel Anda terus menerus untuk menentukan biaya penyimpanan Anda. DynamoDB mengukur ukuran data yang dapat ditagih dengan menambahkan ukuran byte mentah data Anda ditambah overhead penyimpanan per item yang bergantung pada fitur yang telah Anda aktifkan. Untuk informasi selengkapnya, lihat Panduan Pengembang [DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html). 

Harga untuk penyimpanan data tergantung pada kelas tabel Anda. 25 GB pertama yang disimpan setiap bulan gratis jika Anda menggunakan kelas tabel Standar DynamoDB. Untuk informasi selengkapnya tentang biaya penyimpanan untuk kelas tabel Akses Standar dan Jarang Jarang Standar Wilayah AWS, lihat [Harga](https://aws.amazon.com/dynamodb/pricing/on-demand/) untuk Kapasitas Sesuai Permintaan.

## Lampiran
<a name="attachments-9b74399d-9655-47ee-b9b3-de46b65bc4e3"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/9b74399d-9655-47ee-b9b3-de46b65bc4e3/attachments/attachment.zip)

# Perkirakan ukuran mesin Amazon RDS untuk database Oracle dengan menggunakan laporan AWR
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports"></a>

*Abhishek Verma dan Eduardo Valentim, Amazon Web Services*

## Ringkasan
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-summary"></a>

Saat Anda memigrasikan database Oracle ke Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora, menghitung CPU, memori, dan disk I/O untuk database target adalah persyaratan utama. Anda dapat memperkirakan kapasitas database target yang diperlukan dengan menganalisis laporan Oracle Automatic Workload Repository (AWR). Pola ini menjelaskan cara menggunakan laporan AWR untuk memperkirakan nilai-nilai ini.

Basis data Oracle sumber dapat berada di lokasi atau di-host di instans Amazon Elastic Compute Cloud EC2 (Amazon), atau bisa juga berupa Amazon RDS for Oracle DB instans. Basis data target bisa berupa database Amazon RDS atau Aurora.

**catatan**  
Perkiraan kapasitas akan lebih tepat jika mesin database target Anda adalah Oracle. Untuk database Amazon RDS lainnya, ukuran mesin dapat bervariasi karena perbedaan arsitektur database.

Kami menyarankan Anda menjalankan uji kinerja sebelum memigrasikan database Oracle Anda.

## Prasyarat dan batasan
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-prereqs"></a>

**Prasyarat**
+ Lisensi Oracle Database Enterprise Edition dan lisensi Oracle Diagnostics Pack untuk mengunduh laporan AWR.

**Versi produk**
+ Semua edisi Oracle Database untuk versi 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, dan 18c, 19c.
+ Pola ini tidak mencakup Oracle Engineered Systems atau Oracle Cloud Infrastructure (OCI).

## Arsitektur
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-architecture"></a>

**Tumpukan teknologi sumber**

Salah satu dari yang berikut:
+ Database Oracle lokal
+ Database Oracle pada sebuah instance EC2 
+ Instans Amazon RDS for Oracle DB

**Tumpukan teknologi target**
+ Basis data Amazon RDS atau Amazon Aurora apa pun

**Arsitektur target**

Untuk informasi tentang proses migrasi lengkap, lihat pola [Memigrasikan database Oracle ke Aurora PostgreSQL menggunakan AWS DMS dan AWS SCT](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.html).

**Otomatisasi dan skala**

Jika Anda memiliki beberapa database Oracle untuk dimigrasi dan Anda ingin menggunakan metrik kinerja tambahan, Anda dapat mengotomatiskan proses dengan mengikuti langkah-langkah yang dijelaskan dalam posting blog [Instans Amazon RDS](https://aws.amazon.com/blogs/database/right-sizing-amazon-rds-instances-at-scale-based-on-oracle-performance-metrics/) ukuran kanan pada skala berdasarkan metrik kinerja Oracle.

## Alat
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-tools"></a>
+ [Oracle Automatic Workload Repository (AWR)](https://docs.oracle.com/en-us/iaas/performance-hub/doc/awr-report-ui.html) adalah repositori yang dibangun ke dalam database Oracle. Ini secara berkala mengumpulkan dan menyimpan aktivitas sistem dan data beban kerja, yang kemudian dianalisis oleh Automatic Database Diagnostic Monitor (ADDM). AWR mengambil snapshot data kinerja sistem secara berkala (secara default, setiap 60 menit) dan menyimpan informasi (secara default, hingga 8 hari).  Anda dapat menggunakan tampilan dan laporan AWR untuk menganalisis data ini.

## Praktik terbaik
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-best-practices"></a>
+ Untuk menghitung persyaratan sumber daya untuk database target, Anda dapat menggunakan satu laporan AWR, beberapa laporan AWR, atau tampilan AWR dinamis. Kami menyarankan Anda menggunakan beberapa laporan AWR selama periode beban puncak untuk memperkirakan sumber daya yang diperlukan untuk menangani beban puncak tersebut. Selain itu, tampilan dinamis memberikan lebih banyak titik data yang membantu Anda menghitung kebutuhan sumber daya dengan lebih tepat. 
+ Anda harus memperkirakan IOPS hanya untuk database yang Anda rencanakan untuk dimigrasi, bukan untuk database dan proses lain yang menggunakan disk.
+ Untuk menghitung berapa banyak yang I/O digunakan oleh database, jangan gunakan informasi di bagian Load Profile pada laporan AWR. Gunakan bagian I/O Profil sebagai gantinya, jika tersedia, atau lewati ke bagian Statistik Aktivitas Instance dan lihat nilai total untuk operasi baca dan tulis fisik.
+ Saat Anda memperkirakan pemanfaatan CPU, sebaiknya gunakan metode metrik basis data alih-alih statistik sistem operasi (OS), karena didasarkan pada CPU yang hanya digunakan oleh database. (Statistik OS juga mencakup penggunaan CPU oleh proses lain.) Anda juga harus memeriksa rekomendasi terkait CPU dalam laporan ADDM untuk meningkatkan kinerja setelah migrasi.
+ Pertimbangkan batas I/O throughput―Amazon Elastic Block Store (Amazon EBS) throughput dan throughput jaringan―untuk ukuran instans tertentu saat Anda menentukan jenis instans yang tepat.
+ Jalankan uji kinerja sebelum migrasi untuk memvalidasi ukuran mesin.

## Epik
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-epics"></a>

### Buat laporan AWR
<a name="create-an-awr-report"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan laporan AWR. | Untuk mengaktifkan laporan, ikuti instruksi dalam [dokumentasi Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/18/tgdba/gathering-database-statistics.html#GUID-26D359FA-F809-4444-907C-B5AFECD9AE29). | DBA | 
| Periksa periode retensi. | Untuk memeriksa periode retensi laporan AWR, gunakan kueri berikut.<pre>SQL> SELECT snap_interval,retention FROM dba_hist_wr_control;</pre> | DBA | 
| Hasilkan snapshot. | Jika interval snapshot AWR tidak cukup terperinci untuk menangkap lonjakan beban kerja puncak, Anda dapat membuat laporan AWR secara manual. Untuk menghasilkan snapshot AWR manual, gunakan kueri berikut.<pre>SQL> EXEC dbms_workload_repository.create_snapshot;</pre> | DBA | 
| Periksa snapshot terbaru. | Untuk memeriksa snapshot AWR terbaru, gunakan kueri berikut.<pre>SQL> SELECT snap_id, to_char(begin_interval_time,'dd/MON/yy hh24:mi') Begin_Interval,<br /> to_char(end_interval_time,'dd/MON/yy hh24:mi') End_Interval<br /> FROM dba_hist_snapshot<br /> ORDER BY 1;</pre> | DBA | 

### Perkirakan I/O persyaratan disk
<a name="estimate-disk-i-o-requirements"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih metode. | IOPS adalah ukuran standar operasi input dan output per detik pada perangkat penyimpanan, dan mencakup operasi baca dan tulis. Jika Anda memigrasikan database lokal ke AWS, Anda perlu menentukan disk puncak yang I/O digunakan oleh database. Anda dapat menggunakan metode berikut untuk memperkirakan disk I/O untuk database target Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Langkah-langkah berikut menjelaskan keempat metode ini. | DBA | 
| Opsi 1: Gunakan profil beban. | Tabel berikut menunjukkan contoh bagian Load Profile dari laporan AWR.Untuk informasi yang lebih akurat, kami sarankan Anda menggunakan opsi 2 (profil I/O) atau opsi 3 (statistik aktivitas instance) alih-alih profil pemuatan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Berdasarkan informasi ini, Anda dapat menghitung IOPs dan throughput sebagai berikut:*IOPS = Baca I/O permintaan: \$1 I/O Permintaan tulis = 3,586,8 \$1 574,7 = 4134,5**Throughput = Bacaan fisik (blok) \$1Tulis fisik (blok) = 13,575,1 \$1 3,467,3 = 17,042,4*Karena ukuran blok di Oracle adalah 8 KB, Anda dapat menghitung total throughput sebagai berikut:*Total throughput dalam MB adalah 17042.4 \$1 8 \$1 1024/1024/1024 = 133,2 MB*Jangan gunakan profil pemuatan untuk memperkirakan ukuran instans. Ini tidak setepat statistik aktivitas instance atau I/O profil. | DBA | 
| Opsi 2: Gunakan statistik aktivitas instance. | Jika Anda menggunakan versi Oracle Database sebelum 12c, Anda dapat menggunakan bagian Statistik Aktivitas Instance dari laporan AWR untuk memperkirakan IOPS dan throughput. Tabel berikut menunjukkan contoh bagian ini.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Berdasarkan informasi ini, Anda dapat menghitung total IOPS dan throughput sebagai berikut:*Total IOPS = 3,610.28 \$1 757.11 = 4367**Total Mbps = 114,482,426.26 \$1 36,165,631.84 = 150648058.1/1024/1024 = 143 Mbps* | DBA | 
| Opsi 3: Gunakan I/O profil. | Dalam Oracle Database 12c, laporan AWR mencakup bagian I/O Profil yang menyajikan semua informasi dalam satu tabel dan memberikan data yang lebih akurat tentang kinerja database. Tabel berikut menunjukkan contoh bagian ini.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Tabel ini memberikan nilai-nilai berikut untuk throughput dan total IOPS:*Throughput = 143 MBPS (dari baris kelima, berlabel Total, kolom kedua)**IOPS = 4.367.4 (dari baris pertama, berlabel Total Permintaan, kolom kedua)* | DBA | 
| Opsi 4: Gunakan tampilan AWR. | Anda dapat melihat IOPS dan informasi throughput yang sama dengan menggunakan tampilan AWR. Untuk mendapatkan informasi ini, gunakan kueri berikut: <pre>break on report<br /> compute sum of Value on report<br /> select METRIC_NAME,avg(AVERAGE) as "Value"<br /> from dba_hist_sysmetric_summary<br /> where METRIC_NAME in ('Physical Read Total IO Requests Per Sec','Physical Write Total IO Requests Per Sec')<br /> group by metric_name;</pre> | DBA | 
|   | Per Detik | Per Transaksi | Per Exec | Per Panggilan | 
| --- |--- |--- |--- |--- |
| **Waktu DB:** | 26.6 | 0,2 | 0.00 | 0,02 | 
| **CPU DB:** | 18.0 | 0,1 | 0.00 | 0,01 | 
| **Latar Belakang CPU:** | 0,2 | 0.0 | 0.00 | 0.00 | 
| **Ulangi ukuran (byte):** | 2,458.539.9 | 17,097,5 |   |   | 
| **Bacaan logis (blok):** | 3,371,931,5 | 23,449,6 |   |   | 
| **Perubahan blok:** | 21,643,5 | 150,5 |   |   | 
| **Bacaan fisik (blok):** | 13,575,1 | 94.4 |   |   | 
| **Tulis fisik (blok):** | 3,467,3 | 24.1 |   |   | 
| **Baca permintaan IO:** | 3,586.8 | 24.9 |   |   | 
| **Tulis permintaan IO:** | 574,7 | 4.0 |   |   | 
| **Baca IO (MB):** | 106.1 | 0,7 |   |   | 
| **Tulis IO (MB):** | 27.1 | 0,2 |   |   | 
| **Baris pemindaian IM:** | 0.0 | 0.0 |   |   | 
| **Sesi Logis Baca IM:** |   |   |   |   | 
| **Panggilan pengguna:** | 1,245,7 | 8.7 |   |   | 
| **Parses (SQL):** | 4,626,2 | 32.2 |   |   | 
| **Parse keras (SQL):** | 8.9 | 0,1 |   |   | 
| **Area Kerja SQL (MB):** | 824.9 | 5.7 |   |   | 
| **Logon:** | 1.7 | 0.0 |   |   | 
| **Mengeksekusi (SQL):** | 136,656,5 | 950,4 |   |   | 
| **Rollback:** | 22.9 | 0,2 |   |   | 
| **Transaksi:** | 143,8 |   |   |   | 
| Statistik | Total | per detik | per Trans | 
| --- |--- |--- |--- |
| **permintaan IO total baca fisik** | 2,547,333,217 | 3,610.28 | 25.11 | 
| **total byte baca fisik** | 80,776,296,124,928 | 114,482,426,26 | 796,149.98 | 
| **tulis fisik total permintaan IO** | 534,198,208 | 757.11 | 5.27 | 
| **fisik menulis total byte** | 25.517,678,849,024 | 36,165,631.84 | 251,508.18 | 
|   | Baca\$1Tulis Per Detik | Baca per Detik | Menulis Per Detik | 
| --- |--- |--- |--- |
| **Jumlah Permintaan:** | 4,367,4 | 3,610.3 | 757.1 | 
| **Permintaan Database:** | 4,161,5 | 3,586.8 | 574,7 | 
| **Permintaan yang Dioptimalkan:** | 0.0 | 0.0 | 0.0 | 
| **Permintaan Ulangi:** | 179.3 | 2.8 | 176.6 | 
| **Jumlah (MB):** | 143,7 | 109.2 | 34,5 | 
| **Database (MB):** | 133.1 | 106.1 | 27.1 | 
| **Total yang Dioptimalkan (MB):** | 0.0 | 0.0 | 0.0 | 
| **Ulangi (MB):** | 7.6 | 2.7 | 4.9 | 
| **Database (blok):** | 17,042,4 | 13,575,1 | 3,467,3 | 
| **Melalui Buffer Cache (blok):** | 5,898,5 | 5,360,9 | 537,6 | 
| **Langsung (blok):** | 11,143,9 | 8,214,2 | 2,929,7 | 

### Perkirakan persyaratan CPU
<a name="estimate-cpu-requirements"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih metode. | Anda dapat memperkirakan CPU yang diperlukan untuk database target dengan tiga cara:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Jika Anda melihat inti yang digunakan, kami sarankan Anda menggunakan metode metrik database alih-alih statistik OS, karena didasarkan pada CPU yang hanya digunakan oleh database yang Anda rencanakan untuk dimigrasikan. (Statistik OS juga mencakup penggunaan CPU oleh proses lain.) Anda juga harus memeriksa rekomendasi terkait CPU dalam laporan ADDM untuk meningkatkan kinerja setelah migrasi.Anda juga dapat memperkirakan persyaratan berdasarkan generasi CPU. Jika Anda menggunakan generasi CPU yang berbeda, Anda dapat memperkirakan CPU yang diperlukan dari database target dengan mengikuti instruksi di whitepaper [Mengungkap Jumlah v CPUs untuk Kinerja Beban Kerja Optimal](https://d1.awsstatic.com/whitepapers/Demystifying_vCPUs.df200b766578b75009ad8d15c72e493d6408c68a.pdf). | DBA | 
| Opsi 1: Perkirakan persyaratan berdasarkan inti yang tersedia. | Dalam laporan AWR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Anda dapat memperkirakan core yang tersedia dengan dua cara:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)**Untuk memperkirakan core yang tersedia dengan menggunakan perintah OS**Gunakan perintah berikut untuk menghitung inti dalam prosesor.<pre>$ cat /proc/cpuinfo |grep "cpu cores"|uniq<br />cpu cores    : 4<br />cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l </pre>Gunakan perintah berikut untuk menghitung soket di prosesor.<pre>grep "physical id" /proc/cpuinfo | sort -u<br />  physical id     : 0<br />  physical id     : 1</pre>  Kami tidak menyarankan menggunakan perintah OS seperti **nmon** dan **sar** untuk mengekstrak pemanfaatan CPU. Ini karena perhitungan tersebut mencakup pemanfaatan CPU oleh proses lain dan mungkin tidak mencerminkan CPU aktual yang digunakan oleh database.**Untuk memperkirakan core yang tersedia dengan menggunakan laporan AWR**Anda juga dapat memperoleh pemanfaatan CPU dari bagian pertama laporan AWR. Berikut kutipan dari laporan tersebut.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Dalam contoh ini, CPUs hitungannya adalah 80, yang menunjukkan bahwa ini logis (virtual) CPUs. Anda juga dapat melihat bahwa konfigurasi ini memiliki dua soket, satu prosesor fisik pada setiap soket (untuk total dua prosesor fisik), dan 40 core untuk setiap prosesor fisik atau soket.  | DBA | 
| Opsi 2: Perkirakan pemanfaatan CPU dengan menggunakan statistik OS. | Anda dapat memeriksa statistik penggunaan CPU OS baik secara langsung di OS (menggunakan **sar** atau utilitas OS host lain) atau dengan meninjau nilai IDLE/ (IDLE\$1BUSY) dari bagian Statistik Sistem Operasi dari laporan AWR. Anda dapat melihat detik-detik CPU yang dikonsumsi langsung dari **v\$1osstat**. Laporan AWR dan Statspack juga menunjukkan data ini di bagian Statistik Sistem Operasi.Jika ada beberapa database pada kotak yang sama, semuanya memiliki nilai **v\$1osstat** yang sama untuk BUSY\$1TIME.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Jika tidak ada konsumen CPU utama lainnya dalam sistem, gunakan rumus berikut untuk menghitung persentase pemanfaatan CPU:*Pemanfaatan = Waktu sibuk/Total waktu**Waktu sibuk = persyaratan = v\$1osstat.Busy\$1time**C = Total waktu (Sibuk\$1Menganggur)**C = kapasitas = v\$1ostat.Busy\$1time \$1 v\$1ostat.idle\$1time**Pemanfaatan = BUSY\$1TIME/(BUSY\$1TIME \$1 IDLE\$1TIME)**= -1,305,569,937/(1,305,569,937 \$1 4,312,718,839)**= 23% digunakan* | DBA | 
| Opsi 3: Perkirakan pemanfaatan CPU dengan menggunakan metrik database. | Jika beberapa database berjalan di sistem, Anda dapat menggunakan metrik database yang muncul di awal laporan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Untuk mendapatkan metrik pemanfaatan CPU, gunakan rumus ini:*Penggunaan CPU basis data (% dari daya CPU yang tersedia) = Waktu CPU/NUM\$1CPUS/waktu berlalu*di mana penggunaan CPU dijelaskan oleh *waktu CPU* dan mewakili waktu yang dihabiskan untuk CPU, bukan waktu menunggu CPU. Perhitungan ini menghasilkan:*= 312.625.40/ 11,759.64/80 = 33% CPU sedang digunakan**Jumlah core (33%) \$1 80 = 26,4 core**Total inti = 26,4 \$1 (120%) = 31,68 inti*Anda dapat menggunakan yang lebih besar dari dua nilai ini untuk menghitung pemanfaatan CPU dari instans Amazon RDS atau Aurora DB.Di IBM AIX, pemanfaatan yang dihitung tidak sesuai dengan nilai dari sistem operasi atau database. Nilai-nilai ini memang cocok pada sistem operasi lain. | DBA | 
| Nama DB | Id DB | Instans | Inst num | Waktu Startup | Rilis | RAC | 
| --- |--- |--- |--- |--- |--- |--- |
| XXXX | <DB\$1ID> | XXXX | 1 | 05-Sep-20 23:09 | 12.1.0.2.0 | TIDAK | 
| **Nama Host** | **Platform** | **CPUs** | **Inti** | **Soket** | **Memori (GB)** | 
| <host\$1name> | Linux x86 64-bit | 80 | 80 | 2 | 441.78 | 
| Statistik | Nilai | Nilai Akhir | 
| --- |--- |--- |
| **FREE\$1MEMORY\$1BYTES** | 6,810,677,248 | 12,280,799,232 | 
| **INACTIVE\$1MEMORY\$1BYTES** | 175,627,333,632 | 160,380,653,568 | 
| **SWAP\$1FREE\$1BYTES** | 17,145,614,336 | 17,145,872,384 | 
| **SIBUK\$1WAKTU** | 1,305,569,937 |   | 
| **IDLE\$1TIME** | 4,312,718,839 |   | 
| **IOWAIT\$1WAKTU** | 53,417,174 |   | 
| **BAGUS\$1WAKTU** | 29,815 |   | 
| **SYS\$1WAKTU** | 148,567,570 |   | 
| **USER\$1TIME** | 1,146,918.783 |   | 
| **BEBAN** | 25 | 29 | 
| **VM\$1IN\$1BYTES** | 593.920 |   | 
| **VM\$1OUT\$1BYTES** | 327.680 |   | 
| **PHYSICAL\$1MEMORY\$1BYTES** | 474,362,417.152 |   | 
| **NUM\$1CPU** | 80 |   | 
| **NUM\$1CPU\$1CORES** | 80 |   | 
| **NUM\$1CPU\$1SOCKETS** | 2 |   | 
| **GLOBAL\$1RECEIVE\$1SIZE\$1MAX** | 4,194,304 |   | 
| **GLOBAL\$1SEND\$1SIZE\$1MAX** | 2,097,152 |   | 
| **TCP\$1RECEIVE\$1SIZE\$1DEFAULT** | 87,380 |   | 
| **TCP\$1RECEIVE\$1SIZE\$1MAX** | 6,291,456 |   | 
| **TCP\$1RECEIVE\$1SIZE\$1MIN** | 4,096 |   | 
| **TCP\$1SEND\$1SIZE\$1DEFAULT** | 16,384 |   | 
| **TCP\$1SEND\$1SIZE\$1MAX** | 4,194,304 |   | 
| **TCP\$1SEND\$1SIZE\$1MIN** | 4,096 |   | 
|   | Snap Id | Waktu Jepret | Sesi | Kursor/Sesi | 
| --- |--- |--- |--- |--- |
| **Mulai Snap:** | 184662 | 28-Sep-20 09:00:42 | 1226 | 35.8 | 
| **Akhiri Snap:** | 185446 | 06-Okt-20 13:00:20 | 1876 | 41.1 | 
| **Berlalu:** |   | 11.759.64 (menit) |   |   | 
| **Waktu DB:** |   | 312.625.40 (menit) |   |   | 

### Perkirakan kebutuhan memori
<a name="estimate-memory-requirements"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perkirakan kebutuhan memori dengan menggunakan statistik memori. | Anda dapat menggunakan laporan AWR untuk menghitung memori database sumber dan mencocokkannya di database target. Anda juga harus memeriksa kinerja database yang ada dan mengurangi kebutuhan memori Anda untuk menghemat biaya, atau meningkatkan kebutuhan Anda untuk meningkatkan kinerja. Itu membutuhkan analisis rinci tentang waktu respons AWR dan perjanjian tingkat layanan (SLA) aplikasi. Gunakan jumlah penggunaan Oracle system global area (SGA) dan program global area (PGA) sebagai estimasi pemanfaatan memori untuk Oracle. Tambahkan tambahan 20 persen untuk OS untuk menentukan persyaratan ukuran memori target. Untuk Oracle RAC, gunakan jumlah estimasi pemanfaatan memori pada semua node RAC dan kurangi total memori, karena disimpan di blok umum.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)*Total memori instance yang digunakan = SGA\$1PGA = 220 GB\$145 GB = 265 GB*Tambahkan 20 persen buffer:*Total memori instance = 1,2 \$1 265 GB = 318 GB*Karena SGA dan PGA menyumbang 70 persen dari memori host, kebutuhan memori total adalah: *Total memori host = 318/0,7 = 464 GB*Saat Anda bermigrasi ke Amazon RDS for Oracle, PGA dan SGA dihitung sebelumnya berdasarkan rumus yang telah ditentukan sebelumnya. Pastikan nilai yang telah dihitung sebelumnya mendekati perkiraan Anda. | DBA | 
| Penyangga Nowait%: | 99,99 | Ulangi NoWait %: | 100.00 | 
| --- |--- |--- |--- |
| **Penyangga Hit%:** | 99,84 | **Urutan% dalam memori:** | 100.00 | 
| **Pustaka Hit%:** | 748.77 | **Soft Parse%**: | 99,81 | 
| **Jalankan ke Parse%:** | 96,61 | **Kait Hit%:** | 100.00 | 
| **Parse CPU untuk Parse Elapsd%:** | 72,73 | **% CPU Non-Parse:** | 99,21 | 
| **Flash Cache Hit%:** | 0.00 |   |   | 
|   | Mulailah | Akhiri | 
| --- |--- |--- |
| **Tuan Rumah Mem (MB):** | 452,387.3 | 452,387.3 | 
| **Penggunaan SGA (MB):** | 220,544,0 | 220,544,0 | 
| **Penggunaan PGA (MB):** | 36,874,9 | 45,270,0 | 

### Tentukan jenis instans DB dari database target
<a name="determine-the-db-instance-type-of-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan jenis instans DB berdasarkan disk I/O, CPU, dan estimasi memori. | Berdasarkan perkiraan pada langkah sebelumnya, kapasitas target Amazon RDS atau database Aurora harus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.html)Dalam database Amazon RDS atau Aurora target, Anda dapat memetakan nilai-nilai ini ke tipe instans db.r5.16xlarge, yang memiliki kapasitas 32 core, 512 GB RAM, dan 13.600 Mbps throughput. Untuk informasi selengkapnya, lihat posting blog AWS [Instans Amazon RDS ukuran kanan pada skala berdasarkan metrik kinerja Oracle](https://aws.amazon.com/blogs/database/right-sizing-amazon-rds-instances-at-scale-based-on-oracle-performance-metrics/). | DBA | 

## Sumber daya terkait
<a name="estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports-resources"></a>
+ [Kelas instans Aurora DB (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) Amazon Aurora)
+ [Penyimpanan instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) (dokumentasi Amazon RDS)
+ [Alat AWS Miner](https://github.com/tmuth/AWR-Miner/blob/master/release/5.0.8/AWR-Miner-capture-5.0.8/awr_miner.sql) (GitHub repositori)

# Ekspor Amazon RDS untuk tabel SQL Server ke bucket S3 dengan menggunakan AWS DMS
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms"></a>

*Subhani Shaik, Amazon Web Services*

## Ringkasan
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-summary"></a>

Amazon Relational Database Service (Amazon RDS) untuk SQL Server tidak mendukung pemuatan data ke server terkait mesin DB lainnya di Amazon Web Services (AWS) Cloud. Sebagai gantinya, Anda dapat menggunakan AWS Database Migration Service (AWS DMS) untuk mengekspor tabel Amazon RDS for SQL Server ke bucket Amazon Simple Storage Service (Amazon S3), tempat data tersedia untuk engine DB lainnya.

AWS DMS membantu Anda memigrasikan database ke AWS dengan cepat dan aman. Database sumber tetap beroperasi penuh selama migrasi, meminimalkan waktu henti ke aplikasi yang bergantung pada database. AWS DMS dapat memigrasikan data Anda ke dan dari basis data komersial dan sumber terbuka yang paling banyak digunakan.

Pola ini menggunakan AWS Secrets Manager saat mengonfigurasi titik akhir AWS DMS. Secrets Manager membantu Anda melindungi rahasia yang diperlukan untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Anda dapat menggunakan layanan untuk memutar, mengelola, dan mengambil kredenal database, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Pengguna dan aplikasi mengambil rahasia dengan panggilan ke Secrets Manager, mengurangi kebutuhan untuk hardcode informasi sensitif. Secrets Manager menawarkan rotasi rahasia dengan integrasi bawaan untuk Amazon RDS, Amazon Redshift, dan Amazon DocumentDB. Selain itu, layanan ini dapat diperluas ke jenis rahasia lainnya, termasuk kunci API dan OAuth token. Dengan Secrets Manager, Anda dapat mengontrol akses ke rahasia dengan menggunakan izin halus dan mengaudit rotasi rahasia secara terpusat untuk sumber daya di AWS Cloud, layanan pihak ketiga, dan di tempat.

## Prasyarat dan batasan
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Ember S3
+ Awan pribadi virtual (VPC)
+ Sebuah subnet DB
+ Amazon RDS for SQL Server
+ Peran AWS Identity and Access Management (IAM) dengan akses (daftar, dapatkan, dan letakkan objek) ke bucket S3 atas nama instans Amazon RDS.
+ Secrets Manager untuk menyimpan kredensil instans RDS.

## Arsitektur
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi**
+ Amazon RDS for SQL Server
+ AWS DMS
+ Amazon S3
+ AWS Secrets Manager

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk mengimpor data dari instans Amazon RDS ke bucket S3 dengan bantuan AWS DMS.

![\[Deskripsi mengikuti diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7ba5756d-44a5-4aa3-97b6-fa3684ae6ce6/images/90f918e1-3ec2-4434-82b8-3ff4ad340fb9.png)


1. Tugas migrasi AWS DMS menghubungkan ke instans Amazon RDS sumber melalui titik akhir sumber

1. Menyalin data dari sumber instans Amazon RDS

1. Tugas migrasi AWS DMS terhubung ke bucket S3 target melalui titik akhir target

1. Mengekspor data yang disalin ke bucket S3 dalam format nilai yang dipisahkan koma (CSV)

## Alat
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-tools"></a>

**Layanan AWS**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.

**Layanan lainnya**
+ [Microsoft SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16) adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server.

## Epik
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-epics"></a>

### Konfigurasikan instans Amazon RDS for SQL Server
<a name="configure-the-amazon-rds-for-sql-server-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh Amazon RDS for SQL Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 
| Siapkan kredensil untuk instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 
| Konfigurasikan kelas instance, penyimpanan, penskalaan otomatis, dan ketersediaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 
| Tentukan VPC, grup subnet, akses publik, dan grup keamanan. | Pilih **grup keamanan **VPC**, subnet DB****, dan VPC** sesuai kebutuhan untuk membuat instans Amazon RDS. Ikuti praktik terbaik, misalnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 
| Konfigurasikan pemantauan, pencadangan, dan pemeliharaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 

### Mengatur database dan contoh data
<a name="set-up-the-database-and-example-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel dan muat contoh data. | Dalam database baru, buat tabel. Gunakan kode contoh di bagian *Informasi tambahan* untuk memuat data ke dalam tabel. | DBA, DevOps insinyur | 

### Siapkan kredensial
<a name="set-up-credentials"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat secret. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html)Rahasia ini akan digunakan untuk titik akhir sumber AWS DMS. | DBA, DevOps insinyur | 

### Siapkan akses antara database dan bucket S3
<a name="set-up-access-between-the-database-and-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM untuk akses ke Amazon RDS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 

### Buat ember S3
<a name="create-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | **Untuk menyimpan data dari Amazon RDS for SQL Server, di konsol, **pilih S3, lalu pilih** Buat bucket.** Pastikan bucket S3 tidak tersedia untuk umum. | DBA, DevOps insinyur | 

### Siapkan akses antara AWS DMS dan bucket S3
<a name="set-up-access-between-aws-dms-and-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM untuk AWS DMS untuk mengakses Amazon S3. | Buat peran IAM yang memungkinkan AWS DMS membuat daftar, mendapatkan, dan meletakkan objek dari bucket S3. | DBA, DevOps insinyur | 

### Konfigurasikan AWS DMS
<a name="configure-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir sumber AWS DMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 
| Buat titik akhir target AWS DMS. | Buat **titik akhir Target,** pilih Amazon S3 sebagai mesin Target**.**Berikan nama bucket S3 dan nama folder untuk peran IAM yang Anda buat sebelumnya. | DBA, DevOps insinyur | 
| Buat instance replikasi AWS DMS. | Di VPC, subnet, dan grup keamanan yang sama, buat instance replikasi AWS DMS. Untuk informasi selengkapnya tentang memilih kelas instans, lihat [dokumentasi AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html#CHAP_ReplicationInstance.Types.Deciding). | DBA, DevOps insinyur | 
| Buat tugas migrasi AWS DMS. | Untuk mengekspor data dari Amazon RDS for SQL Server ke bucket S3, buat tugas migrasi database. Untuk jenis migrasi, pilih **Migrasi data yang ada**. Pilih titik akhir AWS DMS dan instance replikasi yang Anda buat. | DBA, DevOps insinyur | 

### Ekspor data ke bucket S3
<a name="export-the-data-to-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan tugas migrasi database. | Untuk mengekspor data tabel SQL Server, mulai tugas migrasi database. Tugas akan mengekspor data dari Amazon RDS for SQL Server ke bucket S3 dalam format CSV. | DBA, DevOps insinyur | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus sumber daya. | Untuk menghindari biaya tambahan, gunakan konsol untuk menghapus sumber daya dalam urutan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.html) | DBA, DevOps insinyur | 

## Sumber daya terkait
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-resources"></a>
+ [AWS DMS](https://aws.amazon.com/dms/)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Amazon RDS for SQL Server](https://aws.amazon.com/rds/sqlserver/)
+ [Integrasi Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)

## Informasi tambahan
<a name="export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms-additional"></a>

Untuk membuat database dan tabel, dan untuk memuat contoh data, gunakan kode berikut.

```
--Step1: Database creation in RDS SQL Server
CREATE DATABASE [Test_DB]
 ON  PRIMARY
( NAME = N'Test_DB', FILENAME = N'D:\rdsdbdata\DATA\Test_DB.mdf' , SIZE = 5120KB , FILEGROWTH = 10%)
 LOG ON
( NAME = N'Test_DB_log', FILENAME = N'D:\rdsdbdata\DATA\Test_DB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO

--Step2: Create Table
USE Test_DB
GO
Create Table Test_Table(ID int, Company Varchar(30), Location Varchar(20))

--Step3: Load sample data.
USE Test_DB
GO
Insert into Test_Table values(1,'AnyCompany','India')
Insert into Test_Table values(2,'AnyCompany','USA')
Insert into Test_Table values(3,'AnyCompany','UK')
Insert into Test_Table values(4,'AnyCompany','Hyderabad')
Insert into Test_Table values(5,'AnyCompany','Banglore')
```

# Menangani blok anonim dalam pernyataan SQL Dinamis di Aurora PostgreSQL
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql"></a>

*Situs web, Amazon Web Services*

## Ringkasan
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-summary"></a>

Catatan: Amazon Cloud Directory tidak lagi terbuka untuk pelanggan baru. [Untuk alternatif Cloud Directory, jelajahi [Amazon DynamoDB dan Amazon](https://aws.amazon.com/dynamodb/) Neptune.](https://aws.amazon.com/neptune/) Jika Anda memerlukan bantuan untuk memilih alternatif yang tepat untuk kasus penggunaan Anda, atau untuk pertanyaan lain, hubungi [AWS Dukungan](https://aws.amazon.com/support/).

Pola ini menunjukkan cara menghindari kesalahan yang Anda dapatkan saat menangani blok anonim dalam pernyataan Dynamic SQL. Anda menerima pesan galat saat menggunakan AWS Schema Conversion Tool untuk mengonversi database Oracle ke database Edisi yang kompatibel dengan Aurora PostgreSQL. Untuk menghindari kesalahan, Anda harus mengetahui nilai variabel `OUT` bind, tetapi Anda tidak dapat mengetahui nilai variabel `OUT` bind sampai setelah Anda menjalankan pernyataan SQL. Kesalahan dihasilkan dari AWS Schema Conversion Tool (AWS SCT) yang tidak memahami logika di dalam pernyataan Dynamic SQL. AWS SCT tidak dapat mengonversi pernyataan SQL dinamis dalam PL/SQL kode (yaitu, fungsi, prosedur, dan paket).

## Prasyarat dan batasan
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif
+ [Contoh database Aurora PostgreSQL (DB)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html)
+ [Amazon Relational Database Service (Amazon RDS) untuk instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
+ [Terminal interaktif PostgreSQL (psql)](https://www.postgresql.org/docs/current/app-psql.html)
+ [SQL\$1 Ditambah](https://docs.oracle.com/cd/B14117_01/server.101/b12170/qstart.htm)
+ `AWS_ORACLE_EXT`skema (bagian dari [paket ekstensi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)) di database target Anda
+ Versi terbaru [AWS Schema Conversion Tool (AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)) dan driver yang diperlukan

## Arsitektur
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Oracle Database 10g lokal dan versi yang lebih baru

**Tumpukan teknologi target**
+ Amazon Aurora PostgreSQL
+ Amazon RDS for PostgreSQL
+ Alat Konversi Skema AWS (AWS SCT)

**Arsitektur migrasi**

Diagram berikut menunjukkan cara menggunakan variabel `OUT` pengikat AWS SCT dan Oracle untuk memindai kode aplikasi Anda untuk pernyataan SQL yang disematkan dan mengonversi kode ke format yang kompatibel yang dapat digunakan database Aurora.

![\[Diagram arsitektur untuk menggunakan variabel pengikat AWS SCT dan Oracle OUT\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/ada89410-b866-4d39-af9c-021be6cc6ae5/images/7c004981-2ed0-4b67-989f-54d8691712ca.png)


Diagram menunjukkan alur kerja berikut:

1. Buat laporan AWS SCT untuk database sumber dengan menggunakan Aurora PostgreSQL sebagai basis data target.

1. Identifikasi blok anonim di blok kode SQL Dinamis (di mana AWS SCT memunculkan kesalahannya).

1. Konversi blok kode secara manual dan terapkan kode pada database target.

## Alat
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-tools"></a>

**Layanan AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.
+ [Amazon Relational Database Service (Amazon RDS) untuk](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Oracle membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional Oracle di AWS Cloud.
+ [AWS Schema Conversion Tool (AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)) membantu Anda membuat migrasi database heterogen dapat diprediksi dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar objek kode database ke format yang kompatibel dengan database target.

**Alat lainnya**
+ [pgAdmin](https://www.pgadmin.org/) memungkinkan Anda untuk terhubung dan berinteraksi dengan server database Anda.
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/) adalah lingkungan pengembangan terintegrasi yang dapat Anda gunakan untuk mengembangkan dan mengelola database di Oracle Database. Anda dapat menggunakan [SQL\$1 Plus atau Oracle SQL](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) Developer untuk pola ini.

## Epik
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-epics"></a>

### Konfigurasikan database sumber Oracle
<a name="configure-the-oracle-source-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance Oracle di Amazon RDS atau Amazon. EC2 | Untuk membuat instans Oracle DB di Amazon RDS, lihat [Membuat instans Oracle DB dan menghubungkan ke database pada instans Oracle DB dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) Amazon RDS.Untuk membuat instans Oracle DB di Amazon Elastic Compute Cloud (Amazon EC2), lihat [Amazon EC2 for Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html) di dokumentasi AWS Prescriptive Guidance. | DBA | 
| Buat skema database dan objek untuk migrasi. | Anda dapat menggunakan Amazon Cloud Directory untuk membuat skema database. Untuk informasi selengkapnya, lihat [Membuat Skema](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/getting_started_create_schema.html) di dokumentasi Cloud Directory. | DBA | 
| Konfigurasikan grup keamanan masuk dan keluar. | Untuk membuat dan mengonfigurasi grup keamanan, lihat [Mengontrol akses dengan grup keamanan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) di dokumentasi Amazon RDS. | DBA | 
| Konfirmasikan bahwa database sedang berjalan. | Untuk memeriksa status database Anda, lihat [Melihat peristiwa Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html) di dokumentasi Amazon RDS. | DBA | 

### Konfigurasikan basis data PostgreSQL Aurora target
<a name="configure-the-target-aurora-postgresql-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance Aurora PostgreSQL di Amazon RDS. | Untuk membuat instance PostgreSQL Aurora, lihat [Membuat cluster DB dan menghubungkan ke database pada klaster DB PostgreSQL Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html) dalam dokumentasi Amazon RDS. | DBA | 
| Konfigurasikan grup keamanan masuk dan keluar. | Untuk membuat dan mengonfigurasi grup keamanan, lihat [Menyediakan akses ke cluster DB di VPC dengan membuat grup keamanan](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/CHAP_SettingUp_Aurora.html#CHAP_SettingUp_Aurora.SecurityGroup) dalam dokumentasi Aurora. | DBA | 
| Konfirmasikan bahwa database Aurora PostgreSQL sedang berjalan. | Untuk memeriksa status database Anda, lihat [Melihat peristiwa Amazon RDS di dokumentasi](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/USER_ListEvents.html) Aurora. | DBA | 

### Siapkan AWS SCT
<a name="set-up-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect AWS SCT ke database sumber. | Untuk menghubungkan AWS SCT ke database sumber Anda, lihat [Menyambung ke PostgreSQL sebagai sumber](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.Connecting) dalam dokumentasi AWS SCT. | DBA | 
| Connect AWS SCT ke database target. | Untuk menghubungkan AWS SCT ke database target Anda, lihat [Apa itu AWS Schema](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Conversion Tool? dalam Panduan Pengguna AWS Schema Conversion Tool. | DBA | 
| Konversikan skema database di AWS SCT dan simpan kode otomatis yang dikonversi sebagai file SQL. | Untuk menyimpan file yang dikonversi AWS SCT, lihat [Menyimpan dan menerapkan skema yang dikonversi di AWS SCT di Panduan](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html#CHAP_Converting.SaveAndApply) Pengguna Alat Konversi Skema AWS. | DBA | 

### Migrasikan kode
<a name="migrate-the-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan file SQL untuk konversi manual. | Dalam file yang dikonversi AWS SCT, tarik file SQL yang memerlukan konversi manual. | DBA | 
| Perbarui skrip. | Perbarui file SQL secara manual. | DBA | 

## Sumber daya terkait
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-resources"></a>
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Fitur Amazon Aurora](https://aws.amazon.com/rds/aurora/postgresql-features/)

## Informasi tambahan
<a name="handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql-additional"></a>

Kode contoh berikut menunjukkan cara mengkonfigurasi database sumber Oracle:

```
CREATE or replace PROCEDURE calc_stats_new1 (
  a NUMBER,
  b NUMBER,
  result out NUMBER)
IS
BEGIN
result:=a+b;
END;
/
```

```
set serveroutput on ;
 
DECLARE
  a NUMBER := 4;
  b NUMBER := 7;
  plsql_block VARCHAR2(100);
  output number;
BEGIN
  plsql_block := 'BEGIN calc_stats_new1(:a, :b,:output); END;';
  EXECUTE IMMEDIATE plsql_block USING a, b,out output;  
  DBMS_OUTPUT.PUT_LINE('output:'||output);
 
END;
```

Contoh kode berikut menunjukkan cara mengkonfigurasi target Aurora PostgreSQL database:

```
 w integer,
 x integer)
RETURNS integer
AS
$BODY$
DECLARE
begin
return w + x ;
end;
$BODY$
LANGUAGE  plpgsql;
 
 
CREATE OR REPLACE FUNCTION test_pg.init()
RETURNS void
AS
$BODY$
BEGIN
if aws_oracle_ext.is_package_initialized
      ('test_pg' ) then
      return;
    end if;
    perform aws_oracle_ext.set_package_initialized
      ('test_pg' );
 
PERFORM aws_oracle_ext.set_package_variable('test_pg', 'v_output', NULL::INTEGER);
PERFORM aws_oracle_ext.set_package_variable('test_pg', 'v_status', NULL::text);
END;
$BODY$
LANGUAGE  plpgsql;
 

DO $$ 
declare
v_sql text;
v_output_loc int; 
a integer :=1;
b integer :=2;
BEGIN 
perform  test_pg.init();
--raise notice 'v_sql %',v_sql;
execute 'do $a$ declare v_output_l int; begin select * from test_pg.calc_stats_new1('||a||','||b||') into v_output_l;
PERFORM aws_oracle_ext.set_package_variable(''test_pg'', ''v_output'', v_output_l) ; end; $a$'  ; 
v_output_loc := aws_oracle_ext.get_package_variable('test_pg', 'v_output');
raise notice 'v_output_loc %',v_output_loc; 
END ; 
$$
```

# Membantu menegakkan penandaan DynamoDB
<a name="help-enforce-dynamodb-tagging"></a>

*Mansi Suratwala, Amazon Web Services*

## Ringkasan
<a name="help-enforce-dynamodb-tagging-summary"></a>

Pola ini mengatur notifikasi otomatis ketika tag Amazon DynamoDB yang telah ditentukan sebelumnya hilang atau dihapus dari sumber daya DynamoDB di Amazon Web Services (AWS) Cloud. 

DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat dan dapat diprediksi dengan skalabilitas. DynamoDB memungkinkan Anda menurunkan beban administratif pengoperasian dan penskalaan database terdistribusi. Saat Anda menggunakan DynamoDB, Anda tidak perlu khawatir tentang penyediaan perangkat keras, penyiapan dan konfigurasi, replikasi, penambalan perangkat lunak, atau penskalaan klaster.

Pola ini menggunakan CloudFormation template AWS, yang membuat CloudWatch acara Amazon Events dan fungsi AWS Lambda. Acara ini mengamati informasi penandaan DynamoDB baru atau yang sudah ada dengan menggunakan AWS. CloudTrail Jika tag yang telah ditentukan hilang atau dihapus, akan CloudWatch memicu fungsi Lambda, yang mengirimi Anda notifikasi Amazon Simple Notification Service (Amazon SNS) yang memberi tahu Anda tentang pelanggaran tersebut. 

## Prasyarat dan batasan
<a name="help-enforce-dynamodb-tagging-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Bucket Amazon Simple Storage Service (Amazon S3) untuk file.zip Lambda yang berisi skrip Python untuk menjalankan fungsi Lambda

**Batasan**
+ Solusinya hanya berfungsi ketika `UntagResource` CloudTrail peristiwa `TagResource` atau terjadi. Itu tidak membuat pemberitahuan untuk acara lainnya.

## Arsitektur
<a name="help-enforce-dynamodb-tagging-architecture"></a>

**Tumpukan teknologi target**
+ Amazon DynamoDB
+ AWS CloudTrail
+ Amazon CloudWatch
+ AWS Lambda
+ Amazon S3
+ Amazon SNS

**Arsitektur target**

![\[Tag DynamoDB yang hilang CloudWatch memicu peristiwa dan fungsi Lambda untuk mengirim pemberitahuan Amazon SNS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/638d2b87-e031-4a53-8677-2d62e563746b/images/acc448c5-c39b-40b7-94c0-3534d2e725d7.png)


**Otomatisasi dan skala**

Anda dapat menggunakan CloudFormation template AWS beberapa kali untuk Wilayah dan akun AWS yang berbeda. Anda perlu menjalankan template hanya sekali di setiap Wilayah atau akun.

## Alat
<a name="help-enforce-dynamodb-tagging-tools"></a>

**Alat**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) - DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat dan dapat diprediksi dengan skalabilitas. 
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) — CloudTrail adalah layanan AWS yang membantu Anda dalam tata kelola, kepatuhan, serta audit operasional dan risiko akun AWS Anda. Tindakan yang diambil oleh pengguna, peran, atau layanan AWS dicatat sebagai peristiwa di CloudTrail. 
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — Amazon CloudWatch Events menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan sumber daya AWS. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — Lambda adalah layanan komputasi yang mendukung kode berjalan tanpa perlu menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel yang dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan danau data.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) adalah layanan web yang memungkinkan aplikasi, pengguna akhir, dan perangkat untuk langsung mengirim dan menerima pemberitahuan dari cloud. 

**Kode**
+ File.zip proyek tersedia sebagai lampiran.

## Epik
<a name="help-enforce-dynamodb-tagging-epics"></a>

### Tentukan bucket S3
<a name="define-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan bucket S3. | Di konsol Amazon S3, pilih atau buat bucket S3 dengan nama unik yang tidak mengandung garis miring di depan. Bucket S3 ini akan meng-host file kode Lambda .zip. Bucket S3 Anda harus berada di Wilayah AWS yang sama dengan sumber daya DynamoDB yang sedang dipantau. | Arsitek Awan | 

### Unggah kode Lambda ke bucket S3
<a name="upload-the-lambda-code-to-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah kode Lambda ke bucket S3. | Unggah file kode Lambda .zip yang disediakan di bagian *Lampiran* ke bucket S3. Bucket S3 harus berada di Wilayah yang sama dengan sumber daya DynamoDB yang sedang dipantau. | Arsitek Awan | 

### Menerapkan template AWS CloudFormation
<a name="deploy-the-aws-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menerapkan CloudFormation template AWS. | Di CloudFormation konsol AWS, terapkan CloudFormation template AWS yang disediakan di bagian *Lampiran.* Dalam epik berikutnya, berikan nilai untuk parameter. | Arsitek Awan  | 

### Lengkapi parameter dalam CloudFormation template AWS
<a name="complete-the-parameters-in-the-aws-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Beri nama ember S3. | Masukkan nama bucket S3 yang Anda buat atau pilih di epik pertama. | Arsitek Awan | 
| Berikan kunci Amazon S3. | Berikan lokasi file kode Lambda .zip di bucket S3 Anda, tanpa garis miring di depan (misalnya,). `<folder>/<file-name>.zip` | Arsitek Awan | 
| Berikan alamat email | Berikan alamat email aktif untuk menerima notifikasi Amazon SNS. | Arsitek Awan  | 
| Tentukan tingkat logging. | Tentukan tingkat logging dan frekuensi untuk fungsi Lambda Anda. `Info`menunjuk pesan informasi rinci tentang kemajuan aplikasi. `Error`menunjuk peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan. `Warning`menunjuk situasi yang berpotensi berbahaya. | Arsitek Awan | 
| Masukkan kunci tag DynamoDB yang diperlukan. | Pastikan tag dipisahkan dengan koma, tanpa spasi di antara mereka (misalnya,`ApplicationId,CreatedBy,Environment,Organization`). CloudWatch Acara Acara mencari tag ini dan mengirimkan pemberitahuan jika tidak ditemukan. | Arsitek Awan | 

### Konfirmasi langganan.
<a name="confirm-the-subscription"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasi langganan. | Ketika template berhasil digunakan, ia mengirimkan email berlangganan ke alamat email yang Anda berikan. Untuk menerima pemberitahuan pelanggaran, Anda harus mengonfirmasi langganan email ini. | Arsitek Awan  | 

## Sumber daya terkait
<a name="help-enforce-dynamodb-tagging-resources"></a>
+ [Membuat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Mengunggah file ke bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) 
+ [Menandai sumber daya di DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.Operations.html)
+ [Membuat aturan CloudWatch Acara yang dipicu pada panggilan AWS API menggunakan AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html)

## Lampiran
<a name="attachments-638d2b87-e031-4a53-8677-2d62e563746b"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/638d2b87-e031-4a53-8677-2d62e563746b/attachments/attachment.zip)

# Menerapkan pemulihan bencana lintas wilayah dengan AWS DMS dan Amazon Aurora
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora"></a>

*Mark Hudson, Amazon Web Services*

## Ringkasan
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-summary"></a>

Bencana alam atau yang disebabkan oleh manusia dapat terjadi kapan saja dan dapat memengaruhi ketersediaan layanan dan beban kerja yang berjalan di Wilayah AWS tertentu. Untuk mengurangi risiko, Anda harus mengembangkan rencana pemulihan bencana (DR) yang menggabungkan kemampuan lintas wilayah bawaan layanan AWS. Untuk layanan AWS yang secara inheren tidak menyediakan fungsionalitas Lintas wilayah, paket DR juga harus memberikan solusi untuk menangani failover mereka di seluruh Wilayah AWS.

Pola ini memandu Anda melalui penyiapan pemulihan bencana yang melibatkan dua cluster database Amazon Aurora MySQL Edition yang kompatibel dalam satu Wilayah. Untuk memenuhi persyaratan DR, kluster database dikonfigurasi untuk menggunakan fitur database global Amazon Aurora, dengan database tunggal yang mencakup beberapa Wilayah AWS. Tugas AWS Database Migration Service (AWS DMS) mereplikasi data antar cluster di Wilayah lokal. AWS DMS, bagaimanapun, saat ini tidak mendukung failover tugas antar Wilayah. Pola ini mencakup langkah-langkah yang diperlukan untuk mengatasi batasan tersebut dan mengonfigurasi AWS DMS secara independen di kedua Wilayah.

## Prasyarat dan batasan
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-prereqs"></a>

**Prasyarat**
+ Wilayah AWS primer dan sekunder terpilih yang mendukung basis data [global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraFeaturesRegionsDBEngines.grids.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase).
+ Dua cluster database Edisi yang kompatibel dengan Amazon Aurora MySQL independen dalam satu akun di Wilayah utama.
+ Database instance kelas db.r5 atau lebih tinggi (disarankan).
+ Tugas AWS DMS di Wilayah utama yang melakukan replikasi berkelanjutan antara kluster database yang ada.
+ Sumber daya Wilayah DR tersedia untuk memenuhi persyaratan pembuatan instance basis data. Untuk informasi selengkapnya, lihat [Bekerja dengan instans DB di VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html).

**Batasan**
+ Untuk daftar lengkap batasan basis data global Amazon Aurora, lihat [Batasan database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**Versi produk**
+ Amazon Aurora MySQL Edisi 5.7 atau 8.0 yang kompatibel dengan Amazon Aurora. Untuk informasi selengkapnya, lihat [versi Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.VersionPolicy.html).

## Arsitektur
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-architecture"></a>

**Tumpukan teknologi target**
+ Kluster basis data global Edisi yang kompatibel dengan Amazon Aurora MySQL
+ AWS DMS

**Arsitektur target**

Diagram berikut menunjukkan database global untuk dua Wilayah AWS, satu dengan basis data utama dan reporter utama dan replikasi AWS DMS, dan satu dengan basis data utama dan reporter sekunder.

![\[Diagram arsitektur database global lintas wilayah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b01f5043-fcb5-4b1e-b79f-999792e89bed/images/3785384c-ed01-454f-b58c-fa09d223d57b.png)


**Otomatisasi dan skala**

Anda dapat menggunakan AWS CloudFormation untuk membuat infrastruktur prasyarat di Wilayah sekunder, seperti virtual private cloud (VPC), subnet, dan grup parameter. Anda juga dapat menggunakan AWS CloudFormation untuk membuat cluster sekunder di Wilayah DR dan menambahkannya ke database global. Jika Anda menggunakan CloudFormation templat untuk membuat kluster database di Wilayah utama, Anda dapat memperbarui atau menambahkannya dengan templat tambahan untuk membuat sumber daya database global. Untuk informasi selengkapnya, lihat [Membuat klaster DB Amazon Aurora dengan dua instans DB dan Membuat cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster--examples) [database global untuk Aurora](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#aws-resource-rds-globalcluster--examples) MySQL.

Terakhir, Anda dapat membuat tugas AWS DMS di Wilayah primer dan sekunder menggunakan CloudFormation setelah peristiwa failover dan failback terjadi. Untuk informasi selengkapnya, lihat [AWS::DMS::ReplicationTask](https://docs.amazonaws.cn/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html).

## Alat
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-tools"></a>
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang kompatibel dengan MySQL dan PostgreSQL. Pola ini menggunakan Amazon Aurora MySQL-Compatible Edition.
+ [Basis data global Amazon Aurora dirancang untuk aplikasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) yang didistribusikan secara global. Satu database global Amazon Aurora dapat menjangkau beberapa Wilayah AWS. Ini mereplikasi data Anda tanpa berdampak pada kinerja database. Ini juga memungkinkan pembacaan lokal cepat dengan latensi rendah di setiap Wilayah, dan memberikan pemulihan bencana dari pemadaman di seluruh Wilayah.
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) menyediakan migrasi satu kali atau replikasi yang sedang berlangsung. Tugas replikasi yang sedang berlangsung membuat database sumber dan target Anda tetap sinkron. Setelah diatur, tugas replikasi yang sedang berlangsung terus menerapkan perubahan sumber ke target dengan latensi minimal. Semua fitur AWS DMS, seperti validasi dan transformasi data, tersedia untuk tugas replikasi apa pun.

## Epik
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-epics"></a>

### Siapkan cluster database yang ada di Region primer
<a name="prepare-the-existing-database-clusters-in-the-primary-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memodifikasi kelompok parameter cluster database. | **Dalam kelompok parameter cluster database yang ada, aktifkan pencatatan biner tingkat baris dengan mengatur `binlog_format` parameter ke nilai baris.**AWS DMS memerlukan pencatatan biner tingkat baris untuk database yang kompatibel dengan MySQL saat melakukan replikasi atau pengambilan data perubahan (CDC) yang sedang berlangsung. Untuk informasi selengkapnya, lihat [Menggunakan database AWS yang kompatibel dengan MySQL terkelola sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.AmazonManaged). | Administrator AWS | 
| Perbarui periode retensi log biner database. | Menggunakan klien MySQL yang diinstal pada perangkat pengguna akhir atau instans Amazon Elastic Compute Cloud ( EC2Amazon), jalankan prosedur tersimpan berikut yang disediakan oleh Amazon Relational Database Service (Amazon RDS) pada node penulis cluster database utama`XX`, di mana jumlah jam untuk menyimpan log.<pre>call mysql.rds_set_configuration('binlog retention hours', XX)</pre>Konfirmasikan pengaturan dengan menjalankan perintah berikut.<pre>call mysql.rds_show_configuration;</pre>Database yang kompatibel dengan MySQL yang dikelola oleh AWS membersihkan log biner sesegera mungkin. Oleh karena itu, periode retensi harus cukup lama untuk memastikan bahwa log tidak dibersihkan sebelum tugas AWS DMS berjalan. Nilai 24 jam biasanya cukup, tetapi nilainya harus didasarkan pada waktu yang diperlukan untuk mengatur tugas AWS DMS di Wilayah DR. | DBA | 

### Perbarui tugas AWS DMS yang ada di Wilayah utama
<a name="update-the-existing-aws-dms-task-in-the-primary-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Rekam tugas AWS DMS ARN. | Gunakan Nama Sumber Daya Amazon (ARN) untuk mendapatkan nama tugas AWS DMS untuk digunakan nanti. Untuk mengambil ARN tugas AWS DMS, lihat tugas di konsol atau jalankan perintah berikut.<pre>aws dms describe-replication-tasks</pre>ARN terlihat seperti berikut ini.<pre>arn:aws:dms:us-east-1:<accountid>:task:AN6HFFMPM246XOZVEUHCNSOVF7MQCLTOZUIRAMY</pre>Karakter setelah titik dua terakhir sesuai dengan nama tugas yang digunakan pada langkah selanjutnya. | Administrator AWS | 
| Ubah tugas AWS DMS yang ada untuk merekam pos pemeriksaan. | AWS DMS membuat pos pemeriksaan yang berisi informasi sehingga mesin replikasi mengetahui titik pemulihan untuk aliran perubahan. Untuk merekam informasi pos pemeriksaan, lakukan langkah-langkah berikut di konsol:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html) | Administrator AWS | 
| Validasi informasi pos pemeriksaan. | Menggunakan klien MySQL yang terhubung ke titik akhir penulis untuk cluster, kueri tabel metadata baru di kluster database reporter untuk memverifikasi bahwa itu ada dan berisi informasi status replikasi. Jalankan perintah berikut.<pre>select * from awsdms_control.awsdms_txn_state;</pre>Nama tugas dari ARN harus ditemukan di tabel ini di kolom. `Task_Name` | DBA | 

### Perluas kedua cluster Amazon Aurora ke Wilayah DR
<a name="expand-both-amazon-aurora-clusters-to-a-dr-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat infrastruktur dasar di Wilayah DR. | Buat komponen dasar yang diperlukan untuk pembuatan dan akses ke cluster Amazon Aurora:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html)Pastikan bahwa konfigurasi kedua grup parameter cocok dengan konfigurasi di Wilayah utama. | Administrator AWS | 
| Tambahkan Wilayah DR ke kedua cluster Amazon Aurora. | Tambahkan Wilayah sekunder (Wilayah DR) ke cluster Amazon Aurora utama dan reporter. Untuk informasi selengkapnya, lihat [Menambahkan Wilayah AWS ke database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database-attaching). | Administrator AWS | 

### Lakukan failover
<a name="perform-failover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan tugas AWS DMS. | Tugas AWS DMS di Wilayah utama tidak akan berfungsi dengan baik setelah failover terjadi dan harus dihentikan untuk menghindari kesalahan. | Administrator AWS | 
| Lakukan failover terkelola. | Lakukan failover terkelola dari cluster database utama ke Wilayah DR. Untuk petunjuknya, lihat [Melakukan failover terencana terkelola untuk database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover). Setelah failover pada cluster database utama selesai, lakukan aktivitas yang sama pada kluster database reporter. | Administrator AWS, DBA | 
| Memuat data ke dalam database utama. | Masukkan data uji ke node penulis dari database utama di cluster database DR. Data ini akan digunakan untuk memvalidasi bahwa replikasi berfungsi dengan baik. | DBA | 
| Buat instance replikasi AWS DMS. | Untuk membuat instans replikasi AWS DMS di Wilayah DR, lihat [Membuat instance replikasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html). | Administrator AWS, DBA | 
| Buat sumber AWS DMS dan titik akhir target. | Untuk membuat sumber AWS DMS dan titik akhir target di Wilayah DR, lihat [Membuat titik akhir sumber dan target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). Sumber harus menunjuk ke instance penulis dari cluster database utama. Target harus menunjuk ke instance penulis dari cluster database reporter. | Administrator AWS, DBA | 
| Dapatkan pos pemeriksaan replikasi. | Untuk mendapatkan pos pemeriksaan replikasi, gunakan klien MySQL untuk menanyakan tabel metadata dengan menjalankan yang berikut terhadap node penulis di kluster database reporter di Wilayah DR.<pre>select * from awsdms_control.awsdms_txn_state;</pre>Dalam tabel, temukan nilai task\$1name yang sesuai dengan ARN tugas AWS DMS yang ada di Wilayah utama yang Anda peroleh di epik kedua. | DBA | 
| Buat tugas AWS DMS. | Menggunakan konsol, buat tugas AWS DMS di Wilayah DR. Dalam tugas, tentukan metode migrasi **Replikasi perubahan data saja**. Untuk informasi selengkapnya, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html)Setel pengaturan tugas AWS DMS **Mulai tugas migrasi** ke **Otomatis saat membuat**. | Administrator AWS, DBA | 
| Rekam tugas AWS DMS ARN. | Gunakan ARN untuk mendapatkan nama tugas AWS DMS untuk digunakan nanti. Untuk mengambil ARN tugas AWS DMS, jalankan perintah berikut.<pre>aws dms describe-replication-tasks</pre> | Administrator AWS, DBA | 
| Validasi data yang direplikasi. | Kueri kluster database reporter di Wilayah DR untuk mengonfirmasi bahwa data pengujian yang Anda muat ke kluster basis data utama telah direplikasi. | DBA | 

### Lakukan failback
<a name="perform-failback"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan tugas AWS DMS. | Tugas AWS DMS di Wilayah DR tidak akan berfungsi dengan baik setelah kegagalan terjadi dan harus dihentikan untuk menghindari kesalahan. | Administrator AWS | 
| Lakukan failback terkelola. | Gagal kembali cluster database utama ke Region primer. Untuk petunjuknya, lihat [Melakukan failover terencana terkelola untuk database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover). Setelah failback pada cluster database utama selesai, lakukan aktivitas yang sama pada kluster database reporter. | Administrator AWS, DBA | 
| Dapatkan pos pemeriksaan replikasi. | Untuk mendapatkan pos pemeriksaan replikasi, gunakan klien MySQL untuk menanyakan tabel metadata dengan menjalankan yang berikut terhadap node penulis di kluster database reporter di Wilayah DR.<pre>select * from awsdms_control.awsdms_txn_state;</pre>Dalam tabel, temukan `task_name` nilai yang sesuai dengan ARN tugas AWS DMS yang ada di Wilayah DR yang Anda peroleh di epik keempat. | DBA | 
| Perbarui sumber AWS DMS dan titik akhir target. | Setelah cluster database gagal kembali, periksa cluster di Region primer untuk menentukan node mana yang merupakan instance penulis. Kemudian verifikasi sumber AWS DMS yang ada dan titik akhir target di Wilayah utama menunjuk ke instance penulis. Jika tidak, perbarui titik akhir dengan nama contoh penulis Domain Name System (DNS). | Administrator AWS | 
| Buat tugas AWS DMS. | Menggunakan konsol, buat tugas AWS DMS di Wilayah utama. Dalam tugas, tentukan metode migrasi **Replikasi perubahan data saja**. Untuk informasi selengkapnya, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html) | Administrator AWS, DBA | 
| Rekam tugas AWS DMS Nama Sumber Daya Amazon (ARN). | Gunakan ARN untuk mendapatkan nama tugas AWS DMS untuk digunakan nanti. Untuk mengambil ARN tugas AWS DMS, jalankan perintah berikut:<pre>aws dms describe-replication-tasks</pre>Nama tugas akan diperlukan saat melakukan failover terkelola lain atau selama skenario DR. | Administrator AWS, DBA | 
| Hapus tugas AWS DMS. | Hapus tugas AWS DMS asli (saat ini dihentikan) di Wilayah utama dan tugas AWS DMS yang ada (saat ini dihentikan) di Wilayah sekunder. | Administrator AWS | 

## Sumber daya terkait
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-resources"></a>
+ [Mengonfigurasi cluster DB Amazon Aurora Anda](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraSettingUp.html)
+ [Menggunakan basis data global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
+ [Bekerja dengan Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)
+ [Bekerja dengan instans replikasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html)
+ [Bekerja dengan titik akhir AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)
+ [Bekerja dengan tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html)
+ [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

## Informasi tambahan
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-additional"></a>

Basis data global Amazon Aurora digunakan dalam contoh ini untuk DR karena mereka memberikan tujuan waktu pemulihan yang efektif (RTO) 1 detik dan tujuan titik pemulihan (RPO) kurang dari 1 menit, keduanya lebih rendah dari solusi replikasi tradisional dan ideal untuk skenario DR.

Basis data global Amazon Aurora menawarkan banyak keuntungan lain, termasuk yang berikut:
+ Pembacaan global dengan latensi lokal — Konsumen global dapat mengakses informasi di Wilayah lokal, dengan latensi lokal.
+ Cluster Amazon Aurora DB sekunder yang dapat diskalakan — Cluster sekunder dapat diskalakan secara independen, menambahkan hingga 16 replika hanya-baca.
+ Replikasi cepat dari cluster Amazon Aurora DB primer ke sekunder — Replikasi memiliki dampak kinerja yang kecil pada cluster primer. Ini terjadi pada lapisan penyimpanan, dengan latensi replikasi lintas wilayah khas kurang dari 1 detik.

Pola ini juga menggunakan AWS DMS untuk replikasi. Basis data Amazon Aurora menyediakan kemampuan untuk membuat replika baca, yang dapat menyederhanakan proses replikasi dan pengaturan DR. Namun, AWS DMS sering digunakan untuk mereplikasi ketika transformasi data diperlukan atau ketika database target memerlukan indeks tambahan yang tidak dimiliki database sumber.

# Migrasikan fungsi dan prosedur Oracle yang memiliki lebih dari 100 argumen ke PostgreSQL
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql"></a>

*Srinivas Potlachervoo, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-summary"></a>

Pola ini menunjukkan cara memigrasikan fungsi dan prosedur Oracle Database yang memiliki lebih dari 100 argumen ke PostgreSQL. Misalnya, Anda dapat menggunakan pola ini untuk memigrasikan fungsi dan prosedur Oracle ke salah satu layanan database AWS yang kompatibel dengan PostgreSQL berikut:
+ Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

PostgreSQL tidak mendukung fungsi atau prosedur yang memiliki lebih dari 100 argumen. Sebagai solusinya, Anda dapat menentukan tipe data baru yang memiliki bidang tipe yang cocok dengan argumen fungsi sumber. Kemudian, Anda dapat membuat dan menjalankan PL/pgSQL fungsi yang menggunakan tipe data kustom sebagai argumen.

## Prasyarat dan batasan
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sebuah [instans database Amazon RDS Oracle (DB)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
+ [Instans [Amazon RDS for PostgreSQL DB atau instans DB yang kompatibel](https://aws.amazon.com/getting-started/hands-on/create-connect-postgresql-db/) dengan Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html)

**Versi produk**
+ Amazon RDS Oracle DB instans versi 10.2 dan yang lebih baru
+ Instans Amazon RDS PostgreSQL DB versi 9.4 dan yang lebih baru, atau instans DB yang kompatibel dengan Aurora PostgreSQL versi 9.4 dan yang lebih baru
+ Oracle SQL Developer versi 18 dan yang lebih baru
+ pgAdmin versi 4 dan yang lebih baru

## Arsitektur
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon RDS Oracle DB instans versi 10.2 dan yang lebih baru

**Tumpukan teknologi target**
+ Instans Amazon RDS PostgreSQL DB versi 9.4 dan yang lebih baru, atau instans DB yang kompatibel dengan Aurora PostgreSQL versi 9.4 dan yang lebih baru

## Alat
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-tools"></a>

**Layanan AWS**
+ [Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional PostgreSQL di AWS Cloud.
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.

**Layanan lainnya**
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud.
+ [pgAdmin](https://www.pgadmin.org/) adalah alat manajemen sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. 

## Praktik terbaik
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-best-practices"></a>

Pastikan tipe data yang Anda buat cocok dengan bidang tipe yang disertakan dalam fungsi atau prosedur Oracle sumber.

## Epik
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-epics"></a>

### Jalankan fungsi atau prosedur Oracle yang memiliki lebih dari 100 argumen
<a name="run-an-oracle-function-or-procedure-that-has-more-than-100-arguments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membuat atau mengidentifikasi Oracle/PLSQL fungsi atau prosedur yang ada yang memiliki lebih dari 100 argumen. | Buat Oracle/PLSQL fungsi atau prosedur yang memiliki lebih dari 100 argumen.-atau-Identifikasi Oracle/PLSQL fungsi atau prosedur yang ada yang memiliki lebih dari 100 argumen.Untuk informasi selengkapnya, lihat bagian [14.7 CREATE FUNCTION Statement](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnpls/CREATE-FUNCTION-statement.html#GUID-B71BC5BD-B87C-4054-AAA5-213E856651F2) dan [14.11 CREATE PROCEDURE Statement](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnpls/CREATE-PROCEDURE-statement.html#GUID-5F84DB47-B5BE-4292-848F-756BF365EC54) dalam dokumentasi Oracle Database. | Pengetahuan Oracle/PLSQL | 
| Kompilasi Oracle/PLSQL fungsi atau prosedur. | Kompilasi Oracle/PLSQL fungsi atau prosedur.Untuk informasi selengkapnya, lihat [Mengompilasi fungsi](https://docs.oracle.com/cd/E37097_01/doc.42/e35128/GUID-6B7B6F82-616D-4915-82BE-D4AE7F59CF37.htm#AEUTL165) dalam dokumentasi Oracle Database. | Pengetahuan Oracle/PLSQL | 
| Jalankan Oracle/PLSQL fungsinya. | Jalankan Oracle/PLSQL fungsi atau prosedur. Kemudian, simpan outputnya. | Pengetahuan Oracle/PLSQL | 

### Tentukan tipe data baru yang cocok dengan argumen fungsi sumber atau prosedur
<a name="define-a-new-data-type-that-matches-the-source-functionapos-s-or-procedureapos-s-arguments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan tipe data baru di PostgreSQL. | Tentukan tipe data baru di PostgreSQL yang mencakup semua bidang yang sama yang muncul dalam argumen fungsi atau prosedur Oracle sumber.Untuk informasi selengkapnya, lihat [CREATE TYPE](https://www.postgresql.org/docs/current/sql-createtype.html) di dokumentasi PostgreSQL. | Pengetahuan PL/pgSQL PostgreSQL | 

### Buat fungsi PostgreSQL yang menyertakan argumen TYPE baru
<a name="create-a-postgresql-function-that-includes-the-new-type-argument"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi PostgreSQL yang mencakup tipe data baru. | Buat fungsi PostgreSQL yang menyertakan argumen baru. `TYPE`Untuk meninjau fungsi contoh, lihat bagian **Informasi tambahan** dari pola ini. | Pengetahuan PL/pgSQL PostgreSQL | 
| Kompilasi fungsi PostgreSQL. | Kompilasi fungsi di PostgreSQL. Jika bidang tipe data baru cocok dengan argumen fungsi sumber atau prosedur, maka fungsi berhasil dikompilasi. | Pengetahuan PL/pgSQL PostgreSQL | 
| Jalankan fungsi PostgreSQL. | Jalankan fungsi PostgreSQL. | Pengetahuan PL/pgSQL PostgreSQL | 

## Pemecahan masalah
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Fungsi mengembalikan kesalahan berikut:**KESALAHAN: kesalahan sintaks di dekat ""** <statement> | Pastikan bahwa semua pernyataan fungsi diakhiri dengan titik koma (). `;` | 
| Fungsi mengembalikan kesalahan berikut:**ERROR: "" bukan variabel yang diketahui** <variable> | Pastikan bahwa variabel yang digunakan dalam badan fungsi tercantum dalam `DECLARE` bagian fungsi. | 

## Sumber daya terkait
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-resources"></a>
+ [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
+ [BUAT JENIS (dokumentasi](https://www.postgresql.org/docs/11/sql-createtype.html) PostgreSQL)

## Informasi tambahan
<a name="migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql-additional"></a>

**Contoh fungsi PostgreSQL yang mencakup argumen TYPE**

```
CREATE OR REPLACE FUNCTION test_proc_new
(
    IN p_rec type_test_proc_args
) 
RETURNS void
AS
$BODY$
BEGIN

    /*
    **************
    The body would contain code to process the input values.
    For our testing, we will display couple of values.
    ***************
    */
    RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_acct_id: ', p_rec.p_acct_id);
    RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_ord_id: ', p_rec.p_ord_id);
    RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_ord_date: ', p_rec.p_ord_date);
   
END;
$BODY$
LANGUAGE plpgsql 
COST 100;
```

# Migrasikan beban kerja Redis ke Redis Enterprise Cloud di AWS
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws"></a>

*Antony Prasad Thevaraj, Amazon Web Services*

*Srinivas Pendyala, Redis*

## Ringkasan
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-summary"></a>

Pola ini membahas proses tingkat tinggi untuk memigrasikan beban kerja Redis ke Redis Enterprise Cloud di Amazon Web Services (AWS). Ini menjelaskan langkah-langkah migrasi, memberikan informasi tentang pemilihan alat yang tersedia, dan membahas keuntungan, kerugian, dan langkah-langkah untuk menggunakan setiap alat. Secara opsional, jika Anda memerlukan bantuan tambahan dalam memigrasi beban kerja dari Redis, Anda dapat menggunakan Redis Professional Services.

Jika Anda menjalankan Redis OSS atau Redis Enterprise Software di tempat, Anda terbiasa dengan overhead administratif yang signifikan dan kompleksitas operasional pemeliharaan database Redis Anda di pusat data Anda. Dengan memigrasikan beban kerja Anda ke cloud, Anda dapat secara signifikan mengurangi beban operasional ini dan memanfaatkan [Redis Enterprise Cloud](https://redis.com/redis-enterprise-cloud/overview/), yang merupakan database yang dihosting penuh sebagai penawaran layanan dari DBaa Redis. Migrasi ini membantu meningkatkan kelincahan bisnis Anda, meningkatkan keandalan aplikasi, dan mengurangi biaya keseluruhan saat Anda mendapatkan akses ke fitur Redis Enterprise Cloud on AWS terbaru seperti ketersediaan 99,999%, kesederhanaan arsitektur, dan skala.

Ada aplikasi potensial untuk Redis Enterprise Cloud di sektor layanan keuangan, ritel, perawatan kesehatan, dan game, serta dalam kasus penggunaan yang memerlukan solusi untuk deteksi penipuan, inventaris waktu nyata, pemrosesan klaim, dan manajemen sesi. Anda dapat menggunakan Redis Enterprise Cloud untuk menyambung ke sumber daya AWS Anda―misalnya, ke server aplikasi yang berjalan di instans Amazon Elastic Compute Cloud (Amazon EC2), atau ke layanan mikro yang digunakan sebagai layanan AWS Lambda.

## Prasyarat dan batasan
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-prereqs"></a>

**Asumsi**
+ Saat ini Anda sedang mengoperasikan sistem database lokal yang ingin dimigrasikan ke cloud.
+ Anda telah mengidentifikasi persyaratan migrasi untuk beban kerja Anda, termasuk:
  + Persyaratan konsistensi data
  + Persyaratan infrastruktur dan lingkungan sistem
  + Pemetaan data dan persyaratan transformasi
  + Persyaratan pengujian fungsional
  + Persyaratan pengujian kinerja
  + Persyaratan validasi
  + Strategi cutover yang ditentukan
+ Anda telah menilai jadwal dan perkiraan biaya yang diperlukan untuk migrasi.
+ Persyaratan Anda mempertimbangkan ruang lingkup pekerjaan dan sistem serta database yang telah Anda identifikasi sebagai bagian dari migrasi.
+ Anda telah mengidentifikasi para pemangku kepentingan bersama dengan peran dan tanggung jawab mereka dalam matriks yang bertanggung jawab, akuntabel, dikonsultasikan, diinformasikan (RACI).
+ Anda telah menerima persetujuan dan persetujuan yang diperlukan dari semua pemangku kepentingan.

**Biaya**

Bergantung pada spesifikasi teknis database sumber yang ada (misalnya, ukuran memori, throughput, dan ukuran data total), arsitek solusi Redis dapat mengukur sistem target di Redis Enterprise Cloud.  Untuk informasi harga umum, lihat [Harga Redis](https://redis.com/redis-enterprise-cloud/pricing) di situs web Redis.

**Orang dan keterampilan**

Proses migrasi melibatkan peran dan tanggung jawab berikut.


| 
| 
| Peran | Deskripsi | Keterampilan yang dibutuhkan | 
| --- |--- |--- |
| **Arsitek solusi migrasi** | Seorang arsitek teknis yang memiliki keahlian dalam mendefinisikan, merencanakan, dan menerapkan strategi migrasi | Pemahaman teknis dan tingkat aplikasi tentang sistem sumber dan target; pengalaman dengan migrasi beban kerja ke cloud | 
| **Arsitek data** | Seorang arsitek teknis yang memiliki pengalaman luas dalam mendefinisikan, mengimplementasikan, dan memberikan solusi data untuk berbagai database | Pemodelan data untuk data terstruktur dan tidak terstruktur, pemahaman mendalam dan pengalaman dalam mengimplementasikan database untuk suatu perusahaan | 
| **Arsitek solusi Redis** | Seorang arsitek teknis yang dapat membantu arsitek cluster Redis berukuran optimal untuk kasus penggunaan yang sesuai | Keahlian dalam merancang dan menerapkan solusi Redis untuk berbagai kasus penggunaan | 
| **Arsitek solusi cloud** | Seorang arsitek teknis yang memiliki pemahaman yang lebih dalam tentang solusi cloud, terutama di AWS | Keahlian dalam merancang solusi untuk cloud; migrasi beban kerja dan pengalaman modernisasi aplikasi | 
| **Arsitek perusahaan** | Seorang arsitek teknis yang memiliki pemahaman lengkap tentang lanskap teknis di organisasi Anda, yang memiliki visi bersama untuk peta jalan future, dan yang mempraktikkan dan menetapkan praktik terbaik arsitektur standar di semua tim di organisasi Anda | Sertifikasi arsitektur perangkat lunak seperti TOGAF, keterampilan rekayasa perangkat lunak dasar, dan arsitektur solusi dan keahlian arsitektur perusahaan | 
| **IT atau DevOps insinyur** | Seorang insinyur yang bertanggung jawab untuk membuat dan memelihara infrastruktur, termasuk memantau infrastruktur untuk masalah, melakukan tugas pemeliharaan, dan membuat pembaruan sesuai kebutuhan. | Pemahaman yang kuat tentang berbagai teknologi, termasuk sistem operasi, jaringan, dan komputasi awan; keakraban dengan bahasa pemrograman seperti Python, Bash, dan Ruby, serta alat-alat seperti Docker, Kubernetes, dan Ansible | 

## Arsitektur
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-architecture"></a>

**Opsi migrasi**

Diagram berikut menunjukkan opsi untuk memigrasikan sumber data lokal (berbasis Redis atau lainnya) ke AWS. Ini menunjukkan beberapa alat migrasi yang dapat Anda pilih, seperti mengekspor file Redis Database (RDB) ke Amazon Simple Storage Service (Amazon S3), menggunakan fitur replikasi Redis, atau menggunakan AWS DMS.

![\[Opsi untuk memigrasikan sumber data lokal ke Redis Enterprise Cloud di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/384309f6-7218-4a46-83a5-f37ff95c8832/images/4b242a29-d283-49a3-aaea-a970813db6be.png)


1. Sumber data lokal: Database yang tidak didasarkan pada Redis, seperti MySQL, PostgreSQL, Oracle, SQL Server, atau MariaDB. 

1. Sumber data lokal: Database berbasis protokol Redis seperti Redis OSS dan Redis Enterprise Software.

1. Cara termudah untuk memigrasikan data dari database berbasis Redis adalah dengan mengekspor file RDB dan mengimpornya ke target Redis Enterprise Cloud di AWS.

1. Atau, Anda dapat memigrasikan data dari sumber ke target dengan menggunakan fitur replikasi (`ReplicaOf`) di Redis.

1. Jika persyaratan migrasi data Anda mencakup transformasi data, Anda dapat menggunakan Redis Input/Output Tools (RIOT) untuk memigrasikan data.

1. Atau, Anda dapat menggunakan AWS Data Migration Service (AWS DMS) untuk memigrasikan data dari database berbasis SQL. 

1. Anda harus menggunakan peering virtual private cloud (VPC) untuk AWS DMS agar berhasil memigrasikan data ke target Redis Enterprise Cloud di AWS.

**Arsitektur target**

Diagram berikut menunjukkan arsitektur penerapan khas untuk Redis Enterprise Cloud di AWS dan menggambarkan bagaimana hal itu dapat digunakan dengan layanan AWS utama.

![\[Arsitektur penerapan untuk Redis Enterprise Cloud di AWS, dan digunakan dengan layanan AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/384309f6-7218-4a46-83a5-f37ff95c8832/images/f1351537-e710-4a68-8768-89d44870150f.png)


1. Anda dapat terhubung ke aplikasi bisnis yang didukung oleh Redis Enterprise Cloud di AWS.

1. Anda dapat menjalankan aplikasi bisnis di akun AWS Anda sendiri, di VPC dalam akun tersebut.

1. Anda dapat menggunakan titik akhir database Redis Enterprise Cloud untuk terhubung ke aplikasi Anda. Contohnya termasuk server aplikasi yang berjalan pada EC2 instance, layanan mikro yang digunakan sebagai layanan AWS Lambda, aplikasi Amazon Elastic Container Service (Amazon ECS) Container Service (Amazon ECS), atau aplikasi Amazon Elastic Kubernetes Service (Amazon EKS).

1. Aplikasi bisnis yang berjalan di VPC Anda memerlukan koneksi rekan VPC ke VPC Redis Enterprise Cloud. Hal ini memungkinkan aplikasi bisnis untuk terhubung dengan aman melalui endpoint pribadi.

1. Redis Enterprise Cloud on AWS adalah platform database NoSQL dalam memori yang digunakan sebagai DBaa S di AWS dan sepenuhnya dikelola oleh Redis.

1. Redis Enterprise Cloud digunakan dalam VPC di akun AWS standar yang dibuat oleh Redis.

1. Untuk alasan keamanan, Redis Enterprise Cloud digunakan di subnet pribadi yang dapat diakses di titik akhir pribadi dan publik. Kami menyarankan Anda menghubungkan aplikasi klien Anda ke Redis pada titik akhir pribadi. Jika Anda berencana untuk menggunakan titik akhir publik, kami sangat menyarankan agar Anda [mengaktifkan TLS](https://docs.redis.com/latest/rc/security/database-security/tls-ssl/) untuk mengenkripsi data antara aplikasi klien Anda dan Redis Enterprise Cloud.

Metodologi migrasi Redis sejalan dengan metodologi migrasi AWS, yang diilustrasikan dalam [Memobilisasi organisasi Anda untuk mempercepat migrasi skala besar di situs web AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-migration/overview.html). 

**Otomatisasi dan skala**

Tugas penyiapan lingkungan untuk migrasi dapat diotomatisasi melalui templat AWS Landing Zone dan infrastruktur sebagai kode (IAc) untuk otomatisasi dan skala. Ini dibahas di bagian [Epik](#migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-epics) dari pola ini.

## Alat
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-tools"></a>

Berdasarkan persyaratan migrasi data, Anda dapat memilih dari pilihan opsi teknologi untuk memigrasikan data Anda ke Redis Enterprise Cloud di AWS. Tabel berikut menjelaskan dan membandingkan alat-alat ini.


| 
| 
| Alat | Deskripsi | Keuntungan | Kekurangan | 
| --- |--- |--- |--- |
| [https://docs.redis.com/latest/rc/api/examples/back-up-and-import-data/](https://docs.redis.com/latest/rc/api/examples/back-up-and-import-data/) | Anda mengekspor data dari sumber (misalnya, Redis OSS atau Redis Enterprise Software) database dalam bentuk file RDB. Jika database Anda disediakan melalui Redis OSS Cluster, Anda mengekspor setiap master shard ke RDB.Anda kemudian mengimpor semua file RDB dalam satu langkah. Jika database sumber Anda didasarkan pada Cluster OSS tetapi database target Anda tidak menggunakan API Cluster OSS, Anda harus mengubah kode sumber aplikasi Anda untuk menggunakan pustaka klien Redis standar.Persyaratan transformasi data atau penggabungan database logis memerlukan proses yang lebih kompleks, yang dijelaskan di bawah *Penggabungan database logis* nanti dalam tabel ini. | Sederhana.Bekerja dengan solusi berbasis Redis apa pun yang dapat mengekspor data dalam format RDB sebagai sumber (termasuk Redis OSS dan Redis Enterprise Software).Mencapai konsistensi data dengan proses yang sederhana. | Tidak menangani persyaratan transformasi data atau mendukung penggabungan database logis.Memakan waktu untuk kumpulan data yang lebih besar.Tidak ada dukungan migrasi delta yang dapat menyebabkan waktu henti yang lebih lama. | 
| [Fitur replikasi Redis (aktif-pasif](https://docs.redis.com/latest/rs/databases/import-export/replica-of/)) | Anda dapat terus mereplikasi data dari Redis OSS, Enterprise Software, atau database Enterprise Cloud ke database Redis Enterprise Cloud. Setelah sinkronisasi awal, fitur replikasi Redis (`ReplicaOf`) melakukan migrasi delta, yang berarti hampir tidak ada waktu henti aplikasi yang diamati.Fitur replikasi Redis dimaksudkan untuk digunakan dengan cara aktif-pasif. Target diasumsikan pasif dan disinkronkan ulang sepenuhnya (disiram dan disinkronkan dari database sumber). Oleh karena itu, beralih antara sumber dan target agak lebih rumit.Dimungkinkan untuk mereplikasi dari Redis OSS Cluster ke database Redis Enterprise Cloud berkerumun standar dengan menentukan semua pecahan master Cluster OSS sebagai sumber. Namun, fitur replikasi Redis memungkinkan maksimum 32 basis data sumber. | Mendukung replikasi berkelanjutan (beban data awal diikuti oleh delta).Hampir tidak ada waktu henti (tergantung pada kelambatan replikasi).Mencapai konsistensi data. | Hanya satu situs yang dimaksudkan untuk aktif, jadi beralih antar situs lebih rumit.Mendukung maksimal 32 pecahan master saat Anda bermigrasi dari Cluster OSS. | 
| [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) | Anda dapat menggunakan AWS DMS untuk memigrasikan data dari database sumber apa pun yang didukung ke penyimpanan data Redis target dengan waktu henti minimal. Untuk informasi selengkapnya, lihat [Menggunakan Redis sebagai target AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redis.html) AWS DMS. | Mendukung migrasi sumber data NoSQL dan SQL.Bekerja dengan baik dengan layanan AWS lainnya.Mendukung migrasi langsung dan mengubah kasus penggunaan pengambilan data (CDC). | Nilai kunci Redis tidak dapat berisi karakter khusus seperti%.Tidak mendukung migrasi data yang memiliki karakter khusus dalam baris atau nama bidang.Tidak mendukung mode objek biner besar penuh (LOB). | 
| Penggabungan basis data logis | Persyaratan penggabungan basis data khusus mungkin memerlukan solusi migrasi data khusus. Misalnya, Anda mungkin memiliki empat database logis (`SELECT 0..3`) di Redis OSS, tetapi Anda mungkin ingin menggunakan titik akhir database tunggal alih-alih memindahkan data ke beberapa database Redis Enterprise Cloud. Redis Enterprise tidak mendukung database logis yang dapat dipilih, jadi Anda harus mengubah model data fisik database sumber. Misalnya, Anda dapat memetakan setiap indeks database ke awalan (`0`ke`usr`, `1` ke`cmp`, dan seterusnya), dan kemudian menggunakan skrip migrasi atau alat ekstrak, transformasi, dan muat (ETL) untuk menampilkan file RDB, yang kemudian dapat Anda impor ke database target. | Kontrol granular pada pembentukan data selama migrasi ke sistem target dengan menggunakan skrip kustom.  | Jika Anda memutuskan untuk tidak menyelesaikan migrasi, rollback bisa sangat menantang, terutama jika data yang lebih baru harus dikembalikan ke sistem sumber.Biaya untuk membangun bisa tinggi jika tujuannya adalah untuk membangun solusi satu kali untuk migrasi satu kali.Biaya pemeliharaan untuk kode, infrastruktur, waktu pengembangan, dan area lain bisa tinggi jika persyaratan migrasi sering berubah.  | 

Selain itu, Anda dapat menggunakan alat dan layanan berikut dari AWS.

Alat penilaian dan penemuan:
+ [Penilai Migrasi](https://aws.amazon.com/migration-evaluator/)

Alat migrasi aplikasi dan server:
+ [Layanan Migrasi Aplikasi AWS](https://aws.amazon.com/application-migration-service/)

[Alat migrasi basis data](https://aws.amazon.com/solutions/database-migrations/):
+ [Alat Konversi Skema AWS (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms/)

[Alat migrasi data](https://aws.amazon.com/cloud-data-migration/):
+ [AWS Storage Gateway](https://aws.amazon.com/storagegateway/)
+ [AWS DataSync](https://aws.amazon.com/datasync/)
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/)
+ [AWS Snowball](https://aws.amazon.com/snowball/)
+ [Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/)

Solusi AWS Partner:
+ [Mitra Kompetensi Migrasi AWS](https://aws.amazon.com/migration/partner-solutions/)

## Epik
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-epics"></a>

### Selesaikan tugas penemuan dan penilaian
<a name="complete-discovery-and-assessment-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi beban kerja. | Identifikasi beban kerja kandidat yang sesuai yang ingin Anda migrasikan. Pertimbangkan hal berikut sebelum Anda memilih beban kerja untuk migrasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html)Idealnya, pilih beban kerja yang memiliki dampak bisnis maksimal dengan risiko minimum yang terlibat. Jaga agar keseluruhan proses berulang dan bermigrasi dengan sedikit demi sedikit. | Arsitek data, Juara bisnis, sponsor proyek Migrasi | 
| Identifikasi sumber dan persyaratan data; desain model data. | Redis menjalankan lokakarya untuk mempercepat penemuan dan menentukan perencanaan migrasi untuk proyek tersebut. Sebagai bagian dari lokakarya ini, tim Redis mengidentifikasi sumber data dan persyaratan model data sumber, dan menganalisis bagaimana ini dapat direnovasi di Redis Enterprise Cloud.Tim migrasi Redis (Layanan Profesional) melakukan latihan desain model data terperinci dengan organisasi Anda. Sebagai bagian dari latihan ini, tim Redis:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | Arsitek solusi Redis | 
| Identifikasi karakteristik database sumber. | Identifikasi produk Redis yang digunakan di lingkungan sumber dan target. Contoh:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | Arsitek data | 
| Kumpulkan SLA sistem saat ini dan metrik ukuran lainnya. | Tentukan perjanjian tingkat layanan saat ini (SLAs) yang dinyatakan dalam hal throughput (operasi per detik), latensi, ukuran memori keseluruhan per database, dan persyaratan ketersediaan tinggi (HA). | Arsitek data | 
| Identifikasi karakteristik sistem target. | Tentukan jawaban atas pertanyaan-pertanyaan ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | Arsitek data, arsitek solusi Redis (opsional) | 
| Identifikasi dependensi. | Identifikasi dependensi hulu dan hilir dari sistem saat ini yang akan dimigrasikan. Pastikan bahwa pekerjaan migrasi selaras dengan migrasi sistem dependen lainnya. Misalnya, jika Anda berencana untuk memigrasikan aplikasi bisnis lain dari lokasi ke AWS Cloud, identifikasi aplikasi ini dan selaraskan berdasarkan sasaran proyek, garis waktu, dan pemangku kepentingan. | Arsitek data, arsitek perusahaan | 
| Identifikasi alat migrasi. | Bergantung pada persyaratan migrasi data Anda (seperti data sumber atau persyaratan waktu henti), Anda dapat menggunakan salah satu alat yang dijelaskan sebelumnya di bagian [Alat](#migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-tools). Selain itu, Anda dapat menggunakan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | Arsitek solusi migrasi, arsitek solusi Redis | 
| Buat rencana kontingensi. | Buat rencana darurat untuk memutar kembali, jika Anda mengalami masalah selama migrasi. | Manajemen proyek, tim teknis, termasuk arsitek | 

### Selesaikan tugas keamanan dan kepatuhan
<a name="complete-security-and-compliance-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Amankan konsol administrasi Redis. | Untuk mengamankan konsol administrasi, ikuti instruksi dalam [dokumentasi Redis](https://redis.io/docs/latest/operate/oss_and_stack/management/security/). | Administrator infrastruktur TI | 
| Amankan database Redis. | Lihat halaman berikut dalam dokumentasi Redis untuk:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) |  | 
| Aman Redis Cloud APIs. | Saat [mengaktifkan API](https://docs.redis.com/latest/rc/api/get-started/enable-the-api/), Anda dapat [mengelola kunci API](https://docs.redis.com/latest/rc/api/get-started/manage-api-keys/) untuk semua pemilik akun Redis Cloud Anda. Untuk ikhtisar fitur keamanan API, lihat [dokumentasi autentikasi API di situs](https://docs.redis.com/latest/rc/api/get-started/) web Redis. | Administrator infrastruktur TI | 

### Siapkan lingkungan baru
<a name="set-up-the-new-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan lingkungan baru di AWS. | Tugas ini meliputi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | IT atau DevOps insinyur | 
| Menerapkan arsitektur migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html)Anda sekarang siap untuk menjalankan pipeline migrasi data aktual dan mengujinya. | IT atau DevOps insinyur | 

### Mengatur jaringan
<a name="set-up-networking"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membangun konektivitas. | Membangun konektivitas antara infrastruktur lokal dan sumber daya AWS Cloud. Gunakan grup keamanan, AWS Direct Connect, dan sumber daya lainnya untuk mencapai fungsionalitas ini. Untuk informasi selengkapnya, lihat [Connect Your Data Center ke AWS](https://aws.amazon.com/getting-started/hands-on/connect-data-center-to-aws/) di situs web AWS. | IT atau DevOps insinyur | 
| Siapkan pengintip VPC. | Buat peering VPC antara aplikasi bisnis VPCs yang menjalankan (atau EC2 instance yang menjalankan alat migrasi atau server replikasi AWS DMS) dan VPC yang menjalankan Redis Enterprise Cloud. Untuk petunjuknya, lihat [Memulai Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) dalam dokumentasi Amazon VPC, dan Aktifkan peering [VPC](https://docs.redis.com/latest/rc/security/vpc-peering/) di dokumentasi Redis. | IT atau DevOps insinyur | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih alat migrasi data. | Tinjau tabel di bagian [Alat](#migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-tools) untuk melihat deskripsi, kelebihan, dan kekurangan alat ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html)Baris berikut menjelaskan tugas migrasi data yang terkait dengan setiap alat. | Arsitek solusi migrasi | 
| Opsi 1: Gunakan ekspor dan impor RDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html)Untuk informasi lebih lanjut, lihat [dokumentasi Redis](https://docs.redis.com/latest/rc/databases/import-data/). | Arsitek solusi migrasi, arsitek solusi Redis | 
| Opsi 2: Gunakan fitur replikasi Redis (aktif-pasif). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html)Untuk informasi lebih lanjut, lihat [dokumentasi Redis](https://docs.redis.com/latest/rs/databases/import-export/replica-of/). | Arsitek solusi migrasi, arsitek solusi Redis | 
| Opsi 3: Gunakan AWS DMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.html) | Arsitek solusi migrasi, arsitek solusi Redis | 
| Opsi 4: Gunakan penggabungan database logis. | Opsi ini melibatkan penggunaan skrip migrasi atau alat ETL yang dapat mengubah model data fisik basis data sumber dan menghasilkan file RDB. Redis Professional Services dapat membantu dengan langkah ini, jika diperlukan. | Arsitek solusi migrasi, arsitek solusi Redis | 

### Migrasi aplikasi Anda
<a name="migrate-your-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Sejajarkan jadwal dan tujuan manajemen proyek. | Sejajarkan tujuan proyek migrasi, tonggak sejarah, dan garis waktu lapisan aplikasi dengan proyek migrasi data Redis. | Manajemen proyek | 
| Sejajarkan kegiatan pengujian. | Setelah layer aplikasi dimigrasikan dan dimodernisasi di AWS Cloud, arahkan layer aplikasi ke Redis Enterprise Cloud yang baru dimigrasi di AWS untuk pengujian. | Pengujian | 

### Uji
<a name="test"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Melaksanakan rencana pengujian. | Jalankan rutinitas migrasi data dan skrip yang dikembangkan selama fase implementasi di lingkungan pengujian, sesuai persyaratan pengujian, di situs Anda. | Pengujian | 
| Uji kualitas data. | Uji kualitas data setelah Anda memigrasikan data. | Pengujian | 
| Fungsionalitas uji. | Uji kueri data dan lapisan aplikasi untuk memastikan bahwa aplikasi berkinerja pada tingkat yang sama seperti di sistem sumber. | Pengujian | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat keputusan cutover.  | Setelah semua pengujian tingkat aplikasi dan tingkat basis data selesai, tim kepemimpinan eksekutif dan pemangku kepentingan membuat keputusan akhir mengenai apakah akan memotong ke lingkungan baru di AWS berdasarkan hasil akhir yang dikonfirmasi oleh tim pengujian. | Manajemen proyek, Juara bisnis | 
| Potong ke AWS Cloud. | Ketika Anda telah mengonfirmasi bahwa semuanya sudah ada, arahkan layer aplikasi ke data yang baru dimigrasi dan arahkan klien ke lapisan aplikasi baru yang berjalan berdasarkan sistem Redis Enterprise Cloud baru di AWS. | TI atau DevOps insinyur, Arsitek data, Arsitek solusi migrasi, arsitek solusi Redis | 

## Sumber daya terkait
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-resources"></a>

**Sumber daya Redis**
+ [Dokumentasi Redis Enterprise Cloud](https://docs.redis.com/latest/rc/)
+ Alat [RIOT](https://github.com/redis-developer/riot) (GitHub repositori)
+ [Penyedia Terraform (unduh](https://registry.terraform.io/providers/RedisLabs/rediscloud/latest))

**Sumber daya AWS**
+ [Migrasi demo](https://aws.amazon.com/getting-started/tutorials/)
+ [Solusi AWS Partner](https://aws.amazon.com/quickstart/)
+ [Dokumentasi](https://docs.aws.amazon.com/index.html)
+ [Postingan blog](https://aws.amazon.com/blogs/database/category/migration/)
+ [Kertas putih](https://aws.amazon.com/whitepapers/)
+ [Tutorial dan video](https://aws.amazon.com/getting-started/tutorials/)
+ [Migrasi cloud AWS](https://aws.amazon.com/cloud-migration/)
+ [AWS Prescriptive Guidance](https://aws.amazon.com/prescriptive-guidance/)

## Informasi tambahan
<a name="migrate-redis-workloads-to-redis-enterprise-cloud-on-aws-additional"></a>

Untuk persyaratan keamanan standar untuk memigrasikan beban kerja Redis ke AWS Cloud, lihat [Praktik Terbaik untuk Keamanan, Identitas, dan Kepatuhan](https://aws.amazon.com/architecture/security-identity-compliance/) di situs web AWS, dan [Pusat Kepercayaan Redis](https://trust.redis.io/) di situs web Redis.

# Migrasikan SAP HANA ke AWS menggunakan SAP HSR dengan nama host yang sama
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname"></a>

*Pradeep Puliyampatta, Amazon Web Services*

## Ringkasan
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-summary"></a>

Migrasi SAP HANA ke Amazon Web Services (AWS) dapat dilakukan dengan menggunakan beberapa opsi, termasuk pencadangan dan pemulihan, ekspor dan impor, dan SAP HANA System Replication (HSR). Pemilihan opsi tertentu tergantung pada konektivitas jaringan antara sumber dan target database SAP HANA, ukuran database sumber, pertimbangan downtime, dan faktor lainnya. 

Opsi SAP HSR untuk memigrasikan beban kerja SAP HANA ke AWS berfungsi dengan baik ketika ada jaringan yang stabil antara sumber dan sistem target dan seluruh database (snapshot replikasi SAP HANA DB) dapat sepenuhnya direplikasi dalam 1 hari, sebagaimana ditetapkan oleh SAP untuk persyaratan throughput jaringan untuk SAP HSR. Persyaratan downtime dengan pendekatan ini terbatas untuk melakukan pengambilalihan pada AWS lingkungan target, cadangan SAP HANA DB, dan tugas pasca-migrasi.

SAP HSR mendukung penggunaan nama host yang berbeda (nama host yang dipetakan ke alamat IP yang berbeda) untuk lalu lintas replikasi antara sistem primer, atau sumber, dan sekunder, atau target. Anda dapat melakukan ini dengan mendefinisikan kumpulan nama host tertentu di bawah `[system_replication_hostname_resolution]` bagian di. `global.ini` Pada bagian ini, semua host dari situs primer dan sekunder harus ditentukan pada setiap host. Untuk langkah-langkah konfigurasi terperinci, lihat [dokumentasi SAP](https://help.sap.com/viewer/eb3777d5495d46c5b2fa773206bbfb46/1.0.12/en-US/c0cba1cb2ba34ec89f45b48b2157ec7b.html).

Salah satu kunci utama dari pengaturan ini adalah bahwa nama host di sistem primer harus berbeda dari nama host di sistem sekunder. Jika tidak, kesalahan berikut dapat diamati.
+ `"each site must have a unique set of logical hostnames"`
+ `"remoteHost does not match with any host of the source site. All hosts of source and target site must be able to resolve all hostnames of both sites correctly"`

Namun, jumlah langkah pasca-migrasi dapat dikurangi dengan menggunakan nama host SAP HANA DB yang sama pada lingkungan target. AWS  

Pola ini memberikan solusi untuk menggunakan nama host yang sama pada lingkungan sumber dan target saat menggunakan opsi SAP HSR. Dengan pola ini, Anda dapat menggunakan opsi SAP HANA Hostname Rename. Anda menetapkan nama host sementara ke target SAP HANA DB untuk memfasilitasi keunikan nama host untuk SAP HSR. Setelah migrasi menyelesaikan tonggak pengambilalihan pada lingkungan SAP HANA target, Anda dapat mengembalikan nama host sistem target kembali ke nama host sistem sumber.

## Prasyarat dan batasan
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Virtual Private Cloud (VPC) dengan titik akhir virtual private network (VPN) atau router.
+ AWS Client VPN atau AWS Direct Connect dikonfigurasi untuk mentransfer file dari sumber ke target.
+ Database SAP HANA di lingkungan sumber dan target. Target level patch SAP HANA DB harus sama atau lebih tinggi dari level patch SAP HANA DB sumber, dalam edisi Platform SAP HANA yang sama. Misalnya, replikasi tidak dapat diatur antara sistem HANA 1.0 dan HANA 2.0. Untuk informasi lebih lanjut, lihat pertanyaan 15 di SAP Catatan: 1999880 - FAQ: SAP HANA System Replication.
+ Server aplikasi SAP di lingkungan target.
+ Volume Amazon Elastic Block Store (Amazon EBS) di lingkungan target.

**Batasan**

Daftar dokumen SAP berikut mencakup masalah yang diketahui terkait dengan solusi ini, termasuk kendala terkait tiering dinamis SAP HANA dan migrasi scale-out:
+ 2956397 — Gagal mengganti nama Sistem Database SAP HANA
+ 2222694 - Saat mencoba mengganti nama sistem HANA, kesalahan berikut muncul “File sumber tidak dimiliki oleh pengguna sidadm asli (uid = xxxx)”
+ 2607227 - hdblcm: register\$1rename\$1system: Gagal mengganti nama instance SAP HANA
+ 2630562 - HANA Hostname Rename gagal dan HANA tidak memulai
+ 2935639 - sr\$1register tidak menggunakan nama host yang ditentukan di bawah system\$1replication\$1hostname\$1resolution di bagian global.ini
+ 2710211 - Kesalahan: sistem sumber dan sistem target memiliki nama host logis yang tumpang tindih
+ 2693441 - Gagal mengganti nama Sistem SAP HANA karena kesalahan
+ 2519672 - HANA Primer dan Secondary memiliki sistem PKI SSFS data dan kunci yang berbeda atau tidak dapat memeriksa
+ 2457129 - Penggantian Nama Host Sistem SAP HANA Tidak Diizinkan saat Dynamic Tiering Adalah Bagian dari Lanskap
+ 2473002 - Menggunakan Replikasi Sistem HANA untuk memigrasikan sistem skala keluar (Tidak ada batasan yang disediakan oleh SAP dalam menggunakan pendekatan penggantian nama host ini untuk sistem SAP HANA skala keluar. Namun, prosedur harus diulang pada setiap host individu. Batasan migrasi scale-out lainnya juga berlaku untuk pendekatan ini.)

**Versi produk**
+ Solusi ini berlaku untuk platform SAP HANA DB edisi 1.0 dan 2.0.

## Arsitektur
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-architecture"></a>

**Pengaturan sumber**

Database SAP HANA diinstal pada lingkungan sumber. Semua koneksi server aplikasi SAP dan antarmuka DB menggunakan nama host yang sama untuk koneksi klien. Diagram berikut menunjukkan contoh nama host sumber `hdbhost` dan alamat IP yang sesuai.

![\[SAP HANA DB sumber hdbhost di pusat data perusahaan dengan alamat IP 10.1.2.1.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/004781c1-96df-43dd-a52e-ed1db5bdf9ef/images/a1b28c3a-93b7-4f82-a5da-81008b74c9ae.png)


**Pengaturan target**

Lingkungan AWS Cloud target menggunakan nama host yang sama untuk menjalankan database SAP HANA. Lingkungan target di AWS mencakup hal-hal berikut:
+ Basis data SAP Hana
+ Server aplikasi SAP
+ EBS volume

![\[SAP HANA DB menargetkan hdbhost di AWS Cloud dengan alamat IP 172.16.2.1.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/004781c1-96df-43dd-a52e-ed1db5bdf9ef/images/7f45d7aa-9b80-4413-bec9-1616492b650c.png)


**Konfigurasi menengah**

Dalam diagram berikut, nama host pada lingkungan AWS target sementara diganti namanya `temp-host` sehingga nama host pada sumber dan target unik. Setelah migrasi menyelesaikan tonggak pengambilalihan pada lingkungan target, nama host virtual sistem target diganti namanya menggunakan nama asli,. `hdbhost`

Konfigurasi perantara mencakup salah satu opsi berikut:
+ AWS Client VPN dengan titik akhir Client VPN
+ Direct Connect menghubungkan ke router

![\[Sistem sumber untuk menargetkan sistem AWS Cloud dengan alamat IP temp-host 172.31.5.10.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/004781c1-96df-43dd-a52e-ed1db5bdf9ef/images/e2794477-2e8f-4974-bca3-2275f6809fce.png)


Server aplikasi SAP pada lingkungan AWS target dapat diinstal baik sebelum pengaturan replikasi atau setelah pengambilalihan. Namun, menginstal server aplikasi sebelum penyiapan replikasi dapat membantu mengurangi waktu henti selama instalasi, konfigurasi ketersediaan tinggi, dan pencadangan.

## Alat
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-tools"></a>

**Layanan AWS**
+ [AWS Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/client-vpn-user-what-is.html)adalah layanan VPN berbasis klien terkelola yang memungkinkan Anda mengakses AWS sumber daya dan sumber daya dengan aman di jaringan lokal Anda.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)menghubungkan jaringan internal Anda ke Direct Connect lokasi melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke publik Layanan AWS, melewati penyedia layanan internet di jalur jaringan Anda.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) menyediakan volume penyimpanan tingkat blok untuk digunakan dengan instans Amazon Elastic Compute Cloud ( EC2Amazon). Volume EBS berfungsi seperti perangkat blok mentah yang tidak terformat. Anda dapat memasang volume ini sebagai perangkat di instans Anda.

**Alat lainnya**
+ [Server aplikasi SAP — Server](https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-US/47/a032c0305e0b3ae10000000a42189d/content.htm?no_cache=true) aplikasi SAP menyediakan programmer dengan cara untuk mengekspresikan logika bisnis. Server aplikasi SAP melakukan pemrosesan data berdasarkan logika bisnis. Data aktual disimpan dalam database, yang merupakan komponen terpisah. 
+ [Kokpit SAP HANA](https://help.sap.com/viewer/6b94445c94ae495c83a19646e7c3fd56/2.0.03/en-US/da25cad976064dc0a24a1b0ee9b62525.html) dan [SAP HANA Studio](https://help.sap.com/viewer/a2a49126a5c546a9864aae22c05c3d0e/2.0.00/en-US/c831c3bbbb571014901199718bf7edc5.html) - Baik kokpit SAP HANA dan SAP HANA Studio menyediakan antarmuka administratif ke database SAP HANA. Di SAP HANA Studio, konsol Administrasi SAP HANA adalah tampilan sistem yang menyediakan konten yang relevan untuk administrasi basis data SAP HANA. 
+ [SAP HANA System Replication](https://help.sap.com/viewer/4e9b18c116aa42fc84c7dbfd02111aba/2.0.04/en-US) - SAP HANA System Replication (SAP HSR) adalah prosedur standar yang disediakan oleh SAP untuk mereplikasi database SAP HANA. Executable yang diperlukan untuk SAP HSR adalah bagian dari kernel server SAP HANA itu sendiri.

## Epik
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-epics"></a>

### Siapkan lingkungan sumber dan target
<a name="prepare-the-source-and-target-environments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dan konfigurasikan database SAP HANA. | Di lingkungan sumber dan target, pastikan bahwa SAP HANA DB diinstal dan dikonfigurasi sesuai dengan SAP HANA pada praktik terbaik. Untuk informasi lebih lanjut, lihat [SAP HANA di AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana.pdf). | Administrasi SAP Basis | 
| Memetakan alamat IP. | Di lingkungan target, pastikan bahwa nama host sementara ditetapkan ke alamat IP internal. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.html) | Administrasi AWS | 
| Selesaikan nama host target. | Pada SAP HANA DB sekunder, konfirmasikan bahwa kedua nama host (`hdbhost`dan`temp-host`) diselesaikan untuk jaringan replikasi SAP HANA dengan memperbarui nama host yang relevan dalam file. `/etc/hosts` | Administrasi Linux | 
| Cadangkan sumber dan targetkan database SAP HANA. | Gunakan SAP HANA Studio atau kokpit SAP HANA untuk melakukan backup pada database SAP HANA. | Administrasi SAP Basis | 
| Sistem pertukaran sertifikat PKI. | (Hanya berlaku untuk SAP HANA 2.0 dan yang lebih baru) Sertifikat pertukaran di penyimpanan aman infrastruktur kunci publik sistem (PKI) di penyimpanan sistem file (SSFS) antara database primer dan sekunder. Untuk informasi selengkapnya, lihat SAP Note 2369981 — Langkah-langkah konfigurasi yang diperlukan untuk otentikasi dengan SAP HANA System Replication. | Administrasi SAP Basis | 

### Ganti nama target SAP HANA DB
<a name="rename-the-target-sap-hana-db"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan koneksi klien target. | Di lingkungan target, matikan server aplikasi SAP dan koneksi klien lainnya. | Administrasi SAP Basis | 
| Ubah nama target SAP HANA DB menjadi nama host sementara. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.html)Stop dan start SAP HANA DB akan dikendalikan oleh`hdblcm`.  | Administrasi SAP Basis | 
| Tetapkan jaringan replikasi. | Dalam `global.ini` file sistem sumber, di bawah `[system_replication_hostname_resolution]` header, berikan rincian jaringan replikasi sumber dan target. Kemudian salin entri ke `global.ini` file pada sistem target. | Administrasi SAP Basis | 
| Aktifkan replikasi pada primer. | Untuk mengaktifkan replikasi pada sumber SAP HANA DB, jalankan perintah berikut. <pre>hdbnsutil -sr_enable --name=siteA</pre> | Administrasi SAP Basis | 
| Daftarkan target SAP HANA DB sebagai sistem sekunder. | **Untuk mendaftarkan target SAP HANA DB sebagai sistem sekunder ke sumber SAP HSR, pilih replikasi async.** <pre>(sid)adm $> HDB stop<br />(sid)adm $> hdbnsutil -sr_register –name=siteB –remotehost=hdbhost /<br />--remoteInstance=00 –replicationMode=async –operationMode=logreplay<br />(sid)adm $> HDB start</pre>Atau, Anda dapat memilih `–online` opsi untuk mendaftar. Dalam hal ini, Anda tidak perlu berhenti dan memulai SAP HANA DB. | Administrasi SAP Basis | 
| Validasi sinkronisasi. | Pada sumber SAP HANA DB, verifikasi bahwa semua log diterapkan pada sistem target (karena ini adalah replikasi asinkron).Untuk memverifikasi replikasi, pada sumbernya, jalankan perintah berikut.<pre>(sid)adm $> cdpy<br />(sidadm $> python systemReplicationStatus.py</pre> | Administrasi SAP Basis | 
| Matikan aplikasi SAP sumber dan SAP HANA DB. | Selama cutover migrasi, lakukan shutdown sistem sumber (aplikasi SAP dan database SAP HANA. | Administrasi SAP Basis | 
| Lakukan pengambilalihan pada target. | Untuk melakukan pengambilalihan pada target di AWS, jalankan perintah`hdbnsutil -sr_takeover`. | Administrasi SAP Basis | 
| Pada target SAP HANA DB, matikan replikasi. | Untuk menghapus metadata replikasi, hentikan replikasi pada sistem target dengan menjalankan perintah. `hdbnsutil -sr_disable` Ini sesuai dengan SAP Note 2693441 - Gagal mengganti nama Sistem SAP HANA karena kesalahan. | Administrasi SAP Basis | 
| Cadangkan target SAP HANA DB. | Setelah pengambilalihan berhasil, kami sarankan untuk melakukan cadangan SAP HANA DB penuh. | Administrasi SAP Basis | 

### Kembalikan ke nama host asli di sistem target
<a name="revert-to-the-original-hostname-in-the-target-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembalikan nama host SAP HANA DB target ke aslinya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.html)Anda dapat memvalidasi opsi lain sesuai kebutuhan. Namun, pastikan Anda tidak mencampur nama host dengan perubahan SID (SAP Note 2598814 - hdblcm: penggantian nama SID gagal). | Administrasi SAP Basis | 
| Sesuaikan hdbuserstore. | Sesuaikan `hdbuserstore` detail yang menunjuk ke `schema/user` detail sumber. Untuk langkah-langkah rinci, lihat [dokumentasi SAP](https://help.sap.com/viewer/b3ee5778bc2e4a089d3299b82ec762a7/2.0.02/en-US/ddbdd66b632d4fe7b3c2e0e6e341e222.html?q=hdbuserstore). Untuk memvalidasi langkah ini, jalankan perintah`R3trans -d`. Hasilnya harus mencerminkan koneksi yang berhasil ke database SAP HANA. | Administrasi SAP Basis | 
| Mulai koneksi klien. | Di lingkungan target, mulai server aplikasi SAP dan koneksi klien lainnya. | Administrasi SAP Basis | 

## Sumber daya terkait
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-resources"></a>

**Referensi SAP**

Referensi dokumentasi SAP sering diperbarui oleh SAP. Untuk tetap up to date, lihat SAP Note 2407186 — Panduan Cara & Whitepaper Untuk Ketersediaan Tinggi SAP HANA.

*Catatan SAP tambahan*
+ 2550327 - Cara Mengganti Nama Sistem SAP HANA
+ 1999880 - FAQ: Replikasi Sistem SAP HANA
+ 2078425 - Catatan pemecahan masalah untuk alat manajemen siklus hidup platform SAP HANA hdblcm
+ 2592227 — Perubahan akhiran FQDN dalam sistem HANA
+ 2048681 - Melakukan tugas administrasi manajemen siklus hidup platform SAP HANA pada sistem multi-host tanpa kredensi SSH atau root

*Dokumen SAP*
+ [Koneksi Jaringan Replikasi Sistem](https://help.sap.com/docs/SAP_HANA_PLATFORM/4e9b18c116aa42fc84c7dbfd02111aba/47190b425eb1433697b026ecd46ff5f9.html)
+ [Resolusi Nama Host untuk Replikasi Sistem](https://help.sap.com/viewer/eb3777d5495d46c5b2fa773206bbfb46/1.0.12/en-US/c0cba1cb2ba34ec89f45b48b2157ec7b.html)

**AWS referensi**
+ [Migrasi SAP HANA dari Platform Lain ke AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/migrating-hana-hana-to-aws.html)

## Informasi tambahan
<a name="migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname-additional"></a>

Perubahan yang dilakukan oleh `hdblcm` sebagai bagian dari aktivitas penggantian nama host dikonsolidasikan dalam log verbose berikut.

![\[Kode yang menunjukkan proses berhenti pada temp-host, dimulai pada hdbhost, dan sistem SAP HANA DB diganti namanya.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/004781c1-96df-43dd-a52e-ed1db5bdf9ef/images/9e0c11ca-6555-484f-9639-107f60f725f5.png)


# Migrasi grup ketersediaan Microsoft SQL Server Always On menggunakan AWS Application Migration Service
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn"></a>

*Sreenivas Nettem, Bharath Kumar Pammi Ramesh, Anantharaman Seshadri, dan Gireesh Sreekantan, Amazon Web Services*

## Ringkasan
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-summary"></a>

AWS Application Migration Service (AWS MGN) adalah alat pilihan untuk rehosting lingkungan yang ada di AWS Cloud, yang memungkinkan pelanggan untuk menjauh dari pusat data lokal. Pola ini menguraikan proses menggunakan AWS MGN untuk memigrasikan cluster Windows dengan grup ketersediaan Microsoft SQL Server Always On.

## Prasyarat dan batasan
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Peran AWS Identity and Access Management (IAM) untuk orkestrasi AWS MGN.
+ Akses ke server database sumber (grup ketersediaan SQL Server Always On).
+ Active Directory di AWS landing zone untuk mempertahankan nama DNS.
+ Subnet pementasan dengan komunikasi jaringan tertutup ke Active Directory.
+ Target subnet yang dapat berkomunikasi dengan Active Directory.
+ Dua alamat IP cadangan untuk cluster Windows di subnet target (satu di setiap Availability Zone).
+ Dua alamat IP cadangan untuk pendengar SQL Always On di subnet target (satu di setiap Availability Zone).

**Versi produk**
+ Windows Server 2012 atau yang lebih baru
+ SQL Server 2012 atau yang lebih baru

## Arsitektur
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-architecture"></a>

**Tumpukan teknologi sumber**

Cluster Microsoft Windows (mesin fisik atau virtual lokal) Grup ketersediaan Microsoft SQL Server Selalu Aktif

**Tumpukan teknologi target**

Contoh Amazon EC2 Windows

**Arsitektur target**

![\[Arsitektur AWS untuk memigrasi ketersediaan SQL Server Always On menggunakan AWS MGN.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/aa94040b-5ecf-42f9-90e3-929d0fa5e715/images/0b85c613-51df-475b-9598-3da3f9cd47c6.png)


## Alat
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-tools"></a>

*Layanan AWS*
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)membantu Anda meng-host ulang (mengangkat dan menggeser) aplikasi ke aplikasi AWS Cloud tanpa perubahan dan dengan waktu henti minimal.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

*Alat-alat lainnya*
+ [Microsoft SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server. 

## Praktik terbaik
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-best-practices"></a>

Untuk AWS MGN, lihat [Praktik terbaik untuk AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/best_practices_mgn.html).

## Epik
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-epics"></a>

### Siapkan akun target
<a name="prepare-the-target-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Inisialisasi AWS MGN. | Inisialisasi AWS MGN di target. Wilayah AWS Ini menciptakan peran dan kebijakan IAM yang diperlukan. Untuk informasi selengkapnya, lihat [Menginisialisasi Layanan Migrasi Aplikasi dengan konsol](https://docs.aws.amazon.com/mgn/latest/ug/mgn-initialize-console.html). | Administrator awan | 
| Buat replikasi dan luncurkan templat. | Konfigurasikan templat replikasi dan luncurkan untuk digunakan dengan AWS MGN. Untuk informasi selengkapnya, lihat [Mengonfigurasi templat](https://docs.aws.amazon.com/mgn/latest/ug/mgn-initialization-templates.html) dalam AWS dokumentasi. | Administrator awan | 
| Izinkan port komunikasi. | Untuk mengaktifkan komunikasi jaringan untuk AWS MGN, izinkan lalu lintas melalui port TCP 443 dan 1500. Untuk informasi selengkapnya, lihat [Persyaratan jaringan untuk Layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/Network-Requirements.html) dalam AWS dokumentasi. | Administrator awan, Administrator jaringan | 

### Siapkan server sumber
<a name="prepare-the-source-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi prasyarat AWS MGN. | Verifikasi bahwa server sumber memenuhi prasyarat untuk instalasi agen MGN. AWS Untuk informasi selengkapnya, lihat [Persyaratan instalasi](https://docs.aws.amazon.com/mgn/latest/ug/installation-requirements.html) dalam AWS dokumentasi. | Insinyur migrasi | 
| Instal agen AWS MGN. | Instal agen AWS MGN di server sumber. Selama instalasi, pilih Wilayah AWS tempat server akan dimigrasikan. Setelah instalasi, agen berkomunikasi dengan layanan dan memulai replikasi. Untuk informasi selengkapnya, lihat [Menginstal Agen AWS Replikasi di server Windows](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html). | Insinyur migrasi | 
| Periksa status server sumber. | Di konsol AWS MGN, periksa status server sumber. Server menampilkan **Siap untuk pengujian** saat replikasi dimulai.Jika Anda menemukan kesalahan, lihat [Memecahkan masalah kesalahan komunikasi dalam dokumentasi](https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Communication-Errors.html) AWS MGN. | Administrator cloud, Insinyur migrasi | 
| Optimalkan pengaturan replikasi. | SQL Always On cluster menggunakan replikasi I/O sinkron tinggi dari server utama ke server sekunder. Untuk mengoptimalkan replikasi dan menghindari lag, gunakan server [replikasi khusus untuk setiap server](https://docs.aws.amazon.com/mgn/latest/ug/replication-settings-template.html) SQL Always On.**Jika database lebih besar dari 5 TB, pertimbangkan untuk memilih ukuran instance server replikasi yang lebih besar seperti **m5.large**, bukan t3.small default.** | Administrator cloud, Insinyur migrasi | 
| Perbarui template peluncuran. | Perbarui [pengaturan peluncuran](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html) dan pilih subnet untuk server SQL Always On. Server cluster SQL Always On tersebar di berbagai tempat AWS Zona Ketersediaan untuk ketersediaan tinggi. | Insinyur migrasi, pimpinan Migrasi | 
| Perbarui pengaturan peluncuran. | Berdasarkan ukuran dan persyaratan kinerja Anda, perbarui jenis instans dan input/output operasi per detik (IOPS) di pengaturan peluncuran.(Opsional) Pilih elastic network interface yang ada di pengaturan peluncuran. | Insinyur migrasi, pimpinan Migrasi | 

### Tes cutover
<a name="test-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi server sumber. | Di konsol AWS MGN, verifikasi bahwa status server sumber **Siap untuk pengujian**. | Administrator cloud, Insinyur migrasi | 
| Luncurkan contoh pengujian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-always-on-group-using-mgn.html) | Administrator cloud, Insinyur migrasi | 
| Uji konektivitas dan integritas database. | Uji konektivitas dan integritas database dari instance pengujian. Kemudian tandai server sumber sebagai **Siap untuk cutover** di konsol AWS MGN. | Administrator cloud, Insinyur migrasi | 

### Tugas pra-migrasi
<a name="pre-migration-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji integritas database. | Ini membantu memastikan tidak ada masalah integritas database di sumber sebelum migrasi. Jalankan `DBCC CHECKDB` dan tentukan`WITH_PHYSICAL_ONLY`. Menjalankan pemeriksaan ini tanpa `WITH_PHYSICAL_ONLY` dapat menyebabkan masalah kinerja di sumbernya. Untuk menjaga integritas database, jalankan pemeriksaan penuh mingguan database.Perintah ini memeriksa integritas logis dan fisik database dengan mendeteksi potensi masalah korupsi. Pemeriksaan memverifikasi struktur database, seperti halaman, baris, indeks, dan tabel sistem. | Insinyur data, DBA | 
| Uji koneksi ke server yang terhubung. | Uji koneksi di antara semua server yang ada, dan dokumentasikan statusnya. Ini membantu memastikan bahwa server tertaut berfungsi sebagaimana dimaksud setelah migrasi. | Insinyur data, DBA | 
| Verifikasi cadangan. | Konfirmasikan integritas cadangan sumber. | Insinyur data, DBA | 

### AWS Potongan MGN
<a name="aws-mgn-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan SQL Server dan layanan cluster. | Hentikan layanan SQL Server dan Microsoft cluster pada semua node cluster SQL. | DBA, insinyur Migrasi | 
| Verifikasi server. | **Di konsol AWS MGN, verifikasi bahwa status server sumber **Siap untuk dipotong** dan status replikasi data Sehat.** | Insinyur migrasi | 
| Luncurkan cutover. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-always-on-group-using-mgn.html)Untuk informasi selengkapnya, lihat [Meluncurkan instance cutover](https://docs.aws.amazon.com/mgn/latest/ug/launch-cutover-gs.html) dalam dokumentasi AWS MGN. | Insinyur migrasi | 
| Uji server yang diluncurkan. | Masuk ke EC2 instans Amazon yang diluncurkan dan validasi kesehatan klaster. Verifikasi bahwa server berada di subnet yang benar, ukuran instans dan pengaturan IOPS sudah benar, dan server saksi dapat diakses. | DBA, insinyur Migrasi | 

### Tugas pasca-cutover basis data
<a name="database-post-cutover-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui alamat IP cluster. | Perbarui alamat IP cluster untuk cluster Windows menggunakan dua alamat IP cadangan di subnet target. Untuk informasi selengkapnya, lihat [Mengubah Alamat IP Instance Failover Cluster](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/change-the-ip-address-of-a-failover-cluster-instance?view=sql-server-2016). | DBA, insinyur Migrasi | 
| Perbarui pendengar IPs grup ketersediaan Selalu Aktif. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-always-on-group-using-mgn.html) | DBA, insinyur Migrasi | 
| Verifikasi koneksi. | Menggunakan SSMS, sambungkan ke pendengar grup ketersediaan Selalu Aktif, dan konfirmasikan bahwa koneksi berhasil. | DBA, insinyur Migrasi | 
| Periksa kesehatan grup ketersediaan Selalu Aktif. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-always-on-group-using-mgn.html) | DBA, insinyur Migrasi | 
| Periksa log kesalahan. | Buka log kesalahan, dan verifikasi kesalahan yang dilaporkan untuk instance SQL Server. Pastikan pemulihan selesai untuk semua database. | DBA, insinyur Migrasi | 
| Uji server yang ditautkan. | Uji konektivitas dari setiap server yang terhubung. Jika terjadi masalah konektivitas, pastikan server dan port target dapat diakses. | DBA, insinyur Migrasi | 

### Selesaikan cutover
<a name="finalize-the-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Selesaikan cutover. | Setelah Anda memvalidasi cluster SQL Always On target, [selesaikan](https://docs.aws.amazon.com/mgn/latest/ug/launch-cutover-gs.html#revert-finalize-cutover-gs) cutover melalui konsol MGN. AWS Ini menghentikan replikasi data dari server sumber dan membuang data dari server replikasi. Ini juga menghapus server replikasi dan sumber daya yang terkait. | Administrator cloud, Insinyur migrasi | 

## Pemecahan masalah
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| AWS Pemecahan masalah MGN | Untuk masalah dan resolusi umum, lihat bagian [Pemecahan Masalah](https://docs.aws.amazon.com/mgn/latest/ug/troubleshooting.html) dan [FAQ](https://docs.aws.amazon.com/mgn/latest/ug/FAQ.html) di dokumentasi MGN. AWS  | 

## Sumber daya terkait
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-resources"></a>

*AWS sumber daya*
+ [Opsi-1 Rehost - () AWS Application Migration ServiceAWS](https://catalog.us-east-1.prod.workshops.aws/workshops/c6bdf8dc-d2b2-4dbd-b673-90836e954745/en-US/04-application-migration/01-mgn)
+ [Apa itu AWS Application Migration Service?](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)

*Sumber daya SQL Server*
+ [Apa itu SQL Server Management Studio (SSMS)?](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms)

## Informasi tambahan
<a name="migrate-microsoft-sql-server-always-on-group-using-mgn-additional"></a>

Untuk persyaratan keamanan standar untuk memigrasikan beban kerja ke AWS Cloud, lihat [Praktik Terbaik untuk Keamanan, Identitas, dan Kepatuhan di situs](https://aws.amazon.com/architecture/security-identity-compliance/) web. AWS 

# Migrasikan SQL Server ke AWS menggunakan grup ketersediaan terdistribusi
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups"></a>

*Praveen Marthala, Amazon Web Services*

## Ringkasan
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-summary"></a>

Grup ketersediaan Microsoft SQL Server Always On menyediakan solusi ketersediaan tinggi (HA) dan pemulihan bencana (DR) untuk SQL Server. Grup ketersediaan terdiri dari replika utama yang menerima read/write lalu lintas, dan hingga delapan replika sekunder yang menerima lalu lintas baca. Grup ketersediaan dikonfigurasi pada Windows Server Failover Cluster (WSFC) dengan dua atau lebih node.

Grup ketersediaan terdistribusi Microsoft SQL Server Always On menyediakan solusi untuk mengonfigurasi dua grup ketersediaan terpisah antara dua grup independen WFSCs. Grup ketersediaan yang merupakan bagian dari grup ketersediaan terdistribusi tidak harus berada di pusat data yang sama. Satu grup ketersediaan dapat berada di lokasi, dan grup ketersediaan lainnya dapat berada di Amazon Web Services (AWS) Cloud pada instans Amazon Elastic Compute Cloud (Amazon EC2) di domain yang berbeda. 

Pola ini menguraikan langkah-langkah untuk menggunakan grup ketersediaan terdistribusi untuk memigrasikan database SQL Server lokal yang merupakan bagian dari grup ketersediaan yang ada ke SQL Server dengan grup ketersediaan yang disiapkan di Amazon. EC2 Dengan mengikuti pola ini, Anda dapat memigrasikan database ke AWS Cloud dengan waktu henti minimal selama cutover. Basis data sangat tersedia di AWS segera setelah cutover. Anda juga dapat menggunakan pola ini untuk mengubah sistem operasi yang mendasari dari lokal ke AWS sambil mempertahankan versi SQL Server yang sama.

## Prasyarat dan batasan
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ AWS Direct Connect atau AWS Site-to-Site VPN
+ Versi SQL Server yang sama diinstal lokal dan pada dua node di AWS

**Versi produk**
+ SQL Server versi 2016 dan yang lebih baru
+ SQL Server Enterprise Edition

## Arsitektur
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server dengan grup ketersediaan Selalu Aktif di tempat

**Tumpukan teknologi target**
+ Database Microsoft SQL Server dengan grup ketersediaan Selalu Aktif di Amazon EC2 di AWS Cloud

**Arsitektur migrasi**

![\[SQL Server dengan replikasi sinkron dalam grup ketersediaan di tempat dan di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6e229e30-9b11-4ccb-bccd-cbe6601139c0/images/79ee7911-d68f-4db7-9b94-113dcf09c28b.png)


*Terminologi*
+ WSFC 1 - WSFC di tempat
+ WSFC 2 - WSFC di AWS Cloud
+ AG 1 - Grup ketersediaan pertama, yang ada di WSFC 1
+ AG 2 - Grup ketersediaan kedua, yang ada di WSFC 2
+ Replika primer SQL Server — Node di AG 1 yang dianggap sebagai primer global untuk semua penulisan
+ SQL Server forwarder — Node di AG 2 yang menerima data secara asinkron dari replika utama SQL Server
+ Replika sekunder SQL Server — Node di AG 1 atau AG 2 yang menerima data secara sinkron dari replika utama atau forwarder

## Alat
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-tools"></a>
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) — AWS Direct Connect menautkan jaringan internal Anda ke lokasi AWS Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat *antarmuka virtual* langsung ke layanan AWS publik, melewati penyedia layanan internet di jalur jaringan Anda.
+ [Amazon EC2 — Amazon](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html) Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat menggunakan Amazon EC2 untuk meluncurkan server virtual sebanyak atau sesedikit yang Anda butuhkan, dan Anda dapat meningkatkan skala atau meningkatkan skala.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) — AWS Site-to-Site VPN mendukung pembuatan jaringan pribadi site-to-site virtual (VPN). Anda dapat mengonfigurasi VPN untuk meneruskan lalu lintas antara instans yang Anda luncurkan di AWS dan jaringan jarak jauh Anda sendiri.
+ [Microsoft SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15) — Microsoft SQL Server Management Studio (SSMS) adalah lingkungan terintegrasi untuk mengelola infrastruktur SQL Server. Ini menyediakan antarmuka pengguna dan sekelompok alat dengan editor skrip kaya yang berinteraksi dengan SQL Server.

## Epik
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-epics"></a>

### Siapkan grup ketersediaan kedua di AWS
<a name="set-up-a-second-availability-group-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat WSFC di AWS. | Buat WSFC 2 di EC2 instans Amazon dengan dua node untuk HA. Anda akan menggunakan klaster failover ini untuk membuat grup ketersediaan kedua (AG 2) di AWS. | Administrator sistem, SysOps administrator | 
| Buat grup ketersediaan kedua di WSFC 2. | Menggunakan SSMS, buat AG 2 pada dua node di WSFC 2. Node pertama di WSFC 2 akan bertindak sebagai forwarder. Node kedua di WSFC 2 akan bertindak sebagai replika sekunder AG 2.Pada tahap ini, tidak ada database yang tersedia di AG 2. Ini adalah titik awal untuk menyiapkan grup ketersediaan terdistribusi. | DBA, Pengembang | 
| Buat database tanpa opsi pemulihan di AG 2. | Cadangkan database pada grup ketersediaan lokal (AG 1). Kembalikan database ke forwarder dan replika sekunder AG 2 tanpa opsi pemulihan. Saat memulihkan database, tentukan lokasi dengan ruang disk yang cukup untuk file data database dan file log.Pada tahap ini, database berada dalam keadaan pemulihan. Mereka bukan bagian dari AG 2 atau grup ketersediaan terdistribusi, dan mereka tidak melakukan sinkronisasi. | DBA, Pengembang | 

### Konfigurasikan grup ketersediaan terdistribusi
<a name="configure-the-distributed-availability-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup ketersediaan terdistribusi di AG 1. | Untuk membuat grup ketersediaan terdistribusi di AG 1, gunakan `DISTRIBUTED` opsi `CREATE AVAILABILITY GROUP` with the.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sql-server-to-aws-using-distributed-availability-groups.html) | DBA, Pengembang | 
| Buat grup ketersediaan terdistribusi di AG 2. | Untuk membuat grup ketersediaan terdistribusi di AG 2, gunakan `ALTER AVAILABILITY GROUP` dengan `DISTRIBUTED` opsi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sql-server-to-aws-using-distributed-availability-groups.html)Grup ketersediaan terdistribusi dibuat antara AG 1 dan AG 2.Database di AG 2 belum dikonfigurasi untuk mengambil bagian dalam aliran data dari AG 1 ke AG 2. | DBA, Pengembang | 
| Tambahkan database ke forwarder dan replika sekunder pada AG 2. | Tambahkan database ke grup ketersediaan terdistribusi `ALTER DATABASE` dengan menggunakan `SET HADR` `AVAILABILITY GROUP` opsi di forwarder dan replika sekunder pada AG 2. Ini memulai aliran data asinkron antara database pada AG 1 dan AG 2. Primer global mengambil penulisan, mengirimkan data secara sinkron ke replika sekunder pada AG 1, dan mengirimkan data secara asinkron ke forwarder di AG 2. Forwarder pada AG 2 mengirimkan data secara sinkron ke replika sekunder pada AG 2. | DBA, Pengembang | 

### Memantau aliran data asinkron antara AG 1 dan AG 2
<a name="monitor-asynchronous-data-flow-between-ag-1-and-ag-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan DMVs dan log SQL Server. | Pantau status aliran data antara dua grup ketersediaan dengan menggunakan tampilan manajemen dinamis (DMVs) dan log SQL Server. DMVs yang menarik untuk pemantauan termasuk `sys.dm_hadr_availability_replica_states` dan`sys.dm_hadr_automatic_seeding`.Untuk status sinkronisasi forwarder, pantau *status yang disinkronkan* di log SQL Server pada forwarder. | DBA, Pengembang | 

### Lakukan aktivitas cutover untuk migrasi akhir
<a name="perform-cutover-activities-for-final-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan semua lalu lintas ke replika utama. | Hentikan lalu lintas masuk ke replika utama di AG 1 sehingga tidak ada aktivitas tulis yang terjadi pada database dan database siap untuk migrasi. | Pemilik aplikasi, Pengembang | 
| Ubah mode ketersediaan grup ketersediaan terdistribusi di AG 1. | Pada replika utama, atur mode ketersediaan grup ketersediaan terdistribusi menjadi sinkron. Setelah Anda mengubah mode ketersediaan menjadi sinkron, data dikirim secara sinkron dari replika utama di AG 1 ke forwarder di AG 2. | DBA, Pengembang | 
| Periksa LSNs di kedua grup ketersediaan. | Periksa Nomor Urutan Log terakhir (LSNs) di AG 1 dan AG 2. Karena tidak ada penulisan yang terjadi di replika utama di AG 1, data disinkronkan, dan terakhir LSNs untuk kedua grup ketersediaan harus cocok. | DBA, Pengembang | 
| Perbarui AG 1 ke peran sekunder. | Saat Anda memperbarui AG 1 ke peran sekunder, AG 1 kehilangan peran replika utama dan tidak menerima penulisan, dan aliran data antara dua grup ketersediaan berhenti. | DBA, Pengembang | 

### Gagal ke grup ketersediaan kedua
<a name="fail-over-to-the-second-availability-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gagal secara manual ke AG 2. | Pada forwarder di AG 2, ubah grup ketersediaan terdistribusi untuk memungkinkan kehilangan data. Karena Anda sudah mengecek dan mengonfirmasi bahwa yang terakhir LSNs pada pertandingan AG 1 dan AG 2, kehilangan data tidak menjadi perhatian.Saat Anda mengizinkan kehilangan data pada forwarder di AG 2, peran AG 1 dan AG 2 berubah:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-sql-server-to-aws-using-distributed-availability-groups.html) | DBA, Pengembang | 
| Ubah mode ketersediaan grup ketersediaan terdistribusi di AG 2. | Pada replika utama di AG 2, ubah mode ketersediaan menjadi asinkron.Ini mengubah pergerakan data dari AG 2 ke AG 1, dari sinkron ke asinkron. Langkah ini diperlukan untuk menghindari latensi jaringan antara AG 2 dan AG 1, jika ada, dan tidak akan memengaruhi kinerja database. | DBA, Pengembang | 
| Mulai mengirim lalu lintas ke replika utama yang baru. | Perbarui string koneksi untuk menggunakan titik akhir URL pendengar di AG 2 untuk mengirim lalu lintas ke database.AG 2 sekarang menerima penulisan dan pengiriman data ke forwarder di AG 1, bersama dengan mengirim data ke replika sekundernya sendiri di AG 2. Data bergerak secara asinkron dari AG 2 ke AG 1. | Pemilik aplikasi, Pengembang | 

### Lakukan kegiatan pasca-cutover
<a name="perform-post-cutover-activities"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jatuhkan grup ketersediaan terdistribusi di AG 2. | Pantau migrasi untuk jumlah waktu yang direncanakan. Kemudian jatuhkan grup ketersediaan terdistribusi pada AG 2 untuk menghapus pengaturan grup ketersediaan terdistribusi antara AG 2 dan AG 1. Ini menghapus konfigurasi grup ketersediaan terdistribusi, dan aliran data dari AG 2 ke AG 1 berhenti. Pada titik ini, AG 2 sangat tersedia di AWS, dengan replika utama yang mengambil penulisan dan replika sekunder dalam grup ketersediaan yang sama. | DBA, Pengembang | 
| Menonaktifkan server lokal. | Menonaktifkan server lokal di WSFC 1 yang merupakan bagian dari AG 1. | Administrator sistem, SysOps administrator | 

## Sumber daya terkait
<a name="migrate-sql-server-to-aws-using-distributed-availability-groups-resources"></a>
+ [Grup ketersediaan terdistribusi](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/distributed-groups.html)
+ [SQL Docs: Grup ketersediaan terdistribusi](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/distributed-availability-groups?view=sql-server-ver15)
+ [SQL Docs: Grup ketersediaan Selalu Aktif: solusi ketersediaan tinggi dan pemulihan bencana](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-availability-groups-sql-server?view=sql-server-ver15)

# Migrasi database relasional ke MongoDB Atlas di AWS
<a name="migrate-relational-database-to-mongodb-atlas"></a>

*Battulga Purevragchaa dan Igor Alekseev, Amazon Web Services*

*Babu Srinivasan, MongoDB*

## Ringkasan
<a name="migrate-relational-database-to-mongodb-atlas-summary"></a>

Pola ini menjelaskan langkah-langkah untuk bermigrasi dari database relasional seperti SQL Server, MySQL, atau PostgreSQL ke MongoDB Atlas di. AWS Cloud Ini menggunakan [MongoDB Relational Migrator untuk membantu mempercepat migrasi data dari database relasional](https://www.mongodb.com/products/relational-migrator) ke MongoDB Atlas.

Pola ini menyertai panduan [Migrasi ke MongoDB Atlas di situs web Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) Guidance. AWS AWS Ini memberikan langkah-langkah implementasi untuk salah satu skenario migrasi yang dibahas dalam panduan itu. Untuk skenario migrasi tambahan, lihat pola berikut di situs web Panduan AWS Preskriptif:
+ [Migrasikan lingkungan MongoDB yang dihosting sendiri ke MongoDB Atlas di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud.html)
+ [Streaming data dari IBM Db2, SAP, Sybase, dan database lainnya ke MongoDB Atlas di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/stream-data-from-ibm-db2-to-mongodb-atlas.html)

Pola ini ditujukan untuk [Mitra dan AWS pengguna AWS System Integrator (SI)](https://aws.amazon.com/managed-services/partners/).

## Prasyarat dan batasan
<a name="migrate-relational-database-to-mongodb-atlas-prereqs"></a>

**Prasyarat**
+ Database relasional sumber (Oracle Database, SQL Server, PostgreSQL, MySQL SAP/Sybase , ASE, dan lain-lain) untuk bermigrasi ke MongoDB Atlas.
+ Keakraban dengan database relasional, MongoDB Atlas, dan. Layanan AWS Pola ini menjelaskan beberapa langkah migrasi pada tingkat tinggi. Rincian tambahan akan ditambahkan di versi future.

**Versi produk**
+ MongoDB versi 5.0 atau yang lebih baru

## Arsitektur
<a name="migrate-relational-database-to-mongodb-atlas-architecture"></a>

Diagram berikut menunjukkan migrasi dari database sistem manajemen database relasional (RDBMS) ke MongoDB Atlas pada. AWS

![\[Arsitektur untuk bermigrasi dari RDBMS ke MongoDB Atlas di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4e3ea0f1-21e8-4641-a9ee-732355f20baf/images/8eacf3ec-f480-4912-9002-6a50800fe9bf.png)


Untuk arsitektur referensi MongoDB Atlas yang mendukung skenario penggunaan yang berbeda, lihat [Migrasi ke MongoDB](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/architecture.html) Atlas di situs web Panduan Preskriptif. AWS AWS 

## Alat
<a name="migrate-relational-database-to-mongodb-atlas-tools"></a>
+ [MongoDB](https://www.mongodb.com/atlas) Atlas adalah database yang dikelola sepenuhnya sebagai layanan DBaa (S) untuk menyebarkan dan mengelola database MongoDB di cloud.
+ [MongoDB Relational](https://www.mongodb.com/products/relational-migrator) Migrator menyediakan transisi data yang mulus dari database relasional tradisional ke MongoDB. Ini membantu mengotomatiskan proses konversi dan mengubah model data terstruktur dari database relasional menjadi format dokumen fleksibel yang disediakan oleh MongoDB. Migrator Relasional mempertahankan integritas data dan hubungan untuk menyederhanakan migrasi. Organizations dapat memanfaatkan manfaat skalabilitas, kinerja, dan fleksibilitas yang diberikan MongoDB sambil mempertahankan keakraban data mereka yang ada.

## Praktik terbaik
<a name="migrate-relational-database-to-mongodb-atlas-best-practices"></a>

Untuk praktik terbaik untuk menggunakan MongoDB, lihat posting AWS di Blog Jaringan Mitra [AWS .](https://aws.amazon.com/blogs/apn/tag/mongodb-atlas/)

## Epik
<a name="migrate-relational-database-to-mongodb-atlas-epics"></a>

### Penemuan dan penilaian
<a name="discovery-and-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan parameter dan ukuran database relasional. | Perkirakan ukuran set kerja dengan menggunakan rekomendasi Relational Migrator dan informasi dari `db.stats()` untuk total ruang indeks. Asumsikan bahwa persentase ruang data Anda akan sering diakses. Tugas ini harus memakan waktu sekitar satu minggu. Untuk informasi lebih lanjut dan contoh untuk ini dan cerita lainnya dalam epik ini, lihat bagian [Sumber daya terkait](#migrate-relational-database-to-mongodb-atlas-resources). | Pemilik aplikasi, DBA | 
| Perkirakan kebutuhan bandwidth jaringan. | Untuk memperkirakan kebutuhan bandwidth jaringan Anda, kalikan ukuran dokumen rata-rata dengan jumlah dokumen yang disajikan per detik. Pertimbangkan lalu lintas maksimum yang akan ditanggung oleh setiap node di cluster Anda sebagai dasarnya. Untuk menghitung kecepatan transfer data hilir dari klaster Anda ke aplikasi klien, gunakan jumlah total dokumen yang dikembalikan selama periode waktu tertentu. Jika aplikasi Anda membaca dari node sekunder, bagilah jumlah total dokumen ini dengan jumlah node yang dapat melayani operasi baca. Untuk menemukan ukuran dokumen rata-rata untuk database, gunakan `db.stats().avgObjSize` perintah. Tugas ini biasanya akan memakan waktu satu hari. | DBA | 
| Pilih tingkat Atlas. | Ikuti petunjuk dalam dokumentasi [MongoDB untuk memilih tingkat](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) cluster Atlas yang benar. | DBA | 
| Rencanakan untuk cutover. | Rencanakan pemotongan aplikasi. | DBA, Pemilik aplikasi | 

### Siapkan lingkungan MongoDB Atlas baru di AWS
<a name="set-up-a-new-mongodb-atlas-environment-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster MongoDB Atlas baru di. AWS | **Di MongoDB Atlas, pilih Build a Cluster.** Di kotak dialog **Create New Cluster**, pilih AWS sebagai penyedia cloud. | DBA | 
| Pilih Wilayah AWS dan konfigurasi cluster global. | Pilih dari daftar yang tersedia Wilayah AWS untuk cluster Atlas Anda. Konfigurasikan cluster global jika diperlukan. | DBA | 
| Pilih tingkat cluster. | Pilih tingkat klaster pilihan Anda. Pemilihan tingkat Anda menentukan faktor-faktor seperti memori, penyimpanan, dan spesifikasi IOPS. | DBA | 
| Konfigurasikan pengaturan cluster tambahan. | Konfigurasikan pengaturan cluster tambahan seperti versi MongoDB, cadangan, dan opsi enkripsi. Untuk informasi selengkapnya tentang opsi ini, lihat bagian [Sumber daya terkait](#migrate-relational-database-to-mongodb-atlas-resources). | DBA | 

### Konfigurasikan keamanan dan kepatuhan
<a name="configure-security-and-compliance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan daftar akses. | Untuk terhubung ke cluster Atlas, Anda harus menambahkan entri ke daftar akses proyek. Atlas menggunakan TLS/SSL untuk mengenkripsi koneksi ke virtual private cloud (VPC) untuk database Anda. Untuk menyiapkan daftar akses untuk proyek dan untuk informasi selengkapnya tentang cerita dalam epik ini, lihat bagian [Sumber daya terkait](#migrate-relational-database-to-mongodb-atlas-resources). | DBA | 
| Otentikasi dan otorisasi pengguna. | Anda harus membuat dan mengotentikasi pengguna database yang akan mengakses cluster MongoDB Atlas. Untuk mengakses cluster dalam proyek, pengguna harus menjadi bagian dari proyek itu, dan mereka dapat menjadi bagian dari beberapa proyek. | DBA | 
| Buat peran khusus. | (Opsional) Atlas mendukung pembuatan peran khusus jika izin pengguna database Atlas bawaan tidak mencakup kumpulan izin yang Anda inginkan. | DBA | 
| Siapkan pengintip VPC. | (Opsional) Atlas mendukung [VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) mengintip dengan yang lain. VPCs AWS | Administrator AWS | 
| Siapkan AWS PrivateLink titik akhir. | (Opsional) Anda dapat mengatur titik akhir pribadi AWS dengan menggunakan AWS PrivateLink. Untuk informasi selengkapnya, lihat [dokumentasi Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html). | Administrator AWS | 
| Aktifkan otentikasi dua faktor. | (Opsional) Atlas mendukung otentikasi dua faktor (2FA) untuk membantu pengguna mengontrol akses ke akun Atlas mereka. | Administrator AWS | 
| Siapkan otentikasi dan otorisasi pengguna dengan LDAP. | (Opsional) Atlas mendukung melakukan otentikasi dan otorisasi pengguna dengan Lightweight Directory Access Protocol (LDAP). | DBA | 
| Siapkan AWS akses terpadu. | (Opsional) Beberapa fitur Atlas, termasuk Atlas Data Lake dan enkripsi saat istirahat menggunakan manajemen kunci pelanggan, menggunakan peran AWS Identity and Access Management (IAM) untuk otentikasi. | Administrator AWS | 
| Siapkan enkripsi saat istirahat menggunakan AWS KMS. | (Opsional) Atlas mendukung penggunaan AWS Key Management Service (AWS KMS) untuk mengenkripsi mesin penyimpanan dan cadangan penyedia cloud. | Administrator AWS | 
| Siapkan enkripsi tingkat bidang sisi klien. | (Opsional) Atlas mendukung enkripsi tingkat bidang sisi klien, termasuk enkripsi otomatis bidang. | Administrator AWS | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan MongoDB Relational Migrator ke daftar akses. | Tambahkan Relational Migrator ke daftar akses untuk database sumber Anda. Ini membantu mempersiapkan lingkungan sumber untuk terhubung ke cluster Atlas target. | DBA | 
| Menilai objek database relasional. | Luncurkan MongoDB Relational Migrator dan sambungkan ke database relasional Anda. Mulai penilaian. | DBA | 
| Terima pola migrasi atau pilih untuk mengubahnya berdasarkan kebutuhan bisnis Anda. | Baik menerima pola database yang direkomendasikan oleh Migrator Relasional berdasarkan penilaian awal dan parameter kinerja, atau memilih untuk mengubahnya berdasarkan kebutuhan bisnis Anda. | DBA | 
| Luncurkan replika target Anda yang ditetapkan di MongoDB Atlas. | Luncurkan replika target Anda yang ditetapkan di MongoDB Atlas. Di Relational Migrator, pilih **I'm ready to** migrate. | DBA | 

### Konfigurasikan integrasi operasional
<a name="configure-operational-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke cluster MongoDB Atlas. | Pastikan konektivitas cluster MongoDB Atlas berfungsi seperti yang diharapkan. | Pemilik aplikasi | 
| Berinteraksi dengan data cluster. | Verifikasi data cluster. | DBA | 
| Pantau cluster Anda. | Verifikasi bahwa cluster Anda sudah diatur dengan benar. | DBA | 
| Cadangkan dan pulihkan data cluster. | Jadwalkan pencadangan dengan irama reguler untuk data cluster. | DBA | 

## Sumber daya terkait
<a name="migrate-relational-database-to-mongodb-atlas-resources"></a>

Semua link berikut, kecuali dinyatakan lain, pergi ke halaman web dalam dokumentasi MongoDB.

**Panduan migrasi**
+ [Bermigrasi ke MongoDB AWS Atlas](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) on (Panduan Preskriptif)AWS 

**Penemuan dan penilaian**
+ [Memori](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory)
+ [Contoh ukuran dengan kumpulan data sampel Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets)
+ [Contoh ukuran untuk aplikasi seluler](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app)
+ [Lalu Lintas Jaringan](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic)
+ [Penskalaan Otomatis Cluster](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling)
+ [Template ukuran Atlas](https://view.highspot.com/viewer/5f438f47a4dfa042e97130c5)

**Mengkonfigurasi keamanan dan kepatuhan**
+ [Konfigurasikan Entri Daftar Akses IP](https://docs.atlas.mongodb.com/security/ip-access-list/)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)
+ [Konfigurasikan Peran Database Kustom](https://docs.atlas.mongodb.com/security-add-mongodb-roles)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/#atlas-user-privileges)
+ [Siapkan Koneksi Peering Jaringan](https://docs.atlas.mongodb.com/security-vpc-peering/)
+ [Pelajari Tentang Titik Akhir Pribadi di Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/)
+ [Kelola Opsi Otentikasi Multi-Faktor Anda](https://docs.atlas.mongodb.com/security-two-factor-authentication/)
+ [Mengatur Otentikasi dan Otorisasi Pengguna dengan LDAP](https://docs.atlas.mongodb.com/security-ldaps/)
+ [Danau Atlas Data](https://docs.mongodb.com/datalake/)
+ [Enkripsi saat Istirahat menggunakan Manajemen Kunci Pelanggan](https://docs.atlas.mongodb.com/security-kms-encryption/)
+ [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) (dokumentasi IAM)
+ [Enkripsi Tingkat Bidang Sisi Klien](https://docs.mongodb.com/manual/core/security-client-side-encryption)
+ [Enkripsi Otomatis](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) 
+ [Kontrol Keamanan MongoDB Atlas](https://webassets.mongodb.com/_com_assets/cms/MongoDB_Atlas_Security_Controls-v7k3rbhi3p.pdf)
+ [Pusat Kepercayaan MongoDB](https://www.mongodb.com/cloud/trust)
+ [Konfigurasikan Fitur Keamanan untuk Cluster](https://docs.atlas.mongodb.com/setup-cluster-security/)

**Menyiapkan lingkungan MongoDB Atlas baru di **AWS****
+ [Penyedia dan Wilayah Cloud](https://docs.atlas.mongodb.com/cloud-providers-regions/)
+ [Kelola Global Cluster](https://docs.atlas.mongodb.com/global-clusters/)
+ [Pilih Tingkat Cluster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier)
+ [Konfigurasikan Pengaturan Tambahan](https://docs.atlas.mongodb.com/cluster-additional-settings/)
+ [Memulai dengan Atlas](https://docs.atlas.mongodb.com/getting-started/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)

**Migrasi data**
+ [Migrasi atau Impor Data](https://www.mongodb.com/docs/atlas/import/)

**Cluster pemantauan**
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)

**Mengintegrasikan operasi**
+ [Connect ke Cluster](https://docs.atlas.mongodb.com/connect-to-cluster/)
+ [Berinteraksi dengan Data Anda](https://docs.atlas.mongodb.com/data-explorer/)
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)
+ [Cadangkan, Pulihkan, dan Arsipkan Data](https://docs.atlas.mongodb.com/backup-restore-cluster/)

# Migrasikan lingkungan MongoDB yang dihosting sendiri ke MongoDB Atlas di AWS
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud"></a>

*Battulga Purevragchaa dan Igor Alekseev, Amazon Web Services*

*Babu Srinivasan, MongoDB*

## Ringkasan
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-summary"></a>

Pola ini menjelaskan langkah-langkah untuk bermigrasi dari lingkungan MongoDB yang dikelola sendiri (termasuk MongoDB Community Server, Enterprise Server, Enterprise Advanced, mLab, atau cluster MongoDB yang dikelola) ke MongoDB Atlas di. AWS Cloud Ini menggunakan [Layanan Migrasi Langsung Atlas untuk membantu mempercepat migrasi](https://www.mongodb.com/cloud/atlas/migrate) data dari MongoDB ke MongoDB Atlas.

Pola ini menyertai panduan [Migrasi ke MongoDB Atlas di situs web Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) Guidance. AWS AWS Ini memberikan langkah-langkah implementasi untuk salah satu skenario migrasi yang dibahas dalam panduan itu. Untuk skenario migrasi tambahan, lihat pola berikut di situs web Panduan AWS Preskriptif:
+ [Migrasi database relasional ke MongoDB Atlas di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-relational-database-to-mongodb-atlas.html)
+ [Streaming data dari IBM Db2, SAP, Sybase, dan database lainnya ke MongoDB Atlas AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/stream-data-from-ibm-db2-to-mongodb-atlas.html)

Pola ini ditujukan untuk [Mitra dan AWS pengguna AWS Systems Integrator (SI)](https://aws.amazon.com/managed-services/partners/).

## Prasyarat dan batasan
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-prereqs"></a>

**Prasyarat**
+ Sumber MongoDB Enterprise Advanced, Server Komunitas, atau lingkungan MongoDB yang dikelola sendiri lainnya untuk bermigrasi ke MongoDB Atlas.
+ Keakraban dengan MongoDB, MongoDB Atlas, dan. Layanan AWS Pola ini menjelaskan beberapa langkah migrasi pada tingkat tinggi. Rincian tambahan akan ditambahkan di versi future.

**Versi produk**
+ MongoDB versi 6.0.13 atau yang lebih baru

## Arsitektur
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-architecture"></a>

Diagram berikut menunjukkan Atlas Live Migration Service yang digunakan untuk memigrasikan data dari database MongoDB Enterprise Advanced dan database Komunitas MongoDB ke MongoDB Atlas pada. AWS Gunakan layanan ini saat Anda perlu memigrasikan database yang besar dan kompleks ke MongoDB Atlas dengan waktu henti minimal dan sinkronisasi data berkelanjutan. Pola ini menggunakan Atlas Live Migration Service.

![\[Migrasi data dengan MongoDB Atlas Live Migration Service.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/52cdb923-64ff-4ee2-b129-93b9a139e24b/images/372134c4-ba47-4e48-bd0d-8b43017773b8.png)


Diagram berikut menunjukkan MongoDB mirror service `mongomirror` () yang juga dapat Anda gunakan untuk memigrasikan data dari database MongoDB Enterprise Advanced dan database Komunitas MongoDB ke MongoDB Atlas melalui koneksi aman. AWS [AWS PrivateLink](https://aws.amazon.com/privatelink/) Gunakan `mongomirror` untuk replikasi data yang sedang berlangsung antara MongoDB lokal dan MongoDB Atlas. Alat ini sangat ideal untuk pemulihan bencana atau migrasi bertahap tetapi berada di luar cakupan pola ini.

![\[Migrasi data dengan alat mongomirror.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/52cdb923-64ff-4ee2-b129-93b9a139e24b/images/53488a9b-2210-4b3d-b517-b618c1e0182c.png)


Untuk arsitektur referensi MongoDB Atlas lainnya yang mendukung skenario penggunaan yang berbeda, lihat [Migrasi ke MongoDB](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/architecture.html) Atlas di situs web Panduan Preskriptif. AWS AWS 

## Alat
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-tools"></a>
+ [MongoDB](https://www.mongodb.com/atlas) Atlas adalah database yang dikelola sepenuhnya sebagai layanan (dBaaS) untuk menyebarkan dan mengelola database MongoDB di cloud.
+ [Atlas Live Migration Service](https://www.mongodb.com/cloud/atlas/migrate) adalah utilitas MongoDB gratis yang membantu memigrasikan database ke Atlas. Layanan ini membuat database sumber tetap sinkron dengan database tujuan hingga cutover. Ketika Anda siap untuk memotong, Anda menghentikan instance aplikasi Anda, mengarahkannya ke cluster Atlas tujuan, dan memulai ulang. Untuk mengakses layanan ini, pilih **opsi Database dari cluster** MongoDB Atlas Anda.
+ [mongomirror](https://www.mongodb.com/docs/atlas/import/mongomirror/) adalah alat untuk memigrasikan data secara manual dari replika MongoDB yang ada yang disetel ke set replika MongoDB Atlas. `mongomirror`tidak mengharuskan Anda untuk mematikan set replika atau aplikasi yang ada, tidak mengimpor data pengguna atau peran, atau menyalin database konfigurasi. Anda dapat mengunduh `mongomirror` dari dokumentasi [MongoDB](https://www.mongodb.com/docs/atlas/import/mongomirror/#download-mongomirror).

## Praktik terbaik
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-best-practices"></a>

Untuk praktik terbaik untuk menggunakan MongoDB, lihat posting AWS di Blog Jaringan Mitra [AWS .](https://aws.amazon.com/blogs/apn/tag/mongodb-atlas/)

## Epik
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-epics"></a>

### Penemuan dan penilaian
<a name="discovery-and-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan ukuran cluster. | Perkirakan ukuran set kerja dengan menggunakan informasi dari `db.stats()` untuk total ruang indeks. Asumsikan bahwa persentase ruang data Anda akan sering diakses. Atau, Anda dapat memperkirakan kebutuhan memori Anda berdasarkan asumsi Anda sendiri. Tugas ini harus memakan waktu sekitar satu minggu. Untuk informasi lebih lanjut dan contoh untuk ini dan cerita lainnya dalam epik ini, lihat bagian [Sumber daya terkait](#migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-resources). | DBA, Pemilik aplikasi | 
| Perkirakan kebutuhan bandwidth jaringan. | Untuk memperkirakan kebutuhan bandwidth jaringan Anda, kalikan ukuran dokumen rata-rata dengan jumlah dokumen yang disajikan per detik. Pertimbangkan lalu lintas maksimum yang akan ditanggung oleh node mana pun di cluster Anda sebagai dasarnya. Untuk menghitung kecepatan transfer data hilir dari cluster Anda ke aplikasi klien, gunakan jumlah total dokumen yang dikembalikan selama periode waktu tertentu. Jika aplikasi Anda membaca dari node sekunder, bagilah jumlah total dokumen ini dengan jumlah node yang dapat melayani operasi baca. Untuk menemukan ukuran dokumen rata-rata untuk database, gunakan `db.stats().avgObjSize` perintah. Tugas ini biasanya akan memakan waktu satu hari. | DBA | 
| Pilih tingkat Atlas. | Ikuti petunjuk dalam dokumentasi [MongoDB untuk memilih tingkat](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) cluster Atlas yang benar. | DBA | 
| Rencanakan untuk cutover. | Rencanakan pemotongan aplikasi. | DBA, Pemilik aplikasi | 

### Siapkan lingkungan MongoDB Atlas baru di AWS
<a name="set-up-a-new-mongodb-atlas-environment-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster MongoDB Atlas baru di. AWS | Masuk ke Atlas dan buka halaman **Ikhtisar** untuk proyek Anda. Pilih tombol **Create** untuk membuat cluster. Untuk informasi selengkapnya tentang penggunaan, lihat [ dokumentasi MongoDB](https://www.mongodb.com/docs/atlas/tutorial/deploy-free-tier-cluster/) . | DBA | 
| Pilih Wilayah AWS dan konfigurasi cluster global. | Pilih dari daftar yang tersedia Wilayah AWS untuk cluster Atlas Anda. Konfigurasikan cluster global jika diperlukan. Untuk informasi selengkapnya tentang penggunaan, lihat [ dokumentasi MongoDB](https://www.mongodb.com/docs/atlas/tutorial/deploy-free-tier-cluster/#select-your-preferred-region.) . | DBA | 
| Pilih tingkat cluster. | Pilih tingkat klaster pilihan Anda. Pemilihan tingkat Anda menentukan faktor-faktor seperti memori, penyimpanan, dan spesifikasi IOPS.  | DBA | 
| Konfigurasikan pengaturan cluster tambahan. | Konfigurasikan pengaturan cluster tambahan seperti versi MongoDB, cadangan, dan opsi enkripsi. Untuk informasi selengkapnya tentang opsi ini, lihat bagian [Sumber daya terkait](#migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-resources). | DBA | 

### Konfigurasikan keamanan dan kepatuhan
<a name="configure-security-and-compliance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Otentikasi dan otorisasi pengguna. | Anda harus membuat dan mengotentikasi pengguna database yang akan mengakses cluster MongoDB Atlas. Untuk mengakses cluster dalam proyek, pengguna harus menjadi bagian dari proyek itu, dan mereka dapat menjadi bagian dari beberapa proyek. Atlas juga mendukung otentikasi berdasarkan AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang penggunaan, lihat [ dokumentasi MongoDB](https://www.mongodb.com/docs/atlas/security/aws-iam-authentication/#set-up-authentication-with-aws-iam) . | DBA | 
| Buat peran khusus. | (Opsional) Atlas mendukung pembuatan peran khusus jika izin pengguna database Atlas bawaan tidak mencakup kumpulan izin yang Anda inginkan. | DBA | 
| Siapkan pengintip VPC. | (Opsional) Atlas mendukung [virtual private cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) mengintip dengan yang lain. VPCs AWS | Administrator AWS | 
| Siapkan AWS PrivateLink titik akhir. | (Opsional) Anda dapat mengatur titik akhir pribadi AWS dengan menggunakan AWS PrivateLink. Untuk informasi selengkapnya, lihat [dokumentasi Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html). | Administrator AWS | 
| Aktifkan otentikasi dua faktor. | (Opsional) Atlas mendukung otentikasi dua faktor (2FA) untuk membantu pengguna mengontrol akses ke akun Atlas mereka. | Administrator AWS | 
| Siapkan otentikasi dan otorisasi pengguna dengan LDAP. | (Opsional) Atlas mendukung melakukan otentikasi dan otorisasi pengguna dengan Lightweight Directory Access Protocol (LDAP). | Administrator AWS | 
| Siapkan AWS akses terpadu. | (Opsional) Beberapa fitur Atlas, termasuk Atlas Data Lake dan enkripsi saat istirahat menggunakan manajemen kunci pelanggan, menggunakan peran IAM untuk otentikasi. | Administrator AWS | 
| Siapkan enkripsi saat istirahat menggunakan AWS KMS. | (Opsional) Atlas mendukung penggunaan AWS Key Management Service (AWS KMS) untuk mengenkripsi mesin penyimpanan dan cadangan penyedia cloud. | Administrator AWS | 
| Siapkan enkripsi tingkat bidang sisi klien. | (Opsional) Atlas mendukung enkripsi tingkat bidang sisi klien, termasuk enkripsi otomatis bidang. | Administrator AWS | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih replika target Anda yang ditetapkan di MongoDB Atlas. | Arahkan ke cluster Atlas tujuan dan pilih tombol elipsis (...). Pada daftar cluster, tombol ini muncul di bawah nama cluster. Dalam detail cluster, tombol muncul di sebelah kanan, di sebelah tombol **Connect and **Configuration****. Untuk informasi selengkapnya tentang penggunaan, lihat [ dokumentasi MongoDB](https://www.mongodb.com/docs/atlas/import/c2c-pull-live-migration/#procedure) . | DBA | 
| Tambahkan Layanan Migrasi Langsung Atlas ke daftar akses. | Tambahkan Layanan Migrasi Atlas Live ke daftar akses di kluster AWS sumber Anda. Ini membantu mempersiapkan lingkungan sumber untuk terhubung ke cluster Atlas target. | DBA | 
| Lakukan migrasi dengan Atlas Live Migration Service. | Pilih **Mulai migrasi**. Saat tombol **Siapkan untuk Cutover** berubah menjadi hijau, lakukan cutover. Tinjau metrik kinerja klaster Atlas. Pertimbangkan untuk memperbarui koneksi database di semua lapisan aplikasi untuk menunjuk ke database baru. | DBA | 

### Konfigurasikan integrasi operasional
<a name="configure-operational-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke cluster MongoDB Atlas. | Pastikan konektivitas cluster MongoDB Atlas berfungsi seperti yang diharapkan. | Pemilik aplikasi | 
| Berinteraksi dengan data cluster. | Uji data cluster. | DBA | 
| Pantau cluster Anda. | Verifikasi bahwa cluster Anda sudah diatur dengan benar. | DBA | 
| Cadangkan dan pulihkan data cluster. | Jadwalkan pencadangan dengan irama reguler untuk data cluster. | DBA | 

## Pemecahan masalah
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kesalahan: Tidak dapat mencapai sumber yang ditentukan | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud.html) | 
| Kesalahan: Tidak dapat menyelesaikan nama host | Tidak ada alamat IP yang ditemukan untuk nama host yang diberikan. Konfirmasikan bahwa nama host yang diberikan benar dan dapat diakses publik. | 
| Kesalahan lainnya | Jika Anda menemukan kesalahan lain, lihat [Memecahkan Masalah Migrasi Langsung (Tarik)](https://www.mongodb.com/docs/atlas/import/live-import-troubleshooting/) di dokumentasi MongoDB. | 

## Sumber daya terkait
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-resources"></a>

Semua link berikut, kecuali dinyatakan lain, pergi ke halaman web dalam dokumentasi MongoDB.

**Panduan migrasi**
+ [Bermigrasi ke MongoDB AWS Atlas](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) on (Panduan Preskriptif)AWS 

**Migrasi warisan**
+ [Migrasi versi lama MongoDB](https://www.mongodb.com/docs/atlas/legacy-migration/)

**Penemuan dan penilaian**
+ [Memori](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory)
+ [Contoh ukuran dengan kumpulan data sampel Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets)
+ [Contoh ukuran untuk aplikasi seluler](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app)
+ [Lalu Lintas Jaringan](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic)
+ [Penskalaan Otomatis Cluster](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling)
+ [Template ukuran Atlas](https://view.highspot.com/viewer/5f438f47a4dfa042e97130c5)

**Mengkonfigurasi keamanan dan kepatuhan**
+ [Konfigurasikan Entri Daftar Akses IP](https://docs.atlas.mongodb.com/security/ip-access-list/)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)
+ [Konfigurasikan Peran Database Kustom](https://docs.atlas.mongodb.com/security-add-mongodb-roles)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/#atlas-user-privileges)
+ [Siapkan Koneksi Peering Jaringan](https://docs.atlas.mongodb.com/security-vpc-peering/)
+ [Pelajari Tentang Titik Akhir Pribadi di Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/)
+ [Kelola Opsi Otentikasi Multi-Faktor Anda](https://docs.atlas.mongodb.com/security-two-factor-authentication/)
+ [Mengatur Otentikasi dan Otorisasi Pengguna dengan LDAP](https://docs.atlas.mongodb.com/security-ldaps/)
+ [Danau Atlas Data](https://docs.mongodb.com/datalake/)
+ [Enkripsi saat Istirahat menggunakan Manajemen Kunci Pelanggan](https://docs.atlas.mongodb.com/security-kms-encryption/)
+ [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) (dokumentasi IAM)
+ [Enkripsi Tingkat Bidang Sisi Klien](https://docs.mongodb.com/manual/core/security-client-side-encryption)
+ [Enkripsi Otomatis](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) 
+ [Kontrol Keamanan MongoDB Atlas](https://webassets.mongodb.com/_com_assets/cms/MongoDB_Atlas_Security_Controls-v7k3rbhi3p.pdf)
+ [Pusat Kepercayaan MongoDB](https://www.mongodb.com/cloud/trust)
+ [Konfigurasikan Fitur Keamanan untuk Cluster](https://docs.atlas.mongodb.com/setup-cluster-security/)

**Menyiapkan lingkungan MongoDB Atlas baru **AWS****
+ [Penyedia dan Wilayah Cloud](https://docs.atlas.mongodb.com/cloud-providers-regions/)
+ [Kelola Global Cluster](https://docs.atlas.mongodb.com/global-clusters/)
+ [Pilih Tingkat Cluster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier)
+ [Konfigurasikan Pengaturan Tambahan](https://docs.atlas.mongodb.com/cluster-additional-settings/)
+ [Memulai dengan Atlas](https://docs.atlas.mongodb.com/getting-started/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)

**Migrasi data**
+ [Migrasi atau Impor Data](https://www.mongodb.com/docs/atlas/import/)

**Cluster pemantauan**
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)

**Mengintegrasikan operasi**
+ [Connect ke Cluster](https://docs.atlas.mongodb.com/connect-to-cluster/)
+ [Berinteraksi dengan Data Anda](https://docs.atlas.mongodb.com/data-explorer/)
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)
+ [Cadangkan, Pulihkan, dan Arsipkan Data](https://docs.atlas.mongodb.com/backup-restore-cluster/)

**Pelatihan**
+ [Migrasi Langsung dengan MongoDB Atlas](https://learn.mongodb.com/courses/live-migration-with-mongodb-atlas)

## Informasi tambahan
<a name="migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud-additional"></a>

Untuk informasi tambahan, lihat topik berikut dalam dokumentasi MongoDB:
+ Untuk memindahkan data ke instance tanpa server, [gunakan Kompas untuk mengekspor dan mengimpor data, atau memigrasikan data](https://www.mongodb.com/docs/compass/current/import-export/) dengan alat yang dikelola sendiri. Untuk mempelajari selengkapnya, lihat [Batasan Instans Tanpa Server](https://www.mongodb.com/docs/atlas/reference/serverless-instance-limitations/).
+ Untuk memuat data ke dalam klaster baru di Atlas, lihat [Memuat Data ke Atlas](https://www.mongodb.com/docs/atlas/sample-data/#std-label-sample-data).
+ Untuk membuat salinan klaster Anda untuk tujuan pengujian, lihat [Metode Pencadangan untuk Penerapan yang Dikelola Sendiri](https://www.mongodb.com/docs/manual/core/backups/).
+ Jika aplikasi yang ingin Anda migrasi memerlukan uptime yang hampir berkesinambungan, hubungi MongoDB [Support](https://www.mongodb.com/docs/atlas/support/#std-label-request-support) dan bagikan persyaratan uptime dan konfigurasi cluster Anda.
+ Untuk informasi tambahan, lihat [Memigrasi atau Mengimpor Data](https://www.mongodb.com/docs/atlas/import/).

# Migrasikan database Oracle ke Amazon DynamoDB menggunakan AWS DMS
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms"></a>

*Rambabu Karnena, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-summary"></a>

[Pola ini memandu Anda melalui langkah-langkah untuk memigrasikan database Oracle ke [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) menggunakan AWS Database Migration Service (AWS DMS).](https://aws.amazon.com/dms/) Ini mencakup tiga jenis database sumber:
+ Database Oracle lokal
+ [Database Oracle di Amazon Elastic Compute Cloud (Amazon) EC2](https://aws.amazon.com/ec2/)
+ Amazon Relational Database Service ([Amazon](https://aws.amazon.com/rds/) RDS) untuk instans Oracle DB

Dalam bukti konsep ini, pola ini berfokus pada migrasi dari Amazon RDS for Oracle DB instance.

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Aplikasi yang terhubung ke database Amazon RDS for Oracle
+ Tabel yang dibuat di sumber Amazon RDS for Oracle database dengan kunci utama dan data sampel

**Batasan**
+ Objek database Oracle, seperti prosedur, fungsi, paket, dan pemicu, tidak dipertimbangkan untuk migrasi karena Amazon DynamoDB tidak mendukung objek database ini.

**Versi produk**
+ Pola ini berlaku untuk semua edisi dan versi database Oracle yang didukung oleh AWS DMS. Untuk informasi selengkapnya, lihat menggunakan [database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) dan menggunakan database [Amazon DynamoDB sebagai](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html) target AWS DMS. Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif.

## Arsitektur
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon RDS for Oracle DB instans, Oracle di EC2 Amazon, atau database Oracle lokal

**Tumpukan teknologi target**
+ Amazon DynamoDB

**Arsitektur migrasi data AWS**

![\[Data berpindah dari Oracle DB ke AWS DMS ke Amazon DynamoDB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/463fc7d4-ec8d-473b-8c7f-1df31800ee03/images/180e7340-3887-455d-a591-b5850e22770a.png)


## Alat
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan dapat diskalakan.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud. Pola ini menggunakan Amazon RDS for Oracle.

## Epik
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah VPC. | Di akun AWS Anda, buat virtual private cloud (VPC) dan subnet pribadi. | Administrator sistem | 
| Buat grup keamanan dan daftar kontrol akses jaringan. | Untuk informasi selengkapnya, lihat [dokumentasi AWS](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html). | Administrator sistem | 
| Konfigurasikan dan mulai instans Amazon RDS for Oracle DB. | Untuk informasi selengkapnya, lihat [dokumentasi AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html). | DBA, Administrator sistem | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM untuk mengakses DynamoDB. | Di konsol AWS Identity and Access Management (IAM), buat peran, lampirkan kebijakan`AmazonDynamoDBFullAccess to it`, dan pilih AWS DMS sebagai layanan. | Administrator sistem | 
| Buat instance replikasi AWS DMS untuk migrasi. | Instance replikasi harus berada di Availability Zone dan VPC yang sama dengan database sumber. | Administrator sistem | 
| Buat titik akhir sumber dan target di AWS DMS. | Untuk membuat titik akhir basis data sumber, Anda memiliki dua opsi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms.html)Untuk membuat titik akhir database target, pilih peran Amazon Resource Name (ARN) dari tugas sebelumnya untuk mengakses DynamoDB. | Administrator sistem | 
| Buat tugas AWS DMS untuk memuat tabel database Oracle sumber ke DynamoDB. | Pilih nama titik akhir sumber dan tujuan serta contoh replikasi dari langkah sebelumnya. Jenisnya bisa full load. Pilih skema Oracle dan tentukan**%** untuk memilih semua tabel. | Administrator sistem | 
| Validasi tabel di DynamoDB. | Untuk melihat hasil migrasi, pilih **Tabel** dari panel navigasi kiri di konsol DynamoDB. | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah kode aplikasi. | Untuk menyambung ke dan mengambil data dari DynamoDB, perbarui kode aplikasi. | Pemilik aplikasi, DBA, administrator Sistem | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ganti klien aplikasi untuk menggunakan DynamoDB. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Tutup proyek
<a name="close-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS. | Misalnya, mematikan Amazon RDS untuk instans Oracle, DynamoDB, dan instans replikasi AWS DMS. | DBA, Administrator sistem | 
| Kumpulkan metrik. | Metrik mencakup waktu untuk bermigrasi, persentase pekerjaan manual dan pekerjaan yang dilakukan oleh alat, dan penghematan biaya. | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-resources"></a>
+ [AWS Database Migration Service dan Amazon DynamoDB: Apa yang Perlu Anda Ketahui (posting](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-amazon-dynamodb-what-you-need-to-know/) blog)
+ [Menggunakan Database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Menggunakan database Amazon DynamoDB sebagai target AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html)
+ [Praktik Terbaik untuk Migrasi dari RDBMS ke Amazon DynamoDB](https://docs.aws.amazon.com/whitepapers/latest/best-practices-for-migrating-from-rdbms-to-dynamodb/welcome.html) (whitepaper)

# Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Oracle dan AWS DMS SharePlex
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms"></a>

*Ramu Jagini, Amazon Web Services*

## Ringkasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-summary"></a>

Pola ini menjelaskan cara memigrasikan database Oracle 8i atau 9i lokal ke Amazon Relational Database Service (Amazon RDS) untuk database Oracle. Anda dapat menggunakan pola ini untuk menyelesaikan migrasi dengan waktu henti yang dikurangi dengan menggunakan Quest SharePlex untuk replikasi sinkron.

Anda harus menggunakan instans database Oracle perantara untuk migrasi Anda karena AWS Database Migration Service (AWS DMS) tidak mendukung Oracle 8i atau 9i sebagai lingkungan sumber. Anda dapat menggunakan [SharePlex 7.6.3](https://www.quest.com/community/shareplex/f/forum/20700/where-can-download-7-6-3-or-support-9i-shareplex) untuk mereplikasi dari versi database Oracle sebelumnya ke versi database Oracle yang lebih baru. Instans database Oracle perantara kompatibel sebagai target untuk SharePlex 7.6.3 dan didukung sebagai sumber untuk AWS DMS atau rilis yang lebih baru. SharePlex Dukungan ini memungkinkan replikasi data selanjutnya ke lingkungan target Amazon RDS for Oracle.

Pertimbangkan bahwa beberapa tipe dan fitur data yang tidak digunakan lagi dapat memengaruhi migrasi dari Oracle 8i atau 9i ke Oracle Database versi terbaru. Untuk mengurangi dampak ini, pola ini menggunakan Oracle 11.2.0.4 sebagai versi database perantara untuk membantu mengoptimalkan kode skema sebelum bermigrasi ke lingkungan target Amazon RDS for Oracle.

## Prasyarat dan batasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sumber database Oracle 8i atau 9i di lingkungan lokal
+ [Oracle Database 12c Rilis 2](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/index.html) (12CR2) untuk pementasan di Amazon Elastic Compute Cloud (Amazon) EC2
+ Quest SharePlex 7.6.3 (kelas komersial)

**Batasan**
+ [RDS untuk keterbatasan Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.limitations.html)

**Versi produk**
+ Oracle 8i atau 9i untuk database sumber
+ Oracle 12 CR2 untuk database pementasan (harus cocok dengan Amazon RDS for Oracle versi)
+ Oracle 12 CR2 atau yang lebih baru untuk database target (Amazon RDS for Oracle)

## Arsitektur
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle 8i atau 9i
+ SharePlex

**Tumpukan teknologi target**
+ Amazon RDS for Oracle

**Arsitektur migrasi**

Diagram berikut menunjukkan cara memigrasikan database Oracle 8i atau 9i dari lingkungan lokal ke instans Amazon RDS for Oracle DB di AWS Cloud.

![\[Alur kerja untuk memigrasikan database Oracle lokal ke Amazon RDS di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6e07d586-fd74-4f3d-8e81-79dd55c445c3/images/36e1a5ff-908b-4cb7-96f7-997eb105f1d6.png)


Diagram menunjukkan alur kerja berikut:

1. Aktifkan database sumber Oracle dengan mode log arsip, pencatatan paksa, dan pencatatan tambahan.

1. [Kembalikan database pementasan Oracle dari database sumber Oracle dengan menggunakan pemulihan Recovery Manager (RMAN) point-in-time dan FLASHBACK\$1SCN.](https://docs.oracle.com/database/121/SUTIL/GUID-D408B112-1A81-4F68-BEFF-7403A9588DDB.htm#SUTIL849)

1. Konfigurasikan SharePlex untuk membaca redo log dari database sumber Oracle dengan menggunakan `FLASHBACK_SCN` (digunakan dalam RMAN).

1. Mulai SharePlex replikasi untuk menyinkronkan data dari database sumber Oracle ke database pementasan Oracle.

1. Kembalikan database target Amazon RDS for Oracle dengan menggunakan EXPDP dan IMPDP dengan. `FLASHBACK_SCN`

1. Konfigurasikan AWS DMS dan tugas sumbernya sebagai database pementasan Oracle dan Amazon RDS for Oracle sebagai database target `FLASHBACK_SCN` dengan menggunakan (digunakan dalam EXPDP).

1. Mulai tugas AWS DMS untuk menyinkronkan data dari database pementasan Oracle ke database target Oracle.

## Alat
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-tools"></a>
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal.
+ [Quest SharePlex](https://support.quest.com/shareplex/11.0/technical-documents) adalah alat replikasi Oracle-to-Oracle data untuk memindahkan data dengan downtime minimal dan tidak ada kehilangan data.
+ [Recovery Manager (RMAN)](https://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmquick.htm) adalah klien Oracle Database yang melakukan tugas pencadangan dan pemulihan pada database Anda. Ini sangat menyederhanakan pencadangan, pemulihan, dan pemulihan file database.
+ [Ekspor Pompa Data](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL823) membantu Anda mengunggah data dan metadata ke dalam satu set file sistem operasi yang disebut kumpulan file dump. Kumpulan file dump hanya dapat diimpor oleh utilitas [Impor Pompa Data](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300) atau paket [DBMS\$1DATAPUMP](https://docs.oracle.com/database/121/ARPLS/d_datpmp.htm#ARPLS356).

## Epik
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-epics"></a>

### Siapkan SharePlex dan database pementasan Oracle di Amazon EC2
<a name="set-up-shareplex-and-the-oracle-staging-database-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.html) | Administrasi Oracle | 
| Siapkan database pementasan. | Siapkan database pementasan Oracle untuk dipulihkan sebagai upgrade pada Oracle 12 CR2 dengan mengambil cadangan RMAN dari lingkungan sumber database Oracle 8i atau 9i.Untuk informasi selengkapnya, lihat Panduan Pengguna [Oracle 9i Recovery Manager dan Panduan Pengguna](https://docs.oracle.com/cd/B10500_01/server.920/a96566/toc.htm) [Backup dan Pemulihan Database](https://docs.oracle.com/database/121/BRADV/rcmcomre.htm#BRADV8005) dalam dokumentasi Oracle. | Administrasi Oracle | 
| Konfigurasikan SharePlex. | Konfigurasikan SharePlex sumber sebagai database Oracle 8i atau 9i lokal, dan konfigurasikan target sebagai database CR2 pementasan Oracle 12 yang dihosting di Amazon. EC2 | SharePlex, Administrasi Oracle | 

### Siapkan Amazon RDS for Oracle sebagai lingkungan target Anda
<a name="set-up-amazon-rds-for-oracle-as-your-target-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance Oracle DB. | Buat database Amazon RDS for Oracle, lalu hubungkan CR2 Oracle 12 ke database.Untuk informasi selengkapnya, lihat [Membuat instans Oracle DB dan menghubungkan ke database pada instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) dalam dokumentasi Amazon RDS. | DBA | 
| Kembalikan Amazon RDS for Oracle dari database pementasan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.html)Untuk informasi selengkapnya, lihat [54 DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_DATAPUMP.html#GUID-AEA7ED80-DB4A-4A70-B199-592287206348) di dokumentasi Oracle. | DBA | 

### Mengatur AWS DMS
<a name="set-up-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir untuk database. | Buat titik akhir sumber untuk database pementasan Oracle dan titik akhir target untuk database Amazon RDS for Oracle.Untuk informasi selengkapnya, lihat [Bagaimana cara membuat titik akhir sumber atau target menggunakan AWS DMS?](https://aws.amazon.com/premiumsupport/knowledge-center/create-source-target-endpoints-aws-dms/) di Pusat Pengetahuan AWS. | DBA | 
| Buat contoh replikasi. | Gunakan AWS DMS untuk meluncurkan instance replikasi untuk database pementasan Oracle ke database Amazon RDS for Oracle.Untuk informasi selengkapnya, lihat [Bagaimana cara membuat instans replikasi AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/)? di Pusat Pengetahuan AWS. | DBA | 
| Buat dan mulai tugas replikasi. | Buat tugas replikasi AWS DMS untuk pengambilan data perubahan (CDC) dengan menggunakan `FLASHBACK_SCN` dari EXPDP (karena beban penuh sudah terjadi melalui EXPDP).Untuk informasi selengkapnya, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) dalam dokumentasi AWS DMS. | DBA | 

### Dipotong ke Amazon RDS for Oracle
<a name="cut-over-to-amazon-rds-for-oracle"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan beban kerja aplikasi. | Hentikan server aplikasi dan aplikasinya selama jendela cutover yang direncanakan. | Pengembang aplikasi, DBA | 
| Validasi sinkronisasi database pementasan Oracle lokal dengan instance. EC2  | Konfirmasikan bahwa semua pesan telah diposting untuk tugas replikasi dari instance SharePlex replikasi ke database pementasan Oracle di Amazon EC2 dengan melakukan beberapa sakelar log pada database sumber lokal.Untuk informasi selengkapnya, lihat [6.4.2 Mengganti File Log](https://docs.oracle.com/database/121/ADMQS/GUID-E30B4C65-2AC7-4A44-A58C-D3C121EB152F.htm#ADMQS12075) di dokumentasi Oracle. | DBA | 
| Validasi sinkronisasi database pementasan Oracle dengan database Amazon RDS for Oracle. | Konfirmasikan bahwa semua tugas AWS DMS Anda tidak memiliki lag dan tidak ada kesalahan, lalu periksa status validasi tugas. | DBA | 
| Hentikan replikasi SharePlex dan Amazon RDS. | Jika replikasi DMS SharePlex dan AWS tidak menunjukkan kesalahan apa pun, hentikan kedua replikasi. | DBA | 
| Memetakan ulang aplikasi ke Amazon RDS. | Bagikan detail endpoint Amazon RDS for Oracle dengan server aplikasi dan aplikasinya, lalu mulai aplikasi untuk melanjutkan operasi bisnis. | Pengembang aplikasi, DBA | 

### Uji lingkungan target AWS
<a name="test-the-aws-target-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji lingkungan database pementasan Oracle di AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.html) | SharePlex, Administrasi Oracle | 
| Uji lingkungan Amazon RDS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.html)Untuk informasi selengkapnya, lihat [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle di dokumentasi Amazon RDS. | Administrasi Oracle | 

## Sumber daya terkait
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms-resources"></a>
+ [Migrasi dengan percaya diri](https://aws.amazon.com/cloud-migration/)
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Debugging Migrasi AWS DMS Anda: Apa yang Harus Dilakukan Ketika Ada yang Salah (Bagian 1)](https://aws.amazon.com/blogs/database/debugging-your-aws-dms-migrations-what-to-do-when-things-go-wrong-part-1/)
+ [Debugging Migrasi AWS DMS Anda: Apa yang Harus Dilakukan Ketika Ada yang Salah (Bagian 2)](https://aws.amazon.com/blogs/database/debugging-your-aws-dms-migrations-what-to-do-when-things-go-wrong-part-2/)
+ [Debugging Migrasi AWS DMS Anda: Apa yang Harus Dilakukan Ketika Ada yang Salah? (Bagian 3)](https://aws.amazon.com/blogs/database/debugging-your-aws-dms-migrations-what-to-do-when-things-go-wrong-part-3/)
+ [SharePlex untuk Replikasi Database](https://aws.amazon.com/marketplace/pp/B07943W4MJ)
+ [SharePlex: replikasi database untuk lingkungan apa pun](https://www.youtube.com/watch?v=ygS_ouUaNus)

# Memigrasikan database MySQL lokal ke Amazon EC2
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2"></a>

*Lorenzo Mota, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database MySQL lokal ke database MySQL di instans Amazon Elastic Compute Cloud (Amazon EC2). Pola ini membahas penggunaan AWS Database Migration Service (AWS DMS) atau alat MySQL asli **seperti** mysqldump untuk migrasi. Ini berfokus pada migrasi database penuh ke instance MySQL DB.

Pola ini terutama untuk DBAs dan solusi arsitek. Ini dapat digunakan dalam proyek kecil atau besar, dalam pengujian atau fase migrasi akhir. Kami menyarankan Anda menjalankan setidaknya satu siklus pengujian sebelum Anda menggunakan pola ini di lingkungan produksi. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber MySQL di pusat data lokal 

**Versi produk**
+ MySQL versi 5.5 dan yang lebih baru
+ [Sistem operasi target yang didukung oleh Amazon EC2; lihat Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)

## Arsitektur
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-architecture"></a>

**Tumpukan teknologi sumber**
+ Database MySQL lokal

**Tumpukan teknologi target**
+ Instans database MySQL di Amazon EC2

**Metode migrasi data AWS**
+ AWS DMS
+ [Alat MySQL asli seperti mysqldump, atau alat pihak ketiga [seperti](https://dev.mysql.com/doc/refman/en/mysqldump.html) Percona XtraBackup](https://www.percona.com/mysql/software/percona-xtrabackup)

**Arsitektur target**

Diagram berikut menggambarkan implementasi target Amazon EC2 setelah cutover.

![\[Instans MySQL DB di Amazon EC2 dengan replikasi ke instans MySQL DB siaga.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d22b3e25-4d3b-4bd7-ad07-501748d67752/images/34cab6f9-9107-4c3b-98ec-a6d7fa9f298a.png)


 

**Arsitektur migrasi data AWS**

*Menggunakan AWS DMS:*

Diagram berikut menggambarkan alur kerja migrasi data berdasarkan AWS DMS pengiriman perubahan penuh dan bertahap ke database MySQL target hingga cutover. Koneksi jaringan dari tempat ke AWS tergantung pada persyaratan klien SQL dan berada di luar cakupan pola ini.

![\[Menggunakan AWS DMS untuk mengirim data ke MySQL DB target di Amazon EC2.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d22b3e25-4d3b-4bd7-ad07-501748d67752/images/c906c45d-fac5-4bb9-b8c8-55e2f9f05fd8.png)


*Menggunakan alat MySQL lainnya:*

Diagram berikut menggambarkan alur kerja migrasi data berdasarkan penggunaan alat MySQL untuk menghasilkan file dump ekspor dari database lokal. File-file ini dipindahkan ke Amazon Simple Storage Service (Amazon S3) dan diimpor ke database MySQL target sebelum cutover. Koneksi jaringan dari tempat ke AWS tergantung pada persyaratan klien SQL dan berada di luar cakupan pola ini.

![\[Menggunakan alat MySQL asli untuk mengirim data ke MySQL DB target di Amazon EC2.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d22b3e25-4d3b-4bd7-ad07-501748d67752/images/18e88877-7879-4a99-b985-25c56bf7c35f.png)


Catatan:
+ Bergantung pada pertimbangan down time dan ukuran database untuk cutover akhir, Anda dapat menggunakan AWS DMS atau alat change data capture (CDC) lainnya untuk meminimalkan waktu cutover. Bila Anda menggunakan alat CDC seperti AWS DMS, Anda dapat bermigrasi ke database target dalam hitungan menit. 
+ Strategi offline dengan **mysqldump** bisa cukup jika ukuran database dan latensi jaringan memungkinkan jendela migrasi cutover pendek. (Kami menyarankan Anda melakukan pengujian untuk mendapatkan perkiraan waktu.)
+ Biasanya strategi CDC melalui AWS DMS membutuhkan lebih banyak pemantauan dan kompleksitas daripada opsi offline.

## Alat
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-tools"></a>

**AWS layanan**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) mendukung beberapa basis data sumber dan target. Untuk informasi tentang sumber MySQL dan basis data target yang didukung AWS DMS oleh, [lihat Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS untuk [dan Menggunakan](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) database yang kompatibel dengan MySQL sebagai](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html) target. AWS DMS Jika database sumber Anda tidak didukung oleh AWS DMS, Anda harus memilih metode lain untuk memigrasi data Anda.

**Alat-alat lainnya**
+ [mysqldump adalah](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) utilitas MySQL yang membuat file dump dari database MySQL untuk tujuan pencadangan atau migrasi.
+ [Percona XtraBackup](https://www.percona.com/mysql/software/percona-xtrabackup) adalah utilitas open source untuk melakukan backup non-blocking pada database MySQL.

## Epik
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi database. | Validasi versi database sumber dan target. Untuk informasi tentang versi MySQL yang didukung AWS DMS oleh, [lihat Sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html) untuk [dan Target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) untuk dalam dokumentasi. AWS DMS  | DBA | 
| Identifikasi sistem operasi target. | Tentukan versi sistem operasi target. Untuk daftar sistem operasi target yang didukung oleh Amazon EC2, lihat Amazon [EC2](https://aws.amazon.com/ec2/faqs/). FAQs | DBA, Administrator sistem | 
| Identifikasi persyaratan perangkat keras. | Tentukan persyaratan perangkat keras untuk [instance server target](https://aws.amazon.com/rds/instance-types/) berdasarkan daftar kompatibilitas MySQL dan persyaratan kapasitas. | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan. | Tentukan jenis penyimpanan dan kapasitas untuk database target. | DBA, Administrator sistem | 
| Identifikasi persyaratan jaringan. | Tentukan persyaratan jaringan seperti latensi dan bandwidth. | DBA, Administrator sistem | 
| Pilih jenis instance target. | Pilih [jenis instans target](https://aws.amazon.com/rds/instance-types/) berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan. | Tentukan persyaratan keamanan akses jaringan atau host untuk basis data sumber dan target. | DBA, Administrator sistem | 
| Identifikasi pengguna. | Tentukan daftar pengguna sistem operasi untuk instalasi perangkat lunak MySQL. Untuk informasi selengkapnya, lihat [dokumentasi MySQL](https://dev.mysql.com/doc/mysql-security-excerpt/en/access-control.html). | DBA, Administrator sistem | 
| Tentukan strategi cadangan. |  | DBA | 
| Tentukan persyaratan ketersediaan. |  | DBA | 
| Identifikasi migrasi aplikasi atau strategi peralihan. |  | DBA, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet. | Konfigurasikan tabel rute, gateway internet, gateway NAT, dan subnet. Untuk informasi selengkapnya, lihat [opsi konfigurasi VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc-options.html) di dokumentasi Amazon VPC. | Administrator sistem | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACLs). | Konfigurasikan port (default untuk MySQL adalah 3306) dan rentang CIDR atau spesifik tergantung pada kebutuhan Anda. IPs  | Administrator sistem | 
| Konfigurasikan dan mulai instance EC2. | Untuk petunjuknya, lihat [Meluncurkan instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) di dokumentasi Amazon EC2. | Administrator sistem | 

### Instal perangkat lunak MySQL
<a name="install-mysql-software"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna dan grup. | Buat pengguna dan grup sistem operasi yang membutuhkan akses ke server dan database. Untuk informasi selengkapnya, lihat [Kontrol Akses dan Manajemen Akun](https://dev.mysql.com/doc/refman/en/access-control.html) di dokumentasi MySQL. | DBA, Administrator sistem | 
| Unduh MySQL. | Unduh perangkat lunak MySQL. Untuk petunjuk dan binari, lihat [Menginstal MySQL di dokumentasi](https://dev.mysql.com/doc/refman/en/installing.html) MySQL. | DBA, Administrator sistem | 
| Instal MySQL pada instans EC2 dan konfigurasikan server. | Connect ke instans EC2 Anda dan instal perangkat lunak MySQL. Untuk informasi selengkapnya, lihat [Connect ke instans EC2 Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html) di dokumentasi Amazon EC2. | DBA, Administrator sistem | 

### Migrasi data - opsi 1
<a name="migrate-data-option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan MySQL asli atau alat pihak ketiga. | Opsi ini menggunakan alat MySQL asli atau alat pihak ketiga untuk memigrasikan objek dan data database. Untuk petunjuk, lihat dokumentasi untuk [mysqldump](https://dev.mysql.com/doc/refman/en/mysqldump.html) atau [Percona XtraBackup](https://docs.percona.com/percona-xtrabackup/2.4/index.html) (untuk migrasi fisik). Untuk informasi selengkapnya tentang penggunaan alat ini, lihat [opsi migrasi posting AWS blog untuk MySQL ke Amazon RDS for MySQL atau Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/migration-options-for-mysql-to-amazon-rds-for-mysql-or-amazon-aurora-mysql/). | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-data-option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan AWS DMS. | Untuk informasi selengkapnya, lihat [Tampilan tingkat tinggi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.HighLevelView.html) dalam AWS DMS dokumentasi. | DBA | 

### Bersiaplah untuk cutover
<a name="prepare-for-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kumpulkan jumlah objek. | Kumpulkan jumlah objek dari database sumber dan database target baru. Perbaiki perbedaan apa pun dalam database target. | DBA | 
| Periksa dependensi. | Konfirmasikan bahwa dependensi (tautan) ke dan dari database lain masih valid dan berfungsi dengan benar. | DBA | 
| Uji. | Jika ini adalah siklus pengujian, lakukan pengujian kueri, kumpulkan metrik, dan perbaiki masalah apa pun. | DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pindahkan klien. | Alihkan klien aplikasi ke infrastruktur baru. | DBA, Pemilik aplikasi, Administrator sistem | 
| Berikan dukungan. | Memberikan dukungan selama pengujian aplikasi fungsional. | DBA | 

### Tutup proyek
<a name="close-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya. | Matikan contoh AWS DMS replikasi dan AWS sumber daya sementara lainnya. | DBA, Administrator sistem | 
| Tinjau dan dokumen proyek. | Tinjau dan validasi dokumen proyek. | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik. | Kumpulkan metrik seperti waktu untuk bermigrasi, persentase perubahan manual dibandingkan dengan perubahan bantuan alat, dan penghematan biaya. | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek. | Tutup proyek migrasi dan berikan umpan balik. | DBA, Pemilik aplikasi, Administrator sistem | 
| Database sumber penonaktifan. | Menonaktifkan database MySQL lokal. | DBA, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-mysql-database-to-amazon-ec2-resources"></a>

**Referensi**
+ [Dokumentasi Amazon EC2](https://docs.aws.amazon.com/ec2/)
+ [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/)
+ [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/)
+ [AWS DMS Step-by-Step Penelusuran](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+ [Percona XtraBackup](https://www.percona.com/mysql/software/percona-xtrabackup)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Pengantar Amazon EC2 - Elastic Cloud Server & Hosting dengan AWS(video](https://www.youtube.com/watch?v=TsRBftzZsQo))

# Pantau Amazon Aurora untuk instance tanpa enkripsi
<a name="monitor-amazon-aurora-for-instances-without-encryption"></a>

*Mansi Suratwala, Amazon Web Services*

## Ringkasan
<a name="monitor-amazon-aurora-for-instances-without-encryption-summary"></a>

Pola ini menyediakan CloudFormation template Amazon Web Services (AWS) yang dapat Anda terapkan untuk mengatur notifikasi otomatis saat instans Amazon Aurora dibuat tanpa enkripsi diaktifkan.

Aurora adalah mesin basis data relasional yang dikelola sepenuhnya dan kompatibel dengan MySQL dan PostgreSQL. Dengan sejumlah beban kerja, Aurora dapat memberikan hingga lima kali throughput MySQL dan hingga tiga kali throughput PostgreSQL tanpa memerlukan perubahan pada sebagian besar aplikasi Anda saat ini.

 CloudFormation Template membuat CloudWatch acara Amazon Events dan fungsi AWS Lambda. Acara ini menggunakan AWS CloudTrail untuk memantau pembuatan instans Aurora apa pun atau pemulihan titik waktu dari instans yang ada. Acara Cloudwatch Events memulai fungsi Lambda, yang memeriksa apakah enkripsi diaktifkan. Jika enkripsi tidak diaktifkan, fungsi Lambda mengirimkan notifikasi Amazon Simple Notification Service (Amazon SNS) yang memberi tahu Anda tentang pelanggaran tersebut. 

## Prasyarat dan batasan
<a name="monitor-amazon-aurora-for-instances-without-encryption-prereqs"></a>

**Prasyarat******
+ Akun AWS yang aktif

**Batasan**
+ Kontrol layanan ini hanya berfungsi dengan instans Amazon Aurora. Ini tidak mendukung instans Amazon Relational Database Service (Amazon RDS) lainnya.
+  CloudFormation Template harus digunakan untuk `CreateDBInstance`**** dan `RestoreDBClusterToPointInTim` **e** saja. 

**Versi produk**
+ Versi PostgreSQL yang didukung di Amazon Aurora
+ Versi MySQL yang didukung di Amazon Aurora

## Arsitektur
<a name="monitor-amazon-aurora-for-instances-without-encryption-architecture"></a>

**Tumpukan teknologi target**
+ Amazon Aurora
+ AWS CloudTrail
+ Amazon CloudWatch
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon S3)
+ Amazon SNS

**Arsitektur target**

![\[Peluncuran Aurora tanpa pemanggilan enkripsi, CloudTrail Acara CloudWatch , Lambda, dan pesan SNS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/de1528b8-a5a4-4c66-8ab3-7d9863572cbc/images/7dcab41a-d805-4bb0-99d1-1dcef37c4e55.png)


**Otomatisasi dan skala**

Anda dapat menggunakan CloudFormation template beberapa kali untuk Wilayah dan akun yang berbeda. Anda hanya perlu menjalankannya sekali di setiap Wilayah atau akun.

## Alat
<a name="monitor-amazon-aurora-for-instances-without-encryption-tools"></a>

**Alat**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) - Amazon Aurora adalah mesin database relasional yang dikelola sepenuhnya yang kompatibel dengan MySQL dan PostgreSQL.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) — AWS CloudTrail membantu Anda mengelola tata kelola, kepatuhan, serta audit operasional dan risiko akun AWS Anda. Tindakan yang diambil oleh pengguna, peran, atau layanan AWS dicatat sebagai peristiwa di CloudTrail. 
+ [ CloudWatch Acara Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — CloudWatch Acara Amazon menghadirkan near-real-time aliran peristiwa sistem yang menjelaskan perubahan sumber daya AWS. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel yang dapat Anda gunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan danau data.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) - Amazon Simple Notification Service (Amazon SNS) adalah layanan terkelola yang menyediakan pengiriman pesan menggunakan Lambda, HTTP, email, notifikasi push seluler, dan pesan teks seluler (SMS). 

**Kode**

File.zip proyek tersedia sebagai lampiran.

## Epik
<a name="monitor-amazon-aurora-for-instances-without-encryption-epics"></a>

### Buat bucket S3 untuk skrip Lambda
<a name="create-the-s3-bucket-for-the-lambda-script"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan bucket S3. | Buka konsol Amazon S3, dan pilih atau buat bucket S3. Bucket S3 ini akan meng-host file kode Lambda .zip. Bucket S3 Anda harus berada di Wilayah yang sama dengan Aurora. Nama bucket S3 tidak dapat berisi garis miring di depan. | Arsitek awan | 

### Unggah kode Lambda ke bucket S3
<a name="upload-the-lambda-code-to-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah kode Lambda. | Unggah file kode Lambda .zip yang disediakan di bagian *Lampiran* ke bucket S3 yang Anda tentukan. | Arsitek awan | 

### Menyebarkan template CloudFormation
<a name="deploy-the-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan CloudFormation template. | Di CloudFormation konsol, terapkan `RDS_Aurora_Encryption_At_Rest.yml` CloudFormation template yang disediakan sebagai lampiran ke pola ini. Dalam epik berikutnya, berikan nilai untuk parameter template. | Arsitek awan | 

### Lengkapi parameter dalam CloudFormation template
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Berikan nama bucket S3. | Masukkan nama bucket S3 yang Anda buat atau pilih di epik pertama. | Arsitek awan  | 
| Berikan kunci S3. | Berikan lokasi file kode Lambda .zip di bucket S3 Anda, tanpa garis miring di depan (misalnya,). `<directory>/<file-name>.zip` | Arsitek awan  | 
| Berikan alamat email. | Berikan alamat email aktif untuk menerima notifikasi Amazon SNS. | Arsitek awan  | 
| Tentukan tingkat logging. | Tentukan tingkat logging dan frekuensi untuk fungsi Lambda Anda. `Info`menunjuk pesan informasi rinci tentang kemajuan aplikasi. `Error`menunjuk peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan. `Warning`menunjuk situasi yang berpotensi berbahaya. | Arsitek awan | 

### Konfirmasi langganan.
<a name="confirm-the-subscription"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasi langganan. | Ketika template berhasil digunakan, ia mengirimkan pesan email berlangganan ke alamat email yang disediakan. Untuk menerima pemberitahuan, Anda harus mengonfirmasi langganan email ini.  | Arsitek awan | 

## Sumber daya terkait
<a name="monitor-amazon-aurora-for-instances-without-encryption-resources"></a>
+ [Membuat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Mengunggah file ke bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) 
+ [Membuat klaster DB Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html)
+ [Membuat aturan CloudWatch Acara yang dipicu pada panggilan AWS API menggunakan AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html)

## Lampiran
<a name="attachments-de1528b8-a5a4-4c66-8ab3-7d9863572cbc"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/de1528b8-a5a4-4c66-8ab3-7d9863572cbc/attachments/attachment.zip)

# Memantau GoldenGate log Oracle dengan menggunakan Amazon CloudWatch
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch"></a>

*Chithra Krishnamurthy, Amazon Web Services*

## Ringkasan
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-summary"></a>

Oracle GoldenGate menyediakan replikasi real-time antara Amazon Relational Database Service (Amazon RDS) untuk database Oracle, atau antara database Oracle yang dihosting di Amazon Elastic Compute Cloud (Amazon EC2). Ini mendukung replikasi searah dan dua arah.

Ketika Anda menggunakan GoldenGate untuk replikasi, pemantauan sangat penting untuk memverifikasi bahwa GoldenGate proses aktif dan berjalan, untuk memastikan bahwa sumber dan database target sinkron.

Pola ini menjelaskan langkah-langkah untuk menerapkan CloudWatch pemantauan Amazon untuk log GoldenGate kesalahan, dan cara menyetel alarm untuk mengirim pemberitahuan untuk peristiwa tertentu seperti `STOP` atau `ABEND` agar Anda dapat mengambil tindakan yang sesuai untuk melanjutkan replikasi dengan cepat.

## Prasyarat dan batasan
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-prereqs"></a>

**Prasyarat**
+ GoldenGate diinstal dan dikonfigurasi pada instans EC2, sehingga Anda dapat mengatur CloudWatch pemantauan pada instans EC2 tersebut. Jika Anda ingin memantau GoldenGate seluruh Wilayah AWS untuk replikasi dua arah, Anda harus menginstal CloudWatch agen di setiap instans EC2 tempat proses berjalan. GoldenGate 

**Keterbatasan**
+ Pola ini menjelaskan cara memantau GoldenGate proses dengan menggunakan CloudWatch. CloudWatch tidak memantau kelambatan replikasi atau masalah sinkronisasi data selama replikasi. [Anda harus menjalankan kueri SQL terpisah untuk memantau kelambatan replikasi atau kesalahan terkait data, seperti yang dijelaskan dalam dokumentasi. GoldenGate ](https://docs.oracle.com/en/middleware/goldengate/core/19.1/index.html)

**Versi produk**
+ Dokumen ini didasarkan pada implementasi Oracle GoldenGate 19.1.0.0.4 untuk Oracle di Linux x86-64. Namun, solusi ini berlaku untuk semua versi utama GoldenGate.

## Arsitektur
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-architecture"></a>

**Tumpukan teknologi target**
+ GoldenGate binari untuk Oracle diinstal pada instans EC2
+ Amazon CloudWatch
+ Amazon Simple Notification Service (Amazon SNS)

**Arsitektur target**

![\[Arsitektur target untuk memantau GoldenGate log di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/973a71d5-b6b3-4a2b-813e-cb4d8fd51ba5/images/1781aa9b-77b3-40c4-bc54-3cb91400899c.png)


## Alat
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-tools"></a>

**Layanan AWS**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) adalah layanan pemantauan yang digunakan dalam pola ini untuk memantau log GoldenGate kesalahan.
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) adalah layanan notifikasi pesan yang digunakan dalam pola ini untuk mengirim notifikasi email.

**Alat-alat lainnya**
+ [Oracle GoldenGate ](https://docs.oracle.com/en/middleware/goldengate/core/19.1/index.html) adalah alat replikasi data yang dapat Anda gunakan untuk database Amazon RDS for Oracle atau database Oracle yang di-host di Amazon EC2.

**Langkah-langkah implementasi tingkat tinggi**

1. Buat peran AWS Identity and Access Management (IAM) untuk CloudWatch agen.

1. Lampirkan peran IAM ke instance EC2 di mana log GoldenGate kesalahan dihasilkan.

1. Instal CloudWatch agen pada instans EC2.

1. Konfigurasikan file konfigurasi CloudWatch agen: `awscli.conf` dan`awslogs.conf`.

1. Mulai CloudWatch agen.

1. Buat filter metrik di grup log.

1. Siapkan Amazon SNS.

1. Buat alarm untuk filter metrik. Amazon SNS mengirimkan peringatan email saat filter tersebut menangkap peristiwa.

Untuk petunjuk terperinci, lihat bagian selanjutnya.

## Epik
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-epics"></a>

### Langkah 1. Buat peran IAM untuk agen CloudWatch
<a name="step-1-create-an-iam-role-for-the-cloudwatch-agent"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM. | Akses ke sumber daya AWS memerlukan izin, sehingga Anda membuat peran IAM untuk menyertakan izin yang diperlukan untuk setiap server untuk menjalankan agen. CloudWatch Untuk membuat peran IAM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) | AWS umum | 

### Langkah 2. Lampirkan peran IAM ke instans GoldenGate EC2
<a name="step-2-attach-the-iam-role-to-the-goldengate-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lampirkan peran IAM ke instance EC2 di mana log GoldenGate kesalahan dihasilkan. | Log kesalahan yang dihasilkan oleh GoldenGate harus diisi CloudWatch dan dipantau, jadi Anda perlu melampirkan peran IAM yang Anda buat di langkah 1 ke instans EC2 yang sedang berjalan. GoldenGate Untuk melampirkan peran IAM ke sebuah instance:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) | AWS umum | 

### Langkah 3-5. Instal dan konfigurasikan CloudWatch agen pada instans EC2 Goldengate
<a name="steps-3-5-install-and-configure-the-cloudwatch-agent-on-the-goldengate-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal CloudWatch agen pada instans GoldenGate EC2. | Untuk menginstal agen, jalankan perintah:<pre>sudo yum install -y awslogs</pre> | AWS umum | 
| Edit file konfigurasi agen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) | AWS umum | 
| Mulai CloudWatch agen. | Untuk memulai agen, gunakan perintah berikut.<pre>$ sudo service awslogsd start</pre>Setelah Anda memulai agen, Anda dapat melihat grup log di CloudWatch konsol. Aliran log akan memiliki isi file. | AWS umum | 

### Langkah 6. Buat filter metrik untuk grup log
<a name="step-6-create-metric-filters-for-the-log-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat filter metrik untuk kata kunci ABEND dan STOPTED. | Saat Anda membuat filter metrik untuk grup log, setiap kali filter diidentifikasi dalam log kesalahan, filter akan memulai alarm dan mengirimkan pemberitahuan email berdasarkan konfigurasi Amazon SNS.Untuk membuat filter metrik:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) | CloudWatch | 

### Langkah 7. Siapkan Amazon SNS
<a name="step-7-set-up-amazon-sns"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membuat sebuah topik SNS. | Pada langkah ini, Anda mengonfigurasi Amazon SNS untuk membuat alarm untuk filter metrik.Untuk membuat topik SNS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) | Amazon SNS | 
| Buat langganan. | Untuk membuat langganan ke topik:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html)Amazon SNS membuka browser web Anda dan menampilkan konfirmasi berlangganan dengan ID langganan Anda. | Amazon SNS | 

### Langkah 8. Buat alarm untuk mengirim notifikasi untuk filter metrik
<a name="step-8-create-an-alarm-to-send-notifications-for-the-metric-filters"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat alarm untuk topik SNS. | Untuk membuat alarm berdasarkan filter metrik grup log:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html)Setelah langkah-langkah ini, setiap kali pola-pola ini terdeteksi dalam file log GoldenGate kesalahan (`ggserr.log`) yang Anda pantau, Anda akan mendapatkan pemberitahuan email. | CloudWatch | 

## Pemecahan masalah
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Aliran log dari log GoldenGate kesalahan tidak mengalir ke CloudWatch. | Periksa `/etc/awslogs/awslogs.conf` file untuk memverifikasi nama file, nama grup log, dan date/time formatnya. Anda harus menentukan date/time untuk mencocokkan format tanggal di`ggserror.log`. Jika tidak, aliran log tidak akan mengalir ke CloudWatch. | 

## Sumber daya terkait
<a name="monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch-resources"></a>
+ [ CloudWatch Dokumentasi Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [Mengumpulkan metrik dan log dengan agen CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+ [Dokumentasi Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

# Replatform Oracle Database Enterprise Edition ke Edisi Standar 2 di Amazon RDS for Oracle
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle"></a>

*Lanre (Lan-Ray) Showunmi dan Tarun Chawla, Amazon Web Services*

## Ringkasan
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-summary"></a>

Oracle Database Enterprise Edition (EE) adalah pilihan populer untuk menjalankan aplikasi di banyak perusahaan. Dalam beberapa kasus, bagaimanapun, aplikasi menggunakan sedikit atau tidak ada fitur Oracle Database EE, sehingga ada kurangnya pembenaran untuk menimbulkan biaya lisensi yang besar. Anda dapat mencapai penghematan biaya dengan menurunkan database tersebut ke Oracle Database Standard Edition 2 (SE2) saat Anda bermigrasi ke Amazon RDS.

Pola ini menjelaskan cara menurunkan versi dari Oracle Database EE ke Oracle Database SE2 saat bermigrasi dari lokal ke Amazon RDS for [Oracle](https://aws.amazon.com/rds/oracle/). Langkah-langkah yang disajikan dalam pola ini juga berlaku jika database EE Oracle Anda sudah berjalan di Amazon RDS atau pada instans [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html).

Untuk informasi selengkapnya, lihat panduan AWS Prescriptive Guidance tentang cara [Mengevaluasi penurunan database Oracle ke Standard Edition](https://docs.aws.amazon.com/prescriptive-guidance/latest/evaluate-downgrading-oracle-edition/welcome.html) 2 di AWS. 

## Prasyarat dan batasan
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Oracle Database Edisi Perusahaan
+ Alat klien, seperti [Oracle SQL Developer atau SQL\$1](https://www.oracle.com/database/sqldeveloper/) Plus, untuk menghubungkan ke dan menjalankan perintah SQL pada database Oracle
+ Pengguna database untuk melakukan penilaian; misalnya, salah satu dari berikut ini:
  + Pengguna dengan [hak istimewa](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Permissions) yang memadai untuk menjalankan penilaian [AWS Schema Conversion Tool (AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) SCT)
  + Pengguna dengan hak istimewa yang cukup untuk menjalankan kueri SQL pada tabel kamus database Oracle
+ Pengguna database untuk melakukan migrasi database; misalnya, salah satu dari berikut ini:
  + Pengguna dengan [hak istimewa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed) yang memadai untuk menjalankan [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
  + Pengguna dengan [hak istimewa yang cukup untuk melakukan ekspor dan impor Oracle Data Pump](https://docs.oracle.com/database/121/SUTIL/GUID-8B6975D3-3BEC-4584-B416-280125EEC57E.htm#SUTIL807)
  + Pengguna dengan [hak istimewa yang cukup untuk menjalankan Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/user_assignment.htm#GIORA546)

**Batasan**
+ Amazon RDS for Oracle memiliki ukuran database maksimum. Untuk informasi selengkapnya, lihat [Penyimpanan instans DB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).

**Versi produk**

Logika umum yang dijelaskan dalam dokumen ini berlaku untuk versi Oracle dari 9i dan yang lebih baru. [Untuk versi yang didukung dari database Amazon RDS for Oracle yang dikelola sendiri, lihat dokumentasi AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)

Untuk mengidentifikasi penggunaan fitur jika AWS SCT tidak didukung, jalankan kueri SQL pada database sumber. Untuk bermigrasi dari versi Oracle sebelumnya di mana AWS DMS dan Oracle Data Pump tidak didukung, gunakan utilitas Ekspor dan [Impor Oracle](https://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm).

Untuk daftar versi dan edisi yang didukung saat ini, lihat [Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) dalam dokumentasi AWS. Untuk detail tentang harga dan kelas instans yang didukung, lihat harga [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/pricing/).

## Arsitektur
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-architecture"></a>

**Tumpukan teknologi sumber**
+ Oracle Database Enterprise Edition berjalan di tempat atau di Amazon EC2

**Targetkan tumpukan teknologi menggunakan alat Oracle asli**
+ Amazon RDS for Oracle menjalankan Oracle Database SE2

![\[Proses tiga langkah untuk bermigrasi dari Oracle DB lokal ke Amazon RDS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a1b28050-9bab-4de6-b2a9-b97b3e5070bd/images/bf765c5b-4b12-4a8c-b27c-c5e0bd605dd1.png)


 

1. Ekspor data dengan menggunakan Oracle Data Pump.

1. Salin file dump ke Amazon RDS melalui tautan database.

1. Impor file dump ke Amazon RDS dengan menggunakan Oracle Data Pump.

**Targetkan tumpukan teknologi menggunakan AWS DMS**
+ Amazon RDS for Oracle menjalankan Oracle Database SE2
+ AWS DMS

![\[Proses empat langkah untuk bermigrasi dari Oracle DB lokal ke Amazon RDS menggunakan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a1b28050-9bab-4de6-b2a9-b97b3e5070bd/images/fef4eced-1acb-4303-baaa-5c1c29650935.png)


1. Ekspor data dengan menggunakan Oracle Data Pump dengan FLASHBACK\$1SCN.

1. Salin file dump ke Amazon RDS melalui tautan database.

1. Impor file dump ke Amazon RDS dengan menggunakan Oracle Data Pump.

1. Gunakan [pengambilan data perubahan AWS DMS (CDC](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)).

## Alat
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-tools"></a>

**Layanan AWS**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud. Pola ini menggunakan Amazon RDS for Oracle.
+ [AWS SCT****](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) menyediakan antarmuka pengguna berbasis proyek untuk secara otomatis menilai, mengonversi, dan menyalin skema database database sumber Oracle Anda ke dalam format yang kompatibel dengan Amazon RDS for Oracle. AWS SCT memungkinkan Anda menganalisis potensi penghematan biaya yang dapat dicapai dengan mengubah jenis lisensi Anda dari Enterprise ke Standard Edition of Oracle. Bagian **Evaluasi Lisensi dan Dukungan Cloud** dari laporan AWS SCT memberikan informasi terperinci tentang fitur Oracle yang digunakan sehingga Anda dapat membuat keputusan berdasarkan informasi saat bermigrasi ke Amazon RDS for Oracle.

**Alat-alat lainnya**
+ Utilitas impor dan ekspor Oracle asli mendukung pemindahan data Oracle masuk dan keluar dari database Oracle. Oracle menawarkan dua jenis utilitas impor dan ekspor database: [Original Export and Import](https://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm) (untuk rilis sebelumnya) dan [Oracle Data Pump Export and Import](https://docs.oracle.com/cd/B19306_01/server.102/b14215/part_dp.htm#CEGJCCHC) (tersedia di Oracle Database 10g rilis 1 dan yang lebih baru).
+ [Oracle GoldenGate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleGoldenGate.html) menawarkan kemampuan replikasi real-time sehingga Anda dapat menyinkronkan database target Anda setelah pemuatan awal. Opsi ini dapat membantu mengurangi waktu henti aplikasi selama go-live.

## Epik
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-epics"></a>

### Buat penilaian pra-migrasi
<a name="make-a-pre-migration-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi persyaratan database untuk aplikasi Anda. | Pastikan aplikasi Anda disertifikasi untuk berjalan di Oracle Database SE2. Periksa langsung dengan vendor perangkat lunak, pengembang, atau dokumentasi aplikasi. | Pengembang aplikasi, DBA, Pemilik aplikasi | 
| Selidiki penggunaan fitur EE secara langsung di database. | Untuk menentukan penggunaan fitur EE, lakukan salah satu hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle.html) | Pemilik aplikasi, DBA, Pengembang aplikasi | 
| Identifikasi penggunaan fitur EE untuk kegiatan operasional. | Administrator database atau aplikasi terkadang mengandalkan fitur khusus E untuk kegiatan operasional. Contoh umum termasuk aktivitas pemeliharaan online (membangun kembali indeks, pemindahan tabel) dan penggunaan paralelisme oleh pekerjaan batch.Dependensi ini dapat dikurangi dengan memodifikasi operasi Anda jika memungkinkan. Identifikasi penggunaan fitur-fitur ini dan buat keputusan berdasarkan biaya dibandingkan dengan manfaat.Gunakan [Comparing Oracle Database EE dan tabel SE2 fitur](https://docs.aws.amazon.com/prescriptive-guidance/latest/evaluate-downgrading-oracle-edition/compare-features.html) sebagai panduan untuk mengidentifikasi fitur yang tersedia di Oracle Database. SE2 | Pengembang aplikasi, DBA, Pemilik aplikasi | 
| Tinjau pola beban kerja database EE Oracle. | Oracle Database SE2 secara otomatis membatasi penggunaan hingga maksimal 16 thread CPU setiap saat.Jika database Oracle EE Anda dilisensikan untuk menggunakan Oracle Diagnostic Pack, gunakan alat Automatic Workload Repository (AWR), atau tampilan DBA\$1HIST\$1\$1, untuk menganalisis pola beban kerja database untuk menentukan apakah batas maksimum 16 thread CPU akan berdampak negatif pada tingkat layanan saat Anda downgrade ke. SE2Pastikan penilaian Anda mencakup periode aktivitas puncak, seperti pemrosesan akhir hari, bulan, atau tahun. | Pemilik aplikasi, DBA, Pengembang aplikasi | 

### Siapkan infrastruktur target di AWS
<a name="prepare-the-target-infrastructure-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan dan mengkonfigurasi infrastruktur jaringan. | Buat [virtual private cloud (VPC) dan subnet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html), [grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html), dan daftar kontrol [akses jaringan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html). | Administrator AWS, arsitek Cloud, Administrator jaringan, DevOps insinyur | 
| Menyediakan database Amazon RDS SE2 for Oracle. | Menyediakan basis data [Amazon RDS SE2 for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) Oracle target untuk memenuhi persyaratan performa, ketersediaan, dan keamanan aplikasi Anda. Kami merekomendasikan konfigurasi Multi-AZ untuk beban kerja produksi. Namun, untuk meningkatkan kinerja migrasi, Anda dapat menunda [mengaktifkan Multi-AZ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) hingga setelah migrasi data. | Administrator cloud, arsitek Cloud, DBA, DevOps insinyur, administrator AWS | 
| Sesuaikan lingkungan Amazon RDS. | Konfigurasikan [parameter](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) dan [opsi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html) khusus, dan aktifkan [pemantauan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MonitoringOverview.html) tambahan. Untuk informasi selengkapnya, lihat [Praktik terbaik untuk bermigrasi ke Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/best-practices.html) for Oracle. | Administrator AWS, administrator sistem AWS, administrator Cloud, DBA, arsitek Cloud | 

### Lakukan migrasi dry run dan pengujian aplikasi
<a name="perform-the-migration-dry-run-and-application-testing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data (dry run). | Migrasikan data dari database Oracle EE sumber ke instans database Amazon RDS for SE2 Oracle menggunakan pendekatan yang paling sesuai dengan lingkungan spesifik Anda. Pilih strategi migrasi berdasarkan faktor-faktor seperti ukuran, kompleksitas, dan jendela downtime yang tersedia. Gunakan satu atau kombinasi dari berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle.html) | DBA | 
| Validasi basis data target. | Lakukan validasi pasca-migrasi penyimpanan database dan objek kode. Tinjau log migrasi, dan perbaiki masalah yang teridentifikasi. Untuk informasi selengkapnya, lihat panduan [Memigrasi database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/best-practices.html#post-import). | DBA | 
| Uji aplikasi. | Administrator aplikasi dan database harus melakukan tes fungsional, kinerja, dan operasional yang sesuai. Untuk informasi selengkapnya, lihat [Praktik terbaik untuk bermigrasi ke Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/best-practices.html#test-migration) for Oracle.Terakhir, dapatkan sign-off pada hasil tes dari pemangku kepentingan. | Pengembang aplikasi, Pemilik aplikasi, DBA, Insinyur migrasi, Pimpinan migrasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Segarkan data dari Oracle Database EE. | Pilih pendekatan penyegaran data berdasarkan persyaratan ketersediaan aplikasi. Untuk informasi selengkapnya, lihat metode migrasi di [Strategi untuk Memigrasi Database Oracle ke AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/data-migration-methods.html).Misalnya, Anda dapat mencapai downtime mendekati nol dengan menggunakan alat seperti Oracle GoldenGate atau AWS DMS dengan replikasi berkelanjutan. Jika jendela downtime memungkinkan, Anda dapat melakukan cutover data akhir menggunakan metode offline seperti Oracle Data Pump atau utilitas Ekspor-Impor Asli. | Pemilik aplikasi, Cutover lead, DBA, Insinyur migrasi, pemimpin Migrasi | 
| Arahkan aplikasi ke instance database target. | Perbarui parameter koneksi dalam aplikasi dan klien lain untuk menunjuk ke database Amazon RDS SE2 for Oracle. | Pengembang aplikasi, Pemilik aplikasi, insinyur Migrasi, Pimpinan migrasi, Cutover lead | 
| Lakukan kegiatan pasca-migrasi. | Lakukan tugas migrasi data pasca seperti mengaktifkan Multi-AZ, validasi data, dan pemeriksaan lainnya. | DBA, insinyur Migrasi | 
| Lakukan pemantauan pasca-cutover. | Gunakan alat seperti [Amazon CloudWatch dan Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/monitoring-cloudwatch.html) [RDS Performance](https://aws.amazon.com/rds/performance-insights/) Insights untuk memantau database Amazon RDS for Oracle. SE2  | Pengembang aplikasi, Pemilik aplikasi, administrator AWS, DBA, insinyur migrasi | 

## Sumber daya terkait
<a name="replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle-resources"></a>

**AWS Prescriptive Guidance**
+ [Memigrasi database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html) (panduan)
+ [Mengevaluasi penurunan database Oracle ke Edisi Standar 2 di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/evaluate-downgrading-oracle-edition/welcome.html) (panduan)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html?did=pg_card&trk=pg_card) (pola)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump (pola](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.html?did=pg_card&trk=pg_card))

**Postingan blog**
+ [Migrasi database Oracle dengan downtime mendekati nol menggunakan AWS DMS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/)
+ [Menganalisis manajemen kinerja di Oracle SE menggunakan Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/analyzing-performance-management-in-oracle-se-using-amazon-rds-for-oracle/)
+ [Mengelola paket SQL Anda di Oracle SE dengan Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/managing-your-sql-plan-in-oracle-se-with-amazon-rds-for-oracle/)
+ [Menerapkan partisi tabel di Oracle Standard Edition: Bagian 1](https://aws.amazon.com/blogs/database/implementing-table-partitioning-in-oracle-standard-edition-part-1/)

# Replikasi database mainframe ke AWS dengan menggunakan Exactly Connect
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect"></a>

*Lucio Pereira, Sayantan Giri, dan Balaji Mohan, Amazon Web Services*

## Ringkasan
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-summary"></a>

Pola ini menguraikan langkah-langkah untuk mereplikasi data dari basis data mainframe ke penyimpanan data Amazon dalam waktu dekat dengan menggunakan Exacently Connect. Ini mengimplementasikan arsitektur berbasis acara dengan Amazon Managed Streaming for Apache Kafka (Amazon MSK) dan konektor basis data khusus di cloud untuk meningkatkan skalabilitas, ketahanan, dan kinerja.

Tepat Connect adalah alat replikasi yang menangkap data dari sistem mainframe lama dan mengintegrasikannya ke dalam lingkungan cloud. Data direplikasi dari mainframe ke AWS melalui change data capture (CDC) dengan menggunakan aliran pesan mendekati real-time dengan jalur data heterogen latensi rendah dan throughput tinggi. 

Pola ini juga mencakup strategi pemulihan bencana untuk jaringan data tangguh dengan replikasi data Multi-region dan routing failover.

## Prasyarat dan batasan
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-prereqs"></a>

**Prasyarat**
+ Database mainframe yang ada—misalnya, IBM, IBM Information Management System (IMS) DB2, atau Virtual Storage Access Method (VSAM) —yang ingin Anda tiru ke AWS Cloud
+ [Akun AWS](https://aws.amazon.com/account/) yang aktif
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) atau [AWS Virtual Private Network (AWS VPN](https://aws.amazon.com/vpn/)) dari lingkungan perusahaan Anda ke AWS
+ [Cloud pribadi virtual](https://aws.amazon.com/vpc/) dengan subnet yang dapat dijangkau oleh platform lama Anda

## Arsitektur
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-architecture"></a>

**Tumpukan teknologi sumber**

Lingkungan mainframe yang mencakup setidaknya satu dari database berikut:
+ Basis data IBM IMS
+ Basis data IBM DB2 
+ File VSAM

**Tumpukan teknologi target**
+ Amazon MSK
+ Amazon Elastic Kubernetes Service (Amazon EKS) dan Amazon EKS Anywhere
+ Docker
+ Database relasional AWS atau NoSQL seperti berikut ini:
  + Amazon DynamoDB
  + Amazon Relational Database Service (Amazon RDS) untuk Oracle, Amazon RDS for PostgreSQL, atau Amazon Aurora
  + Amazon ElastiCache untuk Redis
  + Amazon Keyspaces (untuk Apache Cassandra)

**Arsitektur target**

*Mereplikasi data mainframe ke database AWS*

Diagram berikut menggambarkan replikasi data mainframe ke database AWS seperti DynamoDB, Amazon RDS, Amazon, atau Amazon Keyspaces. ElastiCache Replikasi terjadi dalam waktu dekat dengan menggunakan Tangkap dan Penerbit Secara Tepat di lingkungan mainframe lokal Anda, Pengirim dengan Tepat di Amazon EKS Anywhere di lingkungan terdistribusi lokal Anda, serta Terapkan konektor Mesin dan database dengan Tepat di AWS Cloud. 

![\[Mereplikasi data mainframe ke database AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/777dd7da-48ed-4510-b8fa-9041be042671.png)


Diagram menunjukkan alur kerja berikut:

1. Tepat Capture mendapatkan data mainframe dari log CDC dan memelihara data dalam penyimpanan transien internal.

1. Tepatnya Publisher mendengarkan perubahan dalam penyimpanan data internal dan mengirimkan catatan CDC ke Excently Dispatcher melalui koneksi. TCP/IP 

1. Tepatnya Dispatcher menerima catatan CDC dari Publisher dan mengirimkannya ke Amazon MSK. Dispatcher membuat kunci Kafka berdasarkan konfigurasi pengguna dan beberapa tugas pekerja untuk mendorong data secara paralel. Dispatcher mengirimkan pengakuan kembali ke Publisher ketika catatan telah disimpan di Amazon MSK.

1. Amazon MSK memegang catatan CDC di lingkungan cloud. Ukuran partisi topik tergantung pada persyaratan sistem pemrosesan transaksi (TPS) Anda untuk throughput. Kunci Kafka wajib untuk transformasi lebih lanjut dan pemesanan transaksi.

1. Mesin Terapkan Secara Tepat mendengarkan catatan CDC dari Amazon MSK dan mengubah data (misalnya, dengan memfilter atau memetakan) berdasarkan persyaratan basis data target. Anda dapat menambahkan logika yang disesuaikan ke skrip SQD Tepatnya. (SQD adalah bahasa hak milik Tepat.) Mesin Terapkan Secara Tepat mengubah setiap rekaman CDC ke format Apache Avro atau JSON dan mendistribusikannya ke berbagai topik berdasarkan kebutuhan Anda.

1. Topik Kafka target menyimpan catatan CDC dalam berbagai topik berdasarkan basis data target, dan Kafka memfasilitasi pemesanan transaksi berdasarkan kunci Kafka yang ditentukan. Tombol partisi sejajar dengan partisi yang sesuai untuk mendukung proses berurutan. 

1. Konektor database (aplikasi Java yang disesuaikan) mendengarkan catatan CDC dari Amazon MSK dan menyimpannya di database target.

1. Anda dapat memilih database target berdasarkan kebutuhan Anda. Pola ini mendukung NoSQL dan database relasional.

*Pemulihan bencana*

Kesinambungan bisnis adalah kunci keberhasilan organisasi Anda. AWS Cloud menyediakan kemampuan untuk ketersediaan tinggi (HA) dan pemulihan bencana (DR), serta mendukung paket failover dan fallback organisasi Anda. Pola ini mengikuti strategi active/passive DR dan memberikan panduan tingkat tinggi untuk menerapkan strategi DR yang memenuhi persyaratan RTO dan RPO Anda.

Diagram berikut menggambarkan alur kerja DR.

![\[Alur kerja pemulihan bencana untuk mereplikasi data mainframe di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/9cccba7a-7a25-411e-829f-7cd5a7a20ab4.png)


Diagram menunjukkan yang berikut:

1. Failover semi-otomatis diperlukan jika terjadi kegagalan di AWS Region 1. Dalam kasus kegagalan di Wilayah 1, sistem harus memulai perubahan perutean untuk menghubungkan Tepatnya Dispatcher ke Wilayah 2. 

1. Amazon MSK mereplikasi data melalui mirroring antar Wilayah, Untuk alasan ini, selama failover, cluster MSK Amazon di Wilayah 2 harus dipromosikan sebagai pemimpin utama. 

1. Tepat Apply Engine dan konektor database adalah aplikasi stateless yang dapat bekerja di Wilayah mana pun. 

1. Sinkronisasi database tergantung pada database target. Misalnya, DynamoDB dapat menggunakan tabel global, ElastiCache dan dapat menggunakan datastores global.

*Pemrosesan latensi rendah dan throughput tinggi melalui konektor database*

Konektor database adalah komponen penting dalam pola ini. Konektor mengikuti pendekatan berbasis pendengar untuk mengumpulkan data dari Amazon MSK dan mengirim transaksi ke database melalui pemrosesan throughput tinggi dan latensi rendah untuk aplikasi kritis misi (tingkatan 0 dan 1). Diagram berikut menggambarkan proses.

![\[Menggunakan konektor database untuk mereplikasi data mainframe di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/79479634-becb-4212-bbfc-1a3b17ae1bed.png)


Pola ini mendukung pengembangan aplikasi yang disesuaikan dengan konsumsi ulir tunggal melalui mesin pemrosesan multithreaded.

1. Utas utama konektor mengkonsumsi catatan CDC dari Amazon MSK dan mengirimkannya ke kumpulan utas untuk diproses.

1. Thread dari kumpulan thread memproses catatan CDC dan mengirimkannya ke database target.

1. Jika semua utas sibuk, catatan CDC ditahan oleh antrian utas.

1. Utas utama menunggu untuk menghapus semua catatan dari antrian utas dan melakukan offset ke Amazon MSK.

1. Utas anak menangani kegagalan. Jika kegagalan terjadi selama pemrosesan, pesan yang gagal dikirim ke topik DLQ (antrian surat mati).

1. Thread anak memulai pembaruan bersyarat (lihat [Ekspresi kondisi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html) dalam dokumentasi DynamoDB), berdasarkan stempel waktu mainframe, untuk menghindari duplikasi atau pembaruan apa pun dalam database. out-of-order

Untuk informasi tentang cara menerapkan aplikasi konsumen Kafka dengan kemampuan multi-threading, lihat posting blog [Konsumsi Pesan Multi-Threaded dengan Konsumen Apache Kafka di](https://www.confluent.io/blog/kafka-consumer-multi-threaded-messaging/) situs web Confluent.

## Alat
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-tools"></a>

**Layanan AWS**
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) adalah layanan yang dikelola sepenuhnya yang membantu Anda membangun dan menjalankan aplikasi yang menggunakan Apache Kafka untuk memproses data streaming.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) membantu Anda menjalankan Kubernetes di AWS tanpa harus menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.
+ [Amazon EKS Anywhere](https://anywhere.eks.amazonaws.com/docs/) membantu Anda menerapkan, menggunakan, dan mengelola klaster Kubernetes yang berjalan di pusat data Anda sendiri.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan dapat diskalakan.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [Amazon ElastiCache](https://docs.aws.amazon.com/elasticache/) membantu Anda mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di AWS Cloud.
+ [Amazon Keyspaces (untuk Apache Cassandra)](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html) adalah layanan database terkelola yang membantu Anda memigrasi, menjalankan, dan menskalakan beban kerja Cassandra Anda di AWS Cloud.

**Alat-alat lainnya**
+ [Connect](https://www.precisely.com/product/precisely-connect/connect) mengintegrasikan data dari sistem mainframe lama seperti dataset VSAM atau database mainframe IBM ke dalam platform cloud dan data generasi berikutnya. 

## Praktik terbaik
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-best-practices"></a>
+ Temukan kombinasi terbaik dari partisi Kafka dan konektor multi-ulir untuk menyeimbangkan kinerja dan biaya yang optimal. Beberapa Instans Pengambilan dan Dispatcher Secara Tepat dapat meningkatkan biaya karena konsumsi MIPS (juta instruksi per detik) yang lebih tinggi.
+ Hindari menambahkan manipulasi data dan logika transformasi ke konektor database. Untuk tujuan ini, gunakan Mesin Terapkan Tepatnya, yang menyediakan waktu pemrosesan dalam mikrodetik.
+ Buat permintaan berkala atau panggilan pemeriksaan kesehatan ke database (*detak jantung*) di konektor database untuk sering menghangatkan koneksi dan mengurangi latensi.
+ Terapkan logika validasi kumpulan utas untuk memahami tugas yang tertunda dalam antrian utas dan tunggu semua utas selesai sebelum polling Kafka berikutnya. Ini membantu menghindari kehilangan data jika node, wadah, atau proses mogok.
+ Paparkan metrik latensi melalui titik akhir kesehatan untuk meningkatkan kemampuan observabilitas melalui dasbor dan mekanisme penelusuran.

## Epik
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-epics"></a>

### Siapkan lingkungan sumber (di tempat)
<a name="prepare-the-source-environment-on-premises"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan proses mainframe (batch atau utilitas online) untuk memulai proses CDC dari database mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Insinyur mainframe | 
| Aktifkan aliran log basis data mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Spesialis DB Mainframe | 
| Gunakan komponen Capture untuk menangkap catatan CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Insinyur mainframe, Tepatnya Connect SME | 
| Konfigurasikan komponen Publisher untuk mendengarkan komponen Capture. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Insinyur mainframe, Tepatnya Connect SME | 
| Menyediakan Amazon EKS Anywhere di lingkungan terdistribusi lokal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps insinyur | 
| Terapkan dan konfigurasikan komponen Dispatcher di lingkungan terdistribusi untuk mempublikasikan topik di AWS Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps insinyur, Tepatnya Connect SME | 

### Siapkan lingkungan target (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyediakan kluster Amazon EKS di Wilayah AWS yang ditentukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps insinyur, Administrator jaringan | 
| Menyediakan kluster MSK dan mengkonfigurasi topik Kafka yang berlaku. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps insinyur, Administrator jaringan | 
| Konfigurasikan komponen Apply Engine untuk mendengarkan topik Kafka yang direplikasi.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Tepatnya Connect SME | 
| Menyediakan instans DB di AWS Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Insinyur data, DevOps insinyur | 
| Konfigurasikan dan gunakan konektor database untuk mendengarkan topik yang diterbitkan oleh Apply Engine. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Pengembang aplikasi, arsitek Cloud, Insinyur data | 

### Menyiapkan kelangsungan bisnis dan pemulihan bencana
<a name="set-up-business-continuity-and-disaster-recovery"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan tujuan pemulihan bencana untuk aplikasi bisnis Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Arsitek cloud, Insinyur data, Pemilik aplikasi | 
| Merancang strategi pemulihan bencana berdasarkan RTO/RPO yang ditentukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Arsitek cloud, Insinyur data | 
| Penyediaan cluster dan konfigurasi pemulihan bencana. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps insinyur, Administrator jaringan, Arsitek cloud | 
| Uji pipa CDC untuk pemulihan bencana.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Pemilik aplikasi, Insinyur data, arsitek Cloud | 

## Sumber daya terkait
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-resources"></a>

**Sumber daya AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)
+ [Ekspresi kondisi dengan Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html)
+ [Amazon EKS](https://docs.aws.amazon.com/eks/index.html)
+ [Amazon EKS Anywhere](https://anywhere.eks.amazonaws.com/docs/)
+ [Amazon ElasticCache](https://docs.aws.amazon.com/elasticache/index.html)
+ [Keyspaces Amazon](https://docs.aws.amazon.com/keyspaces/?icmpid=docs_homepage_databases)
+ [Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html)
+ [Amazon RDS dan Amazon Aurora](https://docs.aws.amazon.com/rds/index.html)
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/index.html)

**Tepat Connect sumber daya**
+ [Ikhtisar Connect Tepatnya](https://www.precisely.com/product/precisely-connect/connect)
+ [Ubah Pengambilan Data dengan Tepat Connect](https://help.precisely.com/r/Connect-CDC-SQData/4.1/en-US/Connect-CDC-SQData-Installation/Connect-CDC-SQData-Architecture)

**Sumber daya pertemuan**
+ [Konsumsi Pesan Multi-Threaded dengan Konsumen Apache Kafka](https://www.confluent.io/blog/kafka-consumer-multi-threaded-messaging/)

# Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager"></a>

*Yaser Raja, Amazon Web Services*

## Ringkasan
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-summary"></a>

**Untuk database lokal dan database yang di-host di instans Amazon Elastic Compute Cloud (Amazon EC2), administrator database sering menggunakan utilitas cron untuk menjadwalkan pekerjaan.** 

Misalnya, pekerjaan untuk ekstraksi data atau pekerjaan untuk pembersihan data dapat dengan mudah dijadwalkan menggunakan **cron**. Untuk pekerjaan ini, kredensi database biasanya dikodekan keras atau disimpan dalam file properti. **Namun, saat Anda bermigrasi ke Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora PostgreSQL Compatible Edition, Anda kehilangan kemampuan untuk masuk ke instans host untuk menjadwalkan tugas cron.** 

Pola ini menjelaskan cara menggunakan AWS Lambda dan menjadwalkan pekerjaan AWS Secrets Manager untuk Amazon RDS for PostgreSQL dan database yang kompatibel dengan Aurora PostgreSQL setelah migrasi.  

## Prasyarat dan batasan
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL

**Batasan**
+ Pekerjaan harus diselesaikan dalam waktu 15 menit, yang merupakan batas waktu tunggu fungsi Lambda. Untuk batasan lainnya, lihat [AWS Lambda dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/limits.html).
+ Kode Job harus ditulis dalam [bahasa yang didukung oleh Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).

## Arsitektur
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-architecture"></a>

**Tumpukan teknologi sumber**

Tumpukan ini menampilkan pekerjaan yang ditulis dalam bahasa seperti Bash, Python, dan Java. **Kredensi database disimpan dalam file properti, dan pekerjaan dijadwalkan menggunakan Linux cron.**

**Tumpukan teknologi target**

Tumpukan ini memiliki fungsi Lambda yang menggunakan kredensil yang disimpan di Secrets Manager untuk terhubung ke database dan untuk melakukan aktivitas. Fungsi Lambda dimulai pada interval terjadwal dengan menggunakan Amazon Events. CloudWatch 

**Arsitektur target**

![\[CloudWatch acara memulai fungsi Lambda yang menjadwalkan pekerjaan untuk instans RDS DB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8e0d1c90-0599-4909-a800-26a89b87f686/images/61f9ca34-9157-4565-96ba-5234d389ac2a.png)


## Alat
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-tools"></a>
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) memberikan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan AWS sumber daya. Dengan menggunakan aturan sederhana yang dapat Anda atur dengan cepat, Anda dapat mencocokkan acara dan mengarahkannya ke satu atau lebih fungsi atau aliran target. CloudWatch Peristiwa menjadi sadar akan perubahan operasional saat terjadi. Ini menanggapi perubahan operasional ini dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk menanggapi lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. **Anda juga dapat menggunakan CloudWatch Acara untuk menjadwalkan tindakan otomatis yang dimulai sendiri pada waktu-waktu tertentu menggunakan ekspresi **cron** atau rate.**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi; tidak ada biaya ketika kode Anda tidak berjalan. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa administrasi. Lambda menjalankan kode Anda pada infrastruktur komputasi ketersediaan tinggi dan mengelola semua sumber daya komputasi, termasuk pemeliharaan server dan sistem operasi, penyediaan kapasitas dan penskalaan otomatis, pemantauan kode, dan pencatatan. Yang perlu Anda lakukan adalah memberikan kode Anda dalam salah satu [bahasa yang didukung Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda melindungi rahasia untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Anda dapat dengan mudah memutar, mengelola, dan mengambil kredenal database, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Pengguna dan aplikasi mengambil rahasia dengan memanggil Secrets Manager APIs, yang menghilangkan kebutuhan untuk hard-code informasi sensitif dalam teks biasa. Secrets Manager menawarkan rotasi rahasia dengan integrasi bawaan untuk Amazon RDS, Amazon Redshift, dan Amazon DocumentDB. Layanan ini dapat diperluas ke jenis rahasia lainnya, termasuk kunci API dan OAuth token. Secrets Manager memungkinkan Anda mengontrol akses ke rahasia menggunakan izin halus dan mengaudit rotasi rahasia secara terpusat untuk sumber daya di, layanan pihak ketiga AWS Cloud, dan di tempat.

## Epik
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-epics"></a>

### Simpan kredensil database di Secrets Manager
<a name="store-database-credentials-in-asm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna database untuk fungsi Lambda. | Ini adalah praktik yang baik untuk menggunakan pengguna database terpisah untuk berbagai bagian aplikasi Anda. Jika pengguna database terpisah sudah ada untuk pekerjaan cron Anda, gunakan itu. Jika tidak, buat pengguna database baru. Untuk informasi selengkapnya, lihat [Mengelola pengguna dan peran PostgreSQL (](https://aws.amazon.com/blogs/database/managing-postgresql-users-and-roles/)posting blog).AWS  | DBA | 
| Simpan kredensi database sebagai rahasia di Secrets Manager. | Ikuti petunjuk di [Buat rahasia database](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html) (Dokumentasi Secrets Manager). | DBA, DevOps | 

### Penulis kode untuk fungsi Lambda
<a name="author-the-code-for-the-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih bahasa pemrograman yang didukung oleh Lambda. | Untuk daftar bahasa yang didukung, lihat [runtime Lambda (](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)dokumentasi Lambda). | Developer | 
| Tulis logika untuk mengambil kredensi database dari Secrets Manager. | Untuk kode contoh, lihat [Cara menyediakan kredensil database secara aman ke fungsi Lambda dengan menggunakan AWS Secrets Manager](https://aws.amazon.com/blogs/security/how-to-securely-provide-database-credentials-to-lambda-functions-by-using-aws-secrets-manager/) (posting blog).AWS  | Developer | 
| Tulis logika untuk melakukan aktivitas database terjadwal. | Migrasikan kode yang ada untuk pekerjaan penjadwalan yang Anda gunakan di lokasi ke fungsi Lambda. Untuk informasi selengkapnya, lihat [Menerapkan fungsi Lambda (dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-deploy-functions.html) Lambda). | Developer | 

### Terapkan kode dan buat fungsi Lambda
<a name="deploy-the-code-and-create-the-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat paket penyebaran fungsi Lambda. | Paket ini berisi kode dan dependensinya. Untuk informasi selengkapnya, lihat [Paket penerapan (dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) Lambda). | Developer | 
| Buat fungsi Lambda. | **Di konsol Lambda, pilih **Buat fungsi**, masukkan nama fungsi, pilih lingkungan runtime, lalu pilih Buat fungsi.** | DevOps | 
| Unggah paket deployment. | Pilih fungsi Lambda yang Anda buat untuk membuka konfigurasinya. Anda dapat menulis kode Anda langsung di bagian kode atau mengunggah paket penyebaran Anda. Untuk mengunggah paket Anda, buka bagian **Kode fungsi**, pilih **jenis entri Kode** untuk mengunggah file.zip, lalu pilih paket. | DevOps | 
| Konfigurasikan fungsi Lambda sesuai kebutuhan Anda. | Misalnya, Anda dapat mengatur parameter **Timeout** ke durasi yang Anda harapkan dari fungsi Lambda. Untuk informasi selengkapnya, lihat [Mengonfigurasi opsi fungsi (Dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html) Lambda). | DevOps | 
| Tetapkan izin untuk peran fungsi Lambda untuk mengakses Secrets Manager. | Untuk petunjuk, lihat [Menggunakan rahasia dalam AWS Lambda fungsi](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html) (Dokumentasi Secrets Manager). | DevOps | 
| Uji fungsi Lambda. | Memulai fungsi Lambda secara manual untuk memastikannya berfungsi seperti yang diharapkan. | DevOps | 

### Jadwalkan fungsi Lambda dengan menggunakan Acara CloudWatch
<a name="schedule-the-lam-function-by-using-cwe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat aturan untuk menjalankan fungsi Lambda sesuai jadwal. | Jadwalkan fungsi Lambda dengan menggunakan CloudWatch Acara. Untuk petunjuk, lihat [Menjadwalkan fungsi Lambda menggunakan CloudWatch Acara](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html) (tutorial CloudWatch Acara). | DevOps | 

## Sumber daya terkait
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-resources"></a>
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [Memulai dengan Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [Membuat Aturan CloudWatch Acara yang Memicu Peristiwa](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)
+ [AWS Lambda Batas](https://docs.aws.amazon.com/lambda/latest/dg/limits.html)
+ [Kueri AWS database Anda dari aplikasi tanpa server Anda](https://aws.amazon.com/blogs/database/query-your-aws-database-from-your-serverless-application/) (posting blog)

# Mengirim pemberitahuan untuk instans database Amazon RDS for SQL Server dengan menggunakan server SMTP lokal dan Database Mail
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail"></a>

*Nishad Mankar, Amazon Web Services*

## Ringkasan
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-summary"></a>

[Database Mail](https://learn.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail?view=sql-server-ver16) (dokumentasi Microsoft) mengirimkan pesan email, seperti pemberitahuan atau peringatan, dari database Microsoft SQL Server dengan menggunakan server Simple Mail Transfer Protocol (SMTP). Dokumentasi Amazon Relational Database Service (Amazon RDS) untuk Microsoft SQL Server memberikan petunjuk untuk menggunakan Amazon Simple Email Service (Amazon SES) sebagai server SMTP untuk Database Mail. Untuk informasi selengkapnya, lihat [Menggunakan Database Mail di Amazon RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html). Sebagai konfigurasi alternatif, pola ini menjelaskan cara mengonfigurasi Database Mail untuk mengirim email dari instans Amazon RDS for SQL Server database (DB) dengan menggunakan server SMTP lokal sebagai server email.

## Prasyarat dan batasan
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instans Amazon RDS DB yang menjalankan SQL Server edisi Standar atau Perusahaan
+ Alamat IP atau nama host server SMTP lokal
+ [Aturan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html#working-with-security-group-rules) masuk yang memungkinkan koneksi ke instans Amazon RDS for SQL Server DB dari alamat IP server SMTP
+ Sambungan, seperti koneksi [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html), antara jaringan lokal Anda dan virtual private cloud (VPC) yang berisi instans Amazon RDS DB

**Batasan**
+ Edisi ekspres SQL Server tidak didukung.
+ Untuk informasi selengkapnya tentang batasan, lihat [Batasan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport.Limits) dalam *Menggunakan Email Database di Amazon RDS for SQL Server dalam dokumentasi* Amazon RDS.

**Versi produk**
+ Edisi standar dan Enterprise dari [versi SQL Server didukung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) dalam RDS

## Arsitektur
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-architecture"></a>

**Tumpukan teknologi target**
+ Contoh database Amazon RDS for SQL Server
+ Aturan penerusan Amazon Route 53
+ Database Mail
+ Server SMTP lokal
+ Studio Manajemen Server Microsoft SQL (SSMS)

**Arsitektur target**

Gambar berikut menunjukkan arsitektur target untuk pola ini. Ketika peristiwa atau tindakan terjadi yang memulai pemberitahuan atau peringatan mengenai instance database, Amazon RDS for SQL Server menggunakan Database Mail untuk mengirim pemberitahuan email. Database Mail menggunakan server SMTP lokal untuk mengirim email.

![\[Amazon RDS untuk server SQL menggunakan server SMTP lokal untuk mengirim pemberitahuan email kepada pengguna.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e5599724-43cf-4fe1-8c5a-8fca1a424993/images/47efb12f-3505-4a60-ac43-194a176e71c8.png)


## Alat
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-tools"></a>

**Layanan AWS**
+ [Amazon Relational Database Service (Amazon RDS) untuk Microsoft SQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) Server membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional SQL Server di AWS Cloud.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) adalah layanan web DNS yang sangat tersedia dan terukur.

**Alat-alat lainnya**
+ [Database Mail](https://learn.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail) adalah alat yang mengirim pesan e-mail, seperti pemberitahuan dan peringatan, dari SQL Server Database Engine kepada pengguna.
+ [Microsoft SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms) adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server. Dalam pola ini, Anda menggunakan SSMS untuk menjalankan perintah SQL untuk mengatur Database Mail pada instans Amazon RDS for SQL Server DB. 

## Epik
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-epics"></a>

### Mengaktifkan konektivitas jaringan dengan server SMTP lokal
<a name="enable-network-connectivity-with-the-on-premises-smtp-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus Multi-AZ dari instans RDS DB. | Jika Anda menggunakan instans Multi-Zone RDS DB, ubah instans Multi-AZ menjadi instans Single-AZ. Setelah selesai mengonfigurasi Database Mail, Anda akan mengonversi instans DB kembali ke penerapan Multi-AZ. Konfigurasi Database Mail kemudian bekerja di kedua node primer dan sekunder. Untuk petunjuk, lihat [Menghapus Multi-AZ dari instans Microsoft SQL Server DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerMultiAZ.html#USER_SQLServerMultiAZ.Removing). | DBA | 
| Buat daftar izin untuk titik akhir Amazon RDS atau alamat IP di server SMTP lokal. | Server SMTP berada di luar jaringan AWS. Di server SMTP lokal, buat daftar izin yang memungkinkan server berkomunikasi dengan titik akhir keluar atau alamat IP untuk instans Amazon RDS atau instans Amazon Elastic Compute Cloud (Amazon) yang dihosting di Amazon RDS. EC2 Prosedur ini bervariasi dari organisasi ke organisasi. Untuk informasi selengkapnya tentang titik akhir instans DB, lihat [Menemukan titik akhir instans DB dan nomor port](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#sqlserver-endpoint). | DBA | 
| Hapus batasan port 25. | Secara default, AWS membatasi port 25 pada EC2 instans. Untuk menghapus pembatasan port 25, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html) | AWS Umum | 
| Tambahkan aturan Route 53 untuk menyelesaikan kueri DNS untuk server SMTP. | Gunakan Route 53 untuk menyelesaikan kueri DNS antara sumber daya AWS Anda dan server SMTP lokal. Anda harus membuat aturan yang meneruskan kueri DNS ke domain server SMTP, seperti. `example.com` Untuk petunjuknya, lihat [Membuat aturan penerusan dalam dokumentasi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html#resolver-rules-managing-creating-rules) Route 53. | Administrator jaringan | 

### Mengatur Database Mail di Amazon RDS for SQL Server DB instans
<a name="set-up-database-mail-on-the-amazon-rds-for-sql-server-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan Surat Database. | Buat grup parameter untuk Database Mail, atur `database mail xps` parameternya`1`, lalu kaitkan grup parameter Database Mail dengan instans RDS DB target. Untuk petunjuk, lihat [Mengaktifkan Mail Database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html#SQLServer.DBMail.Enable) dalam dokumentasi Amazon RDS. Jangan lanjutkan ke bagian *Mengkonfigurasi Database Mail* dalam petunjuk ini. Konfigurasi untuk server SMTP lokal berbeda dari Amazon SES. | DBA | 
| Hubungkan ke instans DB. | Dari host bastion, gunakan Microsoft SQL Server Management Studio (SSMS) untuk terhubung ke instans database Amazon RDS for SQL Server. Untuk petunjuk, lihat [Menyambungkan ke instans DB yang menjalankan mesin database Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html). Jika Anda menemukan kesalahan, lihat referensi pemecahan masalah koneksi di bagian [Sumber daya terkait](#send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-resources). | DBA | 
| Buat profil. | Di SSMS, masukkan pernyataan SQL berikut untuk membuat profil Database Mail. Ganti nilai-nilai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)Untuk informasi selengkapnya tentang prosedur tersimpan ini dan argumennya, lihat [sysmail\$1add\$1profile\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql) di dokumentasi Microsoft.<pre>EXECUTE msdb.dbo.sysmail_add_profile_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @description = 'Profile used for sending outgoing notifications using OM SMTP Server.';</pre> | DBA | 
| Tambahkan prinsipal ke profil. | Masukkan pernyataan SQL berikut untuk menambahkan prinsip publik atau pribadi ke profil Database Mail. *Pengguna utama* adalah entitas yang dapat meminta sumber daya SQL Server. Ganti nilai-nilai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)Untuk informasi selengkapnya tentang prosedur tersimpan ini dan argumennya, lihat [sysmail\$1add\$1principalprofile\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql) di dokumentasi Microsoft.<pre>EXECUTE msdb.dbo.sysmail_add_principalprofile_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @principal_name = 'public',<br /> @is_default = 1 ;</pre> | DBA | 
| Buat akun. | Masukkan pernyataan SQL berikut untuk membuat akun Database Mail. Ganti nilai-nilai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)Untuk informasi selengkapnya tentang prosedur tersimpan ini dan argumennya, lihat [sysmail\$1add\$1account\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql) di dokumentasi Microsoft.<pre>EXECUTE msdb.dbo.sysmail_add_account_sp<br /> @account_name = 'SQL Alerts account',<br /> @description = 'Database Mail account for sending outgoing notifications.',<br /> @email_address = 'xyz@example.com',<br /> @display_name = 'xyz@example.com',<br /> @mailserver_name = 'test_smtp.example.com',<br /> @port = 25,<br /> @enable_ssl = 1,<br /> @username = 'SMTP-username',<br /> @password = 'SMTP-password';</pre> | DBA | 
| Tambahkan akun ke profil. | Masukkan pernyataan SQL berikut untuk menambahkan akun Database Mail ke profil Database Mail. Ganti nilai-nilai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)Untuk informasi selengkapnya tentang prosedur tersimpan ini dan argumennya, lihat [sysmail\$1add\$1profileaccount\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql) di dokumentasi Microsoft.<pre>EXECUTE msdb.dbo.sysmail_add_profileaccount_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @account_name = 'SQL Alerts account',<br /> @sequence_number = 1;</pre> | DBA | 
| (Opsional) Tambahkan Multi-AZ ke instans RDS DB.  | Jika Anda ingin menambahkan Multi-AZ dengan Database Mirroring (DBM) atau Always On Availability Groups (AGs), lihat petunjuk di [Menambahkan Multi-AZ ke instans Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerMultiAZ.html#USER_SQLServerMultiAZ.Adding) DB. | DBA | 

## Sumber daya terkait
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-resources"></a>
+ [Menggunakan Database Mail di Amazon RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html) (dokumentasi Amazon RDS)
+ [Bekerja dengan lampiran file (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html#SQLServer.DBMail.MAZ) Amazon RDS)
+ [Memecahkan masalah koneksi ke instans SQL Server DB Anda (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting) Amazon RDS)
+ [Tidak dapat terhubung ke instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Connecting) (dokumentasi Amazon RDS)

# Siapkan pemulihan bencana untuk SAP di IBM Db2 di AWS
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws"></a>

*Ambarish Satarkar dan Debasis Sahoo, Amazon Web Services*

## Ringkasan
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-summary"></a>

Pola ini menguraikan langkah-langkah untuk menyiapkan sistem pemulihan bencana (DR) untuk beban kerja SAP dengan IBM Db2 sebagai platform database, berjalan di Amazon Web Services (AWS) Cloud. Tujuannya adalah untuk memberikan solusi berbiaya rendah untuk memberikan kelangsungan bisnis jika terjadi pemadaman.

Pola menggunakan [pendekatan cahaya pilot](https://aws.amazon.com/blogs/architecture/disaster-recovery-dr-architecture-on-aws-part-iii-pilot-light-and-warm-standby/). Dengan menerapkan pilot light DR di AWS, Anda dapat mengurangi waktu henti dan menjaga kelangsungan bisnis. Pendekatan pilot light berfokus pada pengaturan lingkungan DR minimal di AWS, termasuk sistem SAP dan database Db2 siaga, yang disinkronkan dengan lingkungan produksi.

Solusi ini dapat diskalakan. Anda dapat memperluasnya ke lingkungan pemulihan bencana skala penuh sesuai kebutuhan.

## Prasyarat dan batasan
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-prereqs"></a>

**Prasyarat**
+ Instans SAP yang berjalan pada instans Amazon Elastic Compute Cloud (Amazon EC2)
+ Database IBM Db2
+ Sistem operasi yang didukung oleh SAP Product Availability Matrix (PAM)
+ Nama host database fisik yang berbeda untuk host database produksi dan siaga
+ Bucket Amazon Simple Storage Service (Amazon S3) di setiap Wilayah AWS [dengan Replikasi Lintas Wilayah](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) (CRR) diaktifkan

**Versi produk**
+ IBM Db2 Database versi 11.5.7 atau yang lebih baru

## Arsitektur
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-architecture"></a>

**Tumpukan teknologi target**
+ Amazon EC2
+ Amazon Simple Storage Service (Amazon S3)
+ Amazon Virtual Private Cloud (Pengintipan VPC)
+ Amazon Route 53
+ IBM Db2 Pemulihan Bencana Ketersediaan Tinggi (HADR)

**Arsitektur target**

Arsitektur ini mengimplementasikan solusi DR untuk beban kerja SAP dengan Db2 sebagai platform database. Basis data produksi diterapkan di AWS Region 1 dan database siaga diterapkan di Wilayah kedua. Database siaga disebut sebagai sistem DR. Db2 Database mendukung beberapa database siaga (hingga tiga). Ini menggunakan Db2 HADR untuk menyiapkan database DR dan mengotomatiskan pengiriman log antara basis data produksi dan siaga.

Jika terjadi bencana yang membuat Wilayah 1 tidak tersedia, database siaga di Wilayah DR mengambil alih peran basis data produksi. Server aplikasi SAP dapat dibangun terlebih dahulu atau dengan menggunakan [AWS Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) atau Amazon Machine Image (AMI) untuk memenuhi persyaratan recovery time objektif (RTO). Pola ini menggunakan AMI.

Db2 HADR mengimplementasikan pengaturan siaga produksi, di mana produksi bertindak sebagai server utama, dan semua pengguna terhubung dengannya. Semua transaksi ditulis ke file log, yang ditransfer ke server siaga dengan menggunakan TCP/IP. Server siaga memperbarui database lokalnya dengan meneruskan catatan log yang ditransfer, yang membantu memastikan bahwa itu tetap sinkron dengan server produksi.

Pengintip VPC digunakan agar instans di Wilayah produksi dan Wilayah DR dapat berkomunikasi satu sama lain. Amazon Route 53 merutekan pengguna akhir ke aplikasi internet.

![\[Db2 di AWS dengan replikasi lintas wilayah\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/06edfa4c-0827-4d05-95cf-2d2651e74323/images/e77c1e4e-36f3-4af4-89d0-8eec72348f0a.png)


1. [Buat AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html#creating-an-ami) dari server aplikasi di Wilayah 1 dan [salin AMI](https://repost.aws/knowledge-center/copy-ami-region) ke Wilayah 2. Gunakan AMI untuk meluncurkan server di Wilayah 2 jika terjadi bencana.

1. Siapkan replikasi Db2 HADR antara database produksi (di Wilayah 1) dan database siaga (di Wilayah 2).

1. Ubah jenis EC2 instance agar sesuai dengan instance produksi jika terjadi bencana.

1. Di Wilayah 1, `LOGARCHMETH1` diatur ke`db2remote: S3 path`.

1. Di Wilayah 2, `LOGARCHMETH1` diatur ke`db2remote: S3 path`.

1. Replikasi Lintas Wilayah dilakukan antara bucket S3.

## Alat
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan sumber daya AWS ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur AWS yang dapat diskalakan. Pola ini menggunakan [VPC peering](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html).

## Praktik terbaik
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-best-practices"></a>
+ Jaringan memainkan peran kunci dalam menentukan mode replikasi HADR. Untuk DR di seluruh Wilayah AWS, kami menyarankan Anda menggunakan mode Db2 HADR ASYNC atau SUPERASYNC. 
+ [Untuk informasi selengkapnya tentang mode replikasi untuk Db2 HADR, lihat dokumentasi IBM.](https://ibm.github.io/db2-hadr-wiki/hadrSyncMode.html#Description_of_the_Modes)
+ Anda dapat menggunakan AWS Management Console atau AWS Command Line Interface (AWS CLI) Interface (AWS CLI) [untuk membuat AMI baru](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html#creating-an-ami) dari sistem SAP yang ada. Anda kemudian dapat menggunakan AMI untuk memulihkan sistem SAP yang ada atau untuk membuat klon.
+ [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) dapat membantu tugas pemeliharaan dan penerapan umum EC2 instans dan sumber daya AWS lainnya.
+ AWS menyediakan beberapa layanan asli untuk memantau dan mengelola infrastruktur dan aplikasi Anda di AWS. Layanan seperti Amazon CloudWatch dan AWS masing-masing CloudTrail dapat digunakan untuk memantau infrastruktur dan operasi API yang mendasarinya. Untuk detail selengkapnya, lihat [SAP on AWS — IBM Db2](https://docs.aws.amazon.com/sap/latest/sap-AnyDB/sap-ibm-pacemaker.html) HADR with Pacemaker.

## Epik
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-epics"></a>

### Siapkan lingkungan
<a name="prepare-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa sistem dan log. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator AWS, administrator SAP Basis | 

### Mengatur server dan replikasi
<a name="set-up-the-servers-and-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server SAP dan database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html)Status tertunda rollforward diatur secara default setelah cadangan penuh dipulihkan. Status tertunda rollforward menunjukkan bahwa database sedang dalam proses dipulihkan dan bahwa beberapa perubahan mungkin perlu diterapkan. Untuk informasi selengkapnya, lihat [dokumentasi IBM](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database). | Administrator SAP Basis | 
| Periksa konfigurasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator AWS, administrator SAP Basis | 
| Siapkan replikasi dari DB produksi ke DR DB (menggunakan mode ASYNC). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator SAP Basis | 

### Uji tugas failover DR
<a name="test-dr-failover-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Rencanakan downtime bisnis produksi untuk tes DR. | Pastikan Anda merencanakan downtime bisnis yang diperlukan pada lingkungan produksi untuk menguji skenario failover DR. | Administrator SAP Basis | 
| Buat pengguna uji. | Buat pengguna uji (atau perubahan pengujian apa pun) yang dapat divalidasi di host DR untuk mengonfirmasi replikasi log setelah DR failover. | Administrator SAP Basis | 
| Di konsol, hentikan EC2 instance produksi. | Shutdown yang tidak teratur dimulai pada langkah ini untuk meniru skenario bencana. | Administrator sistem AWS | 
| Tingkatkan EC2 instance DR agar sesuai dengan persyaratan. | Di EC2 konsol, ubah jenis instance di Wilayah DR.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | SAP Dasar Admin | 
| Memulai pengambilalihan. | Dari sistem DR (`host2`), memulai proses pengambilalihan dan memunculkan database DR sebagai yang utama.<pre>db2 takeover hadr on database <SID> by force</pre>Secara opsional, Anda dapat mengatur parameter berikut untuk menyesuaikan alokasi memori database secara otomatis berdasarkan jenis instance. `INSTANCE_MEMORY`Nilai dapat diputuskan berdasarkan porsi memori khusus yang akan dialokasikan ke database Db2.<pre>db2 update db cfg for <SID> using INSTANCE_MEMORY <FIXED VALUE> IMMEDIATE;<br />db2 get db cfg for <SID> | grep -i DATABASE_MEMORY AUTOMATIC IMMEDIATE; <br />db2 update db cfg for <SID> using self_tuning_mem ON IMMEDIATE;</pre>Verifikasi perubahan dengan menggunakan perintah berikut.<pre>db2 get db cfg for <SID> | grep -i MEMORY<br />db2 get db cfg for <SID> | grep -i self_tuning_mem</pre> | Administrator SAP Basis | 
| Luncurkan server aplikasi untuk SAP di Wilayah DR. | Menggunakan AMI yang Anda buat dari sistem produksi, [luncurkan server aplikasi tambahan baru](https://aws.amazon.com/premiumsupport/knowledge-center/launch-instance-custom-ami/) di Wilayah DR. | Administrator SAP Basis | 
| Lakukan validasi sebelum memulai aplikasi SAP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator AWS, administrator SAP Basis | 
| Mulai aplikasi SAP pada sistem DR. | Mulai aplikasi SAP pada sistem DR dengan menggunakan `<sid>adm` pengguna. Gunakan kode berikut, yang `XX` mewakili nomor instans server SAP ABAP SAP Central Services (ASCS) Anda, dan `YY` mewakili nomor instans server aplikasi SAP Anda.<pre>sapconrol -nr XX -function StartService <SID><br />sapconrol -nr XX -function StartSystem<br />sapconrol -nr YY -function StartService <SID><br />sapconrol -nr YY -function StartSystem</pre> | Administrator SAP Basis | 
| Lakukan validasi SAP. | Ini dilakukan sebagai tes DR untuk memberikan bukti atau untuk memeriksa keberhasilan replikasi data ke Wilayah DR. | Insinyur uji | 

### Lakukan tugas failback DR
<a name="perform-dr-failback-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai produksi SAP dan server database. | Di konsol, mulai EC2 instance yang meng-host SAP dan database dalam sistem produksi. | Administrator SAP Basis | 
| Mulai database produksi dan atur HADR. | Masuk ke sistem produksi (`host1`) dan verifikasi bahwa DB dalam mode pemulihan dengan menggunakan perintah berikut.<pre>db2start<br />db2 start HADR on db P3V as standby<br />db2 connect to <SID></pre>Verifikasi bahwa status HADR adalah`connected`. Status replikasi seharusnya. `peer`<pre>db2pd -d <SID> -hadr</pre>Jika database tidak konsisten dan tidak di dan `peer` status, backup `connected` dan restore mungkin diperlukan untuk membawa database (on`host1`) sinkron dengan database yang saat ini aktif (`host2`di Wilayah DR). Dalam hal ini, kembalikan cadangan DB dari database di Wilayah `host2` DR ke database di Wilayah `host1` produksi. | Administrator SAP Basis | 
| Gagal kembali database ke Wilayah produksi. | Dalam business-as-usual skenario normal, langkah ini dilakukan dalam waktu henti yang dijadwalkan. Aplikasi yang berjalan pada sistem DR dihentikan, dan database gagal kembali ke Wilayah produksi (Wilayah 1) untuk melanjutkan operasi dari Wilayah produksi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator SAP Basis | 
| Lakukan validasi sebelum memulai aplikasi SAP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator AWS, administrator SAP Basis | 
| Mulai aplikasi SAP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | Administrator SAP Basis | 

## Pemecahan masalah
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| File log kunci dan perintah untuk memecahkan masalah terkait HADR | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.html) | 
| Catatan SAP untuk memecahkan masalah HADR di Db2 UDB | Lihat SAP [Note 1154013 - DB6: Masalah DB](https://service.sap.com/sap/support/notes/1154013) di lingkungan HADR. (Anda memerlukan kredenal portal SAP untuk mengakses catatan ini.) | 

## Sumber daya terkait
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-resources"></a>
+ [Pendekatan pemulihan bencana untuk database Db2 di AWS](https://aws.amazon.com/blogs/architecture/disaster-recovery-approaches-for-db2-databases-on-aws/) (posting blog)
+ [SAP on AWS — IBM Db2 HADR dengan Pacemaker](https://docs.aws.amazon.com/sap/latest/sap-AnyDB/sap-ibm-pacemaker.html)
+ [Langkah demi Langkah Prosedur untuk mengatur replikasi HADR antara database DB2 ](https://www.ibm.com/support/pages/step-step-procedure-set-hadr-replication-between-db2-databases)
+ [Db2 HADR Wiki](https://ibm.github.io/db2-hadr-wiki/index.html)

## Informasi tambahan
<a name="set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws-additional"></a>

Dengan menggunakan pola ini, Anda dapat mengatur sistem pemulihan bencana untuk sistem SAP yang berjalan pada database Db2. Dalam situasi bencana, bisnis harus dapat melanjutkan dalam persyaratan tujuan waktu pemulihan yang ditentukan (RTO) dan tujuan titik pemulihan (RPO) Anda:
+ **RTO** adalah penundaan maksimum yang dapat diterima antara gangguan layanan dan pemulihan layanan. Ini menentukan apa yang dianggap sebagai jendela waktu yang dapat diterima ketika layanan tidak tersedia.
+ **RPO** adalah jumlah waktu maksimum yang dapat diterima sejak titik pemulihan data terakhir. Ini menentukan apa yang dianggap sebagai kehilangan data yang dapat diterima antara titik pemulihan terakhir dan gangguan layanan.

Untuk FAQs yang terkait dengan HADR, lihat [catatan SAP \$11612105 - DB6: FAQ tentang Db2 High Availability Disaster](https://launchpad.support.sap.com/#/notes/1612105) Recovery (HADR). (Anda memerlukan kredenal portal SAP untuk mengakses catatan ini.)

# Siapkan CI/CD pipeline untuk migrasi database dengan menggunakan Terraform
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform"></a>

*Dr. Rahul Sharad Gaikwad, Ashish Bhatt, Aniket Dekate, Ruchika Modi, Tamilselvan P, Nadeem Rahaman, Aarti Rajput, dan Naveen Suthar, Amazon Web Services*

## Ringkasan
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-summary"></a>

Pola ini adalah tentang membangun pipeline continuous integration and continuous deployment (CI/CD) untuk mengelola migrasi database dengan cara yang andal dan otomatis. Ini mencakup proses penyediaan infrastruktur yang diperlukan, memigrasi data, dan menyesuaikan perubahan skema dengan menggunakan Terraform, yang merupakan alat infrastruktur sebagai kode (IAc).

Secara khusus, pola menyiapkan CI/CD pipeline untuk memigrasikan database Microsoft SQL Server lokal ke Amazon Relational Database Service (Amazon RDS). AWS Anda juga dapat menggunakan pola ini untuk memigrasikan database SQL Server yang ada di mesin virtual (VM) atau di lingkungan cloud lain ke Amazon RDS.

Pola ini membahas tantangan berikut yang terkait dengan manajemen dan penyebaran basis data:
+ Penerapan basis data manual memakan waktu, rawan kesalahan, dan tidak memiliki konsistensi di seluruh lingkungan.
+ Mengkoordinasikan penyediaan infrastruktur, migrasi data, dan perubahan skema dapat menjadi kompleks dan sulit dikelola.
+ Memastikan integritas data dan meminimalkan waktu henti selama pembaruan basis data sangat penting untuk sistem produksi.

Pola ini memberikan manfaat sebagai berikut:
+ Merampingkan proses memperbarui dan menerapkan perubahan database dengan menerapkan CI/CD pipeline untuk migrasi database. Ini mengurangi risiko kesalahan, memastikan konsistensi di seluruh lingkungan, dan meminimalkan waktu henti.
+ Membantu meningkatkan keandalan, efisiensi, dan kolaborasi. Memungkinkan waktu yang lebih cepat untuk memasarkan dan mengurangi waktu henti selama pembaruan basis data.
+ Membantu Anda mengadopsi DevOps praktik modern untuk manajemen basis data, yang mengarah pada peningkatan kelincahan, keandalan, dan efisiensi dalam proses pengiriman perangkat lunak Anda.

## Prasyarat dan batasan
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ [Terraform 0.12 atau yang lebih baru diinstal pada mesin lokal Anda (untuk instruksi, lihat dokumentasi Terraform)](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)
+  AWS Penyedia Terraform versi 3.0.0 atau yang lebih baru dari HashiCorp (lihat [GitHub repositori](https://github.com/hashicorp/terraform-provider-aws) untuk penyedia ini)
+ Kebijakan hak istimewa paling sedikit AWS Identity and Access Management (IAM) (lihat posting blog [Teknik untuk menulis kebijakan IAM hak istimewa terkecil](https://aws.amazon.com/blogs/security/techniques-for-writing-least-privilege-iam-policies/))

## Arsitektur
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-architecture"></a>

Pola ini mengimplementasikan arsitektur berikut, yang menyediakan infrastruktur lengkap untuk proses migrasi database.

![\[Arsitektur pipeline CI/CD untuk memigrasikan database SQL Server lokal ke Amazon RDS di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/87845d9f-8e6e-4c51-b9ee-9e7833671d05/images/a1e95458-419a-4de9-85ef-b17d8340700a.png)


Dalam arsitektur ini:
+ Database sumber adalah database SQL Server yang ada di tempat, di mesin virtual (VM), atau dihosting oleh penyedia cloud lain. Diagram mengasumsikan bahwa database sumber berada di pusat data lokal.
+ Pusat data lokal dan AWS terhubung melalui VPN atau AWS Direct Connect koneksi. Ini menyediakan komunikasi yang aman antara database sumber dan AWS infrastruktur.
+ Basis data target adalah database Amazon RDS yang di-host di dalam virtual private cloud ( AWS VPC) dengan bantuan pipeline penyediaan database.
+ AWS Database Migration Service (AWS DMS) mereplikasi database lokal Anda ke. AWS Hal ini digunakan untuk mengkonfigurasi replikasi database sumber ke database target.

Diagram berikut menunjukkan infrastruktur yang disiapkan dengan berbagai tingkat proses migrasi database, yang melibatkan penyediaan, AWS DMS penyiapan, dan validasi.

![\[Detail pipeline CI/CD dari proses migrasi dari lokasi ke AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/87845d9f-8e6e-4c51-b9ee-9e7833671d05/images/3aca17e5-6fd7-4317-b578-ab5e485c6efb.png)


Dalam proses ini:
+ Pipeline validasi memvalidasi semua pemeriksaan. Pipeline terintegrasi bergerak ke langkah berikutnya ketika semua validasi yang diperlukan selesai.
+ Pipeline penyediaan DB terdiri dari berbagai AWS CodeBuild tahapan yang melakukan tindakan Terraform pada kode Terraform yang disediakan untuk database. Ketika langkah-langkah ini selesai, ia menyebarkan sumber daya di target Akun AWS.
+  AWS DMS Pipeline terdiri dari berbagai CodeBuild tahapan yang melakukan pengujian dan kemudian menyediakan AWS DMS infrastruktur untuk melakukan migrasi dengan menggunakan IAc.

## Alat
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-tools"></a>

**Layanan AWS dan alat-alat**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan integrasi berkelanjutan yang dikelola sepenuhnya yang mengkompilasi kode sumber, menjalankan pengujian, dan menghasilkan paket ready-to-deploy perangkat lunak.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)adalah layanan pengiriman berkelanjutan yang dikelola sepenuhnya yang membantu Anda mengotomatiskan saluran pipa rilis Anda untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke dalam AWS Cloud atau di antara kombinasi pengaturan cloud dan lokal.

**Layanan lainnya**
+ [Terraform](https://www.terraform.io/) adalah alat IAc HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.

**Repositori kode**

Kode untuk pola ini tersedia di [ DevOps Kerangka Migrasi GitHub Database menggunakan repositori sampel Terraform](https://github.com/aws-samples/aws-terraform-db-migration-framework-samples).

## Praktik terbaik
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-best-practices"></a>
+ Terapkan pengujian otomatis untuk migrasi database Anda untuk memverifikasi kebenaran perubahan skema dan integritas data. Ini termasuk pengujian unit, tes integrasi, dan end-to-end tes.
+ Terapkan strategi pencadangan dan pemulihan yang kuat untuk database Anda, terutama sebelum migrasi. Ini memastikan integritas data dan menyediakan opsi mundur jika terjadi kegagalan.
+ Menerapkan strategi rollback yang kuat untuk mengembalikan perubahan database jika terjadi kegagalan atau masalah selama migrasi. Ini bisa melibatkan memutar kembali ke status database sebelumnya atau mengembalikan skrip migrasi individu.
+ Siapkan mekanisme pemantauan dan pencatatan untuk melacak kemajuan dan status migrasi database. Ini membantu Anda mengidentifikasi dan menyelesaikan masalah dengan cepat.

## Epik
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-epics"></a>

### Siapkan workstation lokal Anda
<a name="set-up-your-local-workstation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan dan konfigurasikan Git di workstation lokal Anda. | Instal dan konfigurasikan Git di workstation lokal Anda dengan mengikuti instruksi dalam [dokumentasi Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). | DevOps insinyur | 
| Buat folder proyek dan tambahkan file dari GitHub repositori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-ci-cd-pipeline-for-db-migration-with-terraform.html) | DevOps insinyur | 

### Menyediakan arsitektur target
<a name="provision-the-target-architecture"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui parameter yang diperlukan. | `ssm-parameters.sh`File menyimpan semua AWS Systems Manager parameter yang diperlukan. Anda dapat mengonfigurasi parameter ini dengan nilai kustom untuk proyek Anda.Di `setup/db-ssm-params` folder di workstation lokal Anda, buka `ssm-parameters.sh` file dan atur parameter ini sebelum Anda menjalankan CI/CD pipeline. | DevOps insinyur | 
| Inisialisasi konfigurasi Terraform. | Di `db-cicd-integration` folder, masukkan perintah berikut untuk menginisialisasi direktori kerja Anda yang berisi file konfigurasi Terraform:<pre>terraform init</pre> | DevOps insinyur | 
| Pratinjau paket Terraform. | Untuk membuat paket Terraform, masukkan perintah berikut:<pre>terraform plan -var-file="terraform.sample"  </pre>Terraform mengevaluasi file konfigurasi untuk menentukan status target untuk sumber daya yang dideklarasikan. Kemudian membandingkan status target dengan keadaan saat ini dan membuat rencana. | DevOps insinyur | 
| Verifikasi rencananya. | Tinjau rencana dan konfirmasikan bahwa itu mengonfigurasi arsitektur yang diperlukan dalam target Akun AWS Anda. | DevOps insinyur | 
| Menyebarkan solusinya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-ci-cd-pipeline-for-db-migration-with-terraform.html) | DevOps insinyur | 

### Verifikasi penyebaran
<a name="verify-the-deployment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi penerapan. | Verifikasi status `db-cicd-integration` pipeline untuk mengonfirmasi bahwa migrasi database telah selesai.1. Masuk ke Konsol Manajemen AWS, lalu buka [AWS CodePipeline konsol](https://console.aws.amazon.com/codesuite/codepipeline/home).2. Di panel navigasi, pilih **Pipelines**.3. Pilih `db-cicd-integration` pipa.4. Validasi bahwa eksekusi pipeline telah selesai dengan sukses. | DevOps insinyur | 

### Membersihkan infrastruktur setelah digunakan
<a name="clean-up-infrastructure-after-use"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan infrastruktur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-ci-cd-pipeline-for-db-migration-with-terraform.html) | DevOps insinyur | 

## Sumber daya terkait
<a name="set-up-ci-cd-pipeline-for-db-migration-with-terraform-resources"></a>

**AWS dokumentasi**
+ [Memulai dengan produk Terraform](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-Terraform.html)

**Dokumentasi Terraform**
+ [Instalasi Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
+ [Konfigurasi backend Terraform](https://developer.hashicorp.com/terraform/language/backend)
+ [Dokumentasi Penyedia Terraform AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)

# Mengatur cluster failover Microsoft SQL Server di Amazon EC2 menggunakan Windows FSx File Server
<a name="microsoft-sql-failover-cluster-on-amazon-ec2"></a>

*Sweta Krishna dan Ramesh Babu Donti, Amazon Web Services*

## Ringkasan
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-summary"></a>

Microsoft SQL Server Standard edition dengan instance failover cluster (FCI) dapat memberikan alternatif yang lebih hemat biaya untuk SQL Server Enterprise. Menyiapkan SQL FCI memerlukan penyimpanan file bersama antar node, dan [Amazon FSx untuk Windows File Server](https://aws.amazon.com/fsx/windows/) menyediakan penyimpanan terkelola penuh yang secara otomatis mereplikasi secara sinkron di seluruh Availability Zone. Amazon FSx mengurangi biaya penyimpanan dengan menggunakan deduplikasi data bawaan untuk berbagi file tujuan umum, yang menghilangkan kebutuhan untuk mempertahankan solusi pihak ketiga. Amazon FSx juga mendukung hal-hal berikut:
+ Bayar hanya untuk apa yang Anda gunakan tanpa biaya atau komitmen di muka.
+ Siapkan FCI secara manual dengan FSx penyimpanan bersama Anda.
+ Gunakan FSx sebagai saksi berbagi file untuk cluster SQL Anda.
+ Amazon FSx untuk Windows File Server mendukung Server Message Block (SMB) 3.0 untuk berbagi file yang tersedia secara terus menerus, sehingga cocok untuk penerapan SQL Server FCI.

## Prasyarat dan batasan
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-prereqs"></a>

**Prasyarat**
+ Aktif [Akun AWS](https://aws.amazon.com/account/).
+ Izin untuk membuat dan mengelola resource Amazon Virtual Private Cloud (Amazon VPC), instans Amazon Elastic Compute Cloud ( EC2Amazon), grup keamanan, AWS Identity and Access Management dan peran (IAM).
+ AWS Managed Microsoft AD atau Direktori Aktif lokal Anda sendiri.
+ Pengguna domain Active Directory dengan [izin yang diperlukan](https://learn.microsoft.com/en-us/windows-server/failover-clustering/configure-failover-cluster-accounts) untuk menyiapkan cluster failover.
+ Aturan grup keamanan untuk [port SQL Server FCI dan Microsoft Active Directory](https://docs.aws.amazon.com/whitepapers/latest/access-workspaces-with-access-cards/ip-address-and-port-requirements.html) untuk konektivitas hybrid yang aman.
+ [Akun layanan di Active](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-windows-service-accounts-and-permissions?view=sql-server-ver16#sql-server-failover-cluster-instance) Directory untuk SQL Server yang dikonfigurasi dengan izin yang sesuai di seluruh node SQL.
+ Amazon FSx untuk Windows File Server dalam cluster failover.
+ Binari instalasi SQL Server.

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [halaman titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**
+ Amazon EC2 untuk Windows Server 2012 R2 atau yang lebih baru
+ Amazon FSx untuk Windows File Server dengan semua versi Windows Server saat ini
+ Amazon FSx untuk NetApp ONTAP sebagai alternatif untuk penyimpanan bersama
+ SQL Server 2012/2016/2019/2022

## Arsitektur
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-architecture"></a>

**Tumpukan teknologi**
+ Amazon EC2
+ Amazon FSx untuk Server File Windows
+ Amazon VPC
+ AWS Directory Service
+ AWS Systems Manager
+ IAM

**Arsitektur target**

Diagram berikut menunjukkan arsitektur tingkat tinggi Microsoft SQL Server FCI di Amazon menggunakan EC2 Amazon FSx untuk Windows File Server.

![\[Diagram arsitektur untuk Microsoft Server FCI di Amazon EC2 menggunakan Amazon FSx untuk Windows File Server.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/208bf64a-8fef-4019-944a-723372450885/images/ba0c9169-9536-41c3-ae8e-7264dcc3e1ad.png)


**Infrastruktur jaringan**
+ Amazon VPC menyediakan wadah jaringan yang mencakup tiga Availability Zone.
+ Subnet pribadi menyediakan subnet terisolasi di setiap Availability Zone untuk menyebarkan sumber daya.

**Lapisan komputasi**
+ Amazon EC2 berisi node cluster SQL Server 1, digunakan di Availability Zone 1 sebagai bagian dari Windows Server Failover Cluster (WSFC).
+ Amazon EC2 berisi node cluster SQL Server 2, digunakan di Availability Zone 2 sebagai bagian dari WSFC.
+ Cluster WSFC menghubungkan kedua node SQL Server untuk kemampuan failover.

**Lapisan penyimpanan untuk Amazon FSx untuk Windows File Server**

** FSx Penerapan multi-AZ (mencakup Availability Zone 1 dan 2)**
+ Sistem FSx file utama di Availability Zone 1 menghosting data SQL Server aktif dan file log.
+ Sistem FSx file sekunder di Availability Zone 2 menyediakan kemampuan failover otomatis.
+ Berbagi file SMB bersama (\$1\$1 fsx.domain\$1 sqlshare), dapat diakses oleh kedua node cluster untuk database SQL Server.

** FSx Penyebaran AZ tunggal (in) AZ3**
+ Saksi server FSx file Amazon di Availability Zone 3 berfungsi sebagai saksi kuorum cluster.
+ File share witness (`\\fsx.domain\witness`) mempertahankan kuorum cluster dan mencegah skenario split-brain.

**Layanan direktori**
+ AWS Managed Microsoft AD menyediakan otentikasi Windows dan layanan domain yang diperlukan untuk fungsionalitas cluster.

**Fitur ketersediaan tinggi**
+ Komponen multi-AZ memberikan toleransi kesalahan di seluruh Availability Zone.
+ FSx server file siaga menyediakan failover otomatis jika server utama gagal.
+ Saksi berbagi file menyediakan manajemen kuorum klaster di Availability Zone 3 untuk membantu memastikan operasi klaster yang tepat selama kegagalan.
+ Domain terintegrasi dengan AWS Managed Microsoft AD otentikasi Windows yang mulus.

## Alat
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) menyediakan sistem file yang mendukung protokol konektivitas standar industri dan menawarkan ketersediaan dan replikasi yang tinggi. Wilayah AWS
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)memungkinkan beban kerja dan sumber daya yang sadar direktori Anda AWS untuk menggunakan Microsoft Active Directory di file. AWS Cloud
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar.

## Praktik terbaik
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-best-practices"></a>
+ Tempatkan instance database di subnet pribadi untuk melindunginya agar tidak dapat diakses publik dari internet sambil tetap memungkinkan mereka untuk terhubung Layanan AWS dan melakukan pembaruan.
+ Untuk praktik terbaik umum, lihat [Praktik Terbaik untuk Menerapkan Microsoft SQL Server di Amazon](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-ec2-best-practices/welcome.html). EC2
+ Untuk menggunakan PowerShell untuk mengelola Amazon FSx untuk Windows File Server, lihat [Mengelola FSx untuk sistem file Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/administering-file-systems.html).

## Epik
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-epics"></a>

### Membuat dan mengkonfigurasi EC2 node Amazon untuk SQL Server
<a name="create-and-configure-ec2-nodes-for-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan nama dan tag. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Pilih AMI Windows. | Pilih Amazon Machine Image (AMI) untuk Windows yang memenuhi persyaratan SQL Server Anda. | DBA | 
| Pilih jenis instance. | Pilih jenis EC2 instans Amazon yang memenuhi persyaratan Anda. | DBA | 
| Gunakan key pair. | Anda dapat menggunakan key pair untuk terhubung dengan aman ke instans Anda. Pastikan Anda memiliki akses ke key pair yang dipilih sebelum meluncurkan instance. | DBA | 
| Mengkonfigurasi pengaturan jaringan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Konfigurasikan pengaturan jaringan lanjutan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Konfigurasikan penyimpanan. | Konfigurasikan total penyimpanan yang diperlukan dan pilih jenis penyimpanan yang diperlukan. | DBA | 
| Konfigurasikan detail lanjutan dan luncurkan instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Buat simpul 2. | Ulangi langkah-langkah ini untuk membuat dan mengkonfigurasi node 2. | DBA | 

### Instal dan konfigurasikan cluster failover Windows Server pada node 1 dan 2
<a name="install-and-configure-windows-server-failover-cluster-on-nodes-1-and-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Masuk ke node 1. | Masuk ke EC2 instance Windows Amazon sebagai administrator. | DBA | 
| Instal fitur FCI pada node 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html)<pre>Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Masuk ke node 2. | Masuk ke EC2 instance Windows Amazon sebagai administrator. | DBA | 
| Instal fitur FCI pada node 2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html)<pre>Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Tambahkan node ke cluster. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Bawa cluster online. | Untuk membuat cluster online, perbarui alamat IP statis dari kedua node:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Validasi cluster. | Arahkan ke **pengelola klaster Failover** dan verifikasi bahwa sumber daya inti klaster sedang online. | DBA | 

### Instal SQL Server pada node 1 dan 2
<a name="install-sql-server-on-nodes-1-and-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Masuk ke server. | Masuk ke EC2 instans Amazon sebagai administrator. | DBA | 
| Pasang binari SQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) |  | 
| Tambahkan node 2 ke cluster failover. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 

### Konfigurasikan saksi berbagi FSx file Amazon
<a name="configure-the-fsx-file-share-witness"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan pengaturan kuorum. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/microsoft-sql-failover-cluster-on-amazon-ec2.html) | DBA | 
| Ambil detail DNS. | Di FSx konsol Amazon, pilih **Managed AD** lalu **Lampirkan**. DNS harus memiliki format berikut: `\\example.example.net\share` | DBA | 
| Konfigurasikan saksi berbagi file. | Pilih **jalur berbagi FSx file Amazon** dan kemudian **Selesai**. | DBA | 

## Sumber daya terkait
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-resources"></a>

**AWS sumber daya**
+ [Amazon FSx untuk Server File Windows](https://www.youtube.com/watch?v=IMDWTIShlyI) (video)
+ [Menyelam jauh di Amazon FSx untuk Windows File Server](https://www.youtube.com/watch?v=_x_Geur93oc) (video)
+ [Cara menyebarkan cluster failover SQL Server dengan Amazon EBS Multi-Attach di Windows](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-deploy-a-sql-server-failover-cluster-with-amazon-ebs-multi-attach-on-windows-server/) Server (posting blog)AWS 
+ [Sederhanakan penerapan ketersediaan tinggi Microsoft SQL Server Anda menggunakan FSx Amazon untuk Windows File](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/) Server AWS (posting blog)
+ [Penerapan ketersediaan tinggi SQL Server menggunakan Amazon FSx untuk NetApp ONTAP](https://aws.amazon.com/blogs/modernizing-with-aws/sql-server-high-availability-amazon-fsx-for-netapp-ontap/) (posting blog)AWS 
+ [Menggunakan FSx untuk Windows File Server dengan Microsoft SQL Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html)
+ [Apa itu FSx untuk Windows File Server?](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html)

**Sumber daya lainnya**
+ [Buat cluster failover](https://learn.microsoft.com/en-us/windows-server/failover-clustering/create-failover-cluster?pivots=windows-admin-center)

## Informasi tambahan
<a name="microsoft-sql-failover-cluster-on-amazon-ec2-additional"></a>

**Mengkonfigurasi saksi berbagi file**

Pastikan Anda terhubung ke sistem file dari kedua node dengan menambahkan aturan di grup FSx keamanan Amazon yang memungkinkan koneksi masuk. Port SMB harus diizinkan. Misalnya, jika nama DNS adalah`\\example.example.com\share`, gunakan`\\example.example.com\share`. Gunakan nilai yang sama untuk saksi berbagi file di klaster ketersediaan Selalu Aktif. Selesaikan langkah-langkah berikut untuk mengonfigurasi saksi berbagi file:

1. Gunakan RDP untuk terhubung ke instans Amazon EC2 Anda.

1. Arahkan ke **pengelola cluster Failover**.

1. Buka menu konteks (klik kanan) dan pilih **Tindakan lainnya**.

1. Pilih **Konfigurasikan pengaturan kuorum cluster**.

1. Pilih **Berikutnya**.

1. Pilih **Konfigurasi kuorum** dan konfigurasikan saksi berbagi file.

1. Berikan nama DNS.

1. Tinjau ringkasan dan kemudian pilih **Selesai**. Saksi berbagi file harus online di bagian sumber daya **inti Cluster**.

# Menyiapkan HA/DR arsitektur untuk Oracle E-Business Suite di Amazon RDS Custom dengan database siaga aktif
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database"></a>

*Simon Cunningham, Jaydeep Nandy, dan Nitin Saxena, Amazon Web Services*

## Ringkasan
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-summary"></a>

Pola ini menjelaskan bagaimana Anda dapat merancang solusi Oracle E-Business Anda di Amazon Relational Database Service (Amazon RDS) Kustom untuk ketersediaan tinggi (HA) dan pemulihan bencana (DR) dengan menyiapkan database replika baca Amazon RDS Custom di Zona Ketersediaan Amazon Web Services (AWS) lainnya dan mengubahnya menjadi database siaga aktif. Pembuatan replika baca Kustom Amazon RDS sepenuhnya otomatis melalui AWS Management Console.

Pola ini tidak membahas langkah-langkah untuk menambahkan tingkatan aplikasi tambahan dan sistem file bersama, yang juga dapat menjadi bagian dari HA/DR arsitektur. *Untuk informasi selengkapnya tentang topik tersebut, lihat Catatan Dukungan Oracle berikut: 1375769.1, 1375670.1, dan 1383621.1 (bagian 5, Opsi Kloning Lanjutan).* (Akses memerlukan akun [Dukungan Oracle](https://support.oracle.com/portal/).)

Untuk memigrasikan sistem E-Business Suite ke arsitektur single-tier, Single-AZ di Amazon Web Services (AWS), lihat pola [Migrate Oracle E-Business](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-oracle-e-business-suite-to-amazon-rds-custom.html) Suite ke Amazon RDS Custom.

Oracle E-Business Suite adalah solusi Enterprise Resource Planning (ERP) untuk mengotomatisasi proses di seluruh perusahaan seperti keuangan, sumber daya manusia, rantai pasokan, dan manufaktur. Ini memiliki arsitektur tiga tingkat: klien, aplikasi, dan database. Sebelumnya, Anda harus menjalankan database E-Business Suite pada [instans Amazon Elastic Compute Cloud (Amazon EC2) yang dikelola sendiri,](https://aws.amazon.com/ec2/) tetapi sekarang Anda dapat memanfaatkan [Amazon](https://aws.amazon.com/rds/custom/) RDS Custom.  

## Prasyarat dan batasan
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-prereqs"></a>

**Prasyarat**
+ Instalasi E-Business Suite yang ada di Amazon RDS Custom; lihat pola [Migrasi Oracle E-Business Suite](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-oracle-e-business-suite-to-amazon-rds-custom.html) ke Amazon RDS Custom
+ *Jika Anda ingin mengubah replika baca menjadi read-only dan menggunakannya untuk menurunkan pelaporan ke standby, [lisensi database Oracle Active Data Guard](https://www.oracle.com/corporate/pricing/) (lihat Daftar Harga Komersil Teknologi Oracle)*

**Batasan**
+ Batasan dan konfigurasi yang tidak didukung untuk [database Oracle di](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.limits) Amazon RDS Custom
+ Keterbatasan yang terkait dengan [Amazon RDS Custom untuk replika baca Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html#custom-rr.limitations)

**Versi produk**

Untuk versi Oracle Database dan kelas instans yang didukung oleh Amazon RDS Custom, lihat [Persyaratan dan batasan untuk Amazon RDS Custom](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html) for Oracle.

## Arsitektur
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-architecture"></a>

Diagram berikut menggambarkan arsitektur representatif untuk E-Business Suite di AWS yang mencakup beberapa Availability Zone dan tingkatan aplikasi dalam penyiapan. active/passive Basis data menggunakan instans Amazon RDS Custom DB dan replika baca Amazon RDS Custom. Replika baca menggunakan Active Data Guard untuk mereplikasi ke Availability Zone lainnya. Anda juga dapat menggunakan replika baca untuk membongkar lalu lintas baca di database utama dan untuk tujuan pelaporan.

![\[Arsitektur multi-AZ untuk Oracle E-Business Suite di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a17947e8-56b1-4d92-91df-096c02ff4c19/images/ffdaa2d4-123b-44a0-8d52-b1352a4eee44.png)


Untuk informasi selengkapnya, lihat [Bekerja dengan replika baca untuk Amazon RDS Custom for Oracle dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html) Amazon RDS. 

Replika baca Kustom Amazon RDS dibuat secara default saat dipasang. [Namun, jika Anda ingin menurunkan beberapa beban kerja hanya-baca ke database siaga untuk mengurangi beban pada database utama Anda, Anda dapat secara manual mengubah mode replika yang dipasang menjadi hanya-baca dengan mengikuti langkah-langkah di bagian Epics.](#set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-epics) Kasus penggunaan umum untuk ini adalah menjalankan laporan Anda dari database siaga. Mengubah ke read-only memerlukan lisensi database siaga aktif. 

Saat Anda membuat replika baca di AWS, sistem menggunakan broker Oracle Data Guard di bawah sampulnya.  Konfigurasi ini dibuat secara otomatis dan diatur dalam mode Kinerja Maksimum sebagai berikut:

```
DGMGRL> show configuration
Configuration - rds_dg
  Protection Mode: MaxPerformance
  Members:
  vis_a - Primary database
    vis_b - Physical standby database 
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS   (status updated 58 seconds ago)
```

## Alat
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-tools"></a>

**Layanan AWS**
+ [Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) adalah layanan database terkelola untuk aplikasi lama, kustom, dan paket yang memerlukan akses ke sistem operasi dan lingkungan database yang mendasarinya. Ini mengotomatiskan tugas dan operasi administrasi database sambil memungkinkan Anda, sebagai administrator database, untuk mengakses dan menyesuaikan lingkungan database dan sistem operasi Anda. 

**Alat lainnya**
+ Oracle Data Guard adalah alat yang membantu Anda membuat dan mengelola database siaga Oracle. Pola ini menggunakan Oracle Data Guard untuk menyiapkan database siaga aktif di Amazon RDS Custom.

## Epik
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-epics"></a>

### Membuat replika baca
<a name="create-a-read-replica"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat replika baca instans Amazon RDS Custom DB. | Untuk membuat replika baca, ikuti petunjuk dalam [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.Create) dan gunakan instans Amazon RDS Custom DB yang Anda buat (lihat bagian [Prasyarat](#set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-prereqs)) sebagai database sumber.Secara default, replika baca Kustom Amazon RDS dibuat sebagai siaga fisik dan dalam keadaan terpasang. Ini disengaja untuk memastikan kepatuhan dengan lisensi Oracle Active Data Guard. Ikuti langkah selanjutnya untuk mengonversi replika baca ke mode hanya-baca. | DBA | 

### Ubah replika baca menjadi siaga aktif hanya-baca
<a name="change-the-read-replica-to-a-read-only-active-standby"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke Amazon RDS Custom read replika. | Gunakan perintah berikut untuk mengonversi database siaga fisik Anda ke database siaga aktif.  Perintah ini memerlukan lisensi siaga aktif Oracle. Untuk mendapatkan lisensi, hubungi perwakilan Oracle Anda.<pre>$ sudo su - rdsdb<br />-bash-4.2$ sql<br />SQL> select process,status,sequence# from v$managed_standby;<br /><br />PROCESS    STATUS        SEQUENCE#<br />--------- ------------ ----------<br />ARCH       CLOSING            3956<br />ARCH       CONNECTED             0<br />ARCH       CLOSING            3955<br />ARCH       CLOSING            3957<br />RFS        IDLE                  0<br />RFS        IDLE               3958<br />MRP0       APPLYING_LOG       3958<br />SQL> select name, database_role, open_mode from v$database;<br /><br />NAME       DATABASE_ROLE    OPEN_MODE<br />--------- ---------------- --------------------<br />VIS        PHYSICAL STANDBY MOUNTED<br />SQL> alter database recover managed standby database cancel;<br />Database altered.<br />Open the standby database<br />SQL> alter database open;<br />Database altered.<br />SQL> select name, database_role, open_mode from v$database;<br /><br />NAME       DATABASE_ROLE    OPEN_MODE<br />--------- ---------------- --------------------<br />VIS        PHYSICAL STANDBY READ ONLY</pre> | DBA | 
| Mulai pemulihan media dengan log real-time berlaku. | Untuk mengaktifkan fitur penerapan log waktu nyata, gunakan perintah berikut. Ini mengonversi dan memvalidasi siaga (replika baca) sebagai database siaga aktif, sehingga Anda dapat menghubungkan dan menjalankan kueri hanya-baca.<pre>SQL>   alter database recover managed standby database using current logfile disconnect from session;<br />Database altered</pre> | DBA | 
| Periksa status database. | Untuk memeriksa status database, gunakan perintah berikut.<pre>SQL> select name, database_role, open_mode from v$database;<br />NAME      DATABASE_ROLE    OPEN_MODE<br />--------- ---------------- --------------------<br />VIS       PHYSICAL STANDBY READ ONLY WITH APPLY</pre> | DBA | 
| Periksa mode redo apply. | Untuk memeriksa redo apply mode, gunakan perintah berikut.<pre>SQL> select process,status,sequence# from v$managed_standby;<br />PROCESS    STATUS        SEQUENCE#<br />--------- ------------ ----------<br />ARCH       CLOSING            3956<br />ARCH       CONNECTED             0<br />ARCH       CLOSING            3955<br />ARCH       CLOSING            3957<br />RFS        IDLE                  0<br />RFS        IDLE               3958<br />MRP0       APPLYING_LOG       3958<br /> <br />SQL> select open_mode from v$database;<br />OPEN_MODE<br />--------------------<br />READ ONLY WITH APPLY</pre> | DBA | 

## Sumber daya terkait
<a name="set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database-resources"></a>
+ [Migrasikan Oracle E-Business Suite ke Amazon RDS Custom](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-oracle-e-business-suite-to-amazon-rds-custom.html) (AWS Prescriptive Guidance)
+ [Bekerja dengan Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html) (dokumentasi Amazon RDS)
+ [Bekerja dengan replika baca untuk Amazon RDS Custom untuk Oracle (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html) Amazon RDS)
+ [Amazon RDS Kustom untuk Oracle - Kemampuan Kontrol Baru di Lingkungan Database (blog](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) AWS News)
+ [Memigrasi Oracle E-Business Suite di AWS (whitepaper AWS](https://d1.awsstatic.com/whitepapers/migrate-oracle-e-business-suite.pdf))
+ [Arsitektur Oracle E-Business Suite di AWS (whitepaper](https://docs.aws.amazon.com/whitepapers/latest/overview-oracle-e-business-suite/oracle-e-business-suite-architecture-on-aws.html) AWS)

# Streaming data dari IBM Db2, SAP, Sybase, dan database lainnya ke MongoDB Atlas AWS
<a name="stream-data-from-ibm-db2-to-mongodb-atlas"></a>

*Battulga Purevragchaa dan Igor Alekseev, Amazon Web Services*

*Babu Srinivasan, MongoDB*

## Ringkasan
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-summary"></a>

Pola ini menjelaskan langkah-langkah untuk memigrasikan data dari IBM Db2 dan database lain seperti database mainframe dan Sybase ke MongoDB Atlas di file. AWS Cloud Ini digunakan [AWS Glue](https://aws.amazon.com/glue/)untuk membantu mempercepat migrasi data ke MongoDB Atlas.

Pola ini menyertai panduan [Migrasi ke MongoDB Atlas di situs web Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) Guidance. AWS AWS Ini memberikan langkah-langkah implementasi untuk salah satu skenario migrasi yang dibahas dalam panduan itu. Untuk skenario migrasi tambahan, lihat pola berikut di situs web Panduan AWS Preskriptif:
+ [Migrasikan lingkungan MongoDB yang dihosting sendiri ke MongoDB Atlas di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud.html)
+ [Migrasikan database relasional ke MongoDB Atlas di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-relational-database-to-mongodb-atlas.html)

Pola ini ditujukan untuk [AWS Managed Services Partners](https://aws.amazon.com/managed-services/partners/) dan AWS pengguna.

## Prasyarat dan batasan
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-prereqs"></a>

**Prasyarat**
+ Database sumber seperti SAP, Sybase, IBM Db2, dan lainnya untuk bermigrasi ke MongoDB Atlas.
+ Keakraban dengan database seperti SAP, Sybase, IBM Db2, MongoDB Atlas, dan. Layanan AWS

**Versi produk**
+ MongoDB versi 5.0 atau yang lebih baru.

## Arsitektur
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-architecture"></a>

Diagram berikut menggambarkan pemuatan data batch dan streaming data dengan menggunakan AWS Glue Studio, Amazon Kinesis Data Streams, dan MongoDB Atlas.

Arsitektur referensi ini digunakan AWS Glue Studio untuk membuat pipeline ekstrak, transformasi, dan beban (ETL) untuk memigrasikan data ke MongoDB Atlas. An Perayap AWS Glue terintegrasi dengan MongoDB Atlas untuk memfasilitasi tata kelola data. Data dapat di-porting dalam batch atau dialirkan ke MongoDB Atlas dengan menggunakan Amazon Kinesis Data Streams.

**Pemuatan data batch**

![\[Migrasi data ke MongoDB Atlas dalam mode batch.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/805a376f-35f4-44cc-b4b0-8bf4d95c1e5d/images/68d87202-95ba-4e2a-9b3b-27dd6db6165e.png)


Untuk informasi selengkapnya tentang migrasi data batch, lihat posting AWS blog [Menulis pekerjaan ETL Anda untuk MongoDB](https://aws.amazon.com/blogs/big-data/compose-your-etl-jobs-for-mongodb-atlas-with-aws-glue/) Atlas dengan. AWS Glue

**Streaming data**

![\[Migrasi data ke MongoDB Atlas dalam mode streaming data.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/805a376f-35f4-44cc-b4b0-8bf4d95c1e5d/images/b007a116-f463-418f-9721-647d80177e3b.png)


Untuk arsitektur referensi MongoDB Atlas yang mendukung skenario penggunaan yang berbeda, lihat [Migrasi ke MongoDB](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/architecture.html) Atlas di situs web Panduan Preskriptif. AWS AWS 

## Alat
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-tools"></a>

● [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)adalah layanan ETL yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.

● [Amazon Kinesis Data](https://aws.amazon.com/kinesis/data-streams/) Streams membantu Anda mengumpulkan dan memproses aliran besar catatan data secara real time.

● [MongoDB](https://www.mongodb.com/atlas) Atlas adalah database yang dikelola sepenuhnya sebagai layanan (dBaaS) untuk menyebarkan dan mengelola database MongoDB di cloud.

## Praktik terbaik
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-best-practices"></a>

Untuk panduan, lihat [Panduan Praktik Terbaik untuk MongoDB di repositori](https://github.com/mongodb-partners/mongodb_atlas_as_aws_bedrock_knowledge_base/blob/main/data/MongoDB_Best_Practices_Guide.pdf) MongoDB. GitHub 

## Epik
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-epics"></a>

### Penemuan dan penilaian
<a name="discovery-and-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan ukuran cluster. | Perkirakan ukuran set kerja dengan menggunakan informasi dari `db.stats()` untuk total ruang indeks. Asumsikan bahwa persentase ruang data Anda akan sering diakses. Atau, Anda dapat memperkirakan kebutuhan memori Anda berdasarkan asumsi Anda. Tugas ini harus memakan waktu sekitar satu minggu. Untuk informasi lebih lanjut dan contoh untuk ini dan cerita lainnya dalam epik ini, lihat tautan di bagian [Sumber daya terkait](#stream-data-from-ibm-db2-to-mongodb-atlas-resources). | MongoDB DBA, Arsitek aplikasi | 
| Perkirakan kebutuhan bandwidth jaringan. | Untuk memperkirakan kebutuhan bandwidth jaringan Anda, kalikan ukuran dokumen rata-rata dengan jumlah dokumen yang disajikan per detik. Pertimbangkan lalu lintas maksimum yang akan ditanggung oleh node mana pun di cluster Anda sebagai dasarnya. Untuk menghitung kecepatan transfer data hilir dari klaster Anda ke aplikasi klien, gunakan jumlah total dokumen yang dikembalikan selama periode waktu tertentu. Jika aplikasi Anda membaca dari node sekunder, bagilah jumlah total dokumen ini dengan jumlah node yang dapat melayani operasi baca. Untuk menemukan ukuran dokumen rata-rata untuk database, gunakan `db.stats().avgObjSize` perintah. Tugas ini biasanya akan memakan waktu satu hari. | MongoDB DBA | 
| Pilih tingkat Atlas. | Ikuti petunjuk dalam dokumentasi [MongoDB untuk memilih tingkat](https://www.mongodb.com/docs/atlas/manage-clusters/) cluster Atlas yang benar.  | MongoDB DBA | 
| Rencanakan untuk cutover. | Rencanakan pemotongan aplikasi. | MongoDB DBA, Arsitek aplikasi | 

### Siapkan lingkungan MongoDB Atlas baru di AWS
<a name="set-up-a-new-mongodb-atlas-environment-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster MongoDB Atlas baru di. AWS | Di MongoDB Atlas, **pilih Build a** Cluster, dan AWS pilih sebagai penyedia cloud. | MongoDB DBA | 
| Pilih Wilayah AWS dan konfigurasi cluster global. | Pilih dari daftar yang tersedia Wilayah AWS untuk cluster Atlas Anda. Konfigurasikan cluster global jika diperlukan. | MongoDB DBA | 
| Pilih tingkat cluster. | Pilih tingkat klaster pilihan Anda. Pemilihan tingkat Anda menentukan faktor-faktor seperti memori, penyimpanan, dan spesifikasi IOPS. | MongoDB DBA | 
| Konfigurasikan pengaturan cluster tambahan. | Konfigurasikan pengaturan cluster tambahan seperti versi MongoDB, cadangan, dan opsi enkripsi. Untuk informasi selengkapnya tentang opsi ini, lihat bagian [Sumber daya terkait](#stream-data-from-ibm-db2-to-mongodb-atlas-resources). | MongoDB DBA | 

### Konfigurasikan keamanan dan kepatuhan
<a name="configure-security-and-compliance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan daftar akses. | Untuk terhubung ke cluster Atlas, Anda harus menambahkan entri ke [daftar akses proyek](https://www.mongodb.com/docs/atlas/setup-cluster-security/#configure-security-features-for-clusters). Atlas menggunakan Transport Layer Security (TLS) /Secure Sockets Layer (SSL) untuk mengenkripsi koneksi ke virtual private cloud (VPC) untuk database Anda. Untuk mengatur daftar akses untuk proyek dan untuk informasi lebih lanjut tentang cerita dalam epik ini, lihat tautan di bagian [Sumber daya terkait](#stream-data-from-ibm-db2-to-mongodb-atlas-resources).  | MongoDB DBA | 
| Otentikasi dan otorisasi pengguna. | Anda harus membuat dan mengotentikasi pengguna database yang akan mengakses cluster MongoDB Atlas. Untuk mengakses cluster dalam proyek, pengguna harus menjadi bagian dari proyek itu, dan mereka dapat menjadi bagian dari beberapa proyek. Anda juga dapat mengaktifkan otorisasi dengan AWS Identity and Access Management (IAM). Untuk informasi selengkapnya, lihat [Mengatur Otentikasi dengan IAM di dokumentasi](https://www.mongodb.com/docs/atlas/security/aws-iam-authentication/#set-up-authentication-with-aws-iam) MongoDB. | MongoDB DBA | 
| Buat peran khusus. | (Opsional) Atlas mendukung pembuatan [peran khusus](https://www.mongodb.com/docs/atlas/reference/custom-role-actions/) jika hak istimewa pengguna database Atlas bawaan tidak mencakup rangkaian hak istimewa yang Anda inginkan. | MongoDB DBA | 
| Siapkan pengintip VPC. | (Opsional) Atlas mendukung peering [VPC](https://www.mongodb.com/docs/atlas/security-vpc-peering/#set-up-a-network-peering-connection) dengan AWS lainnya. VPCs | MongoDB DBA | 
| Siapkan AWS PrivateLink titik akhir. | (Opsional) Anda dapat mengatur titik akhir pribadi AWS dengan menggunakan [AWS PrivateLink](https://www.mongodb.com/docs/atlas/security-private-endpoint/). | MongoDB DBA | 
| Aktifkan otentikasi dua faktor. | (Opsional) Atlas mendukung otentikasi dua faktor (2FA) untuk membantu pengguna mengontrol akses ke akun Atlas mereka. | MongoDB DBA | 
| Siapkan otentikasi dan otorisasi pengguna dengan LDAP. | (Opsional) Atlas mendukung melakukan otentikasi dan otorisasi pengguna dengan Lightweight Directory Access Protocol (LDAP). | MongoDB DBA | 
| Siapkan AWS akses terpadu. | (Opsional) Beberapa fitur Atlas, termasuk Atlas Data Lake dan enkripsi saat istirahat menggunakan manajemen kunci pelanggan, menggunakan peran IAM untuk otentikasi. | MongoDB DBA | 
| Siapkan enkripsi saat istirahat dengan menggunakan AWS KMS. | (Opsional) Atlas mendukung penggunaan AWS Key Management Service (AWS KMS) untuk mengenkripsi mesin penyimpanan dan cadangan penyedia cloud. | MongoDB DBA | 
| Mengatur CSFLE. | (Opsional) Atlas mendukung [enkripsi tingkat bidang sisi klien (CSFLE), termasuk enkripsi](https://www.mongodb.com/docs/upcoming/core/csfle/#client-side-field-level-encryption) bidang otomatis.  | MongoDB DBA | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan replika target Anda yang ditetapkan di MongoDB Atlas. | Luncurkan replika target Anda yang ditetapkan di MongoDB Atlas. Di Atlas Live Migration Service, pilih **Saya siap untuk bermigrasi**. | MongoDB DBA | 
| Membangun koneksi AWS Glue dengan MongoDB Atlas. | Gunakan Perayap AWS Glue untuk terhubung AWS Glue dengan MongoDB Atlas (database target). Langkah ini membantu mempersiapkan lingkungan target untuk migrasi. Lihat informasi yang lebih lengkap dalam [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html). | MongoDB DBA | 
| Membangun koneksi AWS Glue dengan database sumber atau aliran sumber. | Ini membantu mempersiapkan lingkungan target untuk migrasi. | MongoDB DBA | 
| Mengatur transformasi data. | Konfigurasikan logika transformasi untuk memigrasikan data dari skema terstruktur lama ke skema fleksibel MongoDB. | MongoDB DBA | 
| Migrasikan data. | Jadwalkan migrasi di AWS Glue Studio. | MongoDB DBA | 

### Konfigurasikan integrasi operasional
<a name="configure-operational-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke cluster. | Connect ke cluster MongoDB Atlas. | Pengembang aplikasi | 
| Berinteraksi dengan data. | Berinteraksi dengan data cluster. | Pengembang aplikasi | 
| Pantau cluster. | Pantau cluster MongoDB Atlas Anda. | MongoDB DBA | 
| Cadangkan dan pulihkan data. | Cadangkan dan pulihkan data cluster. | MongoDB DBA | 

## Pemecahan masalah
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Jika Anda mengalami masalah | Lihat [Pemecahan Masalah](https://github.com/mongodb/mongodbatlas-cloudformation-resources/tree/master#troubleshooting) di repositori MongoDB Atlas Resources. CloudFormation  | 

## Sumber daya terkait
<a name="stream-data-from-ibm-db2-to-mongodb-atlas-resources"></a>

Semua link berikut, kecuali dinyatakan lain, pergi ke halaman web dalam dokumentasi MongoDB.

**Panduan migrasi**
+ [Bermigrasi ke MongoDB AWS Atlas](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/) on (Panduan Preskriptif)AWS 

**Penemuan dan penilaian**
+ [Memori](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory)
+ [Contoh ukuran dengan kumpulan data sampel Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets)
+ [Contoh ukuran untuk aplikasi seluler](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app)
+ [Lalu Lintas Jaringan](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic)
+ [Penskalaan Otomatis Cluster](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling)
+ [Template ukuran Atlas](https://view.highspot.com/viewer/5f438f47a4dfa042e97130c5)

**Mengkonfigurasi keamanan dan kepatuhan**
+ [Konfigurasikan Entri Daftar Akses IP](https://docs.atlas.mongodb.com/security/ip-access-list/)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)
+ [Konfigurasikan Peran Database Kustom](https://docs.atlas.mongodb.com/security-add-mongodb-roles)
+ [Konfigurasikan Pengguna Database](https://docs.atlas.mongodb.com/security-add-mongodb-users/#atlas-user-privileges)
+ [Siapkan Koneksi Peering Jaringan](https://docs.atlas.mongodb.com/security-vpc-peering/)
+ [Pelajari Tentang Titik Akhir Pribadi di Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/)
+ [Kelola Opsi Otentikasi Multi-Faktor Anda](https://docs.atlas.mongodb.com/security-two-factor-authentication/)
+ [Mengatur Otentikasi dan Otorisasi Pengguna dengan LDAP](https://docs.atlas.mongodb.com/security-ldaps/)
+ [Danau Atlas Data](https://docs.mongodb.com/datalake/)
+ [Enkripsi saat Istirahat menggunakan Manajemen Kunci Pelanggan](https://docs.atlas.mongodb.com/security-kms-encryption/)
+ [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) (dokumentasi IAM)
+ [Enkripsi Tingkat Bidang Sisi Klien](https://docs.mongodb.com/manual/core/security-client-side-encryption)
+ [Enkripsi Otomatis](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) 
+ [Kontrol Keamanan MongoDB Atlas](https://webassets.mongodb.com/_com_assets/cms/MongoDB_Atlas_Security_Controls-v7k3rbhi3p.pdf)
+ [Pusat Kepercayaan MongoDB](https://www.mongodb.com/cloud/trust)
+ [Konfigurasikan Fitur Keamanan untuk Cluster](https://docs.atlas.mongodb.com/setup-cluster-security/)

**Menyiapkan lingkungan MongoDB Atlas baru di **AWS****
+ [Penyedia dan Wilayah Cloud](https://docs.atlas.mongodb.com/cloud-providers-regions/)
+ [Kelola Global Cluster](https://docs.atlas.mongodb.com/global-clusters/)
+ [Pilih Tingkat Cluster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier)
+ [Konfigurasikan Pengaturan Tambahan](https://docs.atlas.mongodb.com/cluster-additional-settings/)
+ [Memulai dengan Atlas](https://docs.atlas.mongodb.com/getting-started/)
+ [Konfigurasikan Akses ke UI Atlas](https://docs.atlas.mongodb.com/organizations-projects/)

**Migrasi data**
+ [Migrasi atau Impor Data](https://www.mongodb.com/docs/atlas/import/)

**Cluster pemantauan**
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)

**Mengintegrasikan operasi**
+ [Connect ke Cluster](https://docs.atlas.mongodb.com/connect-to-cluster/)
+ [Berinteraksi dengan Data Anda](https://docs.atlas.mongodb.com/data-explorer/)
+ [Pantau Cluster Anda](https://docs.atlas.mongodb.com/monitoring-alerts/)
+ [Backu Up, Restore, dan Arsipkan Data](https://docs.atlas.mongodb.com/backup-restore-cluster/)

**GitHub repositori**
+ [Streaming data ke MongoDB Atlas menggunakan AWS Glue](https://github.com/mongodb-partners/Stream_Data_into_MongoDB_AWS_Glue?tab=readme-ov-file#troubleshooting)

# Peran transisi untuk PeopleSoft aplikasi Oracle di Amazon RDS Custom for Oracle
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle"></a>

*sampath kathirvel, Amazon Web Services*

## Ringkasan
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-summary"></a>

Untuk menjalankan solusi [Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) Enterprise Resource Planning (ERP) di Amazon Web Services (AWS), Anda dapat menggunakan [Amazon Relational Database Service (Amazon RDS)](https://aws.amazon.com/rds/) atau [Amazon RDS Custom for](https://aws.amazon.com/rds/custom/) Oracle, yang mendukung aplikasi lama, kustom, dan paket yang memerlukan akses ke sistem operasi (OS) dan lingkungan database yang mendasarinya. Untuk faktor kunci yang perlu dipertimbangkan saat merencanakan migrasi, lihat [Strategi migrasi database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) di AWS Prescriptive Guidance.

Pola ini berfokus pada langkah-langkah untuk melakukan peralihan Oracle Data Guard, atau transisi peran, untuk database PeopleSoft aplikasi yang berjalan di Amazon RDS Custom sebagai database utama dengan database replika baca. Pola ini mencakup langkah-langkah untuk mengonfigurasi [fast-start failover (](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-D26D79F2-0093-4C0E-98CD-224A5C8CBFA4)FSFO). Selama proses ini, database dalam konfigurasi Oracle Data Guard terus berfungsi dalam peran baru mereka. Kasus penggunaan umum untuk peralihan Oracle Data Guard adalah latihan pemulihan bencana (DR), aktivitas pemeliharaan terjadwal pada database, dan patch bergulir [Standby-First](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/upgrading-patching-downgrading-oracle-data-guard-configuration.html#GUID-A5226768-DB6B-4714-BB9A-0A3EF17A01C8) Patch Apply. Untuk informasi selengkapnya, lihat posting blog [Mengurangi waktu henti patching database di Amazon RDS](https://aws.amazon.com/blogs/database/reduce-database-patching-downtime-in-amazon-rds-custom-for-oracle-using-oracle-data-guard-standby-first-patch-apply/) Custom.

## Prasyarat dan batasan
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-prereqs"></a>

**Prasyarat**
+ Penyelesaian [Add HA ke Oracle PeopleSoft di Amazon RDS Custom dengan menggunakan pola replika baca](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.html).

**Keterbatasan**
+ Batasan dan konfigurasi yang tidak didukung untuk [RDS Custom for Oracle](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.limits)
+ Keterbatasan yang terkait dengan [Amazon RDS Custom untuk replika baca Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html#custom-rr.limitations)

**Versi produk**
+ Untuk versi Oracle Database yang didukung oleh Amazon RDS Custom, lihat [RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora) for Oracle.
+ Untuk kelas instans Oracle Database yang didukung oleh Amazon RDS Custom, lihat [dukungan kelas instans DB untuk RDS Custom for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances) Oracle.

## Arsitektur
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-architecture"></a>

**Tumpukan teknologi**
+ Amazon RDS Custom for Oracle

**Arsitektur target**

Diagram berikut menunjukkan instans Amazon RDS Custom DB dan replika baca Amazon RDS Custom. Oracle Data Guard menyediakan transisi peran selama failover untuk DR.

![\[Peralihan Oracle Data Guard untuk instance RDS Custom DB primer dengan database replika baca.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/da3b011c-1668-4de4-9079-0982888a74b4/images/4e2a2f3b-b5bd-44b7-9b5a-13a663ee3be6.png)


Untuk arsitektur representatif yang menggunakan Oracle PeopleSoft di AWS, lihat [Menyiapkan PeopleSoft arsitektur yang sangat tersedia di AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html).

## Alat
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-tools"></a>

**Layanan AWS**
+ [Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) adalah layanan database terkelola untuk aplikasi lama, kustom, dan paket yang memerlukan akses ke OS dan lingkungan database yang mendasarinya.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Dalam pola ini, Anda mengambil kata sandi pengguna database dari Secrets Manager untuk `RDS_DATAGUARD` dengan nama `do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg` rahasia.

**Layanan lainnya**
+ [Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7) membantu Anda membuat, memelihara, mengelola, dan memantau database siaga. Pola ini menggunakan Oracle Data Guard Maximum Performance untuk peran transisi ([Oracle Data](https://docs.oracle.com/database/121/DGBKR/sofo.htm#DGBKR330) Guard switchover).

## Praktik terbaik
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-best-practices"></a>

Untuk penerapan produksi Anda, sebaiknya luncurkan instance pengamat di Availability Zone ketiga, terpisah dari node replika primer dan baca.

## Epik
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-epics"></a>

### Memulai transisi peran
<a name="initiate-role-transition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jeda otomatisasi database untuk primer dan replika. | Meskipun kerangka kerja otomatisasi Kustom RDS tidak mengganggu proses transisi peran, itu adalah praktik yang baik untuk menjeda otomatisasi selama peralihan Oracle Data Guard.Untuk menjeda dan melanjutkan otomatisasi basis data Kustom RDS, ikuti petunjuk di [Menjeda dan melanjutkan otomatisasi Kustom RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing). | Administrator awan, DBA | 
| Periksa status Oracle Data Guard. | Untuk memeriksa status Oracle Data Guard, masuk ke database utama. Pola ini mencakup kode untuk menggunakan database kontainer multitenant (CDB) atau instance non-CDB.**Non-CDB**<pre>-bash-4.2$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Mon Nov 28 20:55:50 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 59 seconds ago)<br />DGMGRL></pre>**CDB**<pre>CDB-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 18 06:13:07 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 52 seconds ago)<br />DGMGRL></pre> | DBA | 
| Verifikasi peran instance. | Buka AWS Management Console, dan navigasikan ke konsol Amazon RDS. Di bagian **Replikasi** database, pada tab **Konektivitas & keamanan**, verifikasi peran instance untuk primer dan replika.Peran utama harus sesuai dengan database utama Oracle Data Guard, dan peran replika harus sesuai dengan database siaga fisik Oracle Data Guard. | Administrator awan, DBA | 
| Lakukan peralihan. | Untuk melakukan switchover, sambungkan ke `DGMGRL` dari simpul utama.**Non-CDB**<pre>DGMGRL> switchover to orcl_d;<br />Performing switchover NOW, please wait...<br />Operation requires a connection to database "orcl_d"<br />Connecting ...<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />New primary database "orcl_d" is opening...<br />Operation requires start up of instance "ORCL" on database "orcl_a"<br />Starting instance "ORCL"...<br />Connected to an idle instance.<br />ORACLE instance started.<br />Connected to "ORCL_A"<br />Database mounted.<br />Database opened.<br />Connected to "ORCL_A"<br />Switchover succeeded, new primary is "orcl_d"<br />DGMGRL>  </pre>**CDB**<pre>DGMGRL> switchover to rdscdb_b<br />Performing switchover NOW, please wait...<br />New primary database "rdscdb_b" is opening...<br />Operation requires start up of instance "RDSCDB" on database "rdscdb_a"<br />Starting instance "RDSCDB"...<br />Connected to an idle instance.<br />ORACLE instance started.<br />Connected to "RDSCDB_A"<br />Database mounted.<br />Database opened.<br />Connected to "RDSCDB_A"<br />Switchover succeeded, new primary is "rdscdb_b"</pre> | DBA | 
| Verifikasi koneksi Oracle Data Guard. | Setelah switchover, verifikasi koneksi Oracle Data Guard dari node utama ke. `DGMGRL`**Non-CDB**<pre>DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />orcl_a - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 60 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show configuration lag;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />orcl_a - Physical standby database <br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 44 seconds ago)<br />DGMGRL> </pre>**CDB**<pre>DGMGRL> show configuration<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_b - Primary database<br />    rdscdb_a - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 52 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show configuration lag<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_b - Primary database<br />    rdscdb_a - Physical standby database <br />               Transport Lag:      0 seconds (computed 0 seconds ago)<br />               Apply Lag:          0 seconds (computed 0 seconds ago)<br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 53 seconds ago)<br />DGMGRL></pre> | DBA | 
| Verifikasi peran instans di konsol Amazon RDS. | **Setelah Anda menjalankan sakelar peran, konsol Amazon RDS menampilkan peran baru di bawah bagian **Replikasi** pada tab **Konektivitas & Keamanan** di bawah Database.** Mungkin perlu beberapa menit agar **status Replikasi** diperbarui dari kosong ke **Replikasi**. | DBA | 

### Konfigurasikan FSFO
<a name="configure-fsfo"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Setel ulang peralihan. | Atur switchover kembali ke simpul utama. | DBA | 
| Instal dan mulai pengamat. | Proses pengamat adalah komponen `DGMGRL` klien, biasanya berjalan di mesin yang berbeda dari database primer dan siaga. Instalasi ORACLE HOME untuk pengamat dapat berupa instalasi Oracle Client Administrator, atau Anda dapat menginstal Oracle Database Enterprise Edition atau Personal Edition. Untuk informasi selengkapnya tentang penginstalan observer untuk rilis database Anda, lihat [Menginstal dan Memulai Observer](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-11EF3897-8FCA-4A54-B63B-E8C1668AE21B). Untuk mengonfigurasi ketersediaan tinggi untuk proses pengamat, Anda mungkin ingin melakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.html)Untuk Oracle 12c Release 2 dan yang lebih baru, Anda dapat menyebarkan hingga tiga pengamat. Satu pengamat adalah pengamat utama, dan sisanya adalah pengamat cadangan. Ketika pengamat utama gagal, salah satu pengamat cadangan mengambil peran utama. | DBA | 
| Connect ke DGMGRL dari host pengamat. | Host pengamat dikonfigurasi dengan `tnsnames.ora` entri untuk konektivitas basis data primer dan siaga. Anda dapat mengaktifkan FSFO dengan mode perlindungan kinerja maksimum selama kehilangan data berada dalam [FastStartFailoverLagLimit](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html)konfigurasi (nilai dalam detik), Namun, Anda harus menggunakan mode perlindungan ketersediaan maksimum untuk bekerja untuk mencapai nol kehilangan data (RPO = 0).**Non-CDB**<pre>DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 58 seconds ago)<br />DGMGRL> show configuration lag<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 0 seconds (computed 1 second ago)<br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 5 seconds ago)<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 18 06:55:09 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 18 seconds ago)<br />DGMGRL></pre> | DBA | 
| Ubah database siaga menjadi target failover. | Connect dari node primer atau node observer ke satu database siaga. (Meskipun onfiguration Anda dapat memiliki database siaga mulitiple, Anda hanya perlu terhubung ke satu saat ini.)**Non-CDB**<pre>DGMGRL> edit database orcl_a set property FastStartFailoverTarget='orcl_d';<br />Property "faststartfailovertarget" updated<br />DGMGRL> edit database orcl_d set property FastStartFailoverTarget='orcl_a';<br />Property "faststartfailovertarget" updated<br />DGMGRL> show database orcl_a FastStartFailoverTarget;<br />FastStartFailoverTarget = 'orcl_d'<br />DGMGRL> show database orcl_d FastStartFailoverTarget;<br />FastStartFailoverTarget = 'orcl_a'<br />DGMGRL></pre>**CDB**<pre>DGMGRL> edit database orcl_a set property FastStartFailoverTarget='rdscdb_b';<br />Object "orcl_a" was not found<br />DGMGRL> edit database rdscdb_a set property FastStartFailoverTarget='rdscdb_b';<br />Property "faststartfailovertarget" updated<br />DGMGRL> edit database rdscdb_b set property FastStartFailoverTarget='rdscdb_a';<br />Property "faststartfailovertarget" updated<br />DGMGRL> show database rdscdb_a FastStartFailoverTarget;<br />  FastStartFailoverTarget = 'rdscdb_b'<br />DGMGRL> show database rdscdb_b FastStartFailoverTarget;<br />  FastStartFailoverTarget = 'rdscdb_a'<br />DGMGRL></pre> | DBA | 
| Konfigurasikan FastStartFailoverThreshold untuk koneksi ke DGMGRL. | Nilai default adalah 30 detik di Oracle 19c, dan nilai minimum adalah 6 detik. Nilai yang lebih rendah berpotensi mempersingkat tujuan waktu pemulihan (RTO) selama failover. Nilai yang lebih tinggi membantu mengurangi kemungkinan kesalahan sementara failover yang tidak perlu pada database utama.Kerangka kerja otomatisasi RDS Custom for Oracle memantau kesehatan database dan melakukan tindakan korektif setiap beberapa detik. Oleh karena itu, kami merekomendasikan pengaturan FastStartFailoverThreshold ke nilai yang lebih tinggi dari 10 detik. Contoh berikut mengkonfigurasi nilai ambang pada 35 detik.**Non-CBD atau CDB**<pre>DGMGRL> edit configuration set property FastStartFailoverThreshold=35;<br />Property "faststartfailoverthreshold" updated<br />DGMGRL> show configuration FastStartFailoverThreshold;<br />FastStartFailoverThreshold = '35'<br />DGMGRL></pre> | DBA | 
| Aktifkan FSFO dengan menghubungkan ke DGMGRL dari simpul primer atau pengamat. | Jika database tidak mengaktifkan [Flashback Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/rcmrf/FLASHBACK-DATABASE.html#GUID-584AC79A-40C5-45CA-8C63-DED3BE3A4511), pesan peringatan akan `ORA-16827` muncul. Database flashback opsional membantu secara otomatis mengembalikan database primer yang gagal ke titik waktu sebelum failover jika properti [FastStartFailoverAutoReinstate](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html#GUID-824E97C0-EEB0-4E1B-BD4A-F5AE282CEA28)konfigurasi disetel ke `TRUE` (yang merupakan default).**Non-CDB**<pre>DGMGRL> enable fast_start failover;<br />Warning: ORA-16827: Flashback Database is disabled<br />Enabled in Zero Data Loss Mode.<br />DGMGRL> <br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />Warning: ORA-16819: fast-start failover observer not started<br />orcl_d - (*) Physical standby database <br />Warning: ORA-16819: fast-start failover observer not started<br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING (status updated 29 seconds ago)<br />DGMGRL></pre>**CDB**<pre>DGMGRL> enable fast_start failover;<br />Warning: ORA-16827: Flashback Database is disabled<br />Enabled in Zero Data Loss Mode.<br />DGMGRL> show configuration;<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    Warning: ORA-16819: fast-start failover observer not started<br />    rdscdb_b - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING   (status updated 11 seconds ago)<br />DGMGRL></pre> | DBA | 
| Mulai pengamat untuk pemantauan FSFO, dan verifikasi statusnya. | Anda dapat memulai pengamat sebelum atau setelah Anda mengaktifkan FSFO. Jika FSFO sudah diaktifkan, pengamat segera mulai memantau status dan koneksi ke basis data siaga utama dan target. Jika FSFO tidak diaktifkan, pengamat tidak memulai pemantauan sampai setelah FSFO diaktifkan.Ketika Anda memulai pengamat, konfigurasi DB utama akan ditampilkan tanpa pesan kesalahan, sebagaimana dibuktikan oleh perintah sebelumnya. `show configuration`**Non-CDB**<pre>DGMGRL> start observer;<br />[W000 2022-12-01T06:16:51.271+00:00] FSFO target standby is orcl_d<br />Observer 'ip-10-0-1-89' started<br />[W000 2022-12-01T06:16:51.352+00:00] Observer trace level is set to USER<br /><br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />SUCCESS (status updated 56 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show observer<br />Configuration - rds_dg<br />Primary: orcl_a<br />Active Target: orcl_d<br />Observer "ip-10-0-1-89" - Master<br />Host Name: ip-10-0-1-89<br />Last Ping to Primary: 1 second ago<br />Last Ping to Target: 1 second ago<br />DGMGRL></pre>**CDB**<pre>DGMGRL> start observer;<br />Succeeded in opening the observer file "/home/oracle/fsfo_ip-10-0-1-56.dat".<br />[W000 2023-01-18T07:31:32.589+00:00] FSFO target standby is rdscdb_b<br />Observer 'ip-10-0-1-56' started<br />The observer log file is '/home/oracle/observer_ip-10-0-1-56.log'.<br /><br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />SUCCESS   (status updated 12 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show observer;<br />Configuration - rds_dg<br />  Primary:            rdscdb_a<br />  Active Target:      rdscdb_b<br />Observer "ip-10-0-1-56" - Master<br />  Host Name:                    ip-10-0-1-56<br />  Last Ping to Primary:         1 second ago<br />  Last Ping to Target:          2 seconds ago<br />DGMGRL></pre> | DBA | 
| Verifikasi failover. | Dalam skenario ini, tes failover dapat dilakukan dengan menghentikan EC2 instance utama secara manual. Sebelum menghentikan EC2 instance, gunakan `tail` perintah untuk memantau file log pengamat berdasarkan konfigurasi Anda. Gunakan `DGMGRL` untuk masuk ke database siaga `orcl_d` dengan pengguna`RDS_DATAGUARD`, dan periksa status Oracle Data Guard. Ini harus menunjukkan bahwa `orcl_d` adalah basis data utama yang baru.Dalam skenario pengujian failover ini, `orcl_d` adalah database non-CDB.Sebelum failover, database flashback telah diaktifkan. `orcl_a` Setelah database primer sebelumnya kembali online dan dimulai dalam `MOUNT` keadaan, pengamat mengembalikannya ke database siaga baru. Database yang dipulihkan bertindak sebagai target FSFO untuk database utama baru. Anda dapat memverifikasi detailnya di log pengamat.<pre>DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />Warning: ORA-16824: multiple warnings, including fast-start failover-related warnings, detected for the database<br />orcl_a - (*) Physical standby database (disabled)<br />ORA-16661: the standby database needs to be reinstated<br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING (status updated 25 seconds ago)<br />DGMGRL></pre>Berikut ini menunjukkan contoh output di`observer.log`.<pre>$ tail -f /tmp/observer.log<br />Unable to connect to database using rds_custom_orcl_a<br />[W000 2023-01-18T07:50:32.589+00:00] Primary database cannot be reached.<br />[W000 2023-01-18T07:50:32.589+00:00] Fast-Start Failover threshold has expired.<br />[W000 2023-01-18T07:50:32.590+00:00] Try to connect to the standby.<br />[W000 2023-01-18T07:50:32.590+00:00] Making a last connection attempt to primary database before proceeding with Fast-Start Failover.<br />[W000 2023-01-18T07:50:32.591+00:00] Check if the standby is ready for failover.<br />[S002 2023-01-18T07:50:32.591+00:00] Fast-Start Failover started...<br />2023-01-18T07:50:32.591+00:00<br />Initiating Fast-Start Failover to database "orcl_d"...<br />[S002 2023-01-18T07:50:32.592+00:00] Initiating Fast-start Failover.<br />Performing failover NOW, please wait...<br />Failover succeeded, new primary is "orcl_d"<br />2023-01-18T07:55:32.101+00:00<br />[S002 2023-01-18T07:55:32.591+00:00] Fast-Start Failover finished...<br />[W000 2023-01-18T07:55:32.591+00:00] Failover succeeded. Restart pinging.<br />[W000 2023-01-18T07:55:32.603+00:00] Primary database has changed to orcl_d.<br />[W000 2023-01-18T07:55:33.618+00:00] Try to connect to the primary.<br />[W000 2023-01-18T07:55:33.622+00:00] Try to connect to the primary rds_custom_orcl_d.<br />[W000 2023-01-18T07:55:33.634+00:00] The standby orcl_a needs to be reinstated<br />[W000 2023-01-18T07:55:33.654+00:00] Try to connect to the new standby orcl_a.<br />[W000 2023-01-18T07:55:33.654+00:00] Connection to the primary restored!<br />[W000 2023-01-18T07:55:35.654+00:00] Disconnecting from database rds_custom_orcl_d.<br />[W000 2023-01-18T07:55:57.701+00:00] Try to connect to the new standby orcl_a.<br />ORA-12170: TNS:Connect timeout occurred</pre> | DBA | 

### Konfigurasikan konektivitas antara aplikasi Oracle Peoplesoft dan database
<a name="configure-connectivity-between-the-oracle-peoplesoft-application-and-the-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan mulai layanan di database utama. | Anda dapat menghindari perubahan konfigurasi aplikasi selama transisi peran dengan menggunakan entri TNS yang berisi titik akhir basis data primer dan siaga dalam konfigurasi. Anda dapat menentukan dua layanan basis data berbasis peran untuk mendukung keduanya read/write dan beban kerja hanya-baca. Dalam contoh berikut, `orcl_rw` adalah read/write layanan yang aktif pada database utama. `orcl_ro`adalah layanan hanya-baca dan aktif pada database siaga yang telah dibuka dalam mode hanya-baca.<pre>SQL> select name,open_mode from v$database;<br />NAME OPEN_MODE<br />--------- --------------------<br />ORCL READ WRITE<br />SQL> exec dbms_service.create_service('orcl_rw','orcl_rw');<br />PL/SQL procedure successfully completed.<br />SQL> exec dbms_service.create_service('orcl_ro','orcl_ro');<br />PL/SQL procedure successfully completed.<br /><br />SQL> exec dbms_service.start_service('orcl_rw');<br />PL/SQL procedure successfully completed.<br />SQL></pre> | DBA | 
| Mulai layanan di database siaga. | Untuk memulai layanan dalam database siaga read-only, gunakan kode berikut.<pre>SQL> select name,open_mode from v$database;<br />NAME OPEN_MODE<br />--------- --------------------<br />ORCL READ ONLY WITH APPLY<br />SQL> exec dbms_service.start_service('orcl_ro');<br />PL/SQL procedure successfully completed.<br />SQL></pre> | DBA | 
| Otomatiskan memulai layanan saat DB utama dimulai ulang. | Untuk memulai layanan secara otomatis di database utama saat dimulai ulang, gunakan kode berikut.<pre>SQL> CREATE OR REPLACE TRIGGER TrgDgServices after startup on database<br />DECLARE<br />db_role VARCHAR(30);<br />db_open_mode VARCHAR(30);<br />BEGIN<br />SELECT DATABASE_ROLE, OPEN_MODE INTO db_role, db_open_mode FROM V$DATABASE;<br />IF db_role = 'PRIMARY' THEN<br />DBMS_SERV 2 ICE.START_SERVICE('orcl_rw');<br />END IF;<br />IF db_role = 'PHYSICAL STANDBY' AND db_open_mode LIKE 'READ ONLY%' THEN<br />DBMS_SERVICE.START_SERVICE('orcl_ro');<br />END IF;<br />END;<br />/ <br />Trigger created.<br />SQL> </pre> | DBA | 
| Konfigurasikan koneksi antara database read-only read/write dan read-only. | Anda dapat menggunakan contoh konfigurasi aplikasi berikut untuk koneksi read/write dan hanya-baca.<pre>ORCL_RW = (DESCRIPTION =<br />(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)(HOST=devpsftdb.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />(ADDRESS = (PROTOCOL = TCP)(HOST=psftread.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />)<br />(CONNECT_DATA=(SERVICE_NAME = orcl_rw))<br />)<br />ORCL_RO = (DESCRIPTION =<br />(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)(HOST=devpsftdb.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />(ADDRESS = (PROTOCOL = TCP)(HOST=psftread.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />)<br />(CONNECT_DATA=(SERVICE_NAME = orcl_ro))<br />)</pre> | DBA | 

## Sumber daya terkait
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-resources"></a>
+ [Mengaktifkan Ketersediaan Tinggi dengan Data Guard di Amazon RDS Custom for Oracle (Panduan Teknis AWS)](https://d1.awsstatic.com/whitepapers/enabling-high-availability-with-data-guard-on-amazon-rds-custom-for-oracle.pdf)
+ [Mengonfigurasi Amazon RDS sebagai Oracle Database PeopleSoft (whitepaper AWS)](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf)
+ [Panduan Oracle Data Guard Broker](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/index.html) (dokumentasi referensi Oracle)
+ [Konsep dan Administrasi Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/index.html) (dokumentasi referensi Oracle)
+ [Persyaratan Konfigurasi FAN dan FCF Khusus Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-DFFDAA2B-A889-49AD-AB85-747D73FF0FF5) (dokumentasi referensi Oracle)

# Membongkar data dari klaster Amazon Redshift di seluruh akun ke Amazon S3
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3"></a>

*Andrew Kamel, Amazon Web Services*

## Ringkasan
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-summary"></a>

Saat Anda menguji aplikasi, akan sangat membantu jika memiliki data produksi di lingkungan pengujian Anda. Menggunakan data produksi dapat memberi Anda penilaian yang lebih akurat tentang aplikasi yang sedang Anda kembangkan.

Pola ini mengekstrak data dari klaster Amazon Redshift di lingkungan produksi ke bucket Amazon Simple Storage Service (Amazon S3) di lingkungan pengembangan di Amazon Web Services ().AWS

Pola langkah-langkah melalui pengaturan akun DEV dan PROD, termasuk yang berikut:
+ Sumber daya yang dibutuhkan
+ AWS Identity and Access Management Peran (IAM)
+ Penyesuaian jaringan untuk subnet, grup keamanan, dan virtual private cloud (VPC) untuk mendukung koneksi Amazon Redshift
+ Contoh AWS Lambda fungsi dengan runtime Python untuk menguji arsitektur

Untuk memberikan akses ke klaster Amazon Redshift, pola tersebut digunakan AWS Secrets Manager untuk menyimpan kredensil yang relevan. Manfaatnya adalah memiliki semua informasi yang diperlukan untuk terhubung langsung ke cluster Amazon Redshift tanpa perlu mengetahui di mana cluster Amazon Redshift berada. Selain itu, Anda dapat [memantau penggunaan rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html).

Rahasia yang disimpan di Secrets Manager mencakup host cluster Amazon Redshift, nama database, port, dan kredenal yang relevan.

Untuk informasi tentang pertimbangan keamanan saat menggunakan pola ini, lihat bagian [Praktik terbaik](#unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-best-practices).

## Prasyarat dan batasan
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-prereqs"></a>

**Prasyarat**
+ [Cluster Amazon Redshift yang berjalan](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html) di akun PROD
+ [Bucket S3 yang dibuat](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di akun DEV
+ [VPC mengintip](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html) [antara akun DEV dan PROD, dengan tabel rute yang disesuaikan](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-routing.html)
+ [Nama host DNS dan resolusi DNS diaktifkan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html) untuk kedua peered VPCs

**Batasan**
+ Bergantung pada jumlah data yang ingin Anda kueri, fungsi Lambda mungkin habis waktu.

  Jika proses Anda membutuhkan waktu lebih lama daripada batas waktu maksimum Lambda (15 menit), gunakan pendekatan asinkron untuk kode Lambda Anda. Contoh kode untuk pola ini menggunakan pustaka [psycopg2](https://github.com/psycopg/psycopg2) untuk Python, yang saat ini tidak mendukung pemrosesan asinkron.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-architecture"></a>

Diagram berikut menunjukkan arsitektur target, dengan akun DEV dan PROD.

![\[VPC Lambda di akun DEV dan VPC Amazon Redshift di akun PROD.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5c83c617-3a85-4aea-a7a7-930f406d1cef/images/fa4d01df-483d-4454-9711-b391ebbe4629.png)


Diagram menunjukkan alur kerja berikut:

1. Fungsi Lambda di akun DEV mengasumsikan peran IAM yang diperlukan untuk mengakses kredensil Amazon Redshift di Secrets Manager di akun PROD.

   Fungsi Lambda kemudian mengambil rahasia cluster Amazon Redshift.

1. Fungsi Lambda di akun DEV menggunakan informasi untuk terhubung ke cluster Amazon Redshift di akun PROD melalui peered. VPCs

   Fungsi Lambda kemudian mengirimkan perintah unload untuk menanyakan cluster Amazon Redshift di akun PROD.

1. Cluster Amazon Redshift di akun PROD mengasumsikan peran IAM yang relevan untuk mengakses bucket S3 di akun DEV.

   Cluster Amazon Redshift membongkar data kueri ke bucket S3 di akun DEV.

**Meminta data dari Amazon Redshift**

Diagram berikut menunjukkan peran yang digunakan untuk mengambil kredenal Amazon Redshift dan terhubung ke cluster Amazon Redshift. Alur kerja diprakarsai oleh fungsi Lambda.

![\[Proses tiga langkah untuk mengasumsikan peran di seluruh akun.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5c83c617-3a85-4aea-a7a7-930f406d1cef/images/ab25b72c-773c-4d58-9012-4a3755c181ff.png)


Diagram menunjukkan alur kerja berikut:

1. `CrossAccount-SM-Read-Role`Dalam akun DEV mengasumsikan `SM-Read-Role` di akun PROD.

1. `SM-Read-Role`Peran menggunakan kebijakan terlampir untuk mengambil rahasia dari Secrets Manager.

1. Kredensialnya digunakan untuk mengakses kluster Amazon Redshift.

**Mengunggah data ke Amazon S3**

Diagram berikut menunjukkan proses baca-tulis lintas akun untuk mengekstrak data dan mengunggahnya ke Amazon S3. Alur kerja diprakarsai oleh fungsi Lambda. Pola ini [merantai peran IAM di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html#authorizing-redshift-service-chaining-roles). Perintah unload yang berasal dari cluster Amazon Redshift mengasumsikan, dan kemudian `CrossAccount-S3-Write-Role` mengasumsikan. `S3-Write-Role` Rantai peran ini memberi Amazon Redshift akses ke Amazon S3.

![\[Peran yang mendapatkan kredensil, mengakses Amazon Redshift, dan mengunggah data ke Amazon S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5c83c617-3a85-4aea-a7a7-930f406d1cef/images/d2982fc6-1d12-4f9d-9493-a99ce691d693.png)


Alur kerja mencakup langkah-langkah berikut:

1. `CrossAccount-SM-Read-Role`Dalam akun DEV mengasumsikan `SM-Read-Role` di akun PROD.

1. Ini `SM-Read-Role` mengambil kredensi Amazon Redshift dari Secrets Manager.

1. Fungsi Lambda terhubung ke cluster Amazon Redshift dan mengirimkan kueri.

1. Cluster Amazon Redshift mengasumsikan. `CrossAccount-S3-Write-Role`

1. `CrossAccount-S3-Write-Role`Mengasumsikan `S3-Write-Role` di akun DEV.

1. Hasil kueri diturunkan ke bucket S3 di akun DEV.

## Alat
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-tools"></a>

**Layanan AWS**
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Redshift adalah layanan](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) gudang data skala petabyte terkelola di AWS Cloud.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [unload-redshift-to-s3-python](https://github.com/aws-samples/unload-redshift-to-s3-python/).

## Praktik terbaik
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-best-practices"></a>

**Penafian keamanan**

Sebelum Anda menerapkan solusi ini, pertimbangkan rekomendasi keamanan penting berikut:
+ Ingatlah bahwa menghubungkan akun pengembangan dan produksi dapat meningkatkan cakupan dan menurunkan postur keamanan secara keseluruhan. Kami merekomendasikan untuk menerapkan solusi ini hanya sementara, mengekstrak bagian data yang diperlukan dan kemudian segera menghancurkan sumber daya yang digunakan. Untuk menghancurkan sumber daya, Anda harus menghapus fungsi Lambda, menghapus peran dan kebijakan IAM yang dibuat untuk solusi ini, dan mencabut akses jaringan apa pun yang diberikan di antara akun.
+ Konsultasikan dengan tim keamanan dan kepatuhan Anda sebelum menyalin data apa pun dari produksi ke lingkungan pengembangan. Informasi identitas pribadi (PII), Informasi kesehatan yang dilindungi (PHI), dan data rahasia atau teregulasi lainnya umumnya tidak boleh disalin dengan cara ini. Salin hanya informasi non-rahasia yang tersedia untuk umum (misalnya, data stok publik dari frontend toko). Pertimbangkan untuk mentokenisasi atau menganonimkan data, atau menghasilkan data uji sintetis, alih-alih menggunakan data produksi bila memungkinkan. Salah satu [prinsip AWS keamanan](https://docs.aws.amazon.com/en_us/wellarchitected/2022-03-31/framework/sec-design.html) adalah menjauhkan orang dari data. Dengan kata lain, pengembang tidak boleh melakukan operasi di akun produksi.
+ Batasi akses ke fungsi Lambda di akun pengembangan karena dapat membaca data dari cluster Amazon Redshift di lingkungan produksi.
+ Untuk menghindari gangguan lingkungan produksi, terapkan rekomendasi berikut:
  + Gunakan akun pengembangan khusus yang terpisah untuk kegiatan pengujian dan pengembangan.
  + Menerapkan kontrol akses jaringan yang ketat dan membatasi lalu lintas antar akun hanya untuk apa yang diperlukan.
  + Memantau dan mengaudit akses ke lingkungan produksi dan sumber data.
  + Menerapkan kontrol akses dengan hak istimewa paling rendah untuk semua sumber daya dan layanan yang terlibat.
  + Tinjau dan putar kredenal secara teratur, seperti AWS Secrets Manager rahasia dan kunci akses peran IAM.
+ Lihat dokumentasi keamanan berikut untuk layanan yang digunakan dalam artikel ini:
  + [AWS Lambda keamanan](https://docs.aws.amazon.com/lambda/latest/dg/lambda-security.html)
  + [Keamanan Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/iam-redshift-user-mgmt.html)
  + [Keamanan Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security.html)
  + [AWS Secrets Manager keamanan](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security.html)
  + [Praktik terbaik keamanan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)

Keamanan adalah prioritas utama saat mengakses data dan sumber daya produksi. Selalu ikuti praktik terbaik, terapkan kontrol akses dengan hak istimewa, dan tinjau dan perbarui langkah-langkah keamanan Anda secara teratur.

## Epik
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-epics"></a>

### Data kueri dari Amazon Redshift
<a name="query-data-from-amazon-redshift"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat rahasia untuk cluster Amazon Redshift. | Untuk membuat rahasia untuk cluster Amazon Redshift, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Buat peran untuk mengakses Secrets Manager. | Untuk membuat peran, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 

### Mengunggah data ke Amazon S3
<a name="upload-data-to-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran untuk mengakses bucket S3. | Untuk membuat peran untuk mengakses bucket S3, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Buat peran Amazon Redshift. | Untuk membuat peran Amazon Redshift, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 

### Deploy fungsi Lambda
<a name="deploy-the-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan fungsi Lambda. | Untuk menerapkan fungsi Lambda di VPC peered, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 

### Uji arsitekturnya
<a name="test-the-architecture"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Impor sumber daya yang dibutuhkan. | Untuk mengimpor sumber daya yang diperlukan, jalankan perintah berikut:<pre>import ast<br />import boto3<br />import psycopg2<br />import base64<br />from botocore.exceptions import ClientError</pre> | Pengembang aplikasi | 
| Jalankan fungsi handler Lambda. | Fungsi Lambda menggunakan AWS Security Token Service (AWS STS) untuk akses lintas akun dan manajemen kredensi sementara. Fungsi ini menggunakan operasi AssumeRole API untuk sementara mengasumsikan izin peran `sm_read_role` IAM.Untuk menjalankan fungsi Lambda, gunakan kode contoh berikut:<pre>def lambda_handler(event, context):<br />    sts_client = boto3.client('sts')<br /><br />    # Secrets Manager Configurations<br />    secret_name = "redshift_creds"<br />    sm_region = "eu-west-1"<br />    sm_read_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/SM-Read-Role"<br /><br />    # S3 Bucket Configurations<br />    s3_bucket_path = "s3://mybucket/"<br />    s3_bucket_region = "eu-west-1"<br />    s3_write_role = "arn:aws:iam::DEV_ACCOUNT_NUMBER:role/S3-Write-Role"<br /><br />    # Redshift Configurations<br />    sql_query = "select * from category"<br />    redshift_db = "dev"<br />    redshift_s3_write_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/CrossAccount-S3-Write-Role"<br /><br />    chained_s3_write_role = "%s,%s" % (redshift_s3_write_role, s3_write_role)<br /><br />    assumed_role_object = sts_client.assume_role(<br />        RoleArn=sm_read_role,<br />        RoleSessionName="CrossAccountRoleAssumption",<br />        ExternalId="YOUR_EXTERNAL_ID",<br />    )<br />    credentials = assumed_role_object['Credentials']<br /><br />    secret_dict = ast.literal_eval(get_secret(credentials, secret_name, sm_region))<br />    execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db)<br /><br />    return {<br />        'statusCode': 200<br />    }</pre> | Pengembang aplikasi | 
| Dapatkan rahasianya. | Untuk mendapatkan rahasia Amazon Redshift, gunakan kode contoh berikut:<pre>def get_secret(credentials, secret_name, sm_region):<br />    # Create a Secrets Manager client<br />    session = boto3.session.Session()<br />    sm_client = session.client(<br />        service_name='secretsmanager',<br />        aws_access_key_id=credentials['AccessKeyId'],<br />        aws_secret_access_key=credentials['SecretAccessKey'],<br />        aws_session_token=credentials['SessionToken'],<br />        region_name=sm_region<br />    )<br /><br />    try:<br />        get_secret_value_response = sm_client.get_secret_value(<br />            SecretId=secret_name<br />        )<br />    except ClientError as e:<br />        print(e)<br />        raise e<br />    else:<br />        if 'SecretString' in get_secret_value_response:<br />            return get_secret_value_response['SecretString']<br />        else:<br />            return base64.b64decode(get_secret_value_response['SecretBinary'])</pre> | Pengembang aplikasi | 
| Jalankan perintah bongkar muat. | Untuk membongkar data ke bucket S3, gunakan kode contoh berikut.<pre>def execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db):<br />    conn_string = "dbname='%s' port='%s' user='%s' password='%s' host='%s'" \<br />                  % (redshift_db,<br />                     secret_dict["port"],<br />                     secret_dict["username"],<br />                     secret_dict["password"],<br />                     secret_dict["host"])<br /><br />    con = psycopg2.connect(conn_string)<br /><br />    unload_command = "UNLOAD ('{}') TO '{}' IAM_ROLE '{}' DELIMITER '|' REGION '{}';" \<br />        .format(sql_query,<br />                s3_bucket_path + str(datetime.datetime.now()) + ".csv",<br />                chained_s3_write_role,<br />                s3_bucket_region)<br /><br />    # Opening a cursor and run query<br />    cur = con.cursor()<br />    cur.execute(unload_command)<br /><br />    print(cur.fetchone())<br />    cur.close()<br />    con.close()</pre> | Pengembang aplikasi | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus fungsi Lambda. | Untuk menghindari biaya yang tidak direncanakan, hapus sumber daya dan koneksi antara akun DEV dan PROD.Untuk menghapus fungsi Lambda, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Hapus peran dan kebijakan IAM. | Hapus peran dan kebijakan IAM dari akun DEV dan PROD.Di akun DEV, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html)Di akun PROD, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Hapus rahasia di Secrets Manager. | Untuk menghapus rahasia, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Hapus peering VPC dan aturan grup keamanan. | Untuk menghapus aturan VPC peering dan grup keamanan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Hapus data dari bucket S3. | Untuk menghapus data dari Amazon S3, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Bersihkan AWS KMS kunci. | Jika Anda membuat AWS KMS kunci khusus untuk enkripsi, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 
| Tinjau dan hapus CloudWatch log Amazon. | Untuk menghapus CloudWatch log, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.html) | DevOps insinyur | 

## Sumber daya terkait
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-resources"></a>
+ [ CloudWatch Dokumentasi Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [Dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)
+ [Dokumentasi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+ [Dokumentasi Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)
+ [Dokumentasi Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS Secrets Manager dokumentasi](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS prinsip keamanan](https://docs.aws.amazon.com/en_us/wellarchitected/2022-03-31/framework/sec-design.html)

## Informasi tambahan
<a name="unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3-additional"></a>

Setelah Anda membongkar data dari Amazon Redshift ke Amazon S3, Anda dapat menganalisisnya dengan menggunakan Amazon Athena.

[Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) adalah layanan kueri data besar yang bermanfaat ketika Anda perlu mengakses data dalam jumlah besar. Anda dapat menggunakan Athena tanpa harus menyediakan server atau database. Athena mendukung kueri yang kompleks, dan Anda dapat menjalankannya pada objek yang berbeda.

Seperti kebanyakan Layanan AWS, manfaat utama menggunakan Athena adalah memberikan fleksibilitas yang besar dalam cara Anda menjalankan kueri tanpa kerumitan tambahan. Saat Anda menggunakan Athena, Anda dapat menanyakan tipe data yang berbeda, seperti CSV dan JSON, di Amazon S3 tanpa mengubah tipe data. Anda dapat meminta data dari berbagai sumber, termasuk di luar AWS. Athena mengurangi kompleksitas karena Anda tidak perlu mengelola server. Athena membaca data langsung dari Amazon S3 tanpa memuat atau mengubah data sebelum Anda menjalankan kueri.

# Pola migrasi database berdasarkan beban kerja
<a name="databases-database-migration-patterns-by-workload-pattern-list"></a>

**Topics**
+ [IBM](databases-database-migration-patterns-by-workload-ibm-pattern-list.md)
+ [Microsoft](databases-database-migration-patterns-by-workload-microsoft-pattern-list.md)
+ [N/A](databases-database-migration-patterns-by-workload-notapplicable-pattern-list.md)
+ [Sumber terbuka](databases-database-migration-patterns-by-workload-open-source-pattern-list.md)
+ [Oracle](databases-database-migration-patterns-by-workload-oracle-pattern-list.md)
+ [SAP](databases-database-migration-patterns-by-workload-sap-pattern-list.md)

# IBM
<a name="databases-database-migration-patterns-by-workload-ibm-pattern-list"></a>

**Topics**
+ [Migrasikan database Db2 dari Amazon ke EC2 Aurora MySQL yang kompatibel dengan menggunakan AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migrasi Db2 untuk LUW ke EC2 Amazon dengan menggunakan pengiriman log untuk mengurangi waktu pemadaman](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migrasikan Db2 untuk LUW ke Amazon EC2 dengan pemulihan bencana ketersediaan tinggi](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Bermigrasi dari IBM Db2 di Amazon EC2 ke Aurora PostgreSQL yang kompatibel dengan menggunakan AWS DMS dan AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)
+ [Streaming data dari IBM Db2, SAP, Sybase, dan database lainnya ke MongoDB Atlas AWS](stream-data-from-ibm-db2-to-mongodb-atlas.md)

# Microsoft
<a name="databases-database-migration-patterns-by-workload-microsoft-pattern-list"></a>

**Topics**
+ [Mempercepat penemuan dan migrasi beban kerja Microsoft ke AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Mengakses tabel Microsoft SQL Server lokal dari Microsoft SQL Server di Amazon EC2 menggunakan server tertaut](access-on-premises-microsoft-sql-server-tables-from-microsoft-sql-server-on-amazon-ec2-using-linked-servers.md)
+ [Menilai kinerja kueri untuk memigrasi database SQL Server ke MongoDB Atlas di AWS](assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws.md)
+ [Mengotomatiskan tugas database dalam edisi SQL Server Express yang berjalan di Amazon EC2 dengan menggunakan AWS Lambda dan Penjadwal Tugas](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Ubah aplikasi Python dan Perl untuk mendukung migrasi database dari Microsoft SQL Server ke Amazon Aurora PostgreSQL Edisi yang kompatibel](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)
+ [Konfigurasikan perutean hanya-baca dalam grup ketersediaan Selalu Aktif di SQL Server di AWS](configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.md)
+ [Konfigurasikan otentikasi Windows untuk Amazon RDS untuk Microsoft SQL Server menggunakan AWS Managed Microsoft AD](configure-windows-authentication-for-amazon-rds-using-microsoft-ad.md)
+ [Buat CloudFormation templat AWS untuk tugas AWS DMS menggunakan Microsoft Excel dan Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Menerapkan instance cluster failover SQL Server di Amazon EC2 dan Amazon FSx dengan menggunakan Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Ekspor database Microsoft SQL Server ke Amazon S3 dengan menggunakan AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Ekspor Amazon RDS untuk tabel SQL Server ke bucket S3 dengan menggunakan AWS DMS](export-amazon-rds-for-sql-server-tables-to-an-s3-bucket-by-using-aws-dms.md)
+ [Menerapkan SHA1 hashing untuk data PII saat bermigrasi dari SQL Server ke PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Menyerap dan memigrasikan instans EC2 Windows ke akun AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Mengatur cluster failover Microsoft SQL Server di Amazon EC2 menggunakan Windows FSx File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Memigrasikan antrian pesan dari Microsoft Azure Service Bus ke Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Migrasi database Microsoft SQL Server dari Amazon EC2 ke Amazon DocumentDB dengan menggunakan AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migrasikan database Microsoft SQL Server ke Aurora MySQL dengan menggunakan AWS DMS dan AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migrasi aplikasi.NET dari Microsoft Azure App Service ke AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan server tertaut](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan metode pencadangan dan pemulihan asli](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan agen ekstraksi data AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Microsoft SQL Server di Amazon yang menjalankan Linux EC2](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Migrasi data dari Microsoft Azure Blob ke Amazon S3 dengan menggunakan Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migrasi aplikasi yang dihosting IIS ke Amazon dengan menggunakan appcmd.exe EC2](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Migrasi grup ketersediaan Microsoft SQL Server Always On menggunakan AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2 menggunakan Layanan Migrasi Aplikasi](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migrasi database relasional ke MongoDB Atlas di AWS](migrate-relational-database-to-mongodb-atlas.md)
+ [Migrasikan SQL Server ke AWS menggunakan grup ketersediaan terdistribusi](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Migrasikan sertifikat SSL Windows ke Application Load Balancer menggunakan ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Menghosting ulang beban kerja lokal di AWS Cloud: daftar periksa migrasi](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Mengatasi kesalahan koneksi setelah memigrasikan Microsoft SQL Server ke AWS Cloud](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Mengirim pemberitahuan untuk instans database Amazon RDS for SQL Server dengan menggunakan server SMTP lokal dan Database Mail](send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.md)
+ [Siapkan CI/CD pipeline untuk migrasi database dengan menggunakan Terraform](set-up-ci-cd-pipeline-for-db-migration-with-terraform.md)
+ [Menyiapkan infrastruktur Multi-AZ untuk SQL Server Always On FCI dengan menggunakan Amazon FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)

# N/A
<a name="databases-database-migration-patterns-by-workload-notapplicable-pattern-list"></a>

**Topics**
+ [Membuat proses persetujuan untuk permintaan firewall selama migrasi rehost ke AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)
+ [Enkripsi Amazon RDS yang ada untuk instans DB Amazon RDS for PostgreSQL](encrypt-an-existing-amazon-rds-for-postgresql-db-instance.md)
+ [Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB](estimate-storage-costs-for-an-amazon-dynamodb-table.md)
+ [Menerapkan pemulihan bencana lintas wilayah dengan AWS DMS dan Amazon Aurora](implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.md)

# Sumber terbuka
<a name="databases-database-migration-patterns-by-workload-open-source-pattern-list"></a>

**Topics**
+ [Secara otomatis menghasilkan model PynamoDB dan fungsi CRUD untuk Amazon DynamoDB dengan menggunakan aplikasi Python](automatically-generate-a-pynamodb-model-and-crud-functions-for-amazon-dynamodb-by-using-a-python-application.md)
+ [Connect dengan menggunakan terowongan SSH di pgAdmin](connect-by-using-an-ssh-tunnel-in-pgadmin.md)
+ [Buat pengguna dan peran aplikasi di Aurora PostgreSQL yang kompatibel](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Aktifkan koneksi terenkripsi untuk instans PostgreSQL DB di Amazon RDS](enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.md)
+ [Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dengan dan menggunakan dan AWS SCT AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Memigrasi database MariaDB lokal ke Amazon RDS for MariaDB menggunakan alat bawaan](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Memigrasikan database MySQL lokal ke Amazon EC2](migrate-an-on-premises-mysql-database-to-amazon-ec2.md)
+ [Memigrasikan database MySQL lokal ke Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Memigrasikan database MySQL lokal ke Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Memigrasikan database PostgreSQL lokal ke Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Memigrasikan database Couchbase Server ke Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2 dengan Auto Scaling](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Oracle dan AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.md)
+ [Bermigrasi dari PostgreSQL di Amazon ke Amazon RDS untuk PostgreSQL menggunakan pglogical EC2](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Migrasikan aplikasi Java lokal ke AWS menggunakan AWS App2Container](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migrasikan database MySQL lokal ke Aurora MySQL menggunakan Percona, Amazon EFS, dan Amazon S3 XtraBackup](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migrasikan tabel eksternal Oracle ke Amazon Aurora PostgreSQL yang kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migrasikan fungsi dan prosedur Oracle yang memiliki lebih dari 100 argumen ke PostgreSQL](migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql.md)
+ [Migrasikan beban kerja Redis ke Redis Enterprise Cloud di AWS](migrate-redis-workloads-to-redis-enterprise-cloud-on-aws.md)
+ [Pantau Amazon Aurora untuk instance tanpa enkripsi](monitor-amazon-aurora-for-instances-without-encryption.md)
+ [Mulai ulang AWS Replication Agent secara otomatis tanpa menonaktifkan SELinux setelah me-reboot server sumber RHEL](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager](schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager.md)
+ [Transportasi database PostgreSQL antara dua instans Amazon RDS DB menggunakan pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)
+ [Membongkar data dari klaster Amazon Redshift di seluruh akun ke Amazon S3](unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.md)

# Oracle
<a name="databases-database-migration-patterns-by-workload-oracle-pattern-list"></a>

**Topics**
+ [Tambahkan HA ke Oracle PeopleSoft di Amazon RDS Custom dengan menggunakan replika baca](add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.md)
+ [Mengkonversi kueri JSON Oracle ke database PostgreSQL SQL](convert-json-oracle-queries-into-postgresql-database-sql.md)
+ [Mengkonversi VARCHAR2 (1) tipe data untuk Oracle ke tipe data Boolean untuk Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Meniru Oracle DR dengan menggunakan database global Aurora yang kompatibel dengan PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Meniru array PL/SQL asosiatif Oracle di Amazon Aurora PostgreSQL dan Amazon RDS untuk PostgreSQL](emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql.md)
+ [Perkirakan ukuran mesin Amazon RDS untuk database Oracle dengan menggunakan laporan AWR](estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.md)
+ [Menangani blok anonim dalam pernyataan SQL Dinamis di Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Bermigrasi secara bertahap dari Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL menggunakan Oracle SQL Developer dan AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Muat file BLOB ke TEXT dengan menggunakan pengkodean file di Aurora PostgreSQL yang kompatibel](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dalam mode SSL dengan menggunakan AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrasikan database Amazon RDS for Oracle ke database Akun AWS lain Wilayah AWS dan gunakan untuk replikasi yang sedang berlangsung AWS DMS](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Memigrasikan database Oracle lokal ke Amazon menggunakan Oracle Data EC2 Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Memigrasi database Oracle lokal ke Amazon OpenSearch Service menggunakan Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for MySQL menggunakan AWS DMS dan AWS SCT](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle dengan menggunakan Impor Oracle Data Pump langsung melalui tautan database](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-by-using-direct-oracle-data-pump-import-over-a-database-link.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for PostgreSQL menggunakan Oracle bystander dan AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Memigrasi database Oracle lokal ke Oracle di Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS untuk MariaDB menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS for Oracle menggunakan AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migrasikan database Oracle ke Amazon DynamoDB menggunakan AWS DMS](migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms.md)
+ [Migrasikan database Oracle ke Amazon RDS for Oracle dengan menggunakan adaptor file datar Oracle GoldenGate](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migrasikan Database Oracle ke Amazon Redshift menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle ke Aurora PostgreSQL menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle JD Edwards EnterpriseOne ke AWS dengan menggunakan Oracle Data Pump dan AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migrasikan PeopleSoft database Oracle ke AWS dengan menggunakan AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Memigrasi data dari database Oracle lokal ke Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Bermigrasi dari Amazon RDS for Oracle ke Amazon RDS untuk MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk PostgreSQL menggunakan tampilan terwujud dan AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Amazon RDS for PostGresQL dan AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migrasi dari Oracle Database ke Amazon RDS for PostgreSQL dengan menggunakan Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Bermigrasi dari Oracle di Amazon EC2 ke Amazon RDS untuk MySQL menggunakan AWS DMS dan AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Bermigrasi dari Oracle WebLogic ke Apache Tomcat (ToMee) di Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migrasikan indeks berbasis fungsi dari Oracle ke PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrasi aplikasi lama dari Oracle Pro\$1C ke ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migrasikan nilai Oracle CLOB ke baris individual di PostgreSQL di AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migrasi Oracle ke PeopleSoft Amazon RDS Kustom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migrasikan fungsionalitas Oracle ROWID ke PostgreSQL di AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrasikan paket pragma Oracle SERIALLY\$1REUSABLE ke PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migrasikan kolom virtual yang dihasilkan dari Oracle ke PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Memantau GoldenGate log Oracle dengan menggunakan Amazon CloudWatch](monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.md)
+ [Menganalisis dependensi objek untuk migrasi database sebagian dari Oracle ke PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Replatform Oracle Database Enterprise Edition ke Edisi Standar 2 di Amazon RDS for Oracle](replatform-oracle-database-enterprise-edition-to-standard-edition-2-on-amazon-rds-for-oracle.md)
+ [Menyiapkan HA/DR arsitektur untuk Oracle E-Business Suite di Amazon RDS Custom dengan database siaga aktif](set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database.md)
+ [Siapkan fungsionalitas Oracle UTL\$1FILE pada Aurora PostgreSQL yang kompatibel](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Peran transisi untuk PeopleSoft aplikasi Oracle di Amazon RDS Custom for Oracle](transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.md)
+ [Validasi objek database setelah bermigrasi dari Oracle ke Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# SAP
<a name="databases-database-migration-patterns-by-workload-sap-pattern-list"></a>

**Topics**
+ [Secara otomatis mencadangkan database SAP HANA menggunakan Systems Manager dan EventBridge](automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.md)
+ [Bermigrasi dari SAP ASE ke Amazon RDS for SQL Server menggunakan AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrasikan SAP ASE di Amazon EC2 ke Amazon Aurora PostgreSQL yang kompatibel dengan menggunakan AWS SCT dan AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)
+ [Migrasikan SAP HANA ke AWS menggunakan SAP HSR dengan nama host yang sama](migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.md)
+ [Siapkan pemulihan bencana untuk SAP di IBM Db2 di AWS](set-up-disaster-recovery-for-sap-on-ibm-db2-on-aws.md)

# Lebih banyak pola
<a name="databases-more-patterns-pattern-list"></a>

**Topics**
+ [Akses database Amazon Neptunus dari wadah Amazon EKS](access-amazon-neptune-database-from-amazon-eks-container.md)
+ [Akses, kueri, dan gabungkan tabel Amazon DynamoDB menggunakan Athena](access-query-and-join-amazon-dynamodb-tables-using-athena.md)
+ [Izinkan EC2 instance menulis akses ke bucket S3 di akun AMS](allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts.md)
+ [Analisis dan visualisasikan data JSON bersarang dengan Amazon Athena dan Amazon Quick Sight](analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.md)
+ [Mengotomatiskan pencadangan untuk Amazon RDS untuk instans DB Amazon RDS for PostgreSQL dengan menggunakan AWS Batch](automate-backups-for-amazon-rds-for-postgresql-db-instances-by-using-aws-batch.md)
+ [Secara otomatis mengarsipkan item ke Amazon S3 menggunakan DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Secara otomatis memulihkan instans dan klaster Amazon RDS DB yang tidak terenkripsi](automatically-remediate-unencrypted-amazon-rds-db-instances-and-clusters.md)
+ [Secara otomatis berhenti dan memulai instans Amazon RDS DB menggunakan Windows AWS Systems Manager Pemeliharaan](automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.md)
+ [Bangun AWS landing zone yang mencakup MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Membangun program COBOL Db2 dengan menggunakan dan AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Ubah aplikasi Python dan Perl untuk mendukung migrasi database dari Microsoft SQL Server ke Amazon Aurora PostgreSQL Edisi yang kompatibel](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)
+ [Mengonversi dan membongkar data EBCDIC ke ASCII di AWS dengan menggunakan Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Mengonversi fitur temporal Teradata NORMALIZE ke Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Mengonversi fitur Teradata RESET WHEN ke Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Mengkonversi VARCHAR2 (1) tipe data untuk Oracle ke tipe data Boolean untuk Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Buat pengguna dan peran aplikasi di Aurora PostgreSQL yang kompatibel](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Buat CloudFormation templat AWS untuk tugas AWS DMS menggunakan Microsoft Excel dan Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK](deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.md)
+ [Terapkan cluster Cassandra di Amazon EC2 dengan statis IPs pribadi untuk menghindari penyeimbangan kembali](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Menerapkan cluster CockroachDB di Amazon EKS dengan menggunakan Terraform](deploy-cockroachdb-on-eks-using-terraform.md)
+ [Kembangkan asisten berbasis obrolan AI generatif tingkat lanjut dengan menggunakan RAG dan prompt ReAct](develop-advanced-generative-ai-chat-based-assistants-by-using-rag-and-react-prompting.md)
+ [Meniru Oracle DR dengan menggunakan database global Aurora yang kompatibel dengan PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Aktifkan pengarsipan DB2 log langsung ke Amazon S3 dalam database IBM Db2](enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database.md)
+ [Aktifkan enkripsi data transparan di Amazon RDS for SQL Server](enable-transparent-data-encryption-in-amazon-rds-for-sql-server.md)
+ [Ekspor database Microsoft SQL Server ke Amazon S3 dengan menggunakan AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Menerapkan SHA1 hashing untuk data PII saat bermigrasi dari SQL Server ke PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Bermigrasi secara bertahap dari Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL menggunakan Oracle SQL Developer dan AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Muat file BLOB ke TEXT dengan menggunakan pengkodean file di Aurora PostgreSQL yang kompatibel](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Kelola kredensil menggunakan AWS Secrets Manager](manage-credentials-using-aws-secrets-manager.md)
+ [Migrasikan database Db2 dari Amazon ke EC2 Aurora MySQL yang kompatibel dengan menggunakan AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migrasi database Microsoft SQL Server dari Amazon EC2 ke Amazon DocumentDB dengan menggunakan AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migrasikan database Microsoft SQL Server ke Aurora MySQL dengan menggunakan AWS DMS dan AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dalam mode SSL dengan menggunakan AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dengan dan menggunakan dan AWS SCT AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Migrasikan instans Amazon RDS DB ke VPC atau akun lain](migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.md)
+ [Migrasikan database Amazon RDS for Oracle ke database Akun AWS lain Wilayah AWS dan gunakan untuk replikasi yang sedang berlangsung AWS DMS](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Migrasi cluster Amazon Redshift ke Wilayah AWS di Tiongkok](migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china.md)
+ [Memigrasi database MariaDB lokal ke Amazon RDS for MariaDB menggunakan alat bawaan](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan server tertaut](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan metode pencadangan dan pemulihan asli](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan agen ekstraksi data AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Microsoft SQL Server di Amazon yang menjalankan Linux EC2](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Memigrasikan database MySQL lokal ke Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Memigrasikan database MySQL lokal ke Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Memigrasikan database Oracle lokal ke Amazon menggunakan Oracle Data EC2 Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Memigrasi database Oracle lokal ke Amazon OpenSearch Service menggunakan Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for MySQL menggunakan AWS DMS dan AWS SCT](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle dengan menggunakan Impor Oracle Data Pump langsung melalui tautan database](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-by-using-direct-oracle-data-pump-import-over-a-database-link.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Memigrasikan database Oracle lokal ke Amazon RDS for PostgreSQL menggunakan Oracle bystander dan AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Memigrasi database Oracle lokal ke Oracle di Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Memigrasikan database PostgreSQL lokal ke Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Memigrasi database ThoughtSpot Falcon lokal ke Amazon Redshift](migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift.md)
+ [Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS untuk MariaDB menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS for Oracle menggunakan AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migrasikan database Oracle ke Amazon RDS for Oracle dengan menggunakan adaptor file datar Oracle GoldenGate](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migrasikan Database Oracle ke Amazon Redshift menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle ke Aurora PostgreSQL menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migrasikan database Oracle JD Edwards EnterpriseOne ke AWS dengan menggunakan Oracle Data Pump dan AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migrasikan PeopleSoft database Oracle ke AWS dengan menggunakan AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Memigrasikan database Couchbase Server ke Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Memigrasi data dari database Oracle lokal ke Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Migrasi data ke AWS Cloud dengan menggunakan Starburst](migrate-data-to-the-aws-cloud-by-using-starburst.md)
+ [Migrasi Db2 untuk LUW ke EC2 Amazon dengan menggunakan pengiriman log untuk mengurangi waktu pemadaman](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migrasikan Db2 untuk LUW ke Amazon EC2 dengan pemulihan bencana ketersediaan tinggi](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Bermigrasi dari Amazon RDS for Oracle ke Amazon RDS untuk MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Migrasi dari Couchbase Server ke Couchbase Capella di AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Bermigrasi dari IBM Db2 di Amazon EC2 ke Aurora PostgreSQL yang kompatibel dengan menggunakan AWS DMS dan AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk PostgreSQL menggunakan tampilan terwujud dan AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Amazon RDS for PostGresQL dan AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migrasi dari Oracle Database ke Amazon RDS for PostgreSQL dengan menggunakan Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Bermigrasi dari Oracle di Amazon EC2 ke Amazon RDS untuk MySQL menggunakan AWS DMS dan AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Bermigrasi dari PostgreSQL di Amazon ke Amazon RDS untuk PostgreSQL menggunakan pglogical EC2](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Bermigrasi dari SAP ASE ke Amazon RDS for SQL Server menggunakan AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrasikan indeks berbasis fungsi dari Oracle ke PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrasi aplikasi lama dari Oracle Pro\$1C ke ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2 menggunakan Layanan Migrasi Aplikasi](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Memigrasikan beban kerja Cloudera lokal ke Platform Data Cloudera di AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Migrasikan database MySQL lokal ke Aurora MySQL menggunakan Percona, Amazon EFS, dan Amazon S3 XtraBackup](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migrasikan Oracle Business Intelligence 12c ke AWS Cloud dari server lokal](migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.md)
+ [Migrasikan nilai Oracle CLOB ke baris individual di PostgreSQL di AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migrasikan tabel eksternal Oracle ke Amazon Aurora PostgreSQL yang kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migrasi Oracle ke PeopleSoft Amazon RDS Kustom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migrasikan fungsionalitas Oracle ROWID ke PostgreSQL di AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrasikan paket pragma Oracle SERIALLY\$1REUSABLE ke PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migrasikan SAP ASE di Amazon EC2 ke Amazon Aurora PostgreSQL yang kompatibel dengan menggunakan AWS SCT dan AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)
+ [Migrasikan kolom virtual yang dihasilkan dari Oracle ke PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Siapkan ruang data minimum yang layak untuk berbagi data antar organisasi](minimum-viable-data-space-share-data-organizations.md)
+ [Pantau ElastiCache kluster Amazon untuk enkripsi saat istirahat](monitor-amazon-elasticache-clusters-for-at-rest-encryption.md)
+ [Kueri tabel Amazon DynamoDB dengan SQL dengan menggunakan Amazon Athena](query-amazon-dynamodb-tables-sql-amazon-athena.md)
+ [Mengamankan dan merampingkan akses pengguna dalam database federasi Db2 di AWS dengan menggunakan konteks tepercaya](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Siapkan PeopleSoft arsitektur yang sangat tersedia di AWS](set-up-a-highly-available-peoplesoft-architecture-on-aws.md)
+ [Siapkan fungsionalitas Oracle UTL\$1FILE pada Aurora PostgreSQL yang kompatibel](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Merampingkan penerapan PostgreSQL di Amazon EKS dengan menggunakan PGO](streamline-postgresql-deployments-amazon-eks-pgo.md)
+ [Transfer z/OS data Db2 skala besar ke Amazon S3 dalam file CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transportasi database PostgreSQL antara dua instans Amazon RDS DB menggunakan pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)
+ [Validasi objek database setelah bermigrasi dari Oracle ke Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# Penyimpanan & cadangan
<a name="storageandbackup-pattern-list"></a>

**Topics**
+ [Izinkan EC2 instance menulis akses ke bucket S3 di akun AMS](allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts.md)
+ [Mengotomatiskan konsumsi aliran data ke dalam database Snowflake dengan menggunakan Snowflake Snowpipe, Amazon S3, Amazon SNS, dan Amazon Data Firehose](automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose.md)
+ [Secara otomatis mengenkripsi volume Amazon EBS yang ada dan baru](automatically-encrypt-existing-and-new-amazon-ebs-volumes.md)
+ [Cadangkan server Sun SPARC di emulator Stromasys Charon-SSP di AWS Cloud](back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud.md)
+ [Cadangkan dan arsipkan data ke Amazon S3 dengan Veeam Backup & Replication](back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.md)
+ [Salin data dari bucket Amazon S3 ke akun dan Wilayah lain dengan menggunakan AWS CLI](copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.md)
+ [Aktifkan pengarsipan DB2 log langsung ke Amazon S3 dalam database IBM Db2](enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database.md)
+ [Memigrasikan data dari lingkungan Hadoop lokal ke Amazon S3 menggunakan AWS untuk Amazon S3 DistCp PrivateLink](migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.md)
+ [Lebih banyak pola](storageandbackup-more-patterns-pattern-list.md)

# Izinkan EC2 instance menulis akses ke bucket S3 di akun AMS
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts"></a>

*Mansi Suratwala, Amazon Web Services*

## Ringkasan
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-summary"></a>

AWS Managed Services (AMS) membantu Anda mengoperasikan AWS infrastruktur dengan lebih efisien dan aman. Akun AMS memiliki pagar keamanan untuk administrasi standar sumber daya Anda. AWS Salah satu pagar pembatas adalah bahwa profil instans Amazon Elastic Compute Cloud (Amazon EC2) default tidak mengizinkan akses tulis ke bucket Amazon Simple Storage Service (Amazon S3). Namun, organisasi Anda mungkin memiliki beberapa bucket S3 dan memerlukan kontrol lebih besar atas akses menurut EC2 instans. Misalnya, Anda mungkin ingin menyimpan cadangan database dari EC2 instance di bucket S3.

Pola ini menjelaskan cara menggunakan request for change (RFCs) agar EC2 instans Anda dapat menulis akses ke bucket S3 di akun AMS Anda. RFC adalah permintaan yang dibuat oleh Anda atau AMS untuk membuat perubahan di lingkungan terkelola Anda dan yang mencakup ID [tipe perubahan](https://docs.aws.amazon.com/managedservices/latest/ctref/classifications.html) (CT) untuk operasi tertentu.

## Prasyarat dan batasan
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-prereqs"></a>

**Prasyarat**
+ Akun AMS Advanced. Untuk informasi selengkapnya tentang hal ini, lihat [rencana operasi AMS](https://docs.aws.amazon.com/managedservices/latest/accelerate-guide/what-is-ams-op-plans.html) di dokumentasi AMS. 
+ Akses ke `customer-mc-user-role` peran AWS Identity and Access Management (IAM) untuk RFCs dikirimkan. 
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi dengan EC2 instance di akun AMS Anda. 
+ Pemahaman tentang cara membuat dan mengirimkan RFCs di AMS. Untuk informasi selengkapnya tentang hal ini, lihat [Apa itu jenis perubahan AMS?](https://docs.aws.amazon.com/managedservices/latest/ctref/what-are-change-types.html) dalam dokumentasi AMS.
+ Pemahaman tentang jenis perubahan manual dan otomatis (CTs). Untuk informasi selengkapnya tentang ini, lihat [Otomatis dan manual CTs](https://docs.aws.amazon.com/managedservices/latest/userguide/ug-automated-or-manual.html) dalam dokumentasi AMS.

## Arsitektur
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-architecture"></a>

**Tumpukan teknologi**
+ AMS
+ AWS CLI
+ Amazon EC2
+ Amazon S3
+ IAM

## Alat
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Managed Services (AMS)](https://docs.aws.amazon.com/managedservices/latest/userguide/what-is-ams.html) membantu Anda mengoperasikan infrastruktur AWS dengan lebih efisien dan aman. 
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.

## Epik
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-epics"></a>

### Buat bucket S3 dengan RFC
<a name="create-an-s3-bucket-with-an-rfc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket S3 dengan menggunakan RFC otomatis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts.html)Pastikan Anda merekam nama bucket S3. | Administrator sistem AWS, pengembang AWS | 

### Buat profil instans IAM dan kaitkan dengan instance EC2
<a name="create-an-iam-instance-profile-and-associate-it-with-the-ec2-instances"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim RFC manual untuk membuat peran IAM. | Saat akun AMS di-onboard, profil instans IAM default yang bernama `customer-mc-ec2-instance-profile` dibuat dan dikaitkan dengan setiap EC2 instance di akun AMS Anda. Namun, profil instance tidak memiliki izin menulis ke bucket S3 Anda.Untuk menambahkan izin tulis, kirimkan manual **Create IAM Resource** RFC untuk membuat peran IAM yang memiliki tiga kebijakan berikut:`customer_ec2_instance_`,, dan. `customer_deny_policy` `customer_ec2_s3_integration_policy` `customer_deny_policy`Kebijakan `customer_ec2_instance_` dan kebijakan sudah ada di akun AMS Anda. Namun, Anda perlu membuat `customer_ec2_s3_integration_policy` dengan menggunakan kebijakan sampel berikut:<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />   "Statement": [<br />    {<br />      "Sid": "",<br />       "Effect": "Allow",<br />       "Principal": {<br />         "Service": "ec2.amazonaws.com"<br />      },<br />       "Action": "sts:AssumeRole"<br />    }<br />  ]<br />}<br /> <br />Role Permissions:<br />{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />        {<br />             "Action": [<br />                 "s3:ListBucket",<br />                 "s3:GetBucketLocation"<br />            ],<br />             "Resource": "arn:aws:s3:::",<br />             "Effect": "Allow"<br />        },<br />        {<br />             "Action": [<br />                 "s3:GetObject",<br />                 "s3:PutObject",<br />                 "s3:ListMultipartUploadParts",<br />                 "s3:AbortMultipartUpload"<br />            ],<br />             "Resource": "arn:aws:s3:::/*",<br />             "Effect": "Allow"<br />        }<br />    ]<br />}</pre> | Administrator sistem AWS, pengembang AWS | 
| Kirim RFC manual untuk mengganti profil instans IAM. | Kirimkan RFC manual untuk mengaitkan EC2 instance target dengan profil instans IAM yang baru. | Administrator sistem AWS, pengembang AWS | 
| Uji operasi penyalinan ke bucket S3. | Uji operasi salin ke bucket S3 dengan menjalankan perintah berikut di AWS CLI:<pre>aws s3 cp test.txt s3://<S3 bucket>/test2.txt</pre> | Administrator sistem AWS, pengembang AWS | 

## Sumber daya terkait
<a name="allow-ec2-instances-write-access-to-s3-buckets-in-ams-accounts-resources"></a>
+ [Buat profil instans IAM untuk instans Amazon EC2 Anda](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html)
+ [Membuat bucket S3 (menggunakan konsol Amazon S3 AWS SDKs,, atau) AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)

# Mengotomatiskan konsumsi aliran data ke dalam database Snowflake dengan menggunakan Snowflake Snowpipe, Amazon S3, Amazon SNS, dan Amazon Data Firehose
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose"></a>

*Bikash Chandra Rout, Amazon Web Services*

## Ringkasan
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-summary"></a>

Pola ini menjelaskan bagaimana Anda dapat menggunakan layanan di Amazon Web Services (AWS) Cloud untuk memproses aliran data yang berkelanjutan dan memuatnya ke database Snowflake. Pola ini menggunakan Amazon Data Firehose untuk mengirimkan data ke Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon SNS) untuk mengirim notifikasi saat data baru diterima, dan Snowflake Snowpipe untuk memuat data ke database Snowflake.

Dengan mengikuti pola ini, Anda dapat terus menghasilkan data yang tersedia untuk analisis dalam hitungan detik, menghindari beberapa `COPY` perintah manual, dan memiliki dukungan penuh untuk data semi-terstruktur saat dimuat.

## Prasyarat dan batasan
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Sumber data yang terus mengirim data ke aliran pengiriman Firehose.
+ Bucket S3 yang sudah ada yang menerima data dari aliran pengiriman Firehose.
+ Akun Snowflake yang aktif.

**Batasan**
+ Snowflake Snowpipe tidak terhubung langsung ke Firehose.

## Arsitektur
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-architecture"></a>

![\[Data yang dicerna oleh Firehose masuk ke Amazon S3, Amazon SNS, Snowflake Snowpipe, dan Snowflake DB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0c6f473b-973f-4229-a12e-ef697ae9b299/images/0adee3fb-1b90-4f7d-b2d0-b3b958f62c75.png)


**Tumpukan teknologi**
+ Amazon Data Firehose
+ Amazon SNS
+ Amazon S3
+ Pipa Salju Kepingan Salju
+ Database kepingan salju

## Alat
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-tools"></a>
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) adalah layanan yang dikelola sepenuhnya untuk mengirimkan data streaming real-time ke tujuan seperti Amazon S3, Amazon Redshift, OpenSearch Amazon Service, Splunk, dan titik akhir HTTP kustom atau titik akhir HTTP apa pun yang dimiliki oleh penyedia layanan pihak ketiga yang didukung.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html)) adalah penyimpanan untuk internet.
+ [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) mengoordinasikan dan mengelola penyampaian atau pengiriman pesan ke titik akhir atau klien yang berlangganan .
+ [Snowflake](https://www.snowflake.com/) — Snowflake adalah gudang data analitik yang disediakan sebagai (SaaS). Software-as-a-Service
+ [Snowflake Snowpipe](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro.html) — Snowpipe memuat data dari file segera setelah tersedia dalam tahap Snowflake.

## Epik
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-epics"></a>

### Siapkan Snowflake Snowpipe
<a name="set-up-a-snowflake-snowpipe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat file CSV di Snowflake. | Masuk ke Snowflake dan jalankan `CREATE FILE FORMAT` perintah untuk membuat file CSV dengan pembatas bidang tertentu. Untuk informasi lebih lanjut tentang ini dan perintah Snowflake lainnya, lihat bagian [Informasi tambahan](#automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-additional). | Developer | 
| Buat panggung Snowflake eksternal. | Jalankan `CREATE STAGE` perintah untuk membuat tahap Snowflake eksternal yang mereferensikan file CSV yang Anda buat sebelumnya. Penting: Anda memerlukan URL untuk bucket S3, kunci AWS akses, dan kunci akses AWS rahasia Anda. Jalankan `SHOW STAGES` perintah untuk memverifikasi bahwa tahap Snowflake dibuat. | Developer  | 
| Buat tabel target Snowflake. | Jalankan `CREATE TABLE` perintah untuk membuat tabel Snowflake. | Developer | 
| Buat pipa. | Jalankan `CREATE PIPE` perintah; pastikan itu `auto_ingest=true` ada di perintah. Jalankan `SHOW PIPES` perintah untuk memverifikasi bahwa pipa dibuat. Salin dan simpan nilai `notification_channel` kolom. Nilai ini akan digunakan untuk mengonfigurasi pemberitahuan acara Amazon S3. | Developer | 

### Konfigurasikan bucket S3
<a name="configure-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan siklus hidup 30 hari untuk bucket S3. | Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3. Pilih bucket S3 yang berisi data dari Firehose. Kemudian pilih tab **Manajemen** di bucket S3 dan pilih **Tambahkan aturan siklus hidup**. Masukkan nama aturan Anda di kotak dialog Aturan **Siklus Hidup, dan konfigurasikan aturan** siklus hidup 30 hari untuk bucket Anda. Untuk bantuan tentang ini dan cerita lainnya, lihat bagian [Sumber daya terkait](#automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-resources). | Administrator Sistem, Pengembang | 
| Buat kebijakan IAM untuk bucket S3. | Buka konsol AWS Identity and Access Management (IAM) dan pilih **Kebijakan**. Pilih **Buat kebijakan**, dan pilih tab **JSON**. Salin dan tempel kebijakan dari bagian [Informasi tambahan](#automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-additional) ke bidang JSON. Kebijakan ini akan memberikan `PutObject` dan `DeleteObject` izin, serta `GetObject``GetObjectVersion`, dan `ListBucket` izin. Pilih **Kebijakan ulasan**, masukkan nama kebijakan, lalu pilih **Buat kebijakan**. | Administrator Sistem, Pengembang | 
| Tetapkan kebijakan ke peran IAM. | Buka konsol IAM, pilih **Peran**, lalu pilih **Buat peran**. Pilih **akun AWS lain** sebagai entitas tepercaya. Masukkan Akun AWS ID Anda, dan pilih **Memerlukan ID eksternal**. Masukkan ID placeholder yang akan Anda ubah nanti. Pilih **Berikutnya**, dan tetapkan kebijakan IAM yang Anda buat sebelumnya. Kemudian buat peran IAM. | Administrator Sistem, Pengembang | 
| Salin Nama Sumber Daya Amazon (ARN) untuk peran IAM. | Buka konsol IAM, dan pilih **Peran**. Pilih peran IAM yang Anda buat sebelumnya, lalu salin dan simpan **ARN Peran**. | Administrator Sistem, Pengembang | 

### Siapkan integrasi penyimpanan di Snowflake
<a name="set-up-a-storage-integration-in-snowflake"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat integrasi penyimpanan di Snowflake. | Masuk ke Snowflake dan jalankan perintah. `CREATE STORAGE INTEGRATION` Ini akan mengubah hubungan tepercaya, memberikan akses ke Snowflake, dan memberikan ID eksternal untuk tahap Snowflake Anda. | Administrator Sistem, Pengembang | 
| Ambil peran IAM untuk akun Snowflake Anda. | Jalankan `DESC INTEGRATION` perintah untuk mengambil ARN untuk peran IAM.`<integration_ name>`adalah nama integrasi penyimpanan Snowflake yang Anda buat sebelumnya. | Administrator Sistem, Pengembang | 
| Rekam dua nilai kolom. | Salin dan simpan nilai untuk `storage_aws_external_id` kolom `storage_aws_iam_user_arn` dan. | Administrator Sistem, Pengembang | 

### Izinkan Snowflake Snowpipe mengakses bucket S3
<a name="allow-snowflake-snowpipe-to-access-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah kebijakan peran IAM. | Buka konsol IAM dan pilih **Peran**. Pilih peran IAM yang Anda buat sebelumnya dan pilih tab **Trust relationship**. Pilih **Edit trust relationship** (Edit Hubungan Kepercayaan). Ganti `snowflake_external_id` dengan `storage_aws_external_id` nilai yang Anda salin sebelumnya. Ganti `snowflake_user_arn` dengan `storage_aws_iam_user_arn` nilai yang Anda salin sebelumnya. Kemudian pilih **Perbarui kebijakan kepercayaan**. | Administrator Sistem, Pengembang | 

### Aktifkan dan konfigurasikan notifikasi SNS untuk bucket S3
<a name="turn-on-and-configure-sns-notifications-for-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan notifikasi acara untuk bucket S3. | Buka konsol Amazon S3 dan pilih bucket Anda. Pilih **Properti**, dan di bawah **Pengaturan lanjutan** s, pilih **Acara**. Pilih **Tambahkan pemberitahuan**, dan masukkan nama untuk acara ini. Jika Anda tidak memasukkan nama, pengidentifikasi unik global (GUID) akan digunakan. | Administrator Sistem, Pengembang | 
| Konfigurasikan notifikasi Amazon SNS untuk bucket S3. | Di bawah **Peristiwa**, pilih **ObjectCreate (Semua)**, lalu pilih **SQS Queue di daftar** dropdown **Kirim ke**. Dalam daftar **SNS**, pilih **Add SQS queue ARN**, dan paste `notification_channel` nilai yang Anda salin sebelumnya. Lalu, pilih **Simpan**. | Administrator Sistem, Pengembang | 
| Berlangganan antrian Snowflake SQS ke topik SNS. | Berlangganan antrian Snowflake SQS ke topik SNS yang Anda buat. Untuk bantuan dengan langkah ini, lihat bagian [Sumber daya terkait](#automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-resources). | Administrator Sistem, Pengembang | 

### Periksa integrasi tahap Snowflake
<a name="check-the-snowflake-stage-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa dan uji Snowpipe. | Masuk ke Snowflake dan buka panggung Snowflake. Jatuhkan file ke dalam ember S3 Anda dan periksa apakah tabel Snowflake memuatnya. Amazon S3 akan mengirim notifikasi SNS ke Snowpipe saat objek baru muncul di bucket S3. | Administrator Sistem, Pengembang | 

## Sumber daya terkait
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-resources"></a>
+ [Mengelola siklus hidup penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)
+ [Berlangganan Antrian Snowflake SQS ke Topik Amazon SNS](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-auto-s3.html#prerequisite-create-an-amazon-sns-topic-and-subscription)

## Informasi tambahan
<a name="automate-data-stream-ingestion-into-a-snowflake-database-by-using-snowflake-snowpipe-amazon-s3-amazon-sns-and-amazon-data-firehose-additional"></a>

**Buat format file:**

```
CREATE FILE FORMAT <name>
TYPE = 'CSV'
FIELD_DELIMITER = '|'
SKIP_HEADER = 1;
```

**Buat tahap eksternal:**

```
externalStageParams (for Amazon S3) ::=
  URL = 's3://[//]'

  [ { STORAGE_INTEGRATION =  } | { CREDENTIALS = ( {  { AWS_KEY_ID = `` AWS_SECRET_KEY = `` [ AWS_TOKEN = `` ] } | AWS_ROLE = ``  } ) ) }` ]
  [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '' ] |
                   [ TYPE = 'AWS_SSE_S3' ] |
                   [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '' ] |
                   [ TYPE = NONE ] )
```

**Buat tabel:**

```
CREATE [ OR REPLACE ] [ { [ LOCAL | GLOBAL ] TEMP[ORARY] | VOLATILE } | TRANSIENT ] TABLE [ IF NOT EXISTS ]
  <table_name>
    ( <col_name> <col_type> [ { DEFAULT <expr>
                               | { AUTOINCREMENT | IDENTITY } [ ( <start_num> , <step_num> ) | START <num> INCREMENT <num> ] } ]
                                /* AUTOINCREMENT / IDENTITY supported only for numeric data types (NUMBER, INT, etc.) */
                            [ inlineConstraint ]
      [ , <col_name> <col_type> ... ]
      [ , outoflineConstraint ]
      [ , ... ] )
  [ CLUSTER BY ( <expr> [ , <expr> , ... ] ) ]
  [ STAGE_FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>'
                           | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
  [ STAGE_COPY_OPTIONS = ( copyOptions ) ]
  [ DATA_RETENTION_TIME_IN_DAYS = <num> ]
  [ COPY GRANTS ]
  [ COMMENT = '<string_literal>' ]
```

**Tampilkan tahapan:**

```
SHOW STAGES;
```

**Buat pipa:**

```
CREATE [ OR REPLACE ] PIPE [ IF NOT EXISTS ] 
  [ AUTO_INGEST = [ TRUE | FALSE ] ]
  [ AWS_SNS_TOPIC =  ]
  [ INTEGRATION = '' ]
  [ COMMENT = '' ]
  AS
```

**Tampilkan pipa:**

```
SHOW PIPES [ LIKE '<pattern>' ]           
           [ IN { ACCOUNT | [ DATABASE ] <db_name> | [ SCHEMA ] <schema_name> } ]
```

**Buat integrasi penyimpanan:**

```
CREATE STORAGE INTEGRATION <integration_name>
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = S3
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = '<iam_role>'
  STORAGE_ALLOWED_LOCATIONS = ('s3://<bucket>/<path>/', 's3://<bucket>/<path>/')
  [ STORAGE_BLOCKED_LOCATIONS = ('s3://<bucket>/<path>/', 's3://<bucket>/<path>/') ]
```

Contoh:

```
create storage integration s3_int
  type = external_stage
  storage_provider = s3
  enabled = true
  storage_aws_role_arn = 'arn:aws:iam::001234567890:role/myrole'
  storage_allowed_locations = ('s3://amzn-s3-demo-bucket1/mypath1/', 's3://amzn-s3-demo-bucket2/mypath2/')
  storage_blocked_locations = ('s3://amzn-s3-demo-bucket1/mypath1/sensitivedata/', 's3://amzn-s3-demo-bucket2/mypath2/sensitivedata/');
```

Untuk informasi selengkapnya tentang langkah ini, lihat [Mengonfigurasi integrasi penyimpanan Snowflake untuk mengakses Amazon S3 dari dokumentasi Snowflake](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html).

**Jelaskan integrasi:**

```
DESC INTEGRATION <integration_name>;
```

**Kebijakan bucket S3:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
              "s3:PutObject",
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:DeleteObject",
              "s3:DeleteObjectVersion"
            ],
            "Resource": "arn:aws:s3::://*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "/*"
                    ]
                }
            }
        }
    ]
}
```

# Secara otomatis mengenkripsi volume Amazon EBS yang ada dan baru
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes"></a>

*Tony DeMarco dan Josh Joy, Amazon Web Services*

## Ringkasan
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-summary"></a>

Enkripsi volume Amazon Elastic Block Store (Amazon EBS) penting untuk strategi perlindungan data organisasi. Ini adalah langkah penting dalam membangun lingkungan yang dirancang dengan baik. Meskipun tidak ada cara langsung untuk mengenkripsi volume atau snapshot EBS yang tidak terenkripsi yang ada, Anda dapat mengenkripsi mereka dengan membuat volume atau snapshot baru. Untuk informasi selengkapnya, lihat [Mengenkripsi sumber daya EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) di dokumentasi Amazon EC2 . Pola ini menyediakan kontrol preventif dan detektif untuk mengenkripsi volume EBS Anda, baik yang baru maupun yang sudah ada. Dalam pola ini, Anda mengonfigurasi pengaturan akun, membuat proses remediasi otomatis, dan menerapkan kontrol akses.

## Prasyarat dan batasan
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-prereqs"></a>

**Prasyarat**
+ Akun Amazon Web Services (AWS) yang aktif
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)), diinstal dan dikonfigurasi di macOS, Linux, atau Windows
+ [jq](https://stedolan.github.io/jq/download/), diinstal dan dikonfigurasi di macOS, Linux, atau Windows
+ Izin AWS Identity and Access Management (IAM) disediakan untuk memiliki akses baca dan tulis ke AWS, CloudFormation Amazon Elastic Compute Cloud ( EC2Amazon), AWS Systems Manager, AWS Config, dan AWS Key Management Service (AWS KMS)
+ AWS Organizations dikonfigurasi dengan semua fitur diaktifkan, persyaratan untuk kebijakan kontrol layanan
+ AWS Config diaktifkan di akun target

**Batasan**
+ **Di akun AWS target Anda, tidak boleh ada aturan AWS Config bernama encrypted-volume.** Solusi ini menerapkan aturan dengan nama ini. Aturan yang sudah ada sebelumnya dengan nama ini dapat menyebabkan penerapan gagal dan mengakibatkan biaya yang tidak perlu terkait dengan pemrosesan aturan yang sama lebih dari sekali.
+ Solusi ini mengenkripsi semua volume EBS dengan kunci AWS KMS yang sama.
+ Jika Anda mengaktifkan enkripsi volume EBS untuk akun, pengaturan ini khusus Wilayah. Jika Anda mengaktifkannya untuk Wilayah AWS, Anda tidak dapat menonaktifkannya untuk volume atau snapshot individual di Wilayah tersebut. Untuk informasi selengkapnya, lihat [Enkripsi secara default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) di EC2 dokumentasi Amazon.
+ Saat Anda memulihkan volume EBS yang sudah ada dan tidak terenkripsi, pastikan EC2 instans tidak digunakan. Otomatisasi ini mematikan instance untuk melepaskan volume yang tidak terenkripsi dan melampirkan yang terenkripsi. Ada downtime saat remediasi sedang berlangsung. Jika ini adalah bagian penting dari infrastruktur untuk organisasi Anda, pastikan bahwa konfigurasi ketersediaan tinggi [manual](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/scenarios-enis.html#create-a-low-budget-high-availability-solution) atau [otomatis](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) tersedia agar tidak memengaruhi ketersediaan aplikasi apa pun yang berjalan pada instance. Kami menyarankan Anda memulihkan sumber daya penting hanya selama jendela pemeliharaan standar.

## Arsitektur
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-architecture"></a>

**Alur kerja otomatisasi**

![\[Diagram arsitektur tingkat tinggi yang menunjukkan proses dan layanan otomatisasi\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/484fd5fe-e10a-41f6-aafe-260ea824883b/images/483f551c-ca1d-4c1e-b3c7-989df7d3b059.png)


1. AWS Config mendeteksi volume EBS yang tidak terenkripsi.

1. Administrator menggunakan AWS Config untuk mengirim perintah remediasi ke Systems Manager.

1. Otomatisasi Systems Manager mengambil snapshot dari volume EBS yang tidak terenkripsi.

1. Otomatisasi Systems Manager menggunakan AWS KMS untuk membuat salinan snapshot terenkripsi.

1. Otomatisasi Systems Manager melakukan hal berikut:

   1. Menghentikan EC2 instance yang terpengaruh jika sedang berjalan

   1. Melampirkan salinan volume yang baru dan terenkripsi ke instance EC2 

   1. Mengembalikan EC2 instance ke keadaan semula

## Alat
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-tools"></a>

**Layanan AWS**
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) menyediakan akses langsung ke antarmuka pemrograman aplikasi publik APIs () layanan AWS. Anda dapat menjelajahi kemampuan layanan dengan AWS CLI dan mengembangkan skrip shell untuk mengelola sumber daya Anda. Selain perintah setara API tingkat rendah, beberapa layanan AWS menyediakan penyesuaian untuk AWS CLI. Kustomisasi dapat mencakup perintah tingkat tinggi yang menyederhanakan penggunaan layanan dengan API yang kompleks.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation adalah layanan yang membantu Anda memodelkan dan menyiapkan sumber daya AWS Anda. Anda membuat templat yang menjelaskan semua sumber daya AWS yang Anda inginkan (seperti EC2 instans Amazon), serta menyediakan serta CloudFormation mengonfigurasi sumber daya tersebut untuk Anda.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) — AWS Config memberikan tampilan terperinci tentang konfigurasi sumber daya AWS di akun AWS Anda. Ini mencakup bagaimana sumber daya terkait satu sama lain dan bagaimana sumber daya tersebut dikonfigurasi di masa lalu sehingga Anda dapat melihat bagaimana konfigurasi dan hubungan berubah dari waktu ke waktu.
+ [Amazon EC2](https://docs.aws.amazon.com/ec2/?id=docs_gateway) — Amazon Elastic Compute Cloud (Amazon EC2) adalah layanan web yang menyediakan kapasitas komputasi yang dapat diubah ukurannya yang Anda gunakan untuk membangun dan meng-host sistem perangkat lunak Anda.
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) — AWS Key Management Service (AWS KMS) adalah layanan enkripsi dan manajemen kunci yang diskalakan untuk cloud. Kunci dan fungsionalitas AWS KMS digunakan oleh layanan AWS lainnya, dan Anda dapat menggunakannya untuk melindungi data di lingkungan AWS Anda.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) — AWS Organizations adalah layanan manajemen akun yang memungkinkan Anda mengkonsolidasikan beberapa akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
+ [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) — Systems Manager Automation menyederhanakan tugas pemeliharaan dan penerapan umum untuk EC2 instans Amazon dan sumber daya AWS lainnya.

**Layanan lainnya**
+ [jq](https://stedolan.github.io/jq/download/) - jq adalah prosesor JSON command-line yang ringan dan fleksibel. Anda menggunakan alat ini untuk mengekstrak informasi kunci dari output AWS CLI.

**Kode**
+ Kode untuk pola ini tersedia dalam [Remediasi Volume EBS yang tidak terenkripsi GitHub secara otomatis menggunakan](https://github.com/aws-samples/aws-system-manager-automation-unencrypted-to-encrypted-resources/tree/main/ebs) repositori kunci KMS pelanggan.

## Epik
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-epics"></a>

### Mengotomatiskan remediasi volume yang tidak terenkripsi
<a name="automate-remediation-of-unencrypted-volumes"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh skrip dan CloudFormation templat. | Unduh skrip shell, file JSON, dan CloudFormation templat dari [Volume EBS yang tidak terenkripsi GitHub secara otomatis](https://github.com/aws-samples/aws-system-manager-automation-unencrypted-to-encrypted-resources/tree/main/ebs) menggunakan repositori kunci KMS pelanggan. | Administrator AWS, AWS Umum | 
| Identifikasi administrator untuk kunci AWS KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum | 
| Menyebarkan template Stack1 CloudFormation . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html)Untuk informasi selengkapnya tentang penerapan CloudFormation templat, lihat [Bekerja dengan CloudFormation templat AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) dalam CloudFormation dokumentasi. | Administrator AWS, AWS Umum | 
| Menyebarkan template Stack2 CloudFormation . | Di CloudFormation, gunakan `Stack2.yaml` template. Perhatikan detail penerapan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum | 
| Buat volume yang tidak terenkripsi untuk pengujian. | Buat EC2 instance dengan volume EBS yang tidak terenkripsi. Untuk petunjuknya, lihat [Membuat volume Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html) di EC2 dokumentasi Amazon. Jenis instance tidak masalah, dan akses ke instance tidak diperlukan. Anda dapat membuat instance t2.micro untuk tetap berada di tingkat gratis, dan Anda tidak perlu membuat key pair. | Administrator AWS, AWS Umum | 
| Uji aturan AWS Config. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html)Anda dapat melihat kemajuan dan status remediasi di Systems Manager sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum | 
| Konfigurasikan akun tambahan atau Wilayah AWS. | Jika diperlukan untuk kasus penggunaan Anda, ulangi epik ini untuk akun tambahan atau Wilayah AWS. | Administrator AWS, AWS Umum | 

### Aktifkan enkripsi volume EBS tingkat akun
<a name="enable-account-level-encryption-of-ebs-volumes"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan skrip aktifkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum, bash | 
| Konfirmasikan pengaturan diperbarui. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum | 
| Konfigurasikan akun tambahan atau Wilayah AWS. | Jika diperlukan untuk kasus penggunaan Anda, ulangi epik ini untuk akun tambahan atau Wilayah AWS. | Administrator AWS, AWS Umum | 

### Mencegah pembuatan instance yang tidak terenkripsi
<a name="prevent-creation-of-unencrypted-instances"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan kontrol layanan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) | Administrator AWS, AWS Umum | 

## Sumber daya terkait
<a name="automatically-encrypt-existing-and-new-amazon-ebs-volumes-resources"></a>

**Dokumentasi layanan AWS**
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [Amazon EC2](https://docs.aws.amazon.com/ec2/?id=docs_gateway)
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
+ [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)

**Sumber daya lainnya**
+ [jq manual (situs](https://stedolan.github.io/jq/manual/) web jq)
+ [jq unduh](https://github.com/stedolan/jq) () GitHub

# Cadangkan server Sun SPARC di emulator Stromasys Charon-SSP di AWS Cloud
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud"></a>

*Kevin Yung dan Rohit Darji, Amazon Web Services*

*Luis Ramos, Stromasy*

## Ringkasan
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-summary"></a>

Pola ini menyediakan empat opsi untuk mencadangkan server Sun Microsystems SPARC Anda setelah migrasi dari lingkungan lokal ke Amazon Web Services () Cloud.AWS Opsi pencadangan ini membantu Anda menerapkan rencana cadangan yang memenuhi tujuan titik pemulihan (RPO) organisasi Anda dan tujuan waktu pemulihan (RTO), menggunakan pendekatan otomatis, dan menurunkan biaya operasional Anda secara keseluruhan. Pola ini memberikan gambaran umum dari empat opsi cadangan dan langkah-langkah untuk mengimplementasikannya.

Jika Anda menggunakan server Sun SPARC yang dihosting sebagai tamu di [emulator Stromasys Charon-SSP](https://www.stromasys.com/solution/charon-on-the-aws-cloud/), Anda dapat menggunakan salah satu dari tiga opsi cadangan berikut:
+ **Opsi Backup 1: Stromasys virtual tape** [- Gunakan fitur pita virtual Charon-SSP untuk menyiapkan fasilitas cadangan di server Sun SPARC dan mengarsipkan file cadangan Anda ke Amazon [Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) menggunakan Otomasi.AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
+ **Opsi cadangan 2: Snapshot Stromasys - Gunakan fitur snapshot** Charon-SSP untuk menyiapkan fasilitas cadangan untuk server tamu Sun SPARC di Charon-SSP. 
+ **Opsi cadangan 3: Snapshot volume Amazon Elastic Block Store (Amazon EBS)**** — Jika Anda meng-host emulator Charon-SSP di Amazon Elastic Compute Cloud (Amazon EC2), Anda dapat menggunakan snapshot volume** [Amazon EBS untuk membuat](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html) cadangan untuk sistem file Sun SPARC. ****

Jika Anda menggunakan server Sun SPARC yang dihosting sebagai tamu di perangkat keras dan Charon-SSP di Amazon EC2, Anda dapat menggunakan opsi cadangan berikut:
+ **Opsi Backup 4: AWS Storage Gateway Virtual Tape Library (VTL)** — Gunakan aplikasi cadangan dengan [Storage Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html) VTL Tape Gateway untuk mencadangkan server Sun SPARC. 

Jika Anda menggunakan server Sun SPARC yang dihosting sebagai zona bermerek di server Sun SPARC, Anda dapat menggunakan opsi cadangan 1, 2, dan 4.

[Stromasys](https://www.stromasys.com) menyediakan perangkat lunak dan layanan untuk meniru sistem kritis SPARC, Alpha, VAX, dan PA-RISC lama. Untuk informasi lebih lanjut tentang migrasi ke AWS Cloud menggunakan emulasi Stromasys, lihat [Rehosting SPARC, Alpha, atau sistem warisan lainnya](https://aws.amazon.com/blogs/apn/re-hosting-sparc-alpha-or-other-legacy-systems-to-aws-with-stromasys/) ke dengan Stromasys di Blog. AWS AWS  

## Prasyarat dan batasan
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS. 
+ Server Sun SPARC yang ada.
+ Lisensi yang ada untuk Charon-SSP. Lisensi untuk Charon-SSP tersedia dari AWS Marketplace dan lisensi untuk Stromasys Virtual Environment (VE) tersedia dari Stromasys. Untuk informasi lebih lanjut, hubungi penjualan [Stromasys](https://www.stromasys.com/contact/).
+ Keakraban dengan server Sun SPARC dan cadangan Linux. 
+ Keakraban dengan teknologi emulasi Charon-SSP. Untuk informasi lebih lanjut tentang ini, lihat [Emulasi server lama Stromasys](https://www.stromasys.com/solutions/charon-on-the-aws-cloud/) di dokumentasi Stromasys.
+ Jika Anda ingin menggunakan fasilitas rekaman virtual atau aplikasi cadangan untuk sistem file server Sun SPARC Anda, Anda harus membuat dan mengonfigurasi fasilitas cadangan untuk sistem file server Sun SPARC. 
+ Pemahaman tentang RPO dan RTO. Untuk informasi lebih lanjut tentang ini, lihat [Tujuan pemulihan bencana](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/disaster-recovery-dr-objectives.html) dari whitepaper [Reliability Pillar](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) dalam dokumentasi Well-Architected AWS Framework. 
+ Untuk menggunakan **opsi Backup 4**, Anda harus memiliki yang berikut: 
  + Aplikasi backup berbasis perangkat lunak yang mendukung Storage Gateway VTL Tape Gateway. Untuk informasi selengkapnya tentang ini, lihat [Bekerja dengan perangkat VTL](https://docs.aws.amazon.com/storagegateway/latest/tgw/WhatIsStorageGateway.html) dalam dokumentasi. AWS Storage Gateway  
  + Direktur Bacula atau aplikasi cadangan serupa, diinstal dan dikonfigurasi. Untuk informasi lebih lanjut tentang ini, lihat dokumentasi [Direktur Bacula](https://www.bacula.org/5.2.x-manuals/en/main/main/Configuring_Director.html).

Tabel berikut memberikan informasi tentang empat opsi cadangan dalam pola ini.


| 
| 
| **Opsi Backup** | **Mencapai konsistensi crash?** | **Mencapai konsistensi aplikasi?** | **Solusi alat cadangan virtual?** | Kasus penggunaan yang khas | 
| --- |--- |--- |--- |--- |
| **Opsi 1 - Pita virtual Stromasys** | **Ya**Anda dapat mengotomatiskan snapshot sistem file Sun SPARC untuk mencadangkan data dalam rekaman virtual. Misalnya, Anda dapat menggunakan snapshot UFS atau ZFS. | **Ya**Opsi pencadangan ini memerlukan skrip otomatis untuk membersihkan transaksi dalam penerbangan, mengonfigurasi mode offline hanya-baca atau sementara selama snapshot sistem file, atau mengambil dump data aplikasi. Anda mungkin juga memerlukan waktu henti aplikasi atau mode hanya-baca. | **Ya** | Pencadangan sistem file server Sun SPARC dengan file.tar atau .zipPencadangan data aplikasi | 
| **Opsi 2 - Snapshot Stromasys** | **Ya**Anda harus mengkonfigurasi [Charon-SSP Manager](https://stromasys.atlassian.net/wiki/spaces/DocCHSSP40preAWS/pages/522190974/Charon-SSP+Manager+Installation%20/) atau menggunakan argumen startup baris perintah untuk mengaktifkan fitur ini.Anda juga harus menjalankan perintah Linux untuk meminta emulator Charon-SSP untuk menyimpan status server tamu Sun SPARC ke dalam file snapshot.Anda harus mematikan server tamu Sun SPARC.  | **Ya**Opsi cadangan ini membuat snapshot dari server tamu yang ditiru, termasuk disk virtual dan dump memori. Anda harus mematikan server tamu Sun SPARC selama snapshot. | **Tidak** | Cuplikan server Sun SPARCPencadangan data aplikasi | 
| **Opsi 3 - Snapshot volume Amazon EBS** | **Ya**Anda dapat menggunakan AWS Backup untuk mengotomatiskan snapshot Amazon EBS. | **Ya**Opsi pencadangan ini memerlukan skrip otomatis untuk membersihkan transaksi dalam penerbangan dan mengonfigurasi penghentian instans Amazon EC2 hanya-baca atau sementara selama snapshot volume Amazon EBS.  Opsi pencadangan ini mungkin memerlukan waktu henti aplikasi atau mode hanya-baca untuk mencapai konsistensi aplikasi.  | **Tidak** | Snapshot sistem file server Sun SPARCPencadangan data aplikasi | 
| **Opsi 4 - AWS Storage Gateway VTL** | **Ya**Anda dapat secara otomatis mencadangkan data cadangan sistem file Sun SPARC ke VTL dengan menggunakan agen cadangan. | **Ya**Opsi pencadangan ini memerlukan skrip otomatis untuk membersihkan transaksi dalam penerbangan dan mengonfigurasi mode offline hanya-baca atau sementara selama snapshot sistem file atau dump data aplikasi.Opsi pencadangan ini mungkin memerlukan waktu henti aplikasi atau mode hanya-baca. | **Ya** | Armada besar cadangan sistem file server Sun SPARCPencadangan data aplikasi | 

**Batasan**
+ Anda dapat menggunakan pendekatan pola ini untuk mencadangkan server Sun SPARC individual, tetapi Anda juga dapat menggunakan opsi cadangan ini untuk data bersama jika Anda memiliki aplikasi yang berjalan di cluster.

## Alat
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-tools"></a>

**Opsi Backup 1: Pita virtual Stromasys**
+ [Emulator Stromasys Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/39158045/CHARON-SSP) menciptakan replika virtual dari perangkat keras SPARC asli di dalam sistem komputer standar 64-bit x86 yang kompatibel. Ini menjalankan kode biner SPARC asli, termasuk sistem operasi (OSs) seperti SunOS atau Solaris, produk berlapis mereka, dan aplikasi.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/index.html)) adalah layanan web yang menyediakan kapasitas komputasi yang dapat diubah ukurannya yang Anda gunakan untuk membangun dan meng-host sistem perangkat lunak Anda.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) menyediakan sistem file yang sederhana, tanpa server, set-and-forget elastis untuk digunakan dengan Layanan AWS dan sumber daya lokal.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah penyimpanan untuk internet. 
+ [AWS Systems Manager Otomatisasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) menyederhanakan tugas pemeliharaan dan penerapan umum instans Amazon EC2 dan sumber daya lainnya. AWS 

 

**Opsi Backup 2: Snapshot Stromasys**
+ [Emulator Stromasys Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/39158045/CHARON-SSP) menciptakan replika virtual dari perangkat keras SPARC asli di dalam sistem komputer standar 64-bit x86 yang kompatibel. Ini menjalankan kode biner SPARC asli, termasuk OSs seperti SunOS atau Solaris, produk berlapis mereka, dan aplikasi.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/index.html)) adalah layanan web yang menyediakan kapasitas komputasi yang dapat diubah ukurannya yang Anda gunakan untuk membangun dan meng-host sistem perangkat lunak Anda.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) menyediakan sistem file yang sederhana, tanpa server, set-and-forget elastis untuk digunakan dengan Layanan AWS dan sumber daya lokal.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah penyimpanan untuk internet. 
+ [AWS Systems Manager Otomatisasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) menyederhanakan tugas pemeliharaan dan penerapan umum instans Amazon EC2 dan sumber daya lainnya. AWS 

 

**Opsi Backup 3: Snapshot** ****volume** Amazon EBS**
+ [Emulator emulator Stromasys Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/39158045/CHARON-SSP) menciptakan replika virtual perangkat keras SPARC asli di dalam sistem komputer standar 64-bit x86 yang kompatibel. Ini menjalankan kode biner SPARC asli, termasuk OSs seperti SunOS atau Solaris, produk berlapis mereka, dan aplikasi.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)adalah layanan perlindungan data yang dikelola sepenuhnya yang membuatnya mudah untuk memusatkan dan mengotomatisasi di seluruh Layanan AWS, di cloud, dan di tempat.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) menyediakan volume penyimpanan tingkat blok untuk digunakan dengan instans Amazon EC2.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/index.html)) adalah layanan web yang menyediakan kapasitas komputasi yang dapat diubah ukurannya yang Anda gunakan untuk membangun dan meng-host sistem perangkat lunak Anda.

 

**Opsi Backup 4: **AWS Storage Gateway******VTL**
+ [Emulator Stromasys Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/39158045/CHARON-SSP) menciptakan replika virtual dari perangkat keras SPARC asli di dalam sistem komputer standar 64-bit x86 yang kompatibel. Ini menjalankan kode biner SPARC asli, termasuk OSs seperti SunOS atau Solaris, produk berlapis mereka, dan aplikasi.
+ [Bacula](https://www.baculasystems.com/try/?gclid=EAIaIQobChMInsywntC98gIVkT2tBh16ug3_EAAYASAAEgL-nPD_BwE) adalah sistem cadangan komputer tingkat perusahaan open-source. Untuk informasi selengkapnya tentang apakah aplikasi cadangan yang ada mendukung Tape Gateway, lihat [Aplikasi pencadangan pihak ketiga yang didukung untuk Tape Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/Requirements.html#requirements-backup-sw-for-vtl) dalam AWS Storage Gateway dokumentasi. 
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/index.html)) adalah layanan web yang menyediakan kapasitas komputasi yang dapat diubah ukurannya yang Anda gunakan untuk membangun dan meng-host sistem perangkat lunak Anda.
+ [Amazon Relational Database Service (Amazon RDS) untuk MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) mendukung instans DB yang menjalankan beberapa versi MySQL. 
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah penyimpanan untuk internet. 
+ [AWS Storage Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html)menghubungkan perangkat lunak lokal dengan penyimpanan berbasis cloud untuk menyediakan integrasi tanpa batas dengan fitur keamanan data antara lingkungan TI lokal dan infrastruktur penyimpanan. AWS 

## Epik
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-epics"></a>

### Opsi Backup 1 - Buat cadangan pita virtual Stromasys
<a name="backup-option-1-ndash-create-a-stromasys-virtual-tape-backup"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sistem file bersama Amazon EFS untuk penyimpanan file tape virtual. | Masuk ke Konsol Manajemen AWS atau gunakan AWS Command Line Interface (AWS CLI) untuk membuat sistem file Amazon EFS.Untuk informasi selengkapnya tentang ini, lihat [Membuat sistem file Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) di dokumentasi Amazon EFS. | Arsitek awan | 
| Konfigurasikan host Linux untuk me-mount sistem file bersama. | Instal driver Amazon EFS di instans Amazon EC2 Linux dan konfigurasikan OS Linux untuk memasang sistem file bersama Amazon EFS selama startup.Untuk informasi selengkapnya tentang hal ini, lihat [Memasang sistem file menggunakan Amazon EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) dalam dokumentasi Amazon EFS. | DevOps insinyur | 
| Instal emulator Charon-SSP. | Instal emulator Charon-SSP pada instans Amazon EC2 Linux.Untuk informasi selengkapnya tentang ini, lihat [Menyiapkan AWS Cloud instance untuk Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/DocCHSSP405AWS/pages/718241894/Setting+up+a+Charon-SSP+AWS+Cloud+Instance) di dokumentasi Stromasys. | DevOps insinyur | 
| Buat wadah file tape virtual dalam sistem file bersama untuk setiap server tamu Sun SPARC. | Jalankan `touch <vtape-container-name>` perintah untuk membuat wadah file tape virtual di sistem file bersama untuk setiap server tamu Sun SPARC yang digunakan di emulator Charon-SSP. | DevOps insinyur | 
| Konfigurasikan Charon-SSP Manager untuk membuat perangkat rekaman virtual untuk server tamu Sun SPARC. | Masuk ke Charon-SSP Manager, buat perangkat kaset virtual, dan konfigurasikan untuk menggunakan file wadah pita virtual untuk setiap server tamu Sun SPARC.Untuk informasi lebih lanjut tentang ini, lihat [panduan pengguna Charon-SSP 5.2 untuk Linux](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/76429819926/CHARON-SSP+V5.2+for+Linux) di dokumentasi Stromasys. | DevOps insinyur | 
| Validasi bahwa perangkat pita virtual tersedia di server tamu Sun SPARC. | Masuk ke setiap server tamu Sun SPARC dan jalankan `mt -f /dev/rmt/1` perintah untuk memvalidasi bahwa perangkat pita virtual dikonfigurasi di OS. | DevOps insinyur | 
| Kembangkan runbook dan otomatisasi Systems Manager Automation. | Kembangkan runbook Systems Manager Automation dan atur jendela pemeliharaan dan asosiasi di Systems Manager untuk menjadwalkan proses pencadangan.Untuk informasi selengkapnya tentang ini, lihat [Panduan otomatisasi dan Menyiapkan](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) [jendela pemeliharaan di dokumentasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html). AWS Systems Manager  | Arsitek awan | 
| Konfigurasikan Otomasi Systems Manager untuk mengarsipkan file kontainer pita virtual yang diputar. | Gunakan contoh kode dari **opsi Kembali 1** di bagian *Informasi tambahan* untuk mengembangkan runbook Otomasi Manajer Sistem untuk mengarsipkan file kontainer pita virtual yang diputar ke Amazon S3. | Arsitek awan | 
| Menerapkan runbook Systems Manager Automation untuk pengarsipan dan penjadwalan. | Terapkan runbook Systems Manager Automation dan jadwalkan untuk berjalan secara otomatis di Systems Manager.Untuk informasi selengkapnya tentang hal ini, lihat [Panduan otomatisasi dalam dokumentasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) Systems Manager. | Arsitek awan | 

### Opsi Backup 2 - Buat snapshot Stromasys
<a name="backup-option-2-ndash-create-a-stromasys-snapshot"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sistem file bersama Amazon EFS untuk penyimpanan file tape virtual. | Masuk ke Konsol Manajemen AWS atau gunakan file AWS CLI untuk membuat sistem file Amazon EFS.Untuk informasi selengkapnya tentang hal ini, lihat [Membuat sistem file Amazon EFS Anda](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) di dokumentasi Amazon EFS. | Arsitek awan | 
| Konfigurasikan host Linux untuk me-mount sistem file bersama. | Instal driver Amazon EFS di instans Amazon EC2 Linux dan konfigurasikan OS Linux untuk memasang sistem file bersama Amazon EFS selama startup.Untuk informasi selengkapnya tentang hal ini, lihat [Memasang sistem file menggunakan Amazon EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) dalam dokumentasi Amazon EFS.  | DevOps insinyur | 
| Instal emulator Charon-SSP. | Instal emulator Charon-SSP pada instans Amazon EC2 Linux.Untuk informasi selengkapnya tentang ini, lihat [Menyiapkan AWS Cloud instance untuk Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/DocCHSSP44xAWSGS/pages/7239901201/Setting+up+an+AWS+Cloud+Instance+for+Charon-SSP) di dokumentasi Stromasys. | DevOps insinyur | 
| Konfigurasikan server tamu Sun SPARC untuk memulai dengan opsi snapshot. | Gunakan Charon-SSP Manager untuk mengatur opsi snapshot untuk setiap server tamu Sun SPARC.Untuk informasi lebih lanjut tentang ini, lihat [panduan pengguna Charon-SSP 5.2 untuk Linux](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/76429819926/CHARON-SSP+V5.2+for+Linux) di dokumentasi Stromasys.   | DevOps insinyur | 
| Kembangkan runbook Otomasi Systems Manager. | Gunakan contoh kode dari **opsi Backup 2** di bagian *Informasi tambahan* untuk mengembangkan runbook Automation Systems Manager untuk menjalankan perintah snapshot dari jarak jauh di server tamu Sun SPARC selama jendela pemeliharaan. | Arsitek awan | 
| Menerapkan runbook Systems Manager Automation dan atur asosiasi ke host Amazon EC2 Linux. | Terapkan runbook Systems Manager Automation dan siapkan jendela pemeliharaan dan asosiasi di Systems Manager untuk menjadwalkan proses pencadangan.Untuk informasi selengkapnya tentang ini, lihat [Panduan otomatisasi dan Menyiapkan](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) [Windows Pemeliharaan di dokumentasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html). AWS Systems Manager  | Arsitek awan | 
| Arsipkan snapshot ke penyimpanan jangka panjang. | Gunakan kode contoh runbook dari bagian *Informasi tambahan* untuk mengembangkan runbook Automation Systems Manager untuk mengarsipkan file snapshot ke Amazon S3. | Arsitek awan | 

### Opsi Backup 3 - Buat snapshot volume Amazon EBS
<a name="backup-option-3-create-an-ebs-volume-snapshot"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal emulator Charon-SSP. | Instal emulator Charon-SSP pada instans Amazon EC2 Linux.Untuk informasi selengkapnya tentang ini, lihat [Menyiapkan AWS Cloud instance untuk Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/DocCHSSP44xAWSGS/pages/7239901201/Setting+up+an+AWS+Cloud+Instance+for+Charon-SSP) di dokumentasi Stromasys.  | DevOps insinyur | 
| Buat volume Amazon EBS untuk server tamu Sun SPRAC. | Masuk ke Konsol Manajemen AWS, buka konsol Amazon EBS, lalu buat volume Amazon EBS untuk server tamu Sun SPRAC.Untuk informasi selengkapnya tentang ini, lihat [Menyiapkan AWS Cloud instance untuk Charon-SSP](https://stromasys.atlassian.net/wiki/spaces/DocCHSSP44xAWSGS/pages/7239901201/Setting+up+an+AWS+Cloud+Instance+for+Charon-SSP) di dokumentasi Stromasys. | Arsitek awan | 
| Lampirkan volume Amazon EBS ke instans Amazon EC2 Linux. | Di konsol Amazon EC2, lampirkan volume Amazon EBS ke instans Amazon EC2 Linux.Untuk informasi selengkapnya tentang hal ini, lihat [Melampirkan volume Amazon EBS ke instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html) dalam dokumentasi Amazon EC2. | AWS DevOps | 
| Petakan volume Amazon EBS sebagai drive SCSI di emulator Charon-SSP. | Konfigurasikan Charon-SSP Manager untuk memetakan volume Amazon EBS sebagai drive SCSI di server tamu Sun SPARC.Untuk informasi lebih lanjut tentang ini, lihat bagian *konfigurasi penyimpanan SCSI* dari panduan [Charon-SSP V5.2 untuk Linux](https://stromasys.atlassian.net/wiki/spaces/KBP/pages/76429819926/CHARON-SSP+V5.2+for+Linux) dalam dokumentasi Stromasys. | AWS DevOps | 
| Konfigurasikan AWS Backup jadwal untuk snapshotting volume Amazon EBS. | Siapkan AWS Backup kebijakan dan jadwal untuk memotret volume Amazon EBS.Untuk informasi selengkapnya tentang ini, lihat [cadangan dan pemulihan Amazon EBS menggunakan AWS Backup](https://aws.amazon.com/getting-started/hands-on/amazon-ebs-backup-and-restore-using-aws-backup/) tutorial di dokumentasi Pusat AWS Pengembang. | AWS DevOps | 

### Opsi Backup 4 - Buat AWS Storage Gateway VTL
<a name="backup-option-4-create-an-awssglong-vtl"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat perangkat Tape Gateway. | Masuk ke Konsol Manajemen AWS, buka AWS Storage Gateway konsol, lalu buat perangkat Tape Gateway di VPC.Untuk informasi selengkapnya tentang ini, lihat [Membuat gateway](https://docs.aws.amazon.com/storagegateway/latest/tgw/create-tape-gateway.html) dalam AWS Storage Gateway dokumentasi. | Arsitek awan | 
| Buat instans Amazon RDS DB untuk Katalog Bacula. | Buka konsol Amazon RDS dan buat instans Amazon RDS for MySQL DB.Untuk informasi selengkapnya tentang ini, lihat [Membuat instans MySQL DB dan menghubungkan ke database pada instans MySQL DB dalam](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html) dokumentasi Amazon RDS. | Arsitek awan | 
| Menyebarkan pengontrol aplikasi cadangan di VPC. | Instal Bacula pada instans Amazon EC2, gunakan pengontrol aplikasi cadangan, lalu konfigurasikan penyimpanan cadangan untuk terhubung dengan perangkat Tape Gateway. Anda dapat menggunakan sampel konfigurasi daemon penyimpanan Bacula Director dalam `Bacula-storage-daemon-config.txt` file (terlampir).Untuk informasi lebih lanjut tentang ini, lihat [dokumentasi Bacula](https://www.bacula.org/11.0.x-manuals/en/main/main.pdf). | AWS DevOps | 
| Siapkan aplikasi cadangan di server tamu Sun SPARC. | Siapkan klien kedua untuk menginstal dan mengatur aplikasi cadangan pada server tamu Sun SPARC dengan menggunakan konfigurasi Bacula sampel dalam `SUN-SPARC-Guest-Bacula-Config.txt` file (terlampir). | DevOps insinyur | 
| Siapkan konfigurasi dan jadwal cadangan. | Siapkan konfigurasi dan jadwal cadangan di pengontrol aplikasi cadangan dengan menggunakan sampel konfigurasi Bacula Director dalam `Bacula-Directory-Config.txt` file (terlampir).Untuk informasi lebih lanjut tentang ini, lihat [dokumentasi Bacula](https://www.bacula.org/11.0.x-manuals/en/main/main.pdf).   | DevOps insinyur | 
| Validasi bahwa konfigurasi dan jadwal cadangan sudah benar. | Ikuti instruksi dari [dokumentasi Bacula](https://www.bacula.org/11.0.x-manuals/en/main/main.pdf) untuk melakukan validasi dan pengujian cadangan untuk pengaturan Anda di server tamu Sun SPARC.Misalnya, Anda dapat menggunakan perintah berikut untuk memvalidasi file konfigurasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud.html) | DevOps insinyur | 

## Sumber daya terkait
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-resources"></a>
+ [Charon virtual SPARC dengan lisensi VE](https://aws.amazon.com/marketplace/pp/B08TBQS8NZ?qid=1621489108444&sr=0-2&ref_=srh_res_product_title)
+ [Charon SPARC virtual](https://aws.amazon.com/marketplace/pp/B07XF228LH?qid=1621489108444&sr=0-1&ref_=srh_res_product_title)
+ [Menggunakan layanan cloud dan penyimpanan objek dengan Bacula Enterprise Edition](https://www.baculasystems.com/wp-content/uploads/ObjectStorage_Bacula_Enterprise.pdf)
+ [Tujuan pemulihan bencana (DR)](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/disaster-recovery-dr-objectives.html)
+ [Solusi emulasi sistem warisan Charon](https://www.stromasys.com/solution/charon-ssp/)

## Informasi tambahan
<a name="back-up-sun-sparc-servers-in-the-stromasys-charon-ssp-emulator-on-the-aws-cloud-additional"></a>

**Opsi Backup 1 - Buat pita virtual Stromasys**

Anda dapat menggunakan contoh kode runbook Systems Manager Automation berikut untuk memulai pencadangan secara otomatis dan kemudian menukar kasetnya:

```
...
# example backup script saved in SUN SPARC Server
 #!/usr/bin/bash
 mt -f  rewind
 tar -cvf  
 mt -f  offline
...        
         mainSteps:
         - action: aws:runShellScript
           name:
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               # Validate tape backup container file exists
               if [ ! -f {{TapeBackupContainerFile}} ]; then
                 logger -s -p local3.warning "Tape backup container file is not exists - {{TapeBackupContainerFile}}, create a new one"
                 touch {{TapeBackupContainerFile}}
               fi
         - action: aws:runShellScript
           name: startBackup
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               user={{BACKUP_USER}}
               keypair={{KEYPAIR_PATH}}
               server={{SUN_SPARC_IP}}
               backup_script={{BACKUP_SCRIPT}}
               ssh -i $keypair $user@$server -c "/usr/bin/bash $backup_script"
         - action: aws:runShellScript
           name: swapVirtualDiskContainer
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               mv {{TapeBackupContainerFile}} {{TapeBackupContainerFile}}.$(date +%s)
               touch {{TapeBackupContainerFile}}
         - action: aws:runShellScript
           name: uploadBackupArchiveToS3
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               aws s3 cp {{TapeBackupContainerFile}} s3://{{BACKUP_BUCKET}}/{{SUN_SPARC_IP}}/$(date '+%Y-%m-%d')/
 ...
```

**Opsi Backup 2 - Stromasys snapshot**

****Anda dapat menggunakan contoh kode runbook Systems Manager Automation berikut untuk mengotomatiskan proses pencadangan:

```
      ...

         mainSteps:
         - action: aws:runShellScript
           name: startSnapshot
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               # You may consider some graceful stop of the application before taking a snapshot
               # Query SSP PID by configuration file
               # Example: ps ax | grep ssp-4 | grep Solaris10.cfg | awk '{print $1" "$5}' | grep ssp4 | cut -f1 -d" "
               pid=`ps ax | grep ssp-4 | grep {{SSP_GUEST_CONFIG_FILE}} | awk '{print $1" "$5}' | grep ssp4 | cut -f1 -d" "`
               if [ -n "${pid}" ]; then
                 kill -SIGTSTP ${pid}
               else
                 echo "No PID found for SPARC guest with config {{SSP_GUEST_CONFIG_FILE}}"
                 exit 1
               fi
         - action: aws:runShellScript
           name: startBackup
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               # upload snapshot and virtual disk files into S3
               aws s3 sync {{SNAPSHOT_FOLDER}} s3://{{BACKUP_BUCKET}}/$(date '+%Y-%m-%d')/
               aws s3 cp {{VIRTUAL_DISK_FILE}} s3://{{BACKUP_BUCKET}}/$(date '+%Y-%m-%d')/
         - action: aws:runShellScript
           name: restratSPARCGuest
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - |
               /opt/charon-ssp/ssp-4u/ssp4u -f {{SSP_GUEST_CONFIG_FILE}} -d -a {{SPARC_GUEST_NAME}} --snapshot {{SNAPSHOT_FOLDER}}
 ...
```

**Opsi Backup 4 -AWS Storage Gateway**VTL****

Jika Anda menggunakan zona non-global Solaris untuk menjalankan server Sun SPARC warisan tervirtualisasi, pendekatan aplikasi cadangan dapat diterapkan ke zona non-global yang berjalan di server Sun SPARC (misalnya, klien cadangan dapat berjalan di dalam zona non-global). Namun, klien cadangan juga dapat berjalan di host Solaris dan mengambil snapshot dari zona non-global. Snapshot kemudian dapat dicadangkan pada kaset.

Konfigurasi sampel berikut menambahkan sistem file yang menghosting zona non-global Solaris ke dalam konfigurasi cadangan untuk host Solaris:

```
FileSet {
   Name = "Branded Zones"
   Include {
     Options {
       signature = MD5
     }
     File = /zones
   }
 }
```

## Lampiran
<a name="attachments-9688ae50-9d0c-4d61-ab40-93df2bce4b7d"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/9688ae50-9d0c-4d61-ab40-93df2bce4b7d/attachments/attachment.zip)

# Cadangkan dan arsipkan data ke Amazon S3 dengan Veeam Backup & Replication
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication"></a>

*Jeanna James, Anthony Fiore (AWS), dan William Quigley, Amazon Web Services*

## Ringkasan
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-summary"></a>

Pola ini merinci proses pengiriman cadangan yang dibuat oleh Veeam Backup & Replication ke kelas penyimpanan objek Amazon Simple Storage Service (Amazon S3) yang didukung dengan menggunakan kemampuan repositori cadangan skala Veeam. 

Veeam mendukung beberapa kelas penyimpanan Amazon S3 agar paling sesuai dengan kebutuhan spesifik Anda. Anda dapat memilih jenis penyimpanan berdasarkan akses data, ketahanan, dan persyaratan biaya cadangan atau arsip data Anda. Misalnya, Anda dapat menyimpan data yang tidak Anda rencanakan untuk digunakan selama 30 hari atau lebih lama di Amazon S3 akses jarang (IA) dengan biaya lebih rendah. Jika Anda berencana untuk mengarsipkan data selama 90 hari atau lebih, Anda dapat menggunakan S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive dengan tingkat arsip Veeam. Anda juga dapat menggunakan S3 Object Lock untuk membuat cadangan yang tidak dapat diubah dalam Amazon S3.

Pola ini tidak mencakup cara mengatur Veeam Backup & Replication dengan tape gateway di. AWS Storage Gateway Untuk informasi tentang topik tersebut, lihat [Veeam Backup & Replication menggunakan AWS VTL Gateway - Panduan Penerapan](https://www.veeam.com/resources/wp-using-aws-vtl-gateway-deployment-guide.html) di situs web Veeam.


| 
| 
| Peringatan: Skenario ini mengharuskan pengguna AWS Identity and Access Management (IAM) dengan akses terprogram dan kredensil jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat [Memperbarui kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) di *Panduan Pengguna IAM*. | 
| --- |

## Prasyarat dan batasan
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-prereqs"></a>

**Prasyarat**
+ [Veeam Backup & Replication, termasuk Veeam Availability Suite atau Veeam Backup Essentials, diinstal (Anda dapat mendaftar untuk uji coba gratis)](https://www.veeam.com/backup-replication-virtual-physical-cloud.html)
+ Lisensi Cadangan & Replikasi Veeam dengan fungsionalitas Enterprise atau Enterprise Plus, yang mencakup Lisensi Universal Veeam (VUL)
+ Pengguna IAM aktif dengan akses ke bucket Amazon S3
+ Pengguna IAM aktif dengan akses ke Amazon Elastic Compute Cloud (Amazon EC2) dan Amazon Virtual Private Cloud (Amazon VPC), jika menggunakan tingkat arsip
+ Konektivitas jaringan dari tempat ke Layanan AWS dengan bandwidth yang tersedia untuk cadangan dan memulihkan lalu lintas melalui koneksi internet publik atau antarmuka virtual AWS Direct Connect publik (VIF)
+ Port jaringan dan titik akhir berikut dibuka untuk memastikan komunikasi yang tepat dengan repositori penyimpanan objek:
  + Penyimpanan Amazon S3 - TCP - port 443: Digunakan untuk berkomunikasi dengan penyimpanan Amazon S3.
  + Penyimpanan Amazon S3 — titik akhir cloud — `*.amazonaws.com` untuk Wilayah AWS dan AWS GovCloud (US) Regions, atau untuk Wilayah `*.amazonaws.com.rproxy.goskope.com.cn` Tiongkok: Digunakan untuk berkomunikasi dengan penyimpanan Amazon S3. Untuk daftar lengkap titik akhir koneksi, lihat titik akhir [Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) dalam dokumentasi. AWS 
  + Penyimpanan Amazon S3 - TCP HTTP - port 80: Digunakan untuk memverifikasi status sertifikat. Pertimbangkan bahwa titik akhir verifikasi sertifikat — daftar pencabutan sertifikat (CRL) URLs dan server Protokol Status Sertifikat Online (OCSP) — dapat berubah sewaktu-waktu. Daftar alamat yang sebenarnya dapat ditemukan di sertifikat itu sendiri.
  + Penyimpanan Amazon S3 — titik akhir verifikasi sertifikat —`*.amazontrust.com`: Digunakan untuk memverifikasi status sertifikat. Pertimbangkan bahwa titik akhir verifikasi sertifikat (server CRL URLs dan OCSP) dapat berubah sewaktu-waktu. Daftar alamat yang sebenarnya dapat ditemukan di sertifikat itu sendiri.

**Batasan**
+ Veeam tidak mendukung kebijakan Siklus Hidup S3 pada bucket S3 apa pun yang digunakan sebagai repositori penyimpanan objek Veeam. Ini termasuk kebijakan dengan transisi kelas penyimpanan Amazon S3 dan aturan kedaluwarsa Siklus Hidup S3. Veeam **harus** menjadi satu-satunya entitas yang mengelola objek-objek ini. Mengaktifkan kebijakan Siklus Hidup S3 mungkin memiliki hasil yang tidak terduga, termasuk kehilangan data.

**Versi produk**
+ Veeam Backup & Replication v9.5 Pembaruan 4 atau lebih baru (hanya cadangan atau tingkat kapasitas)
+ Veeam Backup & Replication v10 atau yang lebih baru (tingkat cadangan atau kapasitas dan Kunci Objek S3)
+ Veeam Backup & Replication v11 atau yang lebih baru (tingkat cadangan atau kapasitas, tingkat arsip atau arsip, dan Kunci Objek S3)
+ Veeam Backup & Replication v12 atau yang lebih baru (tingkat kinerja, tingkat cadangan atau kapasitas, tingkat arsip atau arsip, dan Kunci Objek S3)
+ S3 Standard
+ S3 Standard-IA
+ S3 One Zone-IA
+ Pengambilan Fleksibel Gletser S3 (hanya v11 dan yang lebih baru)
+ S3 Glacier Deep Archive (hanya v11 dan yang lebih baru)
+ Pengambilan Instan Gletser S3 (hanya v12 dan yang lebih baru)

## Arsitektur
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-architecture"></a>

**Tumpukan teknologi sumber**
+ Instalasi Cadangan & Replikasi Veeam lokal dengan konektivitas dari server cadangan Veeam atau server gateway Veeam ke Amazon S3

**Tumpukan teknologi target**
+ Amazon S3
+ Amazon VPC dan Amazon EC2 (jika menggunakan tingkat arsip)

**Arsitektur target: SOBR**

Diagram berikut menunjukkan arsitektur scale-out backup repository (SOBR).

![\[Arsitektur SOBR untuk mencadangkan data dari Veeam ke Amazon S3\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7f3a36f7-31dc-45c8-87b2-c5dd37f7a01e/images/b48fd0cd-b66c-4ef7-b6fa-0ed53354e1a2.png)


Perangkat lunak Cadangan dan Replikasi Veeam melindungi data dari kesalahan logis seperti kegagalan sistem, kesalahan aplikasi, atau penghapusan yang tidak disengaja. Dalam diagram ini, backup dijalankan di tempat pertama, dan salinan sekunder dikirim langsung ke Amazon S3. Cadangan mewakili point-in-time salinan data.

Alur kerja terdiri dari tiga komponen utama yang diperlukan untuk tiering atau menyalin cadangan ke Amazon S3, dan satu komponen opsional:
+ Veeam Backup & Replication (1) — Server cadangan yang bertanggung jawab untuk mengkoordinasikan, mengendalikan, dan mengelola infrastruktur cadangan, pengaturan, pekerjaan, tugas pemulihan, dan proses lainnya.
+ Server gateway Veeam (tidak ditampilkan dalam diagram) — Server gateway lokal opsional yang diperlukan jika server cadangan Veeam tidak memiliki konektivitas keluar ke Amazon S3.
+ Repositori cadangan scale-out (2) - Sistem repositori dengan dukungan penskalaan horizontal untuk penyimpanan data multi-tier. Repositori cadangan scale-out terdiri dari satu atau lebih repositori cadangan yang menyediakan akses cepat ke data dan dapat diperluas dengan repositori penyimpanan objek Amazon S3 untuk penyimpanan jangka panjang (tingkat kapasitas) dan pengarsipan (tingkat arsip). Veeam menggunakan repositori cadangan scale-out untuk mengatur data secara otomatis antara penyimpanan objek lokal (tingkat kinerja) dan Amazon S3 (kapasitas dan tingkatan arsip). 
**catatan**  
Dimulai dengan Veeam Backup & Replication v12.2, fitur Direct to S3 Glacier menjadikan tingkat kapasitas S3 opsional. SOBR dapat dikonfigurasi dengan tingkat kinerja dan tingkat arsip S3 Glacier. Konfigurasi ini berguna bagi pengguna yang memiliki investasi signifikan dalam penyimpanan lokal (lokal) untuk tingkat kapasitas dan yang hanya memerlukan retensi arsip jangka panjang di cloud. Untuk informasi selengkapnya, lihat dokumentasi [Backup & Replikasi Veeam](https://helpcenter.veeam.com/docs/backup/vsphere/archive_tier.html?ver=120).
+ Amazon S3 (3) — layanan penyimpanan AWS objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja.

**Arsitektur target: DTO**

Diagram berikut menunjukkan arsitektur direct-to-object (DTO).

![\[Arsitektur DTO untuk mencadangkan data dari Veeam ke Amazon S3\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7f3a36f7-31dc-45c8-87b2-c5dd37f7a01e/images/9debe53a-d70a-43fa-844c-f93fa22124eb.png)


Dalam diagram ini, data cadangan langsung masuk ke Amazon S3 tanpa disimpan di tempat terlebih dahulu. Salinan sekunder dapat disimpan di S3 Glacier.

**Otomatisasi dan skala**

[Anda dapat mengotomatiskan pembuatan sumber daya IAM dan bucket S3 dengan menggunakan CloudFormation templat yang disediakan di repositori. VeeamHub GitHub ](https://github.com/VeeamHub/veeam-aws-cloudformation/tree/master/veeam-backup-and-replication) Template mencakup opsi standar dan tidak dapat diubah.

## Alat
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-tools"></a>

**Alat dan Layanan AWS**
+ [Veeam Backup & Replication](https://www.veeam.com/vm-backup-recovery-replication-software.html) adalah solusi dari Veeam untuk melindungi, mencadangkan, mereplikasi, dan memulihkan beban kerja virtual dan fisik Anda.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda memodelkan dan menyiapkan AWS sumber daya Anda, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Anda dapat mengelola dan menyediakan tumpukan di beberapa Akun AWS dan Wilayah AWS.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat menggunakan Amazon EC2 untuk meluncurkan server virtual sebanyak atau sesedikit yang Anda butuhkan, dan Anda dapat meningkatkan skala atau menskalakan.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) adalah layanan web untuk mengontrol akses dengan aman. Layanan AWS Dengan IAM, Anda dapat mengelola pengguna secara terpusat, kredensi keamanan seperti kunci akses, dan izin yang mengontrol AWS sumber daya mana yang dapat diakses pengguna dan aplikasi.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web.
+ [Amazon S3 Glacier (S3 Glacier) adalah layanan yang aman dan tahan lama untuk pengarsipan](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) data berbiaya rendah dan pencadangan jangka panjang.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/) menyediakan bagian yang terisolasi secara logis di AWS Cloud mana Anda dapat meluncurkan AWS sumber daya di jaringan virtual yang telah Anda tentukan. Jaringan virtual ini sangat mirip dengan jaringan konvensional yang akan Anda operasikan di pusat data Anda sendiri dengan manfaatnya, yaitu menggunakan infrastruktur AWS yang dapat diskalakan.

**Kode**

Gunakan CloudFormation template yang disediakan di [VeeamHub GitHub repositori](https://github.com/VeeamHub/veeam-aws-cloudformation/tree/master/veeam-backup-and-replication) untuk secara otomatis membuat sumber daya IAM dan bucket S3 untuk pola ini. Jika Anda lebih suka membuat sumber daya ini secara manual, ikuti langkah-langkah di bagian *Epik*.

## Praktik terbaik
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-best-practices"></a>

Sesuai dengan praktik terbaik IAM, kami sangat menyarankan agar Anda secara teratur memutar kredensil pengguna IAM jangka panjang, seperti pengguna IAM yang Anda gunakan untuk menulis cadangan Cadangan & Replikasi Veeam ke Amazon S3. Untuk informasi selengkapnya, lihat [Praktik terbaik keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials) dalam dokumentasi IAM.

## Epik
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-epics"></a>

### Konfigurasikan penyimpanan Amazon S3 di akun Anda
<a name="configure-s3-storage-in-your-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna IAM. | Ikuti [petunjuk dalam dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) untuk membuat pengguna IAM. Pengguna ini seharusnya tidak memiliki akses AWS konsol, dan Anda perlu membuat kunci akses untuk pengguna ini. Veeam menggunakan entitas ini untuk mengautentikasi dengan membaca dan menulis AWS ke bucket S3 Anda. Anda harus memberikan hak istimewa paling sedikit (yaitu, hanya memberikan izin yang diperlukan untuk melakukan tugas) sehingga pengguna tidak memiliki otoritas lebih dari yang dibutuhkan. [Misalnya kebijakan IAM untuk dilampirkan ke pengguna Veeam IAM Anda, lihat bagian Informasi tambahan.](#back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-additional)Atau, Anda dapat menggunakan CloudFormation template yang disediakan di [VeeamHub GitHub repositori](https://github.com/VeeamHub/veeam-aws-cloudformation/tree/master/veeam-backup-and-replication) untuk membuat pengguna IAM dan bucket S3 untuk pola ini. | Administrator AWS | 
| Buat ember S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html)Untuk informasi selengkapnya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3. | Administrator AWS | 

### Tambahkan Pengambilan Fleksibel Amazon S3 dan S3 Glacier (atau S3 Glacier Deep Archive) ke Cadangan & Replikasi Veeam
<a name="add-s3-and-s3-storage-class-glacier-or-s3-storage-class-deep-archive-to-veeam-backup-amp-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan wizard Repositori Objek Baru. | Sebelum Anda mengatur penyimpanan objek dan repositori cadangan skala di Veeam, Anda harus menambahkan repositori penyimpanan Amazon S3 dan S3 Glacier yang ingin Anda gunakan untuk kapasitas dan tingkatan arsip. Dalam epik berikutnya, Anda akan menghubungkan repositori penyimpanan ini ke repositori cadangan scale-out Anda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html) | Administrator AWS, Pemilik aplikasi | 
| Tambahkan penyimpanan Amazon S3 untuk tingkat kapasitas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html) | Administrator AWS, Pemilik aplikasi | 
| Tambahkan penyimpanan S3 Glacier untuk tingkat arsip. | Jika Anda ingin membuat tingkat arsip, gunakan izin IAM yang dirinci di bagian [Informasi tambahan](#back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-additional). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html) | Administrator AWS, Pemilik aplikasi | 

### Tambahkan repositori cadangan skala
<a name="add-scale-out-backup-repositories"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan wizard Repositori Cadangan Scale-Out Baru. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html) | Pemilik aplikasi, administrator sistem AWS | 
| Tambahkan repositori cadangan scale-out dan konfigurasikan kapasitas dan tingkatan arsip. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication.html) | Pemilik aplikasi, administrator sistem AWS | 

## Sumber daya terkait
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-resources"></a>
+ [Membuat pengguna IAM di Akun AWS(dokumentasi IAM) Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)
+ [Membuat ember](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) (dokumentasi Amazon S3)
+ [Memblokir akses publik ke penyimpanan Amazon S3 Anda (dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) Amazon S3)
+ [Menggunakan Kunci Objek S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) (dokumentasi Amazon S3)
+ [Dokumentasi teknis Veeam](https://www.veeam.com/documentation-guides-datasheets.html)
+ [Cara Membuat Kebijakan IAM Aman untuk Koneksi ke Penyimpanan Objek S3](https://www.veeam.com/kb3151) (dokumentasi Veeam)

## Informasi tambahan
<a name="back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-additional"></a>

Bagian berikut menyediakan contoh kebijakan IAM yang dapat Anda gunakan saat membuat pengguna IAM di bagian [Epics](#back-up-and-archive-data-to-amazon-s3-with-veeam-backup-replication-epics) dari pola ini.

**Kebijakan IAM untuk tingkat kapasitas**

**catatan**  
Ubah nama bucket S3 dalam kebijakan contoh dari `<yourbucketname>` ke nama bucket S3 yang ingin Anda gunakan untuk cadangan tingkat kapasitas Veeam. Perhatikan juga bahwa kebijakan harus dibatasi pada sumber daya spesifik yang digunakan untuk Veeam (ditunjukkan oleh `Resource` spesifikasi dalam kebijakan berikut), dan bahwa bagian pertama kebijakan menonaktifkan enkripsi sisi klien, seperti yang dibahas dalam posting AWS blog [Mencegah enkripsi objek Amazon S3 yang tidak diinginkan](https://aws.amazon.com/blogs/security/preventing-unintended-encryption-of-amazon-s3-objects/).

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictSSECObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<your-bucket-name>/*",
            "Condition": {
                "Null": {
                    "s3:x-amz-server-side-encryption-customer-algorithm": "false"
                }
            }
        },
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectVersion",
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:PutObjectLegalHold",
                "s3:GetBucketVersioning",
                "s3:GetObjectLegalHold",
                "s3:GetBucketObjectLockConfiguration",
                "s3:PutObject*",
                "s3:GetObject*",
                "s3:GetEncryptionConfiguration",
                "s3:PutObjectRetention",
                "s3:PutBucketObjectLockConfiguration",
                "s3:DeleteObject*",
                "s3:DeleteObjectVersion",
                "s3:GetBucketLocation"

            ],
            "Resource": [
                "arn:aws:s3:::<yourbucketname>",
                "arn:aws:s3:::<yourbucketname>/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}
```

**Kebijakan IAM untuk tingkat arsip**

**catatan**  
 Ubah nama bucket S3 dalam kebijakan contoh dari `<yourbucketname>` ke nama bucket S3 yang ingin Anda gunakan untuk cadangan tingkat arsip Veeam.

**Untuk menggunakan VPC, subnet, dan grup keamanan yang ada:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:PutObject",
                "s3:GetObject",
                "s3:RestoreObject",
                "s3:ListBucket",
                "s3:AbortMultipartUpload",
                "s3:GetBucketVersioning",
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:GetBucketObjectLockConfiguration",
                "s3:PutObjectRetention",
                "s3:GetObjectVersion",
                "s3:PutObjectLegalHold",
                "s3:GetObjectRetention",
                "s3:DeleteObjectVersion",
                "s3:ListBucketVersions"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EC2Permissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateKeyPair",
                "ec2:DescribeKeyPairs",
                "ec2:RunInstances",
                "ec2:DeleteKeyPair",
                "ec2:DescribeVpcAttribute",
                "ec2:CreateTags",
                "ec2:DescribeSubnets",
                "ec2:TerminateInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeImages",
                "ec2:DescribeVpcs"
            ],
            "Resource": "arn:aws:ec2:<region>:<account-id>:*"
        }
    ]
}
```

**Untuk membuat VPC, subnet, dan grup keamanan baru:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:PutObject",
                "s3:GetObject",
                "s3:RestoreObject",
                "s3:ListBucket",
                "s3:AbortMultipartUpload",
                "s3:GetBucketVersioning",
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:GetBucketObjectLockConfiguration",
                "s3:PutObjectRetention",
                "s3:GetObjectVersion",
                "s3:PutObjectLegalHold",
                "s3:GetObjectRetention",
                "s3:DeleteObjectVersion",
                "s3:ListBucketVersions"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EC2Permissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateKeyPair",
                "ec2:DescribeKeyPairs",
                "ec2:RunInstances",
                "ec2:DeleteKeyPair",
                "ec2:DescribeVpcAttribute",
                "ec2:CreateTags",
                "ec2:DescribeSubnets",
                "ec2:TerminateInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeImages",
                "ec2:DescribeVpcs",
                "ec2:CreateVpc",
                "ec2:CreateSubnet",
                "ec2:DescribeAvailabilityZones",
                "ec2:CreateRoute",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:ModifyVpcAttribute",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:DescribeRouteTables",
                "ec2:DescribeInstanceTypes"
            ],
            "Resource": "*"
        }
    ]
}
```

# Salin data dari bucket Amazon S3 ke akun dan Wilayah lain dengan menggunakan AWS CLI
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli"></a>

*Appasaheb Bagali dan Purushotham G K, Amazon Web Services*

## Ringkasan
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-summary"></a>

Pola ini menjelaskan cara memigrasikan data dari bucket Amazon Simple Storage Service (Amazon S3) sumber di akun ke bucket Amazon S3 tujuan di AWS AWS akun lain, baik di wilayah yang sama maupun di Wilayah yang berbeda. Wilayah AWS 

Bucket Amazon S3 sumber memungkinkan akses AWS Identity and Access Management (IAM) dengan menggunakan kebijakan sumber daya terlampir. Pengguna di akun tujuan harus mengambil peran yang memiliki `PutObject` dan `GetObject` izin untuk bucket sumber. Terakhir, Anda menjalankan `copy` dan `sync` memerintahkan untuk mentransfer data dari bucket Amazon S3 sumber ke bucket Amazon S3 tujuan.

Akun memiliki objek yang mereka unggah ke ember Amazon S3. Jika Anda menyalin objek di seluruh akun dan Wilayah, Anda memberikan kepemilikan akun tujuan atas objek yang disalin. Anda dapat mengubah kepemilikan objek dengan mengubah [daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) menjadi`bucket-owner-full-control`. Namun, kami menyarankan Anda memberikan izin lintas akun terprogram ke akun tujuan karena mungkin ACLs sulit dikelola untuk beberapa objek.

**Awas**  
Skenario ini mengharuskan pengguna IAM dengan akses terprogram dan kredensil jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat [Memperbarui kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) dalam dokumentasi IAM.

## Prasyarat dan batasan
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-prereqs"></a>

*Prasyarat*
+ Dua aktif Akun AWS dalam hal yang sama atau berbeda Wilayah AWS.
+ Bucket Amazon S3 yang ada di akun sumber. 
+ Jika bucket Amazon S3 sumber atau tujuan Anda mengaktifkan [enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html), Anda harus mengubah izin kunci AWS Key Management Service (AWS KMS). Untuk informasi lebih lanjut, lihat [artikel AWS re:Post](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) tentang topik ini. 
+ Keakraban dengan izin lintas akun.

*Batasan*
+ Pola ini mencakup migrasi satu kali. Untuk skenario yang memerlukan migrasi objek baru secara terus menerus dan otomatis dari bucket sumber ke bucket tujuan, Anda dapat menggunakan Replikasi [Batch Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html).
+ Pola ini menggunakan kredenal sesi (`AccessKeyId`,`SecretAccessKey`, dan`SessionToken`) yang bersifat sementara dan tidak persisten. Stempel waktu kedaluwarsa dalam output menunjukkan kapan kredensil ini kedaluwarsa. Peran dikonfigurasi dengan durasi sesi maksimum. Pekerjaan penyalinan akan dibatalkan jika sesi berakhir.

## Arsitektur
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-architecture"></a>

 

![\[Menyalin data Amazon S3 ke akun atau Wilayah lain\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a574c26b-fdd9-4472-842b-b34c3eb2bfe9/images/5e4dec53-dfc8-478b-a7c4-503d63c8ac4e.png)


## Alat
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

## Praktik terbaik
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-best-practices"></a>
+ [Praktik terbaik keamanan dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (dokumentasi IAM)
+ [Menerapkan izin hak istimewa paling sedikit (dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege))

## Epik
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-epics"></a>

### Buat pengguna IAM dan peran di tujuan Akun AWS
<a name="create-an-iam-user-and-role-in-the-destination-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna IAM dan dapatkan kunci akses. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html) | AWS DevOps | 
| Buat kebijakan berbasis identitas IAM. | Buat kebijakan berbasis identitas IAM yang diberi nama menggunakan izin `S3MigrationPolicy` berikut. Ubah nama bucket sumber dan tujuan sesuai dengan kasus penggunaan Anda. Kebijakan berbasis identitas ini memungkinkan pengguna yang mengambil peran ini untuk mengakses bucket sumber dan bucket tujuan. Untuk petunjuk terperinci, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dalam dokumentasi IAM. <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:ListObjectsV2",<br />                "s3:GetObject",<br />                "s3:GetObjectTagging",<br />                "s3:GetObjectVersion",<br />                "s3:GetObjectVersionTagging"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket",<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket/*"<br />            ]<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:PutObject",<br />                "s3:PutObjectAcl",<br />                "s3:PutObjectTagging",<br />                "s3:GetObjectTagging",<br />                "s3:ListObjectsV2",<br />                "s3:GetObjectVersion",<br />                "s3:GetObjectVersionTagging"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::amazon-s3-demo-destination-bucket",<br />                "arn:aws:s3:::amazon-s3-demo-destination-bucket/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS DevOps | 
| Buat peran IAM. | Buat peran IAM bernama `S3MigrationRole` dengan menggunakan kebijakan kepercayaan berikut. Ubah Nama Sumber Daya Amazon (ARN) peran IAM tujuan atau nama pengguna dalam kebijakan kepercayaan sesuai dengan kasus penggunaan Anda. Kebijakan kepercayaan ini memungkinkan pengguna IAM yang baru dibuat untuk berasumsi`S3MigrationRole`. Lampirkan yang dibuat sebelumnya`S3MigrationPolicy`. Untuk langkah-langkah mendetail, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam dokumentasi IAM.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<destination_account>:user/<user_name>"<br />            },<br />            "Action": "sts:AssumeRole",<br />            "Condition": {}<br />        }<br />    ]<br />}</pre> | AWS DevOps | 

### Buat dan lampirkan kebijakan bucket Amazon S3 di akun sumber
<a name="create-and-attach-the-s3-bucket-policy-in-the-source-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan lampirkan kebijakan bucket Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html) | Administrator awan | 

### Konfigurasikan bucket Amazon S3 tujuan
<a name="configure-the-destination-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket Amazon S3 tujuan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html) | Administrator awan | 

### Salin data ke bucket Amazon S3 tujuan
<a name="copy-data-to-the-destination-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS CLI dengan kredensil pengguna yang baru dibuat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html) | AWS DevOps | 
| Asumsikan peran migrasi Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html)Untuk informasi selengkapnya, lihat [Bagaimana cara menggunakan AWS CLI untuk mengambil peran IAM?](https://repost.aws/knowledge-center/iam-assume-role-cli) | Administrator AWS | 
| Menyalin dan menyinkronkan data dari bucket sumber ke bucket tujuan. | Ketika Anda telah mengambil peran, `S3MigrationRole` Anda dapat menyalin data menggunakan perintah [copy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) (`cp`) atau [synchronize](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html) (`sync`).Salin:<pre>aws s3 cp s3://amazon-s3-demo-source-bucket/ \<br />    s3://amazon-s3-demo-destination-bucket/ \<br />    --recursive --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME</pre>Sinkronisasi:<pre>aws s3 sync s3://amazon-s3-demo-source-bucket/ \<br />    s3://amazon-s3-demo-destination-bucket/ \<br />    --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME</pre> | Administrator awan | 

## Pemecahan masalah
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Terjadi kesalahan (`AccessDenied`) saat memanggil `ListObjects` operasi | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli.html) | 

## Sumber daya terkait
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-resources"></a>
+ [Membuat bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) (dokumentasi Amazon S3)
+ [Kebijakan bucket Amazon S3 dan kebijakan pengguna (dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) Amazon S3)
+ [Identitas IAM (pengguna, grup, dan peran) (dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html?icmpid=docs_iam_console) IAM)
+ [perintah cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) (AWS CLI dokumentasi)
+ [perintah sinkronisasi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html) (AWS CLI dokumentasi)

# Aktifkan pengarsipan DB2 log langsung ke Amazon S3 dalam database IBM Db2
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database"></a>

*Ambarish Satarkar, Amazon Web Services*

## Ringkasan
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-summary"></a>

Pola ini menjelaskan cara menggunakan Amazon Simple Storage Service (Amazon S3) sebagai penyimpanan katalog untuk log arsip yang dihasilkan oleh IBM Db2, tanpa menggunakan area pementasan. 

Anda dapat menentukan penyimpanan Amazon S3 [DB2REMOTE](https://www.ibm.com/docs/en/db2/12.1.0?topic=storage-db2remote-identifiers) untuk parameter konfigurasi metode arsip [log logarchmeth1 dan [logarchmeth2](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth2-secondary-log-archive-method)](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth1-primary-log-archive-method). Anda dapat menggunakan `logarchmeth1` parameter untuk menentukan tujuan utama untuk log yang diarsipkan dari jalur log saat ini. Dengan kemampuan ini, Anda dapat mengarsipkan dan mengambil log transaksi ke dan dari Amazon S3 secara langsung, tanpa menggunakan area pementasan.

[Amazon S3](https://aws.amazon.com/s3/) menyimpan data yang diunggah ke dalamnya setidaknya di tiga perangkat dalam satu. Wilayah AWS Jutaan pelanggan dari semua ukuran dan industri menggunakan Amazon S3 untuk menyimpan cadangan perusahaan mengingat ketersediaannya yang tinggi, opsi penyimpanan yang fleksibel, kebijakan siklus hidup, dan keamanan.

## Prasyarat dan batasan
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Database IBM Db2 berjalan pada instans Amazon Elastic Compute Cloud (Amazon). EC2
+ AWS Command Line Interface (AWS CLI) diinstal
+ [libcurl](https://curl.se/libcurl/) dan [libxml2 diinstal pada instance Db2](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home). EC2 

**Batasan**
+ Hanya [Db2 11.5.7](https://www.ibm.com/docs/en/db2/11.5.x?topic=new-1157) atau yang lebih baru yang memungkinkan pengarsipan log langsung ke penyimpanan Amazon S3.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.
+ Di semua konfigurasi, batasan berikut ada untuk Amazon S3:
  + AWS Key Management Service (AWS KMS) tidak didukung.
  + AWS kredensyal berbasis peran AWS Identity and Access Management ((IAM)) atau berbasis token (AWS Security Token Service (AWS STS)) tidak didukung.

**Versi produk**
+ AWS CLI versi 2 atau yang lebih baru
+ IBM Db2 11.5.7 atau yang lebih baru
+ Linux SUSE Linux Enterprise Server (SLES) 11 atau yang lebih baru
+ Red Hat Enterprise Linux (RHEL) 6 atau lebih baru
+ Windows Server 2008 R2, 2012 (R2), 2016, atau 2019

## Arsitektur
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-architecture"></a>

Diagram berikut menunjukkan komponen dan alur kerja untuk pola ini.

![\[Alur kerja untuk menggunakan Amazon S3 untuk penyimpanan katalog untuk log arsip yang dihasilkan oleh Db2.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7a10333e-07be-4144-9913-45c60a2f51ea/images/0437d348-1688-4c3e-9aa5-43535afe08c6.png)


Arsitektur pada AWS Cloud meliputi yang berikut:
+ **Virtual Private Cloud (VPC)** — Bagian yang terisolasi secara logis dari AWS Cloud tempat Anda meluncurkan sumber daya.
+ **Availability Zone** - Menyediakan ketersediaan tinggi dengan menjalankan beban kerja Db2 LUW (Linux, Unix, Windows) di pusat data yang terisolasi di dalam. Wilayah AWS
+ **Public subnet** — Menyediakan akses RDP (Remote Desktop Protocol) untuk administrator dan konektivitas internet melalui gateway NAT.
+ **Subnet pribadi - Menghosting** database Db2 LUW. Instance Db2 LUW dikonfigurasi dengan parameter. `LOGARCHMETH1` Parameter menulis file arsip log database langsung ke jalur Amazon S3 melalui titik akhir gateway.

Berikut ini Layanan AWS memberikan dukungan:
+ **Amazon S3** - Berfungsi sebagai lokasi penyimpanan yang tahan lama dan dapat diskalakan untuk file arsip log Db2.
+ **Amazon Elastic File System (Amazon EFS)** - Menyediakan sistem file bersama yang dikelola sepenuhnya yang dapat digunakan Db2 untuk pencadangan dan pementasan basis data. Db2 juga dapat menggunakan Amazon EFS sebagai titik pemasangan untuk file log sebelum diarsipkan ke Amazon S3.
+ **Amazon CloudWatch** — Mengumpulkan dan memantau metrik, log, dan peristiwa dari Db2 dan instans yang mendasarinya. EC2 Anda dapat menggunakannya CloudWatch untuk membuat alarm, dasbor, dan respons otomatis terhadap masalah kinerja atau ketersediaan.

**Otomatisasi dan skala**
+ Pola ini memberikan solusi yang sepenuhnya otomatis untuk menyimpan cadangan arsip log Db2.
+ Anda dapat menggunakan bucket Amazon S3 yang sama untuk mengaktifkan arsip log dari beberapa database Db2.

## Alat
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-tools"></a>

**Layanan AWS**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) membantu Anda memantau metrik sumber AWS daya Anda dan aplikasi yang Anda jalankan AWS secara real time.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) membantu Anda membuat dan mengonfigurasi sistem file bersama di file AWS Cloud.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS

**Alat-alat lainnya**
+ [libcurl adalah pustaka](https://curl.se/libcurl/) transfer URL sisi klien gratis.
+ [libxml2 adalah parser](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home) dan toolkit XMLC gratis.

## Praktik terbaik
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-best-practices"></a>
+ Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat [Berikan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) dan [praktik terbaik Keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam dokumentasi IAM.

## Epik
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-epics"></a>

### Konfigurasikan Layanan AWS
<a name="configure-aws-services"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengatur AWS CLI. | Untuk [mengunduh dan menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.htmlhttps://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html), gunakan perintah berikut:<pre>i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />ii) unzip awscliv2.zip<br />iii) sudo ./aws/install</pre> | Administrator sistem AWS, administrator AWS | 
| Konfigurasikan AWS CLI. | Untuk [mengkonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html), gunakan perintah berikut:<pre>$ aws configure<br />AWS Access Key ID [None]:*******************************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: < aws region ><br />Default output format [None]: text</pre> | Administrator sistem AWS, administrator AWS | 
| Buat pengguna IAM. | Untuk membuat pengguna IAM untuk digunakan nanti untuk koneksi database Db2 dengan Amazon S3, gunakan perintah berikut:`aws iam create-user --user-name <unique username>`Berikut ini adalah contoh dari perintah:`aws iam create-user --user-name db_backup_user`Skenario ini mengharuskan pengguna IAM dengan akses terprogram dan kredensyal jangka panjang, yang menghadirkan risiko keamanan. Untuk mengurangi risiko ini, kami menyarankan agar Anda memberi pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat [kredensyal AWS keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys) dan [Kelola kunci akses untuk pengguna IAM dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) IAM. | Administrator sistem AWS | 
| Buat ember Amazon S3. | Untuk membuat bucket Amazon S3 untuk menyimpan cadangan database, gunakan perintah berikut:`aws s3api create-bucket --bucket <unique bucket name> --region <aws region>`Berikut ini adalah contoh perintah:`aws s3api create-bucket --bucket myfirstbucket --region af-south-1` | Administrator sistem AWS | 
| Otorisasi pengguna IAM. | Untuk mengizinkan pengguna IAM yang baru dibuat agar memiliki izin Amazon S3, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database.html) | Administrator sistem AWS, administrator AWS | 
| Buat kunci akses. | Untuk menghasilkan kunci akses untuk mengakses Amazon S3 secara terprogram dari DB2 instance, gunakan perintah berikut:`aws iam create-access-key --user-name <username>`Berikut ini adalah contoh dari perintah:`aws iam create-access-key --user-name db_backup_user`Skenario ini mengharuskan pengguna IAM dengan akses terprogram dan kredensyal jangka panjang, yang menghadirkan risiko keamanan. Untuk mengurangi risiko ini, kami menyarankan agar Anda memberi pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat [kredensyal AWS keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys) dan [Kelola kunci akses untuk pengguna IAM dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) IAM. | Administrator sistem AWS | 
| Buat keystore PKCS. | Untuk membuat keystore PKCS untuk menyimpan kunci dan membuat kunci akses rahasia untuk mentransfer data ke Amazon S3, gunakan perintah berikut: <pre>gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash</pre> | Administrator sistem AWS | 
|  DB2 Konfigurasikan untuk menggunakan keystore. | Untuk mengkonfigurasi DB2 untuk menggunakan keystore dengan `keystore_type` parameter `keystore_location` dan, gunakan perintah berikut:<pre>db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"</pre> | Administrator sistem AWS | 
| Buat alias akses DB2 penyimpanan. | Alias akses penyimpanan menentukan bucket Amazon S3 yang akan digunakan. Ini juga menyediakan detail koneksi seperti nama pengguna dan kata sandi yang disimpan di keystore lokal dalam format terenkripsi. Untuk informasi selengkapnya, lihat [perintah CATALOG STORAGE ACCESS](https://www.ibm.com/docs/en/db2/12.1.0?topic=commands-catalog-storage-access) dalam dokumentasi IBM Db2.Untuk membuat alias akses penyimpanan, gunakan sintaks berikut:<pre>db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> user '<access_key>' password '<secret_access_key>' container '<bucket_name>'"</pre>Berikut ini adalah contoh:<pre>db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"</pre> | Administrator sistem AWS | 

### Perbarui lokasi logarchmeth1 dan mulai ulang DB2 DB2
<a name="update-logarchmeth1-location-in-db2-and-restart-db2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui `LOGARCHMETH1` lokasi. | Untuk menggunakan alias akses penyimpanan yang Anda tentukan sebelumnya, perbarui parameter `LOGARCHMETH1` database, gunakan perintah berikut:<pre>db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'</pre>Untuk memisahkan log dari file lain, tentukan subdirektori (yaitu, awalan bucket Amazon S3`TESTDB_LOGS`) untuk menyimpan log dalam bucket S3.Berikut ini adalah contoh:<pre>db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'</pre>Anda akan melihat pesan berikut: `DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | Administrator sistem AWS | 
| Mulai ulang DB2. | Mulai ulang DB2 instance setelah mengkonfigurasi ulang untuk pengarsipan log.Namun, jika `LOGARCHMETH1 ` sebelumnya disetel ke lokasi sistem file apa pun, maka restart tidak diperlukan. | Administrator AWS, administrator sistem AWS | 

### Periksa jalur log arsip di Amazon S3 dan db2diag.log
<a name="check-the-archive-log-path-in-s3-and-db2diag-log"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa log arsip di Amazon S3. | Pada titik ini, database Anda sepenuhnya dikonfigurasi untuk mengarsipkan log transaksi langsung ke penyimpanan Amazon S3. Untuk mengonfirmasi konfigurasi, mulailah menjalankan aktivitas transaksional pada database untuk mulai mengkonsumsi (dan mengarsipkan) ruang log. Kemudian, periksa log arsip di Amazon S3. | Administrator AWS, administrator sistem AWS | 
| Periksa konfigurasi log arsip di`db2diag.log`. | Setelah Anda memeriksa log arsip di Amazon S3, cari pesan berikut di log DB2 diagnostik: `db2diag.log``MESSAGE : ADM1846I  Completed archive for log file "S0000079.LOG" to Completed archive for log file S0000080.LOG to DB2REMOTE://<AWS S3 Bucket Name>/<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. MESSAGE : ADM1846I  Completed archive for log file "S0000080.LOG" to Completed archive for log file S0000081.LOG to DB2REMOTE://<AWS S3 Bucket Name> /<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. `Pesan ini mengonfirmasi bahwa file log DB2 transaksi tertutup sedang diarsipkan ke penyimpanan Amazon S3 (jarak jauh). | Administrator sistem AWS | 

## Sumber daya terkait
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-resources"></a>

**AWS dokumentasi layanan**
+ [AWS kredensyal keamanan (dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys) IAM)
+ [Berikan hak istimewa paling sedikit](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) (dokumentasi IAM)
+ [Mengelola kunci akses untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) (dokumentasi IAM)
+ [Praktik terbaik keamanan dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (dokumentasi IAM)

**Sumber daya IBM**
+ [Basis Data IBM Db2](https://www.ibm.com/products/db2-database)
+ [logarchmeth1 - Parameter konfigurasi metode arsip log primer](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth1-primary-log-archive-method)
+ [logarchmeth2 - Parameter konfigurasi metode arsip log sekunder](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth2-secondary-log-archive-method)
+ [Penyimpanan jarak jauh](https://www.ibm.com/docs/en/db2/12.1.0?topic=databases-remote-storage) 

# Memigrasikan data dari lingkungan Hadoop lokal ke Amazon S3 menggunakan AWS untuk Amazon S3 DistCp PrivateLink
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3"></a>

*Jason Owens, Andres Cantor, Jeff Klopfenstein, Bruno Rocha Oliveira, dan Samuel Schmidt, Amazon Web Services*

## Ringkasan
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-summary"></a>

Pola ini menunjukkan cara memigrasikan hampir semua jumlah data dari lingkungan Apache Hadoop lokal ke Amazon Web Services (AWS) Cloud dengan menggunakan alat open-source Apache dengan [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)AWS PrivateLink for Amazon Simple Storage Service (Amazon S3). Alih-alih menggunakan internet publik atau solusi proxy untuk memigrasikan data, Anda dapat menggunakan [AWS PrivateLink untuk Amazon S3 untuk](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) memigrasikan data ke Amazon S3 melalui koneksi jaringan pribadi antara pusat data lokal dan Amazon Virtual Private Cloud (Amazon VPC). Jika Anda menggunakan entri DNS di Amazon Route 53 atau menambahkan entri dalam file **/etc/hosts** di semua node cluster Hadoop lokal, maka Anda secara otomatis diarahkan ke titik akhir antarmuka yang benar.

Panduan ini memberikan petunjuk penggunaan DistCp untuk memigrasikan data ke AWS Cloud. DistCp adalah alat yang paling umum digunakan, tetapi alat migrasi lainnya tersedia. [Misalnya, Anda dapat menggunakan alat AWS offline seperti AWS [Snowball atau AWS Snowmobile](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowball)[, atau alat AWS](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowmobile) online seperti AWS Storage [Gateway atau AWS](https://docs.aws.amazon.com/storagegateway/latest/userguide/migrate-data.html). DataSync](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-datasync-hadoop-aws-storage-services/) Selain itu, Anda dapat menggunakan alat sumber terbuka lainnya seperti [ NiFiApache](https://nifi.apache.org/).

## Prasyarat dan batasan
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif dengan koneksi jaringan pribadi antara pusat data lokal dan AWS Cloud
+ [Hadoop](https://hadoop.apache.org/releases.html), dipasang di tempat dengan [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)
+ Pengguna Hadoop dengan akses ke data migrasi di Hadoop Distributed File System (HDFS)
+ [AWS Command Line Interface (AWS CLI)[,](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) diinstal dan dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket-console.html) untuk memasukkan objek ke dalam bucket S3

**Batasan**

Batasan cloud pribadi virtual (VPC) berlaku PrivateLink untuk AWS untuk Amazon S3. Untuk informasi selengkapnya, lihat [properti dan batasan titik akhir antarmuka PrivateLink ](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) [serta kuota AWS](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) ( PrivateLink dokumentasi AWS).

AWS PrivateLink untuk Amazon S3 tidak mendukung hal berikut:
+ [Titik Akhir Standar Proses Informasi Federal (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Titik akhir situs web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html)
+ [Titik akhir warisan global](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint)

## Arsitektur
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-architecture"></a>

**Tumpukan teknologi sumber**
+ Cluster Hadoop dengan terpasang DistCp 

**Tumpukan teknologi target**
+ Amazon S3
+ Amazon VPC

**Arsitektur target**

![\[Kluster Hadoop dengan DistCp menyalin data dari lingkungan lokal melalui Direct Connect ke S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8d2b47ae-e854-4e5d-8f19-b9c2606f2c59/images/b8a249bd-307b-41ec-b939-5039d0ae7123.png)


Diagram menunjukkan cara administrator Hadoop menggunakan DistCp untuk menyalin data dari lingkungan lokal melalui koneksi jaringan pribadi, seperti AWS Direct Connect, ke Amazon S3 melalui titik akhir antarmuka Amazon S3.

## Alat
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-tools"></a>

**Layanan AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan sumber daya AWS ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur AWS yang dapat diskalakan.

**Alat-alat lainnya**
+ [Apache Hadoop DistCp](https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html) (salinan terdistribusi) adalah alat yang digunakan untuk menyalin antar-cluster besar dan intra-cluster. DistCp menggunakan Apache MapReduce untuk distribusi, penanganan kesalahan dan pemulihan, dan pelaporan.

## Epik
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-epics"></a>

### Migrasikan data ke AWS Cloud
<a name="migrate-data-to-the-aws-cloud"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir untuk AWS PrivateLink untuk Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrator AWS | 
| Verifikasi titik akhir dan temukan entri DNS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrator AWS | 
| Periksa aturan firewall dan konfigurasi perutean. | Untuk mengonfirmasi bahwa aturan firewall Anda terbuka dan konfigurasi jaringan Anda diatur dengan benar, gunakan Telnet untuk menguji titik akhir pada port 443. Contoh:<pre>$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.88.6...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.<br /><br />...<br /><br />$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.71.141...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.</pre>Jika Anda menggunakan entri Regional, pengujian yang berhasil menunjukkan bahwa DNS bergantian antara dua alamat IP yang dapat Anda lihat di tab **Subnet** untuk titik akhir yang Anda pilih di konsol VPC Amazon. | Administrator jaringan, administrator AWS | 
| Konfigurasikan resolusi nama. | Anda harus mengonfigurasi resolusi nama untuk memungkinkan Hadoop mengakses titik akhir antarmuka Amazon S3. Anda tidak dapat menggunakan nama endpoint itu sendiri. Sebaliknya, Anda harus menyelesaikan `<your-bucket-name>.s3.<your-aws-region>.amazonaws.com` atau`*.s3.<your-aws-region>.amazonaws.com`. Untuk informasi lebih lanjut tentang batasan penamaan ini, lihat [Memperkenalkan klien Hadoop S3A](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Introducing_the_Hadoop_S3A_client.) (situs web Hadoop).Pilih salah satu opsi konfigurasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrator AWS | 
| Konfigurasikan otentikasi untuk Amazon S3. | Untuk mengautentikasi ke Amazon S3 melalui Hadoop, kami menyarankan Anda mengekspor kredensi peran sementara ke lingkungan Hadoop. Untuk informasi selengkapnya, lihat [Mengautentikasi dengan S3](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Authenticating_with_S3) (situs web Hadoop). Untuk pekerjaan yang berjalan lama, Anda dapat membuat pengguna dan menetapkan kebijakan yang memiliki izin untuk memasukkan data ke dalam bucket S3 saja. Kunci akses dan kunci rahasia dapat disimpan di Hadoop, hanya dapat diakses oleh DistCp pekerjaan itu sendiri dan ke administrator Hadoop. Untuk informasi selengkapnya tentang menyimpan rahasia, lihat [Menyimpan rahasia dengan Penyedia Kredenal Hadoop](https://hadoop.apache.org/docs/r3.1.1/hadoop-aws/tools/hadoop-aws/index.html#hadoop_credential_providers) (situs web Hadoop). Untuk informasi selengkapnya tentang metode autentikasi lainnya, lihat [Cara mendapatkan kredensil peran IAM untuk digunakan dengan akses CLI ke akun AWS dalam dokumentasi Pusat Identitas AWS IAM (penerus AWS Single Sign-On](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)).Untuk menggunakan kredensil sementara, tambahkan kredensil sementara ke file kredensil Anda, atau jalankan perintah berikut untuk mengekspor kredensil ke lingkungan Anda:<pre>export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN<br />export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY<br />export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY</pre>Jika Anda memiliki kunci akses tradisional dan kombinasi tombol rahasia, jalankan perintah berikut:<pre>export AWS_ACCESS_KEY_ID=my.aws.key<br />export AWS_SECRET_ACCESS_KEY=my.secret.key</pre>Jika Anda menggunakan kunci akses dan kombinasi tombol rahasia, maka ubah penyedia kredensi dalam DistCp perintah dari `"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider"` ke. `"org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider"` | Administrator AWS | 
| Transfer data dengan menggunakan DistCp | Untuk digunakan DistCp untuk mentransfer data, jalankan perintah berikut:<pre>hadoop distcp -Dfs.s3a.aws.credentials.provider=\<br />"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \<br />-Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \<br />-Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \<br />-Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \<br />-Dfs.s3a.path.style.access=true \<br />-Dfs.s3a.connection.ssl.enabled=true \<br />-Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \<br />hdfs:///user/root/ s3a://<your-bucket-name></pre>Wilayah AWS titik akhir tidak ditemukan secara otomatis saat Anda menggunakan DistCp perintah dengan AWS PrivateLink untuk Amazon S3. Hadoop 3.3.2 dan versi yang lebih baru menyelesaikan masalah ini dengan mengaktifkan opsi untuk secara eksplisit menyetel Wilayah AWS dari bucket S3. Untuk informasi selengkapnya, lihat [S3A untuk menambahkan opsi fs.s3a.endpoint.region untuk menyetel wilayah](https://issues.apache.org/jira/browse/HADOOP-17705) AWS (situs web Hadoop).Untuk informasi lebih lanjut tentang penyedia S3A tambahan, lihat [Konfigurasi Klien S3A Umum](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#General_S3A_Client_configuration) (situs web Hadoop). Misalnya, jika Anda menggunakan enkripsi, Anda dapat menambahkan opsi berikut ke rangkaian perintah di atas tergantung pada jenis enkripsi Anda:<pre>-Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]</pre>Untuk menggunakan titik akhir antarmuka dengan S3A, Anda harus membuat entri alias DNS untuk nama Regional S3 (misalnya,`s3.<your-aws-region>.amazonaws.com`) ke titik akhir antarmuka. Lihat bagian *Konfigurasi autentikasi untuk Amazon* S3 untuk petunjuk. Solusi ini diperlukan untuk Hadoop 3.3.2 dan versi sebelumnya. Versi S3A yang akan datang tidak memerlukan solusi ini.Jika Anda memiliki masalah tanda tangan dengan Amazon S3, tambahkan opsi untuk menggunakan penandatanganan Signature Version 4 (SigV4):<pre>-Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"</pre> | Insinyur migrasi, administrator AWS | 

# Lebih banyak pola
<a name="storageandbackup-more-patterns-pattern-list"></a>

**Topics**
+ [Akses Layanan AWS dari IBM z/OS dengan menginstal AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Secara otomatis mengarsipkan item ke Amazon S3 menggunakan DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Secara otomatis mencadangkan database SAP HANA menggunakan Systems Manager dan EventBridge](automatically-back-up-sap-hana-databases-using-systems-manager-and-eventbridge.md)
+ [Cadangkan dan arsipkan data mainframe ke Amazon S3 menggunakan BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Buat pipeline layanan ETL untuk memuat data secara bertahap dari Amazon S3 ke Amazon Redshift menggunakan AWS Glue](build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue.md)
+ [Konfigurasikan pencatatan pemanggilan model di Amazon Bedrock dengan menggunakan AWS CloudFormation](configure-bedrock-invocation-logging-cloudformation.md)
+ [Mengonversi dan membongkar data EBCDIC ke ASCII di AWS dengan menggunakan Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Mengkonversi VARCHAR2 (1) tipe data untuk Oracle ke tipe data Boolean untuk Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Buat definisi tugas Amazon ECS dan pasang sistem file pada EC2 instans menggunakan Amazon EFS](create-an-amazon-ecs-task-definition-and-mount-a-file-system-on-ec2-instances-using-amazon-efs.md)
+ [Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK](deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.md)
+ [Menerapkan sistem file Lustre untuk pemrosesan data berkinerja tinggi dengan menggunakan Terraform dan DRA](deploy-lustre-file-system-for-high-performance-data-processing-with-terraform-dra.md)
+ [Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB](estimate-storage-costs-for-an-amazon-dynamodb-table.md)
+ [Identifikasi bucket Amazon S3 publik dengan menggunakan Security Hub AWS Organizations CSPM](identify-public-s3-buckets-in-aws-organizations-using-security-hub.md)
+ [Memigrasi server SFTP lokal untuk menggunakan AWS AWS Transfer for SFTP](migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp.md)
+ [Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migrasi data dari Microsoft Azure Blob ke Amazon S3 dengan menggunakan Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migrasikan nilai Oracle CLOB ke baris individual di PostgreSQL di AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migrasi sistem file bersama dalam migrasi AWS besar](migrate-shared-file-systems-in-an-aws-large-migration.md)
+ [Migrasikan kumpulan data kecil dari lokasi ke Amazon S3 menggunakan AWS SFTP](migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp.md)
+ [Pantau Amazon Aurora untuk instance tanpa enkripsi](monitor-amazon-aurora-for-instances-without-encryption.md)
+ [Pindahkan file mainframe langsung ke Amazon S3 menggunakan Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Hapus EC2 entri Amazon dalam hal yang sama Akun AWS dari AWS Managed Microsoft AD dengan menggunakan AWS Lambda otomatisasi](remove-amazon-ec2-entries-in-the-same-aws-account-from-aws-managed-microsoft-ad.md)
+ [Jalankan beban kerja stateful dengan penyimpanan data persisten dengan menggunakan Amazon EFS di Amazon EKS dengan AWS Fargate](run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate.md)
+ [Berhasil mengimpor bucket S3 sebagai tumpukan AWS CloudFormation](successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.md)
+ [Sinkronisasi data antara sistem file Amazon EFS di Wilayah AWS yang berbeda dengan menggunakan AWS DataSync](synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.md)
+ [Lihat detail snapshot EBS untuk akun atau organisasi AWS](view-ebs-snapshot-details-for-your-aws-account-or-organization.md)