

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

# Migrasi & modernisasi
<a name="migration-modernization-pattern-list"></a>

**Topics**
+ [Migrasi](migration-pattern-list.md)
+ [Modernisasi](modernization-pattern-list.md)
+ [Mainframe](mainframe-pattern-list.md)

# Migrasi
<a name="migration-pattern-list"></a>

**Topics**
+ [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)
+ [Memulai dengan penemuan portofolio otomatis](get-started-with-automated-portfolio-discovery.md)
+ [Memigrasikan beban kerja Cloudera lokal ke Platform Data Cloudera di AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.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)
+ [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)
+ [Arsitek ulang](migration-rearchitect-pattern-list.md)
+ [Rehost](migration-rehost-pattern-list.md)
+ [Pindah](migration-relocate-pattern-list.md)
+ [Platform Ulang](migration-replatform-pattern-list.md)
+ [Pola migrasi berdasarkan beban kerja](migration-migration-patterns-by-workload-pattern-list.md)
+ [Lebih banyak pola](migration-more-patterns-pattern-list.md)

# Buat CloudFormation templat AWS untuk tugas AWS DMS menggunakan Microsoft Excel dan Python
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python"></a>

*Venkata Naveen Koppula, Amazon Web Services*

## Ringkasan
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-summary"></a>

Pola ini menguraikan langkah-langkah untuk membuat CloudFormation template AWS secara otomatis untuk [AWS Database Migration Service](https://aws.amazon.com/dms/) (AWS DMS) menggunakan Microsoft Excel dan Python.

Migrasi database menggunakan AWS DMS sering kali melibatkan pembuatan CloudFormation templat AWS untuk menyediakan tugas AWS DMS. Sebelumnya, membuat CloudFormation template AWS membutuhkan pengetahuan tentang bahasa pemrograman JSON atau YAMG. Dengan alat ini, Anda hanya perlu pengetahuan dasar tentang Excel dan cara menjalankan skrip Python menggunakan terminal atau jendela perintah.

Sebagai input, alat ini mengambil buku kerja Excel yang menyertakan nama tabel yang akan dimigrasikan, Amazon Resource Names (ARNs) dari titik akhir AWS DMS, dan instans replikasi AWS DMS. Alat ini kemudian menghasilkan CloudFormation templat AWS untuk tugas AWS DMS yang diperlukan.

Untuk langkah mendetail dan informasi latar belakang, lihat posting blog [Membuat CloudFormation templat AWS untuk tugas AWS DMS menggunakan Microsoft Excel](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/) di blog AWS Database.

## Prasyarat dan batasan
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Microsoft Excel versi 2016 atau yang lebih baru
+ Python versi 2.7 atau yang lebih baru
+ **Modul **Python xlrd** (diinstal pada prompt perintah dengan perintah: pip install xlrd)**
+ Sumber AWS DMS dan titik akhir target serta instans replikasi AWS DMS

**Batasan**
+ Nama-nama skema, tabel, dan kolom terkait diubah menjadi karakter huruf kecil di titik akhir tujuan.
+ Alat ini tidak membahas pembuatan titik akhir AWS DMS dan instance replikasi.
+ Saat ini, alat ini hanya mendukung satu skema untuk setiap tugas AWS DMS.

## Arsitektur
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-architecture"></a>

**Tumpukan teknologi sumber**
+ Database lokal
+ Microsoft Excel

**Tumpukan teknologi target**
+  CloudFormation Templat AWS
+ Database di AWS Cloud 

**Arsitektur **

![\[Alur kerja untuk menggunakan Excel dan Python untuk secara otomatis CloudFormation membuat template untuk AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/778c7c1e-2647-496f-8afd-52ff1ef02489/images/8fe1550d-8966-41aa-a480-5f7bef20629f.png)


## Alat
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-tools"></a>
+ [Pycharm IDE](https://aws.amazon.com/pycharm/), atau lingkungan pengembangan terintegrasi (IDE) apa pun yang mendukung Python versi 3.6
+ Microsoft Office 2016 (untuk Microsoft Excel)

## Epik
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-epics"></a>

### Konfigurasikan jaringan, instans replikasi AWS DMS, dan titik akhir
<a name="configure-the-network-aws-dms-replication-instance-and-endpoints"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jika perlu, mintalah peningkatan kuota layanan. | Minta peningkatan kuota layanan untuk tugas AWS DMS jika diperlukan. | AWS Umum | 
| Konfigurasikan Wilayah AWS, virtual private cloud (VPCs), rentang CIDR, Availability Zone, dan subnet. |  | AWS Umum | 
| Konfigurasikan instans replikasi AWS DMS. | Instans replikasi AWS DMS dapat terhubung ke database lokal dan AWS. | AWS Umum | 
| Konfigurasikan titik akhir AWS DMS. | Konfigurasikan titik akhir untuk basis data sumber dan target. | AWS Umum | 

### Siapkan lembar kerja untuk tugas dan tag AWS DMS
<a name="prepare-the-worksheets-for-aws-dms-tasks-and-tags"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan daftar tabel. | Daftar semua tabel yang terlibat dalam migrasi. | Basis Data | 
| Siapkan lembar kerja tugas. | Siapkan lembar kerja Excel menggunakan daftar tabel yang Anda konfigurasikan. | AWS Umum, Microsoft Excel | 
| Siapkan lembar kerja tag. | Detail tag sumber daya AWS untuk dilampirkan ke tugas AWS DMS. | AWS Umum, Microsoft Excel | 

### Unduh dan jalankan alat
<a name="download-and-run-the-tool"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan ekstrak alat pembuatan template dari GitHub repositori. | GitHub repositori:/ https://github.com/aws-samples/dms-cloudformation-templates-generator |  | 
| Jalankan alat. | Ikuti petunjuk terperinci dalam posting blog yang tercantum di bawah “Referensi dan bantuan.” |  | 

## Sumber daya terkait
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-resources"></a>
+ [Buat CloudFormation templat AWS untuk tugas AWS DMS menggunakan Microsoft Excel (posting blog)](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/)
+ [Generator CloudFormation Template DMS (GitHub repositori)](https://github.com/aws-samples/dms-cloudformation-templates-generator/tree/v1.0)
+ [Dokumentasi Python](https://www.python.org/)
+ [deskripsi dan unduhan xlrd](https://pypi.org/project/xlrd/)
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/)
+ [ CloudFormation Dokumentasi AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)

# Memulai dengan penemuan portofolio otomatis
<a name="get-started-with-automated-portfolio-discovery"></a>

*Pratik Chunawala dan Rodolfo Jr. Cerrada, Amazon Web* Services

## Ringkasan
<a name="get-started-with-automated-portfolio-discovery-summary"></a>

Menilai portofolio dan mengumpulkan metadata merupakan tantangan penting saat memigrasikan aplikasi dan server ke Amazon Web Services (AWS) Cloud, terutama untuk migrasi besar yang memiliki lebih dari 300 server. Menggunakan alat penemuan portofolio otomatis dapat membantu Anda mengumpulkan informasi tentang aplikasi Anda, seperti jumlah pengguna, frekuensi penggunaan, dependensi, dan informasi tentang infrastruktur aplikasi. Informasi ini sangat penting saat merencanakan gelombang migrasi sehingga Anda dapat memprioritaskan dan mengelompokkan aplikasi dengan sifat serupa dengan benar. Menggunakan alat penemuan merampingkan komunikasi antara tim portofolio dan pemilik aplikasi karena tim portofolio dapat memvalidasi hasil alat penemuan daripada mengumpulkan metadata secara manual. Pola ini membahas pertimbangan utama untuk memilih alat penemuan otomatis dan informasi tentang cara menerapkan dan mengujinya di lingkungan Anda.

Pola ini mencakup templat, yang merupakan titik awal untuk membangun daftar periksa aktivitas tingkat tinggi Anda sendiri. Di sebelah daftar periksa adalah templat untuk matriks yang bertanggung jawab, akuntabel, dikonsultasikan, diinformasikan (RACI). Anda dapat menggunakan matriks RACI ini untuk menentukan siapa yang bertanggung jawab atas setiap tugas dalam daftar periksa Anda.

## Epik
<a name="get-started-with-automated-portfolio-discovery-epics"></a>

### Pilih alat penemuan
<a name="select-a-discovery-tool"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan apakah alat penemuan sesuai untuk kasus penggunaan Anda. | Alat penemuan mungkin bukan solusi terbaik untuk kasus penggunaan Anda. Pertimbangkan jumlah waktu yang diperlukan untuk memilih, mendapatkan, menyiapkan, dan menyebarkan alat penemuan. Diperlukan waktu 4-8 minggu untuk menyiapkan alat pemindaian untuk alat penemuan tanpa agen di lingkungan Anda atau untuk memasang agen ke semua beban kerja dalam ruang lingkup. Setelah digunakan, Anda harus mengizinkan 4—12 minggu agar alat penemuan mengumpulkan metadata dengan memindai beban kerja aplikasi dan melakukan analisis tumpukan aplikasi. Jika Anda bermigrasi kurang dari 100 server, Anda mungkin dapat mengumpulkan metadata secara manual dan menganalisis dependensi lebih cepat daripada waktu yang diperlukan untuk menerapkan dan mengumpulkan metadata dengan alat penemuan otomatis.  | Pimpinan migrasi, insinyur Migrasi | 
| Pilih alat penemuan. | Tinjau **Pertimbangan untuk memilih alat penemuan otomatis** di bagian [Informasi tambahan](#get-started-with-automated-portfolio-discovery-additional). Tentukan kriteria yang sesuai untuk memilih alat penemuan untuk kasus penggunaan Anda, dan kemudian evaluasi setiap alat berdasarkan kriteria tersebut. Untuk daftar lengkap alat penemuan otomatis, lihat [Alat migrasi Penemuan, Perencanaan, dan Rekomendasi](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/). | Pimpinan migrasi, insinyur Migrasi | 

### Bersiaplah untuk instalasi
<a name="prepare-for-installation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan daftar periksa pra-penerapan.  | Buat daftar periksa tugas yang harus Anda selesaikan sebelum menggunakan alat. Sebagai contoh, lihat [Daftar Periksa Pra-Deployment](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_Predeployment.htm) di situs web dokumentasi Flexera. | Membangun prospek, Insinyur migrasi, Pimpinan migrasi, Administrator jaringan | 
| Siapkan persyaratan jaringan. | Menyediakan port, protokol, alamat IP, dan routing yang diperlukan untuk alat untuk menjalankan dan mengakses server target. Untuk informasi selengkapnya, lihat panduan instalasi untuk alat penemuan Anda. Sebagai contoh, lihat [Persyaratan Penerapan](https://docs.flexera.com/foundationcloudscape/help/RCDeployReq.htm) di situs web dokumentasi Flexera. | Insinyur migrasi, Administrator jaringan, arsitek Cloud | 
| Siapkan akun dan persyaratan kredensi. | Identifikasi kredensil yang Anda butuhkan untuk mengakses server target dan menginstal semua komponen alat. | Administrator cloud, AWS Umum, Insinyur migrasi, Pimpinan migrasi, Administrator jaringan, Administrator AWS | 
| Siapkan peralatan tempat Anda akan memasang alat. | Pastikan bahwa peralatan tempat Anda akan memasang komponen alat memenuhi spesifikasi dan persyaratan platform untuk alat tersebut. | Insinyur migrasi, Pimpinan migrasi, Administrator jaringan | 
| Siapkan perintah perubahan. | Menurut proses manajemen perubahan di organisasi Anda, siapkan pesanan perubahan apa pun yang diperlukan, dan pastikan pesanan perubahan ini disetujui. | Bangun prospek, Pimpinan migrasi | 
| Kirim persyaratan ke pemangku kepentingan. | Kirim daftar periksa pra-penerapan dan persyaratan jaringan ke pemangku kepentingan. Pemangku kepentingan harus meninjau, mengevaluasi, dan menyiapkan persyaratan yang diperlukan sebelum melanjutkan penyebaran. | Bangun prospek, Pimpinan migrasi | 

### Menyebarkan alat
<a name="deploy-the-tool"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh penginstal. | Unduh installer atau gambar mesin virtual. Gambar mesin virtual biasanya datang dalam Open Virtualization Format (OVF). | Bangun prospek, Pimpinan migrasi | 
| Ekstrak file. | Jika Anda menggunakan penginstal, Anda harus mengunduh dan menjalankan penginstal di server lokal. | Bangun prospek, Pimpinan migrasi | 
| Menyebarkan alat di server. | Menerapkan alat penemuan di server lokal target sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) | Membangun prospek, Pimpinan migrasi, Administrator jaringan | 
| Masuk ke alat penemuan. | Ikuti petunjuk di layar, dan masuk untuk memulai dengan alat ini. | Pimpin migrasi, Bangun prospek | 
| Aktifkan produk. | Masukkan kunci lisensi Anda. | Bangun prospek, Pimpinan migrasi | 
| Konfigurasikan alat. | Masukkan kredensil apa pun yang diperlukan untuk mengakses server target, seperti kredensil untuk Windows, Simple Network Management Protocol (SNMP) VMware, dan Secure Shell Protocol (SSH), atau database. | Bangun prospek, Pimpinan migrasi | 

### Uji alat
<a name="test-the-tool"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih server uji. | Identifikasi sekumpulan kecil subnet non-produksi atau alamat IP yang dapat Anda gunakan untuk menguji alat penemuan. Ini membantu Anda memvalidasi pemindaian dengan cepat, mengidentifikasi dan memecahkan masalah kesalahan apa pun dengan cepat, dan mengisolasi pengujian Anda dari lingkungan produksi. | Membangun prospek, Pimpinan migrasi, Administrator jaringan | 
| Mulai memindai server pengujian yang dipilih. | Untuk alat penemuan tanpa agen, masukkan subnet atau alamat IP untuk server pengujian yang dipilih di konsol alat penemuan, dan mulai pemindaian.Untuk alat penemuan berbasis agen, instal agen di server pengujian yang dipilih. | Membangun prospek, Pimpinan migrasi, Administrator jaringan | 
| Tinjau hasil pemindaian. | Tinjau hasil pemindaian untuk server pengujian. Jika ada kesalahan yang ditemukan, pecahkan masalah dan perbaiki kesalahan. Dokumentasikan kesalahan dan solusinya. Anda mereferensikan informasi ini di masa mendatang, dan Anda dapat menambahkan informasi ini ke runbook portofolio Anda. | Membangun prospek, Pimpinan migrasi, Administrator jaringan | 
| Memindai ulang server uji. | Setelah pemindaian ulang selesai, ulangi pemindaian sampai tidak ada kesalahan. | Membangun prospek, Pimpinan migrasi, Administrator jaringan | 

## Sumber daya terkait
<a name="get-started-with-automated-portfolio-discovery-resources"></a>

**AWS sumber daya**
+ [Panduan penilaian portofolio aplikasi untuk AWS Cloud migrasi](https://docs.aws.amazon.com/prescriptive-guidance/latest/application-portfolio-assessment-guide/introduction.html)
+ [Alat migrasi Penemuan, Perencanaan, dan Rekomendasi](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/)

**Panduan penerapan untuk alat penemuan yang umum dipilih**
+ [Terapkan alat virtual RN15 0 (dokumentasi](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_QSG_DeployRN150.htm) Flexera)
+ [Instalasi Gatherer (dokumentasi](https://www.modelizeit.com/documentation/ADC-Gatherer-Install.html) ModelizeIt)
+ [Instalasi Server Analisis On-Prem](https://www.modelizeit.com/documentation/RejuvenApptor-Install.html) (dokumentasi ModelizeIt)

## Informasi tambahan
<a name="get-started-with-automated-portfolio-discovery-additional"></a>

**Pertimbangan untuk memilih alat penemuan otomatis**

Setiap alat penemuan memiliki manfaat dan keterbatasan. Saat memilih alat yang sesuai untuk kasus penggunaan Anda, pertimbangkan hal berikut:
+ Pilih alat penemuan yang dapat mengumpulkan sebagian besar, jika tidak semua, metadata yang Anda butuhkan untuk mencapai tujuan penilaian portofolio Anda.
+ Identifikasi metadata apa pun yang perlu Anda kumpulkan secara manual karena alat tidak mendukungnya.
+ Menyediakan persyaratan alat penemuan kepada para pemangku kepentingan sehingga mereka dapat meninjau dan menilai alat berdasarkan persyaratan keamanan dan kepatuhan internal mereka, seperti server, jaringan, dan persyaratan kredensi.
  + Apakah alat mengharuskan Anda menginstal agen dalam beban kerja dalam ruang lingkup?
  + Apakah alat ini mengharuskan Anda menyiapkan alat virtual di lingkungan Anda?
+ Tentukan persyaratan residensi data Anda. Beberapa organisasi tidak ingin menyimpan data mereka di luar lingkungan mereka. Untuk mengatasinya, Anda mungkin perlu menginstal beberapa komponen alat di lingkungan lokal.
+ Pastikan alat mendukung sistem operasi (OS) dan versi OS dari beban kerja dalam lingkup.
+ Tentukan apakah portofolio Anda mencakup server mainframe, mid-range, dan lawas. Sebagian besar alat penemuan dapat mendeteksi beban kerja ini sebagai dependensi, tetapi beberapa alat mungkin tidak bisa mendapatkan detail perangkat, seperti pemanfaatan dan dependensi server. Device42 dan alat penemuan ModernizeIT mendukung server mainframe dan mid-range.

## Lampiran
<a name="attachments-8c9d84de-e84a-4b0c-bcaa-389cd90be1f0"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/8c9d84de-e84a-4b0c-bcaa-389cd90be1f0/attachments/attachment.zip)

# Memigrasikan beban kerja Cloudera lokal ke Platform Data Cloudera di AWS
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws"></a>

*Battulga Purevragchaa dan Nidhi Gupta, Amazon Web Services*

*Nijjwol Lamsal, Cloudera, Inc.*

## Ringkasan
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-summary"></a>

Pola ini menjelaskan langkah-langkah tingkat tinggi untuk memigrasikan beban kerja Cloudera Distributed Hadoop (CDH), Hortonworks Data Platform (HDP), dan Cloudera Data Platform (CDP) lokal Anda ke CDP Public Cloud di AWS. Kami menyarankan Anda bermitra dengan Cloudera Professional Services dan integrator sistem (SI) untuk menerapkan langkah-langkah ini.

Ada banyak alasan mengapa pelanggan Cloudera ingin memindahkan beban kerja CDH, HDP, dan CDP lokal mereka ke cloud. Beberapa alasan khas meliputi:
+ Merampingkan adopsi paradigma platform data baru seperti data lakehouse atau data mesh
+ Meningkatkan kelincahan bisnis, mendemokratisasikan akses dan inferensi aset data yang ada
+ Menurunkan total biaya kepemilikan (TCO)
+ Meningkatkan elastisitas beban kerja
+ Mengaktifkan skalabilitas yang lebih besar; secara drastis mengurangi waktu untuk menyediakan layanan data dibandingkan dengan basis instalasi lokal yang lama
+ Pensiun perangkat keras lama; secara signifikan mengurangi siklus penyegaran perangkat keras
+ Manfaatkan pay-as-you-go harga, yang diperluas ke beban kerja Cloudera di AWS dengan model lisensi Cloudera (CCU)
+ Manfaatkan penyebaran yang lebih cepat dan integrasi yang lebih baik dengan platform integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD)
+ Gunakan platform terpadu tunggal (CDP) untuk beberapa beban kerja

Cloudera mendukung semua beban kerja utama, termasuk Machine Learning, Data Engineering, Data Warehouse, Operational Database, Stream Processing (CSP), dan keamanan dan tata kelola data. Cloudera telah menawarkan beban kerja ini selama bertahun-tahun di lokasi, dan Anda dapat memigrasikan beban kerja ini ke AWS Cloud dengan menggunakan CDP Public Cloud dengan Workload Manager dan Replication Manager. 

Cloudera Shared Data Experience (SDX) menyediakan katalog metadata bersama di seluruh beban kerja ini untuk memfasilitasi pengelolaan dan operasi data yang konsisten. SDX juga mencakup keamanan terperinci yang komprehensif untuk melindungi dari ancaman, dan tata kelola terpadu untuk kemampuan audit dan pencarian untuk kepatuhan terhadap standar seperti Standar Keamanan Data Industri Kartu Pembayaran (PCI DSS) dan GDPR. 

**Sekilas tentang migrasi CDP**


|  |  | 
| --- |--- |
|    Beban kerja | Beban kerja sumber | CDH, HDP, dan CDP Private Cloud | 
| --- |--- |--- |
| Lingkungan sumber | Windows, LinuxLokal, kolokasi, atau lingkungan non-AWS | 
| Beban kerja tujuan | Cloud Publik CDP di AWS | 
| Lingkungan tujuan | Model penyebaran: akun pelangganModel operasi: bidang customer/Cloudera kontrol | 
| ** **** ****Migrasi** | Strategi migrasi (7Rs) | Rehost, replatform, atau refactor | 
| Apakah ini peningkatan dalam versi beban kerja? | Ya | 
| Durasi migrasi | Deployment: Sekitar 1 minggu untuk membuat akun pelanggan, virtual private cloud (VPC), dan lingkungan yang dikelola pelanggan CDP Public Cloud.Durasi migrasi: 1-4 bulan, tergantung pada kompleksitas dan ukuran beban kerja. | 
| **Biaya** | Biaya menjalankan beban kerja di AWS | Pada tingkat tinggi, biaya migrasi beban kerja CDH ke AWS mengasumsikan bahwa Anda akan membangun lingkungan baru di AWS. Ini termasuk akuntansi untuk waktu dan upaya personel serta penyediaan sumber daya komputasi dan perangkat lunak lisensi untuk lingkungan baru.Model penetapan harga berbasis konsumsi cloud Cloudera memberi Anda fleksibilitas untuk memanfaatkan kemampuan penskalaan yang meledak dan otomatis. Untuk informasi selengkapnya, lihat [tarif layanan CDP Public Cloud di situs](https://www.cloudera.com/products/pricing/cdp-public-cloud-service-rates.html) web Cloudera.Cloudera Enterprise [Data Hub](https://www.cloudera.com/products/enterprise-data-hub.html) didasarkan pada Amazon Elastic Compute Cloud EC2 (Amazon) dan memodelkan cluster tradisional dengan cermat. Data Hub dapat [disesuaikan](https://docs.cloudera.com/data-hub/cloud/create-cluster-aws/topics/mc-creating-a-cluster.html), tetapi ini akan mempengaruhi biaya.[CDP Public Cloud Data Warehouse](https://docs.cloudera.com/data-warehouse/cloud/index.html), [Cloudera Machine Learning](https://docs.cloudera.com/machine-learning/cloud/product/topics/ml-product-overview.html), dan [Cloudera Data Engineering (CDE)](https://docs.cloudera.com/data-engineering/cloud/index.html) berbasis container dan dapat dikonfigurasi untuk skala secara otomatis. | 
| ** **** ****Perjanjian dan kerangka infrastruktur** | Persyaratan sistem | Lihat bagian [Prasyarat](#migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs). | 
| SLA | Lihat [Perjanjian Tingkat Layanan Cloudera untuk CDP Public](https://www.cloudera.com/legal/terms-and-conditions/cdp-public-cloud-sla.html) Cloud. | 
| DR | Lihat [Pemulihan Bencana](https://docs.cloudera.com/cdp-reference-architectures/latest/cdp-ra-operations/topics/cdp-ra-abstract.html) di dokumentasi Cloudera. | 
| Model lisensi dan pengoperasian (untuk akun AWS target) | Bawa model Lisensi Anda Sendiri (BYOL) | 
| ** ****Kepatuhan** | Persyaratan keamanan | Lihat [Ikhtisar Keamanan Cloudera](https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/security-overview/topics/cm-security-overview.html) di dokumentasi Cloudera. | 
| [Sertifikasi kepatuhan](https://aws.amazon.com/compliance/programs) lainnya | Lihat informasi di situs web Cloudera tentang kepatuhan [Peraturan Perlindungan Data Umum (GDPR](https://www.cloudera.com/solutions/lower-business-risks/general-data-protection-regulation.html)) dan Pusat Kepercayaan [CDP](https://www.cloudera.com/products/trust-center.html). | 

## Prasyarat dan batasan
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs"></a>

**Prasyarat**
+ [Persyaratan akun AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html), termasuk akun, sumber daya, layanan, dan izin, seperti pengaturan peran dan kebijakan AWS Identity and Access Management (IAM)
+ [Prasyarat untuk menyebarkan](https://docs.cloudera.com/cdp-public-cloud/cloud/getting-started/topics/cdp-set_up_cdp_prerequisites.html) CDP dari situs web Cloudera

Migrasi membutuhkan peran dan keahlian berikut:


| 
| 
| Peran | Keterampilan dan tanggung jawab | 
| --- |--- |
| Pimpin migrasi | Memastikan dukungan eksekutif, kolaborasi tim, perencanaan, implementasi, dan penilaian | 
| UKM Cloudera | Keterampilan ahli dalam administrasi CDH, HDP, dan CDP, administrasi sistem, dan arsitektur | 
| Arsitek AWS | Keterampilan dalam layanan AWS, jaringan, keamanan, dan arsitektur | 

## Arsitektur
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-architecture"></a>

Membangun arsitektur yang sesuai adalah langkah penting untuk memastikan bahwa migrasi dan kinerja memenuhi harapan Anda. Agar upaya migrasi Anda memenuhi asumsi buku pedoman ini, lingkungan data target Anda di AWS Cloud, baik pada instance yang dihosting virtual private cloud (VPC) atau CDP, harus setara dengan lingkungan sumber Anda dalam hal versi sistem operasi dan perangkat lunak serta spesifikasi mesin utama.

Diagram berikut (direproduksi dengan izin dari [lembar data Pengalaman Data Bersama Cloudera](https://www.cloudera.com/content/dam/www/marketing/resources/datasheets/cloudera-sdx-datasheet.pdf?daqp=true)) menunjukkan komponen infrastruktur untuk lingkungan CDP dan bagaimana tingkatan atau komponen infrastruktur berinteraksi. 

![\[Komponen lingkungan CDP\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/91d62277-7fde-4ec6-8e2b-86a446e2f6ee.png)


Arsitektur mencakup komponen CDP berikut:
+ Data Hub adalah layanan untuk meluncurkan dan mengelola klaster beban kerja yang didukung oleh Cloudera Runtime. Anda dapat menggunakan definisi klaster di Data Hub untuk menyediakan dan mengakses klaster beban kerja untuk kasus penggunaan kustom dan menentukan konfigurasi klaster kustom. Untuk informasi lebih lanjut, lihat [situs web Cloudera](https://docs.cloudera.com/data-hub/cloud/index.html).
+ Aliran Data dan Streaming mengatasi tantangan utama yang dihadapi perusahaan dengan data yang bergerak. Ini mengelola yang berikut:
  + Memproses streaming data real-time pada volume tinggi dan skala tinggi
  + Melacak asal data dan garis keturunan data streaming
  + Mengelola dan memantau aplikasi edge dan sumber streaming

  Untuk informasi lebih lanjut, lihat [Cloudera DataFlow](https://www.cloudera.com/products/dataflow.html) dan [CSP di situs web](https://www.cloudera.com/products/stream-processing.html) Cloudera.
+ Rekayasa Data mencakup integrasi data, kualitas data, dan tata kelola data, yang membantu organisasi membangun dan memelihara jalur data dan alur kerja. Untuk informasi lebih lanjut, lihat [situs web Cloudera](https://docs.cloudera.com/data-engineering/cloud/index.html). Pelajari tentang [dukungan untuk instans spot guna memfasilitasi penghematan biaya AWS untuk beban kerja](https://docs.cloudera.com/data-engineering/cloud/cost-management/topics/cde-spot-instances.html) Rekayasa Data Cloudera.
+ Data Warehouse**** memungkinkan Anda membuat gudang data dan data mart independen yang secara otomatis menskalakan untuk memenuhi tuntutan beban kerja. Layanan ini menyediakan instans komputasi terisolasi dan pengoptimalan otomatis untuk setiap gudang data dan data mart, dan membantu Anda menghemat biaya saat rapat. SLAs Untuk informasi lebih lanjut, lihat [situs web Cloudera](https://docs.cloudera.com/data-warehouse/cloud/index.html). Pelajari cara [mengelola biaya](https://docs.cloudera.com/data-warehouse/cloud/planning/topics/dw-manage-cloud-costs.html) dan [auto-scaling](https://docs.cloudera.com/data-warehouse/cloud/auto-scaling/topics/dw-public-cloud-autoscaling-overview.html) untuk Cloudera Data Warehouse di AWS.
+ Database Operasional dalam CDP menyediakan fondasi yang andal dan fleksibel untuk aplikasi berkinerja tinggi yang dapat diskalakan. Ini memberikan database real-time, selalu tersedia, terukur yang melayani data terstruktur tradisional bersama data baru yang tidak terstruktur dalam platform operasional dan pergudangan terpadu. Untuk informasi lebih lanjut, lihat [situs web Cloudera](https://www.cloudera.com/products/operational-db.html).
+ Machine Learning adalah platform pembelajaran mesin cloud-native yang menggabungkan kemampuan ilmu data swalayan dan rekayasa data menjadi satu layanan portabel dalam cloud data perusahaan. Ini memungkinkan penyebaran pembelajaran mesin dan kecerdasan buatan (AI) yang dapat diskalakan pada data di mana saja. Untuk informasi lebih lanjut, lihat [situs web Cloudera](https://docs.cloudera.com/machine-learning/cloud/index.html).

**CDP di AWS**

Diagram berikut (diadaptasi dengan izin dari situs web Cloudera) menunjukkan arsitektur CDP tingkat tinggi di AWS. CDP mengimplementasikan [model keamanannya sendiri](https://docs.cloudera.com/runtime/7.1.0/cdp-security-overview/topics/security-management-console-security.html) untuk mengelola akun dan aliran data. Ini terintegrasi dengan [IAM](https://aws.amazon.com/iam/) melalui penggunaan peran [lintas akun](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-aws-req-credential.html). 

![\[CDP pada arsitektur tingkat tinggi AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/54420517-38b4-4e82-bd19-9ded50ed009c.png)


Pesawat kontrol CDP berada di akun master Cloudera di VPC-nya sendiri. Setiap akun pelanggan memiliki sub-akun dan VPC uniknya sendiri. Peran IAM lintas akun dan teknologi SSL mengarahkan lalu lintas manajemen ke dan dari bidang kontrol ke layanan pelanggan yang berada di subnet publik yang dapat dirutekan internet dalam setiap VPC pelanggan. Pada VPC pelanggan, Cloudera Shared Data Experience (SDX) menyediakan keamanan kekuatan perusahaan dengan tata kelola dan kepatuhan terpadu sehingga Anda bisa mendapatkan wawasan dari data Anda dengan lebih cepat. SDX adalah filosofi desain yang dimasukkan ke dalam semua produk Cloudera. Untuk informasi selengkapnya tentang [SDX](https://docs.cloudera.com/cdp-public-cloud/cloud/overview/topics/cdp-services.html) dan [arsitektur jaringan Cloud Publik CDP untuk AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/aws-refarch/topics/cdp-pc-aws-refarch-overview.html), lihat dokumentasi Cloudera.

## Alat
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-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 Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) membantu Anda menjalankan Kubernetes di AWS tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.
+ [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.

**Otomatisasi dan perkakas**
+ Untuk perkakas tambahan, Anda dapat menggunakan [Cloudera Backup Data Recovery (BDR), AWS Snowball,](https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_bdr_tutorials.html) [dan AWS Snowmobile](https://aws.amazon.com/snowball/) [untuk membantu memigrasikan data dari CDH, HDP, dan CDP lokal ke CDP yang dihosting AWS](https://aws.amazon.com/snowmobile/).
+ Untuk penerapan baru, sebaiknya gunakan [AWS Partner Solution untuk](https://aws.amazon.com/solutions/partners/terraform-modules/cdp-public-cloud/) CDP.

## Epik
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Libatkan tim Cloudera. | Cloudera mengejar model keterlibatan standar dengan pelanggannya dan dapat bekerja dengan integrator sistem (SI) Anda untuk mempromosikan pendekatan yang sama. Hubungi tim pelanggan Cloudera sehingga mereka dapat memberikan panduan dan sumber daya teknis yang diperlukan untuk memulai proyek. Menghubungi tim Cloudera memastikan bahwa semua tim yang diperlukan dapat mempersiapkan migrasi saat tanggalnya semakin dekat. Anda dapat menghubungi Cloudera Professional Services untuk memindahkan penyebaran Cloudera Anda dari pilot ke produksi dengan cepat, dengan biaya lebih rendah, dan dengan kinerja puncak. Untuk daftar lengkap penawaran, lihat situs web [Cloudera](https://www.cloudera.com/about/services-and-support/professional-services.html). | Pimpin migrasi | 
| Buat lingkungan Cloud Publik CDP di AWS untuk VPC Anda. | Bekerja dengan Cloudera Professional Services atau SI Anda untuk merencanakan dan menerapkan CDP Public Cloud ke dalam VPC di AWS. | Arsitek awan, UKM Cloudera | 
| Memprioritaskan dan menilai beban kerja untuk migrasi. | Evaluasi semua beban kerja lokal Anda untuk menentukan beban kerja yang paling mudah untuk dimigrasi. Aplikasi yang tidak kritis adalah yang terbaik untuk bergerak terlebih dahulu, karena mereka akan memiliki dampak minimal pada pelanggan Anda. Simpan beban kerja penting misi untuk yang terakhir, setelah Anda berhasil memigrasikan beban kerja lainnya.Beban kerja transient (CDP Data Engineering) lebih mudah untuk dimigrasikan daripada beban kerja persisten (CDP Data Warehouse). Penting juga untuk mempertimbangkan volume data dan lokasi saat bermigrasi. Tantangan dapat mencakup mereplikasi data secara terus menerus dari lingkungan lokal ke cloud, dan mengubah pipeline konsumsi data untuk mengimpor data langsung ke cloud. | Pimpin migrasi | 
| Diskusikan CDH, HDP, CDP, dan aktivitas migrasi aplikasi lama. | Pertimbangkan dan mulailah merencanakan kegiatan berikut dengan Cloudera Workload Manager:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Pimpin migrasi | 
| Lengkapi persyaratan dan rekomendasi Cloudera Replication Manager. | Bekerja sama dengan Cloudera Professional Services dan SI Anda untuk mempersiapkan migrasi beban kerja ke lingkungan CDP Public Cloud Anda di AWS. Memahami persyaratan dan rekomendasi berikut dapat membantu Anda menghindari masalah umum selama dan setelah Anda menginstal layanan Manajer Replikasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Pimpin migrasi | 

### Migrasi CDP ke AWS
<a name="migrate-cdp-to-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan beban kerja pertama untuk dev/test lingkungan menggunakan Cloudera Workload Manager. | SI Anda dapat membantu Anda memigrasikan beban kerja pertama Anda ke AWS Cloud. Ini harus menjadi aplikasi yang tidak menghadapi pelanggan atau kritis misi. Kandidat ideal untuk dev/test migrasi adalah aplikasi yang memiliki data yang dapat dengan mudah dikonsumsi oleh cloud, seperti beban kerja Rekayasa Data CDP. Ini adalah beban kerja sementara yang biasanya memiliki lebih sedikit pengguna yang mengaksesnya, dibandingkan dengan beban kerja persisten seperti beban kerja CDP Data Warehouse yang dapat memiliki banyak pengguna yang membutuhkan akses tanpa gangguan. Beban kerja Rekayasa Data tidak persisten, yang meminimalkan dampak bisnis jika terjadi kesalahan. Namun, pekerjaan ini bisa menjadi penting untuk pelaporan produksi, jadi prioritaskan beban kerja Rekayasa Data berdampak rendah terlebih dahulu. | Pimpin migrasi | 
| Ulangi langkah migrasi seperlunya. | Cloudera Workload Manager membantu mengidentifikasi beban kerja yang paling cocok untuk cloud. Ini menyediakan metrik seperti peringkat kinerja cloud, sizing/capacity rencana untuk lingkungan target, dan rencana replikasi. Kandidat terbaik untuk migrasi adalah beban kerja musiman, pelaporan ad hoc, dan pekerjaan intermiten yang tidak menghabiskan banyak sumber daya.Cloudera Replication Manager memindahkan data dari lokasi ke cloud, dan dari cloud ke tempat.Secara proaktif mengoptimalkan beban kerja, aplikasi, kinerja, dan kapasitas infrastruktur untuk pergudangan data, rekayasa data, dan pembelajaran mesin dengan menggunakan Workload Manager. Untuk panduan lengkap tentang cara memodernisasi gudang data, lihat situs web [Cloudera](https://www.cloudera.com/content/dam/www/marketing/resources/webinars/modern-data-warehouse-fundamentals.png.landing.html). | UKM Cloudera | 

## Sumber daya terkait
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-resources"></a>

Dokumentasi Cloudera:
+ [Mendaftarkan cluster klasik dengan CDP, Cloudera Manager, dan Replication Manager:](https://docs.cloudera.com/replication-manager/cloud/operations/topics/rm-requirements-for-bdr-cdh-clusters.html)
  + [Konsol Manajemen](https://docs.cloudera.com/management-console/cloud/overview/topics/mc-management-console.html)
  + [Replikasi Replikasi Manajer sarang](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-replication-of-data-using-hive.html)
+ [Replikasi penjaga](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-policy-replication.html) 
+ [Izin penjaga](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-ranger-permissions.html)
+ [Daftar periksa perencanaan klaster Data Hub](https://docs.cloudera.com/data-hub/cloud/cluster-planning/topics/dh-cluster-checklist.html)
+ [Arsitektur Manajer Beban Kerja](https://docs.cloudera.com/workload-manager/cloud/configuration/topics/wm-public-architecture-wm.html)
+ [Persyaratan Manajer Replikasi](https://docs.cloudera.com/replication-manager/cloud/index.html)
+ [Observabilitas Platform Data Cloudera](https://www.cloudera.com/products/observability.html)
+ [Persyaratan AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html)

Dokumentasi AWS:
+ [Migrasi Data Cloud](https://aws.amazon.com/cloud-data-migration/)

# Mengatasi kesalahan koneksi setelah memigrasikan Microsoft SQL Server ke AWS Cloud
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud"></a>

*Premkumar Chelladurai, Amazon Web Services*

## Ringkasan
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-summary"></a>

Setelah Anda memigrasikan Microsoft SQL Server yang berjalan di Windows Server 2008 R2, 2012, atau 2012 R2 ke instans Amazon Elastic Compute Cloud ( EC2Amazon) di Amazon Web Services (AWS) Cloud, koneksi ke SQL Server gagal dan kesalahan berikut muncul: 
+ `[Microsoft][ODBC SQL Server Driver][DBNETLIB] General Network error`
+ `ERROR [08S01] [Microsoft][SQL Native Client]Communication link failure. System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)`
+ `TCP Provider: The semaphore timeout period has expired`

Pola ini menjelaskan bagaimana Anda dapat mengatasi kesalahan ini dengan mematikan fitur Windows Scalable Networking Pack (SNP) di sistem operasi (OS) dan tingkat antarmuka jaringan untuk SQL Server yang berjalan pada Windows Server 2008 R2, 2012, atau 2012 R2.

## Prasyarat dan batasan
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-prereqs"></a>

**Prasyarat**
+ Hak istimewa administrator untuk Windows Server.
+ Jika Anda menggunakan AWS Application Migration Service sebagai alat migrasi, Anda memerlukan salah satu versi Windows Server berikut:
  + Windows Server 2008 R2 Paket Layanan 1, 2012, atau 2012 R2
+ Jika Anda menggunakan CloudEndure Migrasi sebagai alat migrasi, Anda memerlukan salah satu versi Windows Server berikut:
  + Windows Server 2003 R2 Paket Layanan 3, 2008, 2008 R2 Paket Layanan 1, 2012, atau 2012 R2

## Alat
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-tools"></a>
+ [Amazon EC2 — Amazon](https://docs.aws.amazon.com/ec2/index.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 menskalakan. 
+ [Windows Server](https://docs.microsoft.com/en-us/windows-server/) — Windows Server adalah platform untuk membangun infrastruktur aplikasi, jaringan, dan layanan web yang terhubung.

## Epik
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-epics"></a>

### Matikan fitur SNP di tingkat OS dan elastic network interface
<a name="turn-off-snp-features-at-the-os-and-elastic-network-interface-levels"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan fitur SNP di tingkat OS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Administrator AWS, administrator sistem AWS, Insinyur migrasi, Administrator cloud | 
| Matikan fitur SNP di level elastic network interface. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Administrator AWS, administrator Cloud, administrator sistem AWS | 

## Sumber daya terkait
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-resources"></a>
+ [Cara memecahkan masalah fitur kinerja jaringan tingkat lanjut seperti RSS dan NetDMA](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/troubleshoot-network-performance-features-rss-netdma)

# Mulai ulang AWS Replication Agent secara otomatis tanpa menonaktifkan SELinux setelah me-reboot server sumber RHEL
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server"></a>

*Anil Kunapareddy, Venkatramana Chintha, dan Shanmugam Shanker, Amazon Web Services*

## Ringkasan
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-summary"></a>

AWS Application Migration Service membantu menyederhanakan, mempercepat, dan mengotomatiskan migrasi beban kerja Red Hat Enterprise Linux (RHEL) Anda ke Amazon Web Services (AWS) Cloud. Untuk menambahkan server sumber ke Layanan Migrasi Aplikasi, Anda menginstal AWS Replication Agent di server.

Layanan Migrasi Aplikasi menyediakan replikasi real-time, asinkron, tingkat blok. Ini berarti Anda dapat melanjutkan operasi TI normal selama seluruh proses replikasi. Operasi TI ini mungkin mengharuskan Anda me-reboot atau memulai ulang server sumber RHEL Anda selama migrasi. Jika ini terjadi, AWS Replication Agent tidak akan dimulai ulang secara otomatis, dan replikasi data Anda akan berhenti. Biasanya, Anda dapat menyetel Security-Enhanced Linux (SELinux) ke mode **nonaktif** atau **permisif untuk memulai ulang AWS Replication** Agent secara otomatis. Namun, kebijakan keamanan organisasi Anda mungkin melarang penonaktifan SELinux, dan Anda mungkin juga harus memberi label [ulang](https://access.redhat.com/solutions/3176) file Anda.

Pola ini menjelaskan cara memulai ulang AWS Replication Agent secara otomatis tanpa mematikan SELinux saat server sumber RHEL Anda melakukan reboot atau memulai ulang selama migrasi. 

## Prasyarat dan batasan
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Beban kerja RHEL lokal yang ingin Anda migrasikan ke AWS Cloud. 
+ Layanan Migrasi Aplikasi diinisialisasi dari konsol Layanan Migrasi Aplikasi. Inisialisasi hanya diperlukan saat pertama kali Anda menggunakan layanan ini. Untuk petunjuk, lihat [dokumentasi Layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/mandatory-setup.html).
+ [Kebijakan AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) yang ada untuk Layanan Migrasi Aplikasi. Untuk informasi selengkapnya, lihat [dokumentasi Layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html).

**Versi**
+ RHEL versi 7 atau yang lebih baru

## Alat
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-tools"></a>

**Layanan AWS**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) adalah solusi lift-and-shift (rehost) yang sangat otomatis yang menyederhanakan, mempercepat, dan mengurangi biaya migrasi aplikasi ke AWS.

**Perintah Linux**

Tabel berikut menyediakan daftar perintah Linux yang akan Anda jalankan di server sumber RHEL Anda. Ini juga dijelaskan dalam epos dan cerita untuk pola ini. 


| 
| 
| Perintah | Deskripsi | 
| --- |--- |
| `#systemctl –version` | Mengidentifikasi versi sistem. | 
| `#systemctl list-units --type=service` | Daftar semua layanan aktif yang tersedia di server RHEL. | 
| `#systemctl list-units --type=service \| grep running` | Daftar semua layanan yang saat ini berjalan di server RHEL. | 
| `#systemctl list-units --type=service \| grep failed` | Daftar semua layanan yang gagal dimuat setelah server RHEL reboot atau restart. | 
| `restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Mengubah konteksnya menjadi`aws-replication-service`. | 
| `yum install policycoreutils*` | Menginstal utilitas inti kebijakan yang diperlukan untuk pengoperasian SELinux sistem. | 
| `ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Mencari log audit dan membuat modul untuk kebijakan. | 
| `semodule -i my-modprobe.pp` | Mengaktifkan kebijakan. | 
| `cat my-modprobe.te` | Menampilkan isi `my-modprobe.te` file. | 
| `semodule -l \| grep my-modprobe` | Memeriksa apakah kebijakan telah dimuat ke SELinux modul. | 

## Epik
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-epics"></a>

### Instal AWS Replication Agent dan reboot server sumber RHEL
<a name="install-the-aws-replication-agent-and-reboot-the-rhel-source-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna Layanan Migrasi Aplikasi dengan kunci akses dan kunci akses rahasia.  | Untuk menginstal AWS Replication Agent, Anda harus membuat pengguna Layanan Migrasi Aplikasi dengan kredensi AWS yang diperlukan. Untuk petunjuk, lihat [dokumentasi Layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | Insinyur migrasi | 
| Instal AWS Replication Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.html) | Insinyur migrasi | 
| Mulai ulang atau reboot server sumber RHEL. | [Mulai ulang atau reboot server sumber RHEL Anda saat **status replikasi datanya** ditampilkan **Terhenti** di dasbor Migrasi.](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html) | Insinyur migrasi | 
| Periksa status replikasi data. | Tunggu selama satu jam dan kemudian periksa **status replikasi Data** lagi di dasbor Migrasi. Itu harus dalam keadaan **sehat**. | Insinyur migrasi | 

### Periksa status AWS Replication Agent di server sumber RHEL
<a name="check-aws-replication-agent-status-on-the-rhel-source-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi versi sistem. | Buka antarmuka baris perintah untuk server sumber RHEL Anda dan jalankan perintah berikut untuk mengidentifikasi versi sistem:`#systemctl –version` | Insinyur migrasi | 
| Daftar semua layanan aktif. | Untuk membuat daftar semua layanan aktif yang tersedia di server RHEL, jalankan perintah:`#systemctl list-units --type=service` | Insinyur migrasi | 
| Daftar semua layanan yang berjalan. | Untuk membuat daftar semua layanan yang sedang berjalan di server RHEL, gunakan perintah:`#systemctl list-units --type=service \| grep running` | Insinyur migrasi | 
| Buat daftar semua layanan yang gagal dimuat. | Untuk membuat daftar semua layanan yang gagal dimuat setelah server RHEL reboot atau restart, jalankan perintah:`#systemctl list-units --type=service \| grep failed` | Insinyur migrasi | 

### Buat dan jalankan SELinux modul
<a name="create-and-run-the-selinux-module"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah konteks keamanan. | Di antarmuka baris perintah untuk server sumber RHEL Anda, jalankan perintah berikut untuk mengubah konteks keamanan ke layanan replikasi AWS:`restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Insinyur migrasi | 
| Instal utilitas inti. | Untuk menginstal utilitas inti yang diperlukan untuk pengoperasian SELinux sistem dan kebijakannya, jalankan perintah:`yum install policycoreutils*` | Insinyur migrasi | 
| Cari log audit dan buat modul untuk kebijakan. | Jalankan perintah :`ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Insinyur migrasi | 
| Menampilkan isi my-modprobe-te file.  | `my-modprobe.te`File dihasilkan oleh perintah **audit2allow**. Ini mencakup SELinux domain, direktori sumber kebijakan, dan subdirektori, dan menentukan aturan vektor akses dan transisi yang terkait dengan domain. Untuk menampilkan isi file, jalankan perintah:`cat my modprobe.te` | Insinyur migrasi | 
| Aktifkan kebijakan. | Untuk menyisipkan modul dan membuat paket kebijakan aktif, jalankan perintah:`semodule -i my-modprobe.pp` | Insinyur migrasi | 
| Periksa apakah modul telah dimuat.  | Jalankan perintah :`semodule -l \| grep my-modprobe`Setelah SELinux modul dimuat, Anda tidak perlu lagi mengatur SELinux ke mode **nonaktif** atau **permisif** selama migrasi Anda. | Insinyur migrasi | 
| Reboot atau restart server sumber RHEL dan verifikasi status replikasi data. | Buka konsol AWS Migration Service, navigasikan ke **Progres replikasi data**, lalu reboot atau restart server sumber RHEL Anda. Replikasi data sekarang harus dilanjutkan secara otomatis setelah server sumber RHEL reboot. | Insinyur migrasi | 

## Sumber daya terkait
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-resources"></a>
+ [Dokumentasi layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Materi pelatihan teknis](https://docs.aws.amazon.com/mgn/latest/ug/mgn-training.html)
+ [Memecahkan masalah Agen Replikasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Agent-Issues.html)
+ [Kebijakan Layanan Migrasi Aplikasi](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html)

# Arsitek ulang
<a name="migration-rearchitect-pattern-list"></a>

**Topics**
+ [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)
+ [Meniru Oracle DR dengan menggunakan database global Aurora yang kompatibel dengan PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.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)
+ [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 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 paket pragma Oracle SERIALLY\$1REUSABLE ke PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migrasikan tabel eksternal Oracle ke Amazon Aurora PostgreSQL yang kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migrasikan indeks berbasis fungsi dari Oracle ke PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi](migrate-oracle-native-functions-to-postgresql-using-extensions.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)
+ [Memigrasi database ThoughtSpot Falcon lokal ke Amazon Redshift](migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift.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)
+ [Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.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 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 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)
+ [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 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)
+ [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)
+ [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 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)
+ [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)
+ [Memigrasi data dari database Oracle lokal ke Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.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)
+ [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)
+ [Migrasi aplikasi lama dari Oracle Pro\$1C ke ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migrasikan kolom virtual yang dihasilkan dari Oracle ke PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Siapkan fungsionalitas Oracle UTL\$1FILE pada Aurora PostgreSQL yang kompatibel](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Validasi objek database setelah bermigrasi dari Oracle ke Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# Mengkonversi VARCHAR2 (1) tipe data untuk Oracle ke tipe data Boolean untuk Amazon Aurora PostgreSQL
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql"></a>

*Naresh Damera, Amazon Web Services*

## Ringkasan
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-summary"></a>

Selama migrasi dari Amazon Relational Database Service (Amazon RDS) untuk Oracle ke Amazon Aurora PostgreSQL Compatible Edition, Anda mungkin mengalami ketidakcocokan data saat memvalidasi migrasi di (). AWS Database Migration Service AWS DMS Untuk mencegah ketidakcocokan ini, Anda dapat mengonversi VARCHAR2 (1) tipe data ke tipe data Boolean.

VARCHAR2 tipe data menyimpan string teks panjang variabel, dan VARCHAR2 (1) menunjukkan bahwa string adalah 1 karakter panjangnya atau 1 byte. Untuk informasi selengkapnya VARCHAR2, lihat [tipe data bawaan Oracle](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (dokumentasi Oracle).

Dalam pola ini, di kolom tabel data sumber sampel, VARCHAR2 (1) data adalah **Y**, untuk *Ya*, atau **N**, untuk *No*.  Pola ini mencakup instruksi untuk menggunakan AWS DMS dan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi tipe data ini dari nilai **Y** dan **N** di VARCHAR2 (1) ke nilai **benar** atau **salah** di Boolean.

**Audiens yang dituju**

Pola ini direkomendasikan bagi mereka yang memiliki pengalaman migrasi database Oracle ke Aurora PostgreSQL kompatibel dengan menggunakan. AWS DMS Saat Anda menyelesaikan migrasi, patuhi rekomendasi dalam [Mengonversi Oracle ke Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL (dokumentasi)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html).AWS SCT 

## Prasyarat dan batasan
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Konfirmasikan bahwa lingkungan Anda disiapkan untuk Aurora, termasuk menyiapkan kredensil, izin, dan grup keamanan. Untuk informasi selengkapnya, lihat [Menyiapkan lingkungan Anda untuk Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_SettingUp_Aurora.html) (dokumentasi Aurora).
+ Sumber Amazon RDS for Oracle database yang berisi VARCHAR2 kolom tabel dengan (1) data.
+ Instance database yang kompatibel dengan Amazon Aurora PostgreSQL target. Untuk informasi selengkapnya, lihat [Membuat cluster database dan menghubungkan ke database pada cluster database PostgreSQL Aurora (dokumentasi Aurora)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster).

**Versi produk**
+ Amazon RDS for Oracle versi 12.1.0.2 atau yang lebih baru.
+ AWS DMS versi 3.1.4 atau yang lebih baru. Untuk informasi selengkapnya, lihat [Menggunakan database Oracle sebagai sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) dan [Menggunakan database PostgreSQL sebagai](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) target untuk (dokumentasi). AWS DMSAWS DMS Kami menyarankan Anda menggunakan versi terbaru AWS DMS untuk versi dan dukungan fitur yang paling komprehensif.
+ AWS Schema Conversion Tool (AWS SCT) versi 1.0.632 atau yang lebih baru. Kami menyarankan Anda menggunakan versi terbaru AWS SCT untuk versi dan dukungan fitur yang paling komprehensif.
+ Aurora mendukung versi PostgreSQL yang tercantum dalam [Versi Mesin Database untuk Aurora PostgreSQL kompatibel (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)).

## Arsitektur
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-architecture"></a>

**Tumpukan teknologi sumber**

Amazon RDS for Oracle database instance

**Tumpukan teknologi target**

Contoh database yang kompatibel dengan Amazon Aurora PostgreSQL

**Arsitektur sumber dan target**

![\[Mengubah tipe data dari VARCHAR2 (1) ke Boolean\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5d4dc568-20d8-4883-a942-21c81039d8e6/images/9fd82ae2-56e6-439c-b4cd-9e74fe77b480.png)


## Alat
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-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.
+ [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.
+ [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://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://docs.oracle.com/en/database/oracle/sql-developer/) adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud. Dalam pola ini, Anda menggunakan alat ini untuk terhubung ke instance database Amazon RDS for Oracle dan menanyakan data.
+ [pgAdmin](https://www.pgadmin.org/docs/) adalah alat manajemen sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. Dalam pola ini, Anda menggunakan alat ini untuk terhubung ke instance database Aurora dan menanyakan data.

## Epik
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat laporan migrasi database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | DBA, Pengembang | 
| Nonaktifkan kendala kunci asing pada database target. | Di PostgreSQL, kunci asing diimplementasikan dengan menggunakan pemicu. Selama fase beban penuh, AWS DMS muat setiap tabel satu per satu. Kami sangat menyarankan agar Anda menonaktifkan batasan kunci asing selama pemuatan penuh dengan menggunakan salah satu metode berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Jika menonaktifkan batasan kunci asing tidak layak, buat tugas AWS DMS migrasi untuk data primer yang khusus untuk tabel induk dan tabel anak. | DBA, Pengembang | 
| Nonaktifkan kunci utama dan kunci unik pada database target. | Menggunakan perintah berikut, nonaktifkan kunci utama dan kendala pada database target. Ini membantu meningkatkan kinerja tugas pemuatan awal.<pre>ALTER TABLE <table> DISABLE PRIMARY KEY;</pre><pre>ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;</pre> | DBA, Pengembang | 
| Buat tugas pemuatan awal. | Di AWS DMS, buat tugas migrasi untuk pemuatan awal. Untuk petunjuk, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Untuk metode migrasi, pilih **Migrasi data yang ada**. Metode migrasi ini**** disebut `Full Load` dalam API. Jangan memulai tugas ini dulu. | DBA, Pengembang | 
| Edit pengaturan tugas untuk tugas pemuatan awal. | Edit pengaturan tugas untuk menambahkan validasi data. Pengaturan validasi ini harus dibuat dalam file JSON. Untuk petunjuk dan contoh, lihat [Menentukan setelan tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html). Tambahkan validasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Untuk memvalidasi sisa migrasi data, aktifkan validasi data dalam tugas. Untuk informasi selengkapnya, lihat [Pengaturan tugas validasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.html). | Administrator AWS, DBA | 
| Buat tugas replikasi yang sedang berlangsung. | Di AWS DMS, buat tugas migrasi yang membuat database target tetap sinkron dengan database sumber. Untuk petunjuk, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Untuk metode migrasi, pilih **Replikasi perubahan data saja**. Jangan memulai tugas ini dulu. | DBA | 

### Uji tugas migrasi
<a name="test-the-migration-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat data sampel untuk pengujian. | Dalam database sumber, buat tabel sampel dengan data untuk tujuan pengujian. | Developer | 
| Konfirmasikan tidak ada kegiatan yang saling bertentangan. | Gunakan tombol `pg_stat_activity` untuk memeriksa aktivitas apa pun di server yang mungkin memengaruhi migrasi. Untuk informasi lebih lanjut, lihat [The Statistics Collector](https://www.postgresql.org/docs/current/monitoring-stats.html) (dokumentasi PostgreSQL). | Administrator AWS | 
| Mulai tugas AWS DMS migrasi. | Di AWS DMS konsol, di halaman **Dasbor**, mulai pemuatan awal dan tugas replikasi berkelanjutan yang Anda buat di epik sebelumnya. | Administrator AWS | 
| Pantau tugas dan status beban tabel. | Selama migrasi, pantau [status tugas dan status](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.Status) [tabel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.CustomizingTasks.TableState). Saat tugas pemuatan awal selesai, pada tab **Statistik tabel**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | Administrator AWS | 
| Verifikasi hasil migrasi. | Menggunakan pgAdmin, kueri tabel pada database target. Kueri yang berhasil menunjukkan bahwa data berhasil dimigrasi. | Developer | 
| Tambahkan kunci utama dan kunci asing pada database target. | Buat kunci utama dan kunci asing pada basis data target. Untuk informasi lebih lanjut, lihat [ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html) (situs web PostgreSQL). | DBA | 
| Bersihkan data pengujian. | Pada basis data sumber dan target, bersihkan data yang dibuat untuk pengujian unit. | Developer | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Selesaikan migrasi. | Ulangi epik sebelumnya, *Uji tugas migrasi*, menggunakan data sumber nyata. Ini memigrasikan data dari sumber ke database target. | Developer | 
| Validasi bahwa basis data sumber dan target sinkron. | Validasi bahwa basis data sumber dan target sinkron. Untuk informasi dan instruksi selengkapnya, lihat [validasi AWS DMS data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Developer | 
| Hentikan database sumber. | Hentikan database Amazon RDS for Oracle. Untuk petunjuknya, lihat [Menghentikan instans Amazon RDS DB sementara](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html). Saat Anda menghentikan basis data sumber, beban awal dan tugas replikasi yang sedang berlangsung akan dihentikan secara otomatis. AWS DMS Tidak ada tindakan tambahan yang diperlukan untuk menghentikan tugas-tugas ini. | Developer | 

## Sumber daya terkait
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-resources"></a>

**AWS referensi**
+ [Migrasikan database Oracle ke Aurora PostgreSQL menggunakan](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.html) dan (Panduan Preskriptif) AWS DMS AWS SCTAWS 
+ [Mengonversi Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL (dokumentasi)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html)AWS SCT 
+ [Cara AWS DMS Kerja](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.html) (AWS DMS dokumentasi)

**Referensi lainnya**
+ [Tipe data Boolean (dokumentasi](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-boolean/) PostgreSQL)
+ [Tipe data bawaan Oracle](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (dokumentasi Oracle)
+ [pgAdmin (situs](https://www.pgadmin.org/) web pgAdmin)
+ [Pengembang SQL](https://www.oracle.com/database/technologies/appdev/sql-developer.html) (situs web Oracle)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai Dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Pengantar AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (Video)
+ [Memahami Amazon RDS](https://www.youtube.com/watch?v=eMzCI7S1P9M) (Video)

## Informasi tambahan
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-additional"></a>

**Skrip validasi data**

**Skrip validasi data berikut mengkonversi **1** ke **Y** dan **0** ke N.** Ini membantu AWS DMS tugas berhasil menyelesaikan dan lulus validasi tabel.

```
{
"rule-type": "validation",
"rule-id": "5",
"rule-name": "5",
"rule-target": "column",
"object-locator": {
"schema-name": "ADMIN",
"table-name": "TEMP_CHRA_BOOL",
"column-name": "GRADE"
},
"rule-action": "override-validation-function",
"target-function": "case grade when '1' then 'Y' else 'N' end"
        }
```

`case`Pernyataan dalam skrip melakukan validasi. Jika validasi gagal, AWS DMS menyisipkan catatan dalam tabel **public.awsdms\$1validation\$1failures\$1v1** pada instance database target. Catatan ini mencakup nama tabel, waktu kesalahan, dan detail tentang nilai yang tidak cocok dalam tabel sumber dan target.

Jika Anda tidak menambahkan skrip validasi data ini ke AWS DMS tugas dan data dimasukkan dalam tabel target, AWS DMS tugas menunjukkan status validasi sebagai Catatan Tidak Cocokkan**.**

Selama AWS SCT konversi, tugas AWS DMS migrasi mengubah tipe data VARCHAR2 (1) tipe data ke Boolean dan menambahkan kendala kunci utama pada kolom. `"NO"`

# Buat pengguna dan peran aplikasi di Aurora PostgreSQL yang kompatibel
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible"></a>

*Abhishek Verma, Amazon Web Services*

## Ringkasan
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-summary"></a>

Saat Anda bermigrasi ke Amazon Aurora PostgreSQL Compatible Edition, pengguna database dan peran yang ada di database sumber harus dibuat dalam database yang kompatibel dengan Aurora PostgreSQL. Anda dapat membuat pengguna dan peran di Aurora PostgreSQL kompatibel dengan menggunakan dua pendekatan yang berbeda:
+ Gunakan pengguna dan peran serupa dalam target seperti dalam database sumber. Dalam pendekatan ini, bahasa definisi data (DDLs) diekstraksi untuk pengguna dan peran dari database sumber. Kemudian mereka ditransformasikan dan diterapkan ke database target yang kompatibel dengan Aurora PostgreSQL. Misalnya, posting blog [Gunakan SQL untuk memetakan pengguna, peran, dan hibah dari Oracle ke PostgreSQL mencakup menggunakan ekstraksi dari mesin](https://aws.amazon.com/blogs/database/use-sql-to-map-users-roles-and-grants-from-oracle-to-postgresql) database sumber Oracle.
+ Gunakan pengguna standar dan peran yang umum digunakan selama pengembangan, administrasi, dan untuk melakukan operasi terkait lainnya dalam database. Ini termasuk operasi read-only, read/write, development, administration, dan deployment yang dilakukan oleh masing-masing pengguna.

Pola ini berisi hibah yang diperlukan untuk pengguna dan pembuatan peran di Aurora PostgreSQL kompatibel yang diperlukan untuk pengguna standar dan pendekatan peran. Langkah-langkah pembuatan pengguna dan peran disejajarkan dengan kebijakan keamanan untuk memberikan hak istimewa paling sedikit kepada pengguna database. Tabel berikut mencantumkan pengguna, peran yang sesuai, dan detailnya di database.


| 
| 
| Pengguna | Peran | Tujuan | 
| --- |--- |--- |
| `APP_read` | `APP_RO` | Digunakan untuk akses hanya-baca pada skema `APP` | 
| `APP_WRITE` | `APP_RW` | Digunakan untuk operasi tulis dan baca pada skema `APP` | 
| `APP_dev_user` | `APP_DEV` | Digunakan untuk tujuan pengembangan pada skema`APP_DEV`, dengan akses hanya-baca pada skema `APP` | 
| `Admin_User` | `rds_superuser` | Digunakan untuk melakukan operasi administrator pada database | 
| `APP` | `APP_DEP` | Digunakan untuk membuat objek di bawah `APP` skema dan untuk penyebaran objek dalam skema `APP` | 

## Prasyarat dan batasan
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-prereqs"></a>

**Prasyarat**
+ Akun Amazon Web Services (AWS) yang aktif
+ Database PostgreSQL, database Edisi Amazon Aurora PostgreSQL yang kompatibel, atau Amazon Relational Database Service (Amazon RDS) untuk database PostgreSQL

**Versi produk**
+ Semua versi PostgreSQL

## Arsitektur
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-architecture"></a>

**Tumpukan teknologi sumber**
+ Database apa pun

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

**Arsitektur target**

Diagram berikut menunjukkan peran pengguna dan arsitektur skema dalam database Aurora PostgreSQL kompatibel.

![\[Peran pengguna dan arsitektur skema untuk database Aurora PostgreSQL-Comaptible.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/80105a81-e3d1-4258-b3c1-77f3a5e78592/images/b95cb9bc-8bf7-47d1-92e7-66cfb37d7ce7.png)


                                                                                                                                    

**Otomatisasi dan skala**

Pola ini berisi pengguna, peran, dan skrip pembuatan skema, yang dapat Anda jalankan beberapa kali tanpa berdampak pada pengguna database sumber atau target yang ada.

## Alat
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-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.

**Layanan lainnya**
+ [psql](https://www.postgresql.org/docs/current/app-psql.html) adalah alat front-end berbasis terminal yang diinstal dengan setiap instalasi PostgreSQL Database. Ini memiliki antarmuka baris perintah untuk menjalankan SQL, PL-PGSQL, dan perintah sistem operasi.
+ [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="create-application-users-and-roles-in-aurora-postgresql-compatible-epics"></a>

### Buat pengguna dan peran
<a name="create-the-users-and-roles"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna penerapan. | Pengguna penyebaran `APP` akan digunakan untuk membuat dan memodifikasi objek database selama penerapan. Gunakan skrip berikut untuk membuat peran pengguna penerapan `APP_DEP` dalam skema. `APP` Validasi hak akses untuk memastikan pengguna ini hanya memiliki hak istimewa untuk membuat objek dalam skema yang diperlukan. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Buat pengguna hanya-baca. | Pengguna hanya-baca `APP_read` akan digunakan untuk melakukan operasi hanya-baca dalam skema. `APP` Gunakan skrip berikut untuk membuat pengguna hanya-baca. Validasi hak akses untuk memastikan bahwa pengguna ini memiliki hak istimewa hanya untuk membaca objek dalam skema `APP` dan untuk secara otomatis memberikan akses baca untuk objek baru yang dibuat dalam skema. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Buat read/write pengguna. |  read/write Pengguna `APP_WRITE` akan digunakan untuk melakukan operasi baca dan tulis pada skema`APP`. Gunakan skrip berikut untuk membuat read/write pengguna dan berikan `APP_RW` perannya. Validasi hak akses untuk memastikan bahwa pengguna ini memiliki hak baca dan tulis hanya pada objek dalam skema `APP` dan untuk secara otomatis memberikan akses baca dan tulis untuk objek baru yang dibuat dalam skema. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) |  | 
| Buat pengguna admin. | Pengguna admin `Admin_User` akan digunakan untuk melakukan operasi admin pada database. Contoh operasi ini adalah `CREATE ROLE` dan`CREATE DATABASE`. `Admin_User`menggunakan peran bawaan `rds_superuser` untuk melakukan operasi admin pada database. Gunakan skrip berikut untuk membuat dan menguji hak istimewa bagi pengguna admin `Admin_User` dalam database.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Buat pengguna pengembangan. | Pengguna pengembangan `APP_dev_user` akan memiliki hak untuk membuat objek dalam skema lokalnya `APP_DEV` dan membaca akses dalam skema`APP`. Gunakan skrip berikut untuk membuat dan menguji hak istimewa pengguna `APP_dev_user` dalam database.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 

## Sumber daya terkait
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-resources"></a>

**Dokumentasi PostgreSQL**
+ [BUAT PERAN](https://www.postgresql.org/docs/9.1/sql-createrole.html)
+ [BUAT PENGGUNA](https://www.postgresql.org/docs/8.0/sql-createuser.html)
+ [Peran yang telah ditentukan](https://www.postgresql.org/docs/14/predefined-roles.html)

 

## Informasi tambahan
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-additional"></a>

**PostgreSQL 14 peningkatan**

PostgreSQL 14 menyediakan seperangkat peran yang telah ditentukan sebelumnya yang memberikan akses ke kemampuan dan informasi tertentu yang umum dibutuhkan dan istimewa. Administrator (termasuk peran yang memiliki `CREATE ROLE` hak istimewa) dapat memberikan peran ini atau peran lain di lingkungan mereka kepada pengguna, memberi mereka akses ke kemampuan dan informasi yang ditentukan.

Administrator dapat memberikan pengguna akses ke peran ini menggunakan `GRANT` perintah. Misalnya, untuk memberikan `pg_signal_backend` peran`Admin_User`, Anda dapat menjalankan perintah berikut.

```
GRANT pg_signal_backend TO Admin_User;
```

`pg_signal_backend`Peran ini dimaksudkan untuk memungkinkan administrator mengaktifkan peran non-superuser tepercaya untuk mengirim sinyal ke backend lain. Untuk informasi lebih lanjut, lihat peningkatan [PostgreSQL 14](https://www.postgresql.org/docs/14/predefined-roles.html).

**Akses fine-tuning**

Dalam beberapa kasus, mungkin perlu menyediakan akses yang lebih terperinci ke pengguna (misalnya, akses berbasis tabel atau akses berbasis kolom). Dalam kasus seperti itu, peran tambahan dapat dibuat untuk memberikan hak istimewa tersebut kepada pengguna. Untuk informasi lebih lanjut, lihat Hibah [PostgreSQL](https://www.postgresql.org/docs/8.4/sql-grant.html).

# Meniru Oracle DR dengan menggunakan database global Aurora yang kompatibel dengan PostgreSQL
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database"></a>

*HariKrishna Boorgadda, Amazon Web Services*

## Ringkasan
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-summary"></a>

Praktik terbaik untuk pemulihan bencana Enterprise (DR) pada dasarnya terdiri dari merancang dan menerapkan sistem perangkat keras dan perangkat lunak yang toleran terhadap kesalahan yang dapat bertahan dari bencana (*kelanjutan bisnis*) dan melanjutkan operasi normal (*dimulainya kembali bisnis*), dengan intervensi minimal dan, idealnya, tanpa kehilangan data. Membangun lingkungan yang toleran terhadap kesalahan untuk memenuhi tujuan Enterprise DR bisa mahal dan memakan waktu dan membutuhkan komitmen yang kuat dari bisnis.

Oracle Database menyediakan tiga pendekatan berbeda untuk DR yang memberikan tingkat perlindungan dan ketersediaan data tertinggi dibandingkan dengan pendekatan lain untuk melindungi data Oracle.
+ Alat Pemulihan Kehilangan Data Oracle Zero
+ Penjaga Data Aktif Oracle
+ Oracle GoldenGate

Pola ini menyediakan cara untuk meniru Oracle GoldenGate DR dengan menggunakan database global Amazon Aurora. Arsitektur referensi menggunakan Oracle GoldenGate untuk DR di tiga Wilayah AWS. Pola ini berjalan melalui replatforming arsitektur sumber ke database global Aurora cloud-native berdasarkan Amazon Aurora PostgreSQL—Edisi yang kompatibel dengan Amazon Aurora.

Database global Aurora dirancang untuk aplikasi dengan jejak global. Basis data Aurora tunggal mencakup beberapa Wilayah AWS dengan sebanyak lima Wilayah sekunder. Database global Aurora menyediakan fitur-fitur berikut:
+ Replikasi tingkat penyimpanan fisik
+ Bacaan global latensi rendah
+ Pemulihan bencana yang cepat dari pemadaman di seluruh wilayah
+ Migrasi lintas wilayah yang cepat
+ Kelambatan replikasi rendah di seluruh Wilayah
+ Little-to-no dampak kinerja pada database Anda

Untuk informasi selengkapnya tentang fitur dan keunggulan database global Aurora, lihat [Menggunakan database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-overview). Untuk informasi selengkapnya tentang failover yang tidak direncanakan dan terkelola, lihat [Menggunakan failover di database global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover).

## Prasyarat dan batasan
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Driver PostgreSQL Konektivitas Database Java (JDBC) untuk konektivitas aplikasi
+ Database global Aurora berdasarkan Amazon Aurora PostgreSQL Edisi yang kompatibel
+ Database Oracle Real Application Clusters (RAC) bermigrasi ke database global Aurora berdasarkan Aurora PostgreSQL yang kompatibel

**Keterbatasan database global Aurora**
+ Database global Aurora tidak tersedia di semua Wilayah AWS. Untuk daftar Wilayah yang didukung, lihat [database global Aurora dengan Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.apg).
+ Untuk informasi tentang fitur yang tidak didukung dan batasan lain dari database global 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 PostgreSQL — Edisi yang kompatibel dengan versi 10.14 atau yang lebih baru

## Arsitektur
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-architecture"></a>

**Tumpukan teknologi sumber******
+ Database empat simpul Oracle RAC
+ Oracle GoldenGate

**Arsitektur sumber******

Diagram berikut menunjukkan tiga cluster dengan empat node Oracle RAC di Wilayah AWS yang berbeda direplikasi menggunakan Oracle. GoldenGate 

![\[Oracle RAC di Wilayah primer dan dua Wilayah sekunder.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/9fc740fc-d339-422e-beaf-1f65690c9d14.png)


**Tumpukan teknologi target**
+ Database global Amazon Aurora tiga cluster berdasarkan Aurora PostgreSQL — kompatibel, dengan satu cluster di Wilayah primer, dua cluster di Wilayah sekunder yang berbeda

**Arsitektur target**

![\[Amazon Aurora di Wilayah primer dan dua Wilayah sekunder.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/8e3deca9-03f2-437c-9341-795ac17e2b42.png)


## Alat
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-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.
+ [Basis data global Amazon Aurora menjangkau](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) beberapa Wilayah AWS, memberikan pembacaan global latensi rendah dan pemulihan cepat dari pemadaman langka yang mungkin memengaruhi seluruh Wilayah AWS.

## Epik
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-epics"></a>

### Tambahkan Wilayah dengan instans DB pembaca
<a name="add-regions-with-reader-db-instances"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pasang satu atau lebih cluster Aurora sekunder. | Di AWS Management Console, pilih Amazon Aurora. Pilih cluster utama, pilih **Tindakan**, dan pilih **Tambah wilayah** dari daftar dropdown. | DBA | 
| Pilih kelas instance. | Anda dapat mengubah kelas instance dari cluster sekunder. Namun, kami sarankan untuk tetap sama dengan kelas instance cluster utama. | DBA | 
| Tambahkan wilayah ketiga. | Ulangi langkah-langkah dalam epik ini untuk menambahkan cluster di Wilayah ketiga. | DBA | 

### Gagal atas database global Aurora
<a name="fail-over-the-aurora-global-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus cluster utama dari database global Aurora. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.html) | DBA | 
| Konfigurasi ulang aplikasi Anda untuk mengalihkan lalu lintas ke cluster yang baru dipromosikan. | Ubah titik akhir dalam aplikasi dengan cluster yang baru dipromosikan. | DBA | 
| Berhenti mengeluarkan operasi penulisan apa pun ke cluster yang tidak tersedia. | Hentikan aplikasi dan aktivitas bahasa manipulasi data (DHTML) apa pun ke cluster yang Anda hapus. | DBA | 
| Buat database global Aurora baru. | Sekarang Anda dapat membuat database global Aurora dengan cluster yang baru dipromosikan sebagai cluster utama. | DBA | 

### Mulai cluster utama
<a name="start-the-primary-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih cluster utama yang akan dimulai dari database global. | Di konsol Amazon Aurora, dalam pengaturan Database Global, pilih klaster utama. | DBA | 
| Mulai cluster. | **Pada daftar dropdown **Tindakan**, pilih Mulai.** Proses ini mungkin memakan waktu. Segarkan layar untuk melihat status, atau periksa kolom **Status** untuk status cluster saat ini setelah operasi selesai. | DBA | 

### Bersihkan sumber daya
<a name="clean-up-the-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus cluster sekunder yang tersisa. | Setelah pilot failover selesai, hapus cluster sekunder dari database global. | DBA | 
| Hapus cluster utama. | Hapus cluster. | DBA | 

## Sumber daya terkait
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-resources"></a>
+ [Menggunakan basis data global Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-detaching)
+ [Solusi Pemulihan Bencana Aurora PostgreSQL menggunakan Amazon Aurora](https://aws.amazon.com/blogs/database/aurora-postgresql-disaster-recovery-solutions-using-amazon-aurora-global-database/) Global Database (posting blog)

# Menerapkan SHA1 hashing untuk data PII saat bermigrasi dari SQL Server ke PostgreSQL
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql"></a>

*Rajkumar Raghuwanshi dan Jagadish Kantubugata, Amazon Web Services*

## Ringkasan
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-summary"></a>

Pola ini menjelaskan cara menerapkan hashing Secure Hash Algorithm 1 (SHA1) untuk alamat email saat bermigrasi dari SQL Server ke Amazon RDS for PostgreSQL atau yang kompatibel dengan Amazon Aurora PostgreSQL. Alamat email adalah contoh *informasi identitas pribadi* (PII). PII adalah informasi yang, jika dilihat secara langsung atau dipasangkan dengan data terkait lainnya, dapat digunakan untuk menyimpulkan identitas individu secara wajar. 

Pola ini mencakup tantangan mempertahankan nilai hash yang konsisten di berbagai kumpulan database dan pengkodean karakter, dan memberikan solusi menggunakan fungsi dan pemicu PostgreSQL. Meskipun pola ini berfokus pada SHA1 hashing, itu dapat disesuaikan untuk algoritma hashing lain yang didukung oleh modul PostgreSQL. `pgcrypto` Selalu pertimbangkan implikasi keamanan dari strategi hashing Anda dan konsultasikan dengan pakar keamanan jika menangani data sensitif.

## Prasyarat dan batasan
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Sumber database SQL Server
+ Target database PostgreSQL (Amazon RDS untuk PostgreSQL atau Aurora PostgreSQL kompatibel)
+ Keahlian pengkodean PL/PGSQL

**Batasan**
+ Pola ini memerlukan perubahan pemeriksaan tingkat basis data berdasarkan kasus penggunaan.
+ Dampak kinerja pada kumpulan data besar belum dievaluasi.
+ 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**
+ Microsoft SQL Server 2012 atau yang lebih baru

## Arsitektur
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ SQL Server
+ .NET Framework

**Tumpukan teknologi target**
+ PostgreSQL
+ `pgcrypto`perpanjangan

**Otomatisasi dan skala**
+ Pertimbangkan untuk menerapkan fungsi hashing sebagai prosedur tersimpan untuk perawatan yang lebih mudah.
+ Untuk kumpulan data besar, evaluasi kinerja dan pertimbangkan pemrosesan batch atau strategi pengindeksan.

## Alat
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-tools"></a>

**Layanan AWS**
+ [Amazon Aurora PostgreSQL kompatibel](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.
+ [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.
+ [Amazon Relational Database Service Amazon RDS for 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.

**Alat lainnya**
+ [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.
+ [SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms) adalah lingkungan terintegrasi untuk mengelola infrastruktur SQL apa pun.

## Praktik terbaik
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-best-practices"></a>
+ Gunakan pengaturan pemeriksaan yang sesuai untuk menangani karakter khusus di sisi database target.
+ Uji secara menyeluruh dengan berbagai alamat email, termasuk alamat dengan karakter non-ASCII.
+ Pertahankan konsistensi dalam penanganan huruf besar dan kecil antara lapisan aplikasi dan database.
+ Benchmark kinerja kueri menggunakan nilai hash.

## Epik
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-epics"></a>

### Menganalisis implementasi hashing sumber
<a name="analyze-source-hashing-implementation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau kode SQL Server. | Untuk meninjau kode SQL Server yang menghasilkan SHA1 hash, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Insinyur data, DBA, Pengembang aplikasi | 
| Dokumentasikan algoritma hashing dan transformasi data. | Untuk mendokumentasikan algoritma hashing dan transformasi data yang tepat, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, Insinyur data, DBA | 

### Buat fungsi hashing PostgreSQL
<a name="create-postgresql-hashing-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat `pgcrypto` ekstensi. | Untuk membuat `pgcrypto` ekstensi, gunakan `pgAdmin/psql` untuk menjalankan perintah berikut:<pre>CREATE EXTENSION pgcrypto;</pre> | DBA, Insinyur data | 
| Menerapkan fungsi PostgreSQL. | Menerapkan fungsi PostgreSQL berikut untuk mereplikasi logika hashing SQL Server. Pada tingkat tinggi, fungsi ini menggunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html)<pre>CREATE OR REPLACE FUNCTION utility.hex_to_bigint ( <br />     par_val character varying, <br />     par_upper character varying DEFAULT 'lower'::character varying) <br />RETURNS bigint <br />LANGUAGE 'plpgsql' <br />AS $BODY$ <br />DECLARE <br />    retnumber bigint; <br />    digest_bytes bytea;<br />BEGIN <br />    if lower(par_upper) = 'upper' <br />    then <br />        digest_bytes := digest(upper(par_val), 'sha1');<br />    else <br />        digest_bytes := digest((par_val), 'sha1');<br />    end if; <br />    retnumber := ('x' || encode(substring(digest_bytes, length(digest_bytes)-10+1), 'hex'))::bit(64)::bigint; <br />    RETURN retnumber; <br />END; <br />$BODY$;</pre> | Insinyur data, DBA, Pengembang aplikasi | 
| Uji fungsinya. | Untuk menguji fungsi, gunakan data sampel dari SQL Server untuk memverifikasi nilai hash yang cocok. Jalankan perintah berikut:<pre>select 'alejandro_rosalez@example.com' as Email, utility.hex_to_bigint('alejandro_rosalez@example.com','upper') as HashValue;<br /><br />--OUTPUT<br />/*<br />email 	        hashvalue<br />"alejandro_rosalez@example.com"	451397011176045063<br />*/<br /></pre> | Pengembang aplikasi, DBA, Insinyur data | 

### Menerapkan pemicu untuk hashing otomatis
<a name="implement-triggers-for-automatic-hashing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pemicu pada tabel yang relevan. | Untuk membuat pemicu pada tabel yang relevan untuk secara otomatis menghasilkan nilai hash pada insert atau update, jalankan perintah berikut:<pre>CREATE OR REPLACE FUNCTION update_email_hash() <br />RETURNS TRIGGER <br />AS $$ <br />BEGIN <br />    NEW.email_hash = utility.hex_to_bigint(NEW.email, 'upper'); <br />    RETURN NEW; <br />END; <br />$$ LANGUAGE plpgsql;</pre><pre>CREATE TRIGGER email_hash_trigger BEFORE INSERT OR UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_email_hash();</pre> | Pengembang aplikasi, Insinyur data, DBA | 

### Migrasi data yang ada
<a name="migrate-existing-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembangkan skrip migrasi atau gunakan AWS DMS.  | Kembangkan skrip migrasi atau gunakan AWS DMS untuk mengisi nilai hash untuk data yang ada (termasuk nilai hash yang disimpan seperti `BIGINT` dalam sistem sumber.) Lakukan hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Insinyur data, Pengembang aplikasi, DBA | 
| Gunakan fungsi hashing PostgreSQL yang baru. | Untuk menggunakan fungsi hashing PostgreSQL baru untuk memastikan konsistensi, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, DBA, DevOps insinyur | 

### Perbarui kueri aplikasi
<a name="update-application-queries"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi kueri aplikasi. | Untuk mengidentifikasi kueri aplikasi yang menggunakan nilai hash, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, DBA, Insinyur data | 
| Ubah kueri. | Jika perlu, ubah kueri untuk menggunakan fungsi hashing PostgreSQL yang baru. Lakukan hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, DBA, Insinyur data | 

### Uji dan validasi
<a name="test-and-validate"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan pengujian. | Untuk melakukan pengujian menyeluruh dengan subset data produksi, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, Insinyur data, DBA | 
| Validasi bahwa nilai hash cocok. | Untuk memvalidasi bahwa nilai hash cocok antara SQL Server dan PostgreSQL, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, Insinyur data, DBA | 
| Verifikasi fungsionalitas aplikasi. | Untuk memverifikasi fungsionalitas aplikasi dengan menggunakan data yang dimigrasi dan implementasi hashing baru, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Pengembang aplikasi, DBA, Insinyur data | 

## Pemecahan masalah
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Nilai hash tidak cocok. | Verifikasi pengkodean karakter dan susunan antara sumber dan target. Untuk informasi selengkapnya, lihat [Mengelola perubahan pemeriksaan di PostgreSQL di Amazon Aurora dan Amazon RDS (Blog](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)).AWS  | 

## Sumber daya terkait
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-resources"></a>

**AWS Blog**
+ [Kelola perubahan pemeriksaan di PostgreSQL di Amazon Aurora dan Amazon RDS](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)
+ [Migrasikan SQL Server ke Amazon Aurora PostgreSQL menggunakan praktik terbaik dan pelajaran yang dipetik dari lapangan](https://aws.amazon.com/blogs/database/migrate-sql-server-to-amazon-aurora-postgresql-using-best-practices-and-lessons-learned-from-the-field/)

**Sumber daya lainnya**
+ [PostgreSQL modul pgcrypto (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/current/pgcrypto.html)
+ Fungsi [pemicu PostgreSQL (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/current/plpgsql-trigger.html)
+ [Fungsi SQL Server HASHBYTES (dokumentasi Microsoft)](https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql)

# Bermigrasi secara bertahap dari Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL menggunakan Oracle SQL Developer dan AWS SCT
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-summary"></a>

Banyak strategi dan pendekatan migrasi berjalan dalam beberapa fase yang dapat berlangsung dari beberapa minggu hingga beberapa bulan. Selama waktu ini, Anda dapat mengalami penundaan karena penambalan atau peningkatan dalam instans DB Oracle sumber yang ingin Anda migrasi ke instans PostgreSQL DB. Untuk menghindari situasi ini, kami menyarankan Anda secara bertahap memigrasikan kode database Oracle yang tersisa ke kode database PostgreSQL.

Pola ini menyediakan strategi migrasi inkremental tanpa downtime untuk instans Oracle DB multi-terabyte yang memiliki jumlah transaksi tinggi yang dilakukan setelah migrasi awal Anda dan yang harus dimigrasikan ke database PostgreSQL. Anda dapat menggunakan step-by-step pendekatan pola ini untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instans Oracle DB secara bertahap ke instans Amazon RDS for PostgreSQL DB tanpa masuk ke Konsol Manajemen Amazon Web Services (AWS).

Pola ini menggunakan [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) untuk menemukan perbedaan antara dua skema dalam database sumber Oracle. Anda kemudian menggunakan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi objek skema database Amazon RDS for Oracle ke Amazon RDS untuk objek skema database Amazon RDS for PostgreSQL. Anda kemudian dapat menjalankan skrip Python di Windows Command Prompt untuk membuat objek AWS SCT untuk perubahan tambahan pada objek database sumber.

**catatan**  
Sebelum memigrasikan beban kerja produksi, sebaiknya jalankan proof of concept (PoC) untuk pendekatan pola ini di lingkungan pengujian atau non-produksi.

## Prasyarat dan batasan
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Instans Amazon RDS for Oracle DB yang ada. 
+ Amazon RDS yang ada untuk instans DB Amazon RDS for PostGresQL.
+ AWS SCT, diinstal dan dikonfigurasi dengan driver JDBC untuk mesin database Oracle dan PostgreSQL. Untuk informasi selengkapnya tentang ini, lihat [Menginstal AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) dan [Menginstal driver database yang diperlukan](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers) dalam dokumentasi AWS SCT. 
+ Oracle SQL Developer, diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat dokumentasi [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html). 
+ `incremental-migration-sct-sql.zip`File (terlampir), diunduh ke komputer lokal Anda.

**Batasan**
+ Persyaratan minimum untuk instans Amazon RDS for Oracle DB sumber Anda adalah:
  + Oracle versi 10.2 dan yang lebih baru (untuk versi 10.x), 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, dan 18c untuk edisi Enterprise, Standard, Standard One, dan Standard Two
+ Persyaratan minimum untuk instans Amazon RDS for PostgreSQL DB target Anda adalah:  
  + PostgreSQL versi 9.4 dan yang lebih baru (untuk versi 9.x), 10.x, dan 11.x
+ Pola ini menggunakan Oracle SQL Developer. Hasil Anda mungkin berbeda jika Anda menggunakan alat lain untuk menemukan dan mengekspor perbedaan skema.
+ [Skrip SQL](https://docs.oracle.com/database/121/AEUTL/sql_rep.htm#AEUTL191) yang dihasilkan oleh Oracle SQL Developer dapat meningkatkan kesalahan transformasi, yang berarti Anda perlu melakukan migrasi manual.
+ Jika koneksi pengujian sumber dan target AWS SCT gagal, pastikan Anda mengonfigurasi versi driver JDBC dan aturan masuk untuk grup keamanan virtual private cloud (VPC) untuk menerima lalu lintas masuk.

**Versi produk**
+ Amazon RDS for Oracle DB instans versi 12.1.0.2 (versi 10.2 dan yang lebih baru)
+ Amazon RDS for PostgreSQL DB instans versi 11.5 (versi 9.4 dan yang lebih baru)
+ Oracle SQL Developer versi 19.1 dan yang lebih baru
+ AWS SCT versi 1.0.632 dan yang lebih baru

## Arsitektur
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon RDS for Oracle DB instans

**Tumpukan teknologi target**
+ Amazon RDS untuk instans DB Amazon RDS for PostgreSQL

**Arsitektur sumber dan target**

Diagram berikut menunjukkan migrasi instans Amazon RDS for Oracle DB ke instans Amazon RDS for PostgreSQL DB.

![\[Alur kerja migrasi dari Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c7eed517-e496-4e8e-a520-c1e43397419e/images/bfbbed5e-db13-4a22-99aa-1a17f00f5faf.png)


Diagram menunjukkan alur kerja migrasi berikut:

1. Buka Oracle SQL Developer dan sambungkan ke database sumber dan target.

1. Hasilkan [laporan diff](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) dan kemudian buat file skrip SQL untuk objek perbedaan skema. Untuk informasi selengkapnya tentang laporan diff, lihat [Laporan diff terperinci](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) dalam dokumentasi Oracle.

1. Konfigurasikan AWS SCT dan jalankan kode Python.

1. File skrip SQL mengkonversi dari Oracle ke PostgreSQL.

1. Jalankan file skrip SQL pada instance PostgreSQL DB target. 

**Otomatisasi dan skala**

Anda dapat mengotomatiskan migrasi ini dengan menambahkan parameter tambahan dan perubahan terkait keamanan untuk beberapa fungsi dalam satu program ke skrip Python Anda.

## Alat
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-tools"></a>
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — AWS Schema Conversion Tool (AWS SCT) mengonversi skema database Anda yang ada dari satu mesin database ke mesin database lainnya.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi (IDE) yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud.

**Kode**

`incremental-migration-sct-sql.zip`File (terlampir) berisi kode sumber lengkap untuk pola ini.

## Epik
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-epics"></a>

### Buat file skrip SQL untuk perbedaan skema basis data sumber
<a name="create-the-sql-scripts-file-for-the-source-database-schema-differences"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan Database Diff di Oracle SQL Developer.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
| Hasilkan file skrip SQL. | Pilih **Generate Script** untuk menghasilkan perbedaan dalam file SQL. Ini menghasilkan file skrip SQL yang digunakan AWS SCT untuk mengonversi database Anda dari Oracle ke PostgreSQL. | DBA | 

### Gunakan skrip Python untuk membuat objek DB target di AWS SCT
<a name="use-the-python-script-to-create-the-target-db-objects-in-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS SCT dengan Windows Command Prompt.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html)<pre>#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port<br /><br />ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432</pre>4. Ubah parameter konfigurasi AWS SCT sesuai dengan kebutuhan Anda dan kemudian salin file skrip SQL ke direktori kerja Anda di subdirektori. `input` | DBA | 
| Jalankan skrip Python.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
|  Buat objek di Amazon RDS untuk PostgreSQL | Jalankan file SQL dan buat objek di Amazon RDS for PostgreSQL DB instance. | DBA | 

## Sumber daya terkait
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-resources"></a>
+ [Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [PostgreSQL di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Menggunakan antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Menggunakan Oracle sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

## Lampiran
<a name="attachments-c7eed517-e496-4e8e-a520-c1e43397419e"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/c7eed517-e496-4e8e-a520-c1e43397419e/attachments/attachment.zip)

# Muat file BLOB ke TEXT dengan menggunakan pengkodean file di Aurora PostgreSQL yang kompatibel
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible"></a>

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

## Ringkasan
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-summary"></a>

Seringkali selama migrasi, ada kasus di mana Anda harus memproses data tidak terstruktur dan terstruktur yang dimuat dari file pada sistem file lokal. Data mungkin juga berada dalam kumpulan karakter yang berbeda dari kumpulan karakter database.

File-file ini menyimpan jenis data berikut:
+ **Metadata** — Data ini menjelaskan struktur file.
+ **Data semi-terstruktur** — Ini adalah string tekstual dalam format tertentu, seperti JSON atau XHTML. Anda mungkin dapat membuat pernyataan tentang data tersebut, seperti “akan selalu dimulai dengan '<'” atau “tidak mengandung karakter baris baru.”
+ **Teks lengkap** — Data ini biasanya berisi semua jenis karakter, termasuk karakter baris baru dan kutipan. Mungkin juga terdiri dari karakter multibyte di UTF-8.
+ **Data biner** — Data ini mungkin berisi byte atau kombinasi byte termasuk, nol dan penanda. end-of-file

Memuat campuran jenis data ini bisa menjadi tantangan.

Pola ini dapat digunakan dengan database Oracle lokal, database Oracle yang ada di instans Amazon Elastic Compute Cloud (Amazon) di Amazon Web Services (AWS EC2) Cloud, dan Amazon Relational Database Service (Amazon RDS) untuk database Oracle. Sebagai contoh, pola ini menggunakan Amazon Aurora PostgreSQL Compatible Edition.

Di Oracle Database, dengan bantuan pointer `BFILE` (file biner), `DBMS_LOB` paket, dan fungsi sistem Oracle, Anda dapat memuat dari file dan mengkonversi ke CLOB dengan pengkodean karakter. Karena PostgreSQL tidak mendukung tipe data BLOB saat bermigrasi ke database Amazon Aurora PostgreSQL Edisi yang kompatibel dengan PostgreSQL, fungsi ini harus dikonversi ke skrip yang kompatibel dengan PostgreSQL.

Pola ini menyediakan dua pendekatan untuk memuat file ke dalam kolom database tunggal dalam database yang kompatibel dengan Amazon Aurora PostgreSQL:
+ Pendekatan 1 - Anda mengimpor data dari bucket Amazon Simple Storage Service (Amazon S3) Simple Storage S3) dengan menggunakan `table_import_from_s3` fungsi ekstensi dengan `aws_s3` opsi encode.
+ Pendekatan 2 — Anda menyandikan heksadesimal di luar database, dan kemudian Anda memecahkan kode untuk melihat di dalam database. `TEXT`

Sebaiknya gunakan Pendekatan 1 karena Aurora PostgreSQL kompatibel memiliki integrasi langsung dengan ekstensi. `aws_s3`

Pola ini menggunakan contoh memuat file datar yang berisi template email, yang memiliki karakter multibyte dan format berbeda, ke dalam database Amazon Aurora PostgreSQL yang kompatibel.

## Prasyarat dan batasan
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instans Amazon RDS atau instans yang kompatibel dengan Aurora PostgreSQL
+ Pemahaman dasar SQL dan Relational Database Management System (RDBMS)
+ Bucket Amazon Simple Storage Service (Amazon S3).
+ Pengetahuan tentang fungsi sistem di Oracle dan PostgreSQL
+ RPM Package HexDump -XXD-0.1.1 (disertakan dengan Amazon Linux 2)
**catatan**  
Amazon Linux 2 mendekati akhir dukungan. Untuk informasi selengkapnya, lihat [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).

**Batasan**
+ Untuk tipe `TEXT` data, string karakter terpanjang yang dapat disimpan adalah sekitar 1 GB.

**Versi produk**
+ [Aurora mendukung versi PostgreSQL yang tercantum dalam pembaruan Amazon Aurora PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)

## Arsitektur
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-architecture"></a>

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

**Arsitektur target**

*Pendekatan 1 - Menggunakan aws\$1s3.table\$1import\$1from\$1s3*

Dari server lokal, file yang berisi templat email dengan karakter multibyte dan pemformatan kustom ditransfer ke Amazon S3. Fungsi database kustom yang disediakan oleh pola ini menggunakan `aws_s3.table_import_from_s3` fungsi dengan `file_encoding` untuk memuat file ke dalam database dan mengembalikan hasil query sebagai tipe `TEXT` data.

![\[Proses empat langkah dari server lokal ke output TEXT dari database Aurora.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/9c46b385-e8a0-4e50-b856-d522c44d79e3.png)


1. File ditransfer ke bucket S3 pementasan.

1. File diunggah ke database yang kompatibel dengan Amazon Aurora PostgreSQL.

1. Menggunakan klien pgAdmin, `load_file_into_clob` fungsi kustom diterapkan ke database Aurora.

1. Fungsi kustom digunakan secara internal `table_import_from_s3` dengan file\$1encoding. Output dari fungsi diperoleh dengan menggunakan `array_to_string` dan `array_agg` sebagai `TEXT` output.

*Pendekatan 2 - Pengkodean ke heksadesimal di luar database dan decoding untuk melihat TEXT di dalam database*

File dari server lokal atau sistem file lokal diubah menjadi hex dump. Kemudian file tersebut diimpor ke PostgreSQL sebagai bidang. `TEXT`

![\[Proses tiga langkah menggunakan Hex dump.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/563038ca-f890-4874-85df-d0f82d99800a.png)


1. Konversi file ke hex dump di baris perintah dengan menggunakan opsi. `xxd -p`

1. Unggah file hex dump ke Aurora PostgreSQL yang kompatibel dengan menggunakan `\copy` opsi, dan kemudian memecahkan kode file hex dump ke biner.

1. Mengkodekan data biner untuk kembali sebagai`TEXT`.

## Alat
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-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.
+ [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 dengan layanan AWS melalui perintah di shell baris perintah Anda.

**Alat lainnya**
+ [pGADmin4](https://www.pgadmin.org/) adalah platform administrasi dan pengembangan open source untuk PostgreSQL. pGADmin4 dapat digunakan di Linux, Unix, mac OS, dan Windows untuk mengelola PostgreSQL.  

## Epik
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-epics"></a>

### Pendekatan 1: Impor data dari Amazon S3 ke Aurora PostgreSQL yang kompatibel
<a name="approach-1-import-data-from-amazon-s3-to-aurora-postgresql-compatible"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan sebuah EC2 instance. | Untuk petunjuk tentang meluncurkan instance, lihat [Meluncurkan instance Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | DBA | 
| Instal alat pgAdmin klien PostgreSQL. | Unduh dan instal [pgAdmin.](https://www.pgadmin.org/download/) | DBA | 
| Buat kebijakan IAM. | Buat kebijakan AWS Identity and Access Management (IAM) bernama `aurora-s3-access-pol` yang memberikan akses ke bucket S3 tempat file akan disimpan. Gunakan kode berikut, ganti `<bucket-name>` dengan nama bucket S3 Anda.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:DeleteObject",<br />                "s3:ListMultipartUploadParts",<br />                "s3:PutObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<bucket-name>/*",<br />                "arn:aws:s3:::<bucket-name>"<br />            ]<br />        }<br />    ]<br />}</pre> | DBA | 
| Buat peran IAM untuk impor objek dari Amazon S3 ke Aurora PostgreSQL yang kompatibel. | Gunakan kode berikut untuk membuat peran IAM bernama `aurora-s3-import-role` dengan hubungan [AssumeRole](https://docs.amazonaws.cn/en_us/STS/latest/APIReference/API_AssumeRole.html)kepercayaan. `AssumeRole`memungkinkan Aurora mengakses layanan AWS lainnya atas nama Anda.<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow","Principal": {<br />        "Service": "rds.amazonaws.com"<br />      },"Action": "sts:AssumeRole"<br />    }<br />  ]<br />}<br /></pre> | DBA | 
| Kaitkan peran IAM ke cluster. | Untuk mengaitkan peran IAM dengan cluster database yang kompatibel dengan Aurora PostgreSQL, jalankan perintah AWS CLI berikut. Ubah `<Account-ID>` ke ID akun AWS yang menghosting database yang kompatibel dengan Aurora PostgreSQL. Ini memungkinkan database yang kompatibel dengan Aurora PostgreSQL untuk mengakses bucket S3.<pre>aws rds add-role-to-db-cluster --db-cluster-identifier aurora-postgres-cl<br />--feature-name s3Import --role-arn arn:aws:iam::<Account-ID>:role/aurora-s3-import-role</pre> | DBA | 
| Unggah contoh ke Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA, Pemilik aplikasi | 
| Menyebarkan fungsi kustom. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | Pemilik aplikasi, DBA | 
| Jalankan fungsi kustom untuk mengimpor data ke dalam database. | Jalankan perintah SQL berikut, ganti item dalam kurung sudut dengan nilai yang sesuai.<pre>select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Ganti item dalam kurung sudut dengan nilai yang sesuai, seperti yang ditunjukkan pada contoh berikut, sebelum menjalankan perintah.<pre>Select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Perintah memuat file dari Amazon S3 dan mengembalikan output sebagai file. `TEXT` | Pemilik aplikasi, DBA | 

### Pendekatan 2: Ubah file template menjadi hex dump di sistem Linux lokal
<a name="approach-2-convert-the-template-file-into-a-hex-dump-in-a-local-linux-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah file template menjadi hex dump. | Utilitas Hexdump menampilkan isi file biner dalam heksadesimal, desimal, oktal, atau ASCII. `hexdump`Perintah adalah bagian dari `util-linux` paket dan sudah diinstal sebelumnya di distribusi Linux. Paket Hexdump RPM adalah bagian dari Amazon Linux 2 juga. (: Amazon Linux 2 mendekati akhir dukungan. Untuk informasi selengkapnya, lihat [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).)Untuk mengonversi isi file menjadi hex dump, jalankan perintah shell berikut.<pre>xxd -p </path/file.vm> | tr -d '\n' > </path/file.hex></pre>Ganti path dan file dengan nilai yang sesuai, seperti yang ditunjukkan pada contoh berikut.<pre>xxd -p employee.salary.event.notification.email.vm | tr -d '\n' > employee.salary.event.notification.email.vm.hex</pre> | DBA | 
| Muat file hexdump ke dalam skema database. | Gunakan perintah berikut untuk memuat file hexdump ke dalam database Aurora PostgreSQL yang kompatibel.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA | 

## Sumber daya terkait
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-resources"></a>

**Referensi**
+ [Menggunakan database PostgreSQL sebagai target AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Oracle Database 19c ke Amazon Aurora dengan PostgreSQL Kompatibilitas (12.4) Playbook Migrasi](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)
+ [Mengaitkan peran IAM dengan kluster DB MySQL Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html)
+ [pgAdmin](https://www.pgadmin.org/)

**Tutorial**
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Bermigrasi dari Oracle ke Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

## Informasi tambahan
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-additional"></a>

**load\$1file\$1into\$1clob fungsi kustom**

```
CREATE OR REPLACE FUNCTION load_file_into_clob(
    s3_bucket_name text,
    s3_bucket_region text,
    file_name text,
    file_delimiter character DEFAULT '&'::bpchar,
    file_encoding text DEFAULT 'UTF8'::text)
    RETURNS text
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
    blob_data BYTEA;
    clob_data TEXT;
    l_table_name CHARACTER VARYING(50) := 'file_upload_hex';
    l_column_name CHARACTER VARYING(50) := 'template';
    l_return_text TEXT;
    l_option_text CHARACTER VARYING(150);
    l_sql_stmt CHARACTER VARYING(500);
        
BEGIN
    
    EXECUTE format ('CREATE TEMPORARY TABLE %I (%I text, id_serial serial)', l_table_name, l_column_name);
    
    l_sql_stmt := 'select ''(format text, delimiter ''''' || file_delimiter || ''''', encoding ''''' || file_encoding ||  ''''')'' ';
    
    EXECUTE FORMAT(l_sql_stmt)
    INTO l_option_text;
    
    EXECUTE FORMAT('SELECT aws_s3.table_import_from_s3($1,$2,$6, aws_commons.create_s3_uri($3,$4,$5))')
    INTO l_return_text
    USING l_table_name, l_column_name, s3_bucket_name, file_name,s3_bucket_region,l_option_text;
    
    EXECUTE format('select array_to_string(array_agg(%I order by id_serial),E''\n'') from %I', l_column_name, l_table_name)
    INTO clob_data;
    
    drop table file_upload_hex;
    
    RETURN clob_data;
END;
$BODY$;
```

**Template email**

```
######################################################################################
##                                                                                    ##
##    johndoe Template Type: email                                                    ##
##    File: johndoe.salary.event.notification.email.vm                                ##
##    Author: Aimée Étienne    Date 1/10/2021                                                ##
##  Purpose: Email template used by EmplmanagerEJB to inform a johndoe they         ##
##        have been given access to a salary event                                    ##
##    Template Attributes:                                                             ##
##        invitedUser - PersonDetails object for the invited user                        ##
##        salaryEvent - OfferDetails object for the event the user was given access    ##
##        buyercollege - CompDetails object for the college owning the salary event    ##
##        salaryCoordinator - PersonDetails of the salary coordinator for the event    ##
##        idp - Identity Provider of the email recipient                                ##
##        httpWebRoot - HTTP address of the server                                    ##
##                                                                                    ##
######################################################################################

$!invitedUser.firstname $!invitedUser.lastname,

Ce courriel confirme que vous avez ete invite par $!salaryCoordinator.firstname $!salaryCoordinator.lastname de $buyercollege.collegeName a participer a l'evenement "$salaryEvent.offeringtitle" sur johndoeMaster Sourcing Intelligence.

Votre nom d'utilisateur est $!invitedUser.username

Veuillez suivre le lien ci-dessous pour acceder a l'evenement.

${httpWebRoot}/myDashboard.do?idp=$!{idp}

Si vous avez oublie votre mot de passe, utilisez le lien "Mot de passe oublie" situe sur l'ecran de connexion et entrez votre nom d'utilisateur ci-dessus.

Si vous avez des questions ou des preoccupations, nous vous invitons a communiquer avec le coordonnateur de l'evenement $!salaryCoordinator.firstname $!salaryCoordinator.lastname au ${salaryCoordinator.workphone}.

*******

johndoeMaster Sourcing Intelligence est une plateforme de soumission en ligne pour les equipements, les materiaux et les services.

Si vous avez des difficultes ou des questions, envoyez un courriel a support@johndoeMaster.com pour obtenir de l'aide.
```

# Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dengan dan menggunakan dan AWS SCT AWS DMS AWS CLI CloudFormation
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-summary"></a>

Pola ini menunjukkan cara memigrasikan Amazon [Relational Database Service (Amazon RDS) multi-terabyte untuk instans Oracle DB ke instans Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) [for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) DB dengan menggunakan (). AWS Command Line Interface AWS CLI Pendekatan ini memberikan waktu henti minimal dan tidak perlu masuk ke. Konsol Manajemen AWS

Pola ini membantu menghindari konfigurasi manual dan migrasi individual dengan menggunakan konsol AWS Schema Conversion Tool (AWS SCT) dan AWS Database Migration Service (AWS DMS). Solusinya menyiapkan konfigurasi satu kali untuk beberapa database dan melakukan migrasi dengan menggunakan AWS SCT dan AWS DMS di file. AWS CLI

Pola ini digunakan AWS SCT untuk mengonversi objek skema database dari Amazon RDS for Oracle ke Amazon RDS for PostgreSQL, dan kemudian digunakan untuk memigrasikan data. AWS DMS Menggunakan skrip Python di AWS CLI, Anda membuat AWS SCT objek dan AWS DMS tugas dengan template. CloudFormation 

## Prasyarat dan batasan
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Instans Amazon RDS for Oracle DB yang ada.
+ Amazon RDS yang ada untuk instans DB Amazon RDS for PostgreSQL. 
+ Instans Amazon Elastic Compute Cloud (Amazon EC2) atau mesin lokal dengan OS Windows atau Linux untuk menjalankan skrip.
+ Pemahaman tentang jenis tugas AWS DMS migrasi berikut:`full-load`,`cdc`,`full-load-and-cdc`.  Untuk informasi selengkapnya, lihat [Membuat tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) dalam AWS DMS dokumentasi. 
+ AWS SCT, diinstal dan dikonfigurasi dengan driver Java Database Connectivity (JDBC) untuk mesin database Oracle dan PostgreSQL. Untuk informasi selengkapnya, lihat [Menginstal dan mengonfigurasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) dalam AWS SCT dokumentasi. 
+ `AWSSchemaConversionToolBatch.jar`File dari AWS SCT folder yang diinstal, disalin ke direktori kerja Anda.
+ `cli-sct-dms-cft.zip`File (terlampir), diunduh dan diekstraksi di direktori kerja Anda.
+ Versi mesin contoh AWS DMS replikasi terbaru. Untuk informasi selengkapnya, lihat [Bagaimana cara membuat instance AWS DMS replikasi](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) dalam AWS Dukungan dokumentasi dan [catatan AWS DMS rilis](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html). 
+ AWS CLI versi 2, diinstal dan dikonfigurasi dengan ID kunci akses Anda, kunci akses rahasia, dan Wilayah AWS nama default untuk EC2 instance atau OS tempat skrip dijalankan. Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui ke versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Mengkonfigurasi pengaturan untuk](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) AWS CLI dokumentasi. AWS CLI 
+ Keakraban dengan CloudFormation template. Untuk informasi selengkapnya, lihat [Cara CloudFormation kerja](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html) dalam CloudFormation dokumentasi. 
+ Python versi 3, diinstal dan dikonfigurasi pada EC2 instance atau OS tempat skrip dijalankan. Untuk informasi selengkapnya, lihat [dokumentasi Python](https://docs.python.org/3/). 

**Batasan**
+ Persyaratan minimum untuk instans Amazon RDS for Oracle DB sumber Anda adalah: 
  + Oracle versi 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0), dan 19c (19.0.0.0) untuk edisi Enterprise, Standard, Standard One, dan Standard Two.
  + Meskipun Amazon RDS mendukung Oracle 18c (18.0.0.0), versi ini berada di jalur penghentian karena Oracle tidak lagi menyediakan tambalan untuk 18c setelah tanggal. end-of-support Untuk informasi selengkapnya, lihat [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.Deprecate.11204) Oracle di dokumentasi Amazon RDS.
  + Amazon RDS for Oracle 11g tidak lagi didukung.
+ Persyaratan minimum untuk instans Amazon RDS for PostgreSQL DB target Anda adalah: 
  + PostgreSQL versi 9 (9.5 dan 9.6), 10.x, 11.x, 12.x, dan 13.x

**Versi produk**
+ Amazon RDS for Oracle DB instans versi 12.1.0.2 dan yang lebih baru
+ Amazon RDS untuk instans PostgreSQL DB versi 11.5 dan yang lebih baru
+ AWS CLI versi 2 
+ Versi terbaru dari AWS SCT
+ Versi terbaru Python 3

## Arsitektur
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon RDS for Oracle

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

**Arsitektur sumber dan target**

Diagram berikut menunjukkan migrasi instans Amazon RDS for Oracle DB ke instans Amazon RDS for PostgreSQL DB menggunakan skrip Python. AWS DMS 

![\[Migrasi RDS untuk instans Oracle DB ke RDS untuk instans PostgreSQL DB menggunakan AWS DMS dan Python.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5e041494-2e64-4f09-b6ec-0e0cba3a4972/images/77022e13-46fb-4aa8-ab49-85b0ca4c317a.png)


 

Diagram menunjukkan alur kerja migrasi berikut:

1. Skrip Python digunakan AWS SCT untuk terhubung ke sumber dan menargetkan instance DB.

1. Pengguna mulai AWS SCT dengan skrip Python, mengonversi kode Oracle ke kode PostgreSQL, dan menjalankannya pada instance DB target.

1. Skrip Python membuat tugas AWS DMS replikasi untuk instance DB sumber dan target.

1. Pengguna menyebarkan skrip Python untuk memulai AWS DMS tugas dan kemudian menghentikan tugas setelah migrasi data selesai.

**Otomatisasi dan skala**

Anda dapat mengotomatiskan migrasi ini dengan menambahkan parameter dan perubahan terkait keamanan ke skrip Python Anda, untuk menyediakan fungsionalitas tambahan. 

## Alat
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-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 dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah. Pola ini mengkonversi file `.csv` input ke file `.json` input dengan menggunakan script Python. `.json`File ini digunakan dalam AWS CLI perintah untuk membuat CloudFormation tumpukan yang membuat beberapa tugas AWS DMS replikasi dengan Amazon Resource Names (ARNs), tipe migrasi, pengaturan tugas, dan pemetaan tabel.
+ [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 di antara kombinasi pengaturan cloud dan lokal. Pola ini digunakan AWS DMS untuk membuat, memulai, dan menghentikan tugas dengan skrip Python yang berjalan pada baris perintah, dan untuk membuat template. CloudFormation 
+ [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. Pola ini membutuhkan `AWSSchemaConversionToolBatch.jar` file dari AWS SCT direktori yang diinstal.

**Kode**

`cli-sct-dms-cft.zip`File (terlampir) berisi kode sumber lengkap untuk pola ini.

## Epik
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-epics"></a>

### Konfigurasikan AWS SCT dan buat objek database di AWS CLI
<a name="configure-awssct-and-create-database-objects-in-the-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  AWS SCT Konfigurasikan untuk menjalankan dari file AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Jalankan `run_aws_sct.py` skrip Python. | Jalankan skrip `run_aws_sct.py` Python dengan menggunakan perintah berikut:`$ python run_aws_sct.py database_migration.txt`Script Python mengkonversi objek database dari Oracle ke PostgreSQL dan membuat file SQL dalam format PostgreSQL. Skrip ini juga membuat file PDF`Database migration assessment report`, yang memberi Anda rekomendasi terperinci dan statistik konversi untuk objek database. | DBA | 
| Buat objek di Amazon RDS untuk PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 

### Konfigurasikan dan buat AWS DMS tugas dengan menggunakan AWS CLI dan CloudFormation
<a name="configure-and-create-dms-tasks-by-using-the-cli-and-cfn"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh AWS DMS replikasi. | Masuk ke Konsol Manajemen AWS, buka [AWS DMS konsol](https://console.aws.amazon.com/dms/v2/), dan buat instance replikasi yang dikonfigurasi sesuai dengan kebutuhan Anda.Untuk informasi selengkapnya, lihat [Membuat instance replikasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) dalam AWS DMS dokumentasi dan [Bagaimana cara membuat instance AWS DMS replikasi](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) dalam dokumentasi. AWS Dukungan  | DBA | 
| Buat titik akhir sumber. | Di AWS DMS konsol, pilih **Endpoint** dan kemudian buat titik akhir sumber untuk database Oracle sesuai dengan kebutuhan Anda. Atribut koneksi tambahan harus `numberDataTypeScale` dengan `-2` nilai.Untuk informasi selengkapnya, lihat [Membuat titik akhir sumber dan target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) dalam AWS DMS dokumentasi. | DBA | 
| Buat titik akhir target. | Di AWS DMS konsol, pilih **Endpoint** dan kemudian buat titik akhir target untuk database PostgreSQL sesuai dengan kebutuhan Anda.  Untuk informasi selengkapnya, lihat [Membuat titik akhir sumber dan target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) dalam AWS DMS dokumentasi. | DevOps insinyur | 
| Konfigurasikan detail AWS DMS replikasi untuk dijalankan dari file. AWS CLI | Konfigurasikan titik akhir AWS DMS sumber dan target serta detail replikasi dalam `dms-arn-list.txt` file dengan ARN titik akhir sumber, ARN titik akhir target, dan ARN instance replikasi dengan menggunakan format berikut:<pre>#sourceARN,targetARN,repARN<br />arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ<br />arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5<br />arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G</pre> | DBA | 
| Jalankan skrip `dms-create-task.py` Python untuk membuat tugas. AWS DMS  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Verifikasi bahwa AWS DMS tugas sudah siap. | Di AWS DMS konsol, periksa apakah AWS DMS tugas Anda dalam `Ready` status di bagian **Status**. | DBA | 

### Memulai dan menghentikan AWS DMS tugas dengan menggunakan AWS CLI
<a name="start-and-stop-the-dms-tasks-by-using-the-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai AWS DMS tugas. | Jalankan skrip `dms-start-task.py` Python dengan menggunakan perintah berikut:<pre>$ python dms-start-task.py start '<cdc-start-datetime>'</pre>Tanggal dan waktu mulai harus dalam `'YYYY-MM-DDTHH:MI:SS'` format `'DD-MON-YYYY'` atau (misalnya, `'01-Dec-2019'` atau`'2018-03-08T12:12:12'`).Anda dapat meninjau status AWS DMS tugas di tab **Statistik tabel** di halaman **Tugas** AWS DMS konsol. | DBA | 
| Validasi data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html)Untuk informasi selengkapnya, lihat [validasi AWS DMS data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) dalam AWS DMS dokumentasi. | DBA | 
| Hentikan AWS DMS tugas. | Jalankan skrip Python dengan menggunakan perintah berikut:<pre>$ python dms-start-task.py stop</pre>AWS DMS tugas mungkin berhenti dengan `failed` status, tergantung pada status validasi. Untuk informasi lebih lanjut, lihat bagian selanjutnya. | DBA | 

## Pemecahan masalah
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| AWS SCT koneksi uji sumber dan target gagal. | Konfigurasikan versi driver JDBC dan aturan masuk grup keamanan VPC untuk menerima lalu lintas masuk. | 
| Uji coba sumber atau target titik akhir gagal. | Periksa apakah pengaturan titik akhir dan contoh replikasi berada dalam `Available` status. Periksa apakah status koneksi titik akhir adalah`Successful`. Untuk informasi selengkapnya, lihat [Bagaimana cara memecahkan masalah kegagalan konektivitas titik akhir AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/) dalam dokumentasi. AWS Dukungan  | 
| Proses beban penuh gagal. | Periksa apakah basis data sumber dan target memiliki tipe dan ukuran data yang cocok. Untuk informasi selengkapnya, lihat [Memecahkan masalah tugas migrasi AWS DMS dalam](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html) dokumentasi. AWS DMS  | 
| Anda menemukan kesalahan menjalankan validasi. | Periksa apakah tabel memiliki kunci primer karena tabel kunci non-primer tidak divalidasi.Jika tabel memiliki kunci utama dan kesalahan, periksa apakah atribut koneksi tambahan di titik akhir sumber memiliki`numberDataTypeScale=-2`.Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber untuk AWS DMS[OracleSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_OracleSettings.html)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib), dan [Pemecahan Masalah](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting) dalam dokumentasi. AWS DMS  | 

## Sumber daya terkait
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-resources"></a>
+ [Menginstal dan mengkonfigurasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)
+ [Pengantar AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (video)
+ [Contoh perintah operasi CloudFormation tumpukan untuk AWS CLI dan PowerShell](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html)
+ [Menavigasi antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Menghubungkan ke database Oracle dengan AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ [Menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Sumber untuk migrasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Target untuk migrasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [cloudformation (dokumentasi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html))AWS CLI 
+ [buat-tumpukan (dokumentasi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html))AWS CLI  
+ [dms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/index.html) (AWS CLI dokumentasi) 

## Lampiran
<a name="attachments-5e041494-2e64-4f09-b6ec-0e0cba3a4972"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/5e041494-2e64-4f09-b6ec-0e0cba3a4972/attachments/attachment.zip)

# Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dalam mode SSL dengan menggunakan AWS DMS
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-summary"></a>

Pola ini memberikan panduan untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instans database Oracle ke database Amazon RDS for PostgreSQL di Amazon Web Services (AWS) Cloud. Untuk mengenkripsi koneksi antar database, pola menggunakan otoritas sertifikat (CA) dan mode SSL di Amazon RDS dan AWS Database Migration Service (AWS DMS).

Pola ini menggambarkan strategi migrasi online dengan sedikit atau tanpa downtime untuk database sumber Oracle multi-terabyte dengan jumlah transaksi yang tinggi. Untuk keamanan data, pola menggunakan SSL saat mentransfer data.

Pola ini menggunakan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi skema database Amazon RDS for Oracle ke skema Amazon RDS for PostgreSQL. Kemudian pola menggunakan AWS DMS untuk memigrasikan data dari database Amazon RDS for Oracle ke database Amazon RDS for PostgreSQL.

## Prasyarat dan batasan
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Otoritas sertifikat database Amazon RDS (CA) dikonfigurasi hanya dengan ***rds-ca-rsa2048-g1*** 
  + Sertifikat ***rds-ca-2019*** berakhir pada Agustus 2024.
  + Sertifikat ***rds-ca-2015*** berakhir pada 5 Maret 2020.
+ AWS SCT
+ AWS DMS
+ pgAdmin
+ Alat SQL (misalnya, Pengembang SQL atau SQL\$1 Plus)

**Batasan**
+ Amazon RDS for Oracle database — Persyaratan minimum adalah untuk Oracle versi 19c untuk edisi Enterprise dan Standard Two.
+ Amazon RDS for PostgreSQL database - Persyaratan minimum adalah untuk PostgreSQL versi 12 dan yang lebih baru (untuk versi 9.x dan yang lebih baru).

**Versi produk**
+ Amazon RDS for Oracle database versi 12.1.0.2 misalnya
+ Amazon RDS untuk database PostgreSQL versi 11.5 contoh

## Arsitektur
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Instans database Amazon RDS for Oracle dengan versi 12.1.0.2.v18.

**Tumpukan teknologi target**
+ AWS DMS
+ Instans database Amazon RDS for PostgreSQL dengan versi 11.5.

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk arsitektur migrasi data antara Oracle (sumber) dan PostgreSQL (target) database. Arsitekturnya meliputi:
+ Awan pribadi virtual (VPC)
+ Zona Ketersediaan
+ Subnet pribadi
+ Database Amazon RDS for Oracle
+ Instans replikasi AWS DMS
+ Sebuah RDS untuk database PostgreSQL

Untuk mengenkripsi koneksi untuk basis data sumber dan target, mode CA dan SSL harus diaktifkan di Amazon RDS dan AWS DMS.

![\[Data bergerak antara RDS untuk Oracle dan AWS DMS, dan antara AWS DMS dan RDS untuk PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7098e2a3-b456-4e14-8881-c97145aef483/images/55b50ff7-1e6a-4ff0-9bcd-2fd419d5316a.png)


## Alat
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-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.
+ [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 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 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**
+ [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.

## Praktik terbaik
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-best-practices"></a>

Amazon RDS menyediakan sertifikat CA baru sebagai praktik terbaik keamanan AWS. Untuk informasi tentang sertifikat baru dan Wilayah AWS yang didukung, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke instans atau cluster DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html).

Jika instans RDS Anda saat ini menggunakan sertifikat CA`rds-ca-2019`, dan Anda ingin meningkatkan ke`rds-ca-rsa2048-g1`, ikuti petunjuk dalam [Memperbarui sertifikat CA Anda dengan memodifikasi instans atau cluster DB Anda atau](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating) [Memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update).

## Epik
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-epics"></a>

### Konfigurasikan Amazon RDS for Oracle
<a name="configure-the-amazon-rds-for-oracle-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance database Oracle. | Masuk ke akun AWS Anda, buka AWS Management Console, dan navigasikan ke konsol Amazon RDS. Di konsol, pilih **Buat database**, lalu pilih **Oracle**. | AWS Umum, DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat grup opsi. | Buat grup opsi di VPC dan grup keamanan yang sama dengan database Amazon RDS for Oracle. Untuk **Opsi**, pilih **SSL**. Untuk **Port**, pilih **2484** (untuk koneksi SSL). | AWS Umum | 
| Konfigurasikan pengaturan opsi. | Gunakan pengaturan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Ubah RDS untuk instans Oracle DB. | Tetapkan sertifikat CA sebagai **rds-ca-rsa2048-g1**. Di bawah **grup Opsi**, lampirkan grup opsi yang dibuat sebelumnya. | DBA, AWS Umum | 
| Konfirmasikan bahwa instans RDS untuk Oracle DB tersedia. | Pastikan bahwa instans database Amazon RDS for Oracle aktif dan berjalan dan skema database dapat diakses.Untuk terhubung ke RDS untuk Oracle DB, gunakan `sqlplus` perintah dari baris perintah.<pre>$ sqlplus orcl/****@myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com:1521/ORCL<br />SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 18:11:07 2019<br />Copyright (c) 1982, 2016, Oracle.  All rights reserved.<br />Last Successful login time: Mon Dec 16 2019 23:17:31 +05:30<br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production<br />With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options<br />SQL></pre> | DBA | 
| Buat objek dan data dalam database RDS untuk Oracle. | Buat objek dan masukkan data dalam skema. | DBA | 

### Konfigurasikan Amazon RDS untuk instance PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat RDS untuk database PostgreSQL. | Pada halaman **database Buat konsol Amazon RDS, pilih **PostgreSQL** untuk membuat instance database** Amazon RDS for PostgreSQL. | DBA, AWS Umum | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat grup parameter. | Jika Anda menggunakan PostgreSQL versi 11.x, buat grup parameter untuk mengatur parameter SSL. Di PostgreSQL versi 12, grup parameter SSL diaktifkan secara default. | AWS Umum | 
| Edit parameter. | Ubah `rds.force_ssl` parameter menjadi `1` (on).Secara default, `ssl` parameternya adalah `1` (on). Dengan mengatur `rds.force_ssl` parameter ke`1`, Anda memaksa semua koneksi untuk terhubung melalui mode SSL saja. | AWS Umum | 
| Memodifikasi RDS untuk PostgreSQL DB instance. | Tetapkan sertifikat CA sebagai **rds-ca-rsa2048-g1**. Lampirkan grup parameter default atau grup parameter yang dibuat sebelumnya, tergantung pada versi PostgreSQL Anda. | DBA, AWS Umum | 
| Konfirmasikan bahwa RDS untuk instance PostgreSQL DB tersedia. | Pastikan database Amazon RDS for PostgreSQL aktif dan berjalan.`psql`Perintah membuat koneksi SSL dengan `sslmode` set dari baris perintah.Salah satu opsi adalah mengatur `sslmode=1` dalam grup parameter dan menggunakan `psql` koneksi tanpa menyertakan `sslmode` parameter dalam perintah.Output berikut menunjukkan bahwa koneksi SSL dibuat.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser"<br />Password for user pguser:<br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre>Opsi kedua adalah mengatur `sslmode=1` dalam grup parameter dan memasukkan `sslmode` parameter dalam `psql` perintah.Output berikut menunjukkan bahwa koneksi SSL dibuat.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser sslmode=require"<br />Password for user pguser: <br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre> | DBA | 

### Konfigurasikan dan jalankan AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS SCT. | Instal versi terbaru aplikasi AWS SCT. | AWS Umum | 
| Konfigurasikan AWS SCT dengan driver JDBC. | [Unduh driver Java Database Connectivity (JDBC) untuk Oracle ([ojdbc8.jar](https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc8.jar)) dan PostgreSQL (postgresql-42.2.5.jar).](https://jdbc.postgresql.org/download/postgresql-42.2.19.jar)Untuk mengonfigurasi driver di AWS SCT, pilih **Pengaturan, Pengaturan** **global**, **Driver**. | AWS Umum | 
| Buat proyek AWS SCT. | Buat proyek AWS SCT dan laporkan, menggunakan Oracle sebagai mesin DB sumber dan Amazon RDS for PostgreSQL sebagai mesin DB target:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Validasi objek database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA, AWS Umum | 

### Konfigurasikan dan jalankan AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh replikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Impor sertifikat. | Unduh [paket sertifikat (PEM)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions) untuk Wilayah AWS Anda.Bundel berisi sertifikat `rds-ca-2019` perantara dan root. Bundel ini juga berisi sertifikat `rds-ca-rsa2048-g1``rds-ca-rsa4096-g1`,, dan `rds-ca-ecc384-g1` root CA. Toko kepercayaan aplikasi Anda hanya perlu mendaftarkan sertifikat root CA. | AWS Umum | 
| Buat titik akhir sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Untuk informasi selengkapnya, lihat [Menggunakan database Oracle sebagai sumber AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | AWS Umum | 
| Buat titik akhir target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Untuk informasi selengkapnya, lihat [Menggunakan database PostgreSQL sebagai target AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html). | AWS Umum | 
| Uji titik akhir. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Buat tugas migrasi. | Untuk membuat tugas migrasi untuk memuat penuh dan mengubah pengambilan data (CDC) atau untuk validasi data, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Rencanakan proses produksi. | Konfirmasikan waktu henti dengan pemangku kepentingan seperti pemilik aplikasi untuk menjalankan AWS DMS dalam sistem produksi. | Pimpin migrasi | 
| Jalankan tugas migrasi . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Validasi data. | Tinjau hasil tugas migrasi dan data di sumber Oracle dan target database PostgreSQL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA | 
| Hentikan tugas migrasi. | Setelah Anda berhasil menyelesaikan validasi data, hentikan tugas migrasi. | AWS Umum | 

### Bersihkan sumber daya
<a name="clean-up-the-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus tugas AWS DMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Hapus titik akhir AWS DMS. | Pilih titik akhir sumber dan target yang Anda buat, pilih **Tindakan**, dan pilih **Hapus**. | AWS Umum | 
| Hapus instans replikasi AWS DMS. | Pilih contoh replikasi, pilih **Tindakan**, lalu pilih **Hapus**. | AWS Umum | 
| Hapus database PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS Umum | 
| Hapus database Oracle. | **Di konsol Amazon RDS, pilih instance database Oracle, pilih **Actions**, lalu pilih Delete.** | AWS Umum | 

## Pemecahan masalah
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Sumber AWS SCT dan koneksi pengujian target gagal. | Konfigurasikan versi driver JDBC dan aturan masuk grup keamanan VPC untuk menerima lalu lintas masuk. | 
| Uji titik akhir sumber Oracle gagal. | Periksa pengaturan titik akhir dan apakah instance replikasi tersedia. | 
| Proses beban penuh tugas AWS DMS gagal. | Periksa apakah basis data sumber dan target memiliki tipe dan ukuran data yang cocok. | 
| Tugas migrasi validasi AWS DMS mengembalikan kesalahan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | 

## Sumber daya terkait
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-resources"></a>

**Basis Data**
+ [Amazon RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS untuk PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)

**Koneksi SSL DB**
+ [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
  + [Menggunakan SSL dengan RDS untuk instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.SSL.html)
  + [Mengamankan koneksi ke RDS untuk PostgreSQL dengan SSL/TLS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.Security.html)
  + [Unduh bundel sertifikat untuk Wilayah AWS tertentu](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions)
    + [Unduh sertifikat root CA-2019](https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem) (kedaluwarsa pada Agustus 2024)
+ [Bekerja dengan grup opsi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html)
  + [Menambahkan opsi ke instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html)
  + [Lapisan Soket Aman Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.SSL.html)
+ [Bekerja dengan kelompok parameter](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)
+ [Parameter koneksi sslmode PostgreSQL](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)
+ [Menggunakan SSL dari JDBC](https://jdbc.postgresql.org/documentation/ssl/)
+ [Memutar sertifikat Anda SSL/TLS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html)
  + [Memperbarui sertifikat CA Anda dengan memodifikasi instans atau cluster DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating)
  + [Memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update)

**AWS SCT**
+ [Alat Konversi Skema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Panduan Pengguna Alat Konversi Skema AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Menggunakan antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Menggunakan Oracle Database sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Panduan Pengguna AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
  + [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
  + [Menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Menggunakan SSL dengan AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.SSL.html)
+ [Migrasi Aplikasi Menjalankan Database Relasional ke AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

## Informasi tambahan
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-additional"></a>

Sertifikat Otoritas Sertifikat Amazon RDS `rds-ca-2019` kedaluwarsa pada Agustus 2024. Jika Anda menggunakan atau berencana menggunakan SSL atau TLS dengan verifikasi sertifikat untuk terhubung ke instans RDS DB atau klaster DB multi-AZ, pertimbangkan untuk menggunakan salah satu sertifikat CA baru:,, atau. `rds-ca-rsa2048-g1` `rds-ca-rsa4096-g1` `rds-ca-ecc384-g1`

# Migrasikan paket pragma Oracle SERIALLY\$1REUSABLE ke PostgreSQL
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql"></a>

*Vinay Paladi, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-summary"></a>

Pola ini menyediakan step-by-step pendekatan untuk memigrasikan paket Oracle yang didefinisikan sebagai SERIALLY\$1REUSABLE pragma ke PostgreSQL di Amazon Web Services (AWS). Pendekatan ini mempertahankan fungsionalitas pragma SERIALLY\$1REUSABLE.

PostgreSQL tidak mendukung konsep paket dan pragma SERIALLY\$1REUSABLE. Untuk mendapatkan fungsionalitas serupa di PostgreSQL, Anda dapat membuat skema untuk paket dan menyebarkan semua objek terkait (seperti fungsi, prosedur, dan tipe) di dalam skema. Untuk mencapai fungsionalitas pragma SERIALLY\$1REUSABLE, contoh skrip fungsi pembungkus yang disediakan dalam pola ini menggunakan paket ekstensi AWS [Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) (AWS SCT).

Untuk informasi selengkapnya, lihat [SERIALLY\$1REUSABLE Pragma](https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems046.htm) dalam dokumentasi Oracle.

## Prasyarat dan batasan
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Versi terbaru AWS SCT dan driver yang diperlukan
+ Database Edisi yang kompatibel dengan Amazon Aurora PostgreSQL atau Amazon Relational Database Service (Amazon RDS) untuk database PostgreSQL 

**Versi produk**
+ Oracle Database versi 10g dan yang lebih baru

## Arsitektur
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle di tempat

**Tumpukan teknologi target**
+ [Aurora PostgreSQL kompatibel atau Amazon RDS untuk PostgreSQL](https://aws.amazon.com/rds/aurora/details/postgresql-details/)
+ AWS SCT

**Arsitektur migrasi**

![\[Data Oracle DB lokal menuju AWS menggunakan AWS SCT, file.sql, konversi manual, ke PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/fe3c45d2-6ea4-43b5-adb1-18f068f126b9/images/2dc90708-e300-4251-9d12-de97b6588b72.png)


## Alat
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-tools"></a>

**Layanan AWS**
+ [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.
+ [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 PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional PostgreSQL di AWS Cloud.

**Alat-alat 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="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-epics"></a>

### Migrasikan paket Oracle dengan menggunakan AWS SCT
<a name="migrate-the-oracle-package-by-using-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS SCT. | Konfigurasikan konektivitas AWS SCT ke database sumber. Untuk informasi selengkapnya, lihat [Menggunakan Oracle Database sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html). | DBA, Pengembang | 
| Konversi skrip. | Gunakan AWS SCT untuk mengonversi paket Oracle dengan memilih database target sebagai Aurora PostgreSQL kompatibel. | DBA, Pengembang | 
| Simpan file.sql. | Sebelum Anda menyimpan file.sql, ubah opsi **Pengaturan Proyek** di AWS SCT ke **File tunggal per tahap**. AWS SCT akan memisahkan file.sql menjadi beberapa file.sql berdasarkan jenis objek. | DBA, Pengembang | 
| Ubah kodenya. | Buka `init` fungsi yang dihasilkan oleh AWS SCT, dan ubah seperti yang ditunjukkan pada contoh di bagian *Informasi tambahan*. Ini akan menambahkan variabel untuk mencapai fungsionalitas`pg_serialize = 0`. | DBA, Pengembang | 
| Uji konversi. | Menyebarkan `init` fungsi ke database yang kompatibel dengan Aurora PostgreSQL, dan uji hasilnya. | DBA, Pengembang | 

## Sumber daya terkait
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-resources"></a>
+ [Alat Konversi Skema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Fitur Amazon Aurora](https://aws.amazon.com/rds/aurora/postgresql-features/)
+ [SERIALLY\$1REUSABLE Pragma](https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/seriallyreusable_pragma.htm#LNPLS01346)

## Informasi tambahan
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-additional"></a>

```
Source Oracle Code:

CREATE OR REPLACE PACKAGE test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
PROCEDURE function_1
 (test_id number);
PROCEDURE function_2
 (test_id number
 );
END;

CREATE OR REPLACE PACKAGE BODY test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
v_char VARCHAR2(20) := 'shared.airline';
v_num number := 123;

PROCEDURE function_1(test_id number)
IS
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
v_char:='test1';
function_2(0);
END;

PROCEDURE function_2(test_id number)
is
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
END;
END test_pkg_var;

Calling the above functions

set serveroutput on


EXEC test_pkg_var.function_1(1);


EXEC test_pkg_var.function_2(1);


Target Postgresql Code:


CREATE SCHEMA test_pkg_var;

CREATE OR REPLACE FUNCTION test_pkg_var.init(pg_serialize IN INTEGER DEFAULT 0)

RETURNS void
AS
$BODY$

DECLARE

BEGIN

if aws_oracle_ext.is_package_initialized( 'test_pkg_var' ) AND pg_serialize = 0

then

return;

end if;

PERFORM aws_oracle_ext.set_package_initialized( 'test_pkg_var' );

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'shared.airline.basecurrency'::CHARACTER

VARYING(100));

PERFORM aws_oracle_ext.set_package_variable('test_pkg_var', 'v_num', 123::integer);

END;

$BODY$

LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_1(pg_serialize int default 1)

RETURNS void
AS

$BODY$
DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'test1'::varchar);

PERFORM test_pkg_var.function_2(0);
END;

$BODY$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_2(IN pg_serialize integer default 1)

RETURNS void

AS

$BODY$

DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

END;
$BODY$
LANGUAGE plpgsql;


Calling the above functions

select test_pkg_var.function_1()

 select test_pkg_var.function_2()
```

# Migrasikan tabel eksternal Oracle ke Amazon Aurora PostgreSQL yang kompatibel
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible"></a>

*anuradha chintha dan Rakesh Raghav, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-summary"></a>

Tabel eksternal memberikan Oracle kemampuan untuk query data yang disimpan di luar database dalam file datar. Anda dapat menggunakan driver ORACLE\$1LOADER untuk mengakses data apa pun yang disimpan dalam format apa pun yang dapat dimuat oleh utilitas SQL\$1 Loader. Anda tidak dapat menggunakan Data Manipulation Language (DHTML) pada tabel eksternal, tetapi Anda dapat menggunakan tabel eksternal untuk operasi kueri, bergabung, dan mengurutkan.

Amazon Aurora PostgreSQL Compatible Edition tidak menyediakan fungsionalitas yang mirip dengan tabel eksternal di Oracle. Sebaliknya, Anda harus menggunakan modernisasi untuk mengembangkan solusi terukur yang memenuhi persyaratan fungsional dan hemat.

Pola ini menyediakan langkah-langkah untuk memigrasikan berbagai jenis tabel eksternal Oracle ke Aurora PostgreSQL Compatible Edition di Amazon Web Services (AWS) Cloud dengan menggunakan ekstensi. `aws_s3`

Kami merekomendasikan pengujian solusi ini secara menyeluruh sebelum menerapkannya di lingkungan produksi.

## Prasyarat dan batasan
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Antarmuka Baris Perintah AWS (AWS CLI)
+ Sebuah instance database Aurora PostgreSQL yang kompatibel dengan Aurora.
+ Database Oracle lokal dengan tabel eksternal
+ PG.Client API
+ File data 

**Batasan**
+ Pola ini tidak menyediakan fungsionalitas untuk bertindak sebagai pengganti tabel eksternal Oracle. Namun, langkah-langkah dan kode sampel dapat ditingkatkan lebih lanjut untuk mencapai tujuan modernisasi database Anda.
+ File tidak boleh berisi karakter yang diteruskan sebagai pembatas dalam fungsi `aws_s3` ekspor dan impor.

**Versi produk**
+ Untuk mengimpor dari Amazon S3 ke RDS untuk PostgreSQL database harus menjalankan PostgreSQL versi 10.7 atau yang lebih baru.

## Arsitektur
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-architecture"></a>

**Tumpukan teknologi sumber**
+ Oracle

**Arsitektur sumber**

![\[Diagram file data yang masuk ke direktori dan tabel di database Oracle lokal.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/3fbc507d-b0fa-4e05-b999-043dc7327ed7.png)


**Tumpukan teknologi target**
+ Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon CloudWatch
+ AWS Lambda
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)

**Arsitektur target**

Diagram berikut menunjukkan representasi tingkat tinggi dari solusi.

![\[Deskripsi adalah setelah diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/5421540e-d2e3-4361-89cc-d8415fcb21fd.png)


1. File diunggah ke bucket S3.

1. Fungsi Lambda dimulai.

1. Fungsi Lambda memulai panggilan fungsi DB.

1. Secrets Manager menyediakan kredensyal untuk akses database.

1. Tergantung pada fungsi DB, alarm SNS dibuat.

**Otomatisasi dan skala**

Setiap penambahan atau perubahan pada tabel eksternal dapat ditangani dengan pemeliharaan metadata.

## Alat
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-tools"></a>
+ [Kompatibel dengan Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) — Amazon Aurora PostgreSQL Compatible Edition adalah mesin basis data relasional relasional yang dikelola sepenuhnya, kompatibel dengan PostgreSQL, dan sesuai dengan Asam yang menggabungkan kecepatan dan keandalan database komersial kelas atas dengan efektivitas biaya database sumber terbuka.
+ [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) adalah alat terpadu untuk mengelola layanan AWS Anda. Dengan hanya satu alat untuk mengunduh dan mengonfigurasi, Anda dapat mengontrol beberapa layanan AWS dari baris perintah dan mengotomatiskannya melalui skrip.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) — Amazon CloudWatch memantau sumber daya dan pemanfaatan Amazon S3.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi tanpa server yang mendukung menjalankan kode tanpa menyediakan atau mengelola server, membuat logika penskalaan klaster yang sadar beban kerja, mempertahankan integrasi peristiwa, atau mengelola runtime. Dalam pola ini, Lambda menjalankan fungsi database setiap kali file diunggah ke Amazon S3.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) — AWS Secrets Manager adalah layanan untuk penyimpanan dan pengambilan kredensyal. Dengan menggunakan Secrets Manager, Anda dapat mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service menyediakan lapisan penyimpanan untuk menerima dan menyimpan file untuk konsumsi dan transmisi ke dan dari cluster yang kompatibel dengan Aurora PostgreSQL.
+ [aws\$1s3 - Ekstensi `aws_s3` mengintegrasikan Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) dan Aurora PostgreSQL kompatibel.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) - Amazon Simple Notification Service (Amazon SNS) mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien. Dalam pola ini, Amazon SNS digunakan untuk mengirim notifikasi.

**Kode**

Setiap kali file ditempatkan di bucket S3, fungsi DB harus dibuat dan dipanggil dari aplikasi pemrosesan atau fungsi Lambda. Untuk detailnya, lihat kode (terlampir).

## Epik
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-epics"></a>

### Buat file eksternal
<a name="create-an-external-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan file eksternal ke database sumber. | Buat file eksternal, dan pindahkan ke `oracle` direktori. | DBA | 

### Konfigurasikan target (kompatibel dengan Aurora PostgreSQL)
<a name="configure-the-target-aurora-postgresql-compatible"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database Aurora PostgreSQL. | Buat instans DB di klaster yang kompatibel dengan Amazon Aurora PostgreSQL. | DBA | 
| Buat skema, ekstensi aws\$1s3, dan tabel. | Gunakan kode di bawah `ext_tbl_scripts` di bagian *Informasi tambahan*. Tabel termasuk tabel aktual, tabel pementasan, kesalahan dan tabel log, dan metatable. | DBA, Pengembang | 
| Buat fungsi DB. | Untuk membuat fungsi DB, gunakan kode di bawah `load_external_table_latest` fungsi di bagian *Informasi tambahan*. | DBA, Pengembang | 

### Buat fungsi Lambda dengan konsol
<a name="create-and-configure-the-lambda-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran. | Buat peran dengan izin untuk mengakses Amazon S3 dan Amazon Relational Database Service (Amazon RDS). Peran ini akan ditugaskan ke Lambda untuk menjalankan pola. | DBA | 
| Buat fungsi Lambda. | Buat fungsi Lambda yang membaca nama file dari Amazon S3 (misalnya`file_key = info.get('object', {}).get('key')`,) dan memanggil fungsi DB (misalnya`curs.callproc("load_external_tables", [file_key])`,) dengan nama file sebagai parameter input.Bergantung pada hasil pemanggilan fungsi, pemberitahuan SNS akan dimulai (misalnya,`client.publish(TopicArn='arn:',Message='fileloadsuccess',Subject='fileloadsuccess')`).Berdasarkan kebutuhan bisnis Anda, Anda dapat membuat fungsi Lambda dengan kode tambahan jika diperlukan. Untuk informasi selengkapnya, lihat dokumentasi [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html). | DBA | 
| Konfigurasikan pemicu peristiwa bucket S3. | Konfigurasikan mekanisme untuk memanggil fungsi Lambda untuk semua peristiwa pembuatan objek di bucket S3. | DBA | 
| Buat rahasia. | Buat nama rahasia untuk kredensyal database dengan menggunakan Secrets Manager. Lewati rahasia dalam fungsi Lambda. | DBA | 
| Unggah file pendukung Lambda. | Unggah file.zip yang berisi paket dukungan Lambda dan skrip Python terlampir untuk menghubungkan ke Aurora PostgreSQL yang kompatibel. Kode Python memanggil fungsi yang Anda buat dalam database. | DBA | 
| Membuat sebuah topik SNS. | Buat topik SNS untuk mengirim email untuk keberhasilan atau kegagalan pemuatan data. | DBA | 

### Tambahkan integrasi dengan Amazon S3
<a name="add-integration-with-amazon-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Di konsol Amazon S3, buat bucket S3 dengan nama unik yang tidak mengandung garis miring di depan. Nama bucket S3 unik secara global, dan namespace dibagikan oleh semua akun AWS. | DBA | 
| Buat kebijakan IAM. | Untuk membuat kebijakan AWS Identity and Access Management (IAM), gunakan kode `s3bucketpolicy_for_import` di bagian *Informasi tambahan*. | DBA | 
| Buat peran. | Buat dua peran untuk Aurora PostgreSQL kompatibel, satu peran untuk Impor dan satu peran untuk Ekspor. Tetapkan kebijakan yang sesuai untuk peran. | DBA | 
| Lampirkan peran ke cluster yang kompatibel dengan Aurora PostgreSQL. | Di bawah **Kelola peran**, lampirkan peran Impor dan Ekspor ke klaster PostgreSQL Aurora. | DBA | 
| Buat objek pendukung untuk Aurora PostgreSQL kompatibel. | Untuk skrip tabel, gunakan kode di bawah `ext_tbl_scripts` di bagian *Informasi tambahan*.Untuk fungsi kustom, gunakan kode di bawah `load_external_Table_latest` di bagian *Informasi tambahan*. | DBA | 

### Memproses file uji
<a name="process-a-test-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file ke bucket S3. | Untuk mengunggah file pengujian ke bucket S3, gunakan konsol atau perintah berikut di AWS CLI. <pre>aws s3 cp /Users/Desktop/ukpost/exttbl/"testing files"/aps s3://s3importtest/inputext/aps</pre>Segera setelah file diunggah, peristiwa bucket memulai fungsi Lambda, yang menjalankan fungsi yang kompatibel dengan Aurora PostgreSQL. | DBA | 
| Periksa data dan file log dan kesalahan. | Fungsi Aurora PostgreSQL yang kompatibel memuat file ke dalam tabel utama, dan itu membuat `.log` dan `.bad` file di bucket S3. | DBA | 
| Pantau solusinya. | Di CloudWatch konsol Amazon, pantau fungsi Lambda. | DBA | 

## Sumber daya terkait
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-resources"></a>
+ [Integrasi Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Bekerja dengan Amazon Aurora PostgreSQL Edisi yang kompatibel](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)
+ [Menyiapkan notifikasi Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)

## Informasi tambahan
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-additional"></a>

**ext\$1table\$1scripts**

```
CREATE EXTENSION aws_s3 CASCADE;
CREATE TABLE IF NOT EXISTS meta_EXTERNAL_TABLE
(
    table_name_stg character varying(100) ,
    table_name character varying(100)  ,
    col_list character varying(1000)  ,
    data_type character varying(100)  ,
    col_order numeric,
    start_pos numeric,
    end_pos numeric,
    no_position character varying(100)  ,
    date_mask character varying(100)  ,
    delimeter character(1)  ,
    directory character varying(100)  ,
    file_name character varying(100)  ,
    header_exist character varying(5)
);
CREATE TABLE IF NOT EXISTS ext_tbl_stg
(
    col1 text
);
CREATE TABLE IF NOT EXISTS error_table
(
    error_details text,
    file_name character varying(100),
    processed_time timestamp without time zone
);
CREATE TABLE IF NOT EXISTS log_table
(
    file_name character varying(50) COLLATE pg_catalog."default",
    processed_date timestamp without time zone,
    tot_rec_count numeric,
    proc_rec_count numeric,
    error_rec_count numeric
);
sample insert scripts of meta data:
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'source_filename', 'character varying', 2, 8, 27, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'record_type_identifier', 'character varying', 3, 28, 30, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'fad_code', 'numeric', 4, 31, 36, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'session_sequence_number', 'numeric', 5, 37, 42, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'transaction_sequence_number', 'numeric', 6, 43, 48, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
```

**s3bucketpolicy\$1untuk impor**

```
---Import role policy
--Create an IAM policy to allow, Get,  and list actions on S3 bucket
 {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3import",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest",
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
--Export Role policy
--Create an IAM policy to allow, put,  and list actions on S3 bucket
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3export",
            "Action": [
                "S3:PutObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
```

**Contoh fungsi DB load\$1external\$1tables\$1latest**

```
CREATE OR REPLACE FUNCTION public.load_external_tables(pi_filename text)
 RETURNS character varying
 LANGUAGE plpgsql
AS $function$
/* Loading data from S3 bucket into a APG table */
DECLARE
 v_final_sql TEXT;
 pi_ext_table TEXT;
 r refCURSOR;
 v_sqlerrm text;
 v_chunk numeric;
 i integer;
 v_col_list TEXT;
 v_postion_list CHARACTER VARYING(1000);
 v_len  integer;
 v_delim varchar;
 v_file_name CHARACTER VARYING(1000);
 v_directory CHARACTER VARYING(1000);
 v_table_name_stg CHARACTER VARYING(1000);
 v_sql_col TEXT;
 v_sql TEXT;
 v_sql1 TEXT;
 v_sql2 TEXT;
 v_sql3 TEXT;
 v_cnt integer;
 v_sql_dynamic TEXT;
 v_sql_ins TEXT;
 proc_rec_COUNT integer;
 error_rec_COUNT integer;
 tot_rec_COUNT integer;
 v_rec_val integer;
 rec record;
 v_col_cnt integer;
 kv record;
 v_val text;
 v_header text;
 j integer;
 ERCODE VARCHAR(5);
 v_region text;
 cr CURSOR FOR
 SELECT distinct DELIMETER,
   FILE_NAME,
   DIRECTORY
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
   AND DELIMETER IS NOT NULL;


 cr1 CURSOR FOR
   SELECT   col_list,
   data_type,
   start_pos,
   END_pos,
   concat_ws('',' ',TABLE_NAME_STG) as TABLE_NAME_STG,
   no_position,date_mask
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
 order by col_order asc;
cr2 cursor FOR
SELECT  distinct table_name,table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);


BEGIN
 -- PERFORM utl_file_utility.init();
   v_region := 'us-east-1';
   /* find tab details from file name */


   --DELETE FROM  ERROR_TABLE WHERE file_name= pi_filename;
  -- DELETE FROM  log_table WHERE file_name= pi_filename;


 BEGIN


   SELECT distinct table_name,table_name_stg INTO strict pi_ext_table,v_table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
    raise notice 'error 1,%',sqlerrm;
    pi_ext_table := null;
    v_table_name_stg := null;
      RAISE USING errcode = 'NTFIP' ;
    when others then
        raise notice 'error others,%',sqlerrm;
 END;
 j :=1 ;
  
for rec in  cr2
 LOOP




  pi_ext_table     := rec.table_name;
  v_table_name_stg := rec.table_name_stg;
  v_col_list := null;


 IF pi_ext_table IS NOT NULL
  THEN
    --EXECUTE concat_ws('','truncate table  ' ,pi_ext_table) ;
   EXECUTE concat_ws('','truncate table  ' ,v_table_name_stg) ;




       SELECT distinct DELIMETER INTO STRICT v_delim
       FROM  meta_EXTERNAL_TABLE
       WHERE table_name = pi_ext_table;


       IF v_delim IS NOT NULL THEN
     SELECT distinct DELIMETER,
       FILE_NAME,
       DIRECTORY ,
       concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
     INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table
       AND DELIMETER IS NOT NULL;


     IF    upper(v_delim) = 'CSV'
     THEN
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3 ( ''',
       v_table_name_stg,''','''',
       ''DELIMITER '''','''' CSV HEADER QUOTE ''''"'''''', aws_commons.create_s3_uri ( ''',
       v_directory,''',''',v_file_name,''', ''',v_region,'''))');
       ELSE
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
           v_table_name_stg, ''','''', ''DELIMITER AS ''''^''''',''',','
          aws_commons.create_s3_uri
           ( ''',v_directory, ''',''',
           v_file_name, ''',',
            '''',v_region,''')
          )');
          raise notice 'v_sql , %',v_sql;
       begin
        EXECUTE  v_sql;
       EXCEPTION
         WHEN OTHERS THEN
           raise notice 'error 1';
         RAISE USING errcode = 'S3IMP' ;
       END;


       select count(col_list) INTO v_col_cnt
       from  meta_EXTERNAL_TABLE where table_name = pi_ext_table;






        -- raise notice 'v_sql 2, %',concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');


       execute concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');




       i :=1;
       FOR rec in cr1
       loop
       v_sql1 := concat_ws('',v_sql1,'split_part(col1,''',v_delim,''',', i,')',' as ',rec.col_list,',');
       v_sql2 := concat_ws('',v_sql2,rec.col_list,',');
   --    v_sql3 := concat_ws('',v_sql3,'rec.',rec.col_list,'::',rec.data_type,',');


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 coalesce((trim(split_part(col1,''',v_delim,''',', i,')))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask =  'MM/DD/YYYY hh24:mi:ss'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''01/01/9999 0024:00:00''),''MM/DD/YYYY hh24:mi:ss'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                  coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


       i :=i+1;
       end loop;


         -- raise notice 'v_sql 3, %',v_sql3;


       SELECT trim(trailing ' ' FROM v_sql1) INTO v_sql1;
       SELECT trim(trailing ',' FROM v_sql1) INTO v_sql1;


       SELECT trim(trailing ' ' FROM v_sql2) INTO v_sql2;
       SELECT trim(trailing ',' FROM v_sql2) INTO v_sql2;


       SELECT trim(trailing ' ' FROM v_sql3) INTO v_sql3;
       SELECT trim(trailing ',' FROM v_sql3) INTO v_sql3;


       END IF;
      raise notice 'v_delim , %',v_delim;


     EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)  INTO v_cnt;


    raise notice 'stg cnt , %',v_cnt;


    /* if upper(v_delim) = 'CSV' then
       v_sql_ins := concat_ws('', ' SELECT * from ' ,v_table_name_stg );
     else
      -- v_sql_ins := concat_ws('',' SELECT ',v_sql1,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       END IF;*/


v_chunk := v_cnt/100;




for i in 1..101
loop
     BEGIN
    -- raise notice 'v_sql , %',v_sql;
       -- raise notice 'Chunk number , %',i;
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ' offset ',v_chunk*(i-1), ' limit ',v_chunk,') sub ');


     v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
     -- raise notice 'select statement , %',v_sql_ins;
          -- v_sql := null;
     -- EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins, 'offset ',v_chunk*(i-1), ' limit ',v_chunk );
     --v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins );


     -- raise notice 'insert statement , %',v_sql;


    raise NOTICE 'CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'CHUNK END %',v_chunk;


     EXECUTE v_sql;


  EXCEPTION
       WHEN OTHERS THEN
       -- v_sql_ins := concat_ws('',' SELECT ',v_sql1, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');
         -- raise notice 'Chunk number for cursor , %',i;


    raise NOTICE 'Cursor - CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'Cursor -  CHUNK END %',v_chunk;
         v_sql_ins := concat_ws('',' SELECT ',v_sql3, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');


         v_final_sql := REPLACE (v_sql_ins, ''''::text, ''''''::text);
        -- raise notice 'v_final_sql %',v_final_sql;
         v_sql :=concat_ws('','do $a$ declare  r refcursor;v_sql text; i numeric;v_conname text;  v_typ  ',pi_ext_table,'[]; v_rec  ','record',';
           begin






           open r for execute ''select col1 from ',v_table_name_stg ,'  offset ',v_chunk*(i-1), ' limit ',v_chunk,''';
           loop
           begin
           fetch r into v_rec;
           EXIT WHEN NOT FOUND;




           v_sql := concat_ws('''',''insert into  ',pi_ext_table,' SELECT ',REPLACE (v_sql3, ''''::text, ''''''::text) , '  from ( select '''''',v_rec.col1,'''''' as col1) v'');
            execute v_sql;


           exception
            when others then
          v_sql := ''INSERT INTO  ERROR_TABLE VALUES (concat_ws('''''''',''''Error Name: '''',$$''||SQLERRM||''$$,''''Error State: '''',''''''||SQLSTATE||'''''',''''record : '''',$$''||v_rec.col1||''$$),'''''||pi_filename||''''',now())'';


               execute v_sql;
             continue;
           end ;
           end loop;
           close r;
           exception
           when others then
         raise;
           end ; $a$');
      -- raise notice ' inside excp v_sql %',v_sql;
          execute v_sql;
      --  raise notice 'v_sql %',v_sql;
       END;
  END LOOP;
     ELSE


     SELECT distinct DELIMETER,FILE_NAME,DIRECTORY ,concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
       INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table                  ;
     v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
       v_table_name_stg, ''','''', ''DELIMITER AS ''''#'''' ',v_header,' '',','
      aws_commons.create_s3_uri
       ( ''',v_directory, ''',''',
       v_file_name, ''',',
        '''',v_region,''')
      )');
         EXECUTE  v_sql;


     FOR rec in cr1
     LOOP


      IF rec.start_pos IS NULL AND rec.END_pos IS NULL AND rec.no_position = 'recnum'
      THEN
        v_rec_val := 1;
      ELSE


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1)))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDDHH24MISS'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''9999010100240000''),''YYYYMMDDHH24MISS'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                  coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


      END IF;
      v_col_list := concat_ws('',v_col_list ,v_sql1);
     END LOOP;




           SELECT trim(trailing ' ' FROM v_col_list) INTO v_col_list;
           SELECT trim(trailing ',' FROM v_col_list) INTO v_col_list;


           v_sql_col   :=  concat_ws('',trim(trailing ',' FROM v_col_list) , ' FROM  ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 ');




           v_sql_dynamic := v_sql_col;


           EXECUTE  concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg) INTO v_cnt;




         IF v_rec_val = 1 THEN
             v_sql_ins := concat_ws('',' select row_number() over(order by ctid) as line_number ,' ,v_sql_dynamic) ;


         ELSE
               v_sql_ins := concat_ws('',' SELECT' ,v_sql_dynamic) ;
           END IF;


     BEGIN
       EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
           EXCEPTION
              WHEN OTHERS THEN
          IF v_rec_val = 1 THEN
                  v_final_sql := ' select row_number() over(order by ctid) as line_number ,col1 from ';
                ELSE
                 v_final_sql := ' SELECT col1 from';
               END IF;
       v_sql :=concat_ws('','do $a$ declare  r refcursor;v_rec_val numeric := ',coalesce(v_rec_val,0),';line_number numeric; col1 text; v_typ  ',pi_ext_table,'[]; v_rec  ',pi_ext_table,';
             begin
             open r for execute ''',v_final_sql, ' ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 '' ;
             loop
             begin
             if   v_rec_val = 1 then
             fetch r into line_number,col1;
             else
             fetch r into col1;
             end if;


             EXIT WHEN NOT FOUND;
              if v_rec_val = 1 then
              select line_number,',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              else
                select ',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              end if;


             insert into  ',pi_ext_table,' select v_rec.*;
              exception
              when others then
               INSERT INTO  ERROR_TABLE VALUES (concat_ws('''',''Error Name: '',SQLERRM,''Error State: '',SQLSTATE,''record : '',v_rec),''',pi_filename,''',now());
               continue;
              end ;
               end loop;
             close r;
              exception
              when others then
              raise;
              end ; $a$');
         execute v_sql;


     END;


         END IF;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  ' ,pi_ext_table)   INTO proc_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  error_table WHERE file_name =''',pi_filename,''' and processed_time::date = clock_timestamp()::date')  INTO error_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)   INTO tot_rec_COUNT;


   INSERT INTO  log_table values(pi_filename,now(),tot_rec_COUNT,proc_rec_COUNT, error_rec_COUNT);


   raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT replace(trim(substring(error_details,position(''('' in error_details)+1),'')''),'','','';''),file_name,processed_time FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );


raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  log_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.log', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );




   END IF;
 j := j+1;
 END LOOP;


       RETURN 'OK';
EXCEPTION
    WHEN  OTHERS THEN
  raise notice 'error %',sqlerrm;
   ERCODE=SQLSTATE;
   IF ERCODE = 'NTFIP' THEN
     v_sqlerrm := concat_Ws('',sqlerrm,'No data for the filename');
   ELSIF ERCODE = 'S3IMP' THEN
    v_sqlerrm := concat_Ws('',sqlerrm,'Error While exporting the file from S3');
   ELSE
      v_sqlerrm := sqlerrm;
   END IF;


 select distinct directory into v_directory from  meta_EXTERNAL_TABLE;




 raise notice 'exc v_directory, %',v_directory;


   raise notice 'exc pi_filename, %',pi_filename;


   raise notice 'exc v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );
    RETURN null;
END;
$function$
```

# Migrasikan indeks berbasis fungsi dari Oracle ke PostgreSQL
<a name="migrate-function-based-indexes-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi dan Navakanth Talluri, Amazon Web Services*

## Ringkasan
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-summary"></a>

Indeks adalah cara umum untuk meningkatkan kinerja database. Indeks memungkinkan server database untuk menemukan dan mengambil baris tertentu jauh lebih cepat daripada yang bisa tanpa indeks. Tetapi indeks juga menambahkan overhead ke sistem database secara keseluruhan, sehingga mereka harus digunakan dengan bijaksana. Indeks berbasis fungsi, yang didasarkan pada fungsi atau ekspresi, dapat melibatkan beberapa kolom dan ekspresi matematika. Indeks berbasis fungsi meningkatkan kinerja kueri yang menggunakan ekspresi indeks. 

Secara native, PostgreSQL tidak mendukung pembuatan indeks berbasis fungsi menggunakan fungsi yang memiliki volatilitas yang didefinisikan sebagai stabil. Namun, Anda dapat membuat fungsi serupa dengan volatilitas `IMMUTABLE` dan menggunakannya dalam pembuatan indeks.

Sebuah `IMMUTABLE` fungsi tidak dapat memodifikasi database, dan itu dijamin untuk mengembalikan hasil yang sama diberikan argumen yang sama selamanya. Kategori ini memungkinkan pengoptimal untuk melakukan pra-evaluasi fungsi saat kueri memanggilnya dengan argumen konstan. 

Pola ini membantu dalam memigrasikan indeks berbasis fungsi Oracle saat digunakan dengan fungsi seperti,`to_char`, `to_date` dan ke PostgreSQL yang setara. `to_number`

## Prasyarat dan batasan
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-prereqs"></a>

**Prasyarat**
+ Akun Amazon Web Services (AWS) yang aktif
+ Sebuah instance database Oracle sumber dengan layanan listener yang disiapkan dan dijalankan
+ Keakraban dengan database PostgreSQL

**Batasan**
+ Batas ukuran database adalah 64 TB.
+ Fungsi yang digunakan dalam pembuatan indeks harus IMMUTABLE.

**Versi produk**
+ Semua edisi database Oracle untuk versi 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, dan 18c
+ PostgreSQL versi 9.6 dan yang lebih baru

## Arsitektur
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle di tempat atau di instans Amazon Elastic Compute Cloud EC2 (Amazon), atau Amazon RDS for Oracle DB instans

**Tumpukan teknologi target**
+ Mesin PostgreSQL apa pun

## Alat
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-tools"></a>
+ **pgAdmin** 4 adalah alat manajemen open source untuk Postgres. Alat pgAdmin 4 menyediakan antarmuka grafis untuk membuat, memelihara, dan menggunakan objek database.
+ **Oracle SQL Developer** adalah lingkungan pengembangan terintegrasi (IDE) untuk mengembangkan dan mengelola Oracle Database baik dalam penerapan tradisional maupun cloud.

## Epik
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-epics"></a>

### Buat indeks berbasis fungsi menggunakan fungsi default
<a name="create-a-function-based-index-using-a-default-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat indeks berbasis fungsi pada kolom menggunakan fungsi to\$1char. | Gunakan kode berikut untuk membuat indeks berbasis fungsi.<pre>postgres=# create table funcindex( col1 timestamp without time zone);<br />CREATE TABLE<br />postgres=# insert into funcindex values (now());<br />INSERT 0 1<br />postgres=# select * from funcindex;<br />            col1<br />----------------------------<br /> 2022-08-09 16:00:57.77414<br />(1 rows)<br /> <br />postgres=# create index funcindex_idx on funcindex(to_char(col1,'DD-MM-YYYY HH24:MI:SS'));<br />ERROR:  functions in index expression must be marked IMMUTABLE</pre> PostgreSQL tidak mengizinkan pembuatan indeks berbasis fungsi tanpa klausa. `IMMUTABLE` | DBA, Pengembang aplikasi | 
| Periksa volatilitas fungsi. | Untuk memeriksa volatilitas fungsi, gunakan kode di bagian *Informasi tambahan*.   | DBA | 

### Buat indeks berbasis fungsi menggunakan fungsi pembungkus
<a name="create-function-based-indexes-using-a-wrapper-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi pembungkus. | Untuk membuat fungsi pembungkus, gunakan kode di *bagian Informasi tambahan*. | Pengembang PostgreSQL | 
| Buat indeks dengan menggunakan fungsi pembungkus. | Gunakan kode di bagian *Informasi tambahan* untuk membuat fungsi yang ditentukan pengguna dengan kata kunci `IMMUTABLE` dalam skema yang sama dengan aplikasi, dan merujuknya dalam skrip pembuatan indeks.Jika fungsi yang ditentukan pengguna dibuat dalam skema umum (dari contoh sebelumnya), perbarui seperti yang `search_path` ditunjukkan.<pre>ALTER ROLE <ROLENAME> set search_path=$user, COMMON;</pre> | DBA, pengembang PostgreSQL | 

### Validasi pembuatan indeks
<a name="validate-index-creation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi pembuatan indeks. | Validasi bahwa indeks perlu dibuat, berdasarkan pola akses kueri. | DBA | 
| Validasi bahwa indeks dapat digunakan. | Untuk memeriksa apakah indeks berbasis fungsi diambil oleh PostgreSQL Optimizer, jalankan pernyataan SQL menggunakan menjelaskan atau menjelaskan analisis. Gunakan kode di bagian *Informasi tambahan*. Jika memungkinkan, kumpulkan juga statistik tabel.Jika Anda melihat rencana penjelasan, pengoptimal PostgreSQL telah memilih indeks berbasis fungsi karena kondisi predikat. | DBA | 

## Sumber daya terkait
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-resources"></a>
+ [Indeks berbasis fungsi](https://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_indexes.htm#ADFNS00505) (dokumentasi Oracle)
+ [Indeks pada Ekspresi (dokumentasi](https://www.postgresql.org/docs/9.4/indexes-expressional.html) PostgreSQL)
+ [Volatilitas PostgreSQL (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/current/xfunc-volatility.html)
+ [PostgreSQL search\$1path (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH)
+ [Oracle Database 19c ke Amazon Aurora PostgreSQL Playbook Migrasi](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html) 

## Informasi tambahan
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-additional"></a>

**Buat fungsi pembungkus**

```
CREATE OR REPLACE FUNCTION myschema.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
```

**Buat indeks dengan menggunakan fungsi pembungkus**

```
postgres=# create function common.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
CREATE FUNCTION
postgres=# create index funcindex_idx on funcindex(common.to_char(col1,'DD-MM-YYYY HH24:MI:SS'));
CREATE INDEX
```

**Periksa volatilitas fungsi**

```
SELECT DISTINCT p.proname as "Name",p.provolatile as "volatility" FROM pg_catalog.pg_proc p
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
 LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang
 WHERE n.nspname OPERATOR(pg_catalog.~) '^(pg_catalog)$' COLLATE pg_catalog.default AND p.proname='to_char'GROUP BY p.proname,p.provolatile
ORDER BY 1;
```

**Validasi bahwa indeks dapat digunakan**

```
explain analyze <SQL>
 
 
postgres=# explain select col1 from funcindex where common.to_char(col1,'DD-MM-YYYY HH24:MI:SS') = '09-08-2022 16:00:57';
                                                       QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
 Index Scan using funcindex_idx on funcindex  (cost=0.42..8.44 rows=1 width=8)
   Index Cond: ((common.to_char(col1, 'DD-MM-YYYY HH24:MI:SS'::character varying))::text = '09-08-2022 16:00:57'::text)
(2 rows)
```

# Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-summary"></a>

Pola migrasi ini memberikan step-by-step panduan untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instance database Oracle ke Amazon RDS for PostgreSQL atau database Amazon Aurora PostgreSQL Compatible Edition dengan memodifikasi dan ekstensi ke kode bawaan bawaan PostgreSQL () bawaan bawaan. `aws_oracle_ext` `orafce` `psql` Ini akan menghemat waktu pemrosesan.

Pola ini menggambarkan strategi migrasi manual offline tanpa downtime untuk database sumber Oracle multi-terabyte dengan jumlah transaksi yang tinggi.

Proses migrasi menggunakan AWS Schema Conversion Tool (AWS SCT) dengan `aws_oracle_ext` ekstensi `orafce` dan untuk mengonversi skema database Amazon RDS for Oracle ke Amazon RDS for PostgreSQL atau skema database yang kompatibel dengan Aurora PostgreSQL. Kemudian kode secara manual diubah menjadi PostgreSQL didukung kode bawaan asli. `psql` Ini karena ekstensi memanggil pemrosesan kode dampak pada server database PostgreSQL, dan tidak semua kode ekstensi sepenuhnya dikeluhkan atau kompatibel dengan kode PostgreSQL.

Pola ini terutama berfokus pada migrasi kode SQL secara manual menggunakan AWS SCT dan ekstensi dan. `aws_oracle_ext` `orafce` Anda mengonversi ekstensi yang sudah digunakan menjadi bawaan `psql` PostgreSQL () bawaan bawaan. Kemudian Anda menghapus semua referensi ke ekstensi dan mengonversi kode yang sesuai.

## Prasyarat dan batasan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Sistem operasi (Windows atau Mac) atau EC2 instans Amazon (aktif dan berjalan) 
+ Orafce

**Batasan**

Tidak semua fungsi Oracle menggunakan `aws_oracle_ext` atau `orafce` ekstensi dapat dikonversi ke fungsi PostgreSQL asli. Mungkin perlu pengerjaan ulang manual untuk mengompilasinya dengan pustaka PostgreSQL.

Salah satu kelemahan menggunakan ekstensi AWS SCT adalah kinerjanya yang lambat dalam menjalankan dan mengambil hasilnya. *Biayanya dapat dipahami dari rencana [PostgreSQL EXPLORE sederhana (rencana eksekusi pernyataan) pada migrasi fungsi `SYSDATE` Oracle ke fungsi `NOW()` PostgreSQL antara ketiga `aws_oracle_ext` kode `orafce` (,, dan default)`psql`, seperti yang dijelaskan](https://www.postgresql.org/docs/current/sql-explain.html) di bagian pemeriksaan perbandingan Kinerja dalam dokumen terlampir.*

**Versi produk**
+ **Sumber:** Amazon RDS for Oracle database 10.2 dan yang lebih baru (untuk 10.x), 11g (11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, 18c, dan 19c (dan yang lebih baru) untuk Enterprise Edition, Standard Edition, Standard Edition 1, dan Standard Edition 2
+ **Target**: Amazon RDS untuk database yang kompatibel dengan PostgreSQL atau Aurora PostgreSQL 9.4 dan yang lebih baru (untuk 9.x), 10.x, 11.x, 12.x, 13.x, dan 14.x (dan yang lebih baru)
+ **AWS SCT**: Versi terbaru (pola ini diuji dengan 1.0.632)
+ **Orafce**: Versi terbaru (pola ini diuji dengan 3.9.0)

## Arsitektur
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-architecture"></a>

**Tumpukan teknologi sumber**
+ Instans database Amazon RDS for Oracle dengan versi 12.1.0.2.v18

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

**Arsitektur migrasi database**

Diagram berikut merupakan arsitektur migrasi database antara sumber Oracle dan database PostgreSQL target. Arsitekturnya melibatkan AWS Cloud, virtual private cloud (VPC), Availability Zones, subnet pribadi, database Amazon RDS for Oracle, AWS SCT, Amazon RDS untuk PostgreSQL atau database yang kompatibel dengan Aurora PostgreSQL, ekstensi untuk file Oracle (dan), dan bahasa kueri terstruktur (SQL). `aws_oracle_ext` `orafce`

![\[Prosesnya dijelaskan dalam daftar berikut.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Luncurkan Amazon RDS for Oracle DB instance (sumber DB).

1. Gunakan AWS SCT dengan paket `orafce` ekstensi `aws_oracle_ext` dan untuk mengonversi kode sumber dari Oracle ke PostreSQL.

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

1. Secara manual mengonversi kode ekstensi Oracle yang tidak dikonversi ke kode PostgreSQL (). `psql`

1. Konversi manual menghasilkan file.sql dikonversi yang didukung PostgreSQL.

1. Jalankan file.sql ini di Amazon RDS untuk instans DB Amazon RDS for PostgreSQL (target DB).

## Alat
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Alat**

*Layanan AWS*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) - AWS Schema Conversion Tool (AWS SCT) mengonversi skema database Anda yang ada dari satu mesin database ke mesin database lainnya. Anda dapat mengonversi skema Pemrosesan Transaksional Online (OLTP) relasional, atau skema gudang data. Skema konversi Anda cocok untuk instans Amazon RDS for MySQL DB, kluster Amazon Aurora DB, instans Amazon RDS for PostgreSQL DB, atau cluster Amazon Redshift. Skema yang dikonversi juga dapat digunakan dengan database pada EC2 instans Amazon atau disimpan sebagai data dalam bucket Amazon S3.

  AWS SCT menyediakan antarmuka pengguna berbasis proyek untuk secara otomatis mengonversi skema database database sumber Anda menjadi format yang kompatibel dengan instans Amazon RDS target Anda. 

  Anda dapat menggunakan AWS SCT untuk melakukan migrasi dari database sumber Oracle ke salah satu target yang tercantum sebelumnya. Menggunakan AWS SCT, Anda dapat mengekspor definisi objek database sumber seperti skema, tampilan, prosedur tersimpan, dan fungsi. 

  Anda dapat menggunakan AWS SCT untuk mengonversi data dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan Amazon Aurora. 

  Dalam pola ini, Anda menggunakan AWS SCT untuk mengonversi dan memigrasikan kode Oracle ke PostgreSQL menggunakan ekstensi `aws_oracle_ext` dan`orafce`, dan memigrasikan kode ekstensi secara manual ke kode bawaan default atau asli. `psql`
+ Paket ekstensi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) adalah modul add-on yang mengemulasi fungsi yang ada dalam database sumber yang diperlukan saat mengonversi objek ke database target. Sebelum Anda dapat menginstal paket ekstensi AWS SCT, Anda perlu mengonversi skema database Anda.

  Saat Anda mengonversi skema database atau gudang data, AWS SCT menambahkan skema tambahan ke basis data target Anda. Skema ini mengimplementasikan fungsi sistem SQL dari database sumber yang diperlukan saat menulis skema yang dikonversi ke database target Anda. Skema tambahan ini disebut skema paket ekstensi.

  Skema paket ekstensi untuk database OLTP diberi nama sesuai dengan database sumber. Untuk database Oracle, skema paket ekstensi adalah. `AWS_ORACLE_EXT`

*Alat-alat lainnya*
+ [Orafce](https://github.com/orafce/orafce) - Orafce adalah modul yang mengimplementasikan fungsi, tipe data, dan paket yang kompatibel dengan Oracle. Ini adalah alat sumber terbuka dengan lisensi Berkeley Source Distribution (BSD) sehingga siapa pun dapat menggunakannya. `orafce`Modul ini berguna untuk migrasi dari Oracle ke PostgreSQL karena memiliki banyak fungsi Oracle yang diimplementasikan di PostgreSQL.

 

**Kode**

Untuk daftar semua kode yang umum digunakan dan dimigrasi dari Oracle ke PostgreSQL guna menghindari penggunaan kode ekstensi AWS SCT, lihat dokumen terlampir.

## Epik
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-epics"></a>

### Konfigurasikan database sumber Amazon RDS for Oracle
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance database Oracle. | Buat instance database yang kompatibel dengan Amazon RDS for Oracle atau Aurora PostgreSQL dari konsol Amazon RDS. | AWS Umum, DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat database. | Buat database Oracle dengan pengguna dan skema yang dibutuhkan. | AWS Umum, DBA | 
| Buat objek. | Buat objek dan masukkan data dalam skema. | DBA | 

### Konfigurasikan database target Amazon RDS for PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance database PostgreSQL. | Buat instance database Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL dari konsol Amazon RDS. | AWS Umum, DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat database. | Buat database PostgreSQL dengan pengguna dan skema yang dibutuhkan. | AWS Umum, DBA | 
| Validasi ekstensi. | Pastikan bahwa `aws_oracle_ext` dan diinstal dan `orafce` dikonfigurasi dengan benar di database PostgreSQL. | DBA | 
| Verifikasi bahwa database PostgreSQL tersedia. | Pastikan database PostgreSQL aktif dan berjalan. | DBA | 

### Migrasikan skema Oracle ke PostgreSQL menggunakan AWS SCT dan ekstensi
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS SCT. | Instal AWS SCT versi terbaru. | DBA | 
| Konfigurasikan AWS SCT. | Konfigurasikan AWS SCT dengan driver Java Database Connectivity (JDBC) untuk Oracle () `ojdbc8.jar` dan PostgreSQL (). `postgresql-42.2.5.jar` | DBA | 
| Aktifkan paket atau templat ekstensi AWS SCT. | Di bawah AWS SCT **Project Settings**, aktifkan implementasi fungsi bawaan dengan `aws_oracle_ext` dan `orafce` ekstensi untuk skema database Oracle. | DBA | 
| Konversi skema. | Di AWS SCT, pilih **Konversi Skema untuk mengonversi skema** dari Oracle ke PostgreSQL dan buat file.sql. | DBA | 

### Ubah kode ekstensi AWS SCT ke kode psql
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konversi kode secara manual. | Secara manual mengonversi setiap baris kode yang didukung ekstensi menjadi kode bawaan `psql` default, seperti yang dijelaskan dalam dokumen terlampir. Misalnya, ubah `AWS_ORACLE_EXT.SYSDATE()` atau `ORACLE.SYSDATE()` ke`NOW()`. | DBA | 
| Validasi kode | (Opsional) Validasi setiap baris kode dengan menjalankannya sementara di database PostgreSQL. | DBA | 
| Buat objek dalam database PostgreSQL. | Untuk membuat objek dalam database PostgreSQL, jalankan file.sql yang dihasilkan oleh AWS SCT dan dimodifikasi dalam dua langkah sebelumnya. | DBA | 

## Sumber daya terkait
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Basis Data
  + [Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Bekerja dengan Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [PostgreSQL JELASKAN rencana](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Ikhtisar Alat Konversi Schema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [Panduan Pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Menggunakan antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Menggunakan Oracle Database sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Ekstensi untuk AWS SCT
  + [Menggunakan paket ekstensi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Fungsionalitas Oracle](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [PGXN orafce](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Informasi tambahan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Untuk informasi lebih lanjut, ikuti perintah terperinci, dengan sintaks dan contoh, untuk mengonversi kode secara manual dalam dokumen terlampir.

## Lampiran
<a name="attachments-158847bb-27ef-4915-a9ca-7d87073792c1"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)

# Migrasikan database Db2 dari Amazon ke EC2 Aurora MySQL yang kompatibel dengan menggunakan AWS DMS
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-summary"></a>

Setelah memigrasikan [database IBM Db2 untuk LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation) ke [Amazon Elastic Compute Cloud ( EC2Amazon](https://docs.aws.amazon.com/ec2/)), pertimbangkan untuk merancang ulang database dengan pindah ke database cloud-native Amazon Web Services (AWS). Pola ini mencakup migrasi database IBM [Db2](https://www.ibm.com/docs/en/db2/11.5) untuk LUW yang berjalan pada instans Amazon ke database [Amazon](https://docs.aws.amazon.com/ec2/) Aurora MySQL EC2 Edition yang kompatibel dengan [AWS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html).  

Pola ini menggambarkan strategi migrasi online dengan downtime minimal untuk database sumber Db2 multi-terabyte dengan jumlah transaksi yang tinggi. 

Pola ini menggunakan [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)) untuk mengonversi skema database Db2 menjadi skema yang kompatibel dengan Aurora MySQL. Kemudian pola menggunakan [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) untuk memigrasikan data dari database Db2 ke database yang kompatibel dengan Aurora MySQL. Konversi manual akan diperlukan untuk kode yang tidak dikonversi oleh AWS SCT.

## Prasyarat dan batasan
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif dengan virtual private cloud (VPC)
+ AWS SCT
+ AWS DMS

**Versi produk**
+ AWS SCT versi terbaru
+ Db2 untuk Linux versi 11.1.4.4 dan yang lebih baru

## Arsitektur
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ DB2/Linux x86-64 bit dipasang pada sebuah instance EC2  

**Tumpukan teknologi target**
+ Instans database Edisi yang kompatibel dengan Amazon Aurora MySQL

**Arsitektur sumber dan target**

Diagram berikut menunjukkan arsitektur migrasi data antara sumber Db2 dan target database yang kompatibel dengan Aurora MySQL. Arsitektur pada AWS Cloud mencakup virtual private cloud (VPC) (Virtual Private Cloud), Availability Zone, subnet publik untuk instans Db2 dan instans replikasi AWS DMS, dan subnet pribadi untuk database yang kompatibel dengan Aurora MySQL.

![\[Arsitektur migrasi data antara sumber Db2 dan target database yang kompatibel dengan Aurora MySQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5abfccc4-148c-4794-8d80-e3c122679125/images/f30664f8-2d6a-4448-8d5c-cff3988a52c7.png)


## Alat
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-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.
+ [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 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.
+ [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. AWS SCT mendukung sebagai sumber IBM Db2 untuk LUW versi 9.1, 9.5, 9.7, 10.1, 10.5, 11.1, dan 11.5.

## Praktik terbaik
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-best-practices"></a>

Untuk praktik terbaik, lihat [Praktik terbaik untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html).

## Epik
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-epics"></a>

### Konfigurasikan sumber database IBM Db2
<a name="configure-the-source-ibm-db2-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database IBM Db2 di Amazon. EC2 | Anda dapat membuat database IBM Db2 pada EC2 instans dengan menggunakan Amazon Machine Image (AMI) dari AWS Marketplace atau dengan menginstal perangkat lunak Db2 pada instans. EC2 Luncurkan EC2 instance dengan memilih AMI untuk IBM Db2 (misalnya, [IBM Db2 v11.5.7 RHEL 7.9](https://aws.amazon.com/marketplace/pp/prodview-aclrjj4hq2ols?sr=0-1&ref_=beagle&applicationId=AWS-EC2-Console)), yang mirip dengan database lokal. | DBA, AWS Umum | 
| Konfigurasikan grup keamanan. | Konfigurasikan aturan masuk grup keamanan VPC untuk SSH (Secure Shell) dan TCP dengan port 22 dan 50000, masing-masing. | AWS Umum | 
| Buat instance database. | Buat instance baru (pengguna) dan database (skema), atau gunakan `db2inst1` contoh default dan database sampel.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Konfirmasikan bahwa instans Db2 DB tersedia. | Untuk mengonfirmasi bahwa instance database Db2 aktif dan berjalan, gunakan perintah. `Db2pd -` | DBA | 

### Konfigurasikan database target yang kompatibel dengan Aurora MySQL
<a name="configure-the-target-aurora-mysql-compatible-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database yang kompatibel dengan Aurora MySQL. | Buat Amazon Aurora dengan Database kompatibilitas MySQL dari layanan AWS RDS[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, AWS Umum | 
| Konfigurasikan grup keamanan. | Konfigurasikan aturan masuk grup keamanan VPC untuk koneksi SSH dan TCP. | AWS Umum | 
| Konfirmasikan bahwa database Aurora tersedia. | Untuk memastikan bahwa database yang kompatibel dengan Aurora MySQL aktif dan berjalan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 

### Konfigurasikan dan jalankan AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS SCT. | Unduh dan instal versi terbaru [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) (versi terbaru saat ini 1.0.628). | AWS Umum | 
| Konfigurasikan AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS Umum | 
| Buat proyek AWS SCT. | Buat proyek AWS SCT dan laporkan yang menggunakan Db2 untuk LUW sebagai mesin DB sumber dan Aurora MySQL yang kompatibel dengan mesin DB target.Untuk mengidentifikasi hak istimewa yang diperlukan untuk terhubung ke database Db2 untuk LUW, lihat [Menggunakan Db2 LUW sebagai](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html) sumber AWS SCT. | AWS Umum | 
| Validasi objek. | Pilih **skema Muat**, validasi objek. Perbarui objek yang salah pada database target:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, AWS Umum | 

### Konfigurasikan dan jalankan AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh replikasi. | Masuk ke AWS Management Console, navigasikan ke layanan AWS DMS, dan buat instance replikasi dengan pengaturan yang valid untuk grup keamanan VPC yang Anda konfigurasikan untuk basis data sumber dan target. | AWS Umum | 
| Buat titik akhir. | Buat titik akhir sumber untuk database Db2, dan buat titik akhir target untuk database yang kompatibel dengan Aurora MySQL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS Umum | 
| Buat tugas migrasi. | Buat tugas migrasi tunggal atau beberapa tugas migrasi untuk beban penuh dan validasi CDC atau Data:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS Umum | 
| Rencanakan proses produksi. | Konfirmasikan waktu henti dengan pemangku kepentingan seperti pemilik aplikasi untuk menjalankan AWS DMS dalam sistem produksi. | Pimpin migrasi | 
| Jalankan tugas migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS Umum | 
| Validasi data. | Tinjau hasil tugas migrasi dan data di sumber Db2 dan target database MySQL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Hentikan tugas migrasi. | Setelah validasi data berhasil diselesaikan, hentikan tugas migrasi validasi. | AWS Umum | 

## Pemecahan masalah
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Sumber AWS SCT dan koneksi pengujian target gagal. | Konfigurasikan versi driver JDBC dan aturan masuk grup keamanan VPC untuk menerima lalu lintas masuk. | 
| Uji titik akhir sumber Db2 gagal. | Konfigurasikan pengaturan koneksi tambahan`CurrentLSN=<scan>;`. | 
|  AWSDMS Tugas gagal terhubung ke sumber Db2, dan kesalahan berikut dikembalikan.`database is recoverable if either or both of the database configuration parameters LOGARCHMETH1 and LOGARCHMETH2 are set to ON` | Untuk menghindari kesalahan, jalankan perintah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | 

## Sumber daya terkait
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-resources"></a>

**Amazon EC2**
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Panduan EC2 Pengguna Amazon](https://docs.aws.amazon.com/ec2/)

**Basis Data**
+ [Basis Data IBM Db2](https://www.ibm.com/products/db2-database)
+ [Amazon Aurora](https://aws.amazon.com/rds/aurora/)
+ [Bekerja dengan Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)

**AWS SCT**
+ [Konversi Skema AWS DMS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Panduan Pengguna Alat Konversi Skema AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Menggunakan antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Menggunakan IBM Db2 LUW sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Panduan Pengguna AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Sumber untuk migrasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Target untuk migrasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [AWS Database Migration Service dan AWS Schema Conversion Tool sekarang mendukung IBM Db2 LUW sebagai](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-aws-schema-conversion-tool-now-support-ibm-db2-as-a-source/) sumber (posting blog)
+ [Migrasi Aplikasi Menjalankan Database Relasional ke AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

# Migrasi database Microsoft SQL Server dari Amazon EC2 ke Amazon DocumentDB dengan menggunakan AWS DMS
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms"></a>

*Perusahaan Nooka, Amazon Web Services*

## Ringkasan
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-summary"></a>

Pola ini menjelaskan cara menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan database Microsoft SQL Server yang dihosting di instans Amazon Elastic Compute Cloud (Amazon EC2) ke database Amazon DocumentDB (dengan kompatibilitas MongoDB).

Tugas replikasi AWS DMS membaca struktur tabel database SQL Server, membuat koleksi yang sesuai di Amazon DocumentDB, dan melakukan migrasi beban penuh.

Anda juga dapat menggunakan pola ini untuk memigrasikan SQL Server lokal atau Amazon Relational Database Service (Amazon RDS) untuk instans SQL Server DB ke Amazon DocumentDB. Untuk informasi selengkapnya, lihat panduan [Memigrasi database Microsoft SQL Server ke AWS Cloud di situs web AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/welcome.html) Prescriptive Guidance.

## Prasyarat dan batasan
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Database SQL Server yang ada pada sebuah EC2 instance.
+ Peran database tetap (**db\$1owner**) yang ditetapkan ke AWS DMS dalam database SQL Server. Untuk informasi selengkapnya, lihat [Peran tingkat database dalam dokumentasi](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15) SQL Server. 
+ Keakraban dengan menggunakan`mongodump`,, `mongorestore``mongoexport`, dan `mongoimport` utilitas untuk [memindahkan data masuk dan keluar dari cluster Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html).
+ [Microsoft SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15), diinstal dan dikonfigurasi.

**Batasan**
+ Batas ukuran cluster di Amazon DocumentDB adalah 64 TB. Untuk informasi selengkapnya, lihat [Batas klaster](https://docs.aws.amazon.com/documentdb/latest/developerguide/limits.html#limits-cluster) dalam dokumentasi Amazon DocumentDB. 
+ AWS DMS tidak mendukung penggabungan beberapa tabel sumber ke dalam satu koleksi Amazon DocumentDB.
+ Jika AWS DMS memproses perubahan apa pun dari tabel sumber tanpa kunci utama, AWS akan mengabaikan kolom objek besar (LOB) di tabel sumber.

## Arsitektur
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon EC2

**Tumpukan teknologi target**
+ Amazon DocumentDB

**Arsitektur target**

![\[AWS Cloud architecture showing VPC with private DB subnet and components for SQL Server and DocumentDB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f186220b-5a94-48b2-840d-f04aedf51651/images/00962b85-8b71-49df-b84a-3adcbc9ad3a3.png)


## Alat
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) — AWS Database Migration Service (AWS DMS) membantu Anda memigrasikan database dengan mudah dan aman.
+ [Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html) - Amazon DocumentDB (dengan kompatibilitas MongoDB) adalah layanan database yang cepat, andal, dan dikelola sepenuhnya.
+ [Amazon EC2 — Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud.
+ [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15) — SQL Server adalah sistem manajemen basis data relasional.
+ [SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15) — SSMS adalah alat untuk mengelola SQL Server, termasuk mengakses, mengkonfigurasi, dan mengelola komponen SQL Server.

## Epik
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-epics"></a>

### Buat dan konfigurasikan VPC
<a name="create-and-configure-a-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah VPC. | Masuk ke AWS Management Console dan buka konsol Amazon VPC. Buat virtual private cloud (VPC) dengan rentang blok IPv4 CIDR. | Administrator sistem | 
| Buat grup keamanan dan jaringan ACLs. | Di konsol VPC Amazon, buat grup keamanan dan daftar kontrol akses jaringan (jaringan ACLs) untuk VPC Anda, sesuai dengan kebutuhan Anda. Anda juga dapat menggunakan pengaturan default untuk konfigurasi ini. Untuk informasi selengkapnya tentang ini dan cerita lainnya, lihat bagian “Sumber daya terkait”. | Administrator sistem | 

### Buat dan konfigurasikan cluster Amazon DocumentDB
<a name="create-and-configure-the-amazon-documentdb-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Buat cluster Amazon DocumentDB. | Buka konsol Amazon DocumentDB dan pilih “Clusters.” Pilih “Buat,” dan buat cluster Amazon DocumentDB dengan satu instance. Penting: Pastikan Anda mengonfigurasi klaster ini dengan grup keamanan VPC Anda. | Administrator sistem  | 
|  Instal cangkang mongo. | Mongo shell adalah utilitas baris perintah yang Anda gunakan untuk menghubungkan dan menanyakan cluster Amazon DocumentDB Anda. Untuk menginstalnya, jalankan perintah “/etc/yum.repos.d/mongodb-org-3.6.repo” untuk membuat file repositori. Jalankan perintah “sudo yum install -y mongodb-org-shell” untuk menginstal shell mongo. Untuk mengenkripsi data dalam perjalanan, unduh kunci publik untuk Amazon DocumentDB, lalu sambungkan ke instans Amazon DocumentDB Anda. Untuk informasi selengkapnya tentang langkah-langkah ini, lihat bagian “Sumber daya terkait”. | Administrator sistem  | 
| Buat database di cluster Amazon DocumentDB.  | Jalankan perintah “gunakan” dengan nama database Anda untuk membuat database di cluster Amazon DocumentDB Anda. | Administrator sistem  | 

### Membuat dan mengonfigurasi instans replikasi AWS DMS
<a name="create-and-configure-the-aws-dms-replication-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance replikasi AWS DMS. | Buka konsol AWS DMS dan pilih “Buat instance replikasi.” Masukkan nama dan deskripsi untuk tugas replikasi Anda. Pilih kelas instans, versi mesin, penyimpanan, VPC, Multi-AZ, dan membuatnya dapat diakses publik. Pilih tab “Advanced” untuk mengatur pengaturan jaringan dan enkripsi. Tentukan pengaturan pemeliharaan, lalu pilih “Buat contoh replikasi.” | Administrator sistem  | 
| Konfigurasikan database SQL Server.  | Masuk ke Microsoft SQL Server dan tambahkan aturan masuk untuk komunikasi antara titik akhir sumber dan instans replikasi AWS DMS. Gunakan alamat IP pribadi instance replikasi sebagai sumbernya. Penting: Instance replikasi dan titik akhir target harus berada di VPC yang sama. Gunakan sumber alternatif dalam grup keamanan jika VPCs berbeda untuk contoh sumber dan replikasi. | Administrator sistem  | 

### Membuat dan menguji sumber dan target titik akhir di AWS DMS
<a name="create-and-test-the-source-and-target-endpoints-in-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir basis data sumber dan target. | Buka konsol AWS DMS dan pilih “Connect source and target database endpoint.” Tentukan informasi koneksi untuk basis data sumber dan target. Jika diperlukan, pilih tab “Advanced” untuk menetapkan nilai untuk “Atribut koneksi tambahan.” Unduh dan gunakan bundel sertifikat dalam konfigurasi titik akhir Anda. | Administrator sistem  | 
| Uji koneksi titik akhir.  | Pilih “Jalankan tes” untuk menguji koneksi. Memecahkan masalah pesan kesalahan apa pun dengan memverifikasi pengaturan grup keamanan dan koneksi ke instans replikasi AWS DMS dari instans database sumber dan target. | Administrator sistem  | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas migrasi AWS DMS.  | Pada konsol AWS DMS, pilih “Tugas,” “Buat tugas.” Tentukan opsi tugas, termasuk nama titik akhir sumber dan tujuan, dan nama instance replikasi. Di bawah “Jenis migrasi” pilih “Migrasi data yang ada,” dan “Replikasi perubahan data saja.” Pilih “Mulai tugas.” | Administrator sistem  | 
| Jalankan tugas migrasi AWS DMS. | Di bawah “Pengaturan tugas,” tentukan pengaturan untuk mode persiapan tabel, seperti “Jangan lakukan apa-apa,” “Jatuhkan tabel pada target,” “Pemotongan,” dan “Sertakan kolom LOB dalam replikasi.” Tetapkan ukuran LOB maksimum yang akan diterima AWS DMS dan pilih “Aktifkan logging.” Biarkan “Pengaturan lanjutan” pada nilai defaultnya dan pilih “Buat tugas.” | Administrator sistem  | 
| Pantau migrasi. | Di konsol AWS DMS, pilih “Tugas” dan pilih tugas migrasi Anda. Pilih “Pemantauan tugas” untuk memantau tugas Anda. Tugas berhenti ketika migrasi beban penuh selesai dan perubahan cache diterapkan. | Administrator sistem  | 

### Uji dan verifikasi migrasi
<a name="test-and-verify-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Connect ke cluster Amazon DocumentDB dengan menggunakan shell mongo. | Buka konsol Amazon DocumentDB, pilih cluster Anda di bawah “Clusters.” Di tab “Konektivitas dan Keamanan”, pilih “Connect to this cluster with the mongo shell.” | Administrator sistem  | 
| Verifikasi hasil migrasi Anda. | Jalankan perintah “gunakan” dengan nama database Anda dan kemudian jalankan perintah “tampilkan koleksi”. Jalankan perintah “db. .count ();” dengan nama database Anda. Jika hasilnya cocok dengan basis data sumber Anda, maka migrasi Anda berhasil. | Administrator sistem  | 

## Sumber daya terkait
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-resources"></a>

**Buat dan konfigurasikan VPC**
+ [Buat grup keamanan untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ [Buat jaringan ACL](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

** **

**Buat dan konfigurasikan cluster Amazon DocumentDB**
+ [Buat klaster Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-cluster)
+ [Instal shell mongo untuk Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-mongoshell)
+ [Connect ke klaster Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-connectcluster)

** **

**Membuat dan mengonfigurasi instans replikasi AWS DMS**
+ [Gunakan contoh replikasi publik dan pribadi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate)

** **

**Membuat dan menguji sumber dan target titik akhir di AWS DMS**
+ [Gunakan Amazon DocumentDB sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/target.docdb.html)
+ [Gunakan database SQL Server sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Gunakan titik akhir AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)

** **

**Migrasikan data**
+ [Migrasi ke Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-migration.html)

** **

**Sumber daya lainnya**
+ [Batasan dalam menggunakan SQL Server sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.Limitations) 
+ [Cara menggunakan Amazon DocumentDB untuk membangun dan mengelola aplikasi dalam skala](https://aws.amazon.com/blogs/database/how-to-use-amazon-documentdb-with-mongodb-compatibility-to-build-and-manage-applications-at-scale/)

# Memigrasi database ThoughtSpot Falcon lokal ke Amazon Redshift
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift"></a>

*Battulga Purevragchaa dan Antony Prasad Thevaraj, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-summary"></a>

Gudang data lokal memerlukan waktu administrasi dan sumber daya yang signifikan, terutama untuk kumpulan data yang besar. Biaya finansial untuk membangun, memelihara, dan menumbuhkan gudang ini juga sangat tinggi. Untuk membantu mengelola biaya, menjaga kompleksitas ekstrak, transformasi, dan pemuatan (ETL) tetap rendah, dan memberikan kinerja seiring pertumbuhan data Anda, Anda harus terus-menerus memilih data mana yang akan dimuat dan data mana yang akan diarsipkan.

Dengan memigrasikan [database ThoughtSpot Falcon](https://docs.thoughtspot.com/software/latest/data-caching) lokal ke Amazon Web Services (AWS) Cloud, Anda dapat mengakses data lake dan gudang data berbasis cloud yang meningkatkan kelincahan bisnis, keamanan, dan keandalan aplikasi, selain mengurangi biaya infrastruktur secara keseluruhan. Amazon Redshift membantu menurunkan biaya dan overhead operasional gudang data secara signifikan. Anda juga dapat menggunakan Amazon Redshift Spectrum untuk menganalisis sejumlah besar data dalam format aslinya tanpa memuat data.

Pola ini menjelaskan langkah-langkah dan proses untuk memigrasikan database ThoughtSpot Falcon dari pusat data lokal ke database Amazon Redshift di AWS Cloud.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database ThoughtSpot Falcon yang dihosting di pusat data lokal

**Versi produk**
+ ThoughtSpot versi 7.0.1 

## Arsitektur
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-architecture"></a>

![\[Memigrasi database ThoughtSpot Falcon dari pusat data lokal ke Amazon Redshift.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b0ca29f4-b269-4b57-b386-738693a6b334/images/2b483990-1f30-439c-ba13-dc0cb0650360.png)


 

Diagram menunjukkan alur kerja berikut:

1. Data dihosting di database relasional lokal.

1. AWS Schema Conversion Tool (AWS SCT) mengonversi bahasa definisi data (DDL) yang kompatibel dengan Amazon Redshift.

1. Setelah tabel dibuat, Anda dapat memigrasikan data menggunakan AWS Database Migration Service (AWS DMS).

1. Data dimuat ke Amazon Redshift.

1. Data disimpan di Amazon Simple Storage Service (Amazon S3) jika Anda menggunakan Redshift Spectrum atau sudah meng-host data di Amazon S3.

## Alat
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) — AWS Data Migration Service (AWS DMS) membantu Anda dengan cepat dan aman memigrasikan database ke AWS.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) - Amazon Redshift adalah layanan gudang data berskala petabyte yang cepat, terkelola sepenuhnya, yang membuatnya sederhana dan hemat biaya untuk menganalisis semua data Anda secara efisien menggunakan alat intelijen bisnis yang ada.
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — AWS Schema Conversion Tool (AWS SCT) mengonversi skema database Anda yang ada dari satu mesin database ke mesin database lainnya.

## Epik
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi konfigurasi Amazon Redshift yang sesuai. | Identifikasi konfigurasi klaster Amazon Redshift yang sesuai berdasarkan kebutuhan dan volume data Anda. Untuk informasi selengkapnya, lihat [klaster Amazon Redshift di dokumentasi](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) Amazon Redshift. | DBA | 
| Teliti Amazon Redshift untuk mengevaluasi apakah itu memenuhi kebutuhan Anda. | Gunakan [Amazon Redshift FAQs](https://aws.amazon.com/redshift/faqs/) untuk memahami dan mengevaluasi apakah Amazon Redshift memenuhi kebutuhan Anda. | DBA | 

### Siapkan cluster Amazon Redshift target
<a name="prepare-the-target-amazon-redshift-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster Amazon Redshift. | Masuk ke AWS Management Console, buka konsol Amazon Redshift, lalu buat klaster Amazon Redshift di cloud pribadi virtual (VPC). Untuk informasi selengkapnya, lihat [Membuat klaster di VPC di dokumentasi](https://docs.aws.amazon.com/redshift/latest/mgmt/getting-started-cluster-in-vpc.html) Amazon Redshift. | DBA | 
| Lakukan PoC untuk desain database Amazon Redshift Anda. | Ikuti praktik terbaik Amazon Redshift dengan melakukan proof of concept (PoC) untuk desain database Anda. Untuk informasi selengkapnya, lihat [Melakukan bukti konsep untuk Amazon Redshift di dokumentasi](https://docs.aws.amazon.com/redshift/latest/dg/proof-of-concept-playbook.html) Amazon Redshift. | DBA | 
| Buat pengguna database. | Buat pengguna di database Amazon Redshift Anda dan berikan peran yang sesuai untuk akses ke skema dan tabel.  Untuk informasi selengkapnya, lihat [Memberikan hak akses untuk pengguna atau grup pengguna](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) di dokumentasi Amazon Redshift. | DBA | 
| Terapkan pengaturan konfigurasi ke database target. | Terapkan pengaturan konfigurasi ke database Amazon Redshift sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya tentang mengaktifkan parameter database, sesi, dan tingkat server, lihat [referensi Konfigurasi](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) di dokumentasi Amazon Redshift. | DBA | 

### Buat objek di cluster Amazon Redshift
<a name="create-objects-in-the-amazon-redshift-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel secara manual dengan DDL di Amazon Redshift. | (Opsional) Jika Anda menggunakan AWS SCT, tabel dibuat secara otomatis. Namun, jika ada kegagalan saat mereplikasi DDLs, Anda harus membuat tabel secara manual | DBA | 
| Buat tabel eksternal untuk Redshift Spectrum. | Buat tabel eksternal dengan skema eksternal untuk Amazon Redshift Spectrum. Untuk membuat tabel eksternal, Anda harus menjadi pemilik skema eksternal atau [superuser database](https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html). Untuk informasi selengkapnya, lihat [Membuat tabel eksternal untuk Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html) Spectrum di dokumentasi Amazon Redshift. | DBA | 

### Migrasi data menggunakan AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan AWS DMS untuk memigrasikan data. | Setelah Anda membuat DDL tabel di database Amazon Redshift, migrasi data Anda ke Amazon Redshift menggunakan AWS DMS.Untuk langkah dan petunjuk terperinci, lihat [Menggunakan database Amazon Redshift sebagai target AWS DMS dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html). | DBA | 
| Gunakan perintah COPY untuk memuat data. | Gunakan `COPY` perintah Amazon Redshift untuk memuat data dari Amazon S3 ke Amazon Redshift.Untuk informasi selengkapnya, lihat [Menggunakan perintah COPY untuk memuat dari Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html) di dokumentasi Amazon Redshift. | DBA | 

### Validasi cluster Amazon Redshift
<a name="validate-the-amazon-redshift-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi sumber dan catatan target.  | Validasi jumlah tabel untuk sumber dan catatan target yang dimuat dari sistem sumber Anda. | DBA | 
| Menerapkan praktik terbaik Amazon Redshift untuk penyetelan kinerja. | Menerapkan praktik terbaik Amazon Redshift untuk desain tabel dan database. Untuk informasi lebih lanjut, lihat posting blog [10 teknik penyetelan kinerja teratas untuk Amazon Redshift](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-techniques-for-amazon-redshift/). | DBA | 
| Optimalkan kinerja kueri. | Amazon Redshift menggunakan kueri berbasis SQL untuk berinteraksi dengan data dan objek dalam sistem. Bahasa manipulasi data (DHTML) adalah bagian dari SQL yang dapat Anda gunakan untuk melihat, menambah, mengubah, dan menghapus data. DDL adalah bagian dari SQL yang Anda gunakan untuk menambah, mengubah, dan menghapus objek database seperti tabel dan tampilan.Untuk informasi selengkapnya, lihat [Menyetel kinerja kueri](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html) di dokumentasi Amazon Redshift. | DBA | 
| Menerapkan WLM.  | Anda dapat menggunakan manajemen beban kerja (WLM) untuk menentukan beberapa antrian kueri dan merutekan kueri ke antrian yang sesuai saat runtime.Untuk informasi selengkapnya, lihat [Menerapkan manajemen beban kerja](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) di dokumentasi Amazon Redshift. | DBA | 
| Bekerja dengan penskalaan konkurensi. | Dengan menggunakan fitur Penskalaan Konkurensi, Anda dapat mendukung pengguna bersamaan dan kueri bersamaan yang hampir tidak terbatas, dengan kinerja kueri yang cepat secara konsisten.Untuk informasi selengkapnya, lihat [Bekerja dengan penskalaan konkurensi](https://docs.aws.amazon.com/redshift/latest/dg/concurrency-scaling.html) di dokumentasi Amazon Redshift. | DBA | 
| Gunakan praktik terbaik Amazon Redshift untuk desain tabel. | Ketika Anda merencanakan database Anda, keputusan desain tabel penting tertentu dapat sangat mempengaruhi kinerja kueri secara keseluruhan.Untuk informasi selengkapnya tentang memilih opsi desain tabel yang paling tepat, lihat [praktik terbaik Amazon Redshift untuk mendesain tabel](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) di dokumentasi Amazon Redshift. | DBA | 
| Buat tampilan terwujud di Amazon Redshift. | Tampilan terwujud berisi kumpulan hasil yang dihitung sebelumnya berdasarkan kueri SQL di atas satu atau beberapa tabel dasar. Anda dapat mengeluarkan `SELECT` pernyataan untuk menanyakan tampilan terwujud dengan cara yang sama seperti Anda menanyakan tabel atau tampilan lain dalam database.Untuk informasi selengkapnya, lihat [Membuat tampilan terwujud di Amazon](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html) Redshift di dokumentasi Amazon Redshift. | DBA | 
| Tentukan gabungan antara tabel. | Untuk mencari lebih dari satu tabel pada saat yang sama ThoughtSpot, Anda harus menentukan gabungan antara tabel dengan menentukan kolom yang berisi data yang cocok di dua tabel. Kolom ini `foreign key` mewakili `primary key` dan bergabung.Anda dapat mendefinisikannya dengan menggunakan `ALTER TABLE` perintah di Amazon Redshift atau. ThoughtSpot Untuk informasi selengkapnya, lihat [ALTER TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html) di dokumentasi Amazon Redshift. | DBA | 

### Siapkan ThoughtSpot koneksi ke Amazon Redshift
<a name="set-up-thoughtspot-connection-to-amazon-redshift"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Tambahkan koneksi Amazon Redshift. | Tambahkan sambungan Amazon Redshift ke database Falcon lokal ThoughtSpot Anda.Untuk informasi selengkapnya, lihat [Menambahkan sambungan Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-add-connection.html) di dokumentasi. ThoughtSpot  | DBA | 
| Edit koneksi Amazon Redshift. | Anda dapat mengedit koneksi Amazon Redshift untuk menambahkan tabel dan kolom.Untuk informasi selengkapnya, lihat [Mengedit sambungan Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-edit-connection.html) di dokumentasi. ThoughtSpot  | DBA | 
| Memetakan ulang koneksi Amazon Redshift. | Ubah parameter koneksi dengan mengedit file pemetaan sumber .yaml yang dibuat saat Anda menambahkan koneksi Amazon Redshift. Misalnya, Anda dapat memetakan ulang tabel atau kolom yang ada ke tabel atau kolom yang berbeda dalam koneksi database yang ada. ThoughtSpot merekomendasikan agar Anda memeriksa dependensi sebelum dan sesudah Anda memetakan ulang tabel atau kolom dalam koneksi untuk memastikan bahwa mereka ditampilkan sesuai kebutuhan.Untuk informasi selengkapnya, lihat [Memetakan ulang koneksi Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-remap-connection.html) di ThoughtSpot dokumentasi. | DBA | 
| Hapus tabel dari koneksi Amazon Redshift.  | (Opsional) Jika Anda mencoba menghapus tabel dalam koneksi Amazon Redshift, ThoughtSpot memeriksa dependensi dan menampilkan daftar objek dependen. Anda dapat memilih objek yang terdaftar untuk menghapusnya atau menghapus ketergantungan. Anda kemudian dapat menghapus tabel.Untuk informasi selengkapnya, lihat [Menghapus tabel dari sambungan Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table.html) di dokumentasi. ThoughtSpot  | DBA | 
|  Hapus tabel dengan objek dependen dari koneksi Amazon Redshift. | (Opsional) Jika Anda mencoba menghapus tabel dengan objek dependen, operasi diblokir. Sebuah `Cannot delete` jendela muncul, dengan daftar tautan ke objek dependen. Ketika semua dependensi dihapus, Anda kemudian dapat menghapus tabelUntuk informasi selengkapnya, lihat [Menghapus tabel dengan objek dependen dari koneksi Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table-dependencies.html) dalam dokumentasi. ThoughtSpot  | DBA | 
| Hapus koneksi Amazon Redshift. | (Opsional) Karena koneksi dapat digunakan di beberapa sumber data atau visualisasi, Anda harus menghapus semua sumber dan tugas yang menggunakan koneksi tersebut sebelum Anda dapat menghapus koneksi Amazon Redshift.Untuk informasi selengkapnya, lihat [Menghapus sambungan Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-connection.html) di dokumentasi. ThoughtSpot  | DBA | 
|  Periksa referensi koneksi untuk Amazon Redshift. | Pastikan Anda memberikan informasi yang diperlukan untuk koneksi Amazon Redshift Anda dengan menggunakan [referensi Koneksi](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-connection-reference.html) dalam dokumentasi. ThoughtSpot  | DBA | 

## Informasi tambahan
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-additional"></a>
+ [Analisis berbasis AI pada skala apa pun dengan ThoughtSpot dan Amazon Redshift](https://aws.amazon.com/blogs/apn/ai-driven-analytics-at-any-scale-with-thoughtspot-and-amazon-redshift/)
+ [Harga Amazon Redshift](https://aws.amazon.com/redshift/pricing/)
+ [Memulai AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html) 
+ [Memulai dengan Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Menggunakan agen ekstraksi data](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Chick-fil-A meningkatkan kecepatan wawasan dengan ThoughtSpot dan AWS](https://www.thoughtspot.com/sites/default/files/pdf/ThoughtSpot-Chick-fil-A-AWS-Case-Study.pdf) 

# Migrasi dari Oracle Database ke Amazon RDS for PostgreSQL dengan menggunakan Oracle GoldenGate
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate"></a>

*Dhairya Jindani, Sindhusha Paturu, dan Rajeshkumar Sabankar, Amazon Web Services*

## Ringkasan
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-summary"></a>

Pola ini menunjukkan cara memigrasikan database Oracle ke Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL dengan menggunakan Oracle Cloud Infrastructure (OCI). GoldenGate

Dengan menggunakan Oracle GoldenGate, Anda dapat mereplikasi data antara database sumber Anda dan satu atau lebih database tujuan dengan downtime minimal.

**catatan**  
Database Oracle sumber dapat berupa lokal atau di instans Amazon Elastic Compute Cloud (Amazon EC2). Anda dapat menggunakan prosedur serupa saat menggunakan alat replikasi lokal.

## Prasyarat dan batasan
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Lisensi Oracle GoldenGate 
+ Driver Java Database Connectivity (JDBC) untuk terhubung ke database PostgreSQL
+ Skema dan tabel yang dibuat dengan [AWS Schema Conversion Tool (AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)) pada target Amazon RDS for PostgreSQL database

**Batasan**
+ Oracle GoldenGate dapat mereplikasi data tabel yang ada (pemuatan awal) dan perubahan yang sedang berlangsung (mengubah pengambilan data) saja

**Versi produk**
+ Oracle Database Enterprise Edition 10g atau versi yang lebih baru 
+ Oracle GoldenGate 12.2.0.1.1 untuk Oracle atau versi yang lebih baru
+ Oracle GoldenGate 12.2.0.1.1 untuk PostgreSQL atau versi yang lebih baru

## Arsitektur
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-architecture"></a>

Diagram berikut menunjukkan contoh alur kerja untuk memigrasikan database Oracle ke Amazon RDS for PostgreSQL dengan menggunakan Oracle: GoldenGate

![\[Alur kerja migrasi dari database Oracle lokal ke Amazon RDS for PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/384f0eaf-8582-474a-a7f4-ec1048a4feb3/images/de541887-0d5f-4a9a-b136-ce2599355cb8.png)


Diagram menunjukkan alur kerja berikut:

1. [Proses Oracle GoldenGate Extract](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-6419F3A9-71EC-4D14-9C41-3BAA1E3CA19C) berjalan melawan database sumber untuk mengekstrak data.

1. [Proses Oracle GoldenGate Replicat](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-5EF0326C-9058-4C40-8925-98A223388C95) mengirimkan data yang diekstraksi ke database Amazon RDS for PostgreSQL target.

## Alat
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-tools"></a>
+ [Oracle GoldenGate](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) membantu Anda merancang, menjalankan, mengatur, dan memantau replikasi data dan mengalirkan solusi pemrosesan data di Oracle Cloud Infrastructure.
+ [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.

## Epik
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-epics"></a>

### Unduh dan instal Oracle GoldenGate
<a name="download-and-install-oracle-goldengate"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh Oracle GoldenGate. | Unduh versi Oracle GoldenGate berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html)Untuk mengunduh perangkat lunak, lihat [ GoldenGate Unduhan Oracle](https://www.oracle.com/middleware/technologies/goldengate-downloads.html) di situs web Oracle. | DBA | 
| Instal Oracle GoldenGate untuk Oracle di server Oracle Database sumber. | Untuk instruksi, lihat [ GoldenGate dokumentasi Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 
| Instal Oracle GoldenGate untuk database PostgreSQL di instans Amazon. EC2  | Untuk instruksi, lihat [ GoldenGate dokumentasi Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 

### Konfigurasikan Oracle GoldenGate pada basis data sumber dan target
<a name="configure-oracle-goldengate-on-the-source-and-target-databases"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Oracle GoldenGate untuk Oracle Database pada database sumber. | Untuk instruksi, lihat [ GoldenGate dokumentasi Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm).Pastikan Anda mengonfigurasi yang berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 
| Siapkan Oracle GoldenGate untuk PostgreSQL pada database target. | Untuk petunjuk, lihat [Bagian VI Menggunakan Oracle GoldenGate untuk PostgreSQL](https://docs.oracle.com/en/middleware/goldengate/core/19.1/gghdb/using-oracle-goldengate-postgresql.html) di situs web Oracle.Pastikan Anda mengonfigurasi yang berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 

### Konfigurasikan pengambilan data
<a name="configure-the-data-capture"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan proses Ekstrak di database sumber. | Di sumber Oracle Database, buat file ekstrak untuk mengekstrak data.Untuk petunjuk, lihat [ADD EXTRACT](https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands006.htm#GWURF122) dalam dokumentasi Oracle.File ekstrak mencakup pembuatan file parameter ekstrak dan direktori file jejak. | DBA | 
| Siapkan pompa data untuk mentransfer file jejak dari sumber ke database target. | Buat file parameter EXTRACT dan direktori file jejak dengan mengikuti instruksi di [PARFILE](https://docs.oracle.com/database/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm#SUTIL859) di *Database Utilities* di situs web Oracle.Untuk informasi lebih lanjut, lihat [Apa itu Jejak?](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-88674F53-1E07-4C00-9868-598F82D7113C) di *Fusion Middleware Memahami Oracle GoldenGate di situs web Oracle*. | DBA | 
| Siapkan replikasi pada EC2 instance Amazon. | Buat file parameter replikasi dan direktori file jejak.Untuk informasi selengkapnya tentang membuat file parameter replikasi, lihat bagian [3.5 Memvalidasi file parameter](https://docs.oracle.com/en/middleware/goldengate/core/21.3/admin/using-oracle-goldengate-parameter-files.html#GUID-1E32A9AD-25DB-4243-93CD-E643E7116215) dalam dokumentasi Oracle Database.Untuk informasi selengkapnya tentang membuat direktori file trail, lihat [Membuat jejak](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/creating-trail.html) di dokumentasi Oracle Cloud.Pastikan Anda menambahkan entri tabel pos pemeriksaan di file GLOBALS pada target.Untuk informasi lebih lanjut, lihat [Apa itu Replika?](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GGCON-GUID-5EF0326C-9058-4C40-8925-98A223388C95) di *Fusion Middleware Memahami Oracle GoldenGate di situs web Oracle*. | DBA | 

### Konfigurasikan replikasi data
<a name="configure-the-data-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dalam database sumber, buat file parameter untuk mengekstrak data untuk beban awal. | Ikuti petunjuk dalam [Membuat file parameter di GGSCI dalam dokumentasi](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) Oracle Cloud.Pastikan bahwa Manajer berjalan pada target. | DBA | 
| Dalam database target, buat file parameter untuk mereplikasi data untuk pemuatan awal. | Ikuti petunjuk dalam [Membuat file parameter di GGSCI dalam dokumentasi](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) Oracle Cloud.Pastikan Anda menambahkan dan memulai proses Replicat. | DBA | 

### Potong ke database Amazon RDS for PostgreSQL
<a name="cut-over-to-the-amazon-rds-for-postgresql-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan proses Replicat dan pastikan database sumber dan target sinkron. | Bandingkan jumlah baris antara basis data sumber dan target untuk memastikan bahwa replikasi data berhasil. | DBA | 
| Konfigurasikan dukungan bahasa definisi data (DDL). | Jalankan skrip DDL untuk membuat pemicu, urutan, sinonim, dan kunci referensial pada PostgreSQL.Anda dapat menggunakan aplikasi klien SQL standar apa pun untuk terhubung ke database di cluster DB Anda. Misalnya, Anda dapat menggunakan [pgAdmin](https://www.pgadmin.org/) untuk terhubung ke instans DB Anda. | DBA | 

## Sumber daya terkait
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-resources"></a>
+ [Amazon RDS untuk *PostgreSQL* (Panduan Pengguna Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) RDS)
+ [ EC2 Dokumentasi Amazon](https://docs.aws.amazon.com/ec2/)
+ [Oracle GoldenGate mendukung metode pemrosesan dan database](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD112) (dokumentasi Oracle)

# Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms"></a>

*Saurav Mishra dan Eduardo Valentim, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-summary"></a>

Pola ini menjelaskan cara mempercepat pemuatan tabel yang dipartisi dari Oracle ke PostgreSQL dengan menggunakan AWS Database Migration Service (AWS DMS), yang tidak mendukung partisi asli. Basis data PostgreSQL target dapat diinstal di Amazon Elastic Compute Cloud (Amazon), atau dapat berupa Amazon Relational Database Service ( EC2Amazon RDS) untuk PostgreSQL atau instans DB Edisi Amazon Aurora PostgreSQL yang kompatibel. 

Mengunggah tabel yang dipartisi mencakup langkah-langkah berikut:

1. Buat tabel induk yang mirip dengan tabel partisi Oracle, tetapi jangan sertakan partisi apa pun.

1. Buat tabel anak yang akan mewarisi dari tabel induk yang Anda buat di langkah 1.

1. Buat fungsi prosedur dan pemicu untuk menangani sisipan di tabel induk.

Namun, karena pemicu diaktifkan untuk setiap sisipan, beban awal menggunakan AWS DMS bisa sangat lambat.

Untuk mempercepat pemuatan awal dari Oracle ke PostgreSQL 9.0, pola ini membuat tugas AWS DMS terpisah untuk setiap partisi dan memuat tabel turunan yang sesuai. Anda kemudian membuat pemicu selama cutover. 

PostgreSQL versi 10 mendukung partisi asli. Namun, Anda mungkin memutuskan untuk menggunakan partisi yang diwariskan dalam beberapa kasus. Untuk informasi selengkapnya, lihat bagian [Informasi tambahan](#migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional).

## Prasyarat dan batasan
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle sumber dengan tabel yang dipartisi
+ Database PostgreSQL di AWS

**Versi produk**
+ PostgreSQL 9.0

## Arsitektur
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Tabel yang dipartisi di Oracle

**Tumpukan teknologi target**
+ Tabel yang dipartisi di PostgreSQL (di Amazon, Amazon RDS untuk PostgreSQL, atau Aurora EC2 PostgreSQL)

**Arsitektur target**

![\[Data tabel yang dipartisi di Oracle pindah ke tugas AWS DMS untuk setiap partisi, lalu ke PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)


## Alat
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-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.

## Epik
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-epics"></a>

### Mengatur AWS DMS
<a name="set-up-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel di PostgreSQL. | Buat tabel induk dan anak yang sesuai di PostgreSQL dengan kondisi pemeriksaan yang diperlukan untuk partisi. | DBA | 
| Buat tugas AWS DMS untuk setiap partisi. | Sertakan kondisi filter partisi dalam tugas AWS DMS. Petakan partisi ke tabel anak PostgreSQL yang sesuai. | DBA | 
| Jalankan tugas AWS DMS menggunakan full load dan change data capture (CDC). | Pastikan bahwa `StopTaskCachedChangesApplied` parameter diatur ke `true` dan `StopTaskCachedChangesNotApplied` parameter diatur ke`false`. | DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan tugas replikasi. | Sebelum Anda menghentikan tugas, konfirmasikan bahwa sumber dan tujuan sinkron. | DBA | 
| Buat pemicu pada tabel induk. | Karena tabel induk akan menerima semua perintah insert dan update, buat pemicu yang akan merutekan perintah ini ke tabel turunan masing-masing berdasarkan kondisi partisi. | DBA | 

## Sumber daya terkait
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Partisi Tabel (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/10/ddl-partitioning.html)

## Informasi tambahan
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional"></a>

Meskipun PostgreSQL versi 10 mendukung partisi asli, Anda mungkin memutuskan untuk menggunakan partisi yang diwariskan untuk kasus penggunaan berikut:
+ Partisi memberlakukan aturan bahwa semua partisi harus memiliki kumpulan kolom yang sama dengan induknya, tetapi pewarisan tabel mendukung anak-anak yang memiliki kolom tambahan.
+ Warisan tabel mendukung beberapa pewarisan.
+ Partisi deklaratif hanya mendukung partisi daftar dan rentang. Dengan pewarisan tabel, Anda dapat membagi data sesuai keinginan. Namun, jika pengecualian kendala tidak dapat memangkas partisi secara efektif, kinerja kueri akan terganggu.
+ Beberapa operasi membutuhkan kunci yang lebih kuat saat menggunakan partisi deklaratif daripada saat menggunakan pewarisan tabel. Misalnya, menambahkan atau menghapus partisi ke atau dari tabel yang dipartisi memerlukan `ACCESS EXCLUSIVE` kunci pada tabel induk, sedangkan `SHARE UPDATE EXCLUSIVE` kunci cukup untuk pewarisan reguler.

Saat Anda menggunakan partisi pekerjaan terpisah, Anda juga dapat memuat ulang partisi jika ada masalah validasi AWS DMS. Untuk kontrol kinerja dan replikasi yang lebih baik, jalankan tugas pada instance replikasi terpisah.

# Bermigrasi dari Amazon RDS for Oracle ke Amazon RDS untuk MySQL
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql"></a>

*Jitender Kumar, Srini Ramaswamy, dan Neha Sharma, Amazon Web Services*

## Ringkasan
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-summary"></a>

Pola ini memberikan panduan untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instans Oracle DB ke instans Amazon RDS for MySQL DB di Amazon Web Services (AWS). Pola ini menggunakan AWS Database Migration Service (AWS DMS) dan AWS Schema Conversion Tool (AWS SCT). 

Pola ini memberikan praktik terbaik untuk menangani migrasi prosedur tersimpan. Ini juga mencakup dan perubahan kode untuk mendukung lapisan aplikasi. 

## Prasyarat dan batasan
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Database sumber Amazon RDS for Oracle.
+ Basis data target Amazon RDS for MySQL. Database sumber dan target harus berada dalam virtual private cloud (VPC) yang sama. Jika Anda menggunakan beberapa VPCs, atau Anda harus memiliki izin akses yang diperlukan.
+ Grup keamanan yang memungkinkan konektivitas antara basis data sumber dan target, AWS SCT, server aplikasi, dan AWS DMS.
+ Akun pengguna dengan hak istimewa yang diperlukan untuk menjalankan AWS SCT pada database sumber.
+ Pencatatan tambahan diaktifkan untuk menjalankan AWS DMS pada database sumber.

**Batasan**
+ Batas ukuran basis data Amazon RDS sumber dan target adalah 64 TB. Untuk informasi ukuran Amazon RDS, lihat [dokumentasi AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).
+ Oracle tidak peka huruf besar/kecil untuk objek database, tetapi MySQL tidak. AWS SCT dapat menangani masalah ini saat membuat objek. Namun, beberapa pekerjaan manual diperlukan untuk mendukung ketidakpekaan kasus penuh.
+ Migrasi ini tidak menggunakan ekstensi MySQL untuk mengaktifkan fungsi asli Oracle. AWS SCT menangani sebagian besar konversi, tetapi beberapa pekerjaan diperlukan untuk mengubah kode secara manual.
+ Perubahan driver Java Database Connectivity (JDBC) diperlukan dalam aplikasi.

**Versi produk**
+ Amazon RDS for Oracle 12.2.0.1 dan yang lebih baru. Untuk RDS yang saat ini didukung untuk versi Oracle, lihat dokumentasi [AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.database-versions.html).
+ Amazon RDS for MySQL 8.0.15 dan yang lebih baru. [Untuk RDS yang saat ini didukung untuk versi MySQL, lihat dokumentasi AWS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html)
+ AWS DMS versi 3.3.0 dan yang lebih baru. Lihat dokumentasi AWS untuk informasi selengkapnya tentang [titik akhir sumber dan titik akhir](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html) [target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) yang didukung AWS DMS.
+ AWS SCT versi 1.0.628 dan yang lebih baru.  Lihat [sumber AWS SCT dan matriks dukungan titik akhir target dalam dokumentasi](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) AWS.

## Arsitektur
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-architecture"></a>

**Tumpukan teknologi sumber**
+ Amazon RDS for Oracle. Untuk informasi selengkapnya, lihat [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). 

**Tumpukan teknologi target**
+ Amazon RDS for MySQL. Untuk informasi selengkapnya, lihat [Menggunakan database yang kompatibel dengan MySQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html).

**Arsitektur migrasi**

Dalam diagram berikut, AWS SCT menyalin dan mengonversi objek skema dari database sumber Amazon RDS for Oracle dan mengirimkan objek ke database target Amazon RDS for MySQL. AWS DMS mereplikasi data dari database sumber dan mengirimkannya ke Amazon RDS for MySQL instance.

![\[AWS SCT, AWS DMS, dan Amazon RDS diterapkan di subnet pribadi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e1efa7c2-47c1-4677-80bc-6b19250fc0d6/images/b54a8442-9ab9-4074-b8f6-a08f87fa2f52.jpeg)


## Alat
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-tools"></a>
+ [AWS Data Migration Service](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 dan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) [untuk MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html).
+ [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/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.

## Epik
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi dan mesin basis data sumber dan target. |  | DBA | 
|  Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, SysAdmin | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat (kapasitas, fitur penyimpanan, fitur jaringan). |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin  | 
| Pilih strategi migrasi aplikasi. | Pertimbangkan apakah Anda menginginkan waktu henti penuh atau sebagian waktu henti untuk aktivitas cutover. | DBA, SysAdmin, Pemilik aplikasi | 

### Konfigurasikan infrastruktur
<a name="configure-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat VPC dan subnet. |  | SysAdmin | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACLs). |  | SysAdmin | 
| Konfigurasikan dan mulai Amazon RDS for Oracle instance. |  | DBA, SysAdmin | 
| Konfigurasikan dan mulai Amazon RDS for MySQL instance.  |  | DBA, SysAdmin | 
| Siapkan kasus uji untuk validasi konversi kode. | Ini akan membantu dalam pengujian unit untuk kode yang dikonversi. | DBA, Pengembang | 
| Konfigurasikan instans AWS DMS. |  |  | 
| Konfigurasikan titik akhir sumber dan target di AWS DMS. |  |  | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat skrip basis data target menggunakan AWS SCT. | Periksa keakuratan kode yang dikonversi oleh AWS SCT. Beberapa pekerjaan manual akan diperlukan. | DBA, Pengembang | 
| Di AWS SCT, pilih pengaturan “Case Insensitive”. | Di AWS SCT, pilih Pengaturan Proyek, Sensitivitas Kasus Target, Case Insensitive. | DBA, Pengembang | 
| Di AWS SCT, pilih untuk tidak menggunakan fungsi asli Oracle. | Di Pengaturan Proyek, periksa fungsi TO\$1 CHAR/TO\$1NUMBER/TO \$1DATE. | DBA, Pengembang | 
| Buat perubahan untuk kode “sql%notfound”. | Anda mungkin harus mengonversi kode secara manual. |  | 
| Kueri pada tabel dan objek dalam prosedur tersimpan (gunakan kueri huruf kecil). |  | DBA, Pengembang | 
| Buat skrip utama setelah semua perubahan dibuat, dan kemudian gunakan skrip utama pada database target. |  | DBA, Pengembang | 
| Prosedur tersimpan unit-test dan panggilan aplikasi menggunakan data sampel.  |  |  | 
| Bersihkan data yang dibuat selama pengujian unit. |  | DBA, Pengembang | 
| Jatuhkan kendala kunci asing pada database target. | Langkah ini diperlukan untuk memuat data awal. Jika Anda tidak ingin menghapus batasan kunci asing, Anda harus membuat tugas migrasi untuk data khusus untuk tabel primer dan sekunder. | DBA, Pengembang | 
| Jatuhkan kunci utama dan kunci unik pada database target. | Langkah ini menghasilkan kinerja yang lebih baik untuk beban awal. | DBA, Pengembang | 
| Aktifkan logging tambahan pada database sumber.  |  | DBA | 
| Buat tugas migrasi untuk pemuatan awal di AWS DMS, lalu jalankan. | Pilih opsi untuk memigrasi data yang ada. | DBA | 
| Tambahkan kunci utama dan kunci asing ke database target. | Kendala perlu ditambahkan setelah beban awal. | DBA, Pengembang | 
| Buat tugas migrasi untuk replikasi yang sedang berlangsung. | Replikasi yang sedang berlangsung membuat database target disinkronkan dengan database sumber. | DBA | 

### Migrasikan aplikasi
<a name="migrate-applications"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ganti fungsi asli Oracle dengan fungsi asli MySQL. |  | Pemilik aplikasi | 
| Pastikan bahwa hanya nama huruf kecil yang digunakan untuk objek database dalam query SQL. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Potong ke database target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan server aplikasi. |  | Pemilik aplikasi | 
| Validasi bahwa basis data sumber dan target sinkron. |  | DBA, Pemilik aplikasi | 
| Hentikan instans Amazon RDS for Oracle DB. |  | DBA | 
| Hentikan tugas migrasi. | Ini akan berhenti secara otomatis setelah Anda menyelesaikan langkah sebelumnya. | DBA | 
| Ubah koneksi JDBC dari Oracle ke MySQL. |  | Pemilik aplikasi, DBA | 
| Mulai aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, SysAdmin | 
| Kumpulkan metrik tentang waktu untuk bermigrasi, persentase tugas manual versus alat, penghematan biaya, dll. |  | DBA, SysAdmin | 
| Hentikan dan hapus instans AWS DMS. |  | DBA | 
| Hapus titik akhir sumber dan target. |  | DBA | 
| Hapus tugas migrasi. |  | DBA | 
| Ambil snapshot dari instans Amazon RDS for Oracle DB. |  | DBA | 
| Hapus instans Amazon RDS for Oracle DB. |  | DBA | 
| Matikan dan hapus sumber daya AWS sementara lainnya yang Anda gunakan. |  | DBA, SysAdmin | 
| Tutup proyek dan berikan umpan balik apa pun. |  | DBA | 

## Sumber daya terkait
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Bermigrasi dari IBM Db2 di Amazon EC2 ke Aurora PostgreSQL yang kompatibel dengan menggunakan AWS DMS dan AWS SCT
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct"></a>

*Sirsendu Halder dan Abhimanyu Chhabra, Amazon Web Services*

## Ringkasan
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database IBM Db2 pada instans Amazon Elastic Compute Cloud (Amazon) ke instans DB Edisi EC2 Amazon Aurora PostgreSQL yang kompatibel. Pola ini menggunakan AWS Database Migration Service (AWS DMS) dan AWS Schema Conversion Tool (AWS SCT) untuk migrasi data dan konversi skema.

Pola ini menargetkan strategi migrasi online dengan sedikit atau tanpa downtime untuk database IBM Db2 multi-terabyte yang memiliki jumlah transaksi yang tinggi. Kami menyarankan Anda mengonversi kolom dalam kunci utama (PKs) dan kunci asing (FKs) dengan tipe data `NUMERIC` ke `INT` atau `BIGINT` di PostgreSQL untuk kinerja yang lebih baik. 

## Prasyarat dan batasan
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Database sumber IBM Db2 pada sebuah instance EC2 

**Versi produk**
+ DB2/LINUXX8664 versi 11.1.4.4 dan yang lebih baru

## Arsitektur
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber******
+ Database Db2 pada sebuah instance EC2  

**Tumpukan teknologi target**
+ Aurora PostgreSQL versi 10.18 atau instans DB yang kompatibel dengan Aurora

**Arsitektur migrasi database******

![\[Menggunakan AWS DMS untuk bermigrasi dari IMB Db2 di Amazon EC2 ke Aurora PostgreSQL yang kompatibel.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5e737fab-3e04-4887-9fb0-d1c88503b57d/images/789fabcc-8052-40d5-a746-986d799576e9.png)


## Alat
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan database ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal. Database sumber tetap beroperasi penuh selama migrasi, meminimalkan waktu henti ke aplikasi yang bergantung pada database. Anda dapat menggunakan AWS DMS untuk memigrasikan data Anda ke dan dari basis data komersial dan sumber terbuka yang paling banyak digunakan. AWS DMS mendukung migrasi heterogen antara platform database yang berbeda, seperti IBM Db2 ke Aurora PostgreSQL yang kompatibel dengan versi 10.18 atau lebih tinggi. Untuk detailnya, lihat [Sumber untuk Migrasi Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) dan [Target untuk Migrasi Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) dalam dokumentasi AWS DMS.
+ [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 database sumber dan sebagian besar objek kode database, termasuk tampilan, prosedur tersimpan, dan fungsi, ke format yang kompatibel dengan database target. Objek apa pun yang tidak dikonversi secara otomatis ditandai dengan jelas sehingga dapat dikonversi secara manual untuk menyelesaikan migrasi. AWS SCT juga dapat memindai kode sumber aplikasi untuk pernyataan SQL yang disematkan dan mengonversinya. 

## Epik
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-epics"></a>

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance DB yang kompatibel dengan Aurora PostgreSQL. | Untuk membuat instans DB, ikuti petunjuk dalam [dokumentasi AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). Untuk jenis mesin, pilih **Amazon Aurora**. Untuk edisi, pilih **Amazon Aurora PostgreSQL** Compatible Edition.Aurora PostgreSQL yang kompatibel dengan versi 10.18 atau instans DB yang lebih baru harus berada di cloud pribadi virtual (VPC) yang sama dengan sumber database IBM Db2. | Amazon RDS | 

### Konversikan skema basis data Anda
<a name="convert-your-database-schema"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dan verifikasi AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Administrator AWS, DBA, insinyur migrasi | 
| Mulai AWS SCT dan buat proyek. | Untuk memulai alat AWS SCT dan membuat proyek baru untuk menjalankan laporan penilaian migrasi database, ikuti petunjuk dalam dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Launching). | Insinyur migrasi | 
| Tambahkan server database dan buat aturan pemetaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Insinyur migrasi | 
| Buat laporan penilaian migrasi database.  | Buat laporan penilaian migrasi database dengan mengikuti langkah-langkah dalam [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport). | Insinyur migrasi | 
| Lihat laporan penilaian. | Gunakan tab **Ringkasan** laporan penilaian migrasi database untuk melihat laporan dan menganalisis data. Analisis ini akan membantu Anda menentukan kompleksitas migrasi. Untuk informasi selengkapnya, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html). | Insinyur migrasi | 
| Konversi skema. | Untuk mengonversi skema basis data sumber Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Untuk informasi selengkapnya, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Converting). | Insinyur migrasi | 
| Terapkan skema database yang dikonversi ke instans DB target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Untuk informasi selengkapnya, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.ApplyingConversion). | Insinyur migrasi | 

### Migrasi data Anda
<a name="migrate-your-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan grup parameter VPC dan DB.  | Siapkan grup parameter VPC dan DB, dan konfigurasikan aturan dan parameter masuk yang diperlukan untuk migrasi. Untuk petunjuk, lihat [dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Prerequisites.html).Untuk grup keamanan VPC, pilih EC2 instance untuk Db2 dan instans DB yang kompatibel dengan Aurora PostgreSQL. Instance replikasi ini harus dalam VPC yang sama dengan instans DB sumber dan target. | Insinyur migrasi | 
| Siapkan instans DB sumber dan target. | Siapkan instans DB sumber dan target untuk migrasi. Dalam lingkungan produksi, database sumber sudah ada.Untuk database sumber, nama server harus menjadi Public Domain Name System (DNS) dari EC2 contoh di mana Db2 berjalan. Untuk nama pengguna, Anda dapat menggunakan `db2inst1` diikuti oleh port, yang akan menjadi 5000 untuk IBM Db2.  | Insinyur migrasi | 
| Buat EC2 klien dan titik akhir Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Insinyur migrasi | 
| Buat contoh replikasi. | Buat instance replikasi dengan menggunakan konsol AWS DMS dan tentukan titik akhir sumber dan target. Instance replikasi melakukan migrasi data antara titik akhir. Untuk informasi selengkapnya, lihat [dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html).  | Insinyur migrasi | 
| Buat tugas AWS DMS untuk memigrasikan data. | [Buat tugas untuk memuat tabel IBM Db2 sumber ke instans PostgreSQL DB target dengan mengikuti langkah-langkah dalam dokumentasi AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Insinyur migrasi | 

## Sumber daya terkait
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-resources"></a>

**Referensi**
+ [Dokumentasi Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)
+ [Dokumentasi pembungkus data asing PostgreSQL (FDW)](https://www.postgresql.org/docs/10/postgres-fdw.html) 
+ [PostgreSQL IMPOR dokumentasi SKEMA ASING](https://www.postgresql.org/docs/10/sql-importforeignschema.html) 
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/index.html)  
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/) (panduan)
+ [Pengantar Amazon EC2 - Elastic Cloud Server & Hosting dengan AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (video)

# Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk menggunakan Amazon RDS for PostGresQL dan AWS DMS SharePlex
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms"></a>

*Kumar Babu P G, Amazon Web Services*

## Ringkasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-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 PostgreSQL atau Amazon Aurora PostgreSQL. AWS Database Migration Service (AWS DMS) tidak mendukung Oracle 8i atau 9i sebagai sumber, jadi Quest SharePlex mereplikasi data dari database 8i atau 9i lokal ke database Oracle perantara (Oracle 10g atau 11g), yang kompatibel dengan AWS DMS.

Dari instans Oracle perantara, skema dan data dimigrasikan ke database PostgreSQL di AWS dengan menggunakan AWS Schema Conversion Tool (AWS SCT) dan AWS DMS. Metode ini membantu mencapai streaming data secara terus menerus dari database sumber Oracle ke instans PostgreSQL DB target dengan lag replikasi minimum. Dalam implementasi ini, downtime terbatas pada lamanya waktu yang diperlukan untuk membuat atau memvalidasi semua kunci asing, pemicu, dan urutan pada database PostgreSQL target.

Migrasi menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2) dengan Oracle 10g atau 11g diinstal untuk meng-host perubahan dari database Oracle sumber. AWS DMS menggunakan instans Oracle perantara ini sebagai sumber untuk mengalirkan data ke Amazon RDS for PostgreSQL atau Aurora PostgreSQL. Replikasi data dapat dijeda dan dilanjutkan dari database Oracle lokal ke instance Oracle perantara. Ini juga dapat dijeda dan dilanjutkan dari instance Oracle perantara ke database PostgreSQL target sehingga Anda dapat memvalidasi data dengan menggunakan validasi data AWS DMS atau alat validasi data kustom.

## Prasyarat dan batasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sumber database Oracle 8i atau 9i di pusat data lokal 
+ AWS Direct Connect dikonfigurasi antara pusat data lokal dan AWS 
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT diinstal baik pada mesin lokal atau pada instance di EC2 mana AWS SCT diinstal
+ Keakraban dengan [menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Keakraban dengan [menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ Keakraban dengan replikasi SharePlex data Quest

 

**Batasan**
+ Batas ukuran database adalah 64 TB
+ Database Oracle lokal harus Enterprise Edition

 

**Versi produk**
+ Oracle 8i atau 9i untuk database sumber
+ Oracle 10g atau 11g untuk database perantara 
+ PostgreSQL 9.6 atau yang lebih baru

## Arsitektur
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle 8i atau 9i 
+ Pencarian SharePlex 

 

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

** **

**Arsitektur sumber dan target**

![\[Architecture diagram showing migration from on-premises Oracle database to AWS cloud using various services.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b6c30668-fc2e-4293-a59a-e01fd151f4bb/images/25082670-0bf3-4b20-8c80-99c6633b046f.png)


## Alat
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-tools"></a>
+ **AWS DMS** — [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (AWS DMS) membantu Anda memigrasikan database 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. 
+ **AWS SCT** — [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Tool (AWS SCT) membuat migrasi database heterogen dapat diprediksi dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar objek kode basis data, termasuk tampilan, prosedur tersimpan, dan fungsi, ke format yang kompatibel dengan basis data target. Objek yang tidak dapat dikonversi secara otomatis ditandai dengan jelas sehingga dapat dikonversi secara manual untuk menyelesaikan migrasi. AWS SCT juga dapat memindai kode sumber aplikasi Anda untuk pernyataan SQL yang disematkan dan mengonversinya sebagai bagian dari proyek konversi skema database. Selama proses ini, AWS SCT melakukan pengoptimalan kode cloud-native dengan mengonversi fungsi Oracle dan SQL Server lama menjadi setara AWS mereka, untuk membantu Anda memodernisasi aplikasi saat memigrasikan database Anda. Saat konversi skema selesai, AWS SCT dapat membantu memigrasikan data dari berbagai gudang data ke Amazon Redshift dengan menggunakan agen migrasi data bawaan.
+ **Quest SharePlex** — [Quest SharePlex](https://www.quest.com/register/120420/?gclid=Cj0KCQiA6IHwBRCJARIsALNjViVSt9fHqAsf9XbWkoCwKKyQqollR_5kSxNhBagh9s3spQT4IQCaVy0aAmCnEALw_wcB) adalah alat replikasi Oracle-to-Oracle data untuk memindahkan data dengan downtime minimal dan tidak ada kehilangan data.

## Epik
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-epics"></a>

### Buat EC2 instance dan instal Oracle
<a name="create-the-ec2-instance-and-install-oracle"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan jaringan untuk Amazon EC2. | Buat virtual private cloud (VPC), subnet, gateway internet, tabel rute, dan grup keamanan. | AWS SysAdmin | 
| Buat EC2 instance baru. | Pilih Amazon Machine Image (AMI) untuk EC2 instance. Pilih ukuran instans dan konfigurasikan detail instans: jumlah instance (1), VPC dan subnet dari langkah sebelumnya, tetapkan IP publik secara otomatis, dan opsi lainnya. Tambahkan penyimpanan, konfigurasikan grup keamanan, dan luncurkan instance. Saat diminta, buat dan simpan key pair untuk langkah selanjutnya. | AWS SysAdmin | 
| Instal Oracle pada EC2 instance. | Dapatkan lisensi dan binari Oracle yang diperlukan, dan instal Oracle 10g atau 11g pada instans. EC2  | DBA | 

### Siapkan SharePlex pada sebuah EC2 instance dan konfigurasikan replikasi data
<a name="set-up-shareplex-on-an-ec2-instance-and-configure-data-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengatur SharePlex. | Buat EC2 instance Amazon dan instal SharePlex binari yang kompatibel dengan Oracle 8i atau 9i. | AWS SysAdmin, DBA | 
| Konfigurasikan replikasi data. | Ikuti praktik SharePlex terbaik untuk mengonfigurasi replikasi data dari database Oracle 8i/9i lokal ke instans Oracle 10g/11g. | DBA | 

### Mengkonversi skema database Oracle ke PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS SCT. | Buat laporan baru, lalu sambungkan ke Oracle sebagai sumber dan PostgreSQL sebagai target. Dalam pengaturan proyek, buka tab SQL Scripting dan ubah skrip SQL target ke Multiple Files. | DBA | 
| Mengkonversi skema database Oracle. | Di tab Action, pilih Generate Report, Convert Schema, dan kemudian Save as SQL. | DBA | 
| Ubah skrip SQL yang dihasilkan oleh AWS SCT. |  | DBA | 

### Membuat dan mengonfigurasi instans Amazon RDS DB
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS DB. | Di konsol Amazon RDS, buat instance PostgreSQL DB baru. | AWS SysAdmin, DBA | 
| Konfigurasikan instans DB. | Tentukan versi mesin DB, kelas instans DB, penyebaran multi-AZ, jenis penyimpanan, dan penyimpanan yang dialokasikan. Masukkan pengidentifikasi instans DB, nama pengguna master, dan kata sandi utama. | AWS SysAdmin, DBA | 
| Konfigurasikan jaringan dan keamanan. | Tentukan VPC, grup subnet, aksesibilitas publik, preferensi Availability Zone, dan grup keamanan. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi basis data. | Tentukan nama database, port, grup parameter, enkripsi, dan kunci master. | AWS SysAdmin, DBA | 
| Konfigurasikan cadangan. | Tentukan periode retensi cadangan, jendela cadangan, waktu mulai, durasi, dan apakah akan menyalin tag ke snapshot. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemantauan. | Mengaktifkan atau menonaktifkan pemantauan dan wawasan kinerja yang disempurnakan. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemeliharaan. | Tentukan peningkatan versi minor otomatis, jendela pemeliharaan, dan hari mulai, waktu, dan durasi. | AWS SysAdmin, DBA | 
| Jalankan skrip pra-migrasi dari AWS SCT. | Pada instance Amazon RDS, jalankan skrip ini: create\$1database.sql, create\$1sequence.sql, create\$1table.sql, create\$1view.sql, dan create\$1function.sql. | AWS SysAdmin, DBA | 

### Migrasi data dengan menggunakan AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance replikasi di AWS DMS. | Lengkapi bidang untuk nama, kelas instance, VPC (sama seperti untuk EC2 instance), Multi-AZ, dan aksesibilitas publik. Di bagian konfigurasi lanjutan, tentukan penyimpanan yang dialokasikan, grup subnet, Availability Zone, grup keamanan VPC, dan kunci root AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Buat titik akhir basis data sumber. | Tentukan nama titik akhir, jenis, mesin sumber (Oracle), nama server (nama DNS EC2 pribadi Amazon), port, mode SSL, nama pengguna, kata sandi, SID, VPC (tentukan VPC yang memiliki instance replikasi), dan contoh replikasi. Untuk menguji koneksi, pilih Run Test, lalu buat endpoint. Anda juga dapat mengonfigurasi pengaturan lanjutan berikut: maxFileSize dan numberDataType Skala. | AWS SysAdmin, DBA | 
| Buat tugas replikasi AWS DMS. | Tentukan nama tugas, contoh replikasi, titik akhir sumber dan target, dan contoh replikasi. Untuk jenis migrasi, pilih “Migrasi data yang ada dan replikasi perubahan yang sedang berlangsung.” Kosongkan kotak centang “Mulai tugas saat membuat”. | AWS SysAdmin, DBA | 
| Konfigurasikan pengaturan tugas replikasi AWS DMS. | Untuk mode persiapan tabel target, pilih “Jangan lakukan apa-apa.” Hentikan tugas setelah beban penuh selesai untuk membuat kunci utama. Tentukan mode LOB terbatas atau penuh, dan aktifkan tabel kontrol. Secara opsional, Anda dapat mengonfigurasi pengaturan CommitRate lanjutan. | DBA | 
| Konfigurasikan pemetaan tabel. | Di bagian pemetaan tabel, buat aturan Sertakan untuk semua tabel di semua skema yang disertakan dalam migrasi, lalu buat aturan Kecualikan. Tambahkan tiga aturan transformasi untuk mengonversi skema, tabel, dan nama kolom menjadi huruf kecil, dan tambahkan aturan lain yang diperlukan untuk migrasi spesifik ini. | DBA | 
| Mulai tugas. | Mulai tugas replikasi. Pastikan beban penuh berjalan. Jalankan ALTER SYSTEM SWITCH LOGFILE pada database Oracle utama untuk memulai tugas. | DBA | 
| Jalankan skrip mid-migration dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan skrip ini: create\$1index.sql dan create\$1constraint.sql. | DBA | 
| Mulai ulang tugas untuk melanjutkan perubahan pengambilan data (CDC). | Di instans Amazon RDS for PostgreSQL DB, jalankan VACUUM, dan mulai ulang tugas AWS DMS untuk menerapkan perubahan CDC yang di-cache. | DBA | 

### Potong ke database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa log AWS DMS dan tabel metadata. | Validasi kesalahan apa pun dan perbaiki jika diperlukan. | DBA | 
| Hentikan semua dependensi Oracle. | Matikan pendengar pada database Oracle dan jalankan ALTER SYSTEM SWITCH LOGFILE. Hentikan tugas AWS DMS jika tidak menunjukkan aktivitas. | DBA | 
| Jalankan skrip pasca-migrasi dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan skrip ini: create\$1foreign\$1key\$1constraint.sql dan create\$1triggers.sql. | DBA | 
| Selesaikan langkah-langkah Amazon RDS for PostgreSQL tambahan. | Tingkatkan urutan untuk mencocokkan Oracle jika diperlukan, jalankan VACUUM dan ANALYZE, dan ambil snapshot untuk kepatuhan. | DBA | 
| Buka koneksi ke Amazon RDS for PostgreSQL. | Hapus grup keamanan AWS DMS dari Amazon RDS for PostgreSQL, tambahkan grup keamanan produksi, dan arahkan aplikasi Anda ke database baru. | DBA | 
| Bersihkan sumber daya AWS DMS. | Hapus titik akhir, tugas replikasi, instance replikasi, dan instance. EC2  | SysAdmin, DBA | 

## Sumber daya terkait
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-resources"></a>
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Harga Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [ SharePlex Dokumentasi pencarian](https://support.quest.com/shareplex/9.0.2/technical-documents)

# Bermigrasi dari Oracle 8i atau 9i ke Amazon RDS untuk PostgreSQL menggunakan tampilan terwujud dan AWS DMS
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms"></a>

*Kumar Babu P G dan Pragnesh Patel, Amazon Web Services*

## Ringkasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-summary"></a>

Pola ini menjelaskan cara memigrasikan database Oracle 8i atau 9i warisan lokal ke Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL atau Amazon Aurora PostgreSQL Compatible Edition. 

AWS Database Migration Service (AWS DMS) tidak mendukung Oracle 8i atau 9i sebagai sumber, jadi pola ini menggunakan instance database Oracle perantara yang kompatibel dengan AWS DMS, seperti Oracle 10g atau 11g. Ini juga menggunakan fitur tampilan terwujud untuk memigrasikan data dari sumber Oracle 8i/9i instance ke instance Oracle 10g/11g menengah.

AWS Schema Conversion Tool (AWS SCT) mengonversi skema database, dan AWS DMS memigrasikan data ke database PostgreSQL target. 

Pola ini membantu pengguna yang ingin bermigrasi dari database Oracle lama dengan downtime database minimum. Dalam implementasi ini, waktu henti akan dibatasi pada lamanya waktu yang diperlukan untuk membuat atau memvalidasi semua kunci asing, pemicu, dan urutan pada database target. 

Pola ini menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2) dengan database Oracle 10g/11g yang diinstal untuk membantu AWS DMS mengalirkan data. Anda dapat menghentikan sementara replikasi streaming dari database Oracle lokal ke instans Oracle perantara untuk mengaktifkan AWS DMS mengejar validasi data atau menggunakan alat validasi data lain. Instans PostgreSQL DB dan database Oracle perantara akan memiliki data yang sama ketika AWS DMS telah selesai memigrasikan perubahan saat ini.

## Prasyarat dan batasan
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sumber database Oracle 8i atau 9i di pusat data lokal 
+ AWS Direct Connect dikonfigurasi antara pusat data lokal dan AWS
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT diinstal baik pada mesin lokal atau pada instance di EC2 mana AWS SCT diinstal
+ Keakraban dengan [menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Keakraban dengan [menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Batasan**
+ Batas ukuran database adalah 64 TB

**Versi produk**
+ Oracle 8i atau 9i untuk database sumber
+ Oracle 10g atau 11g untuk database perantara
+ PostgreSQL 10.17 atau yang lebih baru

## Arsitektur
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle 8i atau 9i 

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

**Arsitektur target**

![\[Arsitektur untuk bermigrasi dari database Oracle lama ke Amazon RDS atau Aurora\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8add9b21-1b62-46a2-bb8e-0350f36a924a/images/f34f9b0f-f1da-4c27-a385-71b12d16c375.png)


## Alat
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) membantu memigrasikan database 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. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) secara otomatis mengonversi skema basis data sumber dan sebagian besar objek kode database, termasuk tampilan, prosedur tersimpan, dan fungsi, ke format yang kompatibel dengan basis data target. Objek yang tidak dapat dikonversi secara otomatis ditandai dengan jelas sehingga dapat dikonversi secara manual untuk menyelesaikan migrasi. AWS SCT juga dapat memindai kode sumber aplikasi Anda untuk pernyataan SQL yang disematkan dan mengonversinya sebagai bagian dari proyek konversi skema database. Selama proses ini, AWS SCT melakukan pengoptimalan kode cloud-native dengan mengonversi fungsi Oracle dan SQL Server lama menjadi setara AWS mereka, untuk membantu Anda memodernisasi aplikasi saat memigrasikan database Anda. Saat konversi skema selesai, AWS SCT dapat membantu memigrasikan data dari berbagai gudang data ke Amazon Redshift dengan menggunakan agen migrasi data bawaan.  

## Praktik terbaik
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-best-practices"></a>

Untuk praktik terbaik untuk menyegarkan tampilan terwujud, lihat dokumentasi Oracle berikut:
+ [Menyegarkan tampilan terwujud](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG-GUID-64068234-BDB0-4C12-AE70-75571046A586)
+ [Penyegaran cepat untuk tampilan terwujud](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8361)

## Epik
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-epics"></a>

### Instal Oracle pada sebuah EC2 instance dan buat tampilan terwujud
<a name="install-oracle-on-an-ec2-instance-and-create-materialized-views"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan jaringan untuk EC2 contoh. | Buat virtual private cloud (VPC), subnet, gateway internet, tabel rute, dan grup keamanan. | AWS SysAdmin | 
| Buat EC2 instance. | Pilih Amazon Machine Image (AMI) untuk EC2 instance. Pilih ukuran instans dan konfigurasikan detail instans: jumlah instance (1), VPC dan subnet dari langkah sebelumnya, tetapkan IP publik secara otomatis, dan opsi lainnya. Tambahkan penyimpanan, konfigurasikan grup keamanan, dan luncurkan instance. Saat diminta, buat dan simpan key pair untuk langkah selanjutnya. | AWS SysAdmin | 
| Instal Oracle pada EC2 instance. | Dapatkan lisensi dan binari Oracle yang diperlukan, dan instal Oracle 10g atau 11g pada instans. EC2  | DBA | 
| Konfigurasikan jaringan Oracle. | Memodifikasi atau menambahkan entri `listener.ora` untuk terhubung ke sumber lokal Oracle 8i/9i database, dan kemudian membuat link database. | DBA | 
| Buat tampilan yang terwujud. | Identifikasi objek database untuk direplikasi dalam database sumber Oracle 8i/9i, dan kemudian membuat tampilan terwujud untuk semua objek dengan menggunakan link database. | DBA | 
| Terapkan skrip untuk menyegarkan tampilan terwujud pada interval yang diperlukan. | Kembangkan dan terapkan skrip untuk menyegarkan tampilan terwujud pada interval yang diperlukan pada instans Amazon EC2 Oracle 10g/11g. Gunakan opsi penyegaran tambahan untuk menyegarkan tampilan yang terwujud. | DBA | 

### Mengkonversi skema database Oracle ke PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS SCT. | Buat laporan baru, lalu sambungkan ke Oracle sebagai sumber dan PostgreSQL sebagai target. Dalam pengaturan proyek, buka tab **SQL Scripting.** Ubah skrip SQL target ke **Multiple Files**. (AWS SCT tidak mendukung database Oracle 8i/9i, jadi Anda harus memulihkan dump khusus skema pada instans Oracle 10g/11g perantara dan menggunakannya sebagai sumber untuk AWS SCT.) | DBA | 
| Mengkonversi skema database Oracle. | Pada tab **Action**, pilih **Generate Report**, **Convert Schema**, dan kemudian **Save as SQL**. | DBA | 
| Memodifikasi skrip SQL. | Lakukan modifikasi berdasarkan praktik terbaik. Misalnya, beralih ke tipe data yang sesuai dan kembangkan ekuivalen PostgreSQL untuk fungsi khusus Oracle. | DBA, DevDBA | 

### Membuat dan mengonfigurasi instans Amazon RDS DB untuk meng-host database yang dikonversi
<a name="create-and-configure-the-amazon-rds-db-instance-to-host-the-converted-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS DB. | Di konsol Amazon RDS, buat instance PostgreSQL DB baru. | AWS SysAdmin, DBA | 
| Konfigurasikan instans DB. | Tentukan versi mesin DB, kelas instans DB, penyebaran multi-AZ, jenis penyimpanan, dan penyimpanan yang dialokasikan. Masukkan pengidentifikasi instans DB, nama pengguna master, dan kata sandi utama. | AWS SysAdmin, DBA | 
| Konfigurasikan jaringan dan keamanan. | Tentukan VPC, grup subnet, aksesibilitas publik, preferensi Availability Zone, dan grup keamanan. | DBA, SysAdmin | 
| Konfigurasikan opsi basis data. | Tentukan nama database, port, grup parameter, enkripsi, dan kunci master. | DBA, AWS SysAdmin | 
| Konfigurasikan cadangan. | Tentukan periode retensi cadangan, jendela cadangan, waktu mulai, durasi, dan apakah akan menyalin tag ke snapshot. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemantauan. | Mengaktifkan atau menonaktifkan pemantauan dan wawasan kinerja yang disempurnakan. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemeliharaan. | Tentukan peningkatan versi minor otomatis, jendela pemeliharaan, dan hari mulai, waktu, dan durasi. | AWS SysAdmin, DBA | 
| Jalankan skrip pra-migrasi dari AWS SCT. | Pada instans Amazon RDS for PostgreSQL target, buat skema database dengan menggunakan skrip SQL dari AWS SCT dengan modifikasi lainnya. Ini mungkin termasuk menjalankan beberapa skrip dan termasuk pembuatan pengguna, pembuatan database, pembuatan skema, tabel, tampilan, fungsi, dan objek kode lainnya. | AWS SysAdmin, DBA | 

### Migrasi data dengan menggunakan AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance replikasi di AWS DMS. | Lengkapi bidang untuk nama, kelas instance, VPC (sama seperti untuk EC2 instance), Multi-AZ, dan aksesibilitas publik. Di bagian konfigurasi lanjutan, tentukan penyimpanan yang dialokasikan, grup subnet, Availability Zone, grup keamanan VPC, dan kunci AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Buat titik akhir basis data sumber. | Tentukan nama titik akhir, jenis, mesin sumber (Oracle), nama server (nama DNS pribadi EC2 instance), port, mode SSL, nama pengguna, kata sandi, SID, VPC (tentukan VPC yang memiliki instance replikasi), dan contoh replikasi. Untuk menguji koneksi, pilih **Run Test**, lalu buat endpoint. Anda juga dapat mengonfigurasi pengaturan lanjutan berikut: **maxFileSize**dan **numberDataTypeSkala**. | AWS SysAdmin, DBA | 
| Hubungkan AWS DMS ke Amazon RDS untuk PostgreSQL. | Buat grup keamanan migrasi untuk koneksi di seluruh VPCs, jika database PostgreSQL Anda ada di VPC lain. | AWS SysAdmin, DBA | 
| Buat titik akhir basis data target. | Tentukan nama titik akhir, jenis, mesin sumber (PostgreSQL), nama server (titik akhir Amazon RDS), port, mode SSL, nama pengguna, kata sandi, nama database, VPC (tentukan VPC yang memiliki instance replikasi), dan contoh replikasi. Untuk menguji koneksi, pilih **Run Test**, lalu buat endpoint. Anda juga dapat mengonfigurasi pengaturan lanjutan berikut: **maxFileSize**dan **numberDataTypeSkala**. | AWS SysAdmin, DBA | 
| Buat tugas replikasi AWS DMS. | Tentukan nama tugas, contoh replikasi, titik akhir sumber dan target, dan contoh replikasi. Untuk jenis migrasi, pilih **Migrasi data yang ada dan replikasi perubahan yang sedang berlangsung**. Kosongkan kotak centang **Start task on create**. | AWS SysAdmin, DBA | 
| Konfigurasikan pengaturan tugas replikasi AWS DMS. | Untuk mode persiapan tabel target, pilih **Jangan lakukan apa-apa**. Hentikan tugas setelah beban penuh selesai (untuk membuat kunci utama). Tentukan mode LOB terbatas atau penuh, dan aktifkan tabel kontrol. Secara opsional, Anda dapat mengonfigurasi pengaturan **CommitRate**lanjutan. | DBA | 
| Konfigurasikan pemetaan tabel. | Di bagian **Pemetaan tabel**, buat aturan Sertakan untuk semua tabel di semua skema yang disertakan dalam migrasi, lalu buat aturan Kecualikan. Tambahkan tiga aturan transformasi untuk mengonversi skema, tabel, dan nama kolom menjadi huruf kecil, dan tambahkan aturan lain yang Anda perlukan untuk migrasi khusus ini. | DBA | 
| Mulai tugas. | Mulai tugas replikasi. Pastikan beban penuh berjalan. Jalankan `ALTER SYSTEM SWITCH LOGFILE` pada database Oracle utama untuk memulai tugas. | DBA | 
| Jalankan skrip mid-migration dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan `create_constraint.sql` skrip `create_index.sql` berikut: dan (jika skema lengkap awalnya tidak dibuat). | DBA | 
| Lanjutkan tugas untuk melanjutkan perubahan pengambilan data (CDC). | Jalankan `VACUUM` di instans Amazon RDS for PostgreSQL DB, dan mulai ulang tugas AWS DMS untuk menerapkan perubahan CDC yang di-cache. | DBA | 

### Potong ke database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa log AWS DMS dan tabel validasi. | Periksa dan perbaiki kesalahan replikasi atau validasi apa pun. | DBA | 
| Berhenti menggunakan database Oracle lokal dan dependensinya. | Hentikan semua dependensi Oracle, matikan pendengar di database Oracle, dan jalankan. `ALTER SYSTEM SWITCH LOGFILE` Hentikan tugas AWS DMS jika tidak menunjukkan aktivitas. | DBA | 
| Jalankan skrip pasca-migrasi dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan skrip ini:. `create_foreign_key_constraint.sql and create_triggers.sql` Pastikan urutannya mutakhir. | DBA | 
| Lengkapi tambahan Amazon RDS untuk langkah-langkah PostgreSQL. | Tingkatkan urutan untuk mencocokkan Oracle jika diperlukan, jalankan `VACUUM` dan`ANALYZE`, dan ambil snapshot untuk kepatuhan. | DBA | 
| Buka koneksi ke Amazon RDS untuk PostgreSQL. | Hapus grup keamanan AWS DMS dari Amazon RDS for PostgreSQL, tambahkan grup keamanan produksi, dan arahkan aplikasi Anda ke database baru. | DBA | 
| Bersihkan objek AWS DMS. | Hapus titik akhir, tugas replikasi, instance replikasi, dan instance. EC2  | SysAdmin, DBA | 

## Sumber daya terkait
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-resources"></a>
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Harga Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Menggunakan database PostgreSQL sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

# Bermigrasi dari Oracle di Amazon EC2 ke Amazon RDS untuk MySQL menggunakan AWS DMS dan AWS SCT
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Anil Kunapareddy, Amazon Web Services*

*Harshad Gohil, Tidak Ada*

## Ringkasan
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Mengelola database Oracle di instans Amazon Elastic Compute Cloud (Amazon EC2) membutuhkan sumber daya dan bisa mahal. Memindahkan database ini ke Amazon Relational Database Service (Amazon RDS) untuk instans MySQL DB akan memudahkan pekerjaan Anda dengan mengoptimalkan anggaran TI secara keseluruhan. Amazon RDS for MySQL juga menyediakan fitur seperti multi-AZ, skalabilitas, dan backup otomatis. 

Pola ini memandu Anda melalui migrasi database Oracle sumber di Amazon EC2 ke instans Amazon RDS for MySQL DB target. Ini menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data, dan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi skema database sumber dan objek ke format yang kompatibel dengan Amazon RDS for MySQL. 

## Prasyarat dan batasan
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber dengan layanan instance dan listener berjalan, dalam mode ARCHIVELOG
+ Target Amazon RDS for MySQL database, dengan penyimpanan yang cukup untuk migrasi data

**Batasan**
+ AWS DMS tidak membuat skema pada database target; Anda harus melakukannya. Nama skema harus sudah ada untuk target. Tabel dari skema sumber diimpor ke pengguna/skema, yang digunakan AWS DMS untuk terhubung ke instance target. Anda harus membuat beberapa tugas replikasi jika Anda harus memigrasikan beberapa skema. 

**Versi produk**
+ Semua edisi database Oracle untuk versi 10.2 dan yang lebih baru, 11g dan hingga 12.2, dan 18c. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS dan Menggunakan Database](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) [yang kompatibel dengan MySQL sebagai Target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) untuk AWS DMS. Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. Untuk informasi tentang versi database Oracle yang didukung oleh AWS SCT, lihat dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html).
+ AWS DMS mendukung MySQL versi 5.5, 5.6, dan 5.7. 

## Arsitektur
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle pada instans EC2  

**Tumpukan teknologi target**
+ Amazon RDS for MySQL DB instans

**Arsitektur migrasi data**

![\[Menggunakan AWS DMS untuk bermigrasi dari Oracle di Amazon EC2 ke Amazon RDS for MySQL\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/c00f908c-f348-41dd-a31c-3931b990777a.png)


**Arsitektur sumber dan target**

![\[Menggunakan AWS DMS dan AWS SCT untuk bermigrasi dari Oracle di Amazon EC2 ke Amazon RDS for MySQL\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/e7ba7ac0-3094-4142-b355-fb192e242432.png)


## Alat
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) adalah layanan web yang dapat Anda gunakan untuk memigrasikan data dari database Anda yang ada di tempat, pada instans Amazon RDS DB, atau dalam database pada instans EC2, ke database pada layanan AWS seperti Amazon RDS for MySQL atau instans EC2. Anda juga dapat memigrasikan database dari layanan AWS ke database lokal. Anda dapat memigrasikan data antara mesin database heterogen atau homogen.
+ **AWS SCT** - [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Tool (AWS SCT) membuat migrasi database heterogen dapat diprediksi dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar objek kode database, termasuk tampilan, prosedur tersimpan, dan fungsi, ke format yang kompatibel dengan basis data target. Setelah mengonversi skema database dan objek kode menggunakan AWS SCT, Anda dapat menggunakan AWS DMS untuk memigrasikan data dari database sumber ke database target untuk menyelesaikan proyek migrasi Anda.

## Epik
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi versi dan mesin basis data sumber dan target. |  | DBA/Pengembang | 
| Identifikasi contoh replikasi DMS. |  | DBA/Pengembang | 
| Identifikasi persyaratan penyimpanan seperti jenis dan kapasitas penyimpanan. |  | DBA/Pengembang | 
| Identifikasi persyaratan jaringan seperti latensi dan bandwidth. |  |  DBA/Pengembang | 
| Identifikasi persyaratan perangkat keras untuk instance server sumber dan target (berdasarkan daftar kompatibilitas Oracle dan persyaratan kapasitas). |  | DBA/Pengembang | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA/Pengembang | 
| Instal driver AWS SCT dan Oracle. |  | DBA/Pengembang | 
| Tentukan strategi cadangan. |  | DBA/Pengembang | 
| Tentukan persyaratan ketersediaan. |  | DBA/Pengembang | 
| Identifikasi migrasi aplikasi dan strategi peralihan. |  | DBA/Pengembang | 
| Pilih jenis instans DB yang tepat berdasarkan kapasitas, penyimpanan, dan fitur jaringan. |  | DBA/Pengembang | 

### Konfigurasikan lingkungan
<a name="configure-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). Sumber, target, dan contoh replikasi harus dalam VPC yang sama. Ini juga bagus untuk memiliki ini di Availability Zone yang sama. |  | Developer | 
| Buat grup keamanan yang diperlukan untuk akses database. |  |  Developer | 
| Hasilkan dan konfigurasikan key pair. |  | Developer | 
| Konfigurasikan subnet, Availability Zone, dan blok CIDR. |  | Developer | 

### Konfigurasikan sumber: database Oracle pada instans EC2
<a name="configure-the-source-oracle-database-on-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Oracle Database di Amazon EC2 dengan pengguna dan peran yang diperlukan. |  | DBA | 
|  Lakukan tiga langkah di kolom berikutnya untuk mengakses Oracle dari luar instans EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.html) | DBA | 
| Saat Amazon EC2 dimulai ulang, DNS publik berubah. Pastikan untuk memperbarui DNS publik Amazon EC2 di 'tnsnames' dan 'listener' atau gunakan alamat IP Elastis. |  | DBA/Pengembang | 
| Konfigurasikan grup keamanan instans EC2 sehingga instance replikasi dan klien yang diperlukan dapat mengakses database sumber. |  | DBA/Pengembang | 

### Konfigurasikan target: Amazon RDS for MySQL
<a name="configure-the-target-amazon-rds-for-mysql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan dan mulai Amazon RDS for MySQL DB instance. |  | Developer | 
| Buat tablespace yang diperlukan di Amazon RDS for MySQL DB instance. |  | DBA | 
| Konfigurasikan grup keamanan sehingga instance replikasi dan klien yang diperlukan dapat mengakses database target. |  | Developer | 

### Konfigurasikan AWS SCT dan buat skema di database target
<a name="configure-aws-sct-and-create-a-schema-in-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal driver AWS SCT dan Oracle. |  | Developer | 
| Masukkan parameter yang sesuai dan sambungkan ke sumber dan target. |  | Developer | 
| Menghasilkan laporan konversi skema. |  | Developer | 
| Perbaiki kode dan skema seperlunya, terutama tablespace dan tanda kutip, dan jalankan pada database target. |  |  Developer | 
| Validasi skema pada sumber vs. target sebelum memigrasikan data. |  | Developer | 

### Migrasi data menggunakan AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Untuk full-load dan change data capture (CDC) atau hanya CDC, Anda harus menetapkan atribut koneksi tambahan. |  | Developer | 
| Pengguna yang ditentukan dalam definisi database Oracle sumber AWS DMS harus diberikan semua hak istimewa yang diperlukan. Untuk daftar lengkapnya, lihat https://docs.aws.amazon.com/dms/ latest/userguide/CHAP \$1source.oracle.html \$1CHAP\$1Source .Oracle.Self-Managed. |  | DBA/Pengembang | 
| Aktifkan logging tambahan di database sumber. |  | DBA/Pengembang | 
| Untuk pengambilan data penuh dan perubahan (CDC) atau hanya CDC, aktifkan mode ARCHIVELOG di database sumber. |  | DBA | 
| Buat titik akhir sumber dan target, dan uji koneksi. |  | Developer | 
| Ketika titik akhir berhasil terhubung, buat tugas replikasi. |  | Developer | 
| Pilih CDC saja (atau) beban penuh plus CDC dalam tugas untuk menangkap perubahan hanya untuk replikasi berkelanjutan (atau) beban penuh ditambah perubahan yang sedang berlangsung, masing-masing. |  | Developer | 
| Jalankan tugas replikasi dan pantau CloudWatch log Amazon. |  |  Developer | 
| Validasi data dalam basis data sumber dan target. |  | Developer | 

### Migrasikan aplikasi Anda dan potong
<a name="migrate-your-application-and-cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti langkah-langkah untuk strategi migrasi aplikasi Anda. |  | DBA, Pengembang, Pemilik aplikasi | 
| Ikuti langkah-langkah untuk strategi cutover/switch-over aplikasi Anda. |  | DBA, Pengembang, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi skema dan data dalam basis data sumber vs. target. |  | DBA/Pengembang | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi, persen manual vs alat, penghematan biaya, dll. |  |  DBA/Developer/AppOwner | 
| Tinjau dokumen proyek dan artefak. |  | DBA/Developer/AppOwner | 
| Matikan sumber daya AWS sementara. |  | DBA/Pengembang | 
| Tutup proyek dan berikan umpan balik. |  | DBA/Developer/AppOwner | 

## Sumber daya terkait
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-resources"></a>
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 
+ [Situs AWS DMS](https://aws.amazon.com/dms/)
+ [Posting blog AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/) 
+ [Strategi untuk Migrasi Database Oracle ke AWS](https://d1.awsstatic.com/whitepapers/strategies-for-migrating-oracle-database-to-aws.pdf) 
+ [Amazon RDS for Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/) 
+ [FAQ Oracle](https://aws.amazon.com/oracle/faq/) 
+ [Amazon EC2](https://aws.amazon.com/ec2/) 
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Melisensikan Perangkat Lunak Oracle di Lingkungan Cloud Computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

# Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS untuk MariaDB menggunakan AWS DMS dan AWS SCT
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct"></a>

*Veeranjaneyulu Grandhi dan Vinod Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-summary"></a>

Pola ini memandu Anda melalui langkah-langkah untuk memigrasikan database Oracle pada instans Amazon Elastic Compute Cloud (Amazon EC2) ke Amazon Relational Database Service (Amazon RDS) untuk instance MariaDB DB. Pola ini menggunakan AWS Data Migration Service (AWS DMS) untuk migrasi data dan AWS Schema Conversion Tool (AWS SCT) untuk konversi skema. 

Mengelola database Oracle pada EC2 instans membutuhkan lebih banyak sumber daya dan lebih mahal daripada menggunakan database di Amazon RDS. Amazon RDS memudahkan untuk mengatur, mengoperasikan, dan menskalakan database relasional di cloud. Amazon RDS menyediakan kapasitas yang hemat biaya dan dapat diubah ukurannya sambil mengotomatiskan tugas administrasi yang memakan waktu seperti penyediaan perangkat keras, penyiapan basis data, penambalan, dan pencadangan.

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Database Oracle sumber dengan layanan instance dan listener aktif dan berjalan. Database ini harus dalam mode ARCHIVELOG.
+ Keakraban dengan [Menggunakan Database Oracle sebagai Sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS.
+ Keakraban dengan [Menggunakan Oracle sebagai Sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html).

**Batasan**
+ Batas ukuran database: 64 TB 

**Versi produk**
+ Semua edisi database Oracle untuk versi 10.2 dan yang lebih baru, 11g dan hingga 12.2, dan 18c. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) dan [tabel versi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) dalam dokumentasi AWS.
+ Amazon RDS mendukung MariaDB Server Community Server versi 10.3, 10.4, 10.5, dan 10.6. Untuk daftar terbaru versi yang didukung, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html).

## Arsitektur
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle pada sebuah instance EC2 

**Tumpukan teknologi target**
+ Amazon RDS for MariaDB

**Arsitektur migrasi data**

![\[Menggunakan AWS DMS untuk migrasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/ed191145-e5c2-4d61-8827-31f081450c03.png)


**Arsitektur target**

![\[Menggunakan AWS SCT untuk migrasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/0171f548-37dd-4110-851c-7e74dfff3732.png)


## Alat
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Tool (AWS SCT) membuat migrasi database heterogen dapat diprediksi dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar objek kode database—termasuk tampilan, prosedur tersimpan, dan fungsi—ke format yang kompatibel dengan basis data target. Setelah mengonversi skema database dan objek kode menggunakan AWS SCT, Anda dapat menggunakan AWS DMS untuk memigrasikan data dari database sumber ke database target untuk menyelesaikan proyek migrasi Anda. Untuk informasi selengkapnya, lihat [Menggunakan Oracle sebagai Sumber AWS SCT dalam dokumentasi](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) AWS SCT.
+ [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) (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. AWS DMS mendukung migrasi homogen seperti Oracle ke Oracle, serta migrasi heterogen antara platform database yang berbeda, seperti Oracle atau Microsoft SQL Server ke Amazon Aurora. Untuk mempelajari lebih lanjut tentang memigrasi database Oracle, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html).

## Epik
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-epics"></a>

### Rencanakan migrasi
<a name="plan-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi versi dan mesin database. | Identifikasi versi dan mesin basis data sumber dan target. | DBA, Pengembang | 
| Identifikasi contoh replikasi. | Identifikasi instans replikasi AWS DMS. | DBA, Pengembang | 
| Identifikasi persyaratan penyimpanan. | Identifikasi jenis dan kapasitas penyimpanan. | DBA, Pengembang | 
| Identifikasi persyaratan jaringan. | Identifikasi latensi jaringan dan bandwidth. | DBA, Pengembang | 
| Identifikasi persyaratan perangkat keras. | Identifikasi persyaratan perangkat keras untuk instance server sumber dan target (berdasarkan daftar kompatibilitas Oracle dan persyaratan kapasitas). | DBA, Pengembang | 
| Identifikasi persyaratan keamanan. | Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. | DBA, Pengembang | 
| Instal driver. | Instal driver AWS SCT dan Oracle terbaru. | DBA, Pengembang | 
| Tentukan strategi cadangan. |  | DBA, Pengembang | 
| Tentukan persyaratan ketersediaan. |  | DBA, Pengembang | 
| Pilih migration/switchover strategi aplikasi. |  | DBA, Pengembang | 
| Pilih jenis instans. | Pilih jenis instans yang tepat berdasarkan kapasitas, penyimpanan, dan fitur jaringan. | DBA, Pengembang | 

### Konfigurasikan lingkungan
<a name="configure-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC).  | Instance sumber, target, dan replikasi harus berada di VPC yang sama dan di Availability Zone yang sama (disarankan). | Developer | 
| Buat grup keamanan. | Buat grup keamanan yang diperlukan untuk akses database. | Developer | 
| Hasilkan key pair. | Hasilkan dan konfigurasikan key pair. | Developer | 
| Konfigurasikan sumber daya lainnya. | Konfigurasikan subnet, Availability Zone, dan blok CIDR. | Developer | 

### Konfigurasikan sumbernya
<a name="configure-the-source"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan EC2 instance. | Untuk petunjuk, lihat [ EC2 dokumentasi Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | Developer | 
| Instal database Oracle. | Instal database Oracle pada EC2 instance, dengan pengguna dan peran yang diperlukan. | DBA | 
| Ikuti langkah-langkah dalam deskripsi tugas untuk mengakses Oracle dari luar EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.html) | DBA | 
| Perbarui DNS EC2 publik Amazon. | Setelah EC2 instance dimulai ulang, DNS publik berubah. Pastikan untuk memperbarui DNS EC2 publik Amazon di `tnsnames` dan`listener`, atau gunakan alamat IP Elastis. | DBA, Pengembang | 
| Konfigurasikan grup keamanan EC2 instance. | Konfigurasikan grup keamanan EC2 instance sehingga instance replikasi dan klien yang diperlukan dapat mengakses database sumber. | DBA, Pengembang | 

### Konfigurasikan target Amazon RDS untuk lingkungan MariaDB
<a name="configure-the-target-amazon-rds-for-mariadb-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai instance RDS DB. | Konfigurasikan dan mulai Amazon RDS for MariaDB instans DB. | Developer | 
| Buat ruang meja. | Buat ruang tabel yang diperlukan di database Amazon RDS MariaDB. | DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan sehingga instance replikasi dan klien yang diperlukan dapat mengakses database target. | Developer | 

### Konfigurasikan AWS SCT
<a name="configure-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal driver. | Instal driver AWS SCT dan Oracle terbaru. | Developer | 
| Connect. | Masukkan parameter yang sesuai dan kemudian sambungkan ke sumber dan target. | Developer | 
| Menghasilkan laporan konversi skema. | Buat laporan konversi skema AWS SCT. | Developer | 
| Perbaiki kode dan skema seperlunya. | Lakukan koreksi yang diperlukan pada kode dan skema (terutama ruang tabel dan tanda kutip). | DBA, Pengembang | 
| Validasi skema. | Validasi skema pada sumber versus target sebelum memuat data. | Developer | 

### Migrasi data menggunakan AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tetapkan atribut koneksi. | Untuk pengambilan data beban penuh dan perubahan (CDC) atau hanya untuk CDC, tetapkan atribut koneksi tambahan. Untuk informasi selengkapnya, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html). | Developer | 
| Aktifkan pencatatan tambahan. | Aktifkan logging tambahan pada database sumber. | DBA, Pengembang | 
| Aktifkan mode log arsip. | Untuk beban penuh dan CDC (atau hanya untuk CDC), aktifkan mode log arsip pada database sumber. | DBA | 
| Buat dan uji titik akhir. | Buat titik akhir sumber dan target dan uji koneksi. Untuk informasi selengkapnya, lihat [dokumentasi Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | Developer | 
| Buat tugas replikasi. | Ketika titik akhir berhasil terhubung, buat tugas replikasi. Untuk informasi selengkapnya, lihat [dokumentasi Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html). | Developer | 
| Pilih jenis replikasi. | Pilih **CDC saja** atau **Full load plus CDC** dalam tugas untuk menangkap perubahan hanya untuk replikasi berkelanjutan, atau untuk beban penuh dan perubahan yang sedang berlangsung, masing-masing. | Developer | 
| Mulai dan pantau tugas. | Mulai tugas replikasi dan pantau CloudWatch log Amazon. Untuk informasi selengkapnya, lihat [dokumentasi Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Developer | 
| Validasi data. | Validasi data dalam basis data sumber dan target. | Developer | 

### Migrasikan aplikasi dan potong ke database target
<a name="migrate-applications-and-cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi yang dipilih. |  | DBA, Pemilik aplikasi, Pengembang | 
| Ikuti cutover/switchover strategi aplikasi yang dipilih. |  | DBA, Pemilik aplikasi, Pengembang | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi skema dan data. | Pastikan skema dan data berhasil divalidasi di sumber versus target sebelum penutupan proyek. | DBA, Pengembang | 
| Kumpulkan metrik. | Kumpulkan metrik untuk waktu migrasi, persentase tugas manual versus alat, penghematan biaya, dan kriteria serupa. | DBA, Pemilik aplikasi, Pengembang | 
| Tinjau dokumentasi. | Tinjau dokumen proyek dan artefak. | DBA, Pemilik aplikasi, Pengembang | 
| Matikan sumber daya. | Matikan sumber daya AWS sementara. | DBA, Pengembang | 
| Tutup proyek. | Tutup proyek migrasi dan berikan umpan balik apa pun. | DBA, Pemilik aplikasi, Pengembang | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-resources"></a>
+ [Ikhtisar MariaDB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)
+ [Detail produk Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/features)
+ [Menggunakan Database Oracle sebagai Sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Strategi untuk Migrasi Database Oracle ke AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html)
+ [Melisensikan Perangkat Lunak Oracle di Lingkungan Cloud Computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)
+ [Amazon RDS for Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/)
+ [Ikhtisar AWS DMS](https://aws.amazon.com/dms/)
+ [Posting blog AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/)
+ [ EC2 Ikhtisar Amazon](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)

# Memigrasikan database Oracle lokal ke Amazon RDS for MySQL menggunakan AWS DMS dan AWS SCT
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Sergey Dmitriev dan Naresh Damera, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Pola ini memandu Anda melalui migrasi database Oracle lokal ke Amazon Relational Database Service (Amazon RDS) untuk instans MySQL DB. Ini menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data, dan AWS Schema Conversion Tool (AWS SCT) untuk mengonversi skema database sumber dan objek ke format yang kompatibel dengan Amazon RDS for MySQL. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle sumber di pusat data lokal 

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ Semua edisi database Oracle untuk versi 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, dan 18c. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. Untuk informasi tentang versi database Oracle yang didukung oleh AWS SCT, lihat dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 
+ AWS DMS saat ini mendukung MySQL versi 5.5, 5.6, dan 5.7. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database yang kompatibel dengan MySQL sebagai Target untuk AWS DMS dalam dokumentasi AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). 

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal

**Tumpukan teknologi target**
+ Amazon RDS for MySQL DB instans

**Arsitektur migrasi data**

![\[AWS Cloud architecture showing data migration from on-premises to RDS via VPC, Internet Gateway, and AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0385e5ad-a1ca-4c29-945b-592321d95f9d/images/c872e033-b13a-4436-b503-0632b5d437ae.png)


 

## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Database Migration Services](https://docs.aws.amazon.com/dms/latest/userguide/) (AWS DMS) membantu Anda memigrasikan database relasional, gudang data, database NoSQL, dan jenis penyimpanan data lainnya. Anda dapat menggunakan AWS DMS untuk memigrasikan data Anda ke AWS Cloud, antar instans lokal (melalui penyiapan AWS Cloud), atau antara kombinasi pengaturan cloud dan lokal.
+ **AWS SCT** - [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) digunakan untuk mengonversi skema database Anda dari satu mesin database ke mesin database lainnya. Kode khusus yang dikonversi alat mencakup tampilan, prosedur tersimpan, dan fungsi. Kode apa pun yang tidak dapat dikonversi oleh alat secara otomatis ditandai dengan jelas sehingga Anda dapat mengonversinya sendiri.

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target dan mesin. |  | DBA | 
|  Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, SysAdmin | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin  | 
| Identifikasi strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet. |  | SysAdmin | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACLs). |  | SysAdmin | 
| Konfigurasikan dan mulai instans Amazon RDS DB. |  | DBA, SysAdmin | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan skema database dengan menggunakan AWS SCT. |  | DBA | 
| Migrasikan data dengan menggunakan AWS DMS. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan AWS SCT untuk menganalisis dan mengonversi kode SQL di dalam kode aplikasi. | Untuk informasi selengkapnya, lihat https://docs.aws.amazon.com/SchemaConversionTool/ latest/userguide/CHAP \$1Converting.app.html. | Pemilik aplikasi | 
| Ikuti strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, SysAdmin, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, SysAdmin | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, SysAdmin | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi,% manual vs alat, penghematan biaya, dll. |  | DBA, SysAdmin | 
| Tutup proyek dan berikan umpan balik. |  |  | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-related-resources"></a>

**Referensi**
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Memigrasikan database Oracle lokal ke Amazon RDS for PostgreSQL menggunakan Oracle bystander dan AWS DMS
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms"></a>

*Cady Motyka, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-summary"></a>

Pola ini menjelaskan cara memigrasikan database Oracle lokal ke salah satu layanan database AWS yang kompatibel dengan PostgreSQL berikut dengan waktu henti minimal:
+ Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

Solusinya menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data, AWS Schema Conversion Tool (AWS SCT) untuk mengonversi skema database, dan database pengamat Oracle untuk membantu mengelola migrasi. Dalam implementasi ini, downtime dibatasi untuk berapa lama waktu yang dibutuhkan untuk membuat atau memvalidasi semua kunci asing pada database. 

Solusinya juga menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2) dengan database pengamat Oracle untuk membantu mengontrol aliran data melalui AWS DMS. Anda dapat menghentikan sementara replikasi streaming dari database Oracle lokal ke pengamat Oracle untuk mengaktifkan AWS DMS untuk mengejar validasi data, atau menggunakan alat validasi data lain. Instans Amazon RDS for PostgreSQL DB atau instans DB yang kompatibel dengan Aurora PostgreSQL dan database pengamat akan memiliki data yang sama saat AWS DMS menyelesaikan migrasi perubahan saat ini. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle sumber di pusat data lokal dengan database siaga Active Data Guard yang dikonfigurasi
+ AWS Direct Connect dikonfigurasi antara pusat data lokal dan AWS Secrets Manager untuk menyimpan rahasia database
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT, diinstal baik pada mesin lokal atau pada instance di EC2 mana AWS SCT diinstal
+ Keakraban dengan [menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Keakraban [menggunakan database PostgreSQL sebagai target AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) DMS

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ AWS DMS mendukung semua edisi database Oracle untuk versi 10.2 dan yang lebih baru (untuk versi 10.x), 11g dan hingga 12.2, 18c, dan 19c. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. Untuk informasi tentang versi database Oracle yang didukung oleh AWS SCT, lihat dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 
+ AWS DMS mendukung PostgreSQL versi 9.4 dan yang lebih baru (untuk versi 9.x), 10.x, 11.x, 12.x, dan 13.x. Untuk informasi terbaru, lihat [Menggunakan Database PostgreSQL sebagai Target untuk AWS DMS dalam dokumentasi AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html).

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal
+ Sebuah EC2 contoh yang menyimpan pengamat untuk database Oracle

**Tumpukan teknologi target**
+ Amazon RDS untuk PostgreSQL atau Aurora PostgreSQL misalnya, PostgreSQL, PostgreSQL 9.3 dan yang lebih baru

**Arsitektur target**

Diagram berikut menunjukkan contoh alur kerja untuk memigrasikan database Oracle ke database AWS yang kompatibel dengan PostgreSQL dengan menggunakan AWS DMS dan pengamat Oracle:

![\[Memigrasi database Oracle lokal ke PostgreSQL di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-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.
+ [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.
+ [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.

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-epics"></a>

### Mengkonversi skema database Oracle ke PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS SCT. | Buat laporan baru, dan sambungkan ke Oracle sebagai sumber dan PostgreSQL sebagai target. Di **Pengaturan Proyek**, buka tab **SQL Scripting.** Ubah **Target SQL Script** ke **Multiple Files**. File-file ini akan digunakan nanti dan diberi nama sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Mengkonversi skema database Oracle. | Di tab **Tindakan**, pilih **Hasilkan Laporan**. Kemudian, pilih **Konversi Skema** dan pilih **Simpan sebagai SQL**. | DBA | 
| Ubah skrip. | **Misalnya, Anda mungkin ingin mengubah skrip jika nomor dalam skema sumber telah dikonversi ke format numerik di PostgreSQL, tetapi Anda ingin menggunakan BIGINT sebagai gantinya untuk kinerja yang lebih baik.** | DBA | 

### Membuat dan mengonfigurasi instans Amazon RDS DB
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS DB. | Di Wilayah AWS yang benar, buat instans PostgreSQL DB baru. Untuk informasi selengkapnya, lihat [Membuat instans PostgreSQL DB dan menghubungkan ke database pada instans PostgreSQL DB dalam](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) dokumentasi Amazon RDS. | AWS SysAdmin, DBA | 
| Konfigurasikan spesifikasi instans DB. | Tentukan versi mesin DB, kelas instans DB, penyebaran multi-AZ, jenis penyimpanan, dan penyimpanan yang dialokasikan. Masukkan pengidentifikasi instans DB, nama pengguna utama, dan kata sandi utama. | AWS SysAdmin, DBA | 
| Konfigurasikan jaringan dan keamanan. | Tentukan virtual private cloud (VPC), grup subnet, aksesibilitas publik, preferensi Availability Zone, dan grup keamanan. | DBA, SysAdmin | 
| Konfigurasikan opsi basis data. | Tentukan nama database, port, grup parameter, enkripsi, dan kunci KMS. | AWS SysAdmin, DBA | 
| Konfigurasikan cadangan. | Tentukan periode retensi cadangan, jendela cadangan, waktu mulai, durasi, dan apakah akan menyalin tag ke snapshot. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemantauan. | Aktifkan atau nonaktifkan pemantauan dan wawasan kinerja yang disempurnakan. | AWS SysAdmin, DBA | 
| Konfigurasikan opsi pemeliharaan. | Tentukan peningkatan versi minor otomatis, jendela pemeliharaan, dan hari mulai, waktu, dan durasi. | AWS SysAdmin, DBA | 
| Jalankan skrip pra-migrasi dari AWS SCT. | Pada instans Amazon RDS, jalankan skrip berikut yang dihasilkan oleh AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | AWS SysAdmin, DBA | 

### Konfigurasikan pengamat Oracle di Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan jaringan untuk Amazon EC2. | Buat VPC baru, subnet, gateway internet, tabel rute, dan grup keamanan. | AWS SysAdmin | 
| Buat EC2 instance. | Di Wilayah AWS yang sesuai, buat EC2 instance baru. Pilih Amazon Machine Image (AMI), pilih ukuran instans, dan konfigurasikan detail instans: jumlah instance (1), VPC dan subnet yang Anda buat di tugas sebelumnya, tetapkan IP publik secara otomatis, dan opsi lainnya. Tambahkan penyimpanan, konfigurasikan grup keamanan, dan luncurkan. Saat diminta, buat dan simpan key pair untuk langkah selanjutnya. | AWS SysAdmin | 
| Connect database sumber Oracle ke EC2 instance. | Salin alamat IP IPv4 publik dan DNS ke file teks dan sambungkan dengan menggunakan SSH sebagai berikut: **ssh -i “your\$1file.pem” EC2-user@<your-IP- -DNS>**. address-or-public | AWS SysAdmin | 
| Siapkan host awal untuk pengamat di Amazon. EC2 | Siapkan kunci SSH, profil bash, ORATAB, dan tautan simbolis. Buat direktori Oracle. | AWS SysAdmin, Linux Admin | 
| Siapkan salinan database untuk pengamat di Amazon EC2 | Gunakan RMAN untuk membuat salinan database, mengaktifkan logging tambahan, dan membuat file kontrol siaga. Setelah penyalinan selesai, tempatkan database dalam mode pemulihan. | AWS SysAdmin, DBA | 
| Siapkan Oracle Data Guard. | Ubah file **listener.ora** Anda dan mulai pendengar. Siapkan tujuan arsip baru. Tempatkan pengamat dalam mode pemulihan, ganti file sementara untuk menghindari korupsi di masa depan, instal crontab jika perlu untuk mencegah direktori arsip kehabisan ruang, dan edit **manage-trclog-files-oraclefile.cfg** untuk sumber dan siaga. | AWS SysAdmin, DBA | 
| Siapkan database Oracle untuk menyinkronkan pengiriman. | Tambahkan file log siaga dan ubah mode pemulihan. Ubah pengiriman log ke **SYNC AFFIRM** pada sumber utama dan sumber siaga. Alihkan log pada primer, konfirmasikan melalui log peringatan EC2 pengamat Amazon bahwa Anda menggunakan file log siaga, dan konfirmasikan bahwa aliran pengulangan mengalir di SYNC. | AWS SysAdmin, DBA | 

### Migrasi data dengan AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance replikasi di AWS DMS. | Lengkapi bidang untuk nama, kelas instance, VPC (sama seperti instans Amazon EC2 ), Multi-AZ, dan aksesibilitas publik. Di bagian **Advance**, tentukan penyimpanan yang dialokasikan, grup subnet, Availability Zone, grup keamanan VPC, dan kunci AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Buat titik akhir basis data sumber. | Tentukan nama titik akhir, jenis, mesin sumber (Oracle), nama server (nama DNS EC2 pribadi Amazon), port, mode SSL, nama pengguna, kata sandi, SID, VPC (tentukan VPC yang memiliki instance replikasi), dan contoh replikasi. Untuk menguji koneksi, pilih **Run Test**, lalu buat endpoint. Anda juga dapat mengonfigurasi pengaturan lanjutan berikut: **maxFileSize**dan **numberDataTypeSkala**. | AWS SysAdmin, DBA | 
| Hubungkan AWS DMS ke Amazon RDS untuk PostgreSQL. | Buat grup keamanan migrasi untuk koneksi lintas VPCs. | AWS SysAdmin, DBA | 
| Buat titik akhir basis data target. | Tentukan nama titik akhir, jenis, mesin sumber (PostgreSQL), nama server (titik akhir Amazon RDS), port, mode SSL, nama pengguna, kata sandi, nama database, VPC (tentukan VPC yang memiliki instance replikasi), dan contoh replikasi. Untuk menguji koneksi, pilih **Run Test**, lalu buat endpoint. Anda juga dapat mengonfigurasi pengaturan lanjutan berikut: **maxFileSize **dan **numberDataTypeSkala**. | AWS SysAdmin, DBA | 
| Buat tugas replikasi AWS DMS. | Tentukan nama tugas, contoh replikasi, titik akhir sumber dan target, dan contoh replikasi. Untuk jenis migrasi, pilih **Migrasi data yang ada dan replikasi perubahan yang sedang berlangsung**. Kosongkan kotak centang **Start task on create**. | AWS SysAdmin, DBA | 
| Konfigurasikan pengaturan tugas replikasi AWS DMS. | Untuk mode persiapan tabel target, pilih **Jangan lakukan apa-apa**. Hentikan tugas setelah beban penuh selesai (untuk membuat kunci utama). Tentukan mode LOB terbatas atau penuh, dan aktifkan tabel kontrol. Secara opsional, Anda dapat mengonfigurasi pengaturan **CommitRate**lanjutan. | DBA | 
| Konfigurasikan pemetaan tabel. | **Di bagian **Pemetaan tabel**, buat aturan **Sertakan** untuk semua tabel di semua skema yang disertakan dalam migrasi, lalu buat aturan Kecualikan.** Tambahkan tiga aturan transformasi untuk mengonversi skema, tabel, dan nama kolom menjadi huruf kecil, dan tambahkan aturan lain yang diperlukan untuk migrasi spesifik ini. | DBA | 
| Mulai tugas. | Mulai tugas replikasi. Pastikan beban penuh berjalan. **Jalankan ALTER SYSTEM SWITCH LOGFILE** pada database Oracle utama untuk memulai tugas. | DBA | 
| Jalankan skrip mid-migration dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan skrip berikut yang dihasilkan oleh AWS SCT: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Mulai ulang tugas untuk melanjutkan perubahan pengambilan data (CDC). | Jalankan **VACUUM** di Amazon RDS untuk instans DB Amazon RDS for PostgreSQL, dan mulai ulang tugas AWS DMS untuk menerapkan perubahan CDC yang di-cache. | DBA | 

### Potong ke database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau log AWS DMS dan tabel validasi untuk mengetahui kesalahan apa pun. | Periksa dan perbaiki kesalahan replikasi atau validasi apa pun. | DBA | 
| Hentikan semua dependensi Oracle. | **Hentikan semua dependensi Oracle, matikan pendengar pada database Oracle, dan jalankan ALTER SYSTEM SWITCH LOGFILE.** Hentikan tugas AWS DMS jika tidak menunjukkan aktivitas. | DBA | 
| Jalankan skrip pasca-migrasi dari AWS SCT. | Di Amazon RDS for PostgreSQL, jalankan skrip berikut yang dihasilkan oleh AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Lengkapi tambahan Amazon RDS untuk langkah-langkah PostgreSQL. | Tingkatkan urutan untuk mencocokkan Oracle jika diperlukan, jalankan **VACUUM dan **ANALYZE****, dan ambil snapshot untuk kepatuhan. | DBA | 
| Buka koneksi ke Amazon RDS for PostgreSQL. | Hapus grup keamanan AWS DMS dari Amazon RDS for PostgreSQL, tambahkan grup keamanan produksi, dan arahkan aplikasi Anda ke database baru. | DBA | 
| Bersihkan objek AWS DMS. | Hapus titik akhir, tugas replikasi, instance replikasi, dan instance. EC2  | SysAdmin, DBA | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Harga Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 

# Migrasikan Database Oracle ke Amazon Redshift menggunakan AWS DMS dan AWS SCT
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct"></a>

*Piyush Goyal dan Brian motzer, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database Oracle ke gudang data cloud Amazon Redshift di Amazon Web Services (AWS) Cloud dengan menggunakan AWS Database Migration Service (AWS DMS) dan AWS Schema Conversion Tool (AWS SCT). Pola ini mencakup basis data Oracle sumber yang ada di tempat atau diinstal pada instans Amazon Elastic Compute Cloud (Amazon EC2). Ini juga mencakup Amazon Relational Database Service (Amazon RDS) untuk database Oracle.

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Database Oracle yang berjalan di pusat data lokal atau di AWS Cloud
+ Akun AWS yang aktif
+ Keakraban dengan [menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Keakraban dengan [menggunakan database Amazon Redshift sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ Pengetahuan tentang Amazon RDS, Amazon Redshift, teknologi database yang berlaku, dan SQL
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT, tempat AWS SCT diinstal

**Versi produk**
+ Untuk database Oracle yang dikelola sendiri, AWS DMS mendukung semua edisi database Oracle untuk versi 10.2 dan yang lebih baru (untuk versi 10. *x*), 11g dan hingga 12,2, 18c, dan 19c. Untuk database Amazon RDS for Oracle yang dikelola AWS, AWS DMS mendukung semua edisi database Oracle untuk versi 11g (versi 11.2.0.4 dan yang lebih baru) dan hingga 12.2, 18c, dan 19c. 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-redshift-using-aws-dms-and-aws-sct-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**
+ Amazon Redshift

**Arsitektur target**

*Dari database Oracle yang berjalan di AWS Cloud hingga Amazon Redshift:*

![\[Memigrasi database Oracle di AWS Cloud ke gudang data Amazon Redshift.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/7140e819-81d6-45c4-805b-8e10828076a7.png)


*Dari database Oracle yang berjalan di pusat data lokal hingga Amazon Redshift:*

![\[Memigrasi database Oracle lokal ke gudang data Amazon Redshift.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/d6654b48-0e1b-4b01-a261-5a640be01fd7.png)


## Alat
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) - AWS Data Migration Service (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. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) - AWS Schema Conversion Tool (AWS SCT) dapat digunakan untuk mengonversi skema database yang ada dari satu mesin database ke mesin database lainnya. Ini mendukung berbagai mesin database, termasuk Oracle, SQL Server, dan PostgressQL, sebagai sumber.

## Epik
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi database. | Validasi versi basis data sumber dan target dan pastikan mereka didukung oleh AWS DMS. Untuk informasi tentang versi Oracle Database yang didukung, lihat [Menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS. Untuk informasi tentang menggunakan Amazon Redshift sebagai target, lihat [Menggunakan database Amazon Redshift sebagai target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) AWS DMS. | DBA | 
| Buat VPC dan grup keamanan. | Di akun AWS Anda, buat virtual private cloud (VPC), jika tidak ada. Buat grup keamanan untuk lalu lintas keluar ke basis data sumber dan target. Untuk informasi selengkapnya, lihat dokumentasi [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Administrator sistem | 
| Instal AWS SCT. | Unduh dan instal AWS SCT versi terbaru dan driver yang sesuai. Untuk informasi selengkapnya, lihat [Menginstal, memverifikasi, dan memperbarui AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html). | DBA | 
| Buat pengguna untuk tugas AWS DMS. | Buat pengguna AWS DMS di database sumber dan berikan hak READ. Pengguna ini akan digunakan oleh AWS SCT dan AWS DMS. | DBA | 
| Uji konektivitas DB. | Uji konektivitas ke instans Oracle DB. | DBA | 
| Buat proyek baru di AWS SCT. | Buka alat AWS SCT dan buat proyek baru. | DBA | 
| Analisis skema Oracle yang akan dimigrasikan. | Gunakan AWS SCT untuk menganalisis skema yang akan dimigrasikan, dan buat laporan penilaian migrasi database. Untuk informasi selengkapnya, lihat [Membuat laporan penilaian migrasi database](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.Create.html) di dokumentasi AWS SCT. | DBA | 
| Tinjau laporan penilaian. | Tinjau laporan untuk kelayakan migrasi. Beberapa objek DB mungkin memerlukan konversi manual. Untuk informasi selengkapnya tentang laporan, lihat [Melihat laporan penilaian](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html) di dokumentasi AWS SCT. | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster Amazon Redshift. | Buat klaster Amazon Redshift di dalam VPC yang Anda buat sebelumnya. Untuk informasi selengkapnya, lihat [klaster Amazon Redshift di dokumentasi](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) Amazon Redshift. | DBA | 
| Buat pengguna basis data. | Ekstrak daftar pengguna, peran, dan hibah dari database sumber Oracle. Buat pengguna di database Amazon Redshift target dan terapkan peran dari langkah sebelumnya. | DBA | 
| Mengevaluasi parameter database. | Tinjau opsi database, parameter, file jaringan, dan tautan basis data dari database sumber Oracle, dan evaluasi penerapannya ke target.             | DBA | 
| Terapkan pengaturan yang relevan ke target.  | Untuk informasi selengkapnya tentang langkah ini, lihat [Referensi konfigurasi](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) di dokumentasi Amazon Redshift. | DBA | 

### Buat objek dalam database target
<a name="create-objects-in-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna AWS DMS di database target. | Buat pengguna AWS DMS di database target dan berikan hak baca dan tulis. Validasi konektivitas dari AWS SCT. | DBA | 
| Konversi skema, tinjau laporan SQL, dan simpan kesalahan atau peringatan apa pun. | Untuk informasi selengkapnya, lihat [Mengonversi skema database menggunakan AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) dalam dokumentasi AWS SCT. | DBA | 
| Terapkan perubahan skema ke database target atau simpan sebagai file.sql. | Untuk petunjuk, lihat [Menyimpan dan menerapkan skema konversi Anda di AWS SCT dalam dokumentasi](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.DW.html#CHAP_Converting.DW.SaveAndApply) AWS SCT. | DBA | 
| Validasi objek dalam database target. | Validasi objek yang dibuat pada langkah sebelumnya dalam database target. Menulis ulang atau mendesain ulang objek apa pun yang tidak berhasil dikonversi. | DBA | 
| Nonaktifkan kunci dan pemicu asing. | Nonaktifkan kunci dan pemicu asing apa pun. Ini dapat menyebabkan masalah pemuatan data selama proses pemuatan penuh saat menjalankan AWS DMS. | DBA | 

### Migrasi data menggunakan AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans replikasi AWS DMS. | Masuk ke AWS Management Console, dan buka konsol AWS DMS. Di panel navigasi, pilih Instance **replikasi, **Buat** instance** replikasi. Untuk petunjuk terperinci, lihat [langkah 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance) dalam *Memulai AWS DMS* dalam dokumentasi AWS DMS. | DBA | 
| Buat titik akhir sumber dan target. | Buat titik akhir sumber dan target, Uji koneksi dari instance replikasi ke titik akhir sumber dan target. Untuk petunjuk terperinci, lihat [langkah 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints) dalam *Memulai AWS DMS* dalam dokumentasi AWS DMS. | DBA | 
| Buat tugas replikasi. | Buat tugas replikasi dan pilih metode migrasi yang sesuai. Untuk petunjuk terperinci, lihat [langkah 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) dalam *Memulai AWS DMS* dalam dokumentasi AWS DMS. | DBA | 
| Mulai replikasi data. | Mulai tugas replikasi dan pantau log untuk kesalahan apa pun. | DBA | 

### Migrasi aplikasi Anda
<a name="migrate-your-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server aplikasi. | Buat server aplikasi baru di AWS. | Pemilik aplikasi | 
| Migrasikan kode aplikasi. | Migrasikan kode aplikasi ke server baru. | Pemilik aplikasi | 
| Konfigurasikan server aplikasi. | Konfigurasikan server aplikasi untuk database target dan driver. | Pemilik aplikasi | 
| Optimalkan kode aplikasi. | Optimalkan kode aplikasi untuk mesin target. | Pemilik aplikasi | 

### Potong ke database target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi pengguna. | Dalam database Amazon Redshift target, validasi pengguna dan berikan mereka peran dan hak istimewa. | DBA | 
| Validasi bahwa aplikasi terkunci. | Pastikan aplikasi terkunci, untuk mencegah perubahan lebih lanjut. | Pemilik aplikasi | 
| Validasi data. | Validasi data dalam database Amazon Redshift target. | DBA | 
| Aktifkan kunci dan pemicu asing. | Aktifkan kunci asing dan pemicu di database Amazon Redshift target. | DBA | 
| Connect ke database baru. | Konfigurasikan aplikasi untuk terhubung ke database Amazon Redshift baru. | Pemilik aplikasi | 
| Lakukan pemeriksaan akhir. | Lakukan pemeriksaan sistem yang final dan komprehensif sebelum ditayangkan. | DBA, Pemilik aplikasi | 
| Pergi hidup. | Tayangkan langsung dengan basis data Amazon Redshift target. | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. | Matikan sumber daya AWS sementara seperti instans replikasi AWS DMS dan instans yang EC2 digunakan untuk AWS SCT.  | DBA, Administrator sistem | 
| Tinjau dokumen.  | Meninjau dan memvalidasi dokumen proyek migrasi.     | DBA, Administrator sistem | 
| Kumpulkan metrik. | Kumpulkan informasi tentang proyek migrasi, seperti waktu untuk bermigrasi, persentase tugas manual versus alat, dan penghematan biaya total.  | DBA, Administrator sistem | 
| Tutup proyek. | Tutup proyek dan berikan umpan balik. | DBA, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-resources"></a>

**Referensi**
+ [Panduan pengguna AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Panduan pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Panduan memulai Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

**Tutorial dan video**
+ [Selami AWS SCT dan AWS DMS (presentasi dari AWS](https://www.youtube.com/watch?v=kJs9U4ys5FE) re: Invent 2019)
+ [Memulai AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)

# Migrasikan database Oracle ke Aurora PostgreSQL menggunakan AWS DMS dan AWS SCT
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct"></a>

*Senthil Ramasamy, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-summary"></a>

Pola ini menjelaskan cara memigrasikan database Oracle ke Amazon Aurora PostgreSQL Compatible Edition dengan menggunakan AWS Data Migration Service (AWS DMS) dan AWS Schema Conversion Tool (AWS SCT). 

Pola ini mencakup database Oracle sumber yang ada di lokasi, database Oracle yang diinstal pada instans Amazon Elastic Compute Cloud (Amazon), dan EC2 Amazon Relational Database Service (Amazon RDS) untuk database Oracle. Pola mengubah database ini menjadi Aurora PostgreSQL kompatibel.

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Database Oracle di pusat data lokal atau di AWS Cloud.
+ Klien SQL diinstal baik pada mesin lokal atau pada sebuah EC2 instance.
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT, diinstal pada mesin lokal atau instance EC2 tempat AWS SCT diinstal. 

**Batasan**
+ Batas ukuran database: 128 TB 
+ Jika database sumber mendukung aplikasi komersial off-the-shelf (COTS) atau khusus vendor, Anda mungkin tidak dapat mengonversinya ke mesin basis data lain. Sebelum menggunakan pola ini, konfirmasikan bahwa aplikasi mendukung Aurora PostgreSQL kompatibel.  

**Versi produk**
+ Untuk database Oracle yang dikelola sendiri, AWS DMS mendukung semua edisi database Oracle untuk versi 10.2 dan yang lebih baru (untuk versi 10.x), 11g, dan hingga 12.2, 18c, dan 19c. Untuk daftar terbaru versi database Oracle yang didukung (baik yang dikelola sendiri maupun Amazon RDS for Oracle), [lihat Menggunakan database Oracle sebagai sumber untuk AWS DMS dan [Menggunakan database PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) sebagai target untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). 
+ Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. Untuk informasi tentang versi database Oracle yang didukung oleh AWS SCT, lihat dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 
+ Aurora mendukung versi PostgreSQL yang tercantum dalam rilis Amazon [Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) PostgreSQL dan versi mesin.

## Arsitektur
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-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**
+ Kompatibel dengan Aurora PostgreSQL 

**Arsitektur target**

![\[Arsitektur target untuk memigrasikan database Oracle ke Aurora PostgreSQL yang kompatibel.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/68beb634-926e-4908-97b1-edcd23e06a2b.png)


**Arsitektur migrasi data**
+ Dari database Oracle yang berjalan di AWS Cloud   
![\[Arsitektur migrasi data untuk database Oracle di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/7fc32019-3db1-485b-93e5-6d5539be048c.png)

   
+ Dari database Oracle yang berjalan di pusat data lokal  
![\[Arsitektur migrasi data untuk database Oracle di pusat data lokal.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/c70d8774-aef7-4414-9766-ce8f25757c4b.png)

## Alat
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-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.
+ [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.

## Epik
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan database sumber. | Untuk menyiapkan database sumber, lihat [Menggunakan Oracle Database sebagai sumber AWS SCT dalam dokumentasi](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) AWS SCT. | DBA | 
| Buat EC2 instance untuk AWS SCT. | Buat dan konfigurasikan EC2 instance untuk AWS SCT, jika diperlukan. | DBA | 
| Unduh AWS SCT. | Unduh versi terbaru AWS SCT dan driver terkait. Untuk informasi selengkapnya, lihat [Menginstal, memverifikasi, dan memperbarui AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) di dokumentasi AWS SCT. | DBA | 
| Tambahkan pengguna dan izin. | Menambahkan dan memvalidasi pengguna prasyarat dan izin dalam database sumber. | DBA | 
| Buat proyek AWS SCT. | Buat proyek AWS SCT untuk beban kerja, dan sambungkan ke database sumber. Untuk petunjuknya, lihat [Membuat proyek AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Project) dan [Menambahkan server database](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers) dalam dokumentasi AWS SCT. | DBA | 
| Mengevaluasi kelayakan. | Buat laporan penilaian, yang merangkum item tindakan untuk skema yang tidak dapat dikonversi secara otomatis dan memberikan perkiraan untuk upaya konversi manual. Untuk informasi selengkapnya, lihat [Membuat dan meninjau laporan penilaian migrasi database dalam dokumentasi](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) AWS SCT. | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans DB Amazon RDS target. | Buat instans DB Amazon RDS target, menggunakan Amazon Aurora sebagai mesin database. Untuk petunjuknya, lihat [Membuat instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) dalam dokumentasi Amazon RDS. | DBA | 
| Ekstrak pengguna, peran, dan izin. | Ekstrak daftar pengguna, peran, dan izin dari database sumber. | DBA | 
| Pengguna peta. | Memetakan pengguna database yang ada untuk pengguna database baru. | Pemilik aplikasi | 
| Buat pengguna. | Buat pengguna di database target. | DBA, Pemilik aplikasi | 
| Terapkan peran. | Terapkan peran dari langkah sebelumnya ke database target. | DBA | 
| Periksa opsi, parameter, file jaringan, dan tautan basis data. | Tinjau database sumber untuk opsi, parameter, file jaringan, dan tautan basis data, dan kemudian evaluasi penerapannya ke basis data target. | DBA | 
| Terapkan pengaturan. | Terapkan pengaturan yang relevan ke database target. | DBA | 

### Transfer objek
<a name="transfer-objects"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan konektivitas AWS SCT. | Konfigurasikan konektivitas AWS SCT ke database target. | DBA | 
| Konversi skema menggunakan AWS SCT. | AWS SCT secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan basis data target. Kode apa pun yang tidak dapat dikonversi oleh alat secara otomatis ditandai dengan jelas sehingga Anda dapat mengonversinya secara manual. | DBA | 
| Tinjau laporannya. | Tinjau laporan SQL yang dihasilkan dan simpan kesalahan dan peringatan apa pun. | DBA | 
| Terapkan perubahan skema otomatis. | Terapkan perubahan skema otomatis ke database target atau simpan sebagai file.sql. | DBA | 
| Validasi objek. | Validasi bahwa AWS SCT membuat objek pada target.  | DBA | 
| Menangani item yang tidak dikonversi. | Menulis ulang, menolak, atau mendesain ulang item apa pun secara manual yang gagal dikonversi secara otomatis. | DBA, Pemilik aplikasi | 
| Terapkan peran dan izin pengguna. | Terapkan peran yang dihasilkan dan izin pengguna dan tinjau pengecualian apa pun. | DBA | 

### Migrasikan data
<a name="migrate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan metodenya. | Tentukan metode untuk memigrasi data. | DBA | 
| Buat contoh replikasi. | Buat instance replikasi dari konsol AWS DMS. Untuk informasi selengkapnya, lihat [Bekerja dengan instans replikasi AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) AWS DMS. | DBA | 
| Buat titik akhir sumber dan target. | Untuk membuat titik akhir, ikuti petunjuk dalam [Membuat titik akhir sumber dan target dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | DBA | 
| Buat tugas replikasi. | Untuk membuat tugas, lihat [Bekerja dengan tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) dalam dokumentasi AWS DMS. | DBA | 
| Mulai tugas replikasi dan pantau log. | Untuk informasi selengkapnya tentang langkah ini, lihat [Memantau tugas AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html) dalam dokumentasi AWS DMS. | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menganalisis dan mengkonversi item SQL dalam kode aplikasi. | Gunakan AWS SCT untuk menganalisis dan mengonversi item SQL dalam kode aplikasi. Ketika Anda mengonversi skema database Anda dari satu mesin ke mesin lain, Anda juga perlu memperbarui kode SQL dalam aplikasi Anda untuk berinteraksi dengan mesin database baru, bukan yang lama. Anda dapat melihat, menganalisis, mengedit, dan menyimpan kode SQL yang dikonversi. | Pemilik aplikasi | 
| Buat server aplikasi. | Buat server aplikasi baru di AWS. | Pemilik aplikasi | 
| Migrasikan kode aplikasi. | Migrasikan kode aplikasi ke server baru. | Pemilik aplikasi | 
| Konfigurasikan server aplikasi. | Konfigurasikan server aplikasi untuk database target dan driver. | Pemilik aplikasi | 
| Perbaiki kode. | Perbaiki kode apa pun yang khusus untuk mesin basis data sumber di aplikasi Anda. | Pemilik aplikasi | 
| Optimalkan kode. | Optimalkan kode aplikasi Anda untuk mesin basis data target. | Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Potong ke database target. | Lakukan cutover ke database baru. | DBA | 
| Kunci aplikasi. | Kunci aplikasi dari perubahan lebih lanjut. | Pemilik aplikasi | 
| Validasi perubahan. | Validasi bahwa semua perubahan disebarkan ke database target. | DBA | 
| Redirect ke database target. | Arahkan server aplikasi baru ke database target. | Pemilik aplikasi | 
| Periksa semuanya. | Lakukan pemeriksaan sistem yang final dan komprehensif. | Pemilik aplikasi | 
| Pergilah hidup. | Selesaikan tugas cutover akhir. | Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya sementara. | Matikan sumber daya AWS sementara seperti instans replikasi AWS DMS dan instans yang EC2 digunakan untuk AWS SCT. | DBA, Pemilik aplikasi | 
| Perbarui umpan balik. | Perbarui umpan balik tentang proses AWS DMS untuk tim internal. | DBA, Pemilik aplikasi | 
| Merevisi proses dan template. | Merevisi proses AWS DMS dan meningkatkan template jika perlu. | DBA, Pemilik aplikasi | 
| Validasi dokumen. | Meninjau dan memvalidasi dokumen proyek. | DBA, Pemilik aplikasi | 
| Kumpulkan metrik. | Kumpulkan metrik untuk mengevaluasi waktu migrasi, persentase penghematan biaya manual versus alat, dan sebagainya. | DBA, Pemilik aplikasi | 
| Tutup proyek. | Tutup proyek migrasi dan berikan umpan balik kepada pemangku kepentingan. | DBA, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-resources"></a>

**Referensi**
+ [Menggunakan Database Oracle sebagai Sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Menggunakan Database PostgreSQL sebagai Target untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Oracle Database 11g/12c ke Amazon Aurora dengan PostgreSQL Kompatibilitas (9.6.x) Playbook Migrasi](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Oracle Database 19c ke Amazon Aurora dengan PostgreSQL Kompatibilitas (12.4) Playbook Migrasi](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Migrasi database Amazon RDS for Oracle ke Amazon Aurora PostgreSQL Edisi yang kompatibel](https://docs.aws.amazon.com/dms/latest/sbs/chap-oracle-postgresql.html)
+ [Layanan Migrasi Data AWS](https://aws.amazon.com/dms/)
+ [Alat Konversi Skema AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Bermigrasi dari Oracle ke Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutorial dan video**
+ [ Step-by-StepPanduan Migrasi Database](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Layanan Migrasi Data AWS](https://www.youtube.com/watch?v=zb4GcjEdl8U) (video)
+ [Migrasi database Oracle ke PostgreSQL](https://www.youtube.com/watch?v=ibtNkChGFkw) (video)

## Informasi tambahan
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-additional"></a>

.

# Memigrasi data dari database Oracle lokal ke Aurora PostgreSQL
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql"></a>

*Michelle Deng dan Shunan Xiang, Amazon Web Services*

## Ringkasan
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-summary"></a>

Pola ini memberikan panduan untuk migrasi data dari database Oracle lokal ke Amazon Aurora PostgreSQL Edisi yang kompatibel dengan Amazon Aurora. Ini menargetkan strategi migrasi data online dengan jumlah downtime minimal untuk database Oracle multi-terabyte yang berisi tabel besar dengan aktivitas bahasa manipulasi data tinggi (DML/bahasa manipulasi data tinggi). Database siaga Oracle Active Data Guard digunakan sebagai sumber untuk membongkar migrasi data dari database utama. Replikasi dari database utama Oracle ke standby dapat ditangguhkan selama beban penuh untuk menghindari kesalahan ORA-01555. 

Kolom tabel di kunci utama (PKs) atau kunci asing (FKs), dengan tipe data NUMBER, biasanya digunakan untuk menyimpan bilangan bulat di Oracle. Kami menyarankan Anda mengonversinya menjadi INT atau BIGINT di PostgreSQL untuk kinerja yang lebih baik. Anda dapat menggunakan AWS Schema Conversion Tool (AWS SCT) untuk mengubah pemetaan tipe data default untuk kolom PK dan FK. (Untuk informasi lebih lanjut, lihat posting AWS blog [Mengonversi tipe data NUMBER dari Oracle ke PostgreSQL](https://aws.amazon.com/blogs/database/convert-the-number-data-type-from-oracle-to-postgresql-part-2/).) Migrasi data dalam pola ini menggunakan AWS Database Migration Service (AWS DMS) untuk pemuatan penuh dan pengambilan data perubahan (CDC).

Anda juga dapat menggunakan pola ini untuk memigrasikan database Oracle lokal ke Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL, atau database Oracle yang di-host di Amazon Elastic Compute Cloud (Amazon) ke EC2 Amazon RDS for PostgreSQL atau Aurora PostgreSQL yang kompatibel dengan Aurora.

## Prasyarat dan batasan
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber Oracle di pusat data lokal dengan siaga Active Data Guard yang dikonfigurasi 
+ AWS Direct Connect dikonfigurasi antara pusat data lokal dan AWS Cloud
+ Keakraban dengan [menggunakan database Oracle sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Keakraban dengan [menggunakan database PostgreSQL sebagai target AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) DMS

**Batasan**
+ Cluster database Amazon Aurora dapat dibuat dengan penyimpanan hingga 128 TiB. Instans database Amazon RDS for PostgreSQL dapat dibuat dengan penyimpanan hingga 64 TiB. Untuk informasi penyimpanan terbaru, lihat penyimpanan [dan keandalan Amazon Aurora serta penyimpanan](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html) [instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) dalam dokumentasi AWS.

**Versi produk**
+ AWS DMS mendukung semua edisi database Oracle untuk versi 10.2 dan yang lebih baru (untuk versi 10.x), 11g dan hingga 12.2, 18c, dan 19c. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) AWS. 

## Arsitektur
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal dengan siaga Oracle Active Data Guard yang dikonfigurasi 

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

**Arsitektur migrasi data**

![\[Migrasi database Oracle ke Aurora PostgreSQL kompatibel\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/49f9b03e-6d33-4ac0-94ad-d3e6d02e6d63/images/0038a36b-fb7d-4f2d-8376-8d38290b0736.png)


## Alat
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-tools"></a>
+ **AWS DMS** - [AWS Database Migration Service](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) mendukung beberapa basis data sumber dan target. Lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) dalam dokumentasi AWS DMS untuk daftar versi dan edisi database target dan sumber Oracle yang didukung. Jika database sumber tidak didukung oleh AWS DMS, Anda harus memilih metode lain untuk memigrasikan data di Fase 6 (di bagian *Epics*). **Catatan penting:** Karena ini adalah migrasi heterogen, Anda harus terlebih dahulu memeriksa untuk melihat apakah database mendukung aplikasi komersial off-the-shelf (COTS). Jika aplikasinya COTS, konsultasikan dengan vendor untuk mengonfirmasi bahwa Aurora PostgreSQL kompatibel didukung sebelum melanjutkan. Untuk informasi selengkapnya, lihat [Panduan Step-by-Step Migrasi AWS DMS di dokumentasi](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) AWS.
+ **AWS SCT** - [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.htm) Tool (AWS SCT) memfasilitasi migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target. Kode khusus yang dikonversi alat mencakup tampilan, prosedur tersimpan, dan fungsi. Kode apa pun yang tidak dapat dikonversi oleh alat secara otomatis ditandai dengan jelas sehingga Anda dapat mengonversinya sendiri. 

## Epik
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target. |  | DBA | 
| Instal AWS SCT dan driver. |  | DBA | 
| Tambahkan dan validasi pengguna prasyarat AWS SCT dan database sumber hibah. |  | DBA | 
| Buat proyek AWS SCT untuk beban kerja, dan sambungkan ke database sumber. |  | DBA | 
| Menghasilkan laporan penilaian dan mengevaluasi kelayakan. |  | DBA, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database target yang kompatibel dengan Aurora PostgreSQL. |  | DBA | 
| Ekstrak daftar pengguna, peran, dan hibah dari database sumber. |  | DBA | 
| Memetakan pengguna database yang ada untuk pengguna database baru. |  | Pemilik aplikasi | 
| Buat pengguna di database target. |  | DBA | 
| Terapkan peran dari langkah sebelumnya ke database target yang kompatibel dengan Aurora PostgreSQL. |  | DBA | 
| Tinjau opsi basis data, parameter, file jaringan, dan tautan basis data dari basis data sumber, dan evaluasi penerapannya ke basis data target. |  | DBA, Pemilik aplikasi | 
| Terapkan pengaturan yang relevan ke database target. |  | DBA | 

### Mempersiapkan konversi kode objek database
<a name="prepare-for-database-object-code-conversion"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan konektivitas AWS SCT ke database target. |  | DBA | 
| Konversikan skema di AWS SCT, dan simpan kode yang dikonversi sebagai file.sql. |  | DBA, Pemilik aplikasi | 
| Secara manual mengonversi objek database apa pun yang gagal dikonversi secara otomatis. |  | DBA, Pemilik aplikasi | 
| Optimalkan konversi kode database. |  | DBA, Pemilik aplikasi | 
| Pisahkan file.sql menjadi beberapa file.sql berdasarkan jenis objek. |  | DBA, Pemilik aplikasi | 
| Validasi skrip SQL dalam database target. |  | DBA, Pemilik aplikasi | 

### Mempersiapkan migrasi data
<a name="prepare-for-data-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans replikasi AWS DMS. |  | DBA | 
| Buat titik akhir sumber dan target.  | Jika tipe data PKs dan FKs dikonversi dari NUMBER di Oracle ke BIGINT di PostgreSQL, pertimbangkan untuk menentukan atribut koneksi saat Anda membuat titik akhir sumber. `numberDataTypeScale=-2` | DBA | 

### Migrasikan data — beban penuh
<a name="migrate-data-ndash-full-load"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat skema dan tabel dalam database target. |  | DBA | 
|  Buat tugas beban penuh AWS DMS dengan mengelompokkan tabel atau membagi tabel besar berdasarkan ukuran tabel. |  | DBA | 
| Hentikan aplikasi pada database sumber Oracle untuk waktu yang singkat. |  | Pemilik aplikasi | 
| Verifikasi bahwa database siaga Oracle sinkron dengan database utama, dan hentikan replikasi dari database utama ke database siaga. |  | DBA, Pemilik aplikasi | 
| Mulai aplikasi pada database sumber Oracle. |  | Pemilik aplikasi | 
| Mulai tugas beban penuh AWS DMS secara paralel dari database siaga Oracle ke database yang kompatibel dengan Aurora PostgreSQL. |  | DBA | 
| Buat PKs dan indeks sekunder setelah beban penuh selesai. |  | DBA | 
| Validasi data. |  | DBA | 

### Migrasi data — CDC
<a name="migrate-data-ndash-cdc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas replikasi berkelanjutan AWS DMS dengan menentukan waktu mulai CDC kustom atau nomor perubahan sistem (SCN) saat siaga Oracle disinkronkan dengan database utama, dan sebelum aplikasi dimulai ulang di tugas sebelumnya. |  | DBA | 
| Mulai tugas AWS DMS secara paralel untuk mereplikasi perubahan yang sedang berlangsung dari database siaga Oracle ke database yang kompatibel dengan Aurora PostgreSQL. |  | DBA | 
| Membangun kembali replikasi dari database utama Oracle ke database siaga. |  | DBA | 
| Memantau log dan menghentikan aplikasi pada database Oracle ketika target database Aurora PostgreSQL kompatibel hampir sinkron dengan database sumber Oracle. |  | DBA, Pemilik aplikasi | 
| Hentikan tugas AWS DMS ketika target sepenuhnya disinkronkan dengan database Oracle sumber. |  | DBA | 
| Membuat FKs dan memvalidasi data dalam database target. |  | DBA | 
| Buat fungsi, tampilan, pemicu, urutan, dan jenis objek lainnya dalam database target. |  | DBA | 
| Terapkan hibah peran dalam database target. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan AWS SCT untuk menganalisis dan mengonversi pernyataan SQL di dalam kode aplikasi. |  | Pemilik aplikasi | 
| Buat server aplikasi baru di AWS. |  | Pemilik aplikasi | 
| Migrasikan kode aplikasi ke server baru. |  | Pemilik aplikasi | 
| Konfigurasikan server aplikasi untuk database target dan driver. |  | Pemilik aplikasi | 
| Perbaiki kode apa pun yang khusus untuk mesin basis data sumber dalam aplikasi. |  | Pemilik aplikasi | 
| Optimalkan kode aplikasi untuk database target. |  | Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Arahkan server aplikasi baru ke database target. |  | DBA, Pemilik aplikasi | 
| Lakukan pemeriksaan kewarasan. |  | DBA, Pemilik aplikasi | 
| Pergilah hidup. |  | DBA, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, Administrator sistem | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, Pemilik aplikasi | 
| Kumpulkan metrik untuk waktu migrasi, persentase penggunaan manual versus alat, penghematan biaya, dan data serupa. |  | DBA, Pemilik aplikasi | 
| Tutup proyek dan berikan umpan balik. |  | DBA, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-resources"></a>

**Referensi**
+ [Database Oracle ke Aurora PostgreSQL kompatibel: Migrasi Playbook](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Migrasi Amazon RDS for Oracle Database ke Amazon Aurora MySQL](https://docs.aws.amazon.com/dms/latest/sbs/chap-rdsoracle2aurora.html)
+ [Situs AWS DMS](https://aws.amazon.com/dms/)
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Situs AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Bermigrasi dari Oracle ke Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

**Tutorial**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/) 
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [ Step-by-StepPanduan Layanan Migrasi Database AWS](https://docs.aws.amazon.com/dms/latest/sbs/dms-sbs-welcome.html)

# Bermigrasi dari SAP ASE ke Amazon RDS for SQL Server menggunakan AWS DMS
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms"></a>

*Amit Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database SAP Adaptive Server Enterprise (ASE) ke instans DB Layanan Relational Database Amazon (Amazon RDS) yang menjalankan Microsoft SQL Server. Basis data sumber dapat ditemukan di pusat data lokal atau di instans Amazon Elastic Compute Cloud EC2 (Amazon). Pola ini menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data dan (opsional) alat rekayasa perangkat lunak berbantuan komputer (CASE) untuk mengonversi skema database. 

## Prasyarat dan batasan
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database SAP ASE di pusat data lokal atau pada instans EC2 
+ Target Amazon RDS for SQL Server database yang aktif dan berjalan

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ SAP ASE versi 15.7 atau 16.x saja. Untuk informasi terbaru, lihat [Menggunakan Database SAP sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html).
+ Untuk database target Amazon RDS, AWS DMS mendukung [versi Microsoft SQL Server di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) untuk edisi Enterprise, Standard, Web, dan Express. Untuk informasi terbaru tentang versi yang didukung, lihat [dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html). Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif.  

## Arsitektur
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database SAP ASE yang ada di tempat atau di instans Amazon EC2 

**Tumpukan teknologi target**
+ Instans Amazon RDS for SQL Server DB

**Arsitektur sumber dan target**

*Dari database SAP ASE di Amazon EC2 ke Amazon RDS untuk instans DB Amazon RDS for SQL Server:*

![\[Arsitektur target untuk SAP ASE di Amazon EC2 ke Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/957bdcf0-ab58-4b6d-a71a-d0ecbc31822c.png)


*Dari database SAP ASE lokal ke instans Amazon RDS for SQL Server DB:*

![\[Arsitektur target untuk SAP ASE lokal ke Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/65aab2f5-0e63-4c34-97e2-cd4ac23751a4.png)


## Alat
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-tools"></a>
+ [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) adalah layanan web yang dapat Anda gunakan untuk memigrasikan data dari database Anda yang ada di tempat, pada instans Amazon RDS DB, atau dalam database pada EC2 instans, ke database pada layanan AWS seperti Amazon RDS for SQL Server atau instans. EC2 Anda juga dapat memigrasikan database dari layanan AWS ke database lokal. Anda dapat memigrasikan data antara mesin database heterogen atau homogen.
+ [Untuk konversi skema, Anda dapat menggunakan [erwin Data](https://erwin.com/products/erwin-data-modeler/) Modeler atau SAP secara opsional. PowerDesigner](https://www.sap.com/products/technology-platform/powerdesigner-data-modeling-tools.html)

## Epik
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target. |  | DBA | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin | 
| Identifikasi strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet. |  | SysAdmin | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACLs). |  | SysAdmin | 
| Konfigurasikan dan mulai instans Amazon RDS DB. |  | SysAdmin | 

### Migrasikan data - opsi 1
<a name="migrate-data---option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan skema database secara manual atau gunakan alat CASE seperti erwin Data Modeler atau SAP. PowerDesigner |  | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-data---option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data menggunakan AWS DMS. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, SysAdmin, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, SysAdmin | 
| Tinjau dan validasi dokumen proyek. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Kumpulkan metrik seperti waktu untuk bermigrasi, persentase tugas manual versus otomatis, dan penghematan biaya. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Tutup proyek dan berikan umpan balik. |  | DBA, SysAdmin, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-resources"></a>

**Referensi**
+ [Situs AWS DMS](https://aws.amazon.com/dms/)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Menggunakan Database SAP ASE sebagai Sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)
+ [Batasan untuk RDS Kustom untuk SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan AWS DMS
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms"></a>

*Marcelo Fernandes, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift dengan menggunakan AWS Data Migration Service (AWS DMS). 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Microsoft SQL Server sumber di pusat data lokal
+ [Prasyarat lengkap untuk menggunakan database Amazon Redshift sebagai target AWS DMS, seperti yang dibahas dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html#CHAP_Target.Redshift.Prerequisites)

**Versi produk**
+ SQL Server 2005-2019, Enterprise, Standard, Workgroup, Developer, dan edisi Web. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Microsoft SQL Server sebagai Sumber untuk AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) AWS. 

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal 

**Tumpukan teknologi target**
+ Amazon Redshift

**Arsitektur migrasi data**

 

![\[Arsitektur untuk memigrasikan database SQL Server lokal ke Amazon Redshift menggunakan AWS DMS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/65b2be1b-740e-4d4d-99a8-f77c4ea6553d/images/3a094bf2-be31-4d83-8dd2-9dc078321055.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) adalah layanan migrasi data yang mendukung beberapa jenis basis data sumber dan target. Untuk informasi tentang versi dan edisi database Microsoft SQL Server yang didukung untuk digunakan dengan AWS DMS, lihat Menggunakan [Database Microsoft SQL Server sebagai Sumber untuk AWS DMS dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). Jika AWS DMS tidak mendukung basis data sumber Anda, Anda harus memilih metode alternatif untuk migrasi data.

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target dan mesin. |  | DBA | 
| Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, Administrator sistem | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, Administrator sistem | 
| Identifikasi strategi migrasi aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). | Untuk informasi selengkapnya, lihat [Bekerja dengan instans DB di VPC dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) AWS. | Administrator sistem | 
| Buat grup keamanan. |  | Administrator sistem | 
| Konfigurasikan dan mulai cluster Amazon Redshift. | Untuk informasi selengkapnya, lihat [Membuat contoh klaster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html) di dokumentasi Amazon Redshift. | DBA, Administrator sistem | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dari database Microsoft SQL Server dengan menggunakan AWS DMS. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya sementara. |  | DBA, Administrator sistem | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik seperti waktu untuk bermigrasi, persentase tugas manual versus otomatis, dan penghematan biaya. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek dan berikan umpan balik. |  | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-resources"></a>

**Referensi**
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/index.html)
+ [Dokumentasi Amazon Redshift](https://docs.aws.amazon.com/redshift/)
+ [Harga Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Menggunakan database Amazon Redshift sebagai target untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 

# Memigrasikan database Microsoft SQL Server lokal ke Amazon Redshift menggunakan agen ekstraksi data AWS SCT
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents"></a>

*Neha Thakur, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-summary"></a>

Pola ini menguraikan langkah-langkah untuk memigrasikan database sumber Microsoft SQL Server lokal ke database target Amazon Redshift dengan menggunakan agen ekstraksi data AWS Schema Conversion Tool (AWS SCT). Agen adalah program eksternal yang terintegrasi dengan AWS SCT tetapi melakukan transformasi data di tempat lain dan berinteraksi dengan layanan AWS lainnya atas nama Anda.   

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-prereqs"></a>

**Prasyarat**
+ Database sumber Microsoft SQL Server yang digunakan untuk beban kerja gudang data di pusat data lokal
+ Akun AWS yang aktif

**Versi produk**
+ Microsoft SQL Server versi 2008 atau yang lebih baru. Untuk daftar terbaru versi yang didukung, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-architecture"></a>

**sumber** **tumpukan teknologi**
+ Database Microsoft SQL Server lokal

**Target** **tumpukan teknologi**
+ Amazon Redshift

**Arsitektur migrasi data**

![\[Memigrasi database SQL Server ke Amazon Redshift dengan menggunakan agen ekstraksi data AWS SCT.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6975f67a-0705-47b4-a1b8-90aaa2597a04/images/dbff958b-7601-442e-9e23-4d07edd0ccfd.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-tools"></a>
+ [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Tool (AWS SCT) menangani migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target. Ketika basis data sumber dan target sangat berbeda, Anda dapat menggunakan agen AWS SCT untuk melakukan transformasi data tambahan. Untuk informasi selengkapnya, lihat [Memigrasi Data dari Gudang Data Lokal ke Amazon Redshift](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.dw.html) di dokumentasi AWS.

## Praktik terbaik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-best-practices"></a>
+ [Praktik terbaik untuk AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_BestPractices.html)
+ [Praktik terbaik untuk Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/best-practices.html)

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi dan mesin basis data sumber dan target. |  | DBA | 
| Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, SysAdmin | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat (kapasitas, fitur penyimpanan, fitur jaringan). |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin | 
| Pilih strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Konfigurasikan infrastruktur
<a name="configure-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet. |  | SysAdmin | 
| Buat grup keamanan. |  | SysAdmin | 
| Konfigurasikan dan mulai cluster Amazon Redshift. |  | SysAdmin | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data menggunakan agen ekstraksi data AWS SCT. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-applications"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi yang dipilih. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Potong ke database target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, SysAdmin, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, SysAdmin | 
| Tinjau dan validasi dokumen proyek. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Kumpulkan metrik seperti waktu untuk bermigrasi, persentase tugas manual versus otomatis, dan penghematan biaya. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Tutup proyek dan berikan umpan balik apa pun. |  | DBA, SysAdmin, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-resources"></a>

**Referensi**
+ [Panduan Pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Menggunakan Agen Ekstraksi Data](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Harga Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutorial dan video**
+ [Memulai dengan AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)
+ [Memulai dengan Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

# Migrasi aplikasi lama dari Oracle Pro\$1C ke ECPG
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg"></a>

*Sai Parthasaradhi dan Mahesh Balumuri, Amazon Web Services*

## Ringkasan
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-summary"></a>

Sebagian besar aplikasi lama yang telah tertanam kode SQL menggunakan precompiler Oracle Pro\$1C untuk mengakses database. Ketika Anda memigrasikan database Oracle ini ke Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL atau Amazon Aurora PostgreSQL Compatible Edition, Anda harus mengonversi kode aplikasi Anda ke format yang kompatibel dengan precompiler di PostgreSQL, yang disebut ECPG. Pola ini menjelaskan cara mengonversi kode Oracle Pro\$1C ke padanannya di PostgreSQL ECPG. 

Untuk informasi selengkapnya tentang Pro\$1C, lihat dokumentasi [Oracle](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415). Untuk pengantar singkat tentang ECPG, lihat bagian [Informasi tambahan](#migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional).

## Prasyarat dan batasan
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL
+ Database Oracle berjalan di tempat

## Alat
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-tools"></a>
+ Paket PostgreSQL tercantum di bagian berikutnya.
+ [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) adalah alat sumber terbuka untuk berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda. Dengan konfigurasi minimal, Anda dapat menjalankan perintah AWS CLI yang menerapkan fungsionalitas yang setara dengan yang disediakan oleh AWS Management Console berbasis browser dari prompt perintah.

## Epik
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-epics"></a>

### Mengatur lingkungan build pada CentOS atau RHEL
<a name="set-the-build-environment-on-centos-or-rhel"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal paket PostgreSQL. | Instal paket PostgreSQL yang diperlukan dengan menggunakan perintah berikut.<pre>yum update -y<br />yum install -y yum-utils<br />rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm<br />dnf -qy module disable postgresql</pre> | Pengembang aplikasi, DevOps insinyur | 
| Instal file header dan pustaka. | Instal `postgresql12-devel` paket, yang berisi file header dan pustaka, dengan menggunakan perintah berikut. Instal paket di lingkungan pengembangan dan runtime untuk menghindari kesalahan di lingkungan runtime.<pre>dnf -y install postgresql12-devel<br />yum install ncompress zip ghostscript jq unzip wget git -y</pre>Untuk lingkungan pengembangan saja, jalankan juga perintah berikut.<pre>yum install zlib-devel make -y<br />ln -s /usr/pgsql-12/bin/ecpg /usr/bin/</pre> | Pengembang aplikasi, DevOps insinyur | 
| Konfigurasikan variabel jalur lingkungan. | Mengatur jalur lingkungan untuk pustaka klien PostgreSQL.<pre>export PATH=$PATH:/usr/pgsql-12/bin</pre> | Pengembang aplikasi, DevOps insinyur | 
| Instal perangkat lunak tambahan seperlunya. | Jika diperlukan, instal **pgLoader** sebagai pengganti **SQL\$1** loader di Oracle.<pre>wget -O /etc/yum.repos.d/pgloader-ccl.repo https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/el/7.repo<br />yum install pgloader-ccl -y<br />ln -s /opt/pgloader-ccl/bin/pgloader /usr/bin/</pre>Jika Anda memanggil aplikasi Java apa pun dari modul Pro\$1 C, instal Java.<pre>yum install java -y</pre>Instal **ant** untuk mengkompilasi kode Java.<pre>yum install ant -y</pre> | Pengembang aplikasi, DevOps insinyur | 
| Instal AWS CLI. | Instal AWS CLI untuk menjalankan perintah agar berinteraksi dengan layanan AWS seperti AWS Secrets Manager dan Amazon Simple Storage Service (Amazon S3) dari aplikasi Anda.<pre>cd /tmp/<br />curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />./aws/install -i /usr/local/aws-cli -b /usr/local/bin --update</pre> | Pengembang aplikasi, DevOps insinyur | 
| Identifikasi program yang akan dikonversi. | Identifikasi aplikasi yang ingin Anda konversi dari Pro\$1 C ke ECPG. | Pengembang aplikasi, Pemilik aplikasi | 

### Konversi kode Pro\$1 C ke ECPG
<a name="convert-pro-c-code-to-ecpg"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus header yang tidak diinginkan. | Hapus `include ` header yang tidak diperlukan di PostgreSQL, seperti,, dan. `oci.h` `oratypes` `sqlda` | Pemilik aplikasi, Pengembang aplikasi | 
| Perbarui deklarasi variabel. | Tambahkan `EXEC SQL` pernyataan untuk semua deklarasi variabel yang digunakan sebagai variabel host.Hapus `EXEC SQL VAR` deklarasi seperti berikut ini dari aplikasi Anda.<pre>EXEC SQL VAR query IS STRING(2048);</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Perbarui fungsionalitas ROWNUM. | `ROWNUM`Fungsi ini tidak tersedia di PostgreSQL. Ganti ini dengan fungsi `ROW_NUMBER` jendela dalam kueri SQL.Kode Pro\$1 C:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME <br />FROM  DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%' <br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM;</pre>Kode ECPG:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME , ROW_NUMBER() OVER (ORDER BY FILE_NAME DESC) AS ROWNUM<br />FROM  demo_schema.DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%'<br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM; </pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Perbarui parameter fungsi untuk menggunakan variabel alias. | Di PostgreSQL, parameter fungsi tidak dapat digunakan sebagai variabel host. Menimpa mereka dengan menggunakan variabel alias.Kode Pro\$1 C:<pre>int processData(int referenceId){<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre>Kode ECPG:<pre>int processData(int referenceIdParam){<br />  EXEC SQL int referenceId = referenceIdParam;<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Perbarui jenis struct. | Tentukan `struct` tipe `EXEC SQL BEGIN` dan `END` blok dengan `typedef` jika variabel `struct` tipe digunakan sebagai variabel host. Jika `struct` jenis didefinisikan dalam file header (`.h`), sertakan file dengan pernyataan `EXEC SQL` include.Kode Pro\$1 C:Berkas header (`demo.h`)<pre>struct s_partition_ranges<br />{<br /> char   sc_table_group[31];<br /> char   sc_table_name[31];<br /> char   sc_range_value[10];<br />}; <br />struct s_partition_ranges_ind<br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />}; </pre>Kode ECPG:Berkas header (`demo.h`)<pre>EXEC SQL BEGIN DECLARE SECTION;<br />typedef struct <br />{<br />  char   sc_table_group[31];<br />  char   sc_table_name[31];<br />  char   sc_range_value[10];<br />} s_partition_ranges; <br />typedef struct <br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />} s_partition_ranges_ind; <br />EXEC SQL END DECLARE SECTION;</pre>Berkas Pro\$1C () `demo.pc`<pre>#include "demo.h"<br />struct s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />struct s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;</pre>File ECPG () `demo.pc`<pre>exec sql include "demo.h"<br />EXEC SQL BEGIN DECLARE SECTION;<br />s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;<br />EXEC SQL END DECLARE SECTION;</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Ubah logika untuk mengambil dari kursor. | Untuk mengambil beberapa baris dari kursor dengan menggunakan variabel array, ubah kode yang akan digunakan. `FETCH FORWARD`Kode Pro\$1 C:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL FETCH filename_cursor into :aPoeFiles;</pre>Kode ECPG:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL int fetchSize = MAX_FILES;<br />EXEC SQL FETCH FORWARD :fetchSize filename_cursor into :aPoeFiles;</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Ubah panggilan paket yang tidak memiliki nilai pengembalian. | Fungsi paket Oracle yang tidak memiliki nilai kembali harus dipanggil dengan variabel indikator. Jika aplikasi Anda menyertakan beberapa fungsi yang memiliki nama yang sama atau jika fungsi tipe yang tidak dikenal menghasilkan kesalahan runtime, ketikkan nilai ke tipe data.Kode Pro\$1 C:<pre>void ProcessData (char *data , int id)<br />{        <br />        EXEC SQL EXECUTE<br />               BEGIN<br />                  pkg_demo.process_data (:data, :id);                                                                                    <br />               END;<br />       END-EXEC;<br />}</pre>Kode ECPG:<pre>void ProcessData (char *dataParam, int idParam )<br />{<br />        EXEC SQL char *data = dataParam;<br />        EXEC SQL int id = idParam;<br />        EXEC SQL short rowInd;<br />        EXEC SQL short rowInd = 0;<br />        EXEC SQL SELECT pkg_demo.process_data (<br />                       inp_data => :data::text,<br />                       inp_id => :id<br />               ) INTO :rowInd;<br />}</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Tulis ulang variabel SQL\$1CURSOR. | Tulis ulang `SQL_CURSOR` variabel dan implementasinya.Kode Pro\$1 C:<pre>/* SQL Cursor */<br />SQL_CURSOR      demo_cursor;<br />EXEC SQL ALLOCATE :demo_cursor;<br />EXEC SQL EXECUTE<br />  BEGIN<br />      pkg_demo.get_cursor(     <br />        demo_cur=>:demo_cursor<br />      );<br />  END;<br />END-EXEC;</pre>Kode ECPG:<pre>EXEC SQL DECLARE demo_cursor CURSOR FOR SELECT<br />         * from<br />    pkg_demo.open_filename_rc(<br />            demo_cur=>refcursor<br />          ) ;<br />EXEC SQL char open_filename_rcInd[100]; <br /># As the below function returns cursor_name as <br /># return we need to use char[] type as indicator. <br />EXEC SQL SELECT pkg_demo.get_cursor (<br />        demo_cur=>'demo_cursor'<br />    ) INTO :open_filename_rcInd;</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Terapkan pola migrasi umum. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-legacy-applications-from-oracle-pro-c-to-ecpg.html) | Pengembang aplikasi, Pemilik aplikasi | 
| Aktifkan debugging, jika diperlukan.  | Untuk menjalankan program ECPG dalam mode debug, tambahkan perintah berikut di dalam blok fungsi utama.<pre>ECPGdebug(1, stderr); </pre> | Pengembang aplikasi, Pemilik aplikasi | 

### Kompilasi program ECPG
<a name="compile-ecpg-programs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat file yang dapat dieksekusi untuk ECPG. | Jika Anda memiliki file sumber SQL C tertanam bernama`prog1.pgc`, Anda dapat membuat program yang dapat dieksekusi dengan menggunakan urutan perintah berikut.<pre>ecpg prog1.pgc<br />cc -I/usr/local/pgsql/include -c prog1.c<br />cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg</pre> | Pengembang aplikasi, Pemilik aplikasi | 
| Buat file make untuk kompilasi. | Buat file make untuk mengkompilasi program ECPG, seperti yang ditunjukkan pada file contoh berikut.<pre>CFLAGS ::= $(CFLAGS) -I/usr/pgsql-12/include -g -Wall<br />LDFLAGS ::= $(LDFLAGS) -L/usr/pgsql-12/lib -Wl,-rpath,/usr/pgsql-12/lib<br />LDLIBS ::= $(LDLIBS) -lecpg<br />PROGRAMS = test <br />.PHONY: all clean<br />%.c: %.pgc<br />      ecpg $<<br />all: $(PROGRAMS)<br />clean:<br />    rm -f $(PROGRAMS) $(PROGRAMS:%=%.c) $(PROGRAMS:%=%.o)</pre> | Pengembang aplikasi, Pemilik aplikasi | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji kode. | Uji kode aplikasi yang dikonversi untuk memastikan bahwa itu berfungsi dengan benar. | Pengembang aplikasi, Pemilik aplikasi, Insinyur uji | 

## Sumber daya terkait
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-resources"></a>
+ [ECPG - SQL Tertanam di C](https://www.postgresql.org/docs/current/static/ecpg.html) (dokumentasi PostgreSQL)
+ [Penanganan Kesalahan](https://www.postgresql.org/docs/12/ecpg-errors.html) (dokumentasi PostgreSQL)
+ [Mengapa Menggunakan Oracle Pro\$1C/C\$1\$1](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) Precompiler (dokumentasi Oracle)

## Informasi tambahan
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional"></a>

PostgreSQL memiliki precompiler SQL tertanam, ECPG, yang setara dengan precompiler Oracle Pro\$1C. ECPG mengkonversi program C yang telah tertanam pernyataan SQL untuk kode C standar dengan mengganti panggilan SQL dengan panggilan fungsi khusus. File output kemudian dapat diproses dengan rantai alat kompiler C apa pun.

**File input dan output**

ECPG mengonversi setiap file input yang Anda tentukan pada baris perintah ke file output C yang sesuai. Jika nama file input tidak memiliki ekstensi file, .pgc diasumsikan. Ekstensi file diganti dengan `.c` untuk membangun nama file output. Namun, Anda dapat mengganti nama file output default dengan menggunakan `-o` opsi.

Jika Anda menggunakan tanda hubung (`-`) sebagai nama file input, ECPG membaca program dari input standar dan menulis ke output standar, kecuali jika Anda menggantinya dengan menggunakan opsi. `-o`

**File header**

Ketika kompiler PostgreSQL mengkompilasi file kode C yang telah diproses sebelumnya, ia mencari file header ECPG di direktori PostgreSQL. `include` Oleh karena itu, Anda mungkin harus menggunakan `-I` opsi untuk mengarahkan kompiler ke direktori yang benar (misalnya,`-I/usr/local/pgsql/include`).

**Perpustakaan**

Program yang menggunakan kode C dengan SQL tertanam harus ditautkan dengan `libecpg` perpustakaan. Misalnya, Anda dapat menggunakan opsi ` -L/usr/local/pgsql/lib -lecpg` tautan.

Aplikasi ECPG yang dikonversi memanggil fungsi di `libpq` perpustakaan melalui perpustakaan SQL tertanam (`ecpglib`), dan berkomunikasi dengan server PostgreSQL dengan menggunakan protokol standar. frontend/backend 

# Migrasikan kolom virtual yang dihasilkan dari Oracle ke PostgreSQL
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi, Rajesh Madiwale, dan Ramesh Pathuri, Amazon Web Services*

## Ringkasan
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-summary"></a>

Di versi 11 dan sebelumnya, PostgreSQL tidak menyediakan fitur yang secara langsung setara dengan kolom virtual Oracle. Menangani kolom virtual yang dihasilkan saat bermigrasi dari Oracle Database ke PostgreSQL versi 11 atau sebelumnya sulit karena dua alasan: 
+ Kolom virtual tidak terlihat selama migrasi.
+ PostgreSQL tidak mendukung `generate` ekspresi sebelum versi 12.

Namun, ada solusi untuk meniru fungsionalitas serupa. Bila Anda menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data dari Oracle Database ke PostgreSQL versi 11 dan yang lebih lama, Anda dapat menggunakan fungsi pemicu untuk mengisi nilai dalam kolom virtual yang dihasilkan. Pola ini memberikan contoh Oracle Database dan kode PostgreSQL yang dapat Anda gunakan untuk tujuan ini. Di AWS, Anda dapat menggunakan Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan PostgreSQL untuk database PostgreSQL Anda.

Dimulai dengan PostgreSQL versi 12, kolom yang dihasilkan didukung. Kolom yang dihasilkan dapat dihitung dari nilai kolom lain dengan cepat, atau dihitung dan disimpan. [Kolom yang dihasilkan PostgreSQL mirip dengan kolom virtual](https://www.postgresql.org/docs/12/ddl-generated-columns.html) Oracle.

## Prasyarat dan batasan
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle sumber 
+ Target database PostgreSQL (di Amazon RDS untuk PostgreSQL atau Aurora PostgreSQL yang kompatibel dengan Aurora)
+ [Keahlian pengkodean PL/PGSQL](https://www.postgresql.org/docs/current/plpgsql.html)

**Batasan**
+ Berlaku hanya untuk versi PostgreSQL sebelum versi 12. 
+ Berlaku untuk Oracle Database versi 11g atau yang lebih baru.
+ Kolom virtual tidak didukung dalam alat migrasi data.
+ Berlaku hanya untuk kolom yang didefinisikan dalam tabel yang sama.
+ Jika kolom yang dihasilkan virtual mengacu pada fungsi deterministik yang ditentukan pengguna, itu tidak dapat digunakan sebagai kolom kunci partisi.
+ Output dari ekspresi harus berupa nilai skalar. Itu tidak dapat mengembalikan tipe data yang disediakan Oracle, tipe yang ditentukan pengguna, atau. `LOB` `LONG RAW`
+ Indeks yang didefinisikan terhadap kolom virtual setara dengan indeks berbasis fungsi di PostgreSQL.
+ Statistik tabel harus dikumpulkan.

## Alat
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-tools"></a>
+ [pgAdmin](https://www.pgadmin.org/) 4 adalah alat manajemen open source untuk PostgreSQL. Alat ini menyediakan antarmuka grafis yang menyederhanakan pembuatan, pemeliharaan, dan penggunaan objek database.
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/) adalah lingkungan pengembangan terintegrasi gratis untuk bekerja dengan SQL di database Oracle baik dalam penerapan tradisional maupun cloud. 

## Epik
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-epics"></a>

### Buat tabel basis data sumber dan target
<a name="create-source-and-target-database-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel Database Oracle sumber. | Di Oracle Database, buat tabel dengan kolom virtual yang dihasilkan dengan menggunakan pernyataan berikut.<pre>CREATE TABLE test.generated_column<br />( CODE NUMBER,<br />STATUS VARCHAR2(12) DEFAULT 'PreOpen',<br />FLAG CHAR(1) GENERATED ALWAYS AS (CASE UPPER(STATUS) WHEN 'OPEN' THEN 'N' ELSE 'Y' END) VIRTUAL VISIBLE<br />);</pre>Dalam tabel sumber ini, data di `STATUS` kolom dimigrasikan melalui AWS DMS ke database target. `FLAG`Kolom, bagaimanapun, diisi dengan menggunakan `generate by` fungsionalitas, sehingga kolom ini tidak terlihat oleh AWS DMS selama migrasi. Untuk mengimplementasikan fungsionalitas`generated by`, Anda harus menggunakan pemicu dan fungsi dalam database target untuk mengisi nilai di `FLAG` kolom, seperti yang ditunjukkan dalam epik berikutnya. | DBA, Pengembang aplikasi | 
| Buat tabel PostgreSQL target di AWS. | Buat tabel PostgreSQL di AWS dengan menggunakan pernyataan berikut.<pre>CREATE TABLE test.generated_column<br />(<br />    code integer not null,<br />    status character varying(12) not null ,<br />    flag character(1)<br />);</pre>Dalam tabel ini, `status` kolom adalah kolom standar. `flag`Kolom akan menjadi kolom yang dihasilkan berdasarkan data di `status` kolom. | DBA, Pengembang aplikasi | 

### Buat fungsi pemicu untuk menangani kolom virtual di PostgreSQL
<a name="create-a-trigger-function-to-handle-the-virtual-column-in-postgresql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pemicu PostgreSQL. | Di PostgreSQL, buat pemicu.<pre>CREATE TRIGGER tgr_gen_column<br />AFTER INSERT OR UPDATE OF status ON test.generated_column<br />FOR EACH ROW <br />EXECUTE FUNCTION test.tgf_gen_column();</pre> | DBA, Pengembang aplikasi | 
| Buat fungsi pemicu PostgreSQL. | Di PostgreSQL, buat fungsi untuk pemicu. Fungsi ini mengisi kolom virtual yang disisipkan atau diperbarui oleh aplikasi atau AWS DMS, dan memvalidasi data.<pre>CREATE OR REPLACE FUNCTION test.tgf_gen_column() RETURNS trigger AS $VIRTUAL_COL$<br />BEGIN<br />IF (TG_OP = 'INSERT') THEN<br />IF (NEW.flag IS NOT NULL) THEN<br />RAISE EXCEPTION 'ERROR: cannot insert into column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF (TG_OP = 'UPDATE') THEN<br />IF (NEW.flag::VARCHAR != OLD.flag::varchar) THEN<br />RAISE EXCEPTION 'ERROR: cannot update column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF TG_OP IN ('INSERT','UPDATE') THEN<br />IF (old.flag is NULL) OR (coalesce(old.status,'') != coalesce(new.status,'')) THEN<br />UPDATE test.generated_column<br />SET flag = (CASE UPPER(status) WHEN 'OPEN' THEN 'N' ELSE 'Y' END)<br />WHERE code = new.code;<br />END IF;<br />END IF;<br />RETURN NEW;<br />END<br />$VIRTUAL_COL$ LANGUAGE plpgsql;</pre> | DBA, Pengembang aplikasi | 

### Uji migrasi data dengan menggunakan AWS DMS
<a name="test-data-migration-by-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh replikasi. | Untuk membuat instance replikasi, ikuti [petunjuk dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) AWS DMS. Instans replikasi harus berada di cloud pribadi virtual (VPC) yang sama dengan basis data sumber dan target Anda. | DBA, Pengembang aplikasi | 
| Buat titik akhir sumber dan target. | Untuk membuat titik akhir, ikuti [petunjuk dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) AWS DMS. | DBA, Pengembang aplikasi | 
| Uji koneksi titik akhir. | **Anda dapat menguji koneksi titik akhir dengan menentukan VPC dan instance replikasi dan memilih Run test.** | DBA, Pengembang aplikasi | 
| Buat dan mulai tugas beban penuh. | Untuk petunjuknya, lihat [Membuat Tugas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) dan [setelan tugas beban penuh](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.html) dalam dokumentasi AWS DMS. | DBA, Pengembang aplikasi | 
| Validasi data untuk kolom virtual. | Bandingkan data di kolom virtual di database sumber dan target. Anda dapat memvalidasi data secara manual atau menulis skrip untuk langkah ini. | DBA, Pengembang aplikasi | 

## Sumber daya terkait
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-resources"></a>
+ [Memulai AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (dokumentasi AWS DMS)
+ [Menggunakan database Oracle sebagai sumber AWS DMS (dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html))
+ [Menggunakan database PostgreSQL sebagai target AWS DMS (dokumentasi AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Kolom yang dihasilkan di PostgreSQL (dokumentasi PostgreSQL](https://www.postgresql.org/docs/12/ddl-generated-columns.html))
+ [Fungsi pemicu](https://www.postgresql.org/docs/12/plpgsql-trigger.html) (dokumentasi PostgreSQL)
+ [Kolom virtual](https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402) di Oracle Database (dokumentasi Oracle)

# Siapkan fungsionalitas Oracle UTL\$1FILE pada Aurora PostgreSQL yang kompatibel
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible"></a>

*Rakesh Raghav dan anuradha chintha, Amazon Web Services*

## Ringkasan
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-summary"></a>

Sebagai bagian dari perjalanan migrasi Anda dari Oracle ke Amazon Aurora PostgreSQL Compatible Edition di Amazon Web Services (AWS) Cloud, Anda mungkin menghadapi beberapa tantangan. Misalnya, memigrasikan kode yang bergantung pada `UTL_FILE` utilitas Oracle selalu menjadi tantangan. Di Oracle PL/SQL, `UTL_FILE` paket ini digunakan untuk operasi file, seperti baca dan tulis, bersama dengan sistem operasi yang mendasarinya. `UTL_FILE`Utilitas ini berfungsi untuk sistem server dan mesin klien. 

Amazon Aurora PostgreSQL kompatibel adalah penawaran database terkelola. Karena itu, tidak mungkin mengakses file di server database. Pola ini memandu Anda melalui integrasi Amazon Simple Storage Service (Amazon S3) dan Amazon Aurora PostgreSQL yang kompatibel untuk mencapai subset fungsionalitas. `UTL_FILE` Dengan menggunakan integrasi ini, kita dapat membuat dan menggunakan file tanpa menggunakan alat atau layanan ekstrak, transformasi, dan muat (ETL) pihak ketiga.

Secara opsional, Anda dapat mengatur CloudWatch pemantauan Amazon dan notifikasi Amazon SNS.

Kami merekomendasikan pengujian solusi ini secara menyeluruh sebelum menerapkannya di lingkungan produksi.

## Prasyarat dan batasan
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Keahlian AWS Database Migration Service (AWS DMS)
+ Keahlian dalam PL/pgSQL pengkodean
+ Cluster yang kompatibel dengan Amazon Aurora PostgreSQL
+ Ember S3

**Batasan**

Pola ini tidak menyediakan fungsionalitas untuk bertindak sebagai pengganti `UTL_FILE` utilitas Oracle. Namun, langkah-langkah dan kode sampel dapat ditingkatkan lebih lanjut untuk mencapai tujuan modernisasi database Anda.

**Versi produk**
+ Amazon Aurora PostgreSQL Edisi 11.9 yang kompatibel

## Arsitektur
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-architecture"></a>

**Tumpukan teknologi target**
+ Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon CloudWatch
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon S3

**Arsitektur target**

Diagram berikut menunjukkan representasi tingkat tinggi dari solusi.

![\[File data diunggah ke bucket S3, diproses menggunakan ekstensi aws_s3, dan dikirim ke instance Aurora.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/3aeecd46-1f87-41f9-a9cd-f8181f92e83f/images/4a6c5f5c-58fb-4355-b243-d09a15c1cec6.png)


1. File diunggah dari aplikasi ke dalam ember S3.

1. `aws_s3`Ekstensi mengakses data, menggunakan PL/PGSQL, dan mengunggah data ke Aurora PostgreSQL kompatibel.

## Alat
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-tools"></a>
+ Kompatibel dengan [Amazon Aurora PostgreSQL — Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Edition adalah mesin basis data relasional yang dikelola sepenuhnya, kompatibel dengan PostgreSQL, dan sesuai dengan Asam. Ini menggabungkan kecepatan dan keandalan database komersial kelas atas dengan efektivitas biaya database sumber terbuka.
+ [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) adalah alat terpadu untuk mengelola layanan AWS Anda. Dengan hanya satu alat untuk mengunduh dan mengonfigurasi, Anda dapat mengontrol beberapa layanan AWS dari baris perintah dan mengotomatiskannya melalui skrip.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) — Amazon CloudWatch memonitor sumber daya dan penggunaan Amazon S3.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah penyimpanan untuk internet. Dalam pola ini, Amazon S3 menyediakan lapisan penyimpanan untuk menerima dan menyimpan file untuk konsumsi dan transmisi ke dan dari cluster Aurora PostgreSQL yang kompatibel.
+ [aws\$1s3 - Ekstensi `aws_s3` mengintegrasikan Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) dan Aurora PostgreSQL kompatibel.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) - Amazon Simple Notification Service (Amazon SNS) mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien. Dalam pola ini, Amazon SNS digunakan untuk mengirim notifikasi.
+ [pgAdmin](https://www.pgadmin.org/docs/) - pgAdmin adalah alat manajemen sumber terbuka untuk Postgres. pgAdmin 4 menyediakan antarmuka grafis untuk membuat, memelihara, dan menggunakan objek database.

**Kode**

Untuk mencapai fungsionalitas yang diperlukan, pola membuat beberapa fungsi dengan penamaan yang mirip dengan`UTL_FILE`. Bagian *Informasi tambahan* berisi basis kode untuk fungsi-fungsi ini.

Dalam kode, ganti `testaurorabucket` dengan nama bucket S3 pengujian Anda. Ganti `us-east-1` dengan Wilayah AWS tempat bucket S3 pengujian Anda berada.

## Epik
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-epics"></a>

### Integrasikan Amazon S3 dan Aurora PostgreSQL yang kompatibel
<a name="integrate-amazon-s3-and-aurora-postgresql-compatible"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan kebijakan IAM. | Buat kebijakan AWS Identity and Access Management (IAM) yang memberikan akses ke bucket S3 dan objek di dalamnya. Untuk kode, lihat bagian *Informasi tambahan*. | Administrator AWS, DBA | 
| Tambahkan peran akses Amazon S3 ke Aurora PostgreSQL. | Buat dua peran IAM: satu peran untuk dibaca dan satu peran untuk akses tulis ke Amazon S3. Lampirkan dua peran ke cluster yang kompatibel dengan Aurora PostgreSQL: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.html)[Untuk informasi selengkapnya, lihat dokumentasi yang kompatibel dengan Aurora PostgreSQL tentang [mengimpor dan mengekspor](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html) data ke Amazon S3.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html) | Administrator AWS, DBA | 

### Siapkan ekstensi di Aurora PostgreSQL yang kompatibel
<a name="set-up-the-extensions-in-aurora-postgresql-compatible"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ekstensi aws\$1commons. | `aws_commons`Ekstensi adalah ketergantungan `aws_s3` ekstensi. | DBA, Pengembang | 
| Buat ekstensi aws\$1s3. | `aws_s3`Ekstensi berinteraksi dengan Amazon S3. | DBA, Pengembang | 

### Validasi integrasi yang kompatibel dengan Amazon S3 dan Aurora PostgreSQL
<a name="validate-amazon-s3-and-aurora-postgresql-compatible-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji mengimpor file dari Amazon S3 ke Aurora PostgreSQL. | Untuk menguji mengimpor file ke Aurora PostgreSQL yang kompatibel, buat contoh file CSV dan unggah ke bucket S3. Buat definisi tabel berdasarkan file CSV, dan muat file ke dalam tabel dengan menggunakan `aws_s3.table_import_from_s3` fungsi. | DBA, Pengembang | 
| Uji ekspor file dari Aurora PostgreSQL ke Amazon S3. | Untuk menguji mengekspor file dari Aurora PostgreSQL yang kompatibel, buat tabel uji, isi dengan data, lalu ekspor data dengan menggunakan fungsi. `aws_s3.query_export_to_s3` | DBA, Pengembang | 

### Untuk meniru utilitas UTL\$1FILE, buat fungsi pembungkus
<a name="to-mimic-the-utl_file-utility-create-wrapper-functions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat skema utl\$1file\$1utility. | Skema menjaga fungsi pembungkus bersama-sama. Untuk membuat skema, jalankan perintah berikut.<pre>CREATE SCHEMA utl_file_utility;</pre> | DBA, Pengembang | 
| Buat tipe file\$1type. | Untuk membuat `file_type` tipe, gunakan kode berikut.<pre>CREATE TYPE utl_file_utility.file_type AS (<br />    p_path character varying(30),<br />    p_file_name character varying<br />);<br /><br /><br /></pre> | DBA/Pengembang | 
| Buat fungsi init. | `init`Fungsi menginisialisasi variabel umum seperti `bucket` atau`region`. Untuk kode, lihat bagian *Informasi tambahan*. | DBA/Pengembang | 
| Buat fungsi pembungkus. | Buat fungsi pembungkus`fopen`,`put_line`, dan`fclose`. Untuk kode, lihat bagian *Informasi tambahan*. | DBA, Pengembang | 

### Uji fungsi pembungkus
<a name="test-the-wrapper-functions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji fungsi pembungkus dalam mode tulis. | Untuk menguji fungsi pembungkus dalam mode tulis, gunakan kode yang disediakan di bagian *Informasi tambahan*. | DBA, Pengembang | 
| Uji fungsi pembungkus dalam mode append. | Untuk menguji fungsi pembungkus dalam mode append, gunakan kode yang disediakan di bagian *Informasi tambahan*. | DBA, Pengembang | 

## Sumber daya terkait
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-resources"></a>
+ [Integrasi Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Aurora](https://aws.amazon.com/rds/aurora/?nc2=h_ql_prod_db_aa&aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [Amazon SNS](https://aws.amazon.com/sns/?nc2=h_ql_prod_ap_sns&whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc)

## Informasi tambahan
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-additional"></a>

**Menyiapkan kebijakan IAM**

Buat kebijakan berikut.


| 
| 
| Nama kebijakan | JSON | 
| --- |--- |
| S3 IntRead | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />         "arn:aws:s3:::testaurorabucket/*",<br />         "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 
| S3 IntWrite | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",                <br />                "s3:ListBucket"<br />            ],<br />            "Resource": [                "arn:aws:s3:::testaurorabucket/*",                "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 

**Buat fungsi init**

Untuk menginisialisasi variabel umum, seperti `bucket` atau`region`, buat `init` fungsi dengan menggunakan kode berikut.

```
CREATE OR REPLACE FUNCTION utl_file_utility.init(
    )
    RETURNS void
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
BEGIN
      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 'region' )
      , 'us-east-1'::text
      , false );

      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 's3bucket' )
      , 'testaurorabucket'::text
      , false );
END;
$BODY$;
```

**Buat fungsi pembungkus**

Buat fungsi`fopen`,`put_line`, dan `fclose` pembungkus.

*fopen*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fopen(
    p_file_name character varying,
    p_path character varying,
    p_mode character DEFAULT 'W'::bpchar,
    OUT p_file_type utl_file_utility.file_type)
    RETURNS utl_file_utility.file_type
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
declare
    v_sql character varying;
    v_cnt_stat integer;
    v_cnt integer;
    v_tabname character varying;
    v_filewithpath character varying;
    v_region character varying;
    v_bucket character varying;

BEGIN
    /*initialize common variable */
    PERFORM utl_file_utility.init();
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
    
    /* set tabname*/
    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;
    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region;
    
    /* APPEND MODE HANDLING; RETURN EXISTING FILE DETAILS IF PRESENT ELSE CREATE AN EMPTY FILE */
    IF p_mode = 'A' THEN
        v_sql := concat_ws('','create temp table if not exists ', v_tabname,' (col1 text)');
        execute v_sql;

        begin
        PERFORM aws_s3.table_import_from_s3 
            ( v_tabname, 
            '',  
            'DELIMITER AS ''#''', 
            aws_commons.create_s3_uri 
            (     v_bucket, 
                v_filewithpath ,
                v_region)
            );
        exception
            when others then
             raise notice 'File load issue ,%',sqlerrm;
             raise;
        end;
        execute concat_ws('','select count(*) from ',v_tabname) into v_cnt;

        IF v_cnt > 0 
        then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
        else         
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );

            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;        
        end if;
        v_sql := concat_ws('','drop table ', v_tabname);        
        execute v_sql;            
    ELSEIF p_mode = 'W' THEN
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
    END IF;    
    
EXCEPTION
        when others then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
            raise notice 'fopenerror,%',sqlerrm;
            raise;
END;
$BODY$;
```

*put\$1line*

```
CREATE OR REPLACE FUNCTION utl_file_utility.put_line(
    p_file_name character varying,
    p_path character varying,
    p_line text,
    p_flag character DEFAULT 'W'::bpchar)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
/**************************************************************************
* Write line, p_line in windows format to file, p_fp - with carriage return
* added before new line.
**************************************************************************/
declare
    v_sql varchar;
    v_ins_sql varchar;
    v_cnt INTEGER;
    v_filewithpath character varying;
    v_tabname  character varying;
    v_bucket character varying;
    v_region character varying;    

BEGIN
 PERFORM utl_file_utility.init();

/* check if temp table already exist */

 v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );

 v_sql := concat_ws('','select count(1) FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace where n.nspname like ''pg_temp_%''' 
                         ,' AND pg_catalog.pg_table_is_visible(c.oid) AND Upper(relname) = Upper( '''
                         ,  v_tabname ,''' ) ');
  
 execute v_sql into v_cnt;
  
  IF v_cnt = 0 THEN
         v_sql := concat_ws('','create temp table ',v_tabname,' (col text)');
        execute v_sql;
        /* CHECK IF APPEND MODE */
        IF upper(p_flag) = 'A' THEN
            PERFORM utl_file_utility.init();                        
            v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
            v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
            
            /* set tabname*/            
            v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;            
            
            begin
               PERFORM aws_s3.table_import_from_s3 
                     ( v_tabname, 
                          '',  
                       'DELIMITER AS ''#''', 
                        aws_commons.create_s3_uri 
                           ( v_bucket, 
                               v_filewithpath, 
                               v_region    )
                    );
            exception
                when others then
                    raise notice  'Error Message : %',sqlerrm;
                    raise;
            end;    
        END IF;    
    END IF;
    /* INSERT INTO TEMP TABLE */              
    v_ins_sql := concat_ws('','insert into ',v_tabname,' values(''',p_line,''')');
    execute v_ins_sql;
    RETURN TRUE;
    exception
            when others then
                raise notice  'Error Message : %',sqlerrm;
                raise;
END;
$BODY$;
```

*fclose*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fclose(
    p_file_name character varying,
    p_path character varying)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
DECLARE
    v_filewithpath character varying;
    v_bucket character varying;
    v_region character varying;
    v_tabname character varying;
    v_sql character varying;
BEGIN
      PERFORM utl_file_utility.init();
  
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );

    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;

    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region ;
    
    /* exporting to s3 */
    perform aws_s3.query_export_to_s3
        (concat_ws('','select * from ',v_tabname,'  order by ctid asc'), 
            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)
        );
    v_sql := concat_ws('','drop table ', v_tabname);
    execute v_sql;    
    RETURN TRUE;
EXCEPTION 
       when others then
     raise notice 'error fclose %',sqlerrm;
     RAISE;
END;
$BODY$;
```

**Uji fungsi pengaturan dan pembungkus Anda**

Gunakan blok kode anonim berikut untuk menguji pengaturan Anda.

*Uji mode tulis*

Kode berikut menulis file bernama `s3inttest` dalam bucket S3.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'W';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

*Uji mode append*

Kode berikut menambahkan baris ke `s3inttest` file yang dibuat dalam tes sebelumnya.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'A';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;


select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose : append 1', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket : for test purpose : append 2', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

**Pemberitahuan Amazon SNS**

Secara opsional, Anda dapat mengatur CloudWatch pemantauan Amazon dan notifikasi Amazon SNS di bucket S3. Untuk informasi selengkapnya, lihat [Memantau Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html) dan [Menyiapkan Pemberitahuan Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

# Validasi objek database setelah bermigrasi dari Oracle ke Amazon Aurora PostgreSQL
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql"></a>

*Venkatramana Chintha dan Eduardo Valentim, Amazon Web Services*

## Ringkasan
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-summary"></a>

Pola ini menjelaskan step-by-step pendekatan untuk memvalidasi objek setelah memigrasikan database Oracle ke Amazon Aurora PostgreSQL Edisi yang kompatibel.

[Pola ini menguraikan skenario penggunaan dan langkah-langkah untuk validasi objek database; untuk informasi lebih rinci, lihat [Memvalidasi objek database setelah migrasi menggunakan AWS SCT dan AWS DMS di blog AWS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/) Database.](https://aws.amazon.com/blogs/)

## Prasyarat dan batasan
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Database Oracle lokal yang dimigrasikan ke database yang kompatibel dengan Aurora PostgreSQL. 
+ Kredensi login yang menerapkan RDSData FullAccess kebijakan [Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), untuk database yang kompatibel dengan Aurora PostgreSQL. 
+ Pola ini menggunakan [editor kueri untuk cluster DB Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), yang tersedia di konsol Amazon Relational Database Service (Amazon RDS). Namun, Anda dapat menggunakan pola ini dengan editor kueri lainnya. 

**Batasan**
+ **Objek Oracle SYNONYM tidak tersedia di PostgreSQL tetapi sebagian dapat divalidasi melalui tampilan atau SET search\$1path query.**
+ Editor kueri Amazon RDS hanya tersedia di [Wilayah AWS tertentu dan untuk versi MySQL dan PostgreSQL tertentu](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html).

## Arsitektur
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-architecture"></a>

 

![\[Database migration workflow showing on-premises Oracle to AWSAurora PostgreSQL via client program and validation scripts.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7c028960-6dea-46ad-894d-e42cefd50c03/images/be5f8ae3-f5af-4c5e-9440-09ab410beaa1.png)


 

## Alat
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-tools"></a>

**Alat**
+ [Amazon Aurora PostgreSQL Compatible Edition — Aurora PostgreSQL kompatibel](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional relasional yang dikelola sepenuhnya, kompatibel dengan PostgreSQL, dan sesuai dengan Asam yang menggabungkan kecepatan dan keandalan database komersial kelas atas dengan kesederhanaan dan efektivitas biaya database sumber terbuka.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) memudahkan penyiapan, pengoperasian, dan skala database relasional di 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.
+ [Editor Kueri untuk Aurora Severless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) - Editor kueri membantu Anda menjalankan kueri SQL di konsol Amazon RDS. Anda dapat menjalankan pernyataan SQL yang valid pada cluster DB Aurora Serverless, termasuk manipulasi data dan pernyataan definisi data.

Untuk memvalidasi objek, gunakan skrip lengkap di file “Skrip validasi objek” di bagian “Lampiran”. Gunakan tabel berikut untuk referensi.


| 
| 
| Objek Oracle | Script untuk digunakan | 
| --- |--- |
| Paket | Permintaan 1 | 
| Tabel | Permintaan 3 | 
| Tampilan | Permintaan 5 | 
| Urutan | Permintaan 7 | 
| Pemicu |  Permintaan 9 | 
| Kunci primer | Permintaan 11 | 
| Indeks | Permintaan 13 | 
| Batasan pemeriksaan | Permintaan 15 | 
| Kunci asing  | Permintaan 17  | 


| 
| 
| PostgreSQL objek | Script untuk digunakan | 
| --- |--- |
| Paket | Permintaan 2 | 
| Tabel | Permintaan 4 | 
| Tampilan | Permintaan 6 | 
| Urutan | Permintaan 8 | 
| Pemicu | Permintaan 10 | 
| Kunci primer | Permintaan 12 | 
| Indeks | Permintaan 14 | 
| Batasan pemeriksaan | Permintaan 16 | 
| Kunci asing | Permintaan 18 | 

## Epik
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-epics"></a>

### Validasi objek dalam database sumber Oracle
<a name="validate-objects-in-the-source-oracle-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan kueri validasi “paket” di database sumber Oracle.  | Unduh dan buka file “Skrip validasi objek” dari bagian “Lampiran”. Connect ke database Oracle sumber melalui program klien Anda. Jalankan skrip validasi “Query 1" dari file “Object validation scripts”. Penting: Masukkan nama pengguna Oracle Anda alih-alih “your\$1schema” dalam kueri. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “tabel”.  | Jalankan skrip “Query 3" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “tampilan”.  | Jalankan skrip “Query 5" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan validasi hitungan “urutan”.  | Jalankan skrip “Query 7" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “pemicu”.  | Jalankan skrip “Query 9" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “kunci utama”.  | Jalankan skrip “Query 11" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “indeks”.  | Jalankan skrip validasi “Query 13" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “periksa kendala”.  | Jalankan skrip “Query 15" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “kunci asing”.  | Jalankan skrip validasi “Query 17" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 

### Validasi objek dalam database target yang kompatibel dengan Aurora PostgreSQL
<a name="validate-objects-in-the-target-aurora-postgresql-compatible-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke database target yang kompatibel dengan Aurora PostgreSQL dengan menggunakan editor kueri. | Masuk ke AWS Management Console dan buka konsol Amazon RDS. Di sudut kanan atas, pilih Wilayah AWS tempat Anda membuat database yang kompatibel dengan Aurora PostgreSQL. Di panel navigasi, pilih “Databases,” dan pilih target Aurora PostgreSQL database yang kompatibel. Di “Tindakan,” pilih “Kueri.” Penting: Jika Anda belum terhubung ke database sebelumnya, halaman “Connect to database” akan terbuka. Anda kemudian perlu memasukkan informasi database Anda, seperti nama pengguna dan kata sandi. | Pengembang, DBA | 
| Jalankan kueri validasi “paket”. | Jalankan skrip “Kueri 2" dari file “Skrip validasi objek” di bagian “Lampiran”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “tabel”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 4" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “tampilan”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 6" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan validasi hitungan “urutan”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 8" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “pemicu”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 10" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “kunci utama”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 12" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “indeks”.  | Kembali ke editor kueri untuk database yang kompatibel dengan Aurora PostgreSQL, dan jalankan skrip “Query 14" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “periksa kendala”.  | Jalankan skrip “Query 16" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 
| Jalankan kueri validasi “kunci asing”.  | Jalankan skrip validasi “Query 18" dari file “Object validation scripts”. Pastikan Anda mencatat hasil kueri Anda. | Pengembang, DBA | 

### Bandingkan catatan validasi basis data sumber dan target
<a name="compare-source-and-target-database-validation-records"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bandingkan dan validasi kedua hasil kueri.  | Bandingkan hasil kueri database yang kompatibel dengan Oracle dan Aurora PostgreSQL untuk memvalidasi semua objek. Jika semuanya cocok, maka semua objek telah berhasil divalidasi. | Pengembang, DBA | 

## Sumber daya terkait
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-resources"></a>
+ [Memvalidasi objek database setelah migrasi menggunakan AWS SCT dan AWS DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/)
+ [Fitur Amazon Aurora: Edisi yang kompatibel dengan PostgreSQL](https://aws.amazon.com/rds/aurora/postgresql-features/)

## Lampiran
<a name="attachments-7c028960-6dea-46ad-894d-e42cefd50c03"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/7c028960-6dea-46ad-894d-e42cefd50c03/attachments/attachment.zip)

# Rehost
<a name="migration-rehost-pattern-list"></a>

**Topics**
+ [Mempercepat penemuan dan migrasi beban kerja Microsoft ke AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [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)
+ [Menyerap dan memigrasikan instans EC2 Windows ke akun AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Memigrasikan database Couchbase Server ke Amazon EC2](migrate-couchbase-server-ec2.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)
+ [Migrasi aplikasi yang dihosting IIS ke Amazon dengan menggunakan appcmd.exe EC2](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.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)
+ [Migrasikan beban kerja F5 BIG-IP ke F5 BIG-IP VE di AWS Cloud](migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud.md)
+ [Memigrasikan aplikasi web Go lokal ke AWS Elastic Beanstalk menggunakan metode biner](migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.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)
+ [Memigrasikan VM lokal ke Amazon dengan EC2 menggunakan AWS Application Migration Service](migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.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)
+ [Memigrasi database Oracle lokal ke Oracle di Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.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)
+ [Migrasikan sistem RHEL BYOL ke instans AWS License-Included dengan menggunakan AWS MGN](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Menghosting ulang beban kerja lokal di AWS Cloud: daftar periksa migrasi](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.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)
+ [Gunakan kueri BMC Discovery untuk mengekstrak data migrasi untuk perencanaan migrasi](use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning.md)

# Mempercepat penemuan dan migrasi beban kerja Microsoft ke AWS
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws"></a>

*Ali Alzand, Amazon Web Services*

## Ringkasan
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-summary"></a>

Pola ini menunjukkan cara menggunakan [ PowerShell modul Migration Validator Toolkit](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads) untuk menemukan dan memigrasikan beban kerja Microsoft Anda ke AWS. Modul ini bekerja dengan melakukan beberapa pemeriksaan dan validasi untuk tugas umum yang terkait dengan beban kerja Microsoft apa pun. Misalnya, modul memeriksa instance yang mungkin memiliki beberapa disk yang terpasang padanya atau instance yang menggunakan banyak alamat IP. Untuk daftar lengkap pemeriksaan yang dapat dilakukan modul, lihat bagian [Cek](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads#checks) di GitHub halaman modul.

 PowerShell Modul Migration Validator Toolkit dapat membantu organisasi Anda mengurangi waktu dan upaya yang terlibat dalam menemukan aplikasi dan layanan apa yang berjalan pada beban kerja Microsoft Anda. Modul ini juga dapat membantu Anda mengidentifikasi konfigurasi beban kerja Anda sehingga Anda dapat mengetahui apakah konfigurasi Anda didukung di AWS. Modul ini juga memberikan rekomendasi untuk langkah selanjutnya dan tindakan mitigasi, sehingga Anda dapat menghindari kesalahan konfigurasi sebelum, selama, atau setelah migrasi.

## Prasyarat dan batasan
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-prereqs"></a>

**Prasyarat**
+ Akun administrator lokal
+ PowerShell 4.0

**Batasan**
+ Hanya berfungsi di Microsoft Windows Server 2012 R2 atau yang lebih baru

## Alat
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-tools"></a>

**Alat**
+ PowerShell 4.0

**Repositori kode**

 PowerShell [Modul Migration Validator Toolkit untuk pola ini tersedia di repositori -microsoft-workloads. GitHub migration-validator-toolkit-for](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads)

## Epik
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-epics"></a>

### Jalankan PowerShell modul Migration Validator Toolkit pada satu target
<a name="run-the-migration-validator-toolkit-powershell-module-on-a-single-target"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh, ekstrak, impor, dan panggil modul. | Pilih salah satu metode berikut untuk mengunduh dan menyebarkan modul:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Jalankan PowerShell skrip**Dalam PowerShell, jalankan kode contoh berikut:<pre>#MigrationValidatorToolkit<br />$uri = 'https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads/archive/refs/heads/main.zip'<br />$destination = (Get-Location).Path<br />if ((Test-Path -Path "$destination\MigrationValidatorToolkit.zip" -PathType Leaf) -or (Test-Path -Path "$destination\MigrationValidatorToolkit")) {<br />    write-host "File $destination\MigrationValidatorToolkit.zip or folder $destination\MigrationValidatorToolkit found, exiting"<br />}else {<br />    Write-host "Enable TLS 1.2 for this PowerShell session only."<br />    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12<br />    $webClient = New-Object System.Net.WebClient<br />    Write-host "Downloading MigrationValidatorToolkit.zip"<br />    $webClient.DownloadFile($uri, "$destination\MigrationValidatorToolkit.zip")<br />    Write-host "MigrationValidatorToolkit.zip download successfully"<br />    Add-Type -Assembly "system.io.compression.filesystem"<br />    [System.IO.Compression.ZipFile]::ExtractToDirectory("$destination\MigrationValidatorToolkit.zip","$destination\MigrationValidatorToolkit")<br />    Write-host "Extracting MigrationValidatorToolkit.zip complete successfully"<br />    Import-Module "$destination\MigrationValidatorToolkit\migration-validator-toolkit-for-microsoft-workloads-main\MigrationValidatorToolkit.psm1"; Invoke-MigrationValidatorToolkit<br />}</pre>Kode mengunduh modul dari file.zip. Kemudian, kode mengekstrak, mengimpor, dan memanggil modul.**Unduh dan ekstrak file.zip**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Kloning repositori GitHub **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Administrator Sistem | 
| Panggil modul secara manual. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)[Format Format-Tabel](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-table?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit</pre>[Format Format-Daftar](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-list?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -List</pre>GridViewFormat [keluar](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-gridview?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -GridView</pre>[ConvertTo-Csv format](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -csv</pre> | Administrator Sistem | 

### Jalankan PowerShell modul Migration Validator Toolkit pada beberapa target
<a name="run-the-migration-validator-toolkit-powershell-module-on-multiple-targets"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh file.zip atau kloning repositori. GitHub  | Pilih salah satu opsi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git</pre> | Administrator Sistem | 
| Perbarui daftar server.csv. | Jika Anda mengunduh file.zip, ikuti langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Administrator Sistem | 
| Memanggil modul. | Anda dapat menggunakan komputer apa pun dalam domain yang menggunakan pengguna domain yang memiliki akses administrator ke komputer target.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers</pre>File output.csv disimpan `MigrationValidatorToolkit\Outputs\folder` dengan nama awalan. `DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS` | Administrator Sistem | 

## Pemecahan masalah
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| `MigrationValidatorToolkit`menulis informasi tentang eksekusi, perintah, dan kesalahan untuk mencatat file pada host yang sedang berjalan. | Anda dapat melihat file log secara manual di lokasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | 

## Sumber daya terkait
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-resources"></a>
+ [Opsi, alat, dan praktik terbaik untuk memigrasikan beban kerja Microsoft ke AWS (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-microsoft-workloads-aws/introduction.html) Prescriptive Guidance)
+ [Pola migrasi Microsoft](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-migration-patterns-by-workload-microsoft-pattern-list.html) (AWS Prescriptive Guidance)
+ [Layanan Migrasi Cloud Gratis di AWS](https://aws.amazon.com/free/migration/) (dokumentasi AWS)
+ [Tindakan pasca-peluncuran yang telah ditentukan sebelumnya (Dokumentasi](https://docs.aws.amazon.com/mgn/latest/ug/predefined-post-launch-actions.html) pemasaran aplikasi)

## Informasi tambahan
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-additional"></a>

**Pertanyaan yang sering diajukan**

*Di mana saya dapat menjalankan modul Migration Validator Toolkit? PowerShell *

Anda dapat menjalankan modul di Microsoft Windows Server 2012 R2 atau yang lebih baru.

*Kapan saya menjalankan modul ini?*

Kami menyarankan Anda menjalankan modul selama [fase penilaian](https://aws.amazon.com/cloud-migration/how-to-migrate/) perjalanan migrasi.

*Apakah modul memodifikasi server saya yang ada?*

Tidak. Semua tindakan dalam modul ini hanya-baca.

*Berapa lama waktu yang dibutuhkan untuk menjalankan modul?*

Biasanya dibutuhkan 1-5 menit untuk menjalankan modul, tetapi itu tergantung pada alokasi sumber daya server Anda.

*Izin apa yang dibutuhkan modul untuk dijalankan?*

Anda harus menjalankan modul dari akun administrator lokal.

*Bisakah saya menjalankan modul di server fisik?*

Ya, selama sistem operasinya adalah Microsoft Windows Server 2012 R2 atau yang lebih baru.

*Bagaimana cara menjalankan modul dalam skala besar untuk beberapa server?*

Untuk menjalankan modul pada beberapa komputer yang bergabung dengan domain dalam skala besar, ikuti langkah-langkah dalam * PowerShell modul Jalankan Migration Validator Toolkit pada beberapa* target epik panduan ini. Untuk komputer yang tidak bergabung dengan domain, gunakan pemanggilan jarak jauh atau jalankan modul secara lokal dengan mengikuti langkah-langkah dalam modul *Run the Migration Validator Toolkit PowerShell pada* satu target epik panduan ini.

# Membuat proses persetujuan untuk permintaan firewall selama migrasi rehost ke AWS
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Ringkasan
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-summary"></a>

Jika Anda ingin menggunakan [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)atau [Cloud Migration Factory AWS](https://aws.amazon.com/solutions/implementations/cloud-migration-factory-on-aws/) aktif untuk migrasi rehost ke AWS Cloud, salah satu prasyaratnya adalah Anda harus membiarkan port TCP 443 dan 1500 tetap terbuka. Biasanya, membuka port firewall ini memerlukan persetujuan dari tim keamanan informasi (InfoSec) Anda.

Pola ini menguraikan proses untuk mendapatkan persetujuan permintaan firewall dari InfoSec tim selama migrasi rehost ke. AWS Cloud Anda dapat menggunakan proses ini untuk menghindari penolakan permintaan firewall Anda oleh InfoSec tim, yang dapat menjadi mahal dan memakan waktu. Proses permintaan firewall memiliki dua langkah peninjauan dan persetujuan antara konsultan AWS migrasi dan prospek yang bekerja dengan tim Anda InfoSec dan aplikasi untuk membuka port firewall.

Pola ini mengasumsikan bahwa Anda merencanakan migrasi rehost dengan AWS konsultan atau spesialis migrasi dari organisasi Anda. Anda dapat menggunakan pola ini jika organisasi Anda tidak memiliki proses persetujuan firewall atau formulir persetujuan menyeluruh permintaan firewall. Untuk informasi lebih lanjut tentang ini, lihat bagian *Batasan* dari pola ini. Untuk informasi selengkapnya tentang persyaratan jaringan untuk Layanan Migrasi Aplikasi, lihat [Persyaratan jaringan](https://docs.aws.amazon.com/mgn/latest/ug/Network-Requirements.html) dalam dokumentasi Layanan Migrasi Aplikasi.

## Prasyarat dan batasan
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-prereqs"></a>

**Prasyarat**
+ Migrasi rehost yang direncanakan dengan AWS konsultan atau spesialis migrasi dari organisasi Anda
+ Port dan informasi IP yang diperlukan untuk memigrasikan tumpukan
+ Diagram arsitektur negara yang ada dan masa depan
+ Informasi firewall tentang infrastruktur lokal dan tujuan, port, dan arus zone-to-zone lalu lintas
+ Daftar periksa tinjauan permintaan firewall (terlampir)
+ Dokumen permintaan firewall, dikonfigurasi sesuai dengan kebutuhan organisasi Anda
+ Daftar kontak untuk pengulas dan pemberi persetujuan firewall, termasuk peran berikut:
  + **Pengirim permintaan firewall** — spesialis AWS migrasi atau konsultan. Pengirim permintaan firewall juga dapat menjadi spesialis migrasi dari organisasi Anda.
  + **Peninjau permintaan firewall** — Biasanya, ini adalah titik kontak tunggal (SPOC) dari. AWS
  + **Firewall request approver** — Anggota InfoSec tim.

**Batasan**
+ Pola ini menjelaskan proses persetujuan permintaan firewall generik. Persyaratan dapat bervariasi untuk organisasi individu.
+ Pastikan Anda melacak perubahan pada dokumen permintaan firewall Anda.

Tabel berikut menunjukkan kasus penggunaan untuk pola ini.


| 
| 
| Apakah organisasi Anda memiliki proses persetujuan firewall yang sudah ada? | Apakah organisasi Anda memiliki formulir permintaan firewall yang ada?  | Tindakan yang disarankan | 
| --- |--- |--- |
| Ya | Ya | Berkolaborasi dengan AWS konsultan atau spesialis migrasi Anda untuk mengimplementasikan proses organisasi Anda. | 
| Tidak | Ya | Gunakan proses persetujuan firewall pola ini. Gunakan AWS konsultan atau spesialis migrasi dari organisasi Anda untuk mengirimkan formulir persetujuan menyeluruh permintaan firewall. | 
| Tidak | Tidak | Gunakan proses persetujuan firewall pola ini. Gunakan AWS konsultan atau spesialis migrasi dari organisasi Anda untuk mengirimkan formulir persetujuan menyeluruh permintaan firewall. | 

## Arsitektur
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-architecture"></a>

Diagram berikut menunjukkan langkah-langkah untuk proses persetujuan permintaan firewall.

![\[Memproses persetujuan permintaan firewall dari InfoSec tim selama migrasi rehost ke AWS Cloud.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cf9b58ad-ab6f-43d3-92da-968529c8d042/images/c672f7ce-6e9f-4dbc-bf2c-4272a6c4432b.png)


## Alat
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-tools"></a>

Anda dapat menggunakan alat pemindai seperti [Palo Alto Networks](https://www.paloaltonetworks.com/) atau [SolarWinds](https://www.solarwinds.com/)untuk menganalisis dan memvalidasi firewall dan alamat IP.

## Epik
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-epics"></a>

### Analisis permintaan firewall
<a name="analyze-the-firewall-request"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Analisis port dan alamat IP. | Pengirim permintaan firewall menyelesaikan analisis awal untuk memahami port firewall dan alamat IP yang diperlukan. Setelah ini selesai, mereka meminta InfoSec tim Anda membuka port yang diperlukan dan memetakan alamat IP. | Insinyur AWS Cloud, spesialis migrasi | 

### Validasi permintaan firewall
<a name="validate-the-firewall-request"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi informasi firewall. |  AWS Cloud Insinyur menjadwalkan pertemuan dengan InfoSec tim Anda. Selama pertemuan ini, insinyur memeriksa dan memvalidasi informasi permintaan firewall.Biasanya, pengirim permintaan firewall adalah orang yang sama dengan pemohon firewall. Fase validasi ini dapat menjadi berulang berdasarkan umpan balik yang diberikan oleh pemberi persetujuan jika ada yang diamati atau direkomendasikan. | Insinyur AWS Cloud, spesialis migrasi | 
| Perbarui dokumen permintaan firewall. | Setelah InfoSec tim membagikan umpan balik mereka, dokumen permintaan firewall diedit, disimpan, dan diunggah ulang. Dokumen ini diperbarui setelah setiap iterasi.Kami menyarankan Anda menyimpan dokumen ini dalam folder penyimpanan yang dikontrol versi. Ini berarti bahwa semua perubahan dilacak dan diterapkan dengan benar. | Insinyur AWS Cloud, spesialis migrasi | 

### Kirim permintaan firewall
<a name="submit-the-firewall-request"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim permintaan firewall. | Setelah pemberi persetujuan permintaan firewall menyetujui permintaan persetujuan selimut firewall, AWS Cloud insinyur mengirimkan permintaan firewall. Permintaan menentukan port yang harus terbuka dan alamat IP yang diperlukan untuk memetakan dan memperbarui. Akun AWSAnda dapat memberikan saran atau memberikan umpan balik setelah permintaan firewall dikirimkan. Kami menyarankan Anda mengotomatiskan proses umpan balik ini dan mengirim pengeditan apa pun melalui mekanisme alur kerja yang ditentukan.  | Insinyur AWS Cloud, spesialis migrasi | 

## Lampiran
<a name="attachments-cf9b58ad-ab6f-43d3-92da-968529c8d042"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/cf9b58ad-ab6f-43d3-92da-968529c8d042/attachments/attachment.zip)

# Menyerap dan memigrasikan instans EC2 Windows ke akun AWS Managed Services
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account"></a>

*Anil Kunapareddy dan Venkatramana Chintha, Amazon Web Services*

## Ringkasan
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-summary"></a>

Pola ini menjelaskan step-by-step proses migrasi dan pengambilan instans Amazon Elastic Compute Cloud (Amazon EC2) Windows ke dalam akun Managed Services (AMS) Amazon Web Services (AWS). AMS dapat membantu Anda mengelola instans dengan lebih efisien dan aman. AMS memberikan fleksibilitas operasional, meningkatkan keamanan dan kepatuhan, serta membantu Anda mengoptimalkan kapasitas dan mengurangi biaya.

Pola ini dimulai dengan instance EC2 Windows yang telah Anda migrasi ke subnet pementasan di akun AMS Anda. Berbagai layanan dan alat migrasi tersedia untuk melakukan tugas ini, seperti AWS Application Migration Service.

Untuk membuat perubahan pada lingkungan yang dikelola AMS, Anda membuat dan mengirimkan permintaan perubahan (RFC) untuk operasi atau tindakan tertentu. Menggunakan AMS workload ingest (WIGS) RFC, Anda memasukkan instance ke dalam akun AMS dan membuat Amazon Machine Image (AMI) kustom. Anda kemudian membuat EC2 instance yang dikelola AMS dengan mengirimkan RFC lain untuk membuat tumpukan. EC2 Untuk informasi selengkapnya, lihat [AMS Workload Ingest](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html) dalam dokumentasi AMS.

## Prasyarat dan batasan
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif dan dikelola AMS
+ Landing zone yang sudah ada
+ Izin untuk membuat perubahan di VPC yang dikelola AMS
+ Instans Amazon EC2 Windows di subnet pementasan di akun AMS Anda
+ Penyelesaian [prasyarat umum](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-instance-prereqs.html) untuk memigrasikan beban kerja menggunakan AMS WIGS
+ Penyelesaian [prasyarat Windows](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-prereqs-win.html) untuk memigrasikan beban kerja menggunakan AMS WIGS

**Batasan**
+ Pola ini untuk EC2 contoh yang mengoperasikan Windows Server. Pola ini tidak berlaku untuk instance yang menjalankan sistem operasi lain, seperti Linux.

## Arsitektur
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-architecture"></a>

**Tumpukan teknologi sumber**

Instans Amazon EC2 Windows dalam subnet pementasan di akun AMS Anda

**Tumpukan teknologi target**

Instans Amazon EC2 Windows yang dikelola oleh AWS Managed Services (AMS)

**Arsitektur target**

![\[Proses untuk memigrasi dan menyerap instans Amazon EC2 Windows ke akun AWS Managed Services.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/393c21cb-b6c6-4446-b597-b62e29fdb7f8/images/0b2fa855-7460-49f8-9e7f-3485e6ce1745.png)


## Alat
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html) 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) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Managed Services (AMS)](https://docs.aws.amazon.com/managedservices/?id=docs_gateway) membantu Anda beroperasi lebih efisien dan aman dengan menyediakan pengelolaan infrastruktur AWS Anda yang berkelanjutan, termasuk pemantauan, manajemen insiden, panduan keamanan, dukungan patch, dan pencadangan untuk beban kerja AWS.

**Layanan lainnya**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)adalah program manajemen otomatisasi dan konfigurasi Microsoft yang berjalan di Windows, Linux, dan macOS.

## Epik
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-epics"></a>

### Konfigurasikan pengaturan pada instance
<a name="configure-settings-on-the-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah pengaturan Klien DNS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 
| Ubah pengaturan Pembaruan Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 
| Aktifkan firewall. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 

### Siapkan instance untuk AMS WIGS
<a name="prepare-the-instance-for-ams-wigs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan dan siapkan instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 
| Perbaiki file sppnp.dll. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 
| Jalankan skrip validasi Pra-wig. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 
| Buat AMI failsafe. | Setelah validasi Pra-wig berlalu, buat AMI pra-konsumsi sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html)Untuk informasi selengkapnya, lihat [AMI \$1 Buat](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-ami-create.html) di dokumentasi AMS. | Insinyur migrasi | 

### Menelan dan memvalidasi instance
<a name="ingest-and-validate-the-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim RFC untuk membuat tumpukan konsumsi beban kerja. | Kirim permintaan perubahan (RFC) untuk memulai AMS WIGS. Untuk petunjuk, lihat [Workload Ingest Stack: Membuat](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-workload-ingest-col.html) dalam dokumentasi AMS. Ini memulai konsumsi beban kerja dan menginstal semua perangkat lunak yang diperlukan oleh AMS, termasuk alat cadangan, perangkat lunak EC2 manajemen Amazon, dan perangkat lunak antivirus. | Insinyur migrasi | 
| Validasi migrasi yang berhasil. | Setelah konsumsi beban kerja selesai, Anda dapat melihat instans yang dikelola AMS dan AMI yang dicerna AMS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 

### Luncurkan instance di akun AMS target
<a name="launch-the-instance-in-the-target-ams-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim RFC untuk membuat EC2 tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Insinyur migrasi | 

## Sumber daya terkait
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-resources"></a>

**AWS Prescriptive Guidance**
+ [Mengotomatiskan aktivitas konsumsi pra-beban kerja untuk AWS Managed Services di Windows](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automate-pre-workload-ingestion-activities-for-aws-managed-services-on-windows.html)
+ [Secara otomatis membuat RFC di AMS menggunakan Python](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automatically-create-an-rfc-in-ams-using-python.html?did=pg_card&trk=pg_card)

**Dokumentasi AMS**
+ [Pencerapan Beban Kerja AMS](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html)
+ [Bagaimana Migrasi Mengubah Sumber Daya Anda](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-changes.html)
+ [Migrasi Beban Kerja: Proses Standar](https://docs.aws.amazon.com/managedservices/latest/appguide/mp-migrate-stack-process.html)

**Sumber daya pemasaran**
+ [AWS Managed Services](https://aws.amazon.com/managed-services/)
+ [AWS Managed Services FAQs](https://aws.amazon.com/managed-services/faqs/)
+ [Sumber Daya AWS Managed Services](https://aws.amazon.com/managed-services/resources/)
+ [Fitur AWS Managed Services](https://aws.amazon.com/managed-services/features/)

# Memigrasikan database Couchbase Server ke Amazon EC2
<a name="migrate-couchbase-server-ec2"></a>

*Subhani Shaik, Amazon Web Services*

## Ringkasan
<a name="migrate-couchbase-server-ec2-summary"></a>

Pola ini menjelaskan cara memigrasikan Server Couchbase dari lingkungan lokal ke Amazon Elastic Compute Cloud (Amazon). EC2 AWS

Couchbase Server adalah database NoSQL (dokumen JSON) terdistribusi yang menyediakan kemampuan database relasional. Migrasi database Couchbase Server untuk AWS dapat memberikan peningkatan skalabilitas, peningkatan kinerja, efisiensi biaya, keamanan yang ditingkatkan, manajemen yang disederhanakan, dan jangkauan global, yang dapat menguntungkan aplikasi yang memerlukan ketersediaan tinggi dan akses data latensi rendah. Anda juga mendapatkan akses ke fitur-fitur canggih melalui layanan AWS terkelola. 

Couchbase Server on AWS menyediakan fitur utama berikut: 
+ Arsitektur memori-pertama
+ Ketersediaan tinggi, pemulihan bencana, dan penyeimbangan beban
+ Multi-master, penyebaran multi-wilayah untuk kinerja optimal

Untuk informasi selengkapnya tentang manfaat utama, lihat bagian [Informasi tambahan](#migrate-couchbase-server-ec2-additional) dan situs web [Couchbase](https://www.couchbase.com/partners/amazon/).

## Prasyarat dan batasan
<a name="migrate-couchbase-server-ec2-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS dengan virtual private cloud (VPC), dua Availability Zone, subnet pribadi, dan grup keamanan. Untuk petunjuknya, lihat [Membuat VPC di dokumentasi](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) Amazon Virtual Private Cloud (Amazon VPC).
+ Konektivitas diaktifkan antara sumber dan lingkungan target. [Untuk informasi tentang port TCX yang digunakan oleh Couchbase Server, lihat dokumentasi Couchbase.](https://docs.couchbase.com/server/current/install/install-ports.html)

## Arsitektur
<a name="migrate-couchbase-server-ec2-architecture"></a>

Diagram berikut menunjukkan arsitektur tingkat tinggi untuk memigrasi Server Couchbase ke. AWS

![\[Arsitektur migrasi untuk menghosting ulang Server Couchbase di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4cedced2-3528-4f12-b19e-7d389e820cc1/images/ac22133a-895f-4999-b1e1-57f69e83a326.png)


Dari kluster Couchbase lokal, data bergerak melalui gateway pelanggan dengan menggunakan. [AWS Direct Connect](https://aws.amazon.com/directconnect/) Data melewati router dan Direct Connect rute dan mencapai VPC melalui gateway [AWS Virtual Private Network (Site-to-Site VPN)](https://aws.amazon.com/vpn/). VPC berisi EC2 instance yang menjalankan Couchbase Server. AWS Infrastruktur juga mencakup [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) untuk kontrol akses, [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) untuk enkripsi data, [Amazon Elastic Block Store (Amazon EBS) untuk penyimpanan blok, dan Amazon Simple Storage](https://aws.amazon.com/ebs/) [Service (Amazon S3) untuk penyimpanan](https://aws.amazon.com/s3/) data.

## Alat
<a name="migrate-couchbase-server-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.
+ [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 sambil melewati penyedia layanan internet di jalur jaringan Anda.

## Praktik terbaik
<a name="migrate-couchbase-server-ec2-best-practices"></a>
+ [Menginstal dan mengonfigurasi Couchbase](https://docs.couchbase.com/server/current/install/install-intro.html) pada platform operasi yang berbeda
+ [Praktik terbaik](https://docs.couchbase.com/server/current/cloud/couchbase-cloud-deployment.html#aws-best-practices) untuk menerapkan Server Couchbase di AWS
+ [Membuat cluster Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/create-cluster.html)
+ [Praktik terbaik kinerja](https://docs.couchbase.com/dotnet-sdk/current/project-docs/performance.html) untuk aplikasi Couchbase
+ [Praktik terbaik keamanan](https://docs.couchbase.com/server/current/learn/security/security-overview.html) untuk Couchbase Server
+ [Praktik terbaik penyimpanan](https://www.couchbase.com/forums/t/what-is-the-best-document-storage-strategy-in-couchbase/1573) untuk database Couchbase Server

## Epik
<a name="migrate-couchbase-server-ec2-epics"></a>

### Menerapkan EC2 instans Amazon untuk Couchbase Server
<a name="deploy-an-ec2-instance-for-couchbase-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka EC2 konsol Amazon. | Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/)dan buka [ EC2 konsol Amazon](https://console.aws.amazon.com/ec2/). | DevOps insinyur, administrator Couchbase | 
| Menerapkan EC2 instans Amazon. | Luncurkan EC2 instance yang cocok dengan konfigurasi Server Couchbase lokal. Untuk informasi selengkapnya tentang cara menerapkan EC2 instance, lihat [Meluncurkan EC2 instans Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) di EC2 dokumentasi Amazon. | DevOps insinyur, administrator Couchbase | 

### Instal dan konfigurasikan Server Couchbase di Amazon EC2
<a name="install-and-configure-couchbase-server-on-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal cluster Couchbase. | Tinjau [pedoman penerapan Couchbase Server](https://docs.couchbase.com/server/current/install/install-production-deployment.html) sebelum Anda menginstal Couchbase Server di Amazon. EC2Untuk menginstal Couchbase Server, lihat dokumentasi [Couchbase](https://docs.couchbase.com/server/current/install/install-intro.html) Server | Administrator Couchbase | 
| Konfigurasikan cluster. | Untuk mengonfigurasi cluster, lihat [Opsi Konfigurasi Cluster](https://docs.couchbase.com/cloud/clusters/databases.html#cluster-configuration-options) dalam dokumentasi Couchbase. | Administrator Couchbase | 

### Tambahkan node baru dan seimbangkan kembali cluster Couchbase
<a name="add-a-new-node-and-rebalance-the-couchbase-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan node untuk EC2 contoh. | Tambahkan EC2 instance yang baru diterapkan yang menginstal Couchbase ke kluster lokal yang ada. Untuk petunjuk, lihat [Menambahkan Node dan Menyeimbangkan Kembali](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) dalam dokumentasi Server Couchbase. | Administrator Couchbase | 
| Menyeimbangkan kembali cluster. | Proses rebalancing membuat node yang baru ditambahkan dengan EC2 instance menjadi anggota aktif dari cluster Couchbase. Untuk petunjuk, lihat [Menambahkan Node dan Menyeimbangkan Kembali](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) dalam dokumentasi Server Couchbase | Administrator Couchbase | 

### Konfigurasi ulang koneksi
<a name="reconfigure-connections"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus node lokal dan menyeimbangkan kembali. | Sekarang Anda dapat menghapus node lokal dari cluster. Setelah menghapus node, ikuti proses penyeimbangan ulang untuk mendistribusikan kembali data, indeks, pemrosesan peristiwa, dan pemrosesan kueri di antara node yang tersedia di cluster. Untuk petunjuk, lihat [Menghapus Node dan Menyeimbangkan Kembali](https://docs.couchbase.com/server/current/manage/manage-nodes/remove-node-and-rebalance.html) dalam dokumentasi Server Couchbase. | Administrator Couchbase | 
| Perbarui parameter koneksi. | Perbarui parameter koneksi aplikasi Anda untuk menggunakan alamat EC2 IP Amazon yang baru, sehingga aplikasi Anda dapat terhubung ke node baru. | Pengembang aplikasi Couchbase | 

## Sumber daya terkait
<a name="migrate-couchbase-server-ec2-resources"></a>
+ [Layanan Server Couchbase](https://docs.couchbase.com/server/current/learn/services-and-indexes/services/services.html)
+ [Menyebarkan Server Couchbase Menggunakan AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html)
+ [Connect ke Couchbase Server](https://docs.couchbase.com/server/current/guides/connect.html)
+ [Kelola Bucket](https://docs.couchbase.com/server/current/manage/manage-buckets/bucket-management-overview.html)
+ [Replikasi Pusat Data Lintas (XDCR)](https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-overview.html)
+ [Perjanjian Lisensi Couchbase Inc.](https://www.couchbase.com/LA20190115/)

## Informasi tambahan
<a name="migrate-couchbase-server-ec2-additional"></a>

**Manfaat utama**

Migrasi database Couchbase Anda untuk AWS memberikan keuntungan berikut:

**Skalabilitas**. Anda dapat menskalakan cluster Couchbase Anda naik atau turun berdasarkan permintaan tanpa harus mengelola perangkat keras fisik, sehingga Anda dapat dengan mudah mengakomodasi volume data yang berfluktuasi dan penggunaan aplikasi. AWS menyediakan:
+ Opsi penskalaan vertikal dan horizontal
+ [Kemampuan penyebaran global](https://aws.amazon.com/about-aws/global-infrastructure/)
+ Load balancing di seluruh Wilayah AWS
+ [Solusi penskalaan basis data](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/)
+ Optimalisasi [pengiriman konten](https://aws.amazon.com/solutions/content-delivery/)

**Optimalisasi kinerja**. AWS menyediakan infrastruktur jaringan berkinerja tinggi dan [tipe instans yang dioptimalkan](https://aws.amazon.com/ec2/instance-types/) untuk memastikan akses data yang cepat dan latensi rendah untuk database Couchbase Anda.
+ Opsi [komputasi kinerja tinggi (HPC)](https://aws.amazon.com/hpc/)
+ Pengiriman konten global melalui [Amazon CloudFront](https://aws.amazon.com/cloudfront/)
+ Beberapa [opsi penyimpanan](https://aws.amazon.com/products/storage/)
+ [Layanan database](https://aws.amazon.com/products/databases/) tingkat lanjut, termasuk Amazon Relational Database Service (Amazon RDS) dan Amazon DynamoDB
+ Koneksi latensi rendah dengan [Direct Connect](https://aws.amazon.com/directconnect/)

**Optimalisasi biaya**. Pilih jenis dan konfigurasi instans yang sesuai untuk menyeimbangkan kinerja dan biaya berdasarkan beban kerja Anda. Bayar hanya untuk sumber daya yang Anda gunakan. Ini berpotensi mengurangi biaya operasional Anda dengan menghilangkan kebutuhan untuk mengelola perangkat keras lokal dan memanfaatkan AWS Cloud skala ekonomi.
+ [Instans cadangan](https://aws.amazon.com/ec2/pricing/reserved-instances/) dapat membantu Anda merencanakan ke depan dan mengurangi biaya secara substansional saat Anda menggunakan Couchbase di. AWS
+ [Penskalaan otomatis](https://aws.amazon.com/autoscaling/) mencegah penyediaan berlebih dan membantu Anda mengoptimalkan pemanfaatan dan efisiensi biaya.

**Keamanan yang ditingkatkan**. Manfaatkan fitur keamanan yang kuat AWS, seperti enkripsi data, kontrol akses, dan grup keamanan untuk membantu melindungi data sensitif yang Anda simpan di Couchbase. Manfaat tambahan:
+ [Model Tanggung Jawab AWS Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) *jelas membedakan antara keamanan cloud (AWS tanggung jawab) dan keamanan *di* cloud (tanggung jawab pelanggan).*
+ [AWS kepatuhan](https://aws.amazon.com/compliance/) mendukung standar keamanan utama.
+ AWS menyediakan opsi [enkripsi](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/welcome.html) lanjutan.
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) membantu Anda mengelola akses aman ke sumber daya Anda.

**Manajemen yang disederhanakan**. AWS menyediakan layanan terkelola untuk Couchbase, sehingga Anda dapat fokus pada pengembangan aplikasi alih-alih mengelola infrastruktur yang mendasarinya.

**Jangkauan global**. Anda dapat menerapkan cluster Couchbase Anda di beberapa Wilayah AWS untuk mencapai latensi rendah bagi pengguna di seluruh dunia. Anda dapat menyebarkan database Anda sepenuhnya di cloud atau di lingkungan hybrid. Anda dapat melindungi data Anda dengan keamanan tingkat perusahaan bawaan dan sinkronisasi data dua arah yang cepat dan efisien dari edge ke cloud. Pada saat yang sama, Anda dapat menyederhanakan pengembangan dengan model pemrograman yang konsisten untuk membangun aplikasi web dan seluler.

**Kelangsungan bisnis**:
+ **Pencadangan dan pemulihan data**. Jika terjadi masalah, Anda dapat menggunakannya [AWS Backup](https://aws.amazon.com/backup/)untuk memastikan ketahanan data dan pemulihan yang mudah. Untuk opsi pemulihan bencana, lihat dokumentasi [AWS Well-Architected](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html) Framework.
+ **Penyebaran multi-wilayah Couchbase**: Untuk menerapkan database Couchbase di AWS lingkungan Multi-wilayah, Anda dapat berlangganan Server Couchbase di, menggunakan [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)templat untuk membuat kluster Couchbase terpisah di setiap Wilayah [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-zy5g2wqmqdyzw), lalu mengonfigurasi replikasi Lintas wilayah untuk menyinkronkan data di seluruh Wilayah. Konfigurasi ini memastikan ketersediaan tinggi dan redundansi geografis di beberapa Wilayah. Untuk informasi selengkapnya, lihat [Menerapkan Server Couchbase Menggunakan AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html) dalam dokumentasi Couchbase.

**Kelincahan infrastruktur**:
+ [Penyediaan sumber daya yang cepat dan deprovisioning](https://aws.amazon.com/products/management-and-governance/use-cases/provisioning-and-orchestration/)
+ Jangkauan [infrastruktur global](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Penskalaan otomatis](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) berdasarkan permintaan
+ [Infrastructure as Code (IAc)](https://aws.amazon.com/what-is/iac/) untuk penerapan yang konsisten
+ Beberapa [jenis instans](https://aws.amazon.com/ec2/instance-types/) yang dioptimalkan untuk beban kerja yang berbeda

**Pemberdayaan inovasi:**
+ [Akses ke teknologi terbaru, termasuk [AI/ML](https://aws.amazon.com/ai/generative-ai/), [IoT](https://aws.amazon.com/iot/), dan analitik](https://aws.amazon.com/big-data/datalakes-and-analytics/)
+ [Layanan terkelola](https://aws.amazon.com/blogs/architecture/reduce-operational-load-using-aws-managed-services-for-your-data-solutions/), yang mengurangi overhead operasional
+ Praktik pengembangan [aplikasi modern](https://aws.amazon.com/modern-apps/)
+ [Opsi komputasi tanpa server](https://aws.amazon.com/serverless/)

**Keunggulan operasional**:
+ [Pemantauan dan pencatatan terpusat](https://docs.aws.amazon.com/prescriptive-guidance/latest/designing-control-tower-landing-zone/logging-monitoring.html)
+ [Manajemen sumber daya otomatis](https://aws.amazon.com/systems-manager/)
+ Kemampuan [pemeliharaan prediktif](https://aws.amazon.com/what-is/predictive-maintenance/)
+ [Peningkatan visibilitas](https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-cloudwatch-provides-centralized-visibility-telemetry-configurations/) ke dalam penggunaan sumber daya
+ [Proses penyebaran yang efisien](https://aws.amazon.com/blogs/mt/streamline-change-processes-and-improve-governance-with-aws-well-architected/)

**Peluang modernisasi**:
+ [Arsitektur microservices](https://aws.amazon.com/microservices/)
+ [DevOps](https://aws.amazon.com/devops/)praktek implementasi
+ [Pengembangan aplikasi cloud-native](https://aws.amazon.com/what-is/cloud-native/)
+ [Modernisasi aplikasi lama](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-modernizing-applications/welcome.html)

**Keunggulan kompetitif**:
+ [Waktu yang lebih cepat untuk memasarkan](https://aws.amazon.com/blogs/smb/accelerate-time-to-market-and-business-growth-with-an-automated-software-as-a-service-platform/)
+ [Pengalaman pelanggan](https://aws.amazon.com/blogs/publicsector/improving-customer-experience-for-the-public-sector-using-aws-services/) yang lebih baik
+ [Pengambilan keputusan berbasis data](https://aws.amazon.com/data/data-driven-decision-making/)
+ [Kecerdasan bisnis](https://aws.amazon.com/what-is/business-intelligence/) yang ditingkatkan

# Migrasi Db2 untuk LUW ke EC2 Amazon dengan menggunakan pengiriman log untuk mengurangi waktu pemadaman
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar, dan Saurabh Sharma, Amazon Web Services*

## Ringkasan
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Ketika pelanggan memigrasikan beban kerja IBM Db2 mereka untuk LUW (Linux, UNIX, dan Windows) ke Amazon Web Services (AWS), menggunakan Amazon Elastic Compute Cloud ( EC2Amazon) dengan model Bring Your Own License (BYOL) adalah cara tercepat. Namun, memigrasikan sejumlah besar data dari Db2 lokal ke AWS dapat menjadi tantangan, terutama ketika jendela pemadaman pendek. Banyak pelanggan mencoba mengatur jendela pemadaman menjadi kurang dari 30 menit, yang menyisakan sedikit waktu untuk database itu sendiri.

Pola ini mencakup cara menyelesaikan migrasi Db2 dengan jendela pemadaman pendek dengan menggunakan pengiriman log transaksi. Pendekatan ini berlaku untuk Db2 pada platform Linux kecil.

## Prasyarat dan batasan
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instance Db2 yang berjalan pada EC2 instance yang cocok dengan tata letak sistem file lokal
+ Bucket Amazon Simple Storage Service (Amazon S3) yang dapat diakses oleh instans EC2 
+ Kebijakan dan peran AWS Identity and Access Management (IAM) untuk melakukan panggilan terprogram ke Amazon S3
+ Zona waktu dan jam sistem yang disinkronkan di Amazon EC2 dan server lokal
+ Jaringan lokal yang terhubung ke AWS melalui AWS [ Site-to-SiteVPN atau AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

**Batasan**
+ [Instans lokal Db2 dan Amazon EC2 harus berada di keluarga platform yang sama.](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ Beban kerja lokal Db2 harus dicatat. Untuk memblokir transaksi yang tidak tercatat, atur `blocknonlogged=yes` dalam konfigurasi database.

**Versi produk**
+ Db2 untuk LUW versi 11.5.9 dan yang lebih baru

## Arsitektur
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Tumpukan teknologi sumber**
+ Db2 di Linux x86\$164****

**Tumpukan teknologi target**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN atau Direct Connect

**Arsitektur target**

Diagram berikut menunjukkan satu instans Db2 yang berjalan di lokasi dengan koneksi jaringan pribadi virtual (VPN) ke Db2 di Amazon. EC2 Garis putus-putus mewakili terowongan VPN antara pusat data Anda dan AWS Cloud.

![\[Alur kerja untuk menyelesaikan migrasi Db2 dalam jendela pemadaman pendek menggunakan pengiriman log transaksi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Alat
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Layanan 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 dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) menautkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke layanan AWS publik sambil 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 (Amazon). EC2
+ [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.
+ [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.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) membantu Anda meneruskan lalu lintas antar instans yang Anda luncurkan di AWS dan jaringan jarak jauh Anda sendiri.

**Alat-alat lainnya**
+ [db2cli adalah perintah CLI interaktif](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) Db2.

## Praktik terbaik
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Pada database target, gunakan [titik akhir gateway untuk Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 untuk mengakses gambar cadangan database dan file log di Amazon S3.
+ Pada database sumber, gunakan [AWS PrivateLink untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) untuk mengirim gambar cadangan database dan file log ke Amazon S3.

## Epik
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Tetapkan variabel lingkungan
<a name="set-environment-variables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tetapkan variabel lingkungan. | Pola ini menggunakan nama-nama berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Anda dapat mengubahnya agar sesuai dengan lingkungan Anda. | DBA | 

### Konfigurasikan server Db2 lokal
<a name="configure-the-on-premises-db2-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Atur AWS CLI. | Untuk mengunduh dan menginstal AWS CLI versi terbaru, jalankan perintah berikut:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrator Linux | 
| Siapkan tujuan lokal untuk log arsip Db2. | Agar database target EC2 di Amazon tetap sinkron dengan database sumber lokal, log transaksi terbaru harus diambil dari sumbernya.Dalam pengaturan ini, `/db2logs` diatur oleh `LOGARCHMETH2` pada sumber sebagai area pementasan. Log yang diarsipkan di direktori ini akan disinkronkan ke Amazon S3 dan diakses oleh Db2 di Amazon. EC2 Pola yang digunakan `LOGARCHMETH2` karena `LOGARCHMETH1` mungkin telah dikonfigurasi untuk menggunakan alat vendor pihak ketiga yang tidak dapat diakses oleh perintah AWS CLI. Untuk mengambil log, jalankan perintah berikut: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Jalankan backup database online. | Jalankan backup database online, dan simpan ke sistem file backup lokal: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Siapkan bucket S3 dan kebijakan IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Buat bucket S3 untuk server lokal untuk mengirim image Db2 cadangan dan file log ke AWS. Bucket juga akan diakses oleh Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Administrator sistem AWS | 
|  Buat kebijakan IAM. | `db2bucket.json`File berisi kebijakan IAM untuk mengakses bucket Amazon S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Untuk membuat kebijakan, gunakan perintah AWS CLI berikut:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> Output JSON menunjukkan Nama Sumber Daya Amazon (ARN) untuk kebijakan, yang mewakili ID `aws_account_id` akun Anda:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Administrator AWS, administrator sistem AWS | 
| Lampirkan kebijakan IAM ke peran IAM yang digunakan oleh instance. EC2  | Di sebagian besar lingkungan AWS, EC2 instans yang sedang berjalan memiliki Peran IAM yang ditetapkan oleh administrator sistem Anda. Jika peran IAM tidak disetel, buat peran dan pilih **Ubah peran IAM** di EC2 konsol untuk mengaitkan peran dengan EC2 instance yang menghosting database Db2. Lampirkan kebijakan IAM ke peran IAM dengan kebijakan ARN:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Setelah kebijakan dilampirkan, EC2 instance apa pun yang terkait dengan peran IAM dapat mengakses bucket S3. | Administrator AWS, administrator sistem AWS | 

### Kirim gambar cadangan database sumber dan file log ke Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS CLI di server Db2 lokal. | Konfigurasikan AWS CLI dengan `Access Key ID` dan `Secret Access Key` dihasilkan pada langkah sebelumnya:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | Administrator AWS, administrator sistem AWS | 
| Kirim gambar cadangan ke Amazon S3. | Sebelumnya, cadangan database online disimpan ke direktori `/backup` lokal. Untuk mengirim gambar cadangan itu ke bucket S3, jalankan perintah berikut:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Administrator AWS, Insinyur migrasi | 
| Kirim log arsip Db2 ke Amazon S3. | Sinkronkan log arsip Db2 lokal dengan bucket S3 yang dapat diakses oleh instans Db2 target di Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Jalankan perintah ini secara berkala dengan menggunakan cron atau alat penjadwalan lainnya. Frekuensi tergantung pada seberapa sering database sumber mengarsipkan file log transaksi.  | Administrator AWS, Insinyur migrasi | 

### Connect Db2 di Amazon EC2 ke Amazon S3 dan mulai sinkronisasi database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PKCS12 keystore. | Db2 menggunakan keystore enkripsi Public-Key Cryptography Standards (PKCS) untuk menjaga kunci akses AWS tetap aman. Buat keystore dan konfigurasikan instance sumber Db2 untuk menggunakannya:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Buat alias akses penyimpanan Db2. | Untuk membuat [alias akses penyimpanan](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), gunakan sintaks skrip berikut:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Misalnya, skrip Anda mungkin terlihat seperti berikut: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Atur area pementasan. | Secara default, Db2 digunakan `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` sebagai area pementasan untuk mengunggah dan mengunduh file ke dan dari Amazon S3. Jalur default berada `sqllib/tmp/RemoteStorage.xxxx` di bawah direktori home instance, dengan `xxxx` mengacu pada nomor partisi Db2. Perhatikan bahwa area pementasan harus memiliki kapasitas yang cukup untuk menyimpan gambar cadangan dan file log. Anda dapat menggunakan registri untuk mengarahkan area pementasan ke direktori yang berbeda.Kami juga merekomendasikan penggunaan`DB2_ENABLE_COS_SDK=ON`,`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, dan tautan ke `awssdk` perpustakaan untuk melewati area pementasan Amazon S3 untuk pencadangan dan pemulihan basis data:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | DBA | 
| Kembalikan database dari gambar cadangan. | Kembalikan database target di Amazon EC2 dari gambar cadangan di bucket S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Gulung ke depan database. | Setelah pemulihan selesai, database target akan dimasukkan ke status tertunda rollforward. Konfigurasikan `LOGARCHMETH1` dan `LOGARCHMETH2` agar Db2 tahu di mana mendapatkan file log transaksi:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Mulai rollforward database:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Perintah ini memproses semua file log yang telah ditransfer ke bucket S3. Jalankan secara berkala berdasarkan frekuensi `s3 sync` perintah di server Db2 lokal. Misalnya, jika `s3 sync` berjalan pada setiap jam, dan dibutuhkan 10 menit untuk menyinkronkan semua file log, atur perintah untuk berjalan pada 10 menit setelah setiap jam.  | DBA | 

### Bawa Db2 di Amazon EC2 online selama jendela cutover
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bawa database target secara online. | Selama jendela cutover, lakukan salah satu hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Setelah log transaksi terakhir disinkronkan ke Amazon S3, jalankan perintah untuk `ROLLFORWARD` terakhir kalinya:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Bawa database target online, dan arahkan koneksi aplikasi ke Db2 di Amazon. EC2 | DBA | 

## Pemecahan masalah
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Jika beberapa database memiliki nama instance dan nama database yang sama pada host yang berbeda (DEV, QA, PROD), backup dan log mungkin masuk ke subdirektori yang sama. | Gunakan bucket S3 yang berbeda untuk DEV, QA, dan PROD, dan tambahkan nama host sebagai awalan subdirektori untuk menghindari kebingungan. | 
| Jika ada beberapa gambar cadangan di lokasi yang sama, Anda akan mendapatkan kesalahan berikut saat memulihkan:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Dalam `restore` perintah, tambahkan stempel waktu cadangan:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Sumber daya terkait
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operasi pencadangan dan pemulihan Db2 antara sistem operasi dan platform perangkat keras yang berbeda](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Mengatur Db2 STORAGE ACCESS ALIAS dan REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Perintah Db2 ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Metode arsip log sekunder Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)

# Migrasikan Db2 untuk LUW ke Amazon EC2 dengan pemulihan bencana ketersediaan tinggi
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery"></a>

*Feng Cai, Aruna Gangireddy, dan Venkatesan Govindan, Amazon Web Services*

## Ringkasan
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-summary"></a>

Saat pelanggan memigrasikan beban kerja IBM Db2 LUW (Linux, UNIX, dan Windows) mereka ke Amazon Web Services (AWS), menggunakan Amazon Elastic Compute Cloud (Amazon EC2) dengan model Bring Your Own License (BYOL) adalah cara tercepat. Namun, memigrasikan sejumlah besar data dari Db2 lokal ke AWS dapat menjadi tantangan, terutama ketika jendela pemadaman pendek. Banyak pelanggan mencoba mengatur jendela pemadaman menjadi kurang dari 30 menit, yang menyisakan sedikit waktu untuk database itu sendiri.

Pola ini mencakup cara menyelesaikan migrasi Db2 dengan jendela pemadaman pendek dengan menggunakan Db2 high availability disaster recovery (HADR). Pendekatan ini berlaku untuk database Db2 yang berada di platform Linux kecil dan tidak menggunakan Fitur Partisi Data (DPF).

## Prasyarat dan batasan
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instans Db2 yang berjalan pada instans Amazon EC2 yang cocok dengan tata letak sistem file lokal
+ Bucket Amazon Simple Storage Service (Amazon S3) yang dapat diakses oleh instans EC2
+ Kebijakan dan peran AWS Identity and Access Management (IAM) untuk melakukan panggilan terprogram ke Amazon S3
+ Zona waktu dan jam sistem yang disinkronkan di Amazon EC2 dan server lokal
+ Jaringan lokal yang terhubung ke AWS melalui AWS [ Site-to-SiteVPN atau AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect
+ Komunikasi antara server lokal dan Amazon EC2 di port HADR

**Keterbatasan**
+ [Instans lokal Db2 dan Amazon EC2 harus berada di keluarga platform yang sama.](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ HADR tidak didukung dalam lingkungan database yang dipartisi.
+ HADR tidak mendukung penggunaan mentah I/O (akses disk langsung) untuk file log database.
+ HADR tidak mendukung logging tak terbatas.
+ `LOGINDEXBUILD`harus disetel ke`YES`, yang akan meningkatkan penggunaan log untuk membangun kembali indeks.
+ Beban kerja lokal Db2 harus dicatat. Tetapkan `blocknonlogged=yes` dalam konfigurasi database untuk memblokir transaksi yang tidak tercatat.

**Versi produk**
+ Db2 untuk LUW versi 11.5.9 dan yang lebih baru

## Arsitektur
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-architecture"></a>

**Tumpukan teknologi sumber**
+ Db2 di Linux x86\$164****

**Tumpukan teknologi target**
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN

**Arsitektur target**

Dalam diagram berikut, Db2 di tempat berjalan `db2-server1` sebagai primer. Ini memiliki dua target siaga HADR. Satu target siaga ada di tempat dan bersifat opsional. Target siaga lainnya,`db2-ec2`, ada di Amazon EC2. Setelah database dipotong ke AWS, `db2-ec2` menjadi yang utama.

![\[Alur kerja untuk bermigrasi dengan jendela pemadaman singkat Db2 lokal dengan menggunakan Db2 HADR.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2db43e4b-f0ea-4a92-96da-4cafb7d3368b/images/5295420e-3cd8-4127-9a18-ade971c36339.png)


1. Log dialirkan dari database lokal utama ke database lokal siaga.

1. Menggunakan Db2 HADR, log dialirkan dari database lokal utama melalui Site-to-Site VPN ke Db2 di Amazon EC2.

1. Pencadangan Db2 dan log arsip dikirim dari database lokal utama ke bucket S3 di AWS.

## Alat
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-tools"></a>

**Layanan 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 dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) menautkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke layanan AWS publik sambil melewati penyedia layanan internet di jalur jaringan Anda.
+ [Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas](https://docs.aws.amazon.com/ec2/) 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 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.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) membantu Anda meneruskan lalu lintas antar instans yang Anda luncurkan di AWS dan jaringan jarak jauh Anda sendiri.

**Alat-alat lainnya**
+ [db2cli adalah perintah CLI interaktif](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) Db2.

## Praktik terbaik
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-best-practices"></a>
+ Pada database target, gunakan [titik akhir gateway untuk Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 untuk mengakses gambar cadangan database dan file log di Amazon S3.
+ Pada database sumber, gunakan [AWS PrivateLink untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) untuk mengirim gambar cadangan database dan file log ke Amazon S3.

## Epik
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-epics"></a>

### Tetapkan variabel lingkungan
<a name="set-environment-variables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tetapkan variabel lingkungan. | Pola ini menggunakan nama dan port berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)Anda dapat mengubahnya agar sesuai dengan lingkungan Anda. | DBA | 

### Konfigurasikan server Db2 lokal
<a name="configure-the-on-premises-db2-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS CLI. | Untuk mengunduh dan menginstal AWS CLI versi terbaru, jalankan perintah berikut:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrator Linux | 
| Siapkan tujuan lokal untuk log arsip Db2. | Kondisi seperti pekerjaan batch pembaruan berat dan perlambatan jaringan dapat menyebabkan server siaga HADR mengalami lag. Untuk catch up, server siaga membutuhkan log transaksi dari server utama. Urutan tempat untuk meminta log adalah sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)Dalam pengaturan ini, `/db2logs` diatur oleh `LOGARCHMETH2` pada sumber sebagai area pementasan. Log yang diarsipkan di direktori ini akan disinkronkan ke Amazon S3 dan diakses oleh Db2 di Amazon EC2. Pola yang digunakan `LOGARCHMETH2` karena `LOGARCHMETH1` mungkin telah dikonfigurasi untuk menggunakan alat vendor pihak ketiga yang tidak dapat diakses oleh perintah AWS CLI:<pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Jalankan backup database online. | Jalankan backup database online, dan simpan ke sistem file backup lokal:<pre>db2 backup db sample online to /backup </pre> | DBA | 

### Siapkan bucket S3 dan kebijakan IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Buat bucket S3 untuk server lokal untuk mengirim image Db2 cadangan dan file log ke AWS. Bucket akan diakses oleh Amazon EC2:<pre>aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1 </pre> | Administrator AWS | 
| Buat kebijakan IAM. | `db2bucket.json`File berisi kebijakan IAM untuk mengakses bucket S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::hadrmig-db2/*",<br />                "arn:aws:s3:::hadrmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Untuk membuat kebijakan, gunakan perintah AWS CLI berikut:<pre>aws iam create-policy \<br />      --policy-name db2s3hapolicy \<br />      --policy-document file://db2bucket.json </pre>Output JSON menunjukkan Nama Sumber Daya Amazon (ARN) untuk kebijakan, yang mewakili ID `aws_account_id` akun Anda:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"</pre> | Administrator AWS, administrator sistem AWS | 
| Lampirkan kebijakan IAM ke peran IAM. | Biasanya, instans EC2 dengan Db2 berjalan akan memiliki peran IAM yang ditetapkan oleh administrator sistem. Jika tidak ada peran IAM yang ditetapkan, Anda dapat memilih **Ubah peran IAM** di konsol Amazon EC2.Lampirkan kebijakan IAM ke peran IAM yang terkait dengan instans EC2. Setelah kebijakan dilampirkan, instans EC2 dapat mengakses bucket S3:<pre>aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole   </pre> |  | 

### Kirim gambar cadangan database sumber dan file log ke Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS CLI di server Db2 lokal. | Konfigurasikan AWS CLI dengan `Access Key ID` dan `Secret Access Key` yang Anda buat sebelumnya:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre> | Administrator AWS, administrator sistem AWS | 
| Kirim gambar cadangan ke Amazon S3. | Sebelumnya, cadangan database online disimpan ke direktori `/backup` lokal. Untuk mengirim gambar cadangan itu ke bucket S3, jalankan perintah berikut:<pre>aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup</pre> | Administrator AWS, administrator sistem AWS | 
| Kirim log arsip Db2 ke Amazon S3. | Sinkronkan log arsip Db2 lokal dengan bucket Amazon S3 yang dapat diakses oleh instans Db2 target di Amazon EC2:<pre>aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS</pre>Jalankan perintah ini secara berkala dengan menggunakan cron atau alat penjadwalan lainnya. Frekuensi tergantung pada seberapa sering database sumber mengarsipkan file log transaksi. |  | 

### Connect Db2 di Amazon EC2 ke Amazon S3 dan mulai sinkronisasi database awal
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-initial-database-sync"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PKCS12 keystore. | Db2 menggunakan keystore enkripsi Public-Key Cryptography Standards (PKCS) untuk menjaga kunci akses AWS tetap aman. Buat keystore, dan konfigurasikan sumber Db2 untuk menggunakannya:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Buat alias akses penyimpanan Db2. | Db2 menggunakan alias akses penyimpanan untuk mengakses Amazon S3 secara langsung dengan`INGEST`,,, `LOAD` atau perintah. `BACKUP DATABASE` `RESTORE DATABASE` Karena Anda menetapkan peran IAM ke instans EC2, `USER` dan tidak `PASSWORD` diperlukan:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Misalnya, skrip Anda mungkin terlihat seperti berikut: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'" ` | DBA | 
| Atur area pementasan. | Sebaiknya gunakan`DB2_ENABLE_COS_SDK=ON`,`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, dan tautan ke `awssdk` perpustakaan untuk melewati area pementasan Amazon S3 untuk pencadangan dan pemulihan basis data:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2stop<br />db2start</pre> | DBA | 
| Kembalikan database dari gambar cadangan. | Kembalikan database target di Amazon EC2 dari gambar cadangan di bucket S3:<pre>db2 create db sample on /data1<br />db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing</pre> | DBA | 

### Siapkan HADR tanpa HADR di tempat
<a name="set-up-hadr-with-no-hadr-on-premises"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan server Db2 lokal sebagai yang utama. | Memperbarui pengaturan konfigurasi database untuk HADR pada `db2-server1` (sumber lokal) sebagai primer. Setel `HADR_SYNCMODE` ke `SUPERASYNC` mode, yang memiliki waktu respons transaksi terpendek:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully`Beberapa penundaan jaringan antara pusat data lokal dan AWS diharapkan terjadi. (Anda dapat menetapkan `HADR_SYNCMODE` nilai yang berbeda berdasarkan keandalan jaringan. Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources)). | DBA | 
| Ubah tujuan arsip log database target. | Ubah tujuan arsip log database target agar sesuai dengan lingkungan Amazon EC2:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF<br />DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully</pre> | DBA | 
| Konfigurasikan HADR untuk Db2 di server Amazon EC2. | Perbarui konfigurasi database untuk HADR aktif `db2-ec2` sebagai siaga:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully` | DBA | 
| Verifikasi pengaturan HADR. | Verifikasi parameter HADR pada sumber dan target server Db2.Untuk memverifikasi pengaturan`db2-server1`, jalankan perintah berikut:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-ec2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50012<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre> Untuk memverifikasi pengaturan`db2-ec2`, jalankan perintah berikut:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>`HADR_REMOTE_SVC`Parameter `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`,, dan menunjukkan pengaturan HADR satu primer dan satu siaga. | DBA | 
| Mulai instance Db2 HADR. | Mulai instance Db2 HADR di server siaga terlebih dahulu: `db2-ec2`<pre>db2 start hadr on db sample as standby<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Mulai Db2 HADR di server utama (sumber): `db2-server1`<pre>db2 start hadr on db sample as primary<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Koneksi HADR antara Db2 di tempat dan di Amazon EC2 kini telah berhasil dibuat. Server utama Db2 `db2-server1` memulai streaming catatan log transaksi `db2-ec2` secara real time. | DBA | 

### Mengatur HADR ketika HADR ada di tempat
<a name="set-up-hadr-when-hadr-exists-on-premises"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan Db2 di Amazon EC2 sebagai siaga tambahan. | Jika HADR berjalan pada instans Db2 lokal, Anda dapat menambahkan Db2 di Amazon EC2 sebagai `HADR_TARGET_LIST` siaga tambahan menggunakan dengan menjalankan perintah berikut pada: `db2-ec2``db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-server2:50011" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | DBA | 
| Tambahkan informasi siaga tambahan ke server lokal. | Pembaruan `HADR_TARGET_LIST` pada dua server lokal (primer dan siaga).`db2-server1`Aktif, jalankan kode berikut:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.``db2-server2`Aktif, jalankan kode berikut:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.` | DBA | 
| Verifikasi pengaturan HADR. | Verifikasi parameter HADR pada sumber dan target server Db2.`db2-server1`Aktif, jalankan kode berikut:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50011<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>`db2-server2`Aktif, jalankan kode berikut:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50011<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>`db2-ec2`Aktif, jalankan kode berikut:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>`HADR_TARGET_LIST`Parameter `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`,`HADR_REMOTE_SVC`,, dan menunjukkan satu pengaturan HADR utama dan dua siaga. |  | 
| Berhenti dan mulai Db2 HADR. | `HADR_TARGET_LIST`sekarang diatur di ketiga server. Setiap server Db2 mengetahui dua lainnya. Hentikan dan mulai ulang HADR (pemadaman singkat) untuk memanfaatkan konfigurasi baru.`db2-server1`Aktif, jalankan perintah berikut:<pre>db2 stop hadr on db sample<br />db2 deactivate db sample<br />db2 activate db sample</pre>`db2-server2`Aktif, jalankan perintah berikut:<pre>db2 deactivate db sample<br />db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>`db2-ec2`Aktif, jalankan perintah berikut:<pre>db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>`db2-server1`Aktif, jalankan perintah berikut:<pre>db2 start hadr on db sample as primary<br />SQL1766W  The command completed successfully</pre>Koneksi HADR antara Db2 di tempat dan di Amazon EC2 sekarang berhasil dibuat. Server utama Db2 `db2-server1` memulai streaming catatan log transaksi ke keduanya `db2-server2` dan `db2-ec2` secara real time.  | DBA | 

### Jadikan Db2 di Amazon EC2 sebagai yang utama selama jendela cutover
<a name="make-db2-on-amazon-ec2-as-primary-during-the-cutover-window"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pastikan tidak ada lag HADR di server siaga. | Periksa status HADR dari server `db2-server1` utama. Jangan khawatir ketika `HADR_STATE` dalam `REMOTE_CATCHUP` status, yang normal ketika `HADR_SYNCMODE` diatur ke`SUPERASYNC`. `PRIMARY_LOG_TIME`Dan `STANDBY_REPLAY_LOG_TIME` menunjukkan bahwa mereka sinkron:<pre>db2pd -hadr -db sample<br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL<br />                        HADR_SYNCMODE = SUPERASYNC<br />                           STANDBY_ID = 2<br />                        LOG_STREAM_ID = 0<br />                           HADR_STATE = REMOTE_CATCHUP<br />.....<br />                     PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />                     STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />              STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)</pre> | DBA | 
| Jalankan pengambilalihan HADR. | Untuk menyelesaikan migrasi, buat database `db2-ec2` utama dengan menjalankan perintah pengambilalihan HADR. Gunakan perintah `db2pd` untuk memverifikasi `HADR_ROLE` nilai:<pre>db2 TAKEOVER HADR ON DATABASE sample<br />DB20000I  The TAKEOVER HADR ON DATABASE command completed successfully.<br /><br />db2pd -hadr -db sample<br />Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988<br /><br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL</pre>Untuk menyelesaikan migrasi ke AWS, arahkan koneksi aplikasi ke Db2 di Amazon EC2. |  | 

## Pemecahan masalah
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Jika Anda menggunakan NAT untuk alasan firewall dan keamanan, host dapat memiliki dua alamat IP (satu internal dan satu eksternal), yang dapat menyebabkan kegagalan pemeriksaan alamat IP HADR. `START HADR ON DATABASE`Perintah akan mengembalikan pesan berikut:`HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.` | Untuk [mendukung HADR di lingkungan NAT,](https://www.ibm.com/docs/en/db2/11.5?topic=support-hadr-nat) Anda dapat mengonfigurasi `HADR_LOCAL_HOST` dengan alamat internal dan eksternal. Misalnya, jika server Db2 memiliki nama internal `host1` dan nama eksternal`host1E`, `HADR_LOCAL_HOST` bisa. `HADR_LOCAL_HOST: "host1 \| host1E"` | 

## Sumber daya terkait
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources"></a>
+ [Operasi pencadangan dan pemulihan Db2 antara sistem operasi dan platform perangkat keras yang berbeda](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Mengatur Db2 STORAGE ACCESS ALIAS dan REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Pemulihan bencana ketersediaan tinggi Db2](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)
+ [hadr\$1syncmode - Mode sinkronisasi HADR untuk penulisan log dalam parameter konfigurasi status rekan](https://www.ibm.com/docs/en/db2/11.5?topic=dcp-hadr-syncmode-hadr-synchronization-mode-log-writes-in-peer-state)

# Migrasi aplikasi yang dihosting IIS ke Amazon dengan menggunakan appcmd.exe EC2
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd"></a>

*Deepak Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-summary"></a>

Saat memigrasikan aplikasi yang dihosting Internet Information Services (IIS) ke instans Amazon Elastic Compute Cloud (Amazon EC2), Anda perlu mengatasi beberapa tantangan autentikasi. Tantangan ini termasuk memasukkan kembali kredensil domain untuk identitas kumpulan aplikasi dan berpotensi meregenerasi kunci mesin untuk fungsionalitas situs web yang tepat. Anda dapat menggunakan AWS Directory Service untuk membangun hubungan kepercayaan dengan Active Directory lokal atau membuat Active Directory terkelola baru. AWS Pola ini menjelaskan pendekatan migrasi bersih yang menggunakan fungsionalitas pencadangan dan pemulihan IIS di EC2 instans Amazon. Pendekatan ini menggunakan appcmd.exe untuk menghapus dan menginstal ulang IIS pada EC2 instance target, memungkinkan migrasi situs web yang dihosting IIS, identitas kumpulan aplikasi, dan kunci mesin yang berhasil. 

## Prasyarat dan batasan
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS untuk server target.
+ Server IIS sumber fungsional dengan situs web yang dihosting di dalamnya.
+ Memahami prinsip-prinsip kerja IIS seperti administrasi dan konfigurasi.
+ Akses administrator sistem pada server sumber dan target.
+ Migrasi lengkap dari server IIS sumber ke target Akun AWS. Anda dapat menggunakan alat migrasi seperti AWS Application Migration Service pendekatan berbasis snapshot Amazon Machine Image (AMI), atau alat migrasi lainnya.

**Batasan**
+ 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**
+ IIS 8.5 atau IIS 10.0

## Arsitektur
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-architecture"></a>

**Tumpukan teknologi sumber**
+ Windows Server dengan IIS 8.5 atau IIS 10.0 diinstal

**Tumpukan teknologi target**
+ Windows Server dengan IIS 8.5 atau IIS 10.0 diinstal
+ Application Migration Service

**Arsitektur target**

Diagram berikut menunjukkan alur kerja dan komponen arsitektur untuk pola ini.

![\[Alur kerja untuk memigrasikan aplikasi yang dihosting IIS ke Amazon. EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2f9f7757-b2bc-4077-b51a-700de521424c/images/36aa9b7a-d0aa-4fa4-be47-9fee43b53c22.png)


Solusinya meliputi langkah-langkah berikut:

1. [Instal](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) dan konfigurasikan Agen AWS Replikasi di server IIS sumber di pusat data perusahaan Anda. Agen ini memulai proses replikasi dan mengelola transfer data ke. AWS

1. Agen AWS Replikasi membuat [koneksi aman](https://docs.aws.amazon.com/mgn/latest/ug/Agent-Related-FAQ.html#How-Communication-Secured) ke Layanan Migrasi Aplikasi dan mulai mereplikasi data server sumber, termasuk konfigurasi IIS, situs web, dan file aplikasi.

1. Layanan Migrasi Aplikasi meluncurkan EC2 instance di subnet aplikasi dengan data yang direplikasi. EC2 Instans target menjalankan IIS dan berisi aplikasi yang dimigrasi dengan volume Amazon Elastic Block Store (Amazon EBS) terkait. Setelah replikasi awal, Layanan Migrasi Aplikasi terus menyinkronkan perubahan hingga Anda [siap untuk memotong ke](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html#ready-for-cutover1) lingkungan baru.

## Alat
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-tools"></a>

**Layanan AWS**
+ [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.
+ [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.

**Alat lainnya**
+ [Internet Information Services (IIS)](https://www.iis.net/overview) untuk Windows Server adalah server web dengan arsitektur terukur dan terbuka untuk hosting apa pun di Web. IIS menyediakan seperangkat alat administrasi, termasuk alat administrasi dan baris perintah (misalnya, appcmd.exe), kode terkelola dan skrip APIs, dan dukungan Windows PowerShell .

## Epik
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-epics"></a>

### Cadangkan IIS di sumber sebelum migrasi
<a name="back-up-iis-at-source-prior-to-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cadangan situs web yang dihosting IIS, kunci konfigurasi, dan kunci. `WAS` | Untuk membuat cadangan untuk situs web yang dihosting IIS, kunci konfigurasi (`iisConfigurationKey`), dan `WAS` kunci (`iisWasKey`), gunakan appcmd.exe di server sumber. Gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html)Untuk mengekspor kunci konfigurasi dan `WAS` kunci, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrator IIS | 

### Copot pemasangan dan instal ulang IIS di server target
<a name="uninstall-and-reinstall-iis-on-the-target-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Copot pemasangan IIS di server target. | Untuk menghapus IIS di server target, gunakan langkah-langkah berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrator IIS | 
| Instal IIS di server target. | Untuk menginstal IIS di server target, gunakan langkah-langkah berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrator IIS | 

### Kembalikan situs web dan konfigurasi IIS dari cadangan
<a name="restore-iis-websites-and-configuration-from-the-backups"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembalikan situs web dan konfigurasi IIS. | Untuk mengembalikan cadangan IIS yang Anda buat dari server sumber di server target, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrator IIS | 

## Sumber daya terkait
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-resources"></a>

**AWS dokumentasi**
+ [Menginstal Agen AWS Replikasi](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) (AWS Application Migration Service dokumentasi)

**AWS Bimbingan Preskriptif**
+ [Memigrasi VM lokal ke Amazon dengan menggunakan EC2 AWS Application Migration Service](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)
+ [Menggunakan AMIs atau snapshot Amazon EBS untuk backup](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/ec2-backup.html#amis-snapshots)

**Sumber daya Microsoft**
+ [Identitas kumpulan aplikasi](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/was-service-svchost-process-operation/understanding-identities#application-pool-identities)
+ [Dokumentasi IIS](https://learn.microsoft.com/en-us/iis/)
+ [Dokumentasi IIS 8 appcmd.exe](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635852(v=ws.11))
+ [Dokumentasi IIS 10 appcmd.exe](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/new-features-introduced-in-iis-10)
+ [Alat Admin Kuat](https://learn.microsoft.com/en-us/iis/overview/powerful-admin-tools)

# Memigrasi database Microsoft SQL Server lokal ke Amazon EC2 menggunakan Layanan Migrasi Aplikasi
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn"></a>

*Senthil Ramasamy, Amazon Web Services*

## Ringkasan
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-summary"></a>

Pola ini menjelaskan langkah-langkah untuk memigrasikan database Microsoft SQL Server dari pusat data lokal ke instans Amazon Elastic Compute Cloud (Amazon). EC2 Ini menggunakan AWS Application Migration Service (AWS MGN) untuk meng-host ulang database Anda menggunakan migrasi otomatis lift-and-shift. AWS MGN melakukan replikasi tingkat blok dari server basis data sumber Anda.

## Prasyarat dan batasan
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Database Microsoft SQL Server sumber di pusat data lokal

**Batasan**
+ Bandwidth jaringan Anda mungkin terbatas antara pusat data lokal dan AWS.
+ AWS MGN terbatas pada database yang di-host di server mandiri dengan penyimpanan khusus. Itu tidak mendukung migrasi sistem database berkerumun dan sistem database di mana tingkat perubahan melebihi throughput jaringan.
+ 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://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/), dan pilih tautan untuk layanan.

**Versi produk**
+ Semua versi database Microsoft SQL Server
+ Sistem operasi Windows dan Linux yang [mendukung AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)

## Arsitektur
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-architecture"></a>

**Tumpukan teknologi sumber**

Database Microsoft SQL Server lokal

**Tumpukan teknologi target**

Database Microsoft SQL Server pada instans Amazon EC2 

**Arsitektur target**

![\[Mereplikasi data dari pusat data perusahaan lokal ke AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a459eaef-c256-4691-a7ec-2304f634228c/images/d8d6cee7-f42c-4686-bf92-6e6d39adfb17.png)


Arsitektur ini menggunakan AWS MGN untuk mereplikasi data dari pusat data perusahaan lokal ke. AWS Diagram menunjukkan proses replikasi data, komunikasi API, dan fase pengujian dan pemotongan.

1. Replikasi data:
   + AWS MGN mereplikasi data dari pusat data perusahaan lokal ke AWS dan memulai replikasi perubahan yang sedang berlangsung.
   + Server replikasi di subnet pementasan menerima dan memproses data.

1. Komunikasi API:
   + Server replikasi terhubung ke titik akhir API AWS MGN, Amazon EC2, dan Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) melalui port TCP 443.
   + AWS MGN mengelola migrasi.
   + Amazon EC2 mengelola operasi instans.

1. Tes dan cutover:
   + Instans pengujian diluncurkan di subnet operasional menggunakan data yang direplikasi.
   + Setelah pengujian berhasil, AWS MGN membuat instance cutover untuk migrasi akhir.

## Alat
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-tools"></a>
+ [AWS Application Migration Service (AWS MGN)](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.
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)menghubungkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke AWS layanan publik sambil melewati penyedia layanan internet di jalur jaringan 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 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="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-best-practices"></a>
+ Siapkan titik akhir regional API untuk AWS MGN EC2, Amazon, dan Amazon S3 di virtual private cloud (VPC) untuk melarang akses publik dari internet.
+ Siapkan pengaturan peluncuran AWS MGN untuk meluncurkan server basis data target di subnet pribadi.
+ Izinkan hanya port yang diperlukan dalam grup keamanan database.
+ 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="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-epics"></a>

### Mengatur AWS MGN
<a name="set-up-aws-mgn"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS MGN. | Cari di AWS Application Migration Service dalam Konsol Manajemen AWS, dan memulai proses setup. Ini akan membuat template replikasi dan mengarahkan Anda ke halaman server **Sumber** konsol MGN. Saat Anda mengonfigurasi layanan MGN, pilih peran layanan dari daftar yang dihasilkan. | DBA, insinyur Migrasi | 
| Tambahkan server sumber. | Tambahkan detail server database sumber lokal Anda, lalu tambahkan server. | DBA, insinyur Migrasi | 
| Instal agen AWS MGN di server sumber. | Unduh penginstal agen AWS MGN ke sistem lokal Anda, dan transfer penginstal ke server basis data sumber Anda. Untuk memvalidasi hash penginstal, lihat Memvalidasi penginstal [Agen AWS Replikasi](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html#installer-hash-table-2012) yang diunduh untuk Windows 2012. | DBA, insinyur Migrasi | 

### Instal agen AWS MGN pada mesin sumber
<a name="install-aws-mgn-agent-on-source-machines"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan kredensil IAM klien. | Sebelum Anda menginstal agen AWS MGN, buat AWS kredensi dengan membuat pengguna IAM baru dengan izin yang sesuai.Untuk informasi selengkapnya, lihat [kebijakan terkelola AWS untuk AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html) dan [Membuat AWS kredensil yang diperlukan](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | DBA, insinyur Migrasi | 
| Instal agen di server sumber. | Instal agen pada mesin sumber yang menghosting database Microsoft SQL Server. Untuk informasi selengkapnya, lihat [Menginstal Agen AWS Replikasi di server Windows](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html).Berikan kredensi AWS berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) AWS Kredensi unik Anda memungkinkan agen AWS MGN untuk mengautentikasi dan melakukan tugas migrasi. | Pemilik aplikasi, DBA, insinyur Migrasi | 
| Pilih disk untuk direplikasi. | Setelah memasukkan AWS kredensil Anda, penginstal memverifikasi bahwa server Anda memenuhi persyaratan minimum untuk instalasi agen (misalnya, apakah server memiliki ruang disk yang cukup untuk menginstal agen MGN). AWS Pemasang menampilkan label volume dan detail penyimpanan.Untuk mereplikasi database Anda menggunakan layanan AWS MGN, pilih disk yang berlaku di server sumber Anda. Masukkan jalur setiap disk, dipisahkan dengan koma. Jika Anda ingin mereplikasi semua disk, biarkan jalurnya kosong. Setelah Anda mengkonfirmasi disk yang dipilih, instalasi dilanjutkan. | DBA, insinyur Migrasi | 
| Pantau kemajuan sinkronisasi. | AWS Agen Replikasi memulai proses sinkronisasi dengan terlebih dahulu mengambil snapshot dari disk yang dipilih dan kemudian mereplikasi data.Anda dapat memantau kemajuan sinkronisasi dari halaman **server Sumber** di konsol AWS MGN. Untuk informasi selengkapnya, lihat [Memantau server dalam siklus hidup migrasi](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html). | DBA, insinyur Migrasi | 

### Replikasi menggunakan AWS MGN
<a name="replication-using-aws-mgn"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kelola kemajuan replikasi. | Setelah Anda memulai sinkronisasi awal, server sumber Anda muncul di konsol AWS MGN, tempat Anda dapat mengelola dan memantau migrasi. Konsol menampilkan perkiraan waktu untuk replikasi lengkap, yang didasarkan pada ukuran total disk yang dipilih dan bandwidth jaringan yang tersedia. | DBA, insinyur Migrasi | 
| Verifikasi sinkronisasi. | Setelah disk di server sumber disinkronkan sepenuhnya, verifikasi bahwa semua disk yang dipilih terdaftar sebagai disinkronkan sepenuhnya dan tidak ada kesalahan yang dilaporkan di konsol.Konsol AWS MGN kemudian akan secara otomatis mentransisikan status siklus hidup migrasi ke **Siap untuk pengujian**, yang menunjukkan bahwa lingkungan yang direplikasi AWS disiapkan untuk pengujian kinerja dan fungsionalitas. | Pemilik aplikasi, DBA, insinyur Migrasi | 

### Uji dan potong
<a name="test-and-cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan pengaturan peluncuran. | Pilih server sumber di konsol AWS MGN, dan perbarui pengaturan peluncuran untuk instance pengujian target. Dari halaman **Detail server** sumber, navigasikan ke tab **Pengaturan peluncuran** untuk mengonfigurasi instance pengujian.Pilih jenis instans yang hemat biaya dan jenis volume Amazon Elastic Block Store (Amazon EBS) Elastic Block Store (Amazon EBS), lalu konfigurasikan grup keamanan dan persyaratan jaringan. Untuk informasi selengkapnya, lihat [Pengaturan peluncuran](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | DBA, insinyur Migrasi | 
| Luncurkan instance uji target. | Arahkan ke konsol AWS MGN dari mesin sumber yang disinkronkan, dan luncurkan instance pengujian target dengan memilih **Uji dan potong lalu** **Luncurkan instance pengujian**.Ini menciptakan pekerjaan peluncuran yang menyebarkan instance pengujian menggunakan pengaturan yang dikonfigurasi. Instance diluncurkan di AWS Cloud dan mereplikasi lingkungan server database sumber Anda. Pantau kemajuan peluncuran dari halaman **Riwayat peluncuran**, tempat Anda dapat melacak pembuatan instans dan mengatasi masalah apa pun. | DBA, insinyur Migrasi | 
| Validasi contoh uji target. | Validasi server EC2 database Amazon:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Melakukan tes validasi untuk memastikan fungsi database seperti yang diharapkan. | DBA, insinyur Migrasi | 
| Ganti nama server. | AWS Migrasi MGN melibatkan salinan tingkat penyimpanan server sumber lokal Anda. EC2 Instance SQL Server Anda hanya berisi rincian server sumber asli dalam binari, jadi perbarui informasi biner untuk mencerminkan nama server baru.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | DBA, insinyur Migrasi | 
| Luncurkan instance cutover. | Di konsol AWS MGN, di halaman **Server sumber**, konfirmasikan bahwa status siklus hidup migrasi server **Siap untuk** dipotong. Konfigurasikan setelan peluncuran untuk instance cutover, memastikan bahwa pengaturan mencerminkan lingkungan lokal Anda.Sebelum memulai cutover, matikan database lokal Anda, yang memastikan hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Memulai instance cutover di konsol AWS MGN. Saat instance cutover beroperasi, masuk ke instance dan lakukan pengujian berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | Pemilik aplikasi, DBA, insinyur Migrasi, Pimpinan migrasi | 

## Pemecahan masalah
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Sinkronisasi awal gagal pada langkah otentikasi. | Ini adalah masalah konektivitas jaringan. Server replikasi tidak dapat terhubung ke AWS MGN. | 

## Sumber daya terkait
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-resources"></a>

**Dokumentasi AWS**
+ [Memulai dengan AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/getting-started.html)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html)
+ [Apa itu Microsoft SQL Server di Amazon? EC2](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-overview.html)

**Video**
+ [Melakukan Migrasi Lift dan Shift dengan AWS Application Migration Service](https://www.youtube.com/watch?v=tB0sAR3aCb4) (video)

# Migrasikan beban kerja F5 BIG-IP ke F5 BIG-IP VE di AWS Cloud
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud"></a>

*Deepak Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-summary"></a>

Organizations mencari untuk bermigrasi ke AWS Cloud untuk meningkatkan kelincahan dan ketahanan mereka. Setelah memigrasikan solusi keamanan dan manajemen lalu lintas [F5 BIG-IP](https://www.f5.com/products/big-ip-services) ke F5 AWS Cloud, Anda dapat fokus pada kelincahan dan adopsi model operasional bernilai tinggi di seluruh arsitektur perusahaan Anda.

Pola ini menjelaskan cara memigrasikan beban kerja F5 BIG-IP ke beban kerja [F5 BIG-IP Virtual](https://www.f5.com/products/big-ip-services/virtual-editions) Edition (VE) pada file. AWS Cloud Beban kerja akan dimigrasikan dengan menghosting ulang lingkungan yang ada dan menerapkan aspek replatforming, seperti penemuan layanan dan integrasi API. [AWS CloudFormation template](https://github.com/F5Networks/f5-aws-cloudformation) mempercepat migrasi beban kerja Anda ke file. AWS Cloud

Pola ini ditujukan untuk tim teknik dan arsitektur teknis yang memigrasi solusi keamanan dan manajemen lalu lintas F5, dan menyertai panduan [Migrasi dari F5 BIG-IP ke F5 BIG-IP](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html) VE di situs web Prescriptive Guidance. AWS Cloud AWS 

## Prasyarat dan batasan
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-prereqs"></a>

**Prasyarat**
+ Beban kerja F5 BIG-IP lokal yang ada.
+ Lisensi F5 yang ada untuk versi BIG-IP VE.
+ Aktif Akun AWS.
+ Virtual private cloud (VPC) yang sudah ada dikonfigurasi dengan jalan keluar melalui gateway NAT atau alamat IP Elastic, dan dikonfigurasi dengan akses ke titik akhir berikut: Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), (), dan Amazon. AWS Security Token Service AWS STS CloudWatch Anda juga dapat memodifikasi arsitektur [VPC Modular dan skalabel](https://aws.amazon.com/quickstart/architecture/vpc/) Mulai Cepat sebagai blok bangunan untuk penerapan Anda. 
+ Satu atau dua Availability Zone yang ada, tergantung pada kebutuhan Anda. 
+ Tiga subnet pribadi yang ada di setiap Availability Zone.
+ AWS CloudFormation template, [tersedia di GitHub repositori F5](https://github.com/F5Networks/f5-aws-cloudformation/blob/master/template-index.md). 

Selama migrasi, Anda juga dapat menggunakan yang berikut ini, tergantung pada kebutuhan Anda:
+ [Ekstensi Failover Cloud F5](https://clouddocs.f5.com/products/extensions/f5-cloud-failover/latest/) untuk mengelola pemetaan alamat IP Elastis, pemetaan IP sekunder, dan perubahan tabel rute. 
+ Jika Anda menggunakan beberapa Availability Zone, Anda harus menggunakan F5 Cloud Failover Extensions untuk menangani pemetaan IP Elastis ke server virtual.
+ Anda harus mempertimbangkan untuk menggunakan [F5 Application Services 3 (AS3)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/), [F5 Application Services Templates (FAST)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-templates/latest/), atau model infrastruktur lain sebagai kode (IAc) untuk mengelola konfigurasi. Mempersiapkan konfigurasi dalam model IAc dan menggunakan repositori kode akan membantu migrasi dan upaya manajemen Anda yang sedang berlangsung.

**Keahlian**
+ Pola ini membutuhkan keakraban dengan bagaimana satu atau lebih VPCs dapat dihubungkan ke pusat data yang ada. Untuk informasi selengkapnya tentang ini, lihat [opsi konektivitas Network-to-Amazon VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) di dokumentasi Amazon VPC. 
+ [Keakraban juga diperlukan dengan produk dan modul F5, termasuk [Traffic Management Operating System (TMOS), Local Traffic Manager (LTM)](https://www.f5.com/services/resources/white-papers/tmos-redefining-the-solution)[, Global Traffic Manager (GTM)](https://www.f5.com/products/big-ip-services/local-traffic-manager)[, Access Policy Manager (APM)](https://techdocs.f5.com/kb/en-us/products/big-ip_gtm/manuals/product/gtm-concepts-11-5-0/1.html#unique_9842886)[, Application Security Manager (ASM)](https://www.f5.com/products/security/access-policy-manager)[, Advanced Firewall Manager (AFM),](https://www.f5.com/pdf/products/big-ip-application-security-manager-overview.pdf)[dan BIG-IQ](https://www.f5.com/products/security/advanced-firewall-manager).](https://www.f5.com/products/automation-and-orchestration/big-iq)

**Versi produk**
+ [Kami menyarankan Anda menggunakan F5 BIG-IP [versi 13.1](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-ve-13-1-0.html) atau yang lebih baru, meskipun polanya mendukung F5 BIG-IP versi 12.1 atau yang lebih baru.](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-12-1-4.html)

## Arsitektur
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-architecture"></a>

**Tumpukan teknologi sumber**
+ Beban kerja BIG-IP F5

**Tumpukan teknologi target**
+ Amazon CloudFront
+ CloudWatch
+ Amazon EC2
+ Amazon S3
+ Amazon VPC
+ AWS Global Accelerator
+ AWS STS
+ AWS Transit Gateway
+ F5 IP BESAR

**Arsitektur target**

![\[Arsitektur untuk memigrasikan beban kerja F5 BIG-IP ke beban kerja F5 BIG-IP VE.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/586fe806-fac1-48d3-9eb1-45a6c86430dc/images/16d7fc09-1ffe-4721-b503-d971db84cbae.png)


## Alat
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-tools"></a>
+ [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
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) mempercepat distribusi konten web Anda dengan mengirimkannya melalui jaringan pusat data di seluruh dunia, yang menurunkan latensi dan meningkatkan kinerja.   
+ [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.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/)) menyediakan kapasitas komputasi yang dapat diskalakan di Anda dapat meluncurkan server virtual sebanyak AWS Cloud yang Anda butuhkan dan dengan cepat menskalakannya 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.
+ [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 Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) membantu Anda meminta kredensil hak istimewa terbatas sementara untuk pengguna.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)adalah hub pusat yang menghubungkan virtual private cloud (VPCs) dan jaringan lokal.
+ [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

## Epik
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-epics"></a>

### Penemuan dan penilaian
<a name="discovery-and-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menilai kinerja F5 BIG-IP. | Kumpulkan dan catat metrik kinerja aplikasi di server virtual, dan metrik sistem yang akan dimigrasikan. Ini akan membantu mengukur AWS infrastruktur target dengan benar untuk optimalisasi biaya yang lebih baik. | F5 Arsitek, Insinyur dan Arsitek Jaringan, Insinyur | 
| Evaluasi sistem operasi dan konfigurasi F5 BIG-IP. | Evaluasi objek mana yang akan dimigrasikan dan apakah struktur jaringan perlu dipertahankan, seperti VLANs. | F5 Arsitek, Insinyur | 
| Evaluasi opsi lisensi F5. | Evaluasi model lisensi dan konsumsi mana yang akan Anda butuhkan. Penilaian ini harus didasarkan pada evaluasi Anda terhadap sistem operasi dan konfigurasi F5 BIG-IP. | F5 Arsitek, Insinyur | 
| Mengevaluasi aplikasi publik. | Tentukan aplikasi mana yang memerlukan alamat IP publik. Sejajarkan aplikasi tersebut dengan instance dan cluster yang diperlukan untuk memenuhi persyaratan kinerja dan perjanjian tingkat layanan (SLA). | Arsitek F5, Arsitek Cloud, Arsitek Jaringan, Insinyur, Tim Aplikasi | 
| Mengevaluasi aplikasi internal. | Evaluasi aplikasi mana yang akan digunakan oleh pengguna internal. Pastikan Anda tahu di mana pengguna internal tersebut duduk di organisasi dan bagaimana lingkungan tersebut terhubung ke organisasi AWS Cloud. Anda juga harus memastikan aplikasi tersebut dapat menggunakan sistem nama domain (DNS) sebagai bagian dari domain default. | Arsitek F5, Arsitek Cloud, Arsitek Jaringan, Insinyur, Tim Aplikasi | 
| Selesaikan AMI. | Tidak semua versi F5 BIG-IP dibuat sebagai Amazon Machine Images (). AMIs Anda dapat menggunakan F5 BIG-IP Image Generator Tool jika Anda memiliki versi teknik perbaikan cepat (QFE) khusus yang diperlukan. Untuk informasi selengkapnya tentang alat ini, lihat bagian “Sumber daya terkait”. | Arsitek F5, Arsitek Cloud, Insinyur | 
| Selesaikan jenis dan arsitektur instance. | Tentukan jenis instance, arsitektur VPC, dan arsitektur yang saling berhubungan. | Arsitek F5, Arsitek Cloud, Arsitek Jaringan, Insinyur | 

### Kegiatan keamanan dan kepatuhan yang lengkap
<a name="complete-security-and-compliance-related-activities"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dokumentasikan kebijakan keamanan F5 yang ada. | Kumpulkan dan dokumentasikan kebijakan keamanan F5 yang ada. Pastikan Anda membuat salinannya di repositori kode aman. | F5 Arsitek, Insinyur | 
| Enkripsi AMI. | (Opsional) Organisasi Anda mungkin memerlukan enkripsi data saat istirahat. Untuk informasi selengkapnya tentang membuat gambar Bring Your Own License (BYOL) kustom, lihat bagian “Sumber daya terkait”. | Arsitek F5, Insinyur Arsitek Cloud, Insinyur | 
| Keraskan perangkat. | Ini akan membantu melindungi dari potensi kerentanan. | F5 Arsitek, Insinyur | 

### Konfigurasikan AWS lingkungan baru Anda
<a name="configure-your-new-aws-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat akun tepi dan keamanan. | Masuk ke Konsol Manajemen AWS dan buat Akun AWS yang akan menyediakan dan mengoperasikan layanan tepi dan keamanan. Akun ini mungkin berbeda dari akun yang beroperasi VPCs untuk layanan dan aplikasi bersama. Langkah ini dapat diselesaikan sebagai bagian dari landing zone. | Arsitek Awan, Insinyur | 
| Menyebarkan tepi dan keamanan VPCs. | Siapkan dan konfigurasikan VPCs yang diperlukan untuk memberikan layanan tepi dan keamanan. | Arsitek Awan, Insinyur | 
| Connect ke pusat data sumber. | Connect ke pusat data sumber yang menampung beban kerja F5 BIG-IP Anda. | Arsitek Cloud, Arsitek Jaringan, Insinyur | 
| Menyebarkan koneksi VPC. | Hubungkan tepi dan layanan keamanan VPCs ke aplikasi VPCs. | Arsitek Jaringan, Insinyur | 
| Menyebarkan instance. | Terapkan instance dengan menggunakan CloudFormation templat dari bagian “Sumber daya terkait”. | F5 Arsitek, Insinyur | 
| Uji dan konfigurasikan failover instance. | Pastikan bahwa template AWS Advanced HA iApp atau F5 Cloud Failover Extension dikonfigurasi dan beroperasi dengan benar. | F5 Arsitek, Insinyur | 

### Mengkonfigurasi jaringan
<a name="configure-networking"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan topologi VPC. | Buka konsol VPC Amazon dan pastikan VPC Anda memiliki semua subnet dan perlindungan yang diperlukan untuk penerapan F5 BIG-IP VE. | Arsitek Jaringan, Arsitek F5, Arsitek Cloud, Insinyur | 
| Siapkan titik akhir VPC Anda. | Siapkan titik akhir VPC untuk Amazon EC2, Amazon S3, AWS STS dan jika beban kerja F5 BIG-IP tidak memiliki akses ke NAT Gateway atau alamat IP Elastis pada antarmuka TMM. | Arsitek Awan, Insinyur | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan konfigurasi. | Migrasikan konfigurasi F5 BIG-IP ke F5 BIG-IP VE di file. AWS Cloud | F5 Arsitek, Insinyur | 
| Kaitkan yang sekunder IPs. | Alamat IP server virtual memiliki hubungan dengan alamat IP sekunder yang ditetapkan untuk instance. Tetapkan alamat IP sekunder dan pastikan “Izinkan pemetaan/penugasan ulang” dipilih. | F5 Arsitek, Insinyur | 

### Konfigurasi uji
<a name="test-configurations"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi konfigurasi server virtual. | Uji server virtual. | Arsitek F5, Tim Aplikasi | 

### Selesaikan operasi
<a name="finalize-operations"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat strategi cadangan. | Sistem harus dimatikan untuk membuat snapshot penuh. Untuk informasi lebih lanjut, lihat “Memperbarui mesin virtual F5 BIG-IP” di bagian “Sumber daya terkait”. | Arsitek F5, Arsitek Cloud, Insinyur | 
| Buat runbook failover cluster. | Pastikan proses runbook failover selesai. | F5 Arsitek, Insinyur | 
| Mengatur dan memvalidasi logging. | Konfigurasikan Streaming Telemetri F5 untuk mengirim log ke tujuan yang diperlukan. | F5 Arsitek, Insinyur | 

### Selesaikan cutover
<a name="complete-the-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Potong ke penyebaran baru. |  | Arsitek F5, Arsitek Cloud, Arsitek Jaringan, Insinyur, AppTeams | 

## Sumber daya terkait
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-resources"></a>

**Panduan migrasi**
+ [Migrasi dari F5 BIG-IP ke F5 BIG-IP VE di AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html)

**Sumber daya F5**
+ [CloudFormation template dalam repositori F5 GitHub ](https://github.com/F5Networks/f5-aws-cloudformation)
+ [F5 di AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=74d946f0-fa54-4d9f-99e8-ff3bd8eb2745)
+ [Ikhtisar F5 BIG-IP VE](https://www.f5.com/products/big-ip-services/virtual-editions) 
+ [Contoh Quickstart - Edisi Virtual BIG-IP dengan WAF (LTM\$1ASM)](https://github.com/F5Networks/f5-aws-cloudformation-v2/tree/main/examples/quickstart)
+ [Layanan aplikasi F5 pada AWS: ikhtisar (video)](https://www.youtube.com/watch?v=kutVjRHOAXo)
+ [Layanan Aplikasi F5 3 Panduan Pengguna Ekstensi](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/)
+ [Dokumentasi cloud F5](https://clouddocs.f5.com/training/community/public-cloud/html/intro.html)
+ [F5 iControl REST wiki](https://clouddocs.f5.com/api/icontrol-rest/)
+ [F5 Ikhtisar file konfigurasi tunggal (11.x - 15.x)](https://support.f5.com/csp/article/K13408)
+ [Whitepaper F5](https://www.f5.com/services/resources/white-papers)
+ [Alat Generator Gambar F5 BIG-IP](https://clouddocs.f5.com/cloud/public/v1/ve-image-gen_index.html)
+ [Memperbarui mesin virtual F5 BIG-IP VE](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ve-setup-vmware-esxi-11-5-0/3.html)
+ [Ikhtisar opsi “platform-migrate” arsip UCS](https://support.f5.com/csp/article/K82540512)

# Memigrasikan aplikasi web Go lokal ke AWS Elastic Beanstalk menggunakan metode biner
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method"></a>

*Suhas Basavaraj dan Shumaz Mukhtar Kazi, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-summary"></a>

Pola ini menjelaskan cara memigrasikan aplikasi web Go lokal ke AWS Elastic Beanstalk. Setelah aplikasi dimigrasikan, Elastic Beanstalk membuat biner untuk bundel sumber dan menerapkannya ke instance Amazon Elastic Compute Cloud (Amazon). EC2

Sebagai strategi migrasi rehost, pendekatan pola ini cepat dan tidak memerlukan perubahan kode, yang berarti lebih sedikit waktu pengujian dan migrasi. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Aplikasi web Go lokal.
+  GitHub Repositori yang berisi kode sumber aplikasi Go Anda. Jika Anda tidak menggunakan GitHub, ada cara lain untuk [membuat bundel sumber aplikasi untuk Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html).

**Versi produk**
+ Versi Go terbaru yang didukung oleh Elastic Beanstalk. Untuk informasi lebih lanjut, lihat dokumentasi [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go).

## Arsitektur
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-architecture"></a>

**Tumpukan teknologi sumber**
+ Aplikasi web Go lokal 

**Tumpukan teknologi target**
+ AWS Elastic Beanstalk
+ Amazon CloudWatch

**Arsitektur target****

![\[Arsitektur untuk memigrasikan aplikasi Go ke Elastic Beanstalk\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cd8d660d-5621-4ea7-8f97-7a1e321c57d3/images/1df543d9-7073-43d8-abd3-f1f7e57278eb.png)


## Alat
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-tools"></a>
+ [AWS Elastic](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html) Beanstalk dengan cepat menyebarkan dan mengelola aplikasi di AWS Cloud tanpa pengguna harus mempelajari infrastruktur yang menjalankan aplikasi tersebut. Elastic Beanstalk mengurangi kompleksitas manajemen tanpa membatasi pilihan atau kontrol.
+ [GitHub](https://github.com/)adalah sistem kontrol versi terdistribusi open-source.

## Epik
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-epics"></a>

### Buat berkas bundel sumber aplikasi web Go .zip
<a name="create-the-go-web-application-source-bundle-zip-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bundel sumber untuk aplikasi Go.  | Buka GitHub repositori yang berisi kode sumber aplikasi Go Anda dan siapkan bundel sumber. Bundel sumber berisi file `application.go` sumber di direktori root, yang menghosting paket utama untuk aplikasi Go Anda. Jika Anda tidak menggunakan GitHub, lihat bagian *Prasyarat* sebelumnya dalam pola ini untuk cara lain untuk membuat bundel sumber aplikasi Anda. | Admin Sistem, Pengembang Aplikasi | 
| Buat file konfigurasi. | Buat `.ebextensions` folder di bundel sumber Anda, lalu buat `options.config` file di dalam folder ini. Untuk informasi lebih lanjut, lihat dokumentasi [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html). | Admin Sistem, Pengembang Aplikasi | 
|  Buat file bundel sumber.zip. | Jalankan perintah berikut.<pre>git archive -o ../godemoapp.zip HEAD</pre>Ini membuat file bundel sumber .zip. Unduh dan simpan file.zip sebagai file lokal. File.zip tidak boleh melebihi 512 MB dan tidak dapat menyertakan folder induk atau direktori tingkat atas. | Admin Sistem, Pengembang Aplikasi | 

### Migrasikan aplikasi web Go ke Elastic Beanstalk
<a name="migrate-the-go-web-application-to-elastic-beanstalk"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih aplikasi Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html)[Untuk petunjuk tentang cara membuat aplikasi Elastic Beanstalk, lihat dokumentasi Elastic Beanstalk.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) | Admin Sistem, Pengembang Aplikasi | 
| Memulai lingkungan server web Elastic Beanstalk.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Admin Sistem, Pengembang Aplikasi | 
| Unggah file bundel sumber.zip ke Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Admin Sistem, Pengembang Aplikasi | 
| Uji aplikasi web Go yang digunakan. | Anda akan dialihkan ke halaman ikhtisar aplikasi Elastic Beanstalk. Di bagian atas ikhtisar, di samping **Environment ID**, pilih URL yang diakhiri `elasticbeanstalk.com` untuk menavigasi ke aplikasi Anda. Aplikasi Anda harus menggunakan nama ini dalam file konfigurasi sebagai variabel lingkungan dan menampilkannya di halaman web. | Admin Sistem, Pengembang Aplikasi | 

## Pemecahan masalah
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Tidak dapat mengakses aplikasi melalui Application Load Balancer. | Periksa kelompok target yang berisi aplikasi Elastic Beanstalk Anda. Jika tidak sehat, masuk ke instance Elastic Beanstalk Anda dan `nginx.conf` periksa konfigurasi file untuk memverifikasi bahwa itu merutekan ke URL status kesehatan yang benar. Anda mungkin perlu mengubah URL pemeriksaan kesehatan grup target. | 

## Sumber daya terkait
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-resources"></a>
+ [Versi platform Go didukung oleh Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go)
+ [Menggunakan file konfigurasi dengan Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)
+ [Membuat contoh aplikasi di Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) 

# Memigrasi server SFTP lokal untuk menggunakan AWS AWS Transfer for SFTP
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp"></a>

*Akash Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-summary"></a>

Pola ini menjelaskan cara memigrasikan solusi transfer file lokal yang menggunakan Secure Shell (SSH) File Transfer Protocol (SFTP) ke menggunakan layanan. AWS Cloud AWS Transfer for SFTP Pengguna umumnya terhubung ke server SFTP baik melalui nama domainnya atau dengan IP tetap. Pola ini mencakup kedua kasus.

AWS Transfer for SFTP adalah anggota dari AWS Transfer Family. Ini adalah layanan transfer aman yang dapat Anda gunakan untuk mentransfer file masuk dan keluar dari layanan AWS penyimpanan melalui SFTP. Anda dapat menggunakannya AWS Transfer for SFTP dengan Amazon Simple Storage Service (Amazon S3) atau Amazon Elastic File System (Amazon EFS). Pola ini menggunakan Amazon S3 untuk penyimpanan.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Nama domain SFTP yang ada atau IP SFTP tetap.

**Batasan**
+ Objek terbesar yang dapat Anda transfer dalam satu permintaan saat ini 5 GiB. Untuk file yang lebih besar dari 100 MiB, pertimbangkan untuk menggunakan unggahan multipart [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html).

## Arsitektur
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-architecture"></a>

**Tumpukan teknologi sumber**
+ File datar lokal atau file dump database.

**Tumpukan teknologi target**
+ AWS Transfer for SFTP
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS Identity and Access Management (IAM) peran dan kebijakan
+ Alamat IP elastis
+ Grup keamanan
+ Amazon CloudWatch Log (opsional)

**Arsitektur target**

![\[Gunakan AWS Transfer for SFTP untuk memigrasikan server SFTP lokal ke AWS Cloud.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/ec0a905c-edef-48ba-9b5e-ea4a4040d320/images/f42aa711-bfe0-4ac6-9f66-5c18a1dd1c7a.png)


**Otomatisasi dan skala**

Untuk mengotomatiskan arsitektur target untuk pola ini, gunakan CloudFormation templat terlampir:
+ `amazon-vpc-subnets.yml`menyediakan virtual private cloud (VPC) dengan dua subnet publik dan dua subnet pribadi.
+ `amazon-sftp-server.yml`ketentuan server SFTP.
+ `amazon-sftp-customer.yml`menambahkan pengguna.

## Alat
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-tools"></a>

**Layanan AWS**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
+ [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. Pola ini menggunakan Amazon S3 sebagai sistem penyimpanan untuk transfer file.
+ [AWS Transfer for SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)membantu Anda mentransfer file masuk dan keluar dari layanan AWS penyimpanan melalui protokol SFTP.
+ [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

## Epik
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-epics"></a>

### Buat VPC
<a name="create-a-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat VPC dengan subnet. | Buka konsol [Amazon VPC](https://console.aws.amazon.com/vpc/). Buat virtual private cloud (VPC) dengan dua subnet publik. (Subnet kedua menyediakan ketersediaan tinggi.)— atau —Anda dapat menerapkan CloudFormation template terlampir,`amazon-vpc-subnets.yml`, di [CloudFormation konsol](https://console.aws.amazon.com/cloudformation) untuk mengotomatiskan tugas dalam epik ini. | Pengembang, Administrator sistem | 
| Tambahkan gateway internet. | Menyediakan gateway internet dan melampirkannya ke VPC. | Pengembang, Administrator sistem | 
| Migrasikan IP yang ada. | Lampirkan IP yang ada ke alamat IP Elastis. Anda dapat membuat alamat IP Elastis dari kumpulan alamat Anda dan menggunakannya. | Pengembang, Administrator sistem | 

### Menyediakan server SFTP
<a name="provision-an-sftp-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server SFTP. | Buka [konsol AWS Transfer Family](https://console.aws.amazon.com/transfer/). Ikuti petunjuk di [Buat titik akhir yang menghadap internet untuk server Anda dalam AWS Transfer Family dokumentasi untuk membuat server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint) SFTP dengan titik akhir yang menghadap ke internet. Untuk **tipe Endpoint**, pilih **VPC** yang dihosting. Untuk **Akses**, pilih **Internet Facing**. Untuk **VPC**, pilih VPC yang Anda buat di epik sebelumnya.— atau —Anda dapat menerapkan CloudFormation template terlampir,`amazon-sftp-server.yml`, di [CloudFormation konsol](https://console.aws.amazon.com/cloudformation) untuk mengotomatiskan tugas dalam epik ini. | Pengembang, Administrator sistem | 
| Migrasikan nama domain. | Lampirkan nama domain yang ada ke nama host kustom. Jika Anda menggunakan nama domain baru, gunakan alias **DNS Amazon Route 53**. Untuk nama domain yang ada, pilih **DNS Lainnya**. Untuk informasi selengkapnya, lihat [Bekerja dengan nama host kustom](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html) dalam AWS Transfer Family dokumentasi. | Pengembang, Administrator sistem | 
| Tambahkan peran CloudWatch logging. | (Opsional) jika Anda ingin mengaktifkan CloudWatch logging, buat `Transfer` peran dengan operasi CloudWatch Logs API `logs:CreateLogGroup``logs:CreateLogStream`,` logs:DescribeLogStreams`, dan`logs:PutLogEvents`. Untuk informasi selengkapnya, lihat [Aktivitas CloudWatch log dengan](https://docs.aws.amazon.com/transfer/latest/userguide/monitoring.html#monitoring-enabling) AWS Transfer Family dokumentasi. | Pengembang, administrator sistem | 
| Simpan dan kirimkan. | Pilih **Simpan**. **Untuk **Tindakan**, pilih **Mulai** dan tunggu server SFTP dibuat dengan status Online.** | Pengembang, Administrator sistem | 

### Petakan alamat IP Elastis ke server SFTP
<a name="map-elastic-ip-addresses-to-the-sftp-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan server sehingga Anda dapat mengubah pengaturan. | Di [AWS Transfer Family konsol](https://console.aws.amazon.com/transfer/), pilih **Server**, lalu pilih server SFTP yang Anda buat. Untuk **Tindakan**, pilih **Berhenti**. Saat server offline, pilih **Edit** untuk mengubah pengaturannya. | Pengembang, administrator sistem | 
| Pilih Availability Zones dan subnet. | Di bagian **Availability Zones**, pilih Availability Zones dan subnet untuk VPC Anda. | Pengembang, Administrator sistem | 
| Tambahkan alamat IP Elastis. | Untuk **IPv4 Alamat**, pilih alamat IP Elastis untuk setiap subnet, lalu pilih **Simpan**. | Pengembang, Administrator sistem | 

### Tambahkan pengguna
<a name="add-users"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM bagi pengguna untuk mengakses bucket S3. | Buat peran IAM untuk `Transfer`**** dan tambahkan ` s3:ListBucket`` s3:GetBucketLocation`, dan `s3:PutObject` dengan nama bucket S3 sebagai sumber daya. Untuk informasi selengkapnya, lihat [Membuat peran dan kebijakan IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html) dalam AWS Transfer Family dokumentasi.— atau —Anda dapat menerapkan CloudFormation template terlampir,`amazon-sftp-customer.yml`, di [CloudFormation konsol](https://console.aws.amazon.com/cloudformation) untuk mengotomatiskan tugas dalam epik ini. | Pengembang, Administrator sistem | 
| Buat ember S3. | Buat bucket S3 untuk aplikasi. | Pengembang, Administrator sistem | 
| Buat folder opsional. | (Opsional) Jika Anda ingin menyimpan file untuk pengguna secara terpisah, di folder Amazon S3 tertentu, tambahkan folder yang sesuai. | Pengembang, Administrator sistem | 
| Buat kunci publik SSH. | Untuk membuat key pair SSH, lihat [Menghasilkan kunci SSH](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#sshkeygen) dalam dokumentasi. AWS Transfer Family  | Pengembang, Administrator sistem | 
| Tambah pengguna. | Di [AWS Transfer Family konsol](https://console.aws.amazon.com/transfer/), pilih **Server, pilih server** SFTP yang Anda buat, lalu pilih **Tambah** pengguna. Untuk **direktori Home**, pilih bucket S3 yang Anda buat. Untuk **kunci publik SSH**, tentukan bagian kunci publik dari key pair SSH. **Tambahkan pengguna untuk server SFTP, lalu pilih Tambah.** | Pengembang, Administrator sistem | 

### Uji server SFTP
<a name="test-the-sftp-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui grup keamanan. | Di bagian **Grup Keamanan** server SFTP Anda, tambahkan IP mesin uji Anda untuk mendapatkan akses SFTP. | Developer | 
| Gunakan utilitas klien SFTP untuk menguji server. | Uji transfer file dengan menggunakan utilitas klien SFTP apa pun. Untuk daftar klien dan instruksi, lihat [Mentransfer file menggunakan klien](https://docs.aws.amazon.com/transfer/latest/userguide/transfer-file.html) dalam AWS Transfer Family dokumentasi. | Developer | 

## Sumber daya terkait
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-resources"></a>
+ [AWS Transfer Family Panduan Pengguna](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [Panduan Pengguna Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [Alamat IP elastis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) dalam EC2 dokumentasi Amazon

## Lampiran
<a name="attachments-ec0a905c-edef-48ba-9b5e-ea4a4040d320"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/ec0a905c-edef-48ba-9b5e-ea4a4040d320/attachments/attachment.zip)

# Memigrasikan VM lokal ke Amazon dengan EC2 menggunakan AWS Application Migration Service
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service"></a>

*Thanh Nguyen, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-summary"></a>

Dalam hal migrasi aplikasi, organisasi dapat mengambil pendekatan berbeda untuk meng-host ulang (mengangkat dan menggeser) server aplikasi dari lingkungan lokal ke Amazon Web Services (AWS) Cloud. Salah satu caranya adalah dengan menyediakan instance Amazon Elastic Compute Cloud (Amazon EC2) baru dan kemudian menginstal dan mengonfigurasi aplikasi dari awal. Pendekatan lain adalah dengan menggunakan layanan migrasi asli pihak ketiga atau AWS untuk memigrasikan beberapa server secara bersamaan.

Pola ini menguraikan langkah-langkah untuk memigrasikan mesin virtual (VM) yang didukung ke EC2 instans Amazon di AWS Cloud dengan menggunakan AWS Application Migration Service. Anda dapat menggunakan pendekatan dalam pola ini untuk memigrasikan satu atau beberapa mesin virtual secara manual, satu per satu, atau secara otomatis dengan membuat skrip otomatisasi yang sesuai berdasarkan langkah-langkah yang diuraikan. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif di salah satu Wilayah AWS yang mendukung Layanan Migrasi Aplikasi
+ Konektivitas jaringan antara server sumber dan EC2 server target melalui jaringan pribadi dengan menggunakan AWS Direct Connect atau jaringan pribadi virtual (VPN), atau melalui internet

**Batasan**
+ Untuk daftar terbaru Wilayah yang didukung, lihat [Wilayah AWS yang Didukung](https://docs.aws.amazon.com/mgn/latest/ug/supported-regions.html).
+ Untuk daftar sistem operasi yang didukung, lihat bagian [Sistem operasi yang didukung](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html) dan *Umum* [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

## Arsitektur
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-architecture"></a>

**Tumpukan teknologi sumber**
+ Server fisik, virtual, atau yang dihosting cloud yang menjalankan sistem operasi yang didukung oleh Amazon EC2

**Tumpukan teknologi target**
+  EC2 Instans Amazon yang menjalankan sistem operasi yang sama dengan sumber VM
+ Amazon Elastic Block Store (Amazon EBS)

**Arsitektur sumber dan target**

Diagram berikut menunjukkan arsitektur tingkat tinggi dan komponen utama dari solusi. Di pusat data lokal, ada mesin virtual dengan disk lokal. Di AWS, terdapat area pementasan dengan server replikasi dan area sumber daya yang dimigrasi dengan EC2 instance untuk pengujian dan pemotongan. Kedua subnet berisi volume EBS.

![\[Komponen utama untuk memigrasikan VM yang didukung ke EC2 instans Amazon di AWS Cloud.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/f8396fad-7ee9-4f75-800f-e819f509e151.png)


1. Inisialisasi Layanan Migrasi Aplikasi AWS.

1. Siapkan konfigurasi dan pelaporan server area pementasan, termasuk sumber daya area pementasan.

1. Instal agen di server sumber, dan gunakan replikasi data tingkat blok berkelanjutan (dikompresi dan dienkripsi).

1. Otomatiskan orkestrasi dan konversi sistem untuk mempersingkat jendela cutover.

**Arsitektur jaringan**

Diagram berikut menunjukkan arsitektur tingkat tinggi dan komponen utama solusi dari perspektif jaringan, termasuk protokol dan port yang diperlukan untuk komunikasi antara komponen utama di pusat data lokal dan AWS.

![\[Komponen jaringan termasuk protokol dan port untuk komunikasi antara pusat data dan AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/2f594daa-ddba-4841-8785-6067e8d83c2f.png)


## Alat
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-tools"></a>
+ [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 memindahkan*) aplikasi ke AWS Cloud tanpa perubahan dan dengan waktu henti minimal.

## Praktik terbaik
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-best-practices"></a>
+ Jangan mengambil server sumber offline atau melakukan reboot sampai cutover ke EC2 instance target selesai.
+ Memberikan kesempatan yang cukup bagi pengguna untuk melakukan pengujian penerimaan pengguna (UAT) pada server target untuk mengidentifikasi dan menyelesaikan masalah apa pun. Idealnya, pengujian ini harus dimulai setidaknya dua minggu sebelum cutover.
+ Sering memantau status replikasi server pada konsol Layanan Migrasi Aplikasi untuk mengidentifikasi masalah sejak dini.
+ Gunakan kredenal AWS Identity and Access Management (IAM) sementara untuk instalasi agen, bukan kredenal pengguna IAM permanen.

## Epik
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-epics"></a>

### Menghasilkan kredensi AWS
<a name="generate-aws-credentials"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM AWS Replication Agent. | Masuk dengan izin administratif ke akun AWS.Pada [konsol](https://console.aws.amazon.com/iam/) AWS Identity and Access Management (IAM), buat peran IAM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html) | Administrator AWS, Insinyur migrasi | 
| Hasilkan kredensil keamanan sementara. | Pada mesin dengan AWS Command Line Interface (AWS CLI) diinstal, masuk dengan izin administratif. Atau sebagai alternatif (dalam Wilayah AWS yang didukung), di AWS Management Console, masuk dengan izin administratif ke akun AWS, dan buka AWS CloudShell.Buat kredensi sementara dengan perintah berikut, ganti `<account-id>` dengan ID akun AWS.`aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/MGN_Agent_Installation_Role --role-session-name mgn_installation_session_role`Dari output perintah, salin nilai untuk`AccessKeyId`, **`SecretAccessKey`**, dan **`SessionToken`**. ****Simpan di lokasi yang aman untuk digunakan nanti.Kredensi sementara ini akan kedaluwarsa setelah satu jam. Jika Anda membutuhkan kredensil setelah satu jam, ulangi langkah sebelumnya. | Administrator AWS, Insinyur migrasi | 

### Inisialisasi Layanan Migrasi Aplikasi dan buat template Pengaturan Replikasi
<a name="initialize-application-migration-service-and-create-the-replication-settings-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Inisialisasi layanan. | Di konsol, masuk dengan izin administratif ke akun AWS.Pilih **Layanan Migrasi Aplikasi**, lalu pilih **Memulai**. | Administrator AWS, Insinyur migrasi | 
| Buat dan konfigurasikan template Pengaturan Replikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Layanan Migrasi Aplikasi akan secara otomatis membuat semua peran IAM yang diperlukan untuk memfasilitasi replikasi data dan peluncuran server yang dimigrasi. | Administrator AWS, Insinyur migrasi | 

### Instal Agen Replikasi AWS di mesin sumber
<a name="install-aws-replication-agents-on-source-machines"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan kredensi AWS yang diperlukan. | Ketika Anda menjalankan file installer di server sumber, Anda harus memasukkan kredensi sementara yang Anda buat sebelumnya, termasuk`AccessKeyId`,, dan. `SecretAccessKey` `SessionToken` | Insinyur migrasi, administrator AWS | 
| Untuk server Linux, instal agen. | Salin perintah penginstal, masuk ke server sumber Anda, dan jalankan penginstal. Untuk petunjuk terperinci, lihat [dokumentasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/linux-agent.html). | Administrator AWS, Insinyur migrasi | 
| Untuk server Windows, instal agen. | Unduh file installer ke setiap server, lalu jalankan perintah installer. Untuk petunjuk terperinci, lihat [dokumentasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html). | Administrator AWS, Insinyur migrasi | 
| Tunggu replikasi data awal selesai. | Ketika agen telah diinstal, server sumber akan muncul di konsol Layanan Migrasi Aplikasi, di bagian **Server sumber**. Tunggu sementara server mengalami replikasi data awal. | Administrator AWS, Insinyur migrasi | 

### Mengonfigurasi pengaturan peluncuran
<a name="configure-launch-settings"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan detail server. | Pada konsol Layanan Migrasi Aplikasi, pilih bagian **Server sumber**, lalu pilih nama server dari daftar untuk mengakses detail server. | Administrator AWS, Insinyur migrasi | 
| Konfigurasikan pengaturan peluncuran.  | Pilih tab **Pengaturan Luncurkan**. Anda dapat mengonfigurasi berbagai pengaturan, termasuk pengaturan peluncuran umum dan pengaturan templat EC2 peluncuran. Untuk petunjuk terperinci, lihat [dokumentasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | Administrator AWS, Insinyur migrasi | 

### Lakukan tes
<a name="perform-a-test"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji server sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Server akan diluncurkan. | Administrator AWS, Insinyur migrasi | 
| Verifikasi bahwa tes selesai dengan sukses. | Setelah server uji benar-benar diluncurkan, status **Alerts** pada halaman akan ditampilkan **Diluncurkan** untuk setiap server. | Administrator AWS, Insinyur migrasi | 
| Uji server. | Lakukan pengujian terhadap server uji untuk memastikan bahwa itu berfungsi seperti yang diharapkan. | Administrator AWS, Insinyur migrasi | 

### Jadwalkan dan lakukan cutover
<a name="schedule-and-perform-a-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jadwalkan jendela cutover. | Jadwalkan jangka waktu cutover yang sesuai dengan tim yang relevan. | Administrator AWS, Insinyur migrasi | 
| Lakukan cutover. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)**Siklus hidup Migrasi server sumber akan berubah menjadi **Cutover**** yang sedang berlangsung. | Administrator AWS, Insinyur migrasi | 
| Verifikasi bahwa cutover berhasil diselesaikan. | Setelah server cutover sepenuhnya diluncurkan, status **Alerts** pada halaman **Server Sumber** akan ditampilkan **Diluncurkan** untuk setiap server. | Administrator AWS, Insinyur migrasi | 
| Uji server. | Lakukan pengujian terhadap server cutover untuk memastikan bahwa itu berfungsi seperti yang diharapkan. | Administrator AWS, Insinyur migrasi | 
| Selesaikan cutover. | Pilih **Uji dan Cutover**, lalu pilih **Finalize cutover** untuk menyelesaikan proses migrasi. | Administrator AWS, Insinyur migrasi | 

## Sumber daya terkait
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-resources"></a>
+ [Layanan Migrasi Aplikasi AWS](https://aws.amazon.com/application-migration-service/)
+ [Panduan Pengguna Layanan Migrasi Aplikasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)

# Migrasikan kumpulan data kecil dari lokasi ke Amazon S3 menggunakan AWS SFTP
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp"></a>

*Charles Gibson dan Sergiy Shevchenko, Amazon Web Services*

## Ringkasan
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-summary"></a>

Pola ini menjelaskan cara memigrasikan kumpulan data kecil (5 TB atau kurang) dari pusat data lokal ke Amazon Simple Storage Service (Amazon S3) dengan menggunakan (). AWS Transfer for SFTP AWS SFTP Data dapat berupa dump database atau file datar.

## Prasyarat dan batasan
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+  AWS Direct Connect Tautan yang dibuat antara pusat data Anda dan AWS

**Batasan**
+ File data harus kurang dari 5 TB. Untuk file di atas 5 TB, Anda dapat melakukan pengunggahan multipart ke Amazon S3 atau memilih metode transfer data lain. 

## Arsitektur
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-architecture"></a>

**Tumpukan teknologi sumber**
+ File datar lokal atau dump database

**Tumpukan teknologi target**
+ Amazon S3

**Arsitektur sumber dan target**

![\[Diagram showing data flow from on-premises servers to AWS Cloud services via Direct Connect and VPN.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a9c016ff-3e68-4714-ac51-46cb4727397a/images/5c5bb9ea-d552-44e8-8d0d-df341f84f55d.png)


## Alat
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-tools"></a>
+ [AWS SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)— Memungkinkan transfer file langsung masuk dan keluar dari Amazon S3 menggunakan Secure File Transfer Protocol (SFTP).
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)— Menetapkan koneksi jaringan khusus dari pusat data lokal Anda ke. AWS
+ [Titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) — Memungkinkan Anda menghubungkan VPC secara pribadi ke layanan endpoint VPC yang didukung Layanan AWS dan didukung AWS PrivateLink oleh tanpa gateway internet, perangkat terjemahan alamat jaringan (NAT), koneksi VPN, atau koneksi. Direct Connect Instans dalam VPC tidak memerlukan alamat IP publik untuk berkomunikasi dengan sumber daya dalam layanan.

## Epik
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dokumentasikan persyaratan SFTP saat ini. |  | Pemilik aplikasi, SA | 
| Identifikasi persyaratan otentikasi. | Persyaratan dapat mencakup otentikasi berbasis kunci, nama pengguna atau kata sandi, atau penyedia identitas (iDP). | Pemilik aplikasi, SA | 
| Identifikasi persyaratan integrasi aplikasi. |  | Pemilik aplikasi | 
| Identifikasi pengguna yang membutuhkan layanan. |  | Pemilik aplikasi | 
| Tentukan nama DNS untuk endpoint server SFTP. |  | Jaringan | 
| Tentukan strategi cadangan. |  | SA, DBA (jika data ditransfer)  | 
| Identifikasi migrasi aplikasi atau strategi cutover. |  | Pemilik aplikasi, SA, DBA | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat satu atau lebih virtual private cloud (VPCs) dan subnet di Anda Akun AWS. |  | Pemilik aplikasi, AMS | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACL). |  | Keamanan, Jaringan, AMS | 
| Buat bucket Amazon S3. |  | Pemilik aplikasi, AMS | 
| Buat peran AWS Identity and Access Management (IAM). | Buat kebijakan IAM yang menyertakan izin AWS SFTP untuk mengaktifkan akses bucket Amazon S3 Anda. Kebijakan IAM ini menentukan tingkat akses yang Anda berikan kepada pengguna SFTP. Buat kebijakan IAM lain untuk membangun hubungan kepercayaan dengan AWS SFTP. | Keamanan, AMS | 
| Kaitkan domain terdaftar (opsional). | Jika Anda memiliki domain terdaftar sendiri, Anda dapat mengaitkannya dengan server SFTP. Anda dapat merutekan lalu lintas SFTP ke titik akhir server SFTP Anda dari domain atau dari subdomain. | Jaringan, AMS | 
| Buat server SFTP. | Tentukan jenis penyedia identitas yang digunakan oleh layanan untuk mengautentikasi pengguna Anda. | Pemilik aplikasi, AMS | 
| Buka klien SFTP. | Buka klien SFTP dan konfigurasikan koneksi untuk menggunakan host titik akhir SFTP. AWS SFTP mendukung klien SFTP standar apa pun. Klien SFTP yang umum digunakan termasuk OpenSSH, WinSCP, Cyberduck, dan. FileZilla Anda bisa mendapatkan nama host server SFTP dari konsol. AWS SFTP  | Pemilik aplikasi, AMS | 

### Rencanakan dan uji
<a name="plan-and-test"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Rencanakan migrasi aplikasi. | Rencanakan perubahan konfigurasi aplikasi yang diperlukan, atur tanggal migrasi, dan tentukan jadwal pengujian. | Pemilik aplikasi, AMS | 
| Uji infrastrukturnya. | Uji di lingkungan non-produksi. | Pemilik aplikasi, AMS | 

## Sumber daya terkait
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-resources"></a>

**Referensi**
+ [AWS Transfer for SFTP Panduan Pengguna](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS Direct Connect sumber daya](https://aws.amazon.com/directconnect/resources/) 
+ [Titik Akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)

**Tutorial dan video**
+ [AWS Transfer for SFTP (video)](https://www.youtube.com/watch?v=wcnGez5PP1E)
+ [AWS Transfer for SFTP panduan pengguna](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS Papan Tulis SA - Direct Connect (video)](https://www.youtube.com/watch?v=uP68iqyuqTg)

# Memigrasi database Oracle lokal ke Oracle di Amazon EC2
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2"></a>

*Baji Shaik dan Pankaj Choudhary, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-summary"></a>

Pola ini memandu Anda melalui langkah-langkah untuk memigrasikan database Oracle lokal ke Oracle pada instans Amazon Elastic Compute Cloud (Amazon). EC2 Ini menjelaskan dua opsi untuk migrasi: menggunakan AWS Data Migration Service (AWS DMS) atau menggunakan alat Oracle asli seperti RMAN, impor/ekspor Pompa Data, ruang meja yang dapat diangkut, dan Oracle. GoldenGate 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle sumber di pusat data lokal

**Batasan**
+ Sistem operasi target (OS) harus didukung oleh Amazon EC2. Untuk daftar lengkap sistem yang didukung, lihat [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

**Versi produk**
+ Oracle versi 10.2 dan yang lebih baru (untuk versi 10.x), 11g dan hingga 12.2, dan 18c untuk edisi Enterprise, Standard, Standard One, dan Standard Two. Untuk daftar versi terbaru yang didukung oleh AWS DMS, lihat “Database EC2 instans lokal dan Amazon” di [Sumber untuk Migrasi Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) dalam dokumentasi AWS DMS.  

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal

**Tumpukan teknologi target**
+ Sebuah instance database Oracle di Amazon EC2

**Arsitektur target**

![\[Menyiapkan replikasi untuk database Oracle di Amaozn. EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/386d5b14-8633-4ecc-98fb-59872de99d41.png)


**Arsitektur migrasi data**

*Menggunakan AWS DMS:*

![\[Memigrasi database Oracle lokal ke Amazon dengan EC2 AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/14954066-d22b-486a-a432-265296752878.png)


*Menggunakan alat Oracle asli:*

![\[Memigrasi database Oracle lokal ke Amazon EC2 dengan alat Oracle.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/82ba5fcb-8640-45fa-b432-2702dedc0774.png)


## Alat
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-tools"></a>
+ **AWS DMS -** [AWS Database Migration Services](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) mendukung beberapa jenis basis data sumber dan target. Untuk informasi tentang versi dan edisi database yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS. Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif.  
+ **Alat Oracle Asli -** RMAN, Impor/ekspor Pompa Data, ruang meja yang dapat diangkut, Oracle GoldenGate                                                         

## Epik
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Validasi versi database sumber dan target. |  | DBA | 
|  Identifikasi versi OS target. |  | DBA, SysAdmin | 
| Identifikasi persyaratan perangkat keras untuk instance server target berdasarkan daftar kompatibilitas Oracle dan persyaratan kapasitas. |  | DBA, SysAdmin | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Identifikasi persyaratan jaringan (latensi dan bandwidth). |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan network/host akses untuk basis data sumber dan target. |  | DBA, SysAdmin | 
| Identifikasi daftar pengguna OS yang diperlukan untuk instalasi perangkat lunak Oracle. |  | DBA, SysAdmin | 
| Unduh AWS Schema Conversion Tool (AWS SCT) dan driver. |  | DBA | 
| Buat proyek AWS SCT untuk beban kerja, dan sambungkan ke database sumber. |  | DBA | 
| Hasilkan file SQL untuk pembuatan objek (tabel, indeks, urutan, dll.). |  | DBA | 
| Tentukan strategi cadangan. |  | DBA, SysAdmin  | 
| Tentukan persyaratan ketersediaan. |  | DBA | 
| Identifikasi strategi migrasi/peralihan aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet di akun AWS Anda. |  | SysAdmin | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACLs). |  | SysAdmin | 
| Konfigurasikan dan mulai EC2 instance. |  | SysAdmin | 

### Instal perangkat lunak Oracle
<a name="install-the-oracle-software"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna dan grup OS yang diperlukan untuk perangkat lunak Oracle. |  | DBA, SysAdmin | 
| Unduh versi perangkat lunak Oracle yang diperlukan. |  |  | 
| Instal perangkat lunak Oracle pada EC2 instance. |  | DBA, SysAdmin | 
| Buat objek seperti tabel, kunci utama, tampilan, dan urutan dengan menggunakan skrip yang dihasilkan oleh AWS SCT. |  | DBA | 

### Migrasikan data - opsi 1
<a name="migrate-data---option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat Oracle asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | Alat Oracle termasuk impor/ekspor Pompa Data, RMAN, ruang meja yang dapat diangkut, dan. GoldenGate | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-data---option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan metode migrasi. |  | DBA | 
| Buat instance replikasi di konsol AWS DMS. |  | DBA | 
| Buat titik akhir sumber dan target. |  | DBA | 
| Buat tugas replikasi. |  | DBA | 
| Aktifkan pengambilan data perubahan (CDC) untuk menangkap perubahan untuk replikasi berkelanjutan. |  | DBA | 
| Jalankan tugas replikasi dan pantau log. |  | DBA | 
| Buat objek sekunder seperti indeks dan kunci asing saat beban penuh selesai. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi cutover/switch-over aplikasi. |  | DBA, SysAdmin, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS Secrets Manager sementara. |  | DBA, SysAdmin | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi,% manual vs. alat, penghematan biaya, dll. |  | DBA, SysAdmin, Pemilik aplikasi | 
| Tutup proyek dan berikan umpan balik. |  |  | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-resources"></a>

**Referensi**
+ [Strategi untuk Migrasi Database Oracle ke AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html) 
+ [Migrasi database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/)
+ [ EC2 Situs Amazon](https://aws.amazon.com/ec2/)
+ [Situs AWS DMS](https://aws.amazon.com/dms/)
+ [Posting blog AWS DMS](https://aws.amazon.com/blogs/database/category/dms/)
+ [ EC2 Harga Amazon](https://aws.amazon.com/ec2/pricing/)
+ [Melisensikan Perangkat Lunak Oracle di Lingkungan Cloud Computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

**Tutorial dan video**
+ [Memulai dengan Amazon EC2](https://aws.amazon.com/ec2/getting-started/)
+ [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) 

# Memigrasikan database Oracle lokal ke Amazon menggunakan Oracle Data EC2 Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Navakanth Talluri, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

Saat memigrasikan database, Anda harus mempertimbangkan faktor-faktor seperti mesin dan versi basis data sumber dan target, alat dan layanan migrasi, dan periode waktu henti yang dapat diterima. Jika Anda memigrasikan database Oracle lokal ke Amazon Elastic Compute Cloud (Amazon EC2), Anda dapat menggunakan alat Oracle, seperti Oracle Data Pump dan Oracle Recovery Manager (RMAN). Untuk informasi selengkapnya tentang strategi, lihat [Memigrasi database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html).

Oracle Data Pump membantu Anda mengekstrak cadangan database yang logis dan konsisten dan mengembalikannya ke EC2 instance target. Pola ini menjelaskan cara memigrasikan database Oracle lokal ke EC2 instance dengan menggunakan Oracle Data Pump dan `NETWORK_LINK` parameternya, dengan waktu henti minimal. `NETWORK_LINK`Parameter memulai impor melalui link database. Klien Oracle Data Pump Import (impdp) pada EC2 instance target terhubung ke database sumber, mengambil data darinya, dan menulis data langsung ke database pada instance target. Tidak ada cadangan, atau *dump*, file yang digunakan dalam solusi ini.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Database Oracle lokal yang:
  + Bukankah database Oracle Real Application Clusters (RAC)
  + Bukankah database Oracle Automatic Storage Management (Oracle ASM)
  + Berada dalam mode baca-tulis.
+ Anda telah membuat tautan AWS Direct Connect antara pusat data lokal dan AWS. Untuk informasi selengkapnya, lihat [Membuat sambungan](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (dokumentasi Direct Connect).

**Versi produk**
+ Oracle Database 10g rilis 1 (10.1) dan yang lebih baru

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**Tumpukan teknologi sumber**
+ Server database Oracle mandiri (non-RAC dan non-ASM) di pusat data lokal

**Tumpukan teknologi target**
+ Database Oracle yang berjalan di Amazon EC2

**Arsitektur target**

[Pilar keandalan](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) AWS Well-Architected Framework merekomendasikan pembuatan cadangan data untuk membantu menyediakan ketersediaan dan ketahanan yang tinggi. Untuk informasi selengkapnya, lihat [Arsitektur untuk ketersediaan tinggi](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2) dalam *Praktik Terbaik untuk Menjalankan Database Oracle di AWS*. Pola ini mengatur basis data primer dan siaga pada EC2 instance dengan menggunakan Oracle Active Data Guard. Untuk ketersediaan tinggi, EC2 instance harus berada di Availability Zone yang berbeda. Namun, Availability Zone dapat berada di Wilayah AWS yang sama atau di Wilayah AWS yang berbeda.

Active Data Guard menyediakan akses read-only ke database siaga fisik dan menerapkan perubahan redo terus menerus dari database utama. Berdasarkan tujuan titik pemulihan (RPO) dan tujuan waktu pemulihan (RTO), Anda dapat memilih antara opsi transportasi redo sinkron dan asinkron.

Gambar berikut menunjukkan arsitektur target jika EC2 instance primer dan siaga berada di Wilayah AWS yang berbeda.

![\[Aplikasi yang menghubungkan ke database baru pada EC2 instance utama\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**Arsitektur migrasi data**

Setelah selesai menyiapkan arsitektur target, Anda menggunakan Oracle Data Pump untuk memigrasikan data dan skema lokal ke instance utama. EC2 Selama cutover, aplikasi tidak dapat mengakses database lokal atau database target. Anda mematikan aplikasi ini sampai mereka dapat terhubung ke database target baru pada EC2 instance utama.

Gambar berikut menunjukkan arsitektur selama migrasi data. Dalam contoh arsitektur ini, EC2 instans primer dan siaga berada di Wilayah AWS yang berbeda.

![\[Sumber DB terhubung ke target DB. Aplikasi terputus dari sumber dan target DBs\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**Layanan AWS**
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) menautkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke layanan AWS publik sambil melewati penyedia layanan internet di jalur jaringan Anda.
+ [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.

**Alat dan layanan lainnya**
+ [Oracle Active 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.
+ [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html) membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi.

## Praktik terbaik
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [Praktik Terbaik untuk Menjalankan Oracle Database di AWS](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [Mengimpor data menggunakan NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### Siapkan EC2 instans di AWS
<a name="set-up-the-ec2-instances-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi konfigurasi perangkat keras sumber untuk host lokal dan parameter kernel. | Validasi konfigurasi lokal, termasuk ukuran penyimpanan, input/output operasi per detik (IOPS), dan CPU. Ini penting untuk lisensi Oracle, yang didasarkan pada core CPU. | DBA, SysAdmin | 
| Buat infrastruktur di AWS. | Buat virtual private cloud (VPCs), subnet pribadi, grup keamanan, daftar kontrol akses jaringan (ACLs), tabel rute, dan gateway internet. Untuk informasi selengkapnya, lihat berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, administrator sistem AWS | 
| Siapkan EC2 instance dengan menggunakan Active Data Guard. | Konfigurasikan EC2 instans AWS dengan menggunakan konfigurasi Active Data Guard, seperti yang dijelaskan dalam [AWS Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html) Framework. Versi Oracle Database pada EC2 instance dapat berbeda dari versi lokal karena pola ini menggunakan backup logis. Perhatikan hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)Untuk informasi lebih lanjut, lihat:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, administrator sistem AWS | 

### Migrasi database ke Amazon EC2
<a name="migrate-the-database-to-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dblink ke database lokal dari instance. EC2  | Buat link database (dblink) antara database Oracle pada EC2 instance dan database Oracle lokal. Untuk informasi selengkapnya, lihat [Menggunakan Impor Tautan Jaringan untuk Memindahkan Data](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806) (dokumentasi Oracle). | DBA | 
| Verifikasi koneksi antara EC2 instans dan host lokal. | Gunakan dblink untuk mengonfirmasi bahwa koneksi antara EC2 instance dan database lokal berfungsi. Untuk petunjuk, lihat [MEMBUAT TAUTAN DATABASE](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm) (dokumentasi Oracle). | DBA | 
| Hentikan semua aplikasi yang terhubung ke database lokal. | Setelah downtime database disetujui, matikan semua aplikasi dan pekerjaan dependen yang terhubung ke database lokal Anda. Anda dapat melakukan ini baik dari aplikasi secara langsung atau dari database dengan menggunakan cron. Untuk informasi selengkapnya, lihat [Menggunakan Utilitas Crontab untuk Menjadwalkan Tugas di Oracle Linux](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html). | DBA, Pengembang aplikasi | 
| Jadwalkan pekerjaan migrasi data.  | Pada host target, gunakan perintah `impdb` untuk menjadwalkan impor Pompa Data. Ini menghubungkan database target ke host lokal dan memulai migrasi data. Untuk informasi selengkapnya, lihat [Impor Pompa Data](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) dan [NETWORK\$1LINK (dokumentasi](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919) Oracle). | DBA | 
| Validasi migrasi data. | Validasi data adalah langkah penting. Untuk validasi data, Anda dapat menggunakan alat khusus atau alat Oracle, seperti kombinasi kueri dblink dan SQL. | DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Letakkan database sumber dalam mode read-only. | Konfirmasikan bahwa aplikasi dimatikan dan tidak ada perubahan yang dilakukan pada database sumber. Buka database sumber dalam mode read-only. Ini membantu Anda menghindari transaksi terbuka. Untuk informasi selengkapnya, lihat `ALTER DATABASE` di [Pernyataan SQL](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540) (dokumentasi Oracle). | DBA, DevOps insinyur, Pengembang aplikasi | 
| Validasi jumlah objek dan data. | Untuk memvalidasi data dan objek, gunakan alat kustom atau alat Oracle, seperti kombinasi kueri dblink dan SQL. | DBA, Pengembang aplikasi | 
| Connect aplikasi ke database pada EC2 instance utama. | Ubah atribut koneksi aplikasi untuk menunjuk ke database baru yang Anda buat pada EC2 instance utama. | DBA, Pengembang aplikasi | 
| Validasi kinerja aplikasi. | Mulai aplikasi. Validasi fungsionalitas dan kinerja aplikasi dengan menggunakan [Automated Workload Repository](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (dokumentasi Oracle). | Pengembang aplikasi, DevOps insinyur, DBA | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**Referensi AWS**
+ [Migrasi database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Amazon EC2 untuk Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [Migrasi database Oracle yang besar ke AWS untuk lingkungan lintas platform](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPCs dan subnet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [Tutorial: Buat VPC untuk digunakan dengan instance database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Referensi Oracle**
+ [Konfigurasi Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-AB9DF863-2C7E-4767-81F2-56AD0FA30B49)
+ [Impor Pompa Data](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)

# Migrasikan sistem RHEL BYOL ke instans AWS License-Included dengan menggunakan AWS MGN
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn"></a>

*Mike Kuznetsov, Amazon Web Services*

## Ringkasan
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-summary"></a>

Saat memigrasikan beban kerja Anda ke AWS dengan menggunakan AWS Application Migration Service (AWS MGN), Anda mungkin harus mengangkat dan memindahkan (rehost) instans Red Hat Enterprise Linux (RHEL) Anda dan mengubah lisensi dari model Bring Your Own License (BYOL) default ke model AWS License Included (LI) selama migrasi. AWS MGN mendukung pendekatan skalabel yang menggunakan ID Amazon Machine Image (AMI). Pola ini menjelaskan cara menyelesaikan perubahan lisensi pada server RHEL selama migrasi rehost dalam skala besar. Ini juga menjelaskan cara mengubah lisensi untuk sistem RHEL yang sudah berjalan di Amazon Elastic Compute Cloud (Amazon EC2).

## Prasyarat dan batasan
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-prereqs"></a>

**Prasyarat**
+ Akses ke akun AWS target
+ AWS MGN diinisialisasi di akun AWS target dan Wilayah untuk migrasi (tidak diperlukan jika Anda telah bermigrasi dari sistem lokal ke AWS)
+ Server RHEL sumber dengan lisensi RHEL yang valid

## Arsitektur
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-architecture"></a>

Pola ini mencakup dua skenario:
+ Migrasi sistem dari lokasi langsung ke instans AWS LI dengan menggunakan AWS MGN. Untuk skenario ini, ikuti instruksi dalam epik pertama (*Migrasi ke instans LI - opsi 1*) dan epik ketiga.
+ Mengubah model lisensi dari BYOL ke LI untuk sistem RHEL yang sebelumnya dimigrasi yang sudah berjalan di Amazon EC2. Untuk skenario ini, ikuti instruksi dalam epik kedua (*Migrasi ke instans LI* - *opsi 2*) dan epik ketiga.

**catatan**  
Epik ketiga melibatkan konfigurasi ulang instans RHEL baru untuk menggunakan server Red Hat Update Infrastructure (RHUI) yang disediakan oleh AWS. Proses ini sama untuk kedua skenario.

## Alat
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-tools"></a>

**Layanan AWS**
+ [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) membantu Anda meng-host ulang (mengangkat dan memindahkan) aplikasi ke AWS Cloud tanpa perubahan dan dengan waktu henti minimal.

## Epik
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-epics"></a>

### Migrasi ke instans LI - opsi 1 (untuk sistem RHEL lokal)
<a name="migrate-to-li-instance---option-1-for-an-on-premises-rhel-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Temukan ID AMI instans RHEL AWS LI di Wilayah target. | Kunjungi [AWS Marketplace](https://aws.amazon.com/marketplace) atau gunakan [konsol Amazon EC2](https://console.aws.amazon.com/ec2/) untuk menemukan ID AMI RHEL yang cocok dengan versi sistem sumber RHEL (misalnya, RHEL-7.7), dan tuliskan ID AMI. Di konsol Amazon EC2, Anda dapat memfilter AMIs dengan menggunakan salah satu istilah pencarian berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrator awan | 
| Konfigurasikan pengaturan peluncuran AWS MGN.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)AWS MGN sekarang akan menggunakan versi template peluncuran ini untuk meluncurkan instance pengujian atau pemotongan. Untuk informasi selengkapnya, lihat [dokumentasi AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/ec2-launch.html). | Administrator awan | 
| Validasi pengaturan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrator awan | 
| Luncurkan instans LI baru. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrator awan | 

### Migrasi ke instance LI - opsi 2 (untuk instance RHEL BYOL EC2)
<a name="migrate-to-li-instance---option-2-for-a-rhel-byol-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan instans RHEL BYOL EC2 Anda ke instans AWS LI. | Anda dapat mengalihkan sistem RHEL yang sebelumnya Anda migrasikan ke AWS sebagai instans BYOL ke AWS LI dengan memindahkan disknya (volume Amazon Elastic Block Store) dan melampirkannya ke instans LI baru. Untuk beralih ini, ikuti langkah-langkah ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrator awan | 

### Konfigurasikan ulang RHEL OS untuk menggunakan RHUI yang disediakan AWS - kedua opsi
<a name="reconfigure-rhel-os-to-use-aws-provided-rhui-ndash-both-options"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Deregister OS dari langganan dan lisensi Red Hat. | Setelah migrasi dan pemotongan yang berhasil, sistem RHEL harus dihapus dari langganan Red Hat untuk menghentikan penggunaan lisensi Red Hat dan menghindari penagihan ganda.Untuk menghapus RHEL OS dari langganan Red Hat, ikuti proses yang dijelaskan dalam dokumentasi [Red Hat Subscription Management (RHSM)](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/installation_guide/chap-subscription-management-unregistering). Gunakan perintah CLI:  <pre>subscription-manager unregister</pre>Anda juga dapat menonaktifkan plugin pengelola langganan untuk berhenti memeriksa status langganan pada setiap panggilan **yum**. Untuk melakukan ini, edit file konfigurasi `/etc/yum/pluginconf.d/subscription-manager.conf` dan ubah parameter `enabled=1` menjadi`enabled=0`. | Linux atau administrator sistem | 
| Ganti konfigurasi pembaruan lama (RHUI, jaringan Red Hat Satellite, repositori yum) dengan RHUI yang disediakan AWS. | Anda harus mengkonfigurasi ulang sistem RHEL yang dimigrasi untuk menggunakan server RHUI yang disediakan AWS. Ini memberi Anda akses ke server RHUI dalam Wilayah AWS tanpa memerlukan infrastruktur pembaruan eksternal. Perubahan tersebut melibatkan proses berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)Berikut adalah langkah-langkah rinci dan perintah:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Linux atau administrator sistem | 
| Validasi konfigurasi. | Pada instance yang dimigrasi target, verifikasi bahwa konfigurasi baru sudah benar:<pre>sudo yum clean all <br />sudo yum repolist </pre> | Linux atau administrator sistem | 

## Sumber daya terkait
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-resources"></a>
+ [Panduan Pengguna AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Dapatkan paket klien AWS RHUI yang mendukung IMDSv2](https://access.redhat.com/solutions/5009491) (artikel Red Hat Knowledgebase)
+ [Templat peluncuran Amazon EC2 (dokumentasi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) Amazon EC2)

# Memigrasi database Microsoft SQL Server lokal ke Amazon EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2"></a>

*Senthil Ramasamy, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-summary"></a>

Pola ini menjelaskan cara memigrasikan database Microsoft SQL Server lokal ke Microsoft SQL Server di instans Amazon Elastic Compute Cloud (Amazon). EC2 Ini mencakup dua opsi untuk migrasi: menggunakan AWS Database Migration Service (AWS DMS) atau menggunakan alat Microsoft SQL Server asli seperti backup dan restore, Copy Database Wizard, atau copy and attach database. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-prereqs"></a>

**Prasyarat**
+  AWS Akun aktif
+ Sistem operasi yang didukung oleh Amazon EC2 (untuk daftar lengkap versi sistem operasi yang didukung, lihat [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/))
+ Database sumber Microsoft SQL Server di pusat data lokal

**Versi produk**
+ Untuk database EC2 instans lokal dan Amazon, AWS DMS mendukung: 
  + SQL Server versi 2005, 2008, 2008R2, 2012, 2014, 2016, 2017, dan 2019 
  + Edisi Enterprise, Standard, Workgroup, Developer, dan Web
+ Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Microsoft SQL Server sebagai Target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html). AWS DMS  

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal

**Tumpukan teknologi target**
+ Database Microsoft SQL Server pada sebuah instance EC2 

**Arsitektur target**

![\[Instans Microsoft SQL Server primer dan siaga pada EC2 instance di dua Availability Zone.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/53e2c27d-ceb4-4d88-a022-93dd0b343eaf.png)


**Arsitektur migrasi data**
+ Menggunakan AWS DMS

![\[Memigrasi data SQL Server lokal ke EC2 instans dengan menggunakan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/1cbe32ea-e285-4cac-9153-4428bad9b229.png)

+ Menggunakan alat SQL Server asli 

![\[Memigrasi data SQL Server lokal ke EC2 instans dengan menggunakan alat SQL Server asli.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/ad2caf54-7399-4038-91a3-acba9fa7da29.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) membantu Anda memigrasikan data ke dan dari basis data komersial dan sumber terbuka yang banyak digunakan, termasuk Oracle, SQL Server, MySQL, dan PostgreSQL. Anda dapat menggunakannya AWS DMS untuk memigrasikan data ke AWS Cloud, antar instans lokal (melalui AWS Cloud penyiapan), atau antara kombinasi pengaturan cloud dan lokal.
+ [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 Microsoft SQL Server asli termasuk backup dan restore, Copy Database Wizard, dan salin dan lampirkan database.

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target. |  | DBA | 
| Identifikasi versi sistem operasi target. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan perangkat keras untuk instance server target berdasarkan daftar kompatibilitas Microsoft SQL Server dan persyaratan kapasitas. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan untuk jenis dan kapasitas. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan jaringan, termasuk latensi dan bandwidth. |  | DBA, Administrator sistem | 
| Pilih jenis EC2 instans berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan dan host untuk basis data sumber dan target. |  | DBA, Administrator sistem | 
| Identifikasi daftar pengguna yang diperlukan untuk instalasi perangkat lunak Microsoft SQL Server. |  | DBA, Administrator sistem | 
| Tentukan strategi cadangan. |  | DBA | 
| Tentukan persyaratan ketersediaan. |  | DBA | 
| Identifikasi migrasi aplikasi dan strategi cutover. |  | DBA, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat virtual private cloud (VPC) dan subnet. |  | Administrator sistem | 
| Buat grup keamanan dan daftar kontrol akses jaringan (ACL). |  | Administrator sistem | 
| Konfigurasikan dan mulai sebuah EC2 instance. |  | Administrator sistem | 

### Instal perangkat lunak
<a name="install-the-software"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna dan grup yang diperlukan untuk perangkat lunak Microsoft SQL Server. |  | DBA, Administrator sistem | 
| Unduh perangkat lunak Microsoft SQL Server. |  | DBA, Administrator sistem | 
| Instal perangkat lunak Microsoft SQL Server pada EC2 instance dan konfigurasikan server. |  | DBA, Administrator sistem | 

### Migrasikan data - opsi 1
<a name="migrate-the-data---option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat Microsoft SQL Server asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | Alat termasuk backup dan restore, Copy Database Wizard, dan copy dan attach database. Untuk informasi selengkapnya, lihat panduan [Memigrasi database Microsoft SQL Server](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/) ke. AWS Cloud | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-the-data---option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan menggunakan AWS DMS. | Untuk informasi selengkapnya tentang penggunaan AWS DMS, lihat tautan di bagian [Sumber daya terkait](#migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources). | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. | Gunakan AWS Schema Conversion Tool (AWS SCT) untuk menganalisis dan memodifikasi kode SQL yang disematkan dalam kode sumber aplikasi. | DBA, Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi peralihan aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan semua AWS sumber daya sementara. | Sumber daya sementara termasuk contoh AWS DMS replikasi dan EC2 instance untuk AWS SCT. | DBA, Administrator sistem | 
| Tinjau dan validasi dokumen proyek. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi, persen penghematan biaya manual versus alat, dan sebagainya. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek dan berikan umpan balik. |  | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources"></a>

**Referensi**
+ [Migrasi database Microsoft SQL Server ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/)
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [ EC2 Harga Amazon](https://aws.amazon.com/ec2/pricing/)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Produk Microsoft di AWS](https://aws.amazon.com/windows/products/)
+ [Lisensi Microsoft pada AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server aktif AWS](https://aws.amazon.com/windows/products/sql/)

**Tutorial dan video**
+ [Memulai dengan](https://aws.amazon.com/ec2/getting-started/) Amazon EC2
+ [Memulai dengan ](https://aws.amazon.com/dms/getting-started/)AWS Database Migration Service
+ [Bergabunglah dengan EC2 instans Amazon ke Simple AD Active Directory Anda](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_join_instance.html)
+ [Bergabunglah dengan EC2 instans Amazon ke Direktori AWS Managed Microsoft AD Aktif Anda](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U)(video)
+ [Pengantar Amazon EC2 - Elastic Cloud Server & Hosting dengan AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (video)

# Menghosting ulang beban kerja lokal di AWS Cloud: daftar periksa migrasi
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Ringkasan
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-summary"></a>

Menghosting ulang beban kerja lokal di Amazon Web Services (AWS) Cloud melibatkan fase migrasi berikut: perencanaan, pra-penemuan, penemuan, pembuatan, pengujian, dan pemotongan. Pola ini menguraikan fase dan tugas terkait mereka. Tugas dijelaskan pada tingkat tinggi dan mendukung sekitar 75% dari semua beban kerja aplikasi. Anda dapat menerapkan tugas-tugas ini selama dua hingga tiga minggu dalam siklus sprint yang gesit.

Anda harus meninjau dan memeriksa tugas-tugas ini dengan tim migrasi dan konsultan Anda. Setelah peninjauan, Anda dapat mengumpulkan masukan, menghilangkan atau mengevaluasi kembali tugas yang diperlukan untuk memenuhi kebutuhan Anda, dan memodifikasi tugas lain untuk mendukung setidaknya 75% dari beban kerja aplikasi dalam portofolio Anda. Anda kemudian dapat menggunakan alat manajemen proyek tangkas seperti Atlassian Jira atau Rally Software untuk mengimpor tugas, menetapkannya ke sumber daya, dan melacak aktivitas migrasi Anda. 

Pola ini mengasumsikan bahwa Anda menggunakan [AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html) untuk meng-host ulang beban kerja Anda, tetapi Anda dapat menggunakan alat migrasi pilihan Anda.

Amazon Macie dapat membantu mengidentifikasi data sensitif di basis pengetahuan Anda, disimpan sebagai sumber data, log pemanggilan model, dan penyimpanan prompt di bucket Amazon Simple Storage Service (Amazon S3). Untuk informasi lebih lanjut, lihat [dokumentasi Macie](https://docs.aws.amazon.com/macie/latest/user/data-classification.html).

## Prasyarat dan batasan
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-prereqs"></a>

**Prasyarat**
+ Alat manajemen proyek untuk melacak tugas migrasi (misalnya, Atlassian Jira atau Rally Software)
+ Alat migrasi untuk menghosting ulang beban kerja Anda di AWS (misalnya, [Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html))

## Arsitektur
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-architecture"></a>

**Platform sumber**
+ Tumpukan sumber lokal (termasuk teknologi, aplikasi, database, dan infrastruktur)  

**Platform target**
+ Tumpukan target AWS Cloud (termasuk teknologi, aplikasi, database, dan infrastruktur) 

**Arsitektur **

Diagram berikut menggambarkan rehosting (menemukan dan memigrasikan server dari lingkungan sumber lokal ke AWS) dengan menggunakan Cloud Migration Factory dan AWS Application Migration Service.

![\[Rehosting server di AWS dengan menggunakan Cloud Migration Factory dan Layanan Migrasi Aplikasi\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/images/735ad65b-2646-4803-82c9-f7f93369b3a5.png)


## Alat
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-tools"></a>
+ Anda dapat menggunakan alat migrasi dan manajemen proyek pilihan Anda.

## Epik
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-epics"></a>

### Tahap perencanaan
<a name="planning-phase"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Rawat backlog pra-penemuan. | Lakukan sesi kerja perawatan backlog pra-penemuan dengan pemimpin departemen dan pemilik aplikasi.  | Manajer proyek, pemimpin scrum Agile | 
|  Lakukan sesi kerja perencanaan sprint. | Sebagai latihan pelingkupan, distribusikan aplikasi yang ingin Anda migrasi melintasi sprint dan gelombang. | Manajer proyek, pemimpin scrum Agile | 

### Fase pra-penemuan
<a name="pre-discovery-phase"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasikan pengetahuan aplikasi. | Konfirmasikan dan dokumentasikan pemilik aplikasi dan pengetahuan mereka tentang aplikasi. Tentukan apakah ada orang lain untuk pertanyaan teknis. | Spesialis migrasi (pewawancara) | 
| Tentukan persyaratan kepatuhan aplikasi. | Konfirmasikan dengan pemilik aplikasi bahwa aplikasi tidak harus mematuhi persyaratan untuk Standar Keamanan Data Industri Kartu Pembayaran (PCI DSS), Sarbanes-Oxley Act (SOX), informasi identitas pribadi (PII), atau standar lainnya. Jika persyaratan kepatuhan ada, tim harus menyelesaikan pemeriksaan kepatuhan mereka di server yang akan dimigrasikan. | Spesialis migrasi (pewawancara) | 
| Konfirmasikan persyaratan rilis produksi.  | Konfirmasikan persyaratan untuk merilis aplikasi yang dimigrasi ke produksi (seperti tanggal rilis dan durasi waktu henti) dengan pemilik aplikasi atau kontak teknis. | Spesialis migrasi (pewawancara) | 
| Dapatkan daftar server. | Dapatkan daftar server yang terkait dengan aplikasi yang ditargetkan. | Spesialis migrasi (pewawancara) | 
| Dapatkan diagram logis yang menunjukkan keadaan saat ini. | Dapatkan diagram keadaan saat ini untuk aplikasi dari arsitek perusahaan atau pemilik aplikasi. | Spesialis migrasi (pewawancara) | 
| Buat diagram logis yang menunjukkan status target. | Buat diagram logis aplikasi yang menunjukkan arsitektur target di AWS. Diagram ini harus menggambarkan server, konektivitas, dan faktor pemetaan. | Arsitek perusahaan, Pemilik bisnis | 
| Dapatkan informasi server. | Kumpulkan informasi tentang server yang terkait dengan aplikasi, termasuk detail konfigurasinya. | Spesialis migrasi (pewawancara) | 
| Tambahkan informasi server ke template penemuan. | Tambahkan informasi server terperinci ke template penemuan aplikasi (lihat `mobilize-application-questionnaire.xlsx` di lampiran untuk pola ini). Template ini mencakup semua keamanan terkait aplikasi, infrastruktur, sistem operasi, dan detail jaringan. | Spesialis migrasi (pewawancara) | 
| Publikasikan templat penemuan aplikasi. | Bagikan templat penemuan aplikasi dengan pemilik aplikasi dan tim migrasi untuk akses dan penggunaan umum. | Spesialis migrasi (pewawancara) | 

### Fase penemuan
<a name="discovery-phase"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasikan daftar server. | Konfirmasikan daftar server dan tujuan masing-masing server dengan pemilik aplikasi atau pemimpin teknis. | Spesialis migrasi | 
| Identifikasi dan tambahkan grup server. | Identifikasi grup server seperti server web atau server aplikasi, dan tambahkan informasi ini ke template penemuan aplikasi. Pilih tingkat aplikasi (web, aplikasi, database) yang harus dimiliki setiap server. | Spesialis migrasi | 
| Isi template penemuan aplikasi. | Lengkapi detail template penemuan aplikasi dengan bantuan tim migrasi, tim aplikasi, dan AWS. | Spesialis migrasi | 
| Tambahkan detail server yang hilang (middleware dan tim OS). | Mintalah tim middleware dan sistem operasi (OS) untuk meninjau template penemuan aplikasi dan menambahkan detail server yang hilang, termasuk informasi database. | Spesialis migrasi | 
| Dapatkan peraturan inbound/outbound lalu lintas (tim jaringan). | Mintalah tim jaringan untuk mendapatkan peraturan inbound/outbound lalu lintas untuk server sumber dan tujuan. Tim jaringan juga harus menambahkan aturan firewall yang ada, mengekspornya ke format grup keamanan, dan menambahkan penyeimbang beban yang ada ke template penemuan aplikasi. | Spesialis migrasi | 
| Identifikasi penandaan yang diperlukan. | Tentukan persyaratan penandaan untuk aplikasi. | Spesialis migrasi | 
| Buat detail permintaan firewall. | Tangkap dan filter aturan firewall yang diperlukan untuk berkomunikasi dengan aplikasi.  | Spesialis migrasi, arsitek Solusi, Pimpinan jaringan  | 
| Perbarui jenis EC2 instance. | Perbarui jenis instans Amazon Elastic Compute Cloud (Amazon EC2) yang akan digunakan di lingkungan target, berdasarkan infrastruktur dan persyaratan server.  | Spesialis migrasi, arsitek Solusi, Pimpinan jaringan | 
| Identifikasi diagram keadaan saat ini. | Identifikasi atau buat diagram yang menunjukkan keadaan aplikasi saat ini. Diagram ini akan digunakan dalam permintaan keamanan informasi (InfoSec).  | Spesialis migrasi, arsitek Solusi | 
| Selesaikan diagram keadaan masa depan. | Selesaikan diagram yang menunjukkan status future (target) untuk aplikasi. Diagram ini juga akan digunakan dalam InfoSec permintaan.   | Spesialis migrasi, arsitek Solusi | 
| Buat firewall atau permintaan layanan grup keamanan. | Buat firewall atau permintaan layanan grup keamanan (untuk pengembangan/QA, pra-produksi, dan produksi). Jika Anda menggunakan Cloud Migration Factory, sertakan port khusus replikasi jika belum dibuka.  | Spesialis migrasi, arsitek Solusi, Pimpinan jaringan | 
| Tinjau firewall atau permintaan grup keamanan (InfoSec tim). | Pada langkah ini, InfoSec tim meninjau dan menyetujui firewall atau permintaan grup keamanan yang dibuat pada langkah sebelumnya.  | InfoSec insinyur, Spesialis migrasi | 
| Menerapkan permintaan grup keamanan firewall (tim jaringan). | Setelah InfoSec tim menyetujui permintaan firewall, tim jaringan menerapkan aturan inbound/outbound firewall yang diperlukan.  | Spesialis migrasi, arsitek Solusi, Pimpinan jaringan | 

### Fase build (ulangi untuk pengembangan/QA, pra-produksi, dan lingkungan produksi)
<a name="build-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Impor data aplikasi dan server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.html)Jika Anda tidak menggunakan Cloud Migration Factory, ikuti petunjuk untuk menyiapkan alat migrasi Anda. | Spesialis migrasi, Administrator Cloud | 
| Periksa prasyarat untuk server sumber. | Connect dengan server sumber dalam lingkup untuk memverifikasi prasyarat seperti port TCP 1500, port TCP 443, ruang bebas volume root, versi.NET Framework, dan parameter lainnya. Ini diperlukan untuk replikasi. Untuk informasi tambahan, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#prerequisites-2). | Spesialis migrasi, Administrator Cloud | 
| Buat permintaan layanan untuk menginstal agen replikasi.  | Buat permintaan layanan untuk menginstal agen replikasi pada server dalam lingkup untuk pengembangan/QA, pra-produksi, atau produksi. | Spesialis migrasi, Administrator Cloud | 
| Instal agen replikasi. | Instal agen replikasi pada server sumber dalam lingkup pada mesin pengembangan/QA, pra-produksi, atau produksi. Untuk informasi tambahan, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#install-the-replication-agents). | Spesialis migrasi, Administrator Cloud | 
| Dorong skrip pasca-peluncuran. | Layanan Migrasi Aplikasi mendukung skrip pasca-peluncuran untuk membantu Anda mengotomatiskan aktivitas tingkat OS seperti menginstal atau menghapus instalasi perangkat lunak setelah Anda meluncurkan instance target. Langkah ini mendorong skrip pasca-peluncuran ke mesin Windows atau Linux, tergantung pada server yang diidentifikasi untuk migrasi. Untuk petunjuknya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#push-the-post-launch-scripts). | Spesialis migrasi, Administrator Cloud | 
| Verifikasi status replikasi. | Konfirmasikan status replikasi untuk server sumber dalam lingkup secara otomatis dengan menggunakan skrip yang disediakan. Skrip berulang setiap lima menit sampai status semua server sumber dalam gelombang yang diberikan berubah menjadi **Healthy**. Untuk petunjuknya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#verify-the-replication-status). | Spesialis migrasi, Administrator Cloud | 
| Buat pengguna admin. | Admin lokal atau pengguna sudo di mesin sumber mungkin diperlukan untuk memecahkan masalah apa pun setelah pemindahan migrasi dari server sumber dalam cakupan ke AWS. Tim migrasi menggunakan pengguna ini untuk masuk ke server target ketika server otentikasi (misalnya, server DC atau LDAP) tidak dapat dijangkau. Untuk petunjuk langkah ini, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/step4.html#add-a-user-to-the-admin-group). | Spesialis migrasi, Administrator Cloud | 
| Validasi template peluncuran. | Validasi metadata server untuk memastikannya berhasil dan tidak memiliki data yang tidak valid. Langkah ini memvalidasi metadata pengujian dan cutover. Untuk petunjuknya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#validate-launch-template-1). | Spesialis migrasi, Administrator Cloud | 

### Fase uji (ulangi untuk pengembangan/QA, pra-produksi, dan lingkungan produksi)
<a name="test-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat permintaan layanan. | Buat permintaan layanan untuk tim infrastruktur dan tim lain untuk melakukan pemotongan aplikasi ke instans pengembangan/QA, pra-produksi, atau produksi.  | Spesialis migrasi, Administrator Cloud | 
| Konfigurasikan penyeimbang beban (opsional). | Konfigurasikan penyeimbang beban yang diperlukan, seperti [Application Load Balancer atau penyeimbang beban](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) [F5 dengan](https://www.f5.com/resources/white-papers/load-balancing-101-nuts-and-bolts) iRULES. | Spesialis migrasi, Administrator Cloud | 
| Luncurkan instance untuk pengujian. | Luncurkan semua mesin target untuk gelombang tertentu di Layanan Migrasi Aplikasi dalam mode uji. Untuk informasi tambahan, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-testing). | Spesialis migrasi, Administrator Cloud | 
| Verifikasi status instans target. | Verifikasi status instance target dengan memeriksa proses bootup untuk semua server sumber dalam lingkup dalam gelombang yang sama. Mungkin diperlukan waktu hingga 30 menit untuk instance target untuk boot up. Anda dapat memeriksa status secara manual dengan masuk ke EC2 konsol Amazon, mencari nama server sumber, dan meninjau kolom **pemeriksaan Status**. **Pemeriksaan status 2/2 yang dilewati** menunjukkan bahwa instance tersebut sehat dari perspektif infrastruktur. | Spesialis migrasi, Administrator Cloud | 
| Ubah entri DNS. | Ubah entri Sistem Nama Domain (DNS). (Gunakan `resolv.conf` atau `host.conf` untuk lingkungan Microsoft Windows.) Konfigurasikan setiap EC2 instance untuk menunjuk ke alamat IP baru dari host ini.Pastikan tidak ada konflik DNS antara server lokal dan AWS Cloud. Langkah ini dan langkah-langkah berikut bersifat opsional, tergantung pada lingkungan tempat server di-host. | Spesialis migrasi, Administrator Cloud | 
| Uji konektivitas ke host backend dari EC2 instance. | Periksa login dengan menggunakan kredensi domain untuk server yang dimigrasi. | Spesialis migrasi, Administrator Cloud | 
| Perbarui catatan DNS A. | Perbarui catatan DNS A untuk setiap host untuk menunjuk ke alamat IP EC2 pribadi Amazon yang baru. | Spesialis migrasi, Administrator Cloud | 
| Perbarui catatan DNS CNAME. | Perbarui catatan DNS CNAME untuk virtual IPs (nama penyeimbang beban) untuk menunjuk ke cluster untuk server web dan aplikasi. | Spesialis migrasi, Administrator Cloud | 
| Uji aplikasi di lingkungan yang berlaku. | Masuk ke EC2 instance baru dan uji aplikasi di lingkungan pengembangan/QA, pra-produksi, dan produksi. | Spesialis migrasi, Administrator Cloud | 
| Tandai sebagai siap untuk cutover. | Ketika pengujian selesai, ubah status server sumber untuk menunjukkan bahwa itu siap untuk cutover, sehingga pengguna dapat meluncurkan instance cutover. Untuk petunjuknya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#mark-as-ready-for-cutover). | Spesialis migrasi, Administrator Cloud | 

### Fase pemotongan
<a name="cutover-phase"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat rencana penyebaran produksi. | Buat rencana penyebaran produksi (termasuk rencana backout). | Spesialis migrasi, Administrator Cloud | 
| Beri tahu tim operasi tentang waktu henti. | Beri tahu tim operasi tentang jadwal downtime untuk server. Beberapa tim mungkin memerlukan permintaan perubahan atau tiket permintaan layanan (CR/SR) untuk pemberitahuan ini. | Spesialis migrasi, Administrator Cloud | 
| Replikasi mesin produksi. | Replikasi mesin produksi dengan menggunakan Layanan Migrasi Aplikasi atau alat migrasi lainnya. | Spesialis migrasi, Administrator Cloud | 
| Matikan server sumber dalam lingkup. | Setelah memverifikasi status replikasi server sumber, Anda dapat mematikan server sumber untuk menghentikan transaksi dari aplikasi klien ke server. Anda dapat mematikan server sumber di jendela cutover. Untuk informasi selengkapnya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#shut-down-the-in-scope-source-servers). | Administrator awan | 
| Luncurkan instance untuk cutover. | Luncurkan semua mesin target untuk gelombang tertentu di Layanan Migrasi Aplikasi dalam mode cutover. Untuk informasi selengkapnya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-cutover). | Spesialis migrasi, Administrator Cloud | 
| Ambil contoh IPs target. | Ambil contoh IPs untuk target. Jika pembaruan DNS adalah proses manual di lingkungan Anda, Anda perlu mendapatkan alamat IP baru untuk semua instance target. Untuk informasi selengkapnya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#retrieve-the-target-instance-ip). | Spesialis migrasi, Administrator Cloud | 
| Verifikasi koneksi server target. | Setelah Anda memperbarui catatan DNS, sambungkan ke instance target dengan nama host untuk memverifikasi koneksi. Untuk informasi selengkapnya, lihat [Panduan Implementasi Pabrik Migrasi Cloud](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#verify-the-target-server-connections). | Spesialis migrasi, Administrator Cloud | 

## Sumber daya terkait
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-resources"></a>
+ [Cara bermigrasi](https://aws.amazon.com/migrate-modernize-build/cloud-migration/how-to-migrate/)
+ [Panduan Implementasi Pabrik AWS Cloud Migration](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html)
+ [Mengotomatiskan migrasi server skala besar dengan Cloud Migration Factory](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-factory-cloudendure/welcome.html)
+ [Panduan Pengguna Layanan Migrasi Aplikasi AWS](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [AWS Migration Acceleration Program](https://aws.amazon.com/migration-acceleration-program/)

## Lampiran
<a name="attachments-8e2d2d72-30cc-4e98-8abd-ac2ef95e599b"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/attachments/attachment.zip)

# Menyiapkan infrastruktur Multi-AZ untuk SQL Server Always On FCI dengan menggunakan Amazon FSx
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx"></a>

*Manish Garg, TVRLPhani Kumar Dadi, Nishad Mankar, dan RAJNEESH TYAGI, Amazon Web Services*

## Ringkasan
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-summary"></a>

Jika Anda perlu memigrasi sejumlah besar Microsoft SQL Server Always On Failover Cluster Instances (FCIs) dengan cepat, pola ini dapat membantu Anda meminimalkan waktu penyediaan. Dengan menggunakan otomatisasi dan Amazon FSx untuk Windows File Server, ini mengurangi upaya manual, kesalahan buatan manusia, dan waktu yang diperlukan untuk menyebarkan sejumlah besar cluster.

Pola ini mengatur infrastruktur untuk SQL Server FCIs dalam penerapan Multi-Availability Zone (Multi-AZ) di Amazon Web Services (AWS). Penyediaan layanan AWS yang diperlukan untuk infrastruktur ini diotomatiskan dengan menggunakan templat [ CloudFormationAWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html). Instalasi SQL Server dan pembuatan node cluster pada instans [Amazon Elastic Compute Cloud EC2 (Amazon)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) dilakukan dengan menggunakan PowerShell perintah.

Solusi ini menggunakan sistem file [Amazon Multi-AZ FSx untuk Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) yang sangat tersedia sebagai saksi bersama untuk menyimpan file database SQL Server. Sistem FSx file Amazon dan instance EC2 Windows yang menghosting SQL Server digabungkan ke domain AWS Directory Service untuk Microsoft Active Directory (AWS Managed Microsoft AD) yang sama.

## Prasyarat dan batasan
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Pengguna AWS dengan izin yang memadai untuk menyediakan sumber daya menggunakan templat AWS CloudFormation 
+ AWS Directory Service untuk Microsoft Active Directory
+ Kredensil di AWS Secrets Manager untuk mengautentikasi ke AWS Managed Microsoft AD dalam pasangan nilai kunci:
  + `ADDomainName`: <Domain Name>
  + `ADDomainJoinUserName`: <Domain Username>
  + `ADDomainJoinPassword`: <Domain User Password>
  + `TargetOU`: <Target OU Value>
**catatan**  
Anda akan menggunakan nama kunci yang sama dalam otomatisasi AWS Systems Manager untuk aktivitas gabungan AWS Managed Microsoft AD.
+ File media SQL Server untuk instalasi SQL Server dan layanan Windows atau akun domain dibuat, yang akan digunakan selama pembuatan cluster
+ Virtual Private Cloud (VPC), dengan dua subnet publik di Availability Zones terpisah, dua subnet pribadi di Availability Zones, gateway internet, gateway NAT, asosiasi tabel rute, dan server lompat

**Versi produk**
+ Windows Server 2012 R2 dan Microsoft SQL Server 2016

## Arsitektur
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-architecture"></a>

**Tumpukan teknologi sumber**
+ SQL Server lokal dengan FCIs menggunakan drive bersama

**Tumpukan teknologi target**
+  EC2 Instans AWS
+ Amazon FSx untuk Server File Windows
+ Runbook AWS Systems Manager Automation
+ Konfigurasi jaringan (VPC, subnet, gateway internet, gateway NAT, server lompat, grup keamanan)
+ AWS Secrets Manager
+ AWS Dikelola Microsoft AD
+ Amazon EventBridge
+ AWS Identity and Access Management (IAM)

**Arsitektur target**

Diagram berikut menunjukkan akun AWS dalam satu Wilayah AWS, dengan VPC yang mencakup dua Availability Zone, dua subnet publik dengan gateway NAT, server lompat di subnet publik pertama, dua subnet pribadi, masing-masing dengan EC2 instance untuk node SQL Server dalam grup keamanan node, dan sistem FSx file Amazon yang terhubung ke masing-masing node SQL Server. AWS Directory Service, Amazon EventBridge, AWS Secrets Manager, dan AWS Systems Manager juga disertakan.

![\[Arsitektur multi-AZ dengan sumber daya di subnet publik dan pribadi, dengan grup keamanan node.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f09c0164-be2d-4665-a574-7ec29fd25082/images/543829a9-e130-4542-9c4e-7518c6cbe967.png)


**Otomatisasi dan skala**
+ Anda dapat menggunakan AWS Systems Manager untuk bergabung dengan AWS Managed Microsoft AD dan melakukan penginstalan SQL Server.

## Alat
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-tools"></a>

**Layanan AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
+ [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 layanan AWS lainnya seperti Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) untuk SQL Server, dan FSx Amazon untuk Windows File Server.
+ [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 EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, fungsi AWS Lambda, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di akun AWS lainnya.
+ [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 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 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 manajemen aplikasi dan sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola sumber daya AWS Anda dengan aman dalam skala besar.

**Alat-alat lainnya**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)adalah program manajemen otomatisasi dan konfigurasi Microsoft yang berjalan di Windows, Linux, dan macOS. Pola ini menggunakan PowerShell skrip.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [aws-windows-failover-cluster-automation](https://github.com/aws-samples/aws-windows-failover-cluster-automation).

## Praktik terbaik
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-best-practices"></a>
+ Peran IAM yang digunakan untuk menerapkan solusi ini harus mematuhi prinsip hak istimewa paling sedikit. Untuk informasi selengkapnya, lihat [dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Ikuti [praktik CloudFormation terbaik AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html).

## Epik
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-epics"></a>

### Menyebarkan infrastruktur
<a name="deploy-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan CloudFormation tumpukan Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps insinyur | 
| Menyebarkan tumpukan infrastruktur. | Setelah berhasil menyebarkan tumpukan Systems Manager, buat `infra` tumpukan, yang mencakup node EC2 instance, grup keamanan, sistem file Amazon FSx untuk Windows File Server, dan peran IAM.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps insinyur | 

### Mengatur Windows SQL Server Selalu Di FCI
<a name="set-up-the-windows-sql-server-always-on-fci"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal alat Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps insinyur, DBA | 
| Prestage objek komputer cluster di Active Directory Domain Services. | [Untuk melakukan prestage objek nama cluster (CNO) di Active Directory Domain Services (AD DS) dan prestage objek komputer virtual (VCO) untuk peran berkerumun, ikuti instruksi dalam dokumentasi Windows Server.](https://learn.microsoft.com/en-us/windows-server/failover-clustering/prestage-cluster-adds) | AWS DevOps, DBA, DevOps insinyur | 
| Buat WSFC. | Untuk membuat cluster Windows Server Failover Clustering (WSFC), lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DBA, DevOps insinyur | 
| Instal cluster failover SQL Server. | Setelah cluster WSFC diatur, instal cluster SQL Server pada instance utama (node1).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)<pre>D:\setup.exe /Q  `<br />/ACTION=InstallFailoverCluster `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/FEATURES="SQL,IS,BC,Conn"  `<br />/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"  `<br />/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"  `<br />/RSINSTALLMODE="FilesOnlyMode"  `<br />/INSTANCEID="MSSQLSERVER" `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)"  `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node1>;Cluster Network 1;<subnet mask>"  `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>"  `<br />/INSTANCEDIR="C:\Program Files\Microsoft SQL Server"  `<br />/ENU="True"  `<br />/ERRORREPORTING=0  `<br />/SQMREPORTING=0  `<br />/SAPWD="<Domain User password>" `<br />/SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"  `<br />/SQLSYSADMINACCOUNTS="<domain\username>" `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="<domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/ISSVCACCOUNT="<domain\username>" /ISSVCPASSWORD="<Domain User password>"  `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher"  `<br />/INSTALLSQLDATADIR="\\<FSX DNS name>\share\Program Files\Microsoft SQL Server"  `<br />/SQLUSERDBDIR="\\<FSX DNS name>\share\data"  `<br />/SQLUSERDBLOGDIR="\\<FSX DNS name>\share\log" `<br />/SQLTEMPDBDIR="T:\tempdb"  `<br />/SQLTEMPDBLOGDIR="T:\log"  `<br />/SQLBACKUPDIR="\\<FSX DNS name>\share\SQLBackup" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, DevOps insinyur | 
| Tambahkan simpul sekunder ke cluster. | Untuk menambahkan SQL Server ke node sekunder (node 2), jalankan PowerShell perintah berikut.<pre>D:\setup.exe /Q  `<br />/ACTION=AddNode `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)" `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node2>;Cluster Network 2;<subnet mask>" `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>" `<br />/CONFIRMIPDEPENDENCYCHANGE=1 `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, DevOps insinyur | 
| Uji SQL Server FCI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | DBA, DevOps insinyur | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pembersihan sumber daya  | Untuk membersihkan sumber daya, gunakan proses penghapusan CloudFormation tumpukan AWS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)Setelah penghapusan tumpukan selesai, tumpukan akan berada dalam status. `DELETE_COMPLETE` Tumpukan dalam `DELETE_COMPLETE` status tidak ditampilkan di CloudFormation konsol secara default. Untuk menampilkan tumpukan yang dihapus, Anda harus mengubah filter tampilan tumpukan seperti yang dijelaskan dalam [Melihat tumpukan yang dihapus di konsol CloudFormation AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-deleted-stacks.html).Jika penghapusan gagal, tumpukan akan berada dalam status. `DELETE_FAILED` Untuk solusi, lihat [Menghapus tumpukan gagal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) dalam CloudFormation dokumentasi. | AWS DevOps, DBA, DevOps insinyur | 

## Pemecahan masalah
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kegagalan CloudFormation template AWS | Jika CloudFormation template gagal selama penerapan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 
| Kegagalan bergabung dengan Microsoft AD yang Dikelola AWS | Untuk memecahkan masalah bergabung, ikuti langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 

## Sumber daya terkait
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-resources"></a>
+ [Sederhanakan penerapan ketersediaan tinggi Microsoft SQL Server Anda menggunakan FSx Amazon untuk Windows File Server](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/)
+ [Menggunakan FSx untuk Windows File Server dengan Microsoft SQL Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html)

# Gunakan kueri BMC Discovery untuk mengekstrak data migrasi untuk perencanaan migrasi
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning"></a>

*Ben Tailor-Hamblin, Emma Baldry, Simon Cunningham, dan Shabnam Khan, Amazon Web Services*

## Ringkasan
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-summary"></a>

Panduan ini memberikan contoh kueri dan langkah-langkah untuk membantu Anda mengekstrak data dari infrastruktur dan aplikasi lokal menggunakan BMC Discovery. Pola ini menunjukkan cara menggunakan kueri BMC Discovery untuk memindai infrastruktur Anda dan mengekstrak informasi perangkat lunak, layanan, dan ketergantungan. Data yang diekstraksi diperlukan untuk menilai dan memobilisasi fase migrasi skala besar ke Amazon Web Services (AWS) Cloud. Anda dapat menggunakan data ini untuk membuat keputusan penting tentang aplikasi mana yang akan dimigrasi bersama sebagai bagian dari rencana migrasi Anda.

## Prasyarat dan batasan
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-prereqs"></a>

**Prasyarat**
+ Lisensi untuk BMC Discovery (sebelumnya BMC ADDM) atau perangkat lunak sebagai layanan (SaaS) versi BMC Helix Discovery
+ [BMC Discovery versi lokal atau SaaS, diinstal](https://docs.bmc.com/docs/discovery/221/installing-1050933835.html) 
**catatan**  
Untuk BMC Discovery versi lokal, Anda harus menginstal aplikasi di jaringan klien dengan akses ke semua perangkat jaringan dan server yang berada dalam cakupan migrasi di beberapa pusat data. Akses ke jaringan klien harus disediakan sesuai dengan instruksi instalasi aplikasi. Jika pemindaian informasi Windows Server diperlukan, maka Anda harus mengatur perangkat manajer proxy Windows di jaringan.
+ [Akses jaringan](https://docs.bmc.com/docs/discovery/221/network-ports-used-for-discovery-communications-1050933821.html) untuk memungkinkan aplikasi memindai perangkat di seluruh pusat data, jika Anda menggunakan BMC Helix Discovery

**Versi produk**
+ Penemuan BMC 22.2 (12,5)
+ Penemuan BMC 22.1 (12.4)
+ Penemuan BMC 21.3 (12.3)
+ Penemuan BMC 21.05 (12.2)
+ Penemuan BMC 20.08 (12.1)
+ Penemuan BMC 20.02 (12.0)
+ Penemuan BMC 11.3
+ Penemuan BMC 11.2
+ Penemuan BMC 11.1
+ Penemuan BMC 11.0
+ Penemuan Atrium BMC 10.2
+ Penemuan Atrium BMC 10.1
+ Penemuan Atrium BMC 10.0

## Arsitektur
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-architecture"></a>

Diagram berikut menunjukkan bagaimana manajer aset dapat menggunakan kueri BMC Discovery untuk memindai aplikasi yang dimodelkan BMC di SaaS dan lingkungan lokal.

![\[Arsitektur yang menggunakan BMC Discovery untuk mengekstrak informasi perangkat lunak, layanan, dan ketergantungan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5e549882-8deb-4459-8891-e39bbf80e320/images/0ebb3e68-5828-45aa-86f4-c741c7b6cd94.jpeg)


Diagram menunjukkan alur kerja berikut: Manajer aset menggunakan BMC Discovery atau BMC Helix Discovery untuk memindai database dan instance perangkat lunak yang berjalan di server virtual yang dihosting di beberapa server fisik. Alat ini dapat memodelkan aplikasi dengan komponen yang mencakup beberapa server virtual dan fisik.

**Tumpukan teknologi**
+ Penemuan BMC
+ Penemuan Helix BMC

## Alat
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-tools"></a>
+ [BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) adalah alat penemuan pusat data yang membantu Anda menemukan pusat data secara otomatis.
+ [BMC Helix Discovery](https://www.bmc.com/it-solutions/bmc-helix-discovery.html) adalah sistem pemodelan penemuan dan ketergantungan berbasis SaaS yang membantu Anda memodelkan aset data dan dependensinya secara dinamis.

## Praktik terbaik
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-best-practices"></a>

Ini adalah praktik terbaik untuk memetakan data aplikasi, ketergantungan, dan infrastruktur saat Anda bermigrasi ke cloud. Pemetaan membantu Anda memahami kompleksitas lingkungan Anda saat ini dan dependensi di antara berbagai komponen.

Informasi aset yang diberikan oleh kueri ini penting karena beberapa alasan:

1. **Perencanaan** — Memahami ketergantungan antar komponen membantu Anda merencanakan proses migrasi dengan lebih efektif. Misalnya, Anda mungkin perlu memigrasikan komponen tertentu terlebih dahulu untuk memastikan komponen lain berhasil dimigrasi.

1. **Penilaian risiko** — Memetakan dependensi antar komponen dapat membantu Anda mengidentifikasi potensi risiko atau masalah yang dapat timbul selama proses migrasi. Misalnya, Anda mungkin menemukan bahwa komponen tertentu bergantung pada teknologi usang atau tidak didukung yang dapat menyebabkan masalah di cloud.

1. **Arsitektur cloud** — Memetakan data aplikasi dan infrastruktur Anda juga dapat membantu Anda merancang arsitektur cloud yang sesuai yang memenuhi kebutuhan organisasi Anda. Misalnya, Anda mungkin perlu merancang arsitektur multi-tier untuk mendukung persyaratan ketersediaan atau skalabilitas yang tinggi.

Secara keseluruhan, pemetaan aplikasi, ketergantungan, dan data infrastruktur merupakan langkah penting dalam proses migrasi cloud. Latihan pemetaan dapat membantu Anda lebih memahami lingkungan Anda saat ini, mengidentifikasi potensi masalah atau risiko, dan merancang arsitektur cloud yang sesuai.

## Epik
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-epics"></a>

### Identifikasi dan evaluasi alat penemuan
<a name="identify-and-evaluate-discovery-tooling"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi pemilik ITSM. | Identifikasi pemilik IT Service Management (ITSM) (biasanya dengan menghubungi tim pendukung operasional). | Pimpin migrasi | 
| Periksa CMDB.  | Mengidentifikasi jumlah database manajemen konfigurasi (CMDBs) yang berisi informasi aset, dan kemudian mengidentifikasi sumber informasi tersebut. | Pimpin migrasi | 
| Identifikasi alat penemuan dan periksa penggunaan BMC Discovery. | Jika organisasi Anda menggunakan BMC Discovery untuk mengirim data tentang lingkungan Anda ke alat CMDB, periksa cakupan dan cakupan pemindaiannya. Misalnya, periksa apakah BMC Discovery memindai semua pusat data dan apakah server akses berada di zona perimeter. | Pimpin migrasi | 
| Periksa tingkat pemodelan aplikasi. | Periksa apakah aplikasi dimodelkan dalam BMC Discovery. Jika tidak, rekomendasikan penggunaan alat BMC Discovery untuk memodelkan instance perangkat lunak yang sedang berjalan yang menyediakan aplikasi dan layanan bisnis. | Insinyur migrasi, pimpinan Migrasi | 

### Ekstrak data infrastruktur
<a name="extract-infrastructure-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ekstrak data pada server fisik dan virtual. | Untuk mengekstrak data pada server fisik dan virtual yang dipindai oleh BMC Discovery, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan kueri berikut:<pre>search Host show key as 'Serverid', virtual, name as 'HOSTNAME', os_type as 'osName', os_version as 'OS Version', num_logical_processors as 'Logical Processor Counts', cores_per_processor as 'Cores per Processor', logical_ram as 'Logical RAM', #Consumer:StorageUse:Provider:DiskDrive.size as 'Size'</pre>Anda dapat menggunakan data yang diekstrak untuk menentukan ukuran instans yang sesuai untuk migrasi. | Insinyur migrasi, pimpinan Migrasi | 
| Ekstrak data pada aplikasi yang dimodelkan. | Jika aplikasi Anda dimodelkan dalam BMC Discovery, Anda dapat mengekstrak data tentang server yang menjalankan perangkat lunak aplikasi. Untuk mendapatkan nama server, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan query berikut:<pre>search SoftwareInstance show key as 'ApplicationID', #RunningSoftware:HostedSoftware:Host:Host.key as 'ReferenceID', type, name</pre>Aplikasi dimodelkan dalam BMC Discovery oleh kumpulan instance perangkat lunak yang berjalan. Aplikasi ini tergantung pada semua server yang menjalankan perangkat lunak aplikasi. | Pemilik aplikasi BMC Discovery | 
| Ekstrak data pada database. | Untuk mendapatkan daftar semua database yang dipindai dan server basis data ini berjalan, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan kueri berikut:<pre>search Database show key as 'Key', name, type as 'Source Engine Type', #Detail:Detail:ElementWithDetail:SoftwareInstance.name as 'Software Instance', #Detail:Detail:ElementWithDetail:SoftwareInstance.product_version as 'Product Version', #Detail:Detail:ElementWithDetail:SoftwareInstance.edition as 'Edition', #Detail:Detail:ElementWithDetail:SoftwareInstance.#RunningSoftware:HostedSoftware:Host:Host.key as 'ServerID'</pre> | Pemilik aplikasi | 
| Ekstrak data pada komunikasi server. | Untuk mendapatkan informasi tentang semua komunikasi jaringan antar server yang dikumpulkan oleh BMC Discovery dari log komunikasi jaringan bersejarah, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan kueri berikut:<pre>search Host<br /> TRAVERSE InferredElement:Inference:Associate:DiscoveryAccess<br /> TRAVERSE DiscoveryAccess:DiscoveryAccessResult:DiscoveryResult:NetworkConnectionList<br /> TRAVERSE List:List:Member:DiscoveredNetworkConnection<br /> PROCESS WITH networkConnectionInfo</pre> | Pemilik aplikasi BMC Discovery | 
| Ekstrak data tentang penemuan aplikasi. | Untuk mendapatkan informasi tentang dependensi aplikasi, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan kueri berikut:<pre>search SoftwareInstance show key as 'SRC App ID', #Dependant:Dependency:DependedUpon:SoftwareInstance.key as 'DEST App ID'</pre> | Pemilik aplikasi BMC Discovery | 
| Ekstrak data tentang layanan bisnis. | Untuk mengekstrak data pada layanan bisnis yang disediakan oleh host, gunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) untuk menjalankan kueri berikut:<pre>search Host show name, #Host:HostedSoftware:AggregateSoftware:BusinessService.name as 'Name'</pre> | Pemilik aplikasi BMC Discovery | 

## Pemecahan masalah
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kueri gagal dijalankan atau berisi kolom yang tidak terisi. | Tinjau catatan aset di BMC Discovery dan tentukan bidang mana yang Anda butuhkan. Kemudian, ganti bidang ini dalam kueri dengan menggunakan [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html). | 
| Rincian aset dependen tidak diisi. | Ini kemungkinan karena izin akses atau konektivitas jaringan. Alat penemuan mungkin tidak memiliki izin yang diperlukan untuk mengakses aset tertentu, terutama jika mereka berada di jaringan yang berbeda atau di lingkungan yang berbeda.Kami menyarankan Anda bekerja sama dengan ahli materi pelajaran penemuan untuk memastikan bahwa semua aset yang relevan diidentifikasi. | 

## Sumber daya terkait
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-resources"></a>

**Referensi**
+ [Hak Lisensi BMC Discovery](https://docs.bmc.com/docs/discovery/bmc-discovery-licensing-entitlement-531336348.html) (dokumentasi BMC)
+ [Fitur dan komponen BMC Discovery](https://docs.bmc.com/docs/discovery/221/bmc-discovery-features-and-components-1052418000.html) (dokumentasi BMC)
+ [Panduan Pengguna BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) (dokumentasi BMC)
+ [Mencari data (pada BMC Discovery)](https://docs.bmc.com/docs/discovery/120/searching-for-data-911457232.html) (dokumentasi BMC)
+ [Penemuan dan analisis portofolio untuk migrasi](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-portfolio-discovery/welcome.html) (AWS Prescriptive Guidance)

**Tutorial dan video**
+ [Penemuan BMC: Webinar - Praktik Terbaik Kueri Pelaporan (Bagian 1](https://www.youtube.com/watch?v=iwXy6x40kO8)) () YouTube

# Pindah
<a name="migration-relocate-pattern-list"></a>

**Topics**
+ [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)
+ [Migrasikan instans Amazon RDS DB ke VPC atau akun lain](migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.md)
+ [Migrasi cluster Amazon Redshift ke Wilayah AWS di Tiongkok](migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china.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)

# Migrasikan database Amazon RDS for Oracle ke database Akun AWS lain Wilayah AWS dan gunakan untuk replikasi yang sedang berlangsung AWS DMS
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication"></a>

*Durga Prasad Cheepuri dan Eduardo Valentim, Amazon Web Services*

## Ringkasan
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-summary"></a>


| 
| 
| Peringatan: Pengguna IAM memiliki kredensi 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. | 
| --- |

Pola ini memandu Anda melalui langkah-langkah untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk database sumber Oracle ke database sumber yang berbeda dan. Akun AWS Wilayah AWS Pola ini menggunakan snapshot DB untuk pemuatan data penuh satu kali, dan memungkinkan AWS Database Migration Service (AWS DMS) untuk replikasi yang sedang berlangsung.

## Prasyarat dan batasan
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS yang berisi sumber Amazon RDS for Oracle database, yang telah dienkripsi menggunakan kunci () non-default AWS Key Management Service AWS KMS
+ Aktif Akun AWS dalam database yang berbeda Wilayah AWS dari sumber, untuk digunakan untuk target Amazon RDS for Oracle database
+ Virtual private cloud (VPC) mengintip antara sumber dan target VPCs
+ Keakraban [dengan menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Keakraban [dengan menggunakan database Oracle sebagai target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 

**Versi produk**
+ Oracle versi 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, dan 18c. Untuk daftar terbaru versi dan edisi yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) dan dengan [Menggunakan database Oracle sebagai target AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html). AWS Untuk versi Oracle yang didukung oleh Amazon RDS, lihat [Oracle di Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) RDS. 

## Arsitektur
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-architecture"></a>

**Tumpukan teknologi sumber dan target**
+ Amazon RDS for Oracle DB instans

![\[Sumber akun AWS yang terhubung ke akun AWS target yang berisi Wilayah sumber dan target\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/e17fa7fe-d924-4f35-9707-b93572fa1227.png)


**Arsitektur replikasi yang sedang berlangsung**

![\[DB pada EC2 instans yang terhubung melalui VPC mengintip ke instance replikasi dan Amazon RDS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/b60b3500-5d29-487a-bbab-0ae9f3f386aa.png)


## Alat
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-tools"></a>

**Alat yang digunakan untuk pemuatan data penuh satu kali**
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membuat snapshot volume penyimpanan instans DB Anda, mencadangkan seluruh instans DB dan bukan hanya database individual. Saat membuat snapshot DB, Anda perlu mengidentifikasi instans DB mana yang akan Anda cadangkan, kemudian beri nama snapshot DB sehingga Anda dapat memulihkannya nanti. Jumlah waktu yang diperlukan untuk membuat snapshot bervariasi sesuai ukuran basis data Anda. Karena snapshot menyertakan seluruh volume penyimpanan, ukuran file, seperti file sementara, juga memengaruhi jumlah waktu yang diperlukan untuk membuat snapshot. Untuk informasi selengkapnya tentang penggunaan snapshot DB, lihat [Membuat Snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) di dokumentasi Amazon RDS. 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membuat**** kunci untuk**** enkripsi**** Amazon RDS. Saat Anda membuat instans DB terenkripsi, Anda juga dapat menyediakan pengenal kunci untuk [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)kunci enkripsi Anda. Jika Anda tidak menentukan pengenal [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)kunci, Amazon RDS menggunakan kunci enkripsi default untuk instans DB baru Anda. [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)membuat kunci enkripsi default Anda untuk Anda Akun AWS. Anda Akun AWS memiliki kunci enkripsi default yang berbeda untuk masing-masing Wilayah AWS. Untuk pola ini, instans Amazon RDS DB harus dienkripsi menggunakan kunci non-default. [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) Untuk informasi selengkapnya tentang penggunaan [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)kunci untuk enkripsi Amazon RDS, lihat [Mengenkripsi sumber daya Amazon RDS di dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) Amazon RDS.

**Alat yang digunakan untuk replikasi yang sedang berlangsung**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) digunakan untuk mereplikasi perubahan yang sedang berlangsung dan untuk menjaga database sumber dan target tetap sinkron. Untuk informasi selengkapnya tentang penggunaan AWS DMS untuk replikasi yang sedang berlangsung, lihat [Bekerja dengan instance AWS DMS replikasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) dalam dokumentasi. AWS DMS 

## Epik
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-epics"></a>

### Konfigurasikan sumber Anda Akun AWS
<a name="configure-your-source-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan sumber Oracle DB instance. | Biarkan instans Amazon RDS for Oracle DB berjalan dalam mode ARCHIVELOG, dan atur periode retensi. Untuk detailnya, lihat [Bekerja dengan database Oracle AWS terkelola sebagai sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed). | DBA | 
| Tetapkan logging tambahan untuk instans DB Oracle sumber. | Tetapkan pencatatan tambahan tingkat database dan tingkat tabel untuk instans Amazon RDS for Oracle DB. Untuk detailnya, lihat [Bekerja dengan database Oracle AWS terkelola sebagai sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed). | DBA | 
| Perbarui kebijakan AWS KMS utama di akun sumber. | Perbarui kebijakan AWS KMS kunci di sumber Akun AWS untuk memungkinkan target Akun AWS menggunakan kunci Amazon AWS KMS RDS terenkripsi. Untuk detailnya, lihat [AWS KMS dokumentasi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts). | SysAdmin | 
| Buat snapshot Amazon RDS DB manual dari instans DB sumber. |  | Pengguna AWS IAM | 
| Bagikan snapshot Amazon RDS manual yang dienkripsi dengan target. Akun AWS | Untuk detailnya, lihat [Berbagi snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html). | Pengguna AWS IAM | 

### Konfigurasikan target Anda Akun AWS
<a name="configure-your-target-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lampirkan kebijakan. | Di target Akun AWS, lampirkan kebijakan AWS Identity and Access Management (IAM) ke pengguna IAM root, untuk memungkinkan pengguna IAM menyalin snapshot DB terenkripsi menggunakan kunci bersama. AWS KMS  | SysAdmin | 
| Beralih ke sumbernya Wilayah AWS. |  | Pengguna AWS IAM | 
| Salin snapshot bersama. | Di konsol Amazon RDS, di panel **Snapshots**, pilih **Dibagikan dengan Saya**, dan pilih snapshot bersama. Salin snapshot ke Wilayah AWS sama dengan database sumber dengan menggunakan Amazon Resource Name (ARN) untuk kunci AWS KMS yang digunakan oleh database sumber. Untuk detailnya, lihat [Menyalin snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html). | Pengguna AWS IAM | 
| Beralih ke target Wilayah AWS, dan buat AWS KMS kunci baru. |  | Pengguna AWS IAM | 
| Salin snapshot. | Beralih ke sumbernya Wilayah AWS. Di konsol Amazon RDS, di panel **Snapshots**, pilih **Dimiliki oleh Saya**, dan pilih snapshot yang disalin. Salin snapshot ke target Wilayah AWS dengan menggunakan AWS KMS kunci untuk target Wilayah AWS baru. | Pengguna AWS IAM | 
| Pulihkan snapshot yang telah disalin. | Beralih ke target Wilayah AWS. Di konsol Amazon RDS, di panel **Snapshots**, pilih **Dimiliki oleh** Saya. Pilih snapshot yang disalin dan kembalikan ke instans Amazon RDS for Oracle DB. Untuk detailnya, lihat [Memulihkan dari snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Pengguna AWS IAM | 

### Siapkan database sumber Anda untuk replikasi yang sedang berlangsung
<a name="prepare-your-source-database-for-ongoing-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna Oracle dengan izin yang sesuai. | Buat pengguna Oracle dengan hak istimewa yang diperlukan untuk Oracle sebagai sumber untuk. AWS DMS Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | DBA | 
| Konfigurasikan database sumber untuk Oracle LogMiner atau Oracle Binary Reader. |  | DBA | 

### Siapkan database target Anda untuk replikasi yang sedang berlangsung
<a name="prepare-your-target-database-for-ongoing-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna Oracle dengan izin yang sesuai. | Buat pengguna Oracle dengan hak istimewa yang diperlukan untuk Oracle sebagai target. AWS DMS Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.Privileges). | DBA | 

### Buat AWS DMS komponen
<a name="create-dms-components"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat contoh replikasi di target Wilayah AWS. | Buat instance replikasi di VPC target. Wilayah AWS Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance). | Pengguna AWS IAM | 
| Buat titik akhir sumber dan target dengan enkripsi yang diperlukan, dan uji koneksi. | Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints). | DBA | 
| Buat tugas replikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.html)Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks). | Pengguna IAM | 
| Mulai tugas dan pantau mereka. | Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Pengguna AWS IAM | 
| Aktifkan validasi pada tugas jika diperlukan. | Perhatikan bahwa mengaktifkan validasi memang memiliki dampak kinerja pada replikasi. Untuk detailnya, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Pengguna AWS IAM | 

## Sumber daya terkait
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-resources"></a>
+ [Mengubah kebijakan utama](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)
+ [Membuat snapshot Amazon RDS DB manual](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)
+ [Berbagi snapshot Amazon RDS DB manual](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)
+ [Menyalin snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) 
+ [Memulihkan dari snapshot Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) 
+ [Memulai dengan AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) 
+ [Menggunakan database Oracle sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) 
+ [Menggunakan database Oracle sebagai target untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 
+ [AWS DMS pengaturan menggunakan pengintip VPC](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer) 
+ [Bagaimana cara berbagi snapshot Amazon RDS DB manual atau snapshot cluster DB dengan yang lain? Akun AWS](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Artikel AWS Knowledge Center) 

# Migrasikan instans Amazon RDS DB ke VPC atau akun lain
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account"></a>

*Dhrubajyoti Mukherjeee, Amazon Web Services*

## Ringkasan
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-summary"></a>

Pola ini memberikan panduan untuk memigrasikan instans DB Amazon Relational Database Service (Amazon RDS) dari satu cloud pribadi virtual (VPC) ke yang lain di akun AWS yang sama, atau dari satu akun AWS ke akun AWS lainnya.

Pola ini berguna jika Anda ingin memigrasikan instans Amazon RDS DB Anda ke VPC atau akun lain untuk alasan pemisahan atau keamanan (misalnya, ketika Anda ingin menempatkan tumpukan aplikasi dan database Anda di tempat yang berbeda). VPCs 

Migrasi instans DB ke akun AWS lain melibatkan langkah-langkah seperti mengambil snapshot manual, membagikannya, dan memulihkan snapshot di akun target. Proses ini bisa memakan waktu, tergantung pada perubahan database dan tingkat transaksi. Ini juga menyebabkan downtime database, jadi rencanakan ke depan untuk migrasi. Pertimbangkan strategi blue/green penerapan untuk meminimalkan waktu henti. Atau, Anda dapat mengevaluasi AWS Data Migration Service (AWS DMS) untuk meminimalkan waktu henti untuk perubahan tersebut. Namun, pola ini tidak mencakup opsi ini. Untuk mempelajari lebih lanjut, lihat [dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html).

## Prasyarat dan batasan
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Izin AWS Identity and Access Management (IAM) diperlukan untuk konsol VPC, subnet, dan Amazon RDS

**Batasan**
+ Perubahan pada VPC menyebabkan reboot database, mengakibatkan pemadaman aplikasi. Kami menyarankan Anda bermigrasi selama waktu puncak rendah.
+ Batasan saat memigrasikan Amazon RDS ke VPC lain:
  + Instans DB yang Anda migrasi harus berupa satu instance tanpa siaga. Itu tidak harus menjadi anggota cluster.
  + Amazon RDS tidak boleh berada di beberapa Availability Zone.
  + Amazon RDS tidak boleh memiliki replika baca.
  + Grup subnet yang dibuat di VPC target harus memiliki subnet dari Availability Zone tempat database sumber berjalan.
+ Batasan saat memigrasikan Amazon RDS ke akun AWS lain:
  + Berbagi snapshot yang dienkripsi dengan kunci layanan default untuk Amazon RDS saat ini tidak didukung.

## Arsitektur
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-architecture"></a>

**Migrasi ke VPC di akun AWS yang sama**

Diagram berikut menunjukkan alur kerja untuk memigrasikan instans Amazon RDS DB ke VPC lain di akun AWS yang sama.

![\[Alur kerja untuk memigrasikan instans Amazon RDS DB ke VPC lain di akun AWS yang sama\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/73e16544-6276-4f03-9ae2-42b8c7c20315.png)


Langkah-langkahnya terdiri dari yang berikut ini. Lihat bagian [Epik](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics) untuk instruksi terperinci.

1. Buat grup subnet DB di VPC target. Grup subnet DB adalah kumpulan subnet yang dapat Anda gunakan untuk menentukan VPC tertentu saat Anda membuat instance DB.

1. Konfigurasikan instans Amazon RDS DB di VPC sumber untuk menggunakan grup subnet DB baru.

1. Terapkan perubahan untuk memigrasikan Amazon RDS DB ke VPC target.

**Migrasi ke akun AWS yang berbeda**

Diagram berikut menunjukkan alur kerja untuk memigrasikan instans Amazon RDS DB ke akun AWS yang berbeda.

![\[Alur kerja untuk memigrasikan instans Amazon RDS DB ke akun AWS yang berbeda\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/5536e69e-3965-4ca2-8a0b-2573659b5f8f.png)


Langkah-langkahnya terdiri dari yang berikut ini. Lihat bagian [Epik](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics) untuk instruksi terperinci.

1. Akses instans Amazon RDS DB di akun AWS sumber.

1. Buat snapshot Amazon RDS di akun AWS sumber.

1. Bagikan snapshot Amazon RDS dengan akun AWS target.

1. Akses snapshot Amazon RDS di akun AWS target.

1. Buat instans Amazon RDS DB di akun AWS target.

## Alat
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-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 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.

## Praktik terbaik
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-best-practices"></a>
+ [Jika downtime database menjadi perhatian saat memigrasikan instans Amazon RDS DB ke akun lain, sebaiknya gunakan AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) Layanan ini menyediakan replikasi data, yang menyebabkan kurang dari lima menit waktu pemadaman.

## Epik
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics"></a>

### Migrasi ke VPC lain di akun AWS yang sama
<a name="migrate-to-a-different-vpc-in-the-same-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat VPC baru. | Di [konsol VPC Amazon](https://console.aws.amazon.com/vpc/), buat VPC dan subnet baru dengan properti dan rentang alamat IP yang diinginkan. Untuk petunjuk terperinci, lihat dokumentasi [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html). | Administrator | 
| Buat grup subnet DB. | Di [konsol Amazon RDS](https://console.aws.amazon.com/rds/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Untuk informasi tambahan, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.CreateDBSubnetGroup). | Administrator | 
| Ubah instans Amazon RDS DB untuk menggunakan grup subnet baru. | Di konsol Amazon RDS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Saat migrasi ke VPC target selesai, grup keamanan default VPC target ditetapkan ke instans Amazon RDS DB. Anda dapat mengonfigurasi grup keamanan baru untuk VPC tersebut dengan aturan masuk dan keluar yang diperlukan ke instans DB Anda.Atau, gunakan AWS Command Line Interface (AWS CLI) untuk melakukan migrasi ke VPC target dengan secara eksplisit memberikan ID grup keamanan VPC baru. Contoh:<pre>aws rds modify-db-instance \<br />    --db-instance-identifier testrds \<br />    --db-subnet-group-name new-vpc-subnet-group \<br />    --vpc-security-group-ids sg-idxxxx \<br />    --apply-immediately</pre> | Administrator | 

### Migrasi ke akun AWS yang berbeda
<a name="migrate-to-a-different-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup VPC dan subnet baru di akun AWS target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrator | 
| Bagikan snapshot manual database dan bagikan dengan akun target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrator | 
| Luncurkan instans Amazon RDS DB baru. | Luncurkan instans Amazon RDS DB baru dari snapshot bersama di akun AWS target. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Administrator | 

## Sumber daya terkait
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-resources"></a>
+ [Dokumentasi Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)
+ [Dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)
+ [Bagaimana cara mengubah VPC untuk instance RDS DB?](https://aws.amazon.com/premiumsupport/knowledge-center/change-vpc-rds-db-instance/) (AWS re:Artikel posting)
+ [Bagaimana cara mentransfer kepemilikan sumber daya Amazon RDS ke akun AWS yang berbeda?](https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-rds/) (AWS re:Artikel posting)
+ [Bagaimana cara membagikan snapshot Amazon RDS DB manual atau snapshot cluster Aurora DB dengan akun AWS lain?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (AWS re:Artikel posting)
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

# Migrasi cluster Amazon Redshift ke Wilayah AWS di Tiongkok
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china"></a>

*Jing Yan, Amazon Web Services*

## Ringkasan
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-summary"></a>

Pola ini menyediakan step-by-step pendekatan untuk memigrasikan cluster Amazon Redshift ke Wilayah AWS di Tiongkok dari Wilayah AWS lainnya.

Pola ini menggunakan perintah SQL untuk membuat ulang semua objek database, dan menggunakan perintah UNLOAD untuk memindahkan data ini dari Amazon Redshift ke bucket Amazon Simple Storage Service (Amazon S3) di Wilayah sumber. Data tersebut kemudian dimigrasikan ke bucket S3 di Wilayah AWS di Tiongkok. Perintah COPY digunakan untuk memuat data dari bucket S3 dan mentransfernya ke cluster Amazon Redshift target.

Amazon Redshift saat ini tidak mendukung fitur Lintas wilayah seperti penyalinan snapshot ke Wilayah AWS di Tiongkok. Pola ini menyediakan cara untuk mengatasi batasan itu. Anda juga dapat membalikkan langkah-langkah dalam pola ini untuk memigrasikan data dari Wilayah AWS di Tiongkok ke Wilayah AWS lainnya.

## Prasyarat dan batasan
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-prereqs"></a>

*Prasyarat*
+ Akun AWS aktif di Wilayah Tiongkok dan Wilayah AWS di luar Tiongkok
+ Cluster Amazon Redshift yang ada di Wilayah Tiongkok dan Wilayah AWS di luar Tiongkok

*Batasan*
+ Ini adalah migrasi offline, yang berarti cluster Amazon Redshift sumber tidak dapat melakukan operasi tulis selama migrasi.

## Arsitektur
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-architecture"></a>

**Tumpukan teknologi sumber**
+ Cluster Amazon Redshift di Wilayah AWS di luar Tiongkok

**Tumpukan teknologi target**
+ Cluster Amazon Redshift di Wilayah AWS di Tiongkok

**Arsitektur target**

![\[Migrasi data klaster Amazon Redshift di bucket S3 di Wilayah AWS untuk dimasukkan ke dalam Wilayah Tiongkok.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f7d241d9-b700-406b-95a0-3e47e7f0fa60/images/b6016e3d-76db-4176-8f99-f804da94d3f2.png)


## Alat
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-tools"></a>

**Alat**
+ [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 menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja. Anda dapat menggunakan Amazon S3 untuk menyimpan data dari Amazon Redshift, dan Anda dapat menyalin data dari bucket S3 ke Amazon Redshift.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html) — Amazon Redshift adalah layanan gudang data skala petabyte yang dikelola sepenuhnya di cloud. 
+ [psql — psql](https://www.postgresql.org/docs/8.4/app-psql.html) adalah front-end berbasis terminal untuk PostgreSQL. 

## Epik
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-epics"></a>

### Bersiaplah untuk migrasi di Wilayah sumber
<a name="prepare-for-migration-in-the-source-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan dan konfigurasikan EC2 instance di Wilayah sumber. | Masuk ke AWS Management Console dan buka konsol Amazon Elastic Compute Cloud (Amazon EC2). Wilayah Anda saat ini ditampilkan di bilah navigasi di bagian atas layar. Wilayah ini tidak bisa menjadi Wilayah AWS di Tiongkok. Dari dasbor EC2 konsol Amazon, pilih “Luncurkan instance”, lalu buat dan konfigurasikan EC2 instance. Penting: Pastikan grup EC2 keamanan Anda untuk aturan masuk mengizinkan akses tidak terbatas ke port TCP 22 dari mesin sumber Anda. Untuk petunjuk tentang cara meluncurkan dan mengonfigurasi EC2 instance, lihat bagian “Sumber daya terkait”. | DBA, Pengembang | 
| Instal alat psql. | Unduh dan instal PostgreSQL. Amazon Redshift tidak menyediakan alat psql, itu diinstal dengan PostgreSQL. Untuk informasi selengkapnya tentang menggunakan psql dan menginstal alat PostgreSQL, lihat bagian “Sumber daya terkait”. | DBA | 
| Rekam detail cluster Amazon Redshift.  | Buka konsol Amazon Redshift, dan pilih “Clusters” di panel navigasi. Kemudian pilih nama cluster Amazon Redshift dari daftar. Pada tab “Properti”, di bagian “Konfigurasi basis data”, catat “Nama basis data” dan “Port.” Buka bagian “Detail koneksi” dan rekam “Titik Akhir”, yang ada dalam format “titik akhir:<port>/<databasename>”. Penting: Pastikan grup keamanan Amazon Redshift untuk aturan masuk mengizinkan akses tidak terbatas ke port TCP 5439 dari instans Anda. EC2  | DBA | 
| Hubungkan psql ke cluster Amazon Redshift.  | <userid><databasename><port>Pada prompt perintah, tentukan informasi koneksi dengan menjalankan perintah “psql -h <endpoint>-U -d -p”. Pada prompt kata sandi psql, masukkan kata sandi untuk pengguna <userid>"”. Anda kemudian terhubung ke cluster Amazon Redshift dan dapat memasukkan perintah secara interaktif. | DBA | 
| Buat ember S3.  | Buka konsol Amazon S3, dan buat bucket S3 untuk menyimpan file yang diekspor dari Amazon Redshift. Untuk petunjuk tentang cara membuat bucket S3, lihat bagian “Sumber daya terkait”. | DBA, AWS Umum | 
| Buat kebijakan IAM yang mendukung pembongkaran data. | Buka konsol AWS Identity and Access Management (IAM) dan pilih “Kebijakan.” Pilih “Buat kebijakan,” dan pilih tab “JSON”. Salin dan tempel kebijakan IAM untuk membongkar data dari bagian “Informasi tambahan”. Penting: Ganti “s3\$1bucket\$1name” dengan nama bucket S3 Anda. Pilih “Kebijakan tinjau”, lalu masukkan nama dan deskripsi untuk kebijakan tersebut. Pilih “Buat kebijakan.” | DBA | 
| Buat peran IAM untuk memungkinkan operasi UNLOAD untuk Amazon Redshift. | Buka konsol IAM dan pilih “Peran.” Pilih “Buat peran,” dan pilih “Layanan AWS” di “Pilih jenis entitas tepercaya.” Pilih “Redshift” untuk layanan, pilih “Redshift - Customizable,” dan kemudian pilih “Next.” Pilih kebijakan “Bongkar” yang Anda buat sebelumnya, dan pilih “Berikutnya.” Masukkan “Nama peran,” dan pilih “Buat peran.” | DBA | 
| Kaitkan peran IAM dengan cluster Amazon Redshift.  | Buka konsol Amazon Redshift, dan pilih “Kelola peran IAM.” Pilih “Peran yang tersedia” dari menu tarik-turun dan pilih peran yang Anda buat sebelumnya. Pilih “Terapkan perubahan.” Ketika “Status” untuk peran IAM pada “Kelola peran IAM” ditampilkan sebagai “In-sync”, Anda dapat menjalankan perintah UNLOAD. | DBA | 
| Hentikan operasi penulisan ke cluster Amazon Redshift. | Anda harus ingat untuk menghentikan semua operasi penulisan ke cluster Amazon Redshift sumber hingga migrasi selesai. | DBA | 

### Bersiaplah untuk migrasi di Wilayah target
<a name="prepare-for-migration-in-the-target-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan dan konfigurasikan EC2 instance di Wilayah target. | Masuk ke AWS Management Console untuk Wilayah di Tiongkok, baik Beijing maupun Ningxia. Dari EC2 konsol Amazon, pilih “Luncurkan instance,” dan buat serta konfigurasikan EC2 instance. Penting: Pastikan grup EC2 keamanan Amazon Anda untuk aturan masuk mengizinkan akses tidak terbatas ke port TCP 22 dari mesin sumber Anda. Untuk petunjuk lebih lanjut tentang cara meluncurkan dan mengonfigurasi EC2 instance, lihat bagian “Sumber daya terkait”. | DBA | 
| Rekam detail cluster Amazon Redshift.  | Buka konsol Amazon Redshift, dan pilih “Clusters” di panel navigasi. Kemudian pilih nama cluster Amazon Redshift dari daftar. Pada tab “Properti”, di bagian “Konfigurasi basis data”, catat “Nama basis data” dan “Port.” Buka bagian “Detail koneksi” dan rekam “Titik Akhir”, yang ada dalam format “titik akhir:<port>/<databasename>”. Penting: Pastikan grup keamanan Amazon Redshift untuk aturan masuk mengizinkan akses tidak terbatas ke port TCP 5439 dari instans Anda. EC2  | DBA | 
| Hubungkan psql ke cluster Amazon Redshift.  | <userid><databasename><port>Pada prompt perintah, tentukan informasi koneksi dengan menjalankan perintah “psql -h <endpoint>-U -d -p”. Pada prompt kata sandi psql, masukkan kata sandi untuk pengguna <userid>"”. Anda kemudian terhubung ke cluster Amazon Redshift dan dapat memasukkan perintah secara interaktif. | DBA | 
| Buat ember S3.  | Buka konsol Amazon S3, dan buat bucket S3 untuk menyimpan file yang diekspor dari Amazon Redshift. Untuk bantuan dengan ini dan cerita lainnya, lihat bagian “Sumber daya terkait”. | DBA | 
| Buat kebijakan IAM yang mendukung penyalinan data. | Buka konsol IAM dan pilih “Kebijakan.” Pilih “Buat kebijakan,” dan pilih tab “JSON”. Salin dan tempel kebijakan IAM untuk menyalin data dari bagian “Informasi tambahan”. Penting: Ganti “s3\$1bucket\$1name” dengan nama bucket S3 Anda. Pilih “Kebijakan peninjauan”, masukkan nama dan deskripsi untuk kebijakan tersebut. Pilih “Buat kebijakan.” | DBA | 
| Buat peran IAM untuk memungkinkan operasi COPY untuk Amazon Redshift. | Buka konsol IAM dan pilih “Peran.” Pilih “Buat peran,” dan pilih “Layanan AWS” di “Pilih jenis entitas tepercaya.” Pilih “Redshift” untuk layanan, pilih “Redshift - Customizable,” dan kemudian pilih “Next.” Pilih kebijakan “Salin” yang Anda buat sebelumnya, dan pilih “Berikutnya.” Masukkan “Nama peran,” dan pilih “Buat peran.” | DBA | 
| Kaitkan peran IAM dengan cluster Amazon Redshift.  | Buka konsol Amazon Redshift, dan pilih “Kelola peran IAM.” Pilih “Peran yang tersedia” dari menu tarik-turun dan pilih peran yang Anda buat sebelumnya. Pilih “Terapkan perubahan.” Ketika “Status” untuk peran IAM pada “Kelola peran IAM” ditampilkan sebagai “In-sync”, Anda dapat menjalankan perintah “COPY”. | DBA | 

### Verifikasi data sumber dan informasi objek sebelum memulai migrasi
<a name="verify-source-data-and-object-information-before-beginning-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi baris di tabel Amazon Redshift sumber. | Gunakan skrip di bagian “Informasi tambahan” untuk memverifikasi dan mencatat jumlah baris di tabel Amazon Redshift sumber. Ingatlah untuk membagi data secara merata untuk skrip UNLOAD dan COPY. Ini akan meningkatkan efisiensi bongkar muat dan pemuatan data, karena kuantitas data yang dicakup oleh setiap skrip akan seimbang. | DBA | 
| Verifikasi jumlah objek database di cluster Amazon Redshift sumber. | Gunakan skrip di bagian “Informasi tambahan” untuk memverifikasi dan mencatat jumlah database, pengguna, skema, tabel, tampilan, dan fungsi yang ditentukan pengguna (UDFs) di kluster Amazon Redshift sumber Anda. | DBA | 
| Verifikasi hasil pernyataan SQL sebelum migrasi. | Beberapa pernyataan SQL untuk validasi data harus diurutkan menurut situasi bisnis dan data yang sebenarnya. Ini untuk memverifikasi data yang diimpor untuk memastikannya konsisten dan ditampilkan dengan benar. | DBA | 

### Migrasikan data dan objek ke Wilayah target
<a name="migrate-data-and-objects-to-the-target-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan skrip DDL Amazon Redshift.  | Hasilkan skrip Data Definition Language (DDL) dengan menggunakan tautan dari bagian “SQL statement to query Amazon Redshift” di bagian “Informasi tambahan”. Skrip DDL ini harus mencakup “buat pengguna,” “buat skema,” “hak istimewa skema untuk pengguna,” “buat tabel/tampilan,” “hak istimewa pada objek ke pengguna,” dan “buat fungsi” kueri. | DBA | 
| Buat objek di cluster Amazon Redshift untuk Wilayah target. | Jalankan skrip DDL dengan menggunakan AWS Command Line Interface (AWS CLI) Interface (AWS CLI) di Wilayah AWS di Tiongkok. Skrip ini akan membuat objek di cluster Amazon Redshift untuk Wilayah target. | DBA | 
| Bongkar sumber data cluster Amazon Redshift ke bucket S3. | Jalankan perintah UNLOAD untuk membongkar data dari cluster Amazon Redshift di Wilayah sumber ke bucket S3. | DBA, Pengembang  | 
| Transfer sumber data bucket Region S3 ke bucket Region S3 target. | Transfer data dari bucket Region S3 sumber Anda ke bucket S3 target. Karena perintah “\$1 aws s3 sync” tidak dapat digunakan, pastikan Anda menggunakan proses yang diuraikan dalam artikel “Mentransfer data Amazon S3 dari Wilayah AWS ke Wilayah AWS di Tiongkok” di bagian “Sumber daya terkait”. | Developer | 
|  Muat data ke cluster Amazon Redshift target.  | Di alat psql untuk Wilayah target Anda, jalankan perintah COPY untuk memuat data dari bucket S3 ke cluster Amazon Redshift target. | DBA | 

### Verifikasi data di wilayah sumber dan target setelah migrasi
<a name="verify-the-data-in-the-source-and-target-regions-after-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi dan bandingkan jumlah baris dalam tabel sumber dan target. | Verifikasi dan bandingkan jumlah baris tabel di wilayah sumber dan target untuk memastikan semua dimigrasikan. | DBA | 
| Verifikasi dan bandingkan jumlah objek basis data sumber dan target. | Verifikasi dan bandingkan semua objek database di daerah sumber dan target untuk memastikan semua dimigrasikan. | DBA | 
| Verifikasi dan bandingkan hasil skrip SQL di daerah sumber dan target. | Jalankan skrip SQL yang disiapkan sebelum migrasi. Verifikasi dan bandingkan data untuk memastikan bahwa hasil SQL benar. | DBA | 
| Setel ulang kata sandi semua pengguna di cluster Amazon Redshift target.  | Setelah migrasi selesai dan semua data diverifikasi, Anda harus mengatur ulang semua kata sandi pengguna untuk klaster Amazon Redshift di Wilayah AWS di Tiongkok. | DBA | 

## Sumber daya terkait
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-resources"></a>
+ [Mentransfer data Amazon S3 dari Wilayah AWS ke Wilayah AWS di Tiongkok](https://aws.amazon.com/cn/blogs/storage/transferring-amazon-s3-data-from-aws-regions-to-aws-regions-in-china/)
+ [Membuat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Menyetel ulang kata sandi pengguna Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html)
+ [dokumentasi psql](https://www.postgresql.org/docs/8.4/static/app-psql.html)

## Informasi tambahan
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-additional"></a>

*Kebijakan IAM untuk membongkar data*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*Kebijakan IAM untuk menyalin data*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*Pernyataan SQL untuk menanyakan Amazon Redshift*

```
##Database

select * from pg_database where datdba>1;

##User

select * from pg_user where usesysid>1;

##Schema

SELECT n.nspname AS "Name",

  pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"

FROM pg_catalog.pg_namespace n

WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'

ORDER BY 1;

##Table

select count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema');

select schemaname,count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema') group by schemaname order by 1;

##View

SELECT 

    n.nspname AS schemaname,c.relname AS viewname,pg_catalog.pg_get_userbyid(c.relowner) as "Owner"

FROM 

    pg_catalog.pg_class AS c

INNER JOIN

    pg_catalog.pg_namespace AS n

    ON c.relnamespace = n.oid

WHERE relkind = 'v' and n.nspname not in ('information_schema','pg_catalog');

##UDF

SELECT 

   n.nspname AS schemaname,

   p.proname AS proname,

   pg_catalog.pg_get_userbyid(p.proowner) as "Owner"

FROM pg_proc p

LEFT JOIN pg_namespace n on n.oid = p.pronamespace

WHERE p.proowner != 1;
```

*Skrip SQL untuk menghasilkan pernyataan DDL*
+ [Get\$1schema\$1priv\$1by\$1user skrip](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_get_schema_priv_by_user.sql)
+ [Skrip Hasilkan\$1TBL\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_tbl_ddl.sql)
+ [Hasilkan\$1View\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_view_ddl.sql)
+ [Generate\$1User\$1Grant\$1Revoke\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_user_grant_revoke_ddl.sql)
+ [Hasilkan\$1UDF\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_udf_ddl.sql)

# Transportasi database PostgreSQL antara dua instans Amazon RDS DB menggunakan pg\$1transport
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport"></a>

*Raunak Rishabh dan Jitender Kumar, Amazon Web Services*

## Ringkasan
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

**Pola ini menjelaskan langkah-langkah untuk memigrasikan database yang sangat besar antara dua Amazon Relational Database Service (Amazon RDS) untuk instance PostgreSQL DB dengan menggunakan ekstensi pg\$1transport.** Ekstensi ini memberikan mekanisme transportasi fisik untuk memindahkan setiap basis data. Dengan streaming file database dengan pemrosesan minimal, ini menyediakan metode yang sangat cepat untuk memigrasikan database besar antara instans DB dengan waktu henti minimal. Ekstensi ini menggunakan model tarik di mana instans DB target mengimpor database dari instance DB sumber.

## Prasyarat dan batasan
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Prasyarat**
+ Kedua instans DB harus menjalankan versi utama PostgreSQL yang sama.
+ Database tidak boleh ada pada target. Jika tidak, transportasi gagal.
+ Tidak ada ekstensi selain **pg\$1transport** yang harus diaktifkan di database sumber.
+ Semua objek database sumber harus dalam default **pg\$1default tablespace**.
+ Grup keamanan instans DB sumber harus mengizinkan lalu lintas dari instans DB target.
+ Instal klien PostgreSQL [seperti](https://www.postgresql.org/docs/11/app-psql.html) psql [PgAdmin](https://www.pgadmin.org/)atau untuk bekerja dengan instans Amazon RDS PostgreSQL DB. Anda dapat menginstal klien baik di sistem lokal Anda atau menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2). Dalam pola ini, kita menggunakan psql pada sebuah EC2 instance.

**Batasan**
+ Anda tidak dapat mengangkut database antara berbagai versi utama Amazon RDS for PostgreSQL.
+ Hak akses dan kepemilikan dari database sumber tidak ditransfer ke database target.
+ Anda tidak dapat mengangkut database pada replika baca atau pada instance induk dari replika baca.
+ Anda tidak dapat menggunakan tipe data **reg** dalam tabel database apa pun yang Anda rencanakan untuk diangkut dengan metode ini.
+ Anda dapat menjalankan hingga 32 total transportasi (termasuk impor dan ekspor) secara bersamaan pada instans DB.
+ Anda tidak dapat mengganti nama atau include/exclude tabel. Semuanya bermigrasi apa adanya.

**Perhatian**
+ Buat cadangan sebelum menghapus ekstensi, karena menghapus ekstensi juga menghapus objek dependen dan beberapa data yang penting untuk pengoperasian database.
+ Pertimbangkan kelas instance dan proses yang berjalan pada database lain pada instance sumber saat Anda menentukan jumlah pekerja dan `work_mem` nilai untuk **pg\$1transport**.
+ Ketika transport dimulai, semua koneksi pada database sumber berakhir dan database dimasukkan ke dalam mode read-only.

**catatan**  
Ketika transport berjalan pada satu database, itu tidak mempengaruhi database lain di server yang sama. ****

**Versi produk**
+ Amazon RDS untuk PostgreSQL 10.10 dan yang lebih baru, dan Amazon RDS for PostgreSQL 11.5 dan yang lebih baru. Untuk informasi versi terbaru, lihat [Mengangkut Database PostgreSQL Antara Instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) dalam dokumentasi Amazon RDS.

## Arsitektur
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Mengangkut database PostgreSQL antara instans Amazon RDS DB\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Alat
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport** menyediakan mekanisme transportasi fisik untuk memindahkan setiap database. Dengan streaming file database dengan pemrosesan minimal, transportasi fisik memindahkan data jauh lebih cepat daripada proses dump dan load tradisional dan membutuhkan waktu henti minimal. Basis data PostgreSQL yang dapat diangkut menggunakan model tarik yaitu instans DB tujuan mengimpor basis data dari instans DB sumber. Anda menginstal ekstensi ini pada instans DB Anda ketika Anda menyiapkan sumber dan lingkungan target, seperti yang dijelaskan dalam pola ini.
+ [psql](https://www.postgresql.org/docs/11/app-psql.html) memungkinkan Anda untuk terhubung ke, dan bekerja dengan, instans PostgreSQL DB Anda. [Untuk menginstal **psql** pada sistem Anda, lihat halaman PostgreSQL Downloads.](https://www.postgresql.org/download/)

## Epik
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Buat grup parameter target
<a name="create-the-target-parameter-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup parameter untuk sistem target. | Tentukan nama grup yang mengidentifikasinya sebagai kelompok parameter target; misalnya,`pgtarget-param-group`. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ubah parameter untuk grup parameter. | Atur parameter berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Untuk informasi selengkapnya tentang parameter ini, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Buat grup parameter sumber
<a name="create-the-source-parameter-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup parameter untuk sistem sumber. | Tentukan nama grup yang mengidentifikasinya sebagai grup parameter sumber; misalnya,`pgsource-param-group`. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ubah parameter untuk grup parameter. | Atur parameter berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Untuk informasi selengkapnya tentang parameter ini, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS for PostgreSQL DB baru untuk mengangkut database sumber Anda. | Tentukan kelas instance dan versi PostgreSQL berdasarkan kebutuhan bisnis Anda. | DBA, Administrator sistem, Arsitek basis data | 
| Ubah grup keamanan target untuk memungkinkan koneksi pada port instans DB dari EC2 instance. | Secara default, port untuk instance PostgreSQL adalah 5432. Jika Anda menggunakan port lain, koneksi ke port itu harus terbuka untuk EC2 instance tersebut. | DBA, Administrator sistem | 
| Ubah instance, dan tetapkan grup parameter target baru. | Misalnya, `pgtarget-param-group`. | DBA | 
| Mulai ulang instans DB Amazon RDS target.  | Parameter `shared_preload_libraries` dan `max_worker_processes` parameter statis dan memerlukan reboot dari instance. | DBA, Administrator sistem | 
| Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Buat ekstensi pg\$1transport. | Jalankan kueri berikut sebagai pengguna dengan `rds_superuser` peran:<pre>create extension pg_transport;</pre> | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah grup keamanan sumber untuk mengizinkan koneksi pada port instans DB dari instans Amazon dan menargetkan EC2 instans DB | Secara default, port untuk instance PostgreSQL adalah 5432. Jika Anda menggunakan port lain, koneksi ke port itu harus terbuka untuk EC2 instance tersebut. | DBA, Administrator sistem | 
| Ubah instance dan tetapkan grup parameter sumber baru. | Misalnya, `pgsource-param-group`. | DBA | 
| Mulai ulang instans DB Amazon RDS sumber.  | Parameter `shared_preload_libraries` dan `max_worker_processes` parameter statis dan memerlukan reboot dari instance. | DBA | 
| Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Buat ekstensi pg\$1transport dan hapus semua ekstensi lain dari database yang akan diangkut. | Transport akan gagal jika ada ekstensi selain **pg\$1transport** yang diinstal pada database sumber. Perintah ini harus dijalankan oleh pengguna dengan `rds_superuser` peran. | DBA | 

### Lakukan transportasi
<a name="perform-the-transport"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan lari kering. | Gunakan `transport.import_from_server` fungsi untuk melakukan dry run terlebih dahulu:<pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', 'true');</pre>Parameter terakhir dari fungsi ini (diatur ke`true`) mendefinisikan dry run. Fungsi ini menampilkan kesalahan apa pun yang akan Anda lihat ketika Anda menjalankan transportasi utama. Selesaikan kesalahan sebelum Anda menjalankan transportasi utama.  | DBA | 
| Jika dry run berhasil, memulai transportasi database. | Jalankan `transport.import_from_server` fungsi untuk melakukan transportasi. Ini terhubung ke sumber dan mengimpor data. <pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);</pre>Parameter terakhir dari fungsi ini (set to`false`) menunjukkan bahwa ini bukan dry run. | DBA | 
| Lakukan langkah pasca-transportasi. | Setelah transportasi database selesai:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Sumber daya terkait
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Dokumentasi Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [dokumentasi pg\$1transport](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migrasi database menggunakan RDS PostgreSQL Transportable Databases (posting blog)](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/)
+ [Unduhan PostgreSQL](https://www.postgresql.org/download/linux/redhat/)
+ [utilitas psql](https://www.postgresql.org/docs/11/app-psql.html)
+ [Membuat Grup Parameter DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Ubah Parameter dalam Grup Parameter DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [Unduhan PostgreSQL](https://www.postgresql.org/download/)

# Platform Ulang
<a name="migration-replatform-pattern-list"></a>

**Topics**
+ [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)
+ [Migrasikan nilai Oracle CLOB ke baris individual di PostgreSQL di AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.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 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 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 sertifikat SSL Windows ke Application Load Balancer menggunakan ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.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)
+ [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 PeopleSoft database Oracle ke AWS dengan menggunakan AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Memigrasikan database MySQL lokal ke Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.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)
+ [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 dari Couchbase Server ke Couchbase Capella di AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.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)
+ [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)
+ [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)
+ [Bermigrasi dari Oracle WebLogic ke Apache Tomcat (ToMee) di Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.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)
+ [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 Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.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)
+ [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)
+ [Memigrasikan database PostgreSQL lokal ke Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.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)
+ [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)
+ [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)
+ [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 Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.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 aplikasi Java lokal ke AWS menggunakan AWS App2Container](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migrasi sistem file bersama dalam migrasi AWS besar](migrate-shared-file-systems-in-an-aws-large-migration.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)
+ [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)

# Ekspor database Microsoft SQL Server ke Amazon S3 dengan menggunakan AWS DMS
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms"></a>

*Sweta Krishna, Amazon Web Services*

## Ringkasan
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-summary"></a>

Organizations sering perlu menyalin database ke Amazon Simple Storage Service (Amazon S3) untuk migrasi database, backup dan restore, pengarsipan data, dan analisis data. Pola ini menjelaskan bagaimana Anda dapat mengekspor database Microsoft SQL Server ke Amazon S3. Basis data sumber dapat di-host di tempat atau di Amazon Elastic Compute Cloud (Amazon EC2) atau Amazon Relational Database Service (Amazon RDS) untuk Microsoft SQL Server di Amazon Web Services (AWS) Cloud.

Data diekspor menggunakan AWS Database Migration Service (AWS DMS). Secara default, AWS DMS menulis data full load dan change data capture (CDC) dalam format comma-separated value (.csv). Untuk penyimpanan yang lebih ringkas dan opsi kueri yang lebih cepat, pola ini menggunakan opsi format Apache Parquet (.parquet).

## Prasyarat dan batasan
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Peran AWS Identity and Access Management (IAM) untuk akun dengan akses tulis, hapus, dan tag ke bucket S3 target, dan AWS DMS (`dms.amazonaws.com`) ditambahkan sebagai entitas tepercaya ke peran IAM ini
+ Database Microsoft SQL Server lokal (atau Microsoft SQL Server pada EC2 instans atau database Amazon RDS for SQL Server)
+ Konektivitas jaringan antara virtual private cloud (VPC) di AWS dan jaringan lokal yang disediakan oleh AWS Direct Connect atau jaringan pribadi virtual (VPN)

**Batasan**
+ Bucket S3 berkemampuan VPC (gateway VPC) saat ini tidak didukung dalam versi AWS DMS lebih awal dari 3.4.7.
+ Perubahan pada struktur tabel sumber selama beban penuh tidak didukung.
+ Mode AWS DMS full large binary object (LOB) tidak didukung.

**Versi produk**
+ Microsoft SQL Server versi 2005 atau yang lebih baru untuk edisi Enterprise, Standard, Workgroup, dan Developer.
+ Support untuk Microsoft SQL Server versi 2019 sebagai sumber tersedia di AWS DMS versi 3.3.2 dan yang lebih baru.

## Arsitektur
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal (atau Microsoft SQL Server pada EC2 instans atau database Amazon RDS for SQL Server)**** 

**Tumpukan teknologi target**
+ AWS Direct Connect
+ AWS DMS
+ Amazon S3

**Arsitektur target**

![\[Data bermigrasi dari database SQL Server melalui Direct Connect ke AWS DMS dan kemudian ke bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/75b8b20f-a1a8-4633-9816-1b370cc7e92c/images/85bd433c-4a0a-4825-8661-e53f53265191.png)


## Alat
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-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.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) menautkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke layanan AWS publik sambil melewati penyedia layanan internet di jalur jaringan Anda.
+ [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.

## Epik
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi database. | Validasi versi basis data sumber dan pastikan itu didukung oleh AWS DMS. Untuk informasi tentang versi database SQL Server yang didukung, lihat [Menggunakan database Microsoft SQL Server sebagai sumber AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) DMS. | DBA | 
| Buat VPC dan grup keamanan. | Di akun AWS Anda, buat VPC dan grup keamanan. Untuk informasi selengkapnya, lihat [dokumentasi Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Administrator Sistem | 
| Buat pengguna untuk tugas AWS DMS. | Buat pengguna AWS DMS di database sumber dan berikan izin BACA. Pengguna ini akan digunakan oleh AWS DMS. | DBA | 
| Uji konektivitas DB. | Uji konektivitas ke instans SQL Server DB dari pengguna AWS DMS. | DBA | 
| Buat ember S3. | Buat bucket S3 target. Bucket ini akan menyimpan data tabel yang dimigrasi. | Administrator sistem | 
| Buat kebijakan dan peran IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.html) | Administrator sistem | 

### Migrasi data dengan menggunakan AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans replikasi AWS DMS. | Masuk ke AWS Management Console, dan buka konsol AWS DMS. Di panel navigasi, pilih Instance **replikasi, **Buat** instance** replikasi. Untuk petunjuk, lihat [langkah 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.ReplicationInstance) dalam dokumentasi AWS DMS. | DBA | 
| Buat titik akhir sumber dan target. | Buat titik akhir sumber dan target. Uji koneksi dari instance replikasi ke titik akhir sumber dan target. Untuk petunjuk, lihat [langkah 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Endpoints) dalam dokumentasi AWS DMS. | DBA | 
| Buat tugas replikasi. | Buat tugas replikasi, dan pilih full load atau full load dengan change data capture (CDC) untuk memigrasikan data dari SQL Server ke bucket S3. Untuk petunjuk, lihat [langkah 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks) dalam dokumentasi AWS DMS. | DBA | 
| Mulai replikasi data. | Mulai tugas replikasi, dan pantau log untuk kesalahan apa pun. | DBA | 

### Validasi data
<a name="validate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi data yang dimigrasi. | Di konsol, navigasikan ke bucket S3 target Anda. Buka subfolder yang memiliki nama yang sama dengan database sumber. Konfirmasikan bahwa folder berisi semua tabel yang dimigrasi dari database sumber. | DBA | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan dan hapus sumber daya AWS sementara. | Matikan sumber daya AWS sementara yang Anda buat untuk migrasi data, seperti instans replikasi AWS DMS, dan hapus setelah Anda memvalidasi ekspor. | DBA | 

## Sumber daya terkait
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-resources"></a>
+ [Panduan Pengguna AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Menggunakan database Microsoft SQL Server sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Menggunakan Amazon S3 sebagai target AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html)
+ [Menggunakan bucket S3 sebagai target AWS DMS (AWS](https://repost.aws/knowledge-center/s3-bucket-dms-target) re:post)

## Informasi tambahan
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-additional"></a>

Gunakan kode berikut untuk menambahkan kebijakan IAM dengan izin bucket S3 untuk peran AWS DMS. Ganti `bucketname` dengan nama bucket Anda.

```
{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:DeleteObject"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         },
         {
             "Effect": "Allow",
             "Action": [
                 "s3:ListBucket"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         }
     ]
 }
```

# Migrasikan nilai Oracle CLOB ke baris individual di PostgreSQL di AWS
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws"></a>

*Sai Krishna Namburu dan Sindhusha Paturu, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-summary"></a>

Pola ini menjelaskan cara membagi nilai objek besar karakter Oracle (CLOB) menjadi baris individual di Amazon Aurora PostgreSQL Compatible Edition dan Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL. PostgreSQL tidak mendukung tipe data CLOB.

Tabel dengan partisi interval diidentifikasi dalam database Oracle sumber, dan nama tabel, jenis partisi, interval partisi, dan metadata lainnya ditangkap dan dimuat ke dalam database target. Anda dapat memuat data CLOB yang berukuran kurang dari 1 GB ke dalam tabel target sebagai teks menggunakan AWS Database Migration Service (AWS DMS), atau Anda dapat mengekspor data dalam format CSV, memuatnya ke bucket Amazon Simple Storage Service (Amazon S3), dan memigrasikannya ke database PostgreSQL target Anda.

Setelah migrasi, Anda dapat menggunakan kode PostgreSQL kustom yang disediakan dengan pola ini untuk membagi data CLOB menjadi baris individual berdasarkan pengidentifikasi `CHR(10)` karakter baris baru () dan mengisi tabel target.**** 

## Prasyarat dan batasan
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-prereqs"></a>

**Prasyarat**
+ Sebuah tabel database Oracle yang memiliki partisi interval dan catatan dengan tipe data CLOB.
+ Aurora PostgreSQL kompatibel atau Amazon RDS untuk database PostgreSQL yang memiliki struktur tabel yang mirip dengan tabel sumber (kolom dan tipe data yang sama).

**Batasan**
+ Nilai CLOB tidak boleh melebihi 1 GB.
+ Setiap baris dalam tabel target harus memiliki pengidentifikasi karakter baris baru.

**Versi produk**
+ Oracle 12c
+ Aurora Postgres 11.6

## Arsitektur
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-architecture"></a>

Diagram berikut menunjukkan tabel Oracle sumber dengan data CLOB, dan tabel PostgreSQL setara di Aurora PostgreSQL versi kompatibel 11.6.

![\[Sumber tabel CLOB dan tabel PostgreSQL target yang setara.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/55806ee7-6a9f-4058-9a47-a07de68223ca/images/79b9d4b9-6f20-4db5-8ca8-2a599769a498.png)


## Alat
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-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 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 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 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.

**Alat lainnya**

Anda dapat menggunakan alat klien berikut untuk menghubungkan, mengakses, dan mengelola Aurora PostgreSQL yang kompatibel dan Amazon RDS for PostgreSQL database. (Alat ini tidak digunakan dalam pola ini.)
+ [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 open-source untuk pengembang dan administrator database. Anda dapat menggunakan alat ini untuk memanipulasi, memantau, menganalisis, mengelola, dan memigrasi data Anda.

## Praktik terbaik
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-best-practices"></a>

Untuk praktik terbaik untuk memigrasikan database Anda dari Oracle ke PostgreSQL, lihat PostgreSQL PostgreSQL AWS Praktik [terbaik untuk memigrasikan database Oracle ke Amazon RDS PostgreSQL atau Amazon Aurora PostgreSQL: Proses migrasi](https://aws.amazon.com/blogs/database/best-practices-for-migrating-an-oracle-database-to-amazon-rds-postgresql-or-amazon-aurora-postgresql-migration-process-and-infrastructure-considerations/) dan pertimbangan infrastruktur.

Untuk praktik terbaik untuk mengonfigurasi tugas AWS DMS untuk memigrasikan objek biner besar, lihat [Memigrasi objek biner besar () LOBs dalam](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html#CHAP_BestPractices.LOBS) dokumentasi AWS DMS.

## Epik
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-epics"></a>

### Identifikasi data CLOB
<a name="identify-the-clob-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Analisis data CLOB. | Dalam database Oracle sumber, analisis data CLOB untuk melihat apakah itu berisi header kolom, sehingga Anda dapat menentukan metode untuk memuat data ke dalam tabel target. Untuk menganalisis data input, gunakan kueri berikut.`SELECT * FROM clobdata_or;  ` | Developer | 
| Muat data CLOB ke database target. | Migrasikan tabel yang memiliki data CLOB ke tabel interim (staging) di database target Aurora atau Amazon RDS. Anda dapat menggunakan AWS DMS atau mengunggah data sebagai file CSV ke bucket Amazon S3.Untuk informasi tentang penggunaan AWS DMS untuk tugas ini, lihat [Menggunakan database Oracle sebagai sumber dan Menggunakan database](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) [PostgreSQL sebagai target dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) AWS DMS.Untuk informasi tentang penggunaan Amazon S3 untuk tugas ini, lihat [Menggunakan Amazon S3 sebagai](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html) target dalam dokumentasi AWS DMS. | Insinyur migrasi, DBA | 
| Validasi tabel PostgreSQL target. | Validasi data target, termasuk header, terhadap data sumber dengan menggunakan kueri berikut dalam database target.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre>Bandingkan hasil dengan hasil kueri dari database sumber (dari langkah pertama). | Developer | 
| Pisahkan data CLOB menjadi baris terpisah. | Jalankan kode PostgreSQL kustom yang disediakan di bagian Informasi [tambahan](#migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional) untuk membagi data CLOB dan memasukkannya ke dalam baris terpisah dalam tabel PostgreSQL target. | Developer | 

### Validasi data.
<a name="validate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi data dalam tabel target. | Validasi data yang dimasukkan ke dalam tabel target dengan menggunakan kueri berikut.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre> | Developer | 

## Sumber daya terkait
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-resources"></a>
+ [Jenis data CLOB](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021) (dokumentasi Oracle)
+ [Tipe data](https://www.postgresql.org/docs/11/datatype.html) (dokumentasi PostgreSQL)

## Informasi tambahan
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional"></a>

**Fungsi PostgreSQL untuk memisahkan data CLOB**

```
do
$$
declare
totalstr varchar;
str1 varchar;
str2 varchar;
pos1 integer := 1;
pos2 integer ;
len integer;


begin
        select rawdata||chr(10) into totalstr from clobdata_pg;
        len :=  length(totalstr) ;
        raise notice 'Total length : %',len;
        raise notice 'totalstr : %',totalstr;
        raise notice 'Before while loop';


        while pos1 < len  loop


                  select position (chr(10) in totalstr) into pos2;
                 raise notice '1st position of new line : %',pos2;


                str1 := substring (totalstr,pos1,pos2-1);
                raise notice 'str1 : %',str1;


                   insert into clobdatatarget(data) values (str1);
                   totalstr := substring(totalstr,pos2+1,len);
                   raise notice 'new totalstr :%',totalstr;
                len :=  length(totalstr) ;


        end loop;
end
$$
LANGUAGE 'plpgsql' ;
```

**Contoh input dan output**

Anda dapat menggunakan contoh berikut untuk mencoba kode PostgreSQL sebelum memigrasikan data.

Buat database Oracle dengan tiga baris input.

```
CREATE TABLE clobdata_or (
id INTEGER GENERATED ALWAYS AS IDENTITY,
rawdata clob  );


insert into clobdata_or(rawdata) values (to_clob('test line 1') || chr(10) || to_clob('test line 2') || chr(10) || to_clob('test line 3') || chr(10));
COMMIT;


SELECT * FROM clobdata_or;
```

Ini menampilkan output berikut.


|  |  | 
| --- |--- |
| id | data mentah | 
| 1 | garis uji 1 garis uji 2 garis uji 3 | 

Muat data sumber ke dalam tabel pementasan PostgreSQL () untuk diproses. `clobdata_pg`

```
SELECT * FROM clobdata_pg;

CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR );

<Run the code in the additional information section.>

SELECT * FROM clobdatatarget;
```

Ini menampilkan output berikut.


|  |  | 
| --- |--- |
| id1 | data | 
| 1 | garis uji 1 | 
| 2 | garis uji 2 | 
| 3 | garis uji 3 | 

# Migrasi Oracle ke PeopleSoft Amazon RDS Kustom
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom"></a>

*Gaurav Gupta, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) adalah solusi perencanaan sumber daya perusahaan (ERP) untuk proses di seluruh perusahaan. PeopleSoft memiliki arsitektur tiga tingkat: klien, aplikasi, dan database. PeopleSoft dapat dijalankan di [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)). Sekarang, Anda juga dapat menjalankan PeopleSoft [Amazon RDS Custom](https://aws.amazon.com/rds/custom/), yang menyediakan akses ke sistem operasi yang mendasarinya.

[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. Saat memigrasikan database Oracle ke Amazon RDS Custom, Amazon Web Services (AWS) dapat mengelola tugas pencadangan dan ketersediaan tinggi, sementara Anda dapat fokus pada pemeliharaan PeopleSoft aplikasi dan fungsionalitas Anda. Untuk faktor kunci yang perlu dipertimbangkan untuk 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 memigrasikan PeopleSoft database di Amazon Elastic Compute Cloud (Amazon EC2) ke Amazon RDS Custom dengan menggunakan cadangan Oracle Recovery Manager (RMAN). Ini menggunakan sistem file bersama [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) antara instans EC2 dan Amazon RDS Custom, meskipun Anda juga dapat menggunakan Amazon FSx atau drive bersama apa pun. Pola ini menggunakan cadangan penuh RMAN (kadang-kadang disebut sebagai cadangan level 0). 

## Prasyarat dan batasan
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-prereqs"></a>

**Prasyarat**
+ Database sumber Oracle versi 19C yang berjalan di Amazon EC2 dengan Oracle Linux 7, Oracle Linux 8, Red Hat Enterprise Linux (RHEL) 7, atau RHEL 8. Dalam contoh untuk pola ini, nama database sumber adalah`FSDMO92`, tetapi ini bukan persyaratan.
**catatan**  
Anda juga dapat menggunakan pola ini dengan database sumber Oracle lokal. Anda harus memiliki konektivitas jaringan yang sesuai antara jaringan lokal dan virtual private cloud (VPC).
+ Sebuah contoh demo PeopleSoft 9.2.
+ Sebuah 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.

**Batasan**

Pola ini tidak mendukung konfigurasi berikut:
+ Mengatur `ARCHIVE_LAG_TARGET` parameter database ke nilai di luar rentang 60-7200
+ Menonaktifkan mode log instans DB () `NOARCHIVELOG`
+ Mematikan atribut yang dioptimalkan Amazon Elastic Block Store (Amazon EBS) dari instans EC2
+ Memodifikasi volume EBS asli yang dilampirkan ke instans EC2
+ Menambahkan volume EBS baru atau mengubah jenis volume dari gp2 ke gp3
+ Mengubah format ekstensi untuk `LOG_ARCHIVE_FORMAT` parameter (membutuhkan`*.arc`)
+ Multiplexing atau mengubah lokasi dan nama file kontrol (harus) `/rdsdbdata/db/*DBNAME*/controlfile/control-01.ctl`

Untuk informasi tambahan tentang konfigurasi ini dan konfigurasi lain yang tidak didukung, lihat dokumentasi [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-troubleshooting.html#custom-troubleshooting.fix-unsupported).

**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="migrate-oracle-peoplesoft-to-amazon-rds-custom-architecture"></a>

**Tumpukan teknologi target**
+ Penyeimbang Beban Aplikasi
+ Amazon EFS
+ Amazon RDS Custom for Oracle
+ AWS Secrets Manager
+ Amazon Simple Storage Service (Amazon S3)

**Arsitektur target**

Diagram arsitektur berikut mewakili PeopleSoft sistem yang berjalan di [Availability Zone](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) tunggal di AWS. Tingkat aplikasi diakses melalui [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). Baik aplikasi maupun database berada dalam subnet pribadi, dan instans database Amazon RDS Custom dan Amazon EC2 menggunakan sistem file bersama Amazon EFS untuk menyimpan dan mengakses file cadangan RMAN. Amazon S3 digunakan untuk membuat mesin RDS Oracle khusus dan untuk menyimpan metadata redo log.

![\[Server web, server aplikasi, Amazon RDS Custom, instans EC2 DB, dan Amazon EFS di subnet pribadi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bd423dfe-f3c8-42d9-ac84-bf3d093c52bc/images/0e9a6431-e6c7-4047-ae6c-85311938041f.jpeg)


## Alat
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-tools"></a>

**Alat**

*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-tugas administrasi database, seperti backup dan ketersediaan tinggi. 
+ [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 AWS Cloud. Pola ini menggunakan sistem file bersama Amazon EFS untuk menyimpan dan mengakses file cadangan RMAN.
+ [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 password pengguna database dari Secrets Manager untuk membuat `RDSADMIN` dan `ADMIN` pengguna dan untuk mengubah `sys` dan `system` password.
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh instans, container, dan alamat IP Amazon Elastic Compute Cloud (Amazon EC2) di satu atau beberapa Availability Zone. Pola ini menggunakan Application Load Balancer.

*Alat-alat lainnya*
+ Oracle Recovery Manager (RMAN) menyediakan dukungan cadangan dan pemulihan untuk database Oracle. Pola ini menggunakan RMAN untuk melakukan pencadangan panas dari database Oracle sumber di Amazon EC2 yang dipulihkan di Amazon RDS Custom.

## Praktik terbaik
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-best-practices"></a>
+ Untuk parameter inisialisasi database, sesuaikan pfile standar yang disediakan oleh instans Amazon RDS Custom DB PeopleSoft alih-alih menggunakan spfile dari database sumber Oracle. Ini karena spasi putih dan komentar menyebabkan masalah saat membuat replika baca di Amazon RDS Custom. [Untuk informasi selengkapnya tentang parameter inisialisasi database, lihat Oracle Support Note 1100831.1 (memerlukan akun Oracle Support).](https://support.oracle.com/portal/)
+ Amazon RDS Custom menggunakan manajemen memori otomatis Oracle secara default. Jika Anda ingin menggunakan kernel Hugemem, Anda dapat mengonfigurasi Amazon RDS Custom untuk menggunakan manajemen memori bersama otomatis sebagai gantinya.
+ Biarkan `memory_max_target` parameter diaktifkan secara default. Kerangka kerja menggunakan ini di latar belakang untuk membuat replika baca.
+ Aktifkan Oracle Flashback Database. Fitur ini berguna saat mengembalikan siaga dalam skenario pengujian failover (bukan switchover).

## Epik
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-epics"></a>

### Siapkan instans DB dan sistem file
<a name="set-up-the-db-instance-and-file-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance DB. | Di konsol Amazon RDS, buat Amazon RDS Custom untuk instans Oracle DB dengan nama DB yang disebut FSDMO92 (atau nama database sumber Anda).Untuk petunjuknya, lihat [Bekerja dengan Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html) dalam dokumentasi AWS dan [Amazon RDS Custom for Oracle — New Control Capabilities in Database Environment](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) postingan blog. Ini memastikan bahwa nama database diatur ke nama yang sama dengan database sumber. (Jika tetap kosong, instance EC2 dan nama database akan disetel ke`ORCL`.) | DBA | 

### Lakukan pencadangan penuh RMAN dari basis data Amazon EC2 sumber
<a name="perform-an-rman-full-backup-of-the-source-amazon-ec2-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat skrip cadangan. | Buat skrip cadangan RMAN untuk mencadangkan database ke sistem file Amazon EFS yang Anda pasang (`/efs`dalam contoh berikut). Anda dapat menggunakan kode contoh atau menjalankan salah satu skrip RMAN yang ada.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/u01/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />SQL "ALTER SYSTEM SWITCH LOGFILE";<br />SQL "ALTER SESSION SET NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"";<br />RUN<br />{<br />  ALLOCATE CHANNEL ch11 TYPE DISK MAXPIECESIZE 5G;<br />  ALLOCATE CHANNEL ch12 TYPE DISK MAXPIECESIZE 5G;<br />  BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_FULL' ;<br />  SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";<br />  BACKUP FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_ARCHIVE' ARCHIVELOG ALL DELETE ALL INPUT ;<br />  BACKUP CURRENT CONTROLFILE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_CONTROL';<br />}<br />EXIT;<br />EOF<br />  </pre> | DBA | 
| Jalankan skrip cadangan. | Untuk menjalankan skrip cadangan RMAN, masuk sebagai Oracle Home User, dan jalankan skrip.<pre>$  chmod a+x rman_backup.sh<br />$ ./rman_backup.sh &</pre> | DBA | 
| Periksa kesalahan dan catat nama file cadangan. | Periksa file log RMAN untuk kesalahan. Jika semuanya terlihat baik-baik saja, daftarkan cadangan file kontrol dengan menjalankan perintah berikut.<pre>RMAN> list backup of controlfile;<br /><br />using target database control file instead of recovery catalog<br /></pre>Perhatikan nama file output.<pre>List of Backup Sets<br />===================<br /><br />BS Key  Type LV Size       Device Type Elapsed Time Completion Time<br />------- ---- -- ---------- ----------- ------------ ---------------<br />12      Full    21.58M     DISK        00:00:01     13-JUL-22<br />        BP Key: 12   Status: AVAILABLE  Compressed: NO  Tag: TAG20220713T150155<br />        Piece Name: /efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL<br /> Control File Included: Ckp SCN: 16559159985898   Ckp time: 13-JUL-22<br /></pre>Anda akan menggunakan file kontrol cadangan `/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL` saat memulihkan database di Amazon RDS Custom. | DBA | 

### Matikan tingkat aplikasi sumber
<a name="shut-down-the-source-application-tier"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan aplikasi.  | Untuk mematikan tingkat aplikasi sumber, gunakan `psadmin` utilitas atau utilitas baris `psadmin` perintah.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA, Administrator PeopleSoft  | 

### Konfigurasikan basis data Kustom Amazon RDS target
<a name="configure-the-target-amazon-rds-custom-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal paket nfs-utils rpm. | Untuk menginstal `nfs-utils rpm` paket, jalankan perintah berikut.<pre>$ yum install -y nfs-utils<br /></pre> | DBA | 
| Pasang penyimpanan EFS. | Dapatkan perintah pemasangan Amazon EFS dari halaman konsol Amazon EFS. Pasang sistem file EFS di instans Amazon RDS dengan menggunakan klien Network File System (NFS).<pre>sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs<br />sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs</pre> | DBA | 

### Jatuhkan database starter dan buat direktori untuk menyimpan file database
<a name="drop-the-starter-database-and-create-the-directories-to-store-the-database-files"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jeda mode otomatisasi. | Anda harus menjeda [mode otomatisasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing) pada instans Amazon RDS Custom DB sebelum melanjutkan ke langkah berikutnya, untuk memastikan bahwa otomatisasi tidak mengganggu aktivitas pemulihan RMAN.Anda dapat menjeda otomatisasi dengan menggunakan konsol AWS atau perintah AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) (pastikan Anda telah mengonfigurasi [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) terlebih dahulu).<pre>aws rds modify-db-instance \<br />--db-instance-identifier peoplesoft-fscm-92 \<br />--automation-mode all-paused \<br />--resume-full-automation-mode-minute 360 \<br />--region eu-west-1<br /></pre>Saat Anda menentukan durasi jeda, pastikan Anda menyisakan cukup waktu untuk pemulihan RMAN. Ini tergantung pada ukuran database sumber, jadi modifikasi nilai 360 yang sesuai.Juga, pastikan bahwa total waktu otomatisasi yang dijeda tidak tumpang tindih dengan jendela cadangan atau pemeliharaan database. | DBA | 
| Membuat dan memodifikasi file parameter untuk PeopleSoft | Untuk membuat dan memodifikasi pfile PeopleSoft, gunakan pfile standar yang dibuat dengan instans Amazon RDS Custom DB. Tambahkan parameter yang Anda butuhkan PeopleSoft.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Jatuhkan basis data starter. | Untuk menghapus database Amazon RDS Custom yang ada, gunakan kode berikut.<pre>$ sqlplus / as sysdba<br />SQL> shutdown immediate;<br />SQL> startup mount exclusive restrict;<br />SQL> drop database;<br />SQL> exit</pre> |  | 
| Kembalikan database Amazon RDS Custom dari cadangan. | Kembalikan database dengan menggunakan skrip berikut. Skrip pertama-tama akan mengembalikan file kontrol dan kemudian mengembalikan seluruh database dari bagian cadangan yang disimpan di mount EFS.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/rdsdbdata/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />restore controlfile from "/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL";<br />alter database mount;<br />run<br />{<br />set newname for database to '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />SET NEWNAME FOR TEMPFILE 1 TO '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />RESTORE DATABASE;<br />SWITCH DATAFILE ALL;<br />SWITCH TEMPFILE ALL;<br />RECOVER DATABASE;<br />}<br />EOF<br />sqlplus / as sysdba >> $LOGPATH/rman-${ORACLE_SID}-$Dt<<-EOF<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo01.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo01.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo02.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo02.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo03.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo03.log';<br />alter database clear unarchived logfile group 1;<br />alter database clear unarchived logfile group 2;<br />alter database clear unarchived logfile group 3;<br />alter database open resetlogs;<br />EXIT<br />EOF<br /></pre> | DBA | 

### Ambil kata sandi dari Secrets Manager, buat pengguna, dan ubah kata sandi
<a name="retrieve-passwords-from-secrets-manager-create-users-and-change-passwords"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ambil kata sandi dari Secrets Manager. | Anda dapat melakukan langkah ini dengan menggunakan konsol AWS atau AWS CLI. Langkah-langkah berikut menunjukkan instruksi untuk konsol.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Buat pengguna RDSADMIN. | `RDSADMIN`adalah pengguna database untuk memantau dan mengatur instans Amazon RDS Custom DB. Karena basis data starter dijatuhkan dan database target dipulihkan dari sumber menggunakan RMAN, Anda harus membuat ulang pengguna ini setelah operasi pemulihan untuk memastikan bahwa pemantauan Kustom Amazon RDS berfungsi seperti yang diharapkan. Anda juga harus membuat profil dan tablespace terpisah untuk `RDSADMIN` pengguna.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Buat pengguna master. | Karena basis data starter dijatuhkan dan database target dipulihkan dari sumber dengan menggunakan RMAN, Anda harus membuat ulang pengguna master. Dalam contoh ini, nama pengguna master adalah`admin`.<pre>SQL> create user admin identified by <password>;<br />SQL> grant dba to admin</pre> | DBA | 
| Ubah kata sandi sistem. | Ubah kata sandi sistem dengan menggunakan kata sandi yang Anda ambil dari Secrets Manager.<pre>SQL> alter user sys identified by xxxxxxxxxxx;<br />SQL> alter user system identified by xxxxxxxxxx;</pre>Jika Anda tidak mengubah kata sandi ini, Amazon RDS Custom menampilkan pesan kesalahan, “Pemantauan basis data pengguna atau kredensyal pengguna telah berubah.” | DBA | 

### Konfigurasikan entri TNS untuk Amazon RDS Custom dan PeopleSoft
<a name="configure-the-tns-entries-for-amazon-rds-custom-and-peoplesoft"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan file tnsnames. | Untuk terhubung ke database dari tingkat aplikasi, konfigurasikan `tnsnames.ora` file sehingga Anda dapat terhubung ke database dari tingkat aplikasi. Dalam contoh berikut, Anda dapat melihat bahwa ada tautan lunak ke `tnsnames.ora` file, tetapi file tersebut kosong secara default. <pre>$ cd /rdsdbbin/oracle/network/admin<br />$ ls -ltr<br />-rw-r--r-- 1 rdsdb database 1536 Feb 14  2018 shrept.lst<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 listener.ora -> /rdsdbdata/config/listener.ora<br />lrwxrwxrwx 1 rdsdb database   28 Apr  5 13:19 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Buat softlink spfile
<a name="create-the-spfile-softlink"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat softlink spfile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Lakukan langkah pasca-migrasi
<a name="perform-post-migration-steps"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi skema, koneksi, dan tugas pemeliharaan. | Untuk menyelesaikan migrasi, lakukan tugas-tugas berikut.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

## Sumber daya terkait
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-resources"></a>
+ [Bekerja dengan Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html)
+ [Amazon RDS Kustom untuk Oracle - Kemampuan Kontrol Baru di Lingkungan Database](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) (posting blog)
+ [Mengintegrasikan Amazon RDS Kustom untuk Oracle dengan Amazon EFS](https://aws.amazon.com/blogs/database/integrate-amazon-rds-custom-for-oracle-with-amazon-efs/) (posting blog)
+ [Mengonfigurasi Amazon RDS sebagai Oracle Database PeopleSoft (whitepaper AWS)](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf)

# Migrasikan fungsionalitas Oracle ROWID ke PostgreSQL di AWS
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws"></a>

*Rakesh Raghav dan Ramesh Pathuri, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-summary"></a>

Pola ini menjelaskan opsi untuk memigrasikan fungsionalitas `ROWID` pseudocolumn di Oracle Database ke database PostgreSQL di Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL, Amazon Aurora PostgreSQL Compatible Edition, atau Amazon Elastic Compute Cloud (Amazon). EC2

Dalam database Oracle, `ROWID` pseudocolumn adalah alamat fisik dari baris dalam tabel. Pseudocolumn ini digunakan untuk mengidentifikasi baris secara unik bahkan jika kunci utama tidak ada di atas meja. PostgreSQL memiliki pseudocolumn serupa yang `ctid` disebut, tetapi tidak dapat digunakan sebagai. `ROWID` Seperti yang dijelaskan dalam dokumentasi [PostgreSQL](https://www.postgresql.org/docs/current/ddl-system-columns.html)`ctid`, mungkin berubah jika diperbarui atau setelah setiap proses. `VACUUM`

Ada tiga cara Anda dapat membuat fungsionalitas `ROWID` pseudocolumn di PostgreSQL:
+ Gunakan kolom kunci primer bukan `ROWID` untuk mengidentifikasi baris dalam tabel.
+ Gunakan primary/unique kunci logis (yang mungkin merupakan kunci komposit) dalam tabel. 
+ Tambahkan kolom dengan nilai yang dihasilkan secara otomatis dan jadikan itu primary/unique kunci untuk meniru`ROWID`.

Pola ini memandu Anda melalui ketiga implementasi dan menjelaskan kelebihan dan kekurangan dari setiap opsi.

## Prasyarat dan batasan
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Keahlian pengkodean prosedural Language/PostgreSQL (PL/PGSQL)
+ Sumber Database Oracle
+ Kluster Amazon RDS for PostgreSQL atau Aurora PostgreSQL yang kompatibel, atau instance untuk meng-host database PostgreSQL EC2 

**Batasan**
+ Pola ini menyediakan solusi untuk fungsionalitas tersebut. `ROWID` PostgreSQL tidak menyediakan yang setara dengan di Oracle Database. `ROWID`

**Versi produk**
+ PostgreSQL 11.9 atau yang lebih baru

## Arsitektur
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-architecture"></a>

**Tumpukan teknologi sumber**
+ Oracle Database

**Tumpukan teknologi target**
+ Kompatibel dengan Aurora PostgreSQL, Amazon RDS for PostgreSQL, atau instance dengan database PostgreSQL EC2 

![\[Mengonversi Database Oracle ke PostgreSQL di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9a2ce994-4f68-4975-aab2-796cc20a3c82/images/6e7c2ef6-f440-476a-9003-f1f166718e15.png)


**Opsi implementasi**

Ada tiga opsi untuk mengatasi kurangnya `ROWID` dukungan di PostgreSQL, tergantung pada apakah tabel Anda memiliki kunci primer atau indeks unik, kunci primer logis, atau atribut identitas. Pilihan Anda bergantung pada jadwal proyek Anda, fase migrasi Anda saat ini, dan dependensi pada aplikasi dan kode database.


| 
| 
| Opsi | Deskripsi | Keuntungan | Kekurangan | 
| --- |--- |--- |--- |
| **Kunci primer atau indeks unik** | Jika tabel Oracle Anda memiliki kunci utama, Anda dapat menggunakan atribut kunci ini untuk mengidentifikasi baris secara unik.  | Tidak ada ketergantungan pada fitur database berpemilik.Dampak minimal pada kinerja, karena bidang kunci primer diindeks. | Memerlukan perubahan pada aplikasi dan kode basis data yang bergantung pada `ROWID` untuk beralih ke bidang kunci utama.  | 
| ** primary/unique Kunci logis** | Jika tabel Oracle Anda memiliki kunci primer logis, Anda dapat menggunakan atribut kunci ini untuk mengidentifikasi baris secara unik. Kunci primer logis terdiri dari atribut atau sekumpulan atribut yang secara unik dapat mengidentifikasi baris, tetapi tidak diberlakukan pada database melalui kendala. | Tidak ada ketergantungan pada fitur database berpemilik. | Memerlukan perubahan pada aplikasi dan kode basis data yang bergantung pada `ROWID` untuk beralih ke bidang kunci utama.Dampak signifikan pada kinerja jika atribut kunci primer logis tidak diindeks. Namun, Anda dapat menambahkan indeks unik untuk mencegah masalah kinerja. | 
| **Atribut identitas** | jika tabel Oracle Anda tidak memiliki kunci utama, Anda dapat membuat bidang tambahan sebagai`GENERATED ALWAYS AS IDENTITY`. Atribut ini menghasilkan nilai unik setiap kali data dimasukkan ke dalam tabel, sehingga dapat digunakan untuk mengidentifikasi secara unik baris untuk operasi Data Manipulation Language (DML/Data Manipulation Language). | Tidak ada ketergantungan pada fitur database berpemilik.Database PostgreSQL mengisi atribut dan mempertahankan keunikannya. | Memerlukan perubahan pada aplikasi dan kode database yang bergantung pada `ROWID` untuk beralih ke atribut identitas.Dampak signifikan pada kinerja jika bidang tambahan tidak diindeks. Namun, Anda dapat menambahkan indeks untuk mencegah masalah kinerja. | 

## Alat
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-tools"></a>
+ [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.
+ [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 dengan layanan AWS melalui perintah di shell baris perintah Anda. **Dalam pola ini, Anda dapat menggunakan AWS CLI untuk menjalankan perintah SQL melalui pgAdmin.**
+ [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.
+ [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.

## Epik
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-epics"></a>

### Identifikasi tabel sumber
<a name="identify-the-source-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi tabel Oracle yang menggunakan `ROWID` atribut. | Gunakan AWS Schema Conversion Tool (AWS SCT) untuk mengidentifikasi tabel Oracle yang memiliki fungsionalitas. `ROWID` Untuk informasi selengkapnya, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID).— atau —Di Oracle, gunakan `DBA_TAB_COLUMNS` tampilan untuk mengidentifikasi tabel yang memiliki `ROWID` atribut. Bidang ini dapat digunakan untuk menyimpan karakter 10-byte alfanumerik. Tentukan penggunaan dan konversikan ini ke `VARCHAR` bidang jika sesuai. | DBA atau pengembang | 
| Identifikasi kode yang mereferensikan tabel ini. | Gunakan AWS SCT untuk membuat laporan penilaian migrasi guna mengidentifikasi prosedur yang terpengaruh`ROWID`. Untuk informasi selengkapnya, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.html).— atau —Dalam database sumber Oracle, gunakan bidang teks `dba_source` tabel untuk mengidentifikasi objek yang menggunakan `ROWID` fungsionalitas. | DBA atau pengembang | 

### Tentukan penggunaan kunci utama
<a name="determine-primary-key-usage"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi tabel yang tidak memiliki kunci utama. | Dalam database sumber Oracle, gunakan `DBA_CONSTRAINTS` untuk mengidentifikasi tabel yang tidak memiliki kunci utama. Informasi ini akan membantu Anda menentukan strategi untuk setiap tabel. Contoh:<pre>select dt.*<br />from dba_tables dt<br />where not exists (select 1<br />                  from all_constraints ct<br />                  where ct.owner = Dt.owner<br />                    and ct.table_name = Dt.table_name<br />                    and ct.constraint_type = 'P'<br />                  )<br />and dt.owner = '{schema}'</pre> | DBA atau pengembang | 

### Identifikasi dan terapkan solusinya
<a name="identify-and-apply-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Terapkan perubahan untuk tabel yang memiliki kunci primer yang ditentukan atau logis.  | Buat perubahan kode aplikasi dan database yang ditampilkan di bagian [Informasi tambahan](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional) untuk menggunakan kunci primer unik atau kunci primer logis untuk mengidentifikasi baris dalam tabel Anda. | DBA atau pengembang | 
| Tambahkan bidang tambahan ke tabel yang tidak memiliki kunci primer yang ditentukan atau logis. | Tambahkan atribut tipe`GENERATED ALWAYS AS IDENTITY`. Buat perubahan kode aplikasi dan database yang ditampilkan di bagian [Informasi tambahan](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional). | DBA atau pengembang | 
| Tambahkan indeks jika perlu. | Tambahkan indeks ke bidang tambahan atau kunci primer logis untuk meningkatkan kinerja SQL. | DBA atau pengembang | 

## Sumber daya terkait
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-resources"></a>
+ [PostgreSQL CTID (dokumentasi PostgreSQL)](https://www.postgresql.org/docs/current/ddl-system-columns.html)
+ [Kolom yang dihasilkan](https://www.postgresql.org/docs/current/ddl-generated-columns.html) (dokumentasi PostgreSQL)
+ [ROWID Pseudocolumn (dokumentasi Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html#GUID-F6E0FBD2-983C-495D-9856-5E113A17FAF1))

## Informasi tambahan
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional"></a>

Bagian berikut memberikan contoh kode Oracle dan PostgreSQL untuk menggambarkan tiga pendekatan.

**Skenario 1: Menggunakan kunci unik primer**

Dalam contoh berikut, Anda membuat tabel `testrowid_s1` dengan `emp_id` sebagai kunci utama.

*Kode Oracle:*

```
create table testrowid_s1 (emp_id integer, name varchar2(10), CONSTRAINT testrowid_pk PRIMARY KEY (emp_id));
INSERT INTO testrowid_s1(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s1(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s1(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s1(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 empname2
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4

UPDATE testrowid_s1 SET name = 'Ramesh' WHERE rowid = 'AAAF3pAAAAAAAMOAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 Ramesh
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4
```

*Kode PostgreSQL:*

```
CREATE TABLE public.testrowid_s1
(
    emp_id integer,
    name character varying,
    primary key (emp_id)
);

insert into public.testrowid_s1 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s1 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Skenario 2: Menggunakan kunci primer logis**

Dalam contoh berikut, Anda membuat tabel `testrowid_s2` dengan `emp_id` sebagai kunci utama logis.

*Kode Oracle:*

```
create table testrowid_s2 (emp_id integer, name varchar2(10) );
INSERT INTO testrowid_s2(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s2(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s2(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s2(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 empname2
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4

UPDATE testrowid_s2 SET name = 'Ramesh' WHERE rowid = 'AAAF3rAAAAAAAMeAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 Ramesh
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4
```

*Kode PostgreSQL:*

```
CREATE TABLE public.testrowid_s2
(
    emp_id integer,
    name character varying
);

insert into public.testrowid_s2 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s2 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Skenario 3: Menggunakan atribut identitas**

Dalam contoh berikut, Anda membuat tabel `testrowid_s3` tanpa kunci utama dan dengan menggunakan atribut identitas.

*Kode Oracle:*

```
create table testrowid_s3 (name varchar2(10));
INSERT INTO testrowid_s3(name) values ('empname1');
INSERT INTO testrowid_s3(name) values ('empname2');
INSERT INTO testrowid_s3(name) values ('empname3');
INSERT INTO testrowid_s3(name) values ('empname4');
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB empname2
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4

UPDATE testrowid_s3 SET name = 'Ramesh' WHERE rowid = 'AAAF3sAAAAAAAMmAAB' ;
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB Ramesh
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4
```

*Kode PostgreSQL:*

```
CREATE TABLE public.testrowid_s3
(
    rowid_seq bigint generated always as identity,
    name character varying
);

insert into public.testrowid_s3 (name) values 
('empname1'),('empname2'),('empname3'),('empname4');

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         2 | empname2
         3 | empname3
         4 | empname4

update testrowid_s3 set name = 'Ramesh' where rowid_seq = 2 ;

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         3 | empname3
         4 | empname4
         2 | Ramesh
```

# Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database"></a>

*Sai Parthasaradhi dan Veeranjaneyulu Grandhi, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Pola ini menunjukkan cara memigrasikan kode kesalahan Oracle Database ke database [Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Edition dengan menggunakan tabel metadata yang telah ditentukan sebelumnya.

Kode kesalahan Oracle Database tidak selalu memiliki kode kesalahan PostgreSQL yang sesuai. Perbedaan kode kesalahan ini dapat menyulitkan untuk mengkonfigurasi logika pemrosesan prosedur atau fungsi dalam arsitektur PostgreSQL target.

Anda dapat menyederhanakan proses dengan menyimpan kode kesalahan basis data sumber dan target yang berarti bagi PL/pgSQL program Anda dalam tabel metadata. Kemudian, konfigurasikan tabel untuk menandai kode kesalahan Oracle Database yang valid dan petakan ke ekuivalen PostgreSQL mereka sebelum melanjutkan dengan logika proses yang tersisa. Jika kode kesalahan Oracle Database tidak ada dalam tabel metadata, proses keluar dengan pengecualian. Kemudian, Anda dapat meninjau detail kesalahan secara manual dan menambahkan kode kesalahan baru ke tabel jika program Anda memerlukannya.

Dengan menggunakan konfigurasi ini, database Amazon Aurora PostgreSQL yang kompatibel dapat menangani kesalahan dengan cara yang sama seperti database Oracle sumber Anda.

**catatan**  
Mengkonfigurasi database PostgreSQL untuk menangani kode kesalahan Oracle Database dengan benar biasanya memerlukan perubahan pada database dan kode aplikasi.

## Prasyarat dan batasan
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sumber Oracle Database dengan layanan instance dan listener aktif dan berjalan
+ Cluster yang kompatibel dengan Amazon Aurora PostgreSQL yang aktif dan berjalan
+ Keakraban dengan Oracle Database
+ Keakraban dengan database PostgreSQL

## Arsitektur
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

Diagram berikut menunjukkan contoh alur kerja database yang kompatibel dengan Amazon Aurora PostgreSQL untuk validasi dan penanganan kode kesalahan data:

![\[Validasi kode kesalahan data dan penanganan untuk database yang kompatibel dengan Aurora PostgreSQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


Diagram menunjukkan alur kerja berikut:

1. Sebuah tabel berisi kode kesalahan Oracle Database dan klasifikasi dan kode kesalahan PostgreSQL yang setara dan klasifikasi. Tabel ini mencakup kolom **valid\$1error** yang mengklasifikasikan jika kode kesalahan tertentu yang telah ditentukan valid atau tidak.

1. **Ketika sebuah PL/pgSQL fungsi (**func\$1processdata**) melempar pengecualian, ia memanggil fungsi kedua PL/pgSQL (error\$1validation).**

1. Fungsi **error\$1validation** menerima kode kesalahan Oracle Database sebagai argumen masukan. Kemudian, fungsi memeriksa kode kesalahan yang masuk terhadap tabel untuk melihat apakah kesalahan termasuk dalam tabel.

1. Jika kode kesalahan Oracle Database disertakan dalam tabel, maka fungsi **error\$1validation** mengembalikan nilai **TRUE** dan logika proses berlanjut. Jika kode kesalahan tidak disertakan dalam tabel, maka fungsi mengembalikan nilai **FALSE**, dan logika proses keluar dengan pengecualian.

1. Ketika fungsi mengembalikan nilai **FALSE**, maka rincian kesalahan secara manual ditinjau oleh lead fungsional aplikasi untuk menentukan validitasnya.

1. Kode kesalahan baru kemudian ditambahkan secara manual ke tabel atau tidak. Jika kode kesalahan valid dan ditambahkan ke tabel, maka fungsi **error\$1validation** mengembalikan nilai **TRUE** saat berikutnya pengecualian terjadi. Jika kode kesalahan tidak valid, dan proses harus gagal ketika pengecualian terjadi, maka kode kesalahan tidak ditambahkan ke tabel.

**Tumpukan teknologi**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Pengembang Oracle SQL

## Alat
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ [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.
+ [pgAdmin](https://www.pgadmin.org/) adalah alat administrasi dan pengembangan sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang menyederhanakan pembuatan, pemeliharaan, dan penggunaan objek database.
+ [Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi gratis yang menyederhanakan pengembangan dan pengelolaan Oracle Database baik dalam penerapan tradisional maupun cloud.

## Epik
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel di database Amazon Aurora PostgreSQL yang kompatibel. | Jalankan perintah [PostgreSQL CREATE TABLE](https://www.postgresql.org/docs/current/sql-createtable.html) berikut:<pre>(<br /><br />    source_error_code numeric NOT NULL,<br /><br />    target_error_code character varying NOT NULL,<br /><br />    valid_error character varying(1) NOT NULL<br /><br />); </pre> | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Tambahkan kode kesalahan PostgreSQL dan kode kesalahan Oracle Database yang sesuai ke tabel. | **Jalankan perintah [PostgreSQL](https://www.postgresql.org/docs/current/sql-insert.html) INSERT untuk menambahkan nilai kode kesalahan yang diperlukan ke tabel error\$1codes.****Kode kesalahan PostgreSQL harus menggunakan karakter yang bervariasi tipe data (nilai SQLSTATE).** Kode kesalahan Oracle harus menggunakan tipe data numerik (nilai **SQLCODE**).**Contoh Sisipkan pernyataan:**<pre>insert into error_codes values (-1817,'22007','Y');<br />insert into error_codes values (-1816,'22007','Y');<br />insert into error_codes values (-3114,'08006','N');</pre>Jika Anda menangkap pengecualian konektivitas basis data Java (JDBC) khusus Oracle, Anda harus mengganti pengecualian tersebut dengan pengecualian lintas basis data generik atau beralih ke pengecualian khusus PostgreSQL. | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Buat PL/pgSQL fungsi untuk memvalidasi kode kesalahan. | Buat PL/pgSQL fungsi dengan menjalankan perintah [PostgreSQL](https://www.postgresql.org/docs/current/sql-createfunction.html) CREATE FUNCTION. Pastikan bahwa fungsi melakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Tinjau kode kesalahan baru secara manual saat direkam oleh PL/pgSQL fungsi. | Tinjau kode kesalahan baru secara manual.**Jika kode kesalahan baru valid untuk kasus penggunaan Anda, tambahkan ke tabel **error\$1codes** dengan menjalankan perintah PostgreSQL INSERT.**-atau-Jika kode kesalahan baru tidak valid untuk kasus penggunaan Anda, jangan tambahkan ke tabel. Logika proses akan terus gagal dan keluar dengan pengecualian ketika kesalahan terjadi. | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 

## Sumber daya terkait
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Lampiran A. PostgreSQL Kode Kesalahan (dokumentasi PostgreSQL](https://www.postgresql.org/docs/11/errcodes-appendix.html))

[Pesan kesalahan database](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm) (dokumentasi Oracle Database)

# Migrasikan SAP ASE di Amazon EC2 ke Amazon Aurora PostgreSQL yang kompatibel dengan menggunakan AWS SCT dan AWS DMS
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms"></a>

*Amit Kumar dan Ankit Gupta, Amazon Web Services*

## Ringkasan
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-summary"></a>

Pola ini menjelaskan cara memigrasikan database SAP Adaptive Server Enterprise (SAP ASE) yang di-host di instans Amazon Elastic Compute Cloud (Amazon) ke EC2 Amazon Aurora PostgreSQL Compatible Edition dengan menggunakan AWS Schema Conversion Tool (AWS SCT) dan AWS Database Migration Service (AWS DMS). Pola ini berfokus pada konversi bahasa definisi data (DDL) untuk objek yang disimpan dan migrasi data.

Kompatibel dengan Aurora PostgreSQL mendukung beban kerja pemrosesan transaksi online (OLTP). Layanan terkelola ini menyediakan konfigurasi yang secara otomatis menskalakan sesuai permintaan. Ini dapat secara otomatis memulai, mematikan, meningkatkan, atau menurunkan basis data Anda berdasarkan kebutuhan aplikasi Anda. Anda dapat menjalankan database Anda di cloud tanpa mengelola instance database apa pun. Kompatibel dengan Aurora PostgreSQL menyediakan opsi hemat biaya untuk beban kerja yang jarang, intermiten, atau tidak dapat diprediksi.

Proses migrasi terdiri dari dua fase utama:
+ Mengonversi skema database dengan menggunakan AWS SCT
+ Migrasi data dengan menggunakan AWS DMS

Instruksi terperinci untuk kedua fase disediakan di bagian *Epik*. Untuk informasi tentang masalah pemecahan masalah yang spesifik untuk menggunakan AWS DMS dengan database SAP ASE, lihat [Memecahkan masalah dengan SAP](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SAP) ASE dalam dokumentasi AWS DMS.

## Prasyarat dan batasan
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber SAP ASE pada sebuah EC2 instance dengan server, database, dan layanan listener yang aktif dan berjalan
+ Basis data target yang kompatibel dengan Aurora PostgreSQL

**Batasan**
+ Nomor port untuk koneksi harus 5432.
+ Fitur [huge\$1pages](https://www.postgresql.org/docs/9.6/static/runtime-config-resource.html) aktif secara default tetapi dapat dimodifikasi.
+ Point-in-time granularitas pemulihan (PITR) adalah 5 menit.
+ Replikasi Lintas Wilayah saat ini tidak tersedia.
+ Ukuran penyimpanan maksimum untuk database Aurora adalah 128 TiB.
+ Anda dapat membuat hingga 15 replika baca.
+ Batas ukuran tabel hanya dibatasi oleh ukuran volume cluster Aurora, sehingga ukuran tabel maksimum untuk cluster DB yang kompatibel dengan Aurora PostgreSQL adalah 32 TiB. Kami menyarankan Anda mengikuti praktik terbaik untuk desain meja, seperti mempartisi tabel besar.

**Versi produk**
+ Database sumber: AWS DMS saat ini mendukung SAP ASE 15, 15.5, 15.7, dan 16.x. Lihat [Panduan Pengguna AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html) untuk informasi terbaru tentang dukungan versi SAP ASE.
+ Basis data target: PostgreSQL 9.4 dan yang lebih baru (untuk versi 9.x), 10.x, 11.x, 12.x, 13.x, dan 14.x. Lihat [Panduan Pengguna AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) untuk versi PostgreSQL terbaru yang didukung.
+ Amazon Aurora 1.x atau lebih baru. Untuk informasi terbaru, lihat [Rilis dan versi mesin yang kompatibel dengan Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) dalam dokumentasi Aurora.

## Arsitektur
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-architecture"></a>

**Tumpukan teknologi sumber**
+ Database SAP ASE berjalan di Amazon EC2

**Tumpukan teknologi target**
+ Database yang kompatibel dengan Aurora PostgreSQL

**Arsitektur migrasi**

![\[Migrasi database SAP ASE ke Aurora PostgreSQL yang kompatibel dengan menggunakan AWS SCT dan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/07fbdea1-0242-40ae-8e5f-2ce4a620a047/images/a3b018f3-2e7b-4c37-a218-870c56132acb.png)


## Alat
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-tools"></a>
+ [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.
+ [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.
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) mendukung beberapa basis data sumber dan target yang berbeda. Untuk informasi selengkapnya, lihat [Sumber untuk Migrasi Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) dan [Target untuk Migrasi Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) dalam dokumentasi AWS DMS. Untuk versi dan dukungan fitur yang paling komprehensif, kami sarankan Anda menggunakan AWS DMS versi terbaru. 

## Epik
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-epics"></a>

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan akses jaringan dalam EC2 contoh sumber. | Siapkan grup keamanan dalam EC2 instance yang menghosting basis data SAP ASE sumber Anda.Untuk petunjuk, lihat [Grup EC2 keamanan Amazon untuk instans Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html?icmpid=docs_ec2_console) dalam EC2 dokumentasi Amazon. | Administrator sistem | 
| Buat cluster DB yang kompatibel dengan Aurora PostgreSQL target Anda. | Instal, konfigurasikan, dan luncurkan cluster yang kompatibel dengan Aurora PostgreSQL untuk database target Anda.Untuk informasi selengkapnya, lihat [Membuat klaster DB Amazon Aurora di dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) Aurora. | DBA | 
| Siapkan otorisasi untuk cluster DB target. | Siapkan grup keamanan dan firewall untuk database target.Untuk petunjuknya, lihat [Membuat klaster DB Amazon Aurora di dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) Aurora. | DBA, Administrator sistem | 

### Konversikan skema database Anda dengan AWS SCT
<a name="convert-your-database-schema-with-aws-sct"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan AWS SCT. | Luncurkan AWS SCT dengan mengikuti petunjuk dalam dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html).AWS SCT menyediakan antarmuka pengguna berbasis proyek untuk secara otomatis mengonversi skema database database sumber SAP ASE Anda ke dalam format yang kompatibel dengan instans DB yang kompatibel dengan Aurora PostgreSQL target Anda. | DBA | 
| Buat titik akhir AWS SCT. | Buat titik akhir untuk sumber SAP ASE dan target database PostgreSQL.Untuk petunjuk, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers). | DBA | 
| Buat laporan penilaian. | Buat laporan penilaian migrasi database untuk mengevaluasi migrasi dan mendeteksi objek dan fungsi yang tidak kompatibel.Untuk petunjuk, lihat [dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport). | DBA | 
| Konversi skema. | Konversikan skema database dengan mengikuti petunjuk dalam dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html). | DBA | 
| Validasi objek database. | Jika AWS SCT tidak dapat mengonversi objek database, AWS SCT akan mengidentifikasi namanya dan detail lainnya. Anda harus mengonversi benda-benda ini secara manual.Untuk mengidentifikasi ketidakcocokan ini, ikuti petunjuk di postingan blog AWS [Validasi objek database setelah bermigrasi dari SAP ASE ke Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/validate-database-objects-after-migrating-from-sap-ase-to-amazon-rds-for-postgresql-or-amazon-aurora-postgresql/). | DBA | 

### Menganalisis migrasi AWS DMS
<a name="analyze-the-aws-dms-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target. | Periksa versi database SAP ASE untuk kompatibilitas dengan AWS DMS. Untuk informasi selengkapnya, lihat [Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.title) dan [Target untuk AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) AWS DMS. | DBA | 
| Identifikasi persyaratan untuk jenis dan kapasitas penyimpanan. | Pilih kapasitas penyimpanan yang sesuai untuk basis data target berdasarkan ukuran basis data sumber Anda. | DBA, Administrator sistem | 
| Pilih jenis instans, kapasitas, dan fitur lain dari instance replikasi. | Pilih jenis instans, kapasitas, fitur penyimpanan, dan fitur jaringan yang memenuhi kebutuhan Anda.Untuk panduan, lihat [Memilih instans replikasi AWS DMS yang tepat untuk migrasi Anda dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html) AWS DMS. | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan. | Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target.Ikuti panduan dalam [Menyiapkan jaringan untuk instance replikasi dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html) AWS DMS. | DBA, Administrator sistem | 

### Migrasikan data
<a name="migrate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan membuat tugas migrasi di AWS DMS. | Untuk memigrasikan data, buat tugas dan ikuti instruksi dalam dokumentasi [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. | DBA | 
| Validasi data. | Untuk memvalidasi bahwa data Anda dimigrasikan secara akurat dari database sumber ke database target, ikuti [pedoman validasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) yang disediakan dalam dokumentasi AWS DMS. | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi strategi migrasi aplikasi. | Pilih salah satu dari [tujuh strategi (7R)](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html) untuk memigrasikan aplikasi ke cloud. | DBA, Pemilik aplikasi, Administrator sistem | 
| Ikuti strategi migrasi aplikasi. | Selesaikan tugas database yang diidentifikasi oleh tim aplikasi, termasuk memperbarui detail koneksi DNS untuk database target dan memperbarui kueri dinamis.  | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong ke database target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. | Alihkan koneksi dari database sumber ke database target. Untuk informasi selengkapnya, lihat bagian [Cut over](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/cut-over.html) dari *strategi Migrasi untuk database relasional*. | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. | Hentikan semua tugas migrasi, instance replikasi, titik akhir, dan sumber daya AWS SCT dan AWS DMS lainnya. Untuk informasi selengkapnya, lihat [dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Deleting). | DBA, Administrator sistem | 
| Tinjau dan validasi dokumen proyek. | Validasi semua langkah dalam dokumentasi proyek untuk memastikan bahwa semua tugas telah berhasil diselesaikan. | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek. | Tutup proyek migrasi dan berikan umpan balik apa pun. | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-resources"></a>

**Referensi**
+ [Aktifkan koneksi terenkripsi untuk instans PostgreSQL DB di Amazon](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) RDS (AWS Prescriptive Guidance)
+ [Transportasi database PostgreSQL antara dua instans Amazon RDS DB menggunakan](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg_transport.html) pg\$1transport (AWS Prescriptive Guidance)
+ [Harga Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Praktik terbaik dengan Amazon Aurora PostgreSQL Edisi yang kompatibel (](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraPostgreSQL.BestPractices.html)dokumentasi Amazon Aurora)
+ [Dokumentasi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Menggunakan Database SAP ASE sebagai Sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)

**Tutorial dan video**
+ [Memulai AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (video)

# Migrasikan sertifikat SSL Windows ke Application Load Balancer menggunakan ACM
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm"></a>

*Chandra Sekhar Yaratha dan Igor Kovalchuk, Amazon Web Services*

## Ringkasan
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-summary"></a>

Pola ini memberikan panduan untuk menggunakan AWS Certificate Manager (ACM) untuk memigrasikan sertifikat Secure Sockets Layer (SSL) yang ada dari situs web yang dihosting di server lokal atau instans Amazon Elastic Compute Cloud (Amazon EC2) di Microsoft Internet Information Services (IIS). Sertifikat SSL kemudian dapat digunakan dengan Elastic Load Balancing di AWS. 

SSL melindungi data Anda, menegaskan identitas Anda, memberikan peringkat mesin pencari yang lebih baik, membantu memenuhi persyaratan Standar Keamanan Data Industri Kartu Pembayaran (PCI DSS), dan meningkatkan kepercayaan pelanggan. Pengembang dan tim TI yang mengelola beban kerja ini ingin aplikasi web dan infrastruktur mereka, termasuk server IIS dan Windows Server, untuk tetap mematuhi kebijakan dasar mereka.

Pola ini mencakup ekspor sertifikat SSL yang ada secara manual dari Microsoft IIS, mengonversinya dari format Personal Information Exchange (PFX) ke format Private Enhanced Mail (PEM) yang didukung ACM, dan kemudian mengimpornya ke ACM di akun AWS Anda. Ini juga menjelaskan cara membuat Application Load Balancer untuk aplikasi Anda dan mengonfigurasi Application Load Balancer untuk menggunakan sertifikat impor Anda. Koneksi HTTPS kemudian dihentikan pada Application Load Balancer, dan Anda tidak memerlukan overhead konfigurasi lebih lanjut di server web. Untuk informasi selengkapnya, lihat [Membuat pendengar HTTPS untuk Application Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html).

Server Windows menggunakan file.pfx atau.p12 untuk berisi file kunci publik (sertifikat SSL) dan file kunci pribadi uniknya. Otoritas Sertifikat (CA) memberi Anda file kunci publik Anda. Anda menggunakan server Anda untuk menghasilkan file kunci pribadi terkait tempat permintaan penandatanganan sertifikat (CSR) dibuat.

## Prasyarat dan batasan
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Virtual private cloud (VPC) di AWS dengan setidaknya satu subnet pribadi dan satu subnet publik di setiap Availability Zone yang digunakan oleh target Anda
+ IIS versi 8.0 atau yang lebih baru berjalan di Windows Server 2012 atau yang lebih baru
+ Aplikasi web yang berjalan di IIS
+ Akses administrator ke server IIS

## Arsitektur
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-architecture"></a>

**Tumpukan teknologi sumber**
+ Implementasi server web IIS dengan SSL untuk memastikan bahwa data ditransmisikan dengan aman dalam koneksi terenkripsi (HTTPS) 

**Arsitektur sumber**

![\[Arsitektur sumber untuk memigrasikan sertifikat SSL Windows ke Application Load Balancer menggunakan ACM\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/e63efb6f-205b-4e20-a043-6bc954470191.png)


**Tumpukan teknologi target**
+ Sertifikat ACM di akun AWS Anda
+ Application Load Balancer yang dikonfigurasi untuk menggunakan sertifikat yang diimpor
+ Instans Windows Server di subnet pribadi

**Arsitektur target**

![\[Arsitektur target untuk memigrasikan sertifikat SSL Windows ke Application Load Balancer menggunakan ACM\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/45ac7fba-fbad-4c74-9b1f-80ca212dae08.png)


 

## Alat
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-tools"></a>
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) membantu Anda membuat, menyimpan, dan memperbarui sertifikat dan kunci SSL/TLS X.509 publik dan pribadi yang melindungi situs web dan aplikasi AWS Anda.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh EC2 instans, kontainer, dan alamat IP di satu atau beberapa Availability Zone.

## Praktik terbaik
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-best-practices"></a>
+ Menerapkan pengalihan lalu lintas dari HTTP ke HTTPS.
+ Konfigurasikan grup keamanan untuk Application Load Balancer Anda dengan benar untuk mengizinkan lalu lintas masuk hanya ke port tertentu.
+ Luncurkan EC2 instans Anda di Availability Zone yang berbeda untuk memastikan ketersediaan tinggi.
+ Konfigurasikan domain aplikasi Anda untuk menunjuk ke nama DNS Application Load Balancer, bukan alamat IP-nya.
+ [Pastikan Application Load Balancer memiliki pemeriksaan kesehatan lapisan aplikasi yang dikonfigurasi.](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)
+ Konfigurasikan ambang batas untuk pemeriksaan kesehatan.
+ Gunakan [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) untuk memantau Application Load Balancer.

## Epik
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-epics"></a>

### Ekspor file.pfx
<a name="export-a-pfx-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ekspor file.pfx dari Windows Server. | Untuk mengekspor sertifikat SSL sebagai file.pfx dari manajer IIS lokal di Windows Server:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)File.pfx Anda sekarang harus disimpan ke lokasi dan jalur yang Anda tentukan. | Administrator sistem | 

### Ubah sertifikat yang dikodekan PFX ke format PEM
<a name="convert-the-pfx-encoded-certificate-to-pem-format"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan instal toolkit OpenSSL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Administrator sistem | 
| Ubah sertifikat yang dikodekan PFX ke format PEM. | Langkah-langkah berikut mengonversi file sertifikat yang ditandatangani PFX yang dikodekan menjadi tiga file dalam format PEM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Untuk mengonversi sertifikat yang dikodekan PFX:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Administrator sistem | 

### Impor sertifikat ke ACM
<a name="import-a-certificate-into-acm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersiaplah untuk mengimpor sertifikat. | Di [konsol ACM](https://console.aws.amazon.com/acm/home), pilih **Impor sertifikat**. | Administrator awan | 
| Berikan badan sertifikat. | Untuk **badan Sertifikat**, tempel sertifikat yang disandikan PEM yang ingin Anda impor. Untuk informasi selengkapnya tentang perintah dan langkah yang dijelaskan dalam tugas ini dan tugas lain dalam epik ini, lihat [Mengimpor sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html) dalam dokumentasi ACM. | Administrator awan | 
| Berikan kunci pribadi sertifikat. | Untuk **kunci privat Sertifikat**, tempel kunci privat tak terenkripsi yang disandikan PEM yang cocok dengan kunci publik sertifikat. | Administrator awan | 
| Berikan rantai sertifikat. | Untuk **rantai Sertifikat**, tempel rantai sertifikat yang dikodekan PEM, yang disimpan dalam file. `CertificateChain.pem` | Administrator awan | 
| Impor sertifikat. | Pilih **Tinjau dan impor**. Konfirmasikan bahwa informasi tentang sertifikat Anda sudah benar, lalu pilih **Impor**. | Administrator awan | 

### Membuat Application Load Balancer
<a name="create-an-application-load-balancer"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan konfigurasikan penyeimbang beban dan pendengar. | Ikuti petunjuk dalam [dokumentasi Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) untuk mengonfigurasi grup target, mendaftarkan target, dan membuat Application Load Balancer dan pendengar. Tambahkan pendengar kedua (HTTPS) untuk port 443. | Administrator awan | 

## Pemecahan masalah
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Windows PowerShell tidak mengenali perintah OpenSSL bahkan setelah Anda menambahkannya ke jalur sistem. | Periksa `$env:path` untuk memastikan bahwa itu termasuk lokasi binari OpenSSL.Jika tidak, jalankan perintah berikut di PowerShell:<pre>$env:path = $env:path + ";C:\OpenSSL-Win64\bin"</pre> | 

## Sumber daya terkait
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-resources"></a>

**Mengimpor sertifikat ke ACM**
+ [Konsol ACM](https://console.aws.amazon.com/acm/home)
+ [Sertifikat dan format kunci untuk mengimpor](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html)
+ [Mengimpor sertifikat](https://aws.amazon.com/blogs/security/how-to-import-pfx-formatted-certificates-into-aws-certificate-manager-using-openssl/)
+ [Panduan Pengguna AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)

**Membuat Application Load Balancer**
+ [Buat Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [Panduan Pengguna Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)

# Memigrasikan antrian pesan dari Microsoft Azure Service Bus ke Amazon SQS
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

## Ringkasan
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-summary"></a>

Pola ini menjelaskan cara memigrasikan aplikasi web atau konsol .NET Framework atau .NET Core dari menggunakan platform pesan antrian Microsoft Azure Service Bus ke Amazon Simple Queue Service (Amazon SQS).

Aplikasi menggunakan layanan pesan untuk mengirim data ke, dan menerima data dari, aplikasi lain. Layanan ini membantu membangun layanan mikro terpisah, sangat skalabel, sistem terdistribusi, dan aplikasi tanpa server di cloud.

Antrian Azure Service Bus adalah bagian dari infrastruktur pesan Azure yang lebih luas yang mendukung antrian dan pengiriman pesan. publish/subscribe  

Amazon SQS adalah layanan antrian pesan yang dikelola sepenuhnya yang memungkinkan Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server. Amazon SQS menghilangkan kompleksitas dan overhead yang terkait dengan pengelolaan dan pengoperasian middleware yang berorientasi pesan, dan memungkinkan pengembang untuk fokus pada membedakan pekerjaan. Menggunakan Amazon SQS, Anda dapat mengirim, menyimpan, dan menerima pesan antar komponen perangkat lunak pada volume berapa pun, tanpa kehilangan pesan atau mengharuskan layanan lain tersedia.

## Prasyarat dan batasan
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Aplikasi web atau konsol .NET Framework atau .NET Core yang menggunakan antrian Azure Service Bus (kode contoh terlampir)

**Versi produk**
+ .NET Framework 3.5 atau yang lebih baru, atau.NET Core 1.0.1, 2.0.0, atau yang lebih baru

## Arsitektur
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-architecture"></a>

**Tumpukan teknologi sumber**
+ Aplikasi web atau konsol .NET (Core atau Framework) yang menggunakan antrian Azure Service Bus untuk mengirim pesan

 

**Tumpukan teknologi target**
+ Amazon SQS

## Alat
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**Alat**
+ Microsoft Visual Studio

**Kode**

Untuk membuat kebijakan AWS Identity and Access management (IAM) untuk Amazon SQS:

1. Masuk ke AWS Management Console dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

2. Pada panel navigasi yang ada di sebelah kiri, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

3. Pilih tab **JSON**, dan tempel kode berikut:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
            "sqs:DeleteMessage",
            "sqs:GetQueueUrl",
            "sqs:ChangeMessageVisibility",
            "sqs:SendMessageBatch",
            "sqs:ReceiveMessage",
            "sqs:SendMessage",
            "sqs:GetQueueAttributes",
            "sqs:ListQueueTags",
            "sqs:ListDeadLetterSourceQueues",
            "sqs:DeleteMessageBatch",
            "sqs:PurgeQueue",
            "sqs:DeleteQueue",
            "sqs:CreateQueue",
            "sqs:ChangeMessageVisibilityBatch",
            "sqs:SetQueueAttributes"
         ],
         "Resource": "arn:aws:sqs:*:<AccountId>:*"
      },
      {
         "Sid": "VisualEditor1",
         "Effect": "Allow",
         "Action": "sqs:ListQueues",
         "Resource": "*"
      }
   ]
}
```

4. Pilih **Kebijakan tinjauan**, ketik nama, lalu pilih **Buat kebijakan**.

5. Lampirkan kebijakan yang baru dibuat ke peran IAM Anda yang ada atau buat peran baru.

## Epik
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-epics"></a>

### Siapkan Amazon SQS di AWS
<a name="set-up-amazon-sqs-in-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan IAM untuk Amazon SQS. | Buat kebijakan IAM yang akan menyediakan akses ke Amazon SQS. Lihat bagian Kode untuk kebijakan sampel. | Insinyur sistem | 
| Buat profil AWS. | Buat profil baru dengan menjalankan AWS Tools untuk PowerShell perintah Set-AWSCredential. Perintah ini menyimpan kunci akses dan kunci rahasia Anda dalam file kredensi default Anda di bawah nama profil yang Anda tentukan. Tautkan kebijakan Amazon SQS yang Anda buat sebelumnya dengan akun ini. Simpan ID kunci akses AWS dan kunci akses rahasia. Ini akan diperlukan pada langkah selanjutnya. | Insinyur sistem | 
| Buat antrian SQS. | Anda dapat membuat antrian standar atau antrian masuk pertama, keluar pertama (FIFO). Untuk petunjuk, lihat tautan di bagian Referensi. | Insinyur sistem | 

### Merevisi kode aplikasi.NET Anda
<a name="revise-your-net-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS Toolkit for Visual Studio. | Toolkit ini adalah ekstensi untuk Microsoft Visual Studio dan memudahkan Anda untuk membangun dan menyebarkan aplikasi.NET di AWS. Untuk petunjuk pemasangan dan penggunaan, lihat tautan di bagian Referensi. | Pengembang aplikasi | 
| Instal AWSSDK paket.SQS. NuGet  | Anda dapat menginstal AWSSDK .SQS dengan memilih “Manage NuGet Package” di Visual Studio atau dengan menjalankan perintah “ AWSSDKInstall-Package .SQS”. | Pengembang aplikasi | 
| Buat AWSCredentials objek di aplikasi.NET Anda. | Contoh aplikasi dalam lampiran menunjukkan cara membuat AWSCredentials objek Basic, yang mewarisi dari AWSCredentials. Anda dapat menggunakan ID kunci akses dan kunci akses rahasia dari sebelumnya, atau biarkan objek memilih ini dari folder.aws sebagai bagian dari profil pengguna saat dijalankan. | Pengembang aplikasi | 
| Buat objek klien SQS. | Buat objek klien SQS (AmazonSQSClient) untuk.NET Framework. Ini adalah bagian dari namespace Amazon.sqs. Objek ini diperlukan alih-alih IQueue Klien, yang merupakan bagian dari Microsoft.Azure. ServiceBus namespace. | Pengembang aplikasi | 
| Panggil SendMessageAsync metode untuk mengirim pesan ke antrian SQS. | Ubah kode yang mengirim pesan ke antrian untuk menggunakan. amazonSqsClient SendMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir. | Pengembang aplikasi | 
| Panggil ReceiveMessageAsync metode untuk menerima pesan dari antrian SQS. | Ubah kode yang menerima pesan untuk menggunakan file amazonSqsClient. ReceiveMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir. | Pengembang aplikasi | 
| Panggil DeleteMessageAsync metode untuk menghapus pesan dari antrian SQS. | Untuk menghapus pesan, ubah kode dari QueueClient. CompleteAsync metode untuk amazonSqsClient. DeleteMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir. | Pengembang aplikasi | 

## Sumber daya terkait
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [Panduan Pengembang AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Pesan Menggunakan Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Membuat dan Menggunakan Antrian Amazon SQS dengan AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Kirim Pesan Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Menerima Pesan dari Antrian Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Menghapus Pesan dari Antrian Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/DeleteMessage.html)
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)

## Informasi tambahan
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Pola ini mencakup dua contoh aplikasi (lihat bagian lampiran):
+ **AzureSbTestApp**termasuk kode yang menggunakan antrian Azure Service Bus.
+ **AmazonSqsTestApp**menggunakan Amazon SQS. Ini adalah aplikasi konsol yang menggunakan.NET Core 2.2 dan termasuk contoh untuk mengirim dan menerima pesan.

Catatan:
+ QueueClient adalah objek IQueue Klien, yang merupakan bagian dari Microsoft.Azure. ServiceBus namespace (termasuk dalam Microsoft.Azure. ServiceBus NuGet paket).
+ amazonSqsClient adalah objek AmazonSQSClient, yang merupakan bagian dari namespace Amazon.sqs (termasuk dalam paket.SQS). AWSSDK NuGet 
+ Tergantung di mana kode berjalan, katakanlah jika sedang berjalan EC2, peran perlu memiliki izin untuk menulis ke dalam SQS Queue.

## Lampiran
<a name="attachments-25334709-7000-4f60-87ed-ea41acb41a99"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)

# Migrasikan database Oracle JD Edwards EnterpriseOne ke AWS dengan menggunakan Oracle Data Pump dan AWS DMS
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms"></a>

*Thanigaivel Thirumalai, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-summary"></a>

Anda dapat memigrasi dan menjalankan database JD Edwards di [Amazon EnterpriseOne Relational Database Service (Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) RDS). Saat memigrasikan database ke Amazon RDS, AWS dapat menangani tugas pencadangan dan penyiapan ketersediaan tinggi, sehingga Anda dapat berkonsentrasi pada pemeliharaan EnterpriseOne aplikasi dan fungsinya. Untuk mengetahui daftar lengkap faktor kunci yang perlu dipertimbangkan selama proses migrasi, lihat [Strategi migrasi database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) di AWS Prescriptive Guidance.

Ada beberapa cara untuk memigrasikan EnterpriseOne database, termasuk:
+ Menggunakan Oracle Universal Batch Engine (UBE) R98403 untuk pembuatan skema dan tabel, dan menggunakan AWS Database Migration Service (AWS DMS) untuk migrasi
+ Menggunakan alat asli DB untuk pembuatan skema dan tabel dan menggunakan AWS DMS untuk migrasi
+ Menggunakan alat asli DB untuk migrasi data yang ada (beban penuh) dan menggunakan AWS DMS untuk tugas pengambilan data perubahan (CDC)

Pola ini mencakup opsi ketiga. Ini menjelaskan cara memigrasikan EnterpriseOne database lokal Anda ke Amazon RDS for Oracle dengan menggunakan Oracle Data Pump [dengan](https://aws.amazon.com/dms) AWS DMS dan fitur CDC-nya.

[Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) adalah solusi perencanaan sumber daya perusahaan (ERP) untuk organisasi yang memproduksi, membangun, mendistribusikan, melayani, atau mengelola produk atau aset fisik. JD Edwards EnterpriseOne mendukung berbagai perangkat keras, sistem operasi, dan platform basis data.

Saat Anda memigrasikan aplikasi ERP penting seperti JD Edwards EnterpriseOne, meminimalkan waktu henti adalah kuncinya. AWS DMS meminimalkan waktu henti dengan mendukung pemuatan penuh dan replikasi berkelanjutan dari database sumber ke basis data target. AWS DMS juga menyediakan pemantauan dan pencatatan waktu nyata untuk migrasi, yang dapat membantu Anda mengidentifikasi dan menyelesaikan masalah apa pun yang dapat menyebabkan waktu henti.

Saat Anda mereplikasi perubahan dengan AWS DMS, Anda harus menentukan waktu atau nomor perubahan sistem (SCN) sebagai titik awal untuk membaca perubahan dari log database. Sangat penting untuk menjaga agar log ini dapat diakses di server untuk jangka waktu yang ditentukan (kami sarankan 15 hari) untuk memastikan bahwa AWS DMS memiliki akses ke perubahan ini.

## Prasyarat dan batasan
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-prereqs"></a>

**Prasyarat**
+ Basis data Amazon RDS for Oracle yang disediakan di lingkungan AWS Cloud Anda sebagai basis data target. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html).
+  EnterpriseOne Database yang berjalan di tempat atau di instans Amazon Elastic Compute Cloud (Amazon EC2) di AWS.
**catatan**  
Pola ini dirancang untuk bermigrasi dari lokasi ke AWS, tetapi diuji dengan menggunakan EnterpriseOne database pada instans EC2. Jika berencana untuk bermigrasi dari lingkungan lokal, Anda harus mengonfigurasi konektivitas jaringan yang sesuai.
+ Rincian skema. Identifikasi skema database Oracle mana (misalnya, DV920) yang Anda rencanakan untuk bermigrasi. EnterpriseOne Sebelum Anda memulai proses migrasi, kumpulkan rincian berikut tentang skema:
  + Ukuran skema
  + Jumlah objek per jenis objek
  + Jumlah objek yang tidak valid

**Batasan**
+ Anda harus membuat skema apa pun yang Anda inginkan pada target Amazon RDS for Oracle Database ― AWS DMS tidak membuat ini untuk Anda. (Bagian [Epics](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics) menjelaskan cara menggunakan Pompa Data untuk mengekspor dan mengimpor skema.) Nama skema harus sudah ada untuk database Oracle target. Tabel dari skema sumber diimpor ke pengguna atau skema, dan AWS DMS menggunakan administrator atau akun sistem untuk terhubung ke instans target. Untuk memigrasikan beberapa skema, Anda dapat membuat beberapa tugas replikasi. Anda juga dapat memigrasikan data ke skema yang berbeda pada instance target. Untuk melakukan ini, gunakan aturan transformasi skema pada pemetaan tabel AWS DMS.
+ Pola ini telah diuji dengan dataset demo. Kami menyarankan Anda memvalidasi kompatibilitas untuk dataset dan kustomisasi Anda.
+ Pola ini menggunakan EnterpriseOne database yang berjalan di Microsoft Windows. Namun, Anda dapat menggunakan proses yang sama dengan sistem operasi lain yang didukung oleh AWS DMS.

## Arsitektur
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-architecture"></a>

Diagram berikut menunjukkan sistem yang berjalan EnterpriseOne pada database Oracle sebagai database sumber, dan database Amazon RDS for Oracle sebagai database target. Data diekspor dari database Oracle sumber dan diimpor ke database Amazon RDS for Oracle target dengan menggunakan Oracle Data Pump, dan direplikasi untuk pembaruan CDC dengan menggunakan AWS DMS.

![\[Diagram showing data replication from on-premises Oracle to Amazon RDS using AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. Oracle Data Pump mengekstrak data dari database sumber, dan data dikirim ke target database Amazon RDS for Oracle.

1. Data CDC dikirim dari database sumber ke titik akhir sumber di AWS DMS.

1. Dari titik akhir sumber, data dikirim ke instans replikasi AWS DMS, tempat tugas replikasi dilakukan.

1. Setelah tugas replikasi selesai, data dikirim ke titik akhir target di AWS DMS.

1. Dari titik akhir target, data dikirim ke instans database Amazon RDS for Oracle.

## Alat
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-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.
+ [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 AWS Cloud.

**Layanan lainnya**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi.

## Praktik terbaik
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-best-practices"></a>

**Migrating LOBs**

Jika database sumber Anda berisi objek biner besar (LOBs) yang perlu dimigrasikan ke database target, AWS DMS menyediakan opsi berikut:
+ **Mode LOB penuh** — AWS DMS memigrasikan semua LOBs dari sumber ke database target terlepas dari ukurannya. Meskipun migrasi lebih lambat dari mode lainnya, keuntungannya adalah data tidak terpotong. Untuk kinerja yang lebih baik, Anda dapat membuat tugas terpisah pada instance replikasi baru untuk memigrasikan tabel LOBs yang memiliki ukuran lebih besar dari beberapa megabyte.
+ **Mode LOB terbatas** - Anda menentukan ukuran maksimum data kolom LOB, yang memungkinkan AWS DMS mengalokasikan sumber daya terlebih dahulu dan menerapkan secara massal. LOBs Jika ukuran kolom LOB melebihi ukuran yang ditentukan dalam tugas, AWS DMS memotong data dan mengirimkan peringatan ke file log AWS DMS. Anda dapat meningkatkan kinerja dengan menggunakan mode LOB terbatas jika ukuran data LOB Anda berada dalam ukuran LOB terbatas.
+ **Mode LOB sebaris** - Anda dapat bermigrasi LOBs tanpa memotong data atau memperlambat kinerja tugas Anda dengan mereplikasi baik kecil maupun besar. LOBs Pertama, tentukan nilai untuk `InlineLobMaxSize` parameter, yang hanya tersedia ketika mode LOB penuh diatur ke`true`. Tugas AWS DMS mentransfer LOBs inline kecil, yang lebih efisien. Kemudian, AWS DMS memigrasikan yang besar LOBs dengan melakukan pencarian dari tabel sumber. Namun, mode LOB inline hanya berfungsi selama fase beban penuh.

**Menghasilkan nilai urutan**

Selama proses AWS DMS CDC, nomor urutan inkremental tidak direplikasi dari database sumber. Untuk menghindari perbedaan dalam nilai urutan, Anda harus menghasilkan nilai urutan terbaru dari sumber untuk semua urutan, dan menerapkannya ke database Amazon RDS for Oracle target.

**AWS Secrets Manager**

Untuk membantu mengelola kredensil Anda, kami sarankan Anda mengikuti petunjuk di posting blog [Kelola kredenal titik akhir AWS DMS Anda dengan AWS Secrets](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/) Manager.

**Performa**
+ **Instans replikasi** - Untuk panduan memilih ukuran instans terbaik, lihat [Memilih ukuran terbaik untuk instans replikasi dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html) AWS DMS.
+ **Opsi konektivitas** - Untuk menghindari masalah latensi, kami sarankan Anda memilih opsi konektivitas yang tepat. AWS Direct Connect menyediakan jalur terpendek ke sumber daya AWS, karena ini adalah koneksi khusus antara pusat data perusahaan Anda dan AWS. Saat transit, lalu lintas jaringan Anda tetap berada di jaringan global AWS dan tidak pernah melalui internet. Ini mengurangi kemungkinan mencapai kemacetan atau peningkatan latensi yang tidak terduga jika dibandingkan dengan menggunakan VPN atau internet publik.
+ **Bandwidth jaringan** - Untuk mengoptimalkan kinerja, verifikasi bahwa throughput jaringan Anda cepat. Jika Anda menggunakan terowongan VPN antara database sumber lokal dan AWS DMS, pastikan bandwidth cukup untuk beban kerja Anda.
+ **Paralelisme tugas** - Anda dapat mempercepat replikasi data dengan memuat beberapa tabel secara paralel selama beban penuh. Pola ini menggunakan titik akhir RDBMS, jadi opsi ini hanya berlaku untuk proses beban penuh. Paralelisme tugas dikendalikan oleh `MaxFullLoadSubTasks` parameter, yang menentukan berapa banyak sub-tugas beban penuh yang dijalankan secara paralel. Secara default, parameter ini diatur ke 8, yang berarti bahwa delapan tabel (jika dipilih dalam pemetaan tabel) dimuat bersama selama mode penuh. Anda dapat menyesuaikan parameter ini di bagian pengaturan tugas beban penuh dari skrip JSON untuk tugas tersebut.
+ **Paralelisme tabel** - AWS DMS juga memungkinkan Anda memuat satu tabel besar dengan menggunakan beberapa thread paralel. Ini sangat berguna untuk tabel sumber Oracle yang memiliki miliaran catatan serta beberapa partisi dan subpartisi. Jika tabel sumber tidak dipartisi, Anda dapat menggunakan batas kolom untuk beban paralel.
+ **Membagi beban** - Saat Anda membagi beban di beberapa tugas atau instans AWS DMS, ingat batas transaksi saat Anda menangkap perubahan.

## Epik
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics"></a>

### Gunakan Oracle Data Pump untuk mengekspor skema EnterpriseOne
<a name="use-oracle-data-pump-to-export-the-enterpriseone-schema"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan SCN. | Ketika database sumber aktif dan digunakan oleh EnterpriseOne aplikasi, memulai ekspor data dengan Oracle Data Pump. Anda harus terlebih dahulu menghasilkan nomor perubahan sistem (SCN) dari database sumber untuk konsistensi data selama ekspor dengan Oracle Data Pump dan sebagai titik awal untuk CDC di AWS DMS.Untuk menghasilkan SCN saat ini dari database sumber Anda, gunakan pernyataan SQL berikut:<pre>SQL> select current_scn from v$database;<br /><br />CURRENT_SCN<br />-----------<br />   30009727</pre>Simpan SCN yang dihasilkan. Anda akan menggunakan SCN saat mengekspor data dan membuat tugas replikasi AWS DMS. | DBA | 
| Buat file parameter. | Untuk membuat file parameter untuk mengekspor skema, Anda dapat menggunakan kode berikut.<pre>directory=DMS_DATA_PUMP_DIR<br />logfile=export_dms.log<br />dumpfile=export_dms_data.dmp<br />schemas=<schema name><br />flashback_scn=<SCN from previous command></pre>Anda juga dapat menentukan sendiri `DATA_PUMP_DIR` dengan menggunakan perintah berikut, berdasarkan kebutuhan Anda.<pre>SQL> CREATE OR REPLACE DIRECTORY DMS_DATA_PUMP_DIR AS '<Directory for dump>';<br />Directory created.<br /><br />SQL> GRANT READ, WRITE ON DIRECTORY DMS_DATA_PUMP_DIR TO SYSTEM;<br />Grant succeeded.</pre> | DBA | 
| Ekspor skema. | Untuk melakukan ekspor, gunakan `expdp` utilitas sebagai berikut:<pre>C:\Users\Administrator>expdp system/********@<DB Name> PARFILE='<Path to PAR file create above>'<br /><br />Export: Release 19.0.0.0.0 - Production on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br /><br />Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production<br />Starting "SYSTEM"."SYS_EXPORT_SCHEMA_02":  system/********@<DB Name>PARFILE='E:\exp_dms_datapump.par'<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS<br />Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS<br />Processing object type SCHEMA_EXPORT/STATISTICS/MARKER<br />Processing object type SCHEMA_EXPORT/USER<br />Processing object type SCHEMA_EXPORT/ROLE_GRANT<br />Processing object type SCHEMA_EXPORT/DEFAULT_ROLE<br />Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA<br />Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE<br />Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX<br />Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT<br />. . exported "<Schema Name>"."<Table Name>"                            228.9 MB  496397 rows</pre><pre>Master table "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully loaded/unloaded<br />******************************************************************************<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_02 is:<br />  E:\DMSDUMP\EXPORT_DMS_DATA.DMP<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully completed at *** *** ** **:**:** **** elapsed 0 00:01:57</pre> | DBA | 

### Gunakan Oracle Data Pump untuk mengimpor skema EnterpriseOne
<a name="use-oracle-data-pump-to-import-the-enterpriseone-schema"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Transfer file dump ke instance target. | Untuk mentransfer file Anda dengan menggunakan `DBMS_FILE_TRANSFER` utilitas, Anda perlu membuat link database dari database sumber ke Amazon RDS for Oracle instance. Setelah tautan dibuat, Anda dapat menggunakan utilitas untuk mentransfer file Pompa Data langsung ke instance Amazon RDS.Atau, Anda dapat mentransfer file Pompa Data ke [Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) dan kemudian mengimpornya ke instans Amazon RDS for Oracle. Untuk informasi selengkapnya tentang opsi ini, lihat bagian [Informasi tambahan](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional).Untuk membuat tautan database `ORARDSDB` yang terhubung ke pengguna master Amazon RDS di instans DB target, jalankan perintah berikut pada database sumber:<pre>sqlplus / as sysdba<br /><br />SQL*Plus: Release 19.0.0.0.0 on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle.  All rights reserved.<br /><br />Connected to:<br />Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0<br />Version 19.3.0.0.0<br /><br />SQL> create database link orardsdb connect to admin identified by "******" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl.******.us-east-1.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br /><br />Database link created.<br /><br />SQL></pre> | DBA | 
| Uji tautan basis data. | Uji tautan database untuk memastikan bahwa Anda dapat terhubung ke database target Amazon RDS for Oracle dengan menggunakan. `sqlplus`<pre>SQL> select name from v$database@orardsdb;<br /><br />NAME<br />---------<br />ORCL<br /></pre> | DBA | 
| Transfer file dump ke database target. | Untuk menyalin file dump ke database Amazon RDS for Oracle, Anda dapat menggunakan direktori `DATA_PUMP_DIR` default atau Anda dapat membuat direktori Anda sendiri dengan menggunakan kode berikut, yang harus dijalankan pada instance Amazon RDS target:<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'DMS_TARGET_PUMP_DIR');<br /><br />PL/SQL procedure successfully completed.</pre>Script berikut menyalin file dump bernama `EXPORT_DMS_DATA.DMP` dari instance sumber ke target Amazon RDS for Oracle database dengan menggunakan link database bernama. `orardsdb` Anda harus menjalankan skrip pada instance database sumber.<pre>BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DMS_DATA_PUMP_DIR',<br />source_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_directory_object => 'DMS_TARGET_PUMP_DIR',<br />destination_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_database => 'orardsdb');<br />END;<br /><br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Buat daftar file dump dalam database target. | Setelah PL/SQL prosedur selesai, Anda dapat mencantumkan file dump data di database Amazon RDS for Oracle dengan menggunakan kode berikut:<pre>select * from table (rdsadmin.rds_file_util.listdir(p_directory => 'DMS_TARGET_PUMP_DIR'));</pre> | DBA | 
| Buat pengguna khusus JDE di Instance target. | Buat profil dan peran JD Edwards dengan menggunakan perintah ini dalam instance target:<pre>SQL> CREATE PROFILE "JDEPROFILE" LIMIT IDLE_TIME 15;<br />Profile created.<br /><br />SQL> CREATE ROLE "JDE_ROLE";<br />Role created.<br /><br />SQL> CREATE ROLE "JDEADMIN";<br />CREATE ROLE "JDEUSER";<br />Role created.<br />Role created.</pre>Berikan izin yang diperlukan untuk peran:<pre>SQL> GRANT CREATE ANY SEQUENCE TO JDE_ROLE;<br /> GRANT DROP ANY SEQUENCE TO JDE_ROLE;<br /> GRANT CREATE ANY TRIGGER TO JDE_ROLE;<br /> GRANT DROP ANY TRIGGER TO JDE_ROLE;<br /></pre> | DBA, JDE CNC | 
| Buat tablespaces dalam instance target. | Buat ruang tabel yang diperlukan dalam instance target dengan menggunakan perintah berikut untuk skema yang terlibat dalam migrasi ini:<pre>SQL> CREATE TABLESPACE <Tablespace Name for Tables>;<br />Tablespace created.<br /><br />SQL> CREATE TABLESPACE <Tablespace Name for Indexes>;<br />Tablespace created.</pre> | DBA, JDE CNC | 
| Memulai impor pada database target. | Sebelum memulai proses impor, atur peran, skema, dan ruang tabel pada database Amazon RDS for Oracle target menggunakan file dump data.Untuk melakukan impor, akses database target dengan akun pengguna utama Amazon RDS, dan gunakan nama string koneksi dalam `tnsnames.ora` file, yang mencakup Amazon RDS for Oracle Database. `tns-entry` Jika perlu, Anda dapat menyertakan opsi remap untuk mengimpor file dump data ke ruang tabel yang berbeda atau di bawah nama skema yang berbeda.Untuk memulai impor, gunakan kode berikut:<pre>impdp admin@orardsdb directory=DMS_TARGET_PUMP_DIR logfile=import.log dumpfile=EXPORT_DMS_DATA.DMP</pre>Untuk memastikan impor berhasil, periksa file log impor untuk kesalahan apa pun, dan tinjau detail seperti jumlah objek, jumlah baris, dan objek yang tidak valid. Jika ada objek yang tidak valid, kompilasi ulang. Selain itu, bandingkan objek basis data sumber dan target untuk mengonfirmasi bahwa mereka cocok. | DBA | 

### Menyediakan instans replikasi AWS DMS dengan titik akhir sumber dan target
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh templat . | Unduh template AWS CloudFormation [DMS\$1Instance.yaml untuk menyediakan instans](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) replikasi AWS DMS serta titik akhir sumber dan targetnya. | Administrator awan, DBA | 
| Mulai pembuatan tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrator awan, DBA | 
| Tentukan parameternya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrator awan, DBA | 
| Buat tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Penyediaan harus selesai dalam waktu sekitar 5-10 menit. Ini selesai ketika halaman AWS CloudFormation Stacks menampilkan **CREATE\$1COMPLETE**. | Administrator awan, DBA | 
| Siapkan titik akhir. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrator awan, DBA | 
| Uji konektivitas. | Setelah titik akhir sumber dan target menunjukkan status sebagai **Aktif**, uji konektivitas. Pilih **Jalankan pengujian** untuk setiap titik akhir (sumber dan target) untuk memastikan status ditampilkan sebagai berhasil. | Administrator awan, DBA | 

### Buat tugas replikasi AWS DMS untuk replikasi langsung
<a name="create-an-aws-dms-replication-task-for-live-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas replikasi. | Buat tugas replikasi AWS DMS dengan menggunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Setelah Anda membuat tugas, AWS DMS memigrasikan perubahan yang sedang berlangsung ke instans database Amazon RDS for Oracle dari SCN yang Anda berikan dalam mode mulai CDC. Anda juga dapat memverifikasi migrasi dengan meninjau CloudWatch log. | Administrator awan, DBA | 
| Ulangi tugas replikasi. | Ulangi langkah sebelumnya untuk membuat tugas replikasi untuk skema JD Edwards lain yang merupakan bagian dari migrasi. | Administrator awan, DBA, administrator JDE CNC | 

### Validasi skema database pada target Amazon RDS for Oracle database
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi transfer data. | Setelah tugas AWS DMS dimulai, Anda dapat memeriksa tab **Statistik tabel** di halaman **Tugas** untuk melihat perubahan yang dibuat pada data.Anda dapat memantau status replikasi yang sedang berlangsung di konsol pada halaman **tugas migrasi database**.Untuk informasi selengkapnya, lihat [validasi data AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Administrator awan, DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan replikasi. | Hentikan prosedur replikasi dan hentikan layanan aplikasi sumber. | Administrator awan, DBA | 
| Luncurkan aplikasi JD Edwards. | Luncurkan presentasi JD Edwards target dan aplikasi tingkat logika di AWS, dan arahkan ke database Amazon RDS for Oracle.Saat Anda mengakses aplikasi, Anda harus memperhatikan bahwa semua koneksi sekarang dibuat dengan database Amazon RDS for Oracle. | DBA, administrator JDE CNC | 
| Matikan database sumber. | Setelah Anda mengonfirmasi bahwa tidak ada lagi koneksi, Anda dapat mematikan basis data sumber. | DBA | 

## Pemecahan masalah
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Anda menerima pesan peringatan untuk mengaktifkan [pencatatan tambahan](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) di database sumber untuk replikasi yang sedang berlangsung | Masukkan perintah ini untuk mengaktifkan logging tambahan:<pre>SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;</pre> | 
| AWS DMS memiliki logging tambahan yang dimatikan. | Pencatatan tambahan dimatikan secara default di AWS DMS. Untuk menyalakannya untuk titik akhir Oracle sumber:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Pencatatan tambahan tidak diaktifkan di tingkat CDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Anda menerima pesan galat: “Test Endpoint failed: Application-Status: 1020912, Application-Message: LogMiner is not supported in Oracle PDB environment Endpoint initialization failed.” | Jika Anda menemukan pesan kesalahan ini, Anda dapat menggunakan Binary Reader sebagai gantinya LogMiner.Di bawah **Pengaturan titik akhir**, tambahkan baris ini ke atribut koneksi tambahan untuk basis data sumber Anda:<pre>useLogMinerReader=N;useBfile=Y;</pre> | 

## Sumber daya terkait
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-resources"></a>
+ [Memulai AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Praktik Terbaik untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrasi Database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Referensi jenis sumber daya AWS Database Migration Service untuk AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DMS.html)
+ [Kelola kredensil titik akhir AWS DMS Anda dengan AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/)
+ [Memecahkan masalah tugas migrasi di AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle.RecordsMissing)
+ [Praktik terbaik untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)

## Informasi tambahan
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional"></a>

**Transfer file menggunakan Amazon S3**

Untuk mentransfer file ke Amazon S3, Anda dapat menggunakan AWS CLI atau konsol Amazon S3. Setelah mentransfer file ke Amazon S3, Anda dapat menggunakan instans Amazon RDS for Oracle untuk mengimpor file Pompa Data dari Amazon S3.

Jika Anda memilih untuk mentransfer file dump menggunakan integrasi Amazon S3 sebagai metode alternatif, lakukan langkah-langkah berikut:

1. Buat ember S3.

1. Ekspor data dari database sumber menggunakan Oracle Data Pump.

1. Unggah file Pompa Data ke bucket S3.

1. Unduh file Pompa Data dari bucket S3 ke database Amazon RDS for Oracle target.

1. Lakukan impor menggunakan file Pompa Data.

**catatan**  
Untuk mentransfer file data besar antara instans S3 dan RDS, sebaiknya gunakan fitur [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html) Transfer Acceleration.

# Migrasikan PeopleSoft database Oracle ke AWS dengan menggunakan AWS DMS
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms"></a>

*sampath kathirvel, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) adalah solusi perencanaan sumber daya perusahaan (ERP) untuk proses di seluruh perusahaan. PeopleSoft memiliki arsitektur tiga tingkat: klien, aplikasi, dan database. PeopleSoft dapat dijalankan di [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)).

Jika Anda memigrasikan database Oracle ke Amazon RDS, Amazon Web Services (AWS) dapat menangani tugas pencadangan dan ketersediaan tinggi, sehingga Anda bebas berkonsentrasi pada pemeliharaan PeopleSoft aplikasi dan fungsinya. Untuk mengetahui daftar lengkap faktor kunci yang perlu dipertimbangkan selama proses 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 memberikan solusi untuk memigrasikan database Oracle lokal Anda ke Amazon RDS for Oracle menggunakan Oracle Data Pump dengan AWS [Database Migration Service (AWS DMS) dan fitur change data capture (](https://aws.amazon.com/dms)CDC).

Saat memigrasikan aplikasi ERP penting seperti Oracle PeopleSoft, meminimalkan waktu henti adalah kuncinya. AWS DMS meminimalkan waktu henti dengan mendukung beban penuh dan replikasi berkelanjutan. dari database sumber ke database target. AWS DMS juga menyediakan pemantauan dan pencatatan migrasi secara real-time, yang dapat membantu Anda mengidentifikasi dan menyelesaikan masalah apa pun yang dapat menyebabkan waktu henti.

Saat mereplikasi perubahan dengan AWS DMS, Anda harus menentukan waktu atau nomor perubahan sistem (SCN) sebagai titik awal AWS DMS untuk membaca perubahan dari log database. Sangat penting untuk menjaga agar log ini dapat diakses di server untuk jangka waktu yang ditentukan untuk memastikan bahwa AWS DMS memiliki akses ke perubahan ini.

## Prasyarat dan batasan
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-prereqs"></a>

**Prasyarat**
+ Basis data Amazon RDS for Oracle yang disediakan di lingkungan AWS Cloud Anda sebagai basis data target.
+  PeopleSoft Database Oracle yang berjalan di tempat atau di Amazon Elastic Compute Cloud EC2 (Amazon) di AWS Cloud.
**catatan**  
Pola ini dirancang untuk bermigrasi dari lokasi ke AWS, tetapi diuji dengan menggunakan Oracle Database pada instans Amazon EC2 . Untuk bermigrasi dari tempat, Anda perlu mengonfigurasi konektivitas jaringan yang sesuai.
+ Rincian skema. Saat memigrasikan PeopleSoft aplikasi Oracle ke Amazon RDS for Oracle, perlu untuk mengidentifikasi skema database Oracle mana (misalnya,) untuk bermigrasi. `SYSADM` Sebelum memulai proses migrasi, kumpulkan rincian berikut tentang skema:
  + Size
  + Jumlah objek per jenis objek
  + Jumlah objek yang tidak valid.

  Informasi ini akan membantu proses migrasi.

**Batasan**
+ Skenario ini telah diuji hanya dengan database PeopleSoft DEMO. Itu belum diuji dengan dataset besar.

## Arsitektur
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-architecture"></a>

Diagram berikut menunjukkan instance yang menjalankan database Oracle sebagai database sumber dan database Amazon RDS for Oracle sebagai database target. Data diekspor dan diimpor dari database Oracle sumber ke database Amazon RDS for Oracle target menggunakan Oracle Data Pump dan direplikasi untuk perubahan CDC menggunakan AWS DMS.

![\[Proses lima langkah dari instans DB lokal ke Amazon RDS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. Langkah awal melibatkan ekstraksi data dari database sumber dengan menggunakan Oracle Data Pump, diikuti dengan mengirimkannya ke target database Amazon RDS for Oracle.

1. Data dikirim dari database sumber ke titik akhir sumber di AWS DMS.

1. Dari titik akhir sumber, data dikirim ke instans replikasi AWS DMS, tempat tugas replikasi dilakukan.

1. Setelah tugas replikasi selesai, data dikirim ke titik akhir target di AWS DMS.

1. Dari titik akhir target, data dikirim ke instans database Amazon RDS for Oracle.

## Alat
<a name="migrate-an-oracle-peoplesoft-database-to-aws-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.
+ [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 AWS Cloud.

**Layanan lainnya**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi.

## Praktik terbaik
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-best-practices"></a>

**Migrating LOBs**

Jika database sumber Anda berisi objek biner besar (LOBs) yang perlu dimigrasikan ke database target, AWS DMS menyediakan opsi berikut:
+ **Mode LOB penuh** — AWS DMS memigrasikan semua LOBs dari sumber ke database target terlepas dari ukurannya. Meskipun migrasi lebih lambat, keuntungannya adalah data tidak terpotong. Untuk kinerja yang lebih baik, Anda dapat membuat tugas terpisah pada instance replikasi baru untuk memigrasikan tabel yang memiliki LOBs ukuran lebih besar dari beberapa megabyte.
+ **Mode LOB terbatas** - Anda menentukan ukuran maksimum data kolom LOB, yang memungkinkan AWS DMS mengalokasikan sumber daya terlebih dahulu dan menerapkan secara massal. LOBs Jika ukuran kolom LOB melebihi ukuran yang ditentukan dalam tugas, AWS DMS memotong data dan mengirimkan peringatan ke file log AWS DMS. Anda dapat meningkatkan kinerja dengan menggunakan mode LOB Terbatas jika ukuran data LOB Anda berada dalam ukuran LOB Terbatas.
+ **Mode LOB sebaris** - Anda dapat bermigrasi LOBs tanpa memotong data atau memperlambat kinerja tugas Anda dengan mereplikasi baik kecil maupun besar. LOBs Pertama, tentukan nilai untuk InlineLobMaxSize parameter, yang hanya tersedia ketika mode LOB Penuh diatur ke true. Tugas AWS DMS mentransfer LOBs inline kecil, yang lebih efisien. Kemudian, AWS DMS memigrasikan yang besar LOBs dengan melakukan pencarian dari tabel sumber. Namun, mode LOB Inline hanya berfungsi selama fase beban penuh.

**Menghasilkan nilai urutan**

Perlu diingat bahwa selama proses pengambilan data perubahan dengan AWS DMS, nomor urutan tambahan tidak direplikasi dari database sumber. Untuk menghindari perbedaan dalam nilai urutan, Anda harus menghasilkan nilai urutan terbaru dari sumber untuk semua urutan, dan menerapkannya ke database Amazon RDS for Oracle target.

**Manajemen kredensi**

Untuk membantu mengamankan sumber daya AWS Anda, sebaiknya ikuti [praktik terbaik](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) AWS Identity and Access Management (IAM).

## Epik
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-epics"></a>

### Menyediakan instans replikasi AWS DMS dengan titik akhir sumber dan target
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh templat . | Unduh CloudFormation template AWS [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) untuk menyediakan instans replikasi AWS DMS serta titik akhir sumber dan targetnya. | Administrator awan, DBA | 
| Mulai pembuatan tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrator awan, DBA | 
| Tentukan parameternya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrator awan, DBA | 
| Buat tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Penyediaan harus selesai dalam waktu sekitar 5-10 menit. Ini selesai ketika halaman AWS CloudFormation Stacks menampilkan **CREATE\$1COMPLETE**. | Administrator awan, DBA | 
| Siapkan titik akhir. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrator awan, DBA | 
| Uji konektivitas. | Setelah titik akhir sumber dan target menunjukkan status sebagai Aktif, uji konektivitas. Pilih **Jalankan pengujian** untuk setiap titik akhir (sumber dan target) untuk memastikan status ditampilkan sebagai berhasil. | Administrator awan, DBA | 

### Ekspor PeopleSoft skema dari database Oracle lokal dengan menggunakan Oracle Data Pump
<a name="export-the-peoplesoft-schema-from-the-on-premises-oracle-database-by-using-oracle-data-pump"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan SCN. | Ketika database sumber aktif dan digunakan oleh aplikasi, memulai ekspor data dengan Oracle Data Pump. Anda harus terlebih dahulu menghasilkan nomor perubahan sistem (SCN) dari database sumber untuk konsistensi data selama ekspor dengan Oracle Data Pump dan sebagai titik awal untuk mengubah pengambilan data di AWS DMS.Untuk menghasilkan SCN saat ini dari database sumber Anda, masukkan pernyataan SQL berikut.<pre>SQL> select name from v$database;<br />SQL> select name from v$database;<br />NAME<br />---------<br />PSFTDMO<br />SQL> SELECT current_scn FROM v$database;<br />CURRENT_SCN<br />-----------<br />23792008</pre>Simpan SCN yang dihasilkan untuk digunakan saat Anda mengekspor data dan untuk membuat tugas replikasi AWS DMS. | DBA | 
| Buat file parameter. | Untuk membuat file parameter untuk mengekspor skema, Anda dapat menggunakan kode berikut.<pre>$ cat exp_datapmp.par<br />userid=system/*******<br />directory=DATA_PUMP_DIR<br />logfile=export_dms_sample_user.log<br />dumpfile=export_dms_sample_data_%U.dmp<br />schemas=SYSADM<br />flashback_scn=23792008</pre>Anda juga dapat menentukan sendiri `DATA_PUMP_DIR` dengan menggunakan perintah berikut, berdasarkan kebutuhan Anda.<pre>SQL> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/product/19c/dbhome_1/dmsdump/';<br />Directory created.<br />SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system;<br />Grant succeeded.<br />SQL><br />SQL> SELECT owner, directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR';<br />OWNER DIRECTORY_NAME DIRECTORY_PATH<br />------------------------------------------------------------------------------------------------------------------<br />SYS DATA_PUMP_DIR /opt/oracle/product/19c/dbhome_1/dmsdump/</pre> | DBA | 
| Ekspor skema. | Untuk melakukan ekspor, gunakan `expdp` utilitas.<pre>$ expdp parfile=exp_datapmp.par<br />.......................<br />Transferring the dump file with DBMS_FILE_TRANSFER to Target:<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNK" 6.328 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATDEF_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATITM_LNG" 7.171 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNCNTL" 7.601 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNPARM" 7.210 KB 0 rows<br />. . exported "SYSADM"."PS_YE_AMOUNTS" 9.351 KB 0 rows<br />. . exported "SYSADM"."PS_YE_DATA" 16.58 KB 0 rows<br />. . exported "SYSADM"."PS_YE_EE" 6.75 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_AMOUNTS" 9.414 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_DATA" 20.94 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_AMOUNTS" 10.27 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_DATA" 20.95 KB 0 rows<br />. . exported "SYSADM"."PS_ZBD_JOBCODE_TBL" 14.60 KB 0 rows<br />. . exported "SYSADM"."PTGRANTTBL" 5.468 KB 0 rows<br />Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded<br />**<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:<br />/opt/oracle/product/19c/dbhome_1/dmsdump/export_dms_sample_data_01.dmp<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Dec 19 20:13:57 2022 elapsed 0 00:38:22</pre> | DBA | 

### Impor PeopleSoft skema ke database Amazon RDS for Oracle dengan menggunakan Oracle Data Pump
<a name="import-the-peoplesoft-schema-into-the-amazon-rds-for-oracle-database-by-using-oracle-data-pump"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Transfer file dump ke instance target. | Untuk mentransfer file Anda menggunakan`DBMS_FILE_TRANSFER`, Anda perlu membuat link database dari database sumber ke Amazon RDS for Oracle instance. Setelah tautan dibuat, Anda dapat menggunakan utilitas untuk mentransfer file Pompa Data langsung ke instance RDS.Atau, Anda dapat mentransfer file Pompa Data ke [Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) dan kemudian mengimpornya ke instans Amazon RDS for Oracle. Untuk informasi selengkapnya tentang opsi ini, lihat bagian Informasi tambahan.Untuk membuat tautan database `ORARDSDB` yang terhubung ke pengguna master Amazon RDS pada instans DB target, jalankan perintah berikut pada database sumber.<pre>$sqlplus / as sysdba<br />$ SQL> create database link orardsdb connect to admin identified by "*****" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testpsft.*******.us-west-2.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br />Database link created.</pre> | DBA | 
| Uji tautan basis data. | Uji tautan database untuk memastikan bahwa Anda dapat terhubung menggunakan sqlplus ke database target Amazon RDS for Oracle.<pre>SQL><br />SQL> select name from v$database@orardsdb;<br />NAME<br />---------<br />ORCL<br />SQL></pre> | DBA | 
| Transfer file dump ke database target. | Untuk menyalin file dump ke Amazon RDS for Oracle database, Anda dapat menggunakan direktori `DATA_PUMP_DIR` default atau Anda dapat membuat direktori Anda sendiri menggunakan kode berikut.<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);</pre>Script berikut menyalin file dump bernama `export_dms_sample_data_01.dmp` dari instance sumber ke target Amazon RDS for Oracle database menggunakan link database bernama. `orardsdb`<pre>$ sqlplus / as sysdba<br />SQL><br />BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DATA_PUMP_DIR',<br />source_file_name => 'export_dms_sample_data_01.dmp',<br />destination_directory_object => 'TARGET_PUMP_DIR’',<br />destination_file_name => 'export_dms_sample_data_01.dmp',<br />destination_database => 'orardsdb'<br />);<br />END;<br />/<br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Buat daftar file dump dalam database target. | Setelah PL/SQL prosedur selesai, Anda dapat mencantumkan file dump data di database Amazon RDS for Oracle dengan menggunakan kode berikut.<pre>SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));</pre> | DBA | 
| Memulai impor pada database target. | Sebelum memulai proses impor, atur peran, skema, dan ruang tabel pada database Amazon RDS for Oracle target menggunakan file dump data.Untuk melakukan impor, akses database target dengan akun pengguna master Amazon RDS, dan gunakan nama string koneksi dalam `tnsnames.ora` file, yang mencakup Amazon RDS for Oracle Database. `tns-entry` Jika perlu, Anda dapat menyertakan opsi remap untuk mengimpor file dump data ke ruang tabel yang berbeda atau di bawah nama skema yang berbeda.Untuk memulai impor, gunakan kode berikut.<pre>impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp</pre>Untuk memastikan impor berhasil, periksa file log impor untuk kesalahan apa pun, dan tinjau detail seperti jumlah objek, jumlah baris, dan objek yang tidak valid. Jika ada objek yang tidak valid, kompilasi ulang. Selain itu, bandingkan objek basis data sumber dan target untuk mengonfirmasi bahwa mereka cocok. | DBA | 

### Buat tugas replikasi AWS DMS menggunakan CDC untuk melakukan replikasi langsung
<a name="create-an-aws-dms-replication-task-using-cdc-to-perform-live-replication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas replikasi. | Buat tugas replikasi AWS DMS dengan menggunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Setelah Anda membuat tugas, tugas tersebut akan memigrasikan CDC ke instance database Amazon RDS for Oracle dari SCN yang Anda berikan dalam mode mulai CDC. Anda juga dapat memverifikasi dengan meninjau CloudWatch log. | Administrator awan, DBA | 

### Validasi skema database pada target Amazon RDS for Oracle database
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi transfer data. | Setelah tugas AWS DMS dimulai, Anda dapat memeriksa tab **Statistik tabel** di halaman **Tugas** untuk melihat perubahan yang dibuat pada data.Anda dapat memantau status replikasi yang sedang berlangsung di konsol pada halaman **tugas migrasi database**.Untuk informasi selengkapnya, lihat [validasi data AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Administrator awan, DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan replikasi. | Hentikan prosedur replikasi dan hentikan layanan aplikasi sumber. | Administrator awan, DBA | 
| Luncurkan tingkat PeopleSoft menengah. | Luncurkan aplikasi tingkat PeopleSoft menengah target di AWS, dan arahkan ke database Amazon RDS for Oracle yang baru saja dimigrasikan.Saat Anda mengakses aplikasi, Anda harus memperhatikan bahwa semua koneksi aplikasi sekarang dibuat dengan database Amazon RDS for Oracle. | DBA, administrator PeopleSoft  | 
| Matikan database sumber. | Setelah Anda mengonfirmasi bahwa tidak ada lagi koneksi ke database sumber, itu dapat dimatikan. | DBA | 

## Sumber daya terkait
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-resources"></a>
+ [Memulai AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Praktik Terbaik untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrasi Database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Informasi tambahan
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-additional"></a>

**Transfer file menggunakan Amazon S3**

Untuk mentransfer file ke Amazon S3, Anda dapat menggunakan AWS CLI atau konsol Amazon S3. Setelah mentransfer file ke Amazon S3, Anda dapat menggunakan instans Amazon RDS for Oracle untuk mengimpor file Pompa Data dari Amazon S3.

Jika Anda memilih untuk mentransfer file dump menggunakan integrasi Amazon S3 sebagai metode alternatif, lakukan langkah-langkah berikut:

1. Buat ember S3.

1. Ekspor data dari database sumber menggunakan Oracle Data Pump.

1. Unggah file Pompa Data ke bucket S3.

1. Unduh file Pompa Data dari bucket S3 ke database Amazon RDS for Oracle target.

1. Lakukan impor menggunakan file Pompa Data.

**catatan**  
Untuk mentransfer file data besar antara instans S3 dan RDS, disarankan untuk menggunakan fitur Amazon S3 Transfer Acceleration.

**Aktifkan pencatatan tambahan**

Jika Anda menerima pesan peringatan untuk mengaktifkan [pencatatan tambahan](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) di database sumber untuk replikasi yang sedang berlangsung, gunakan langkah-langkah berikut.

```
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
```

# Memigrasikan database MySQL lokal ke Amazon RDS for MySQL
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql"></a>

*Lorenzo Mota, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database MySQL lokal ke Amazon Relational Database Service (Amazon RDS) untuk MySQL. Pola ini membahas penggunaan AWS Database Migration Service (AWS DMS) atau alat MySQL asli **seperti** mysqldump untuk migrasi database lengkap. Pola ini terutama untuk DBAs dan arsitek solusi. Ini dapat digunakan dalam proyek kecil atau besar sebagai prosedur pengujian (kami merekomendasikan setidaknya satu siklus pengujian) atau sebagai prosedur migrasi akhir. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-prereqs"></a>

**Prasyarat**
+  AWS Akun yang aktif
+ Database sumber MySQL di pusat data lokal

**Batasan**
+ Batas ukuran database: [64 TB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Versi produk**
+ MySQL versi 5.5, 5.6, 5.7, 8.0. Untuk daftar terbaru versi yang didukung, lihat [MySQL di Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) AWS RDS dalam dokumentasi. Jika Anda menggunakan AWS DMS, lihat juga [Menggunakan Database yang kompatibel dengan MySQL sebagai Target untuk versi AWS DMS MySQL yang saat](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) ini didukung oleh. AWS DMS

## Arsitektur
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database MySQL lokal

**Tumpukan teknologi target**
+ Instans Amazon RDS DB yang menjalankan MySQL

**Arsitektur target**

Diagram berikut menunjukkan target Amazon RDS untuk implementasi MySQL setelah migrasi.

![\[Targetkan Amazon RDS untuk implementasi MySQL setelah cutover.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/2e10114e-e389-4d24-9b6a-fa56beee5369.png)


**AWS arsitektur migrasi data**

**Menggunakan AWS DMS:**

Diagram berikut menunjukkan arsitektur migrasi data saat Anda gunakan AWS DMS untuk mengirim perubahan penuh dan bertahap hingga cutover. Koneksi jaringan dari tempat ke AWS tergantung pada kebutuhan Anda dan berada di luar cakupan untuk pola ini.

![\[Arsitektur migrasi data ke AWS saat Anda menggunakan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/ecc9b282-1897-4971-99ed-83223b17000d.png)


**Menggunakan alat MySQL asli:**

Diagram berikut menunjukkan arsitektur migrasi data saat Anda menggunakan alat MySQL asli. File dump ekspor disalin ke Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dan diimpor ke database Amazon RDS for MySQL sebelum cutover. AWS Koneksi jaringan dari tempat ke AWS tergantung pada kebutuhan Anda dan berada di luar cakupan untuk pola ini.

 

![\[Migrasi data ke arsitektur AWS saat Anda menggunakan alat MySQL asli.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/3bbec989-c3eb-473e-ba4a-032d6a4271c5.png)


**Catatan:**
+ Bergantung pada persyaratan downtime dan ukuran database, penggunaan AWS DMS atau alat change data capture (CDC) meminimalkan waktu cutover. AWS DMS dapat membantu mengurangi waktu cutover ke target baru seminimal mungkin (biasanya menit). Strategi offline dengan **mysqldump** bisa cukup jika ukuran database dan latensi jaringan memungkinkan jendela pendek. (Kami merekomendasikan pengujian untuk mendapatkan perkiraan waktu.)
+ Biasanya strategi CDC seperti AWS DMS membutuhkan lebih banyak pemantauan dan kompleksitas daripada opsi offline. 

## Alat
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-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 di antara kombinasi pengaturan cloud dan lokal. Untuk informasi tentang sumber MySQL dan basis data target yang didukung AWS DMS oleh, [lihat](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) Memigrasi Database yang kompatibel dengan MySQL ke. AWS Jika database sumber Anda tidak didukung oleh AWS DMS, Anda harus memilih metode lain untuk memigrasi data Anda.
+ **[Alat MySQL asli: mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)**
+ **Alat pihak ketiga**: [Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup)

## Epik
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi database. | Validasi versi basis data sumber dan target. | DBA | 
| Identifikasi persyaratan perangkat keras. | Identifikasi persyaratan perangkat keras untuk server target. | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan. | Identifikasi persyaratan penyimpanan (seperti jenis dan kapasitas penyimpanan) untuk basis data target. | DBA, Administrator sistem | 
| Pilih jenis instans. | Pilih jenis instans target berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. | DBA, Administrator sistem | 
| Identifikasi persyaratan akses jaringan. | Identifikasi persyaratan keamanan untuk akses jaringan untuk basis data sumber dan target.  | DBA, Administrator sistem | 
| Identifikasi objek yang tidak didukung. | Identifikasi objek yang tidak didukung (jika ada) dan tentukan upaya migrasi. | DBA | 
| Identifikasi dependensi. | Identifikasi dependensi apa pun pada database jarak jauh. | DBA | 
| Tentukan strategi migrasi aplikasi.  | Tentukan strategi untuk memigrasi aplikasi klien.  | DBA, Pemilik aplikasi, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). | Konfigurasikan tabel rute, gateway internet, gateway NAT, dan subnet. Untuk informasi selengkapnya, lihat [VPCs dan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) dalam dokumentasi Amazon RDS. | Administrator sistem | 
| Buat grup keamanan. | Konfigurasikan port dan rentang CIDR atau spesifik IPs tergantung pada kebutuhan Anda. Port default untuk MySQL adalah 3306. Untuk informasi selengkapnya, lihat [Mengontrol akses dengan grup keamanan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) di dokumentasi Amazon RDS. | Administrator sistem | 
| Konfigurasikan dan mulai Amazon RDS for MySQL DB instans. | Untuk petunjuknya, lihat [Membuat instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateInstance.html) dalam dokumentasi Amazon RDS. Periksa versi yang didukung. | Administrator sistem | 

### Migrasikan data - opsi 1 (menggunakan alat asli)
<a name="migrate-data-option-1-using-native-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat MySQL asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | [Untuk petunjuk, lihat dokumentasi untuk alat MySQL [seperti](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) mysqldump dan Percona (untuk migrasi fisik). XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup) Untuk informasi selengkapnya tentang opsi, lihat posting blog [Opsi migrasi 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 | 

### Migrasi data - opsi 2 (menggunakan AWS DMS)
<a name="migrate-data-option-2-using-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan AWS DMS. | Untuk instruksi, lihat [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html). | DBA | 

### Lakukan tugas awal sebelum cutover
<a name="perform-preliminary-tasks-before-cutover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbaiki perbedaan jumlah objek. | Kumpulkan jumlah objek dari database sumber dan basis data target baru. Perbaiki perbedaan dalam database target. | DBA | 
| Periksa dependensi. | Periksa apakah dependensi (tautan) ke dan dari database lain valid dan berfungsi seperti yang diharapkan. | DBA | 
| Lakukan tes. | Jika ini adalah siklus pengujian, lakukan pengujian kueri, kumpulkan metrik, dan perbaiki masalah. | DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Beralih ke database target. | Alihkan aplikasi klien ke infrastruktur baru. | DBA, Pemilik aplikasi, Administrator sistem | 
| Berikan dukungan pengujian. | Memberikan dukungan untuk pengujian aplikasi fungsional.  | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya. | Matikan AWS sumber daya sementara yang Anda buat untuk migrasi.  | DBA, Administrator sistem | 
| Validasi dokumen proyek.  | Meninjau dan memvalidasi dokumen proyek.  | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik. | Kumpulkan metrik seperti waktu untuk bermigrasi, persentase upaya manual versus otomatis, penghematan biaya, dan sebagainya. | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek.  | Tutup proyek dan berikan umpan balik.  | DBA, Pemilik aplikasi, Administrator sistem | 
| Menonaktifkan database sumber. | Ketika semua tugas migrasi dan cutover selesai, nonaktifkan database lokal. | DBA, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-resources"></a>

**Referensi**
+ [Strategi migrasi untuk database relasional](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/welcome.html)
+ [AWS DMS situs web](https://aws.amazon.com/dms/)
+ [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/)
+ [Dokumentasi Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Amazon VPC dan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Penerapan Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/)
+ [Migrasikan database MySQL lokal ke Aurora MySQL menggunakan Percona, Amazon EFS, dan Amazon S3 XtraBackup](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.html)
+ [Penyimpanan instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Tutorial**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server"></a>

*Henrique Lobao, Jonathan Pereira Cruz, dan Vishal Singh, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-summary"></a>

Pola ini memberikan panduan untuk bermigrasi dari database Microsoft SQL Server lokal ke Amazon Relational Database Service (Amazon RDS) untuk SQL Server. Ini menjelaskan dua opsi untuk migrasi: menggunakan AWS Data Migration Service (AWS DMS) atau menggunakan alat Microsoft SQL Server asli seperti Copy Database Wizard.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Microsoft SQL Server sumber di pusat data lokal

**Batasan**
+ Batas ukuran database: 16 TB

**Versi produk**
+ Untuk daftar terbaru versi dan fitur yang didukung, lihat [Microsoft SQL Server di Amazon RDS dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) AWS. Jika Anda menggunakan AWS DMS, lihat juga [Menggunakan Database Microsoft SQL Server sebagai Target untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html) untuk versi SQL Server yang didukung oleh AWS DMS. 

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal

**Tumpukan teknologi target**
+ Instans Amazon RDS for SQL Server DB 

**Arsitektur sumber dan target**

*Menggunakan AWS DMS:*

![\[Arsitektur untuk migrasi dari SQL Server lokal ke Amazon RDS menggunakan AWS DMS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/69b9877c-2d56-4d64-8475-a3dae789c5de.png)


*Menggunakan alat SQL Server asli:*

![\[Arsitektur untuk migrasi dari SQL Server lokal ke Amazon RDS menggunakan alat SQL Server\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/45ee14e4-3c7e-4b35-a2c9-3e8e3c7e6cee.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) mendukung beberapa jenis basis data sumber dan target. Untuk detailnya, lihat [AWS DMS Step-by-Step Walkthrough](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html). Jika AWS DMS tidak mendukung basis data sumber, pilih metode lain untuk memigrasikan data. 
+ Alat Microsoft SQL Server asli termasuk backup dan restore, Copy Database Wizard, salin dan lampirkan database.

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target dan mesin. |  | DBA | 
| Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, Administrator sistem | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, Administrator sistem | 
| Identifikasi strategi migrasi aplikasi. |  | DBA, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). |  | Administrator sistem | 
| Buat grup keamanan. |  | Administrator sistem | 
| Konfigurasikan dan mulai instans Amazon RDS DB. |  | DBA, Administrator sistem | 

### Migrasikan data - opsi 1
<a name="migrate-data---option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat SQL Server asli atau alat pihak ketiga untuk memigrasikan objek dan data database. |  | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-data---option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan AWS DMS. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, Administrator sistem | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik seperti waktu untuk bermigrasi, persentase tugas manual versus otomatis, dan penghematan biaya. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek dan berikan umpan balik. |  | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-resources"></a>

**Referensi**
+ [Menyebarkan Microsoft SQL Server di Amazon Web Services](https://d1.awsstatic.com/whitepapers/RDS/Deploying_SQLServer_on_AWS.pdf) 
+ [Situs AWS DMS](https://aws.amazon.com/dms/)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Produk Microsoft di AWS](https://aws.amazon.com/windows/products/)
+ [Lisensi Microsoft di AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server di AWS](https://aws.amazon.com/windows/products/sql/)
+ [Menggunakan Otentikasi Windows dengan Instans Microsoft SQL Server DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html)
+ [Penyebaran Multi-AZ Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo)  

# Migrasi data dari Microsoft Azure Blob ke Amazon S3 dengan menggunakan Rclone
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone"></a>

*Suhas Basavaraj, Aidan Keane, dan Corey Lane, Amazon Web Services*

## Ringkasan
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-summary"></a>

Pola ini menjelaskan cara menggunakan [Rclone](https://rclone.org/) untuk memigrasikan data dari penyimpanan objek Microsoft Azure Blob ke bucket Amazon Simple Storage Service (Amazon S3). Anda dapat menggunakan pola ini untuk melakukan migrasi satu kali atau sinkronisasi data yang sedang berlangsung. Rclone adalah program baris perintah yang ditulis dalam Go dan digunakan untuk memindahkan data di berbagai teknologi penyimpanan dari penyedia cloud.

## Prasyarat dan batasan
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Data disimpan dalam layanan kontainer Azure Blob

## Arsitektur
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-architecture"></a>

**Tumpukan teknologi sumber**
+ Wadah penyimpanan Azure Blob

**Tumpukan teknologi target**
+ Buket Amazon S3
+ Contoh Amazon Elastic Compute Cloud (Amazon EC2) Linux

**Arsitektur **

![\[Migrasi data dari Microsoft Azure ke Amazon S3\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)


## Alat
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-tools"></a>
+ [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.
+ [Rclone adalah program](https://rclone.org/) **baris perintah open-source yang terinspirasi oleh rsync.** Ini digunakan untuk mengelola file di banyak platform penyimpanan cloud.

## Praktik terbaik
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-best-practices"></a>

Saat Anda memigrasikan data dari Azure ke Amazon S3, perhatikan pertimbangan ini untuk menghindari biaya yang tidak perlu atau kecepatan transfer yang lambat:
+ Buat infrastruktur AWS Anda di Wilayah geografis yang sama dengan akun penyimpanan Azure dan wadah Blob—misalnya, `us-east-1` Wilayah AWS (Virginia N.) dan wilayah Azure. `East US`
+ Hindari menggunakan NAT Gateway jika memungkinkan, karena akan dikenakan biaya transfer data untuk bandwidth masuk dan keluar.
+ Gunakan [titik akhir gateway VPC untuk Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) untuk meningkatkan kinerja.
+ Pertimbangkan untuk menggunakan EC2 instans berbasis prosesor AWS Graviton2 (ARM) untuk biaya yang lebih rendah dan kinerja yang lebih tinggi dibandingkan instans Intel x86. Rclone sangat dikompilasi silang dan menyediakan biner ARM yang telah dikompilasi sebelumnya.

## Epik
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-epics"></a>

### Siapkan sumber daya cloud AWS dan Azure
<a name="prepare-aws-and-azure-cloud-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan ember S3 tujuan. | [Buat bucket S3 baru](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di Wilayah AWS yang sesuai atau pilih bucket yang sudah ada sebagai tujuan data yang ingin Anda migrasikan. | Administrator AWS | 
| Buat peran instans IAM untuk Amazon EC2. | [Buat peran AWS Identity and Access Management (IAM) baru untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles). Peran ini memberikan akses penulisan EC2 instance Anda ke bucket S3 tujuan. | Administrator AWS | 
| Lampirkan kebijakan ke peran instans IAM. | Gunakan konsol IAM atau AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) untuk membuat kebijakan inline untuk peran EC2 instance yang memungkinkan izin akses tulis ke bucket S3 tujuan. Untuk kebijakan contoh, lihat bagian [Informasi tambahan](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). | Administrator AWS | 
| Luncurkan sebuah EC2 instance. | Luncurkan EC2 instans Amazon Linux yang dikonfigurasi untuk menggunakan peran layanan IAM yang baru dibuat. Instans ini juga memerlukan akses ke titik akhir API publik Azure melalui internet. Pertimbangkan untuk menggunakan [ EC2 instans berbasis AWS Graviton](https://docs.aws.amazon.com/compute-optimizer/latest/ug/graviton-recommendations.html) untuk menurunkan biaya. Rclone menyediakan binari yang dikompilasi ARM. | Administrator AWS | 
| Buat kepala layanan Azure AD. | Gunakan Azure CLI untuk membuat prinsip layanan Azure Active Directory (Azure AD) yang memiliki akses hanya-baca ke wadah penyimpanan Azure Blob sumber. Untuk petunjuk, lihat bagian [Informasi tambahan](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). Simpan kredensyal ini pada EC2 instans Anda ke lokasi. `~/azure-principal.json` | Administrator awan, Azure | 

### Instal dan konfigurasikan Rclone
<a name="install-and-configure-rclone"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan instal Rclone.  | Unduh dan instal program baris perintah Rclone. Untuk petunjuk penginstalan, lihat dokumentasi [instalasi Rclone](https://rclone.org/install/). | AWS Umum, Administrator Cloud | 
| Konfigurasikan Rclone. | Salin file `rclone.conf` contoh berikut. Ganti `AZStorageAccount` dengan nama akun Azure Storage Anda dan `us-east-1` dengan Wilayah AWS tempat bucket S3 Anda berada. Simpan file ini ke lokasi `~/.config/rclone/rclone.conf` pada EC2 instance Anda.<pre>[AZStorageAccount]<br />type = azureblob<br />account = AZStorageAccount<br />service_principal_file = azure-principal.json<br /><br />[s3]<br />type = s3<br />provider = AWS<br />env_auth = true<br />region = us-east-1</pre> | AWS Umum, Administrator Cloud | 
| Verifikasi konfigurasi Rclone. | Untuk mengonfirmasi bahwa Rclone dikonfigurasi dan izin berfungsi dengan baik, verifikasi bahwa Rclone dapat mengurai file konfigurasi Anda dan objek di dalam wadah Azure Blob dan bucket S3 dapat diakses. Lihat berikut ini misalnya perintah validasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html) | AWS Umum, Administrator Cloud | 

### Migrasi data menggunakan Rclone
<a name="migrate-data-using-rclone"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dari kontainer Anda. | Jalankan perintah Rclone [copy](https://rclone.org/commands/rclone_copy/) atau [sync](https://rclone.org/commands/rclone_sync/).  **Contoh: copy**Perintah ini menyalin data dari wadah Azure Blob sumber ke bucket S3 tujuan.<pre>rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>**Contoh: sinkronisasi**Perintah ini menyinkronkan data antara wadah Azure Blob sumber dan bucket S3 tujuan. ****<pre>rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>Saat Anda menggunakan perintah **sinkronisasi**, data yang tidak ada di wadah sumber akan dihapus dari bucket S3 tujuan. | AWS Umum, Administrator Cloud | 
| Sinkronkan wadah Anda.  | Setelah salinan awal selesai, jalankan perintah **sinkronisasi** Rclone untuk migrasi yang sedang berlangsung sehingga hanya file baru yang hilang dari bucket S3 tujuan yang akan disalin. | AWS Umum, Administrator Cloud | 
| Verifikasi bahwa data telah berhasil dimigrasi.  | [Untuk memeriksa apakah data berhasil disalin ke bucket S3 tujuan, jalankan perintah Rclone [lsd](https://rclone.org/commands/rclone_lsd/) dan ls.](https://rclone.org/commands/rclone_ls/) | AWS Umum, Administrator Cloud | 

## Sumber daya terkait
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-resources"></a>
+ [Panduan Pengguna Amazon S3 (dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) AWS)
+ [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) (dokumentasi AWS)
+ [Membuat wadah Microsoft Azure Blob (dokumentasi](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) Microsoft Azure)
+ [Perintah Rclone (dokumentasi](https://rclone.org/commands/) Rclone)

## Informasi tambahan
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional"></a>

**Contoh kebijakan peran untuk EC2 instance**

Kebijakan ini memberikan akses baca dan tulis EC2 instans Anda ke bucket tertentu di akun Anda. Jika bucket Anda menggunakan kunci terkelola pelanggan untuk enkripsi sisi server, kebijakan tersebut mungkin memerlukan akses tambahan ke AWS Key Management Service (AWS KMS).

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        }    
    ]
}
```

**Membuat prinsipal layanan Azure AD hanya-baca**

Prinsipal layanan Azure adalah identitas keamanan yang digunakan oleh aplikasi pelanggan, layanan, dan alat otomatisasi untuk mengakses sumber daya Azure tertentu. Anggap saja sebagai identitas pengguna (login dan kata sandi atau sertifikat) dengan peran tertentu dan izin yang dikontrol ketat untuk mengakses sumber daya Anda. Untuk membuat prinsipal layanan hanya-baca agar mengikuti izin hak istimewa paling sedikit dan melindungi data di Azure dari penghapusan yang tidak disengaja, ikuti langkah-langkah berikut: 

1. Masuk ke portal akun cloud Microsoft Azure Anda dan luncurkan Cloud Shell PowerShell atau gunakan Antarmuka Baris Perintah Azure (CLI) di workstation Anda.

1. Buat prinsip layanan dan konfigurasikan dengan akses [hanya-baca](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader) ke akun penyimpanan Azure Blob Anda. Simpan output JSON dari perintah ini ke file lokal bernama`azure-principal.json`. File akan diunggah ke EC2 instance Anda. Ganti variabel placeholder yang ditampilkan dalam tanda kurung gigi (`{`dan`}`) dengan ID langganan Azure, nama grup sumber daya, dan nama akun penyimpanan Anda.

   ```
   az ad sp create-for-rbac `
   --name AWS-Rclone-Reader `
   --role "Storage Blob Data Reader" `
   --scopes /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Storage/storageAccounts/{Storage Account Name}
   ```

# Migrasi dari Couchbase Server ke Couchbase Capella di AWS
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws"></a>

*Battulga Purevragchaa dan Saurabh Shanbhag, Amazon Web Services*

*Mark Gamble, Tidak Ada*

## Ringkasan
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-summary"></a>

Couchbase Capella adalah database NoSQL yang dikelola sepenuhnya sebagai layanan (DBaaS) untuk aplikasi mission-critical (misalnya, profil pengguna atau katalog online dan manajemen inventaris). Couchbase Capella mengelola beban kerja DBaa S Anda di akun Amazon Web Services (AWS) yang dikelola Couchbase. Capella memudahkan untuk menjalankan dan mengelola replikasi multi-cluster, Multiple—AWS Region, multicloud, dan hybrid-cloud dalam satu antarmuka.

Couchbase Capella membantu Anda secara instan menskalakan aplikasi Server Couchbase Anda, membantu Anda membuat klaster multi-node dalam hitungan menit. [https://docs.couchbase.com/server/current/eventing/eventing-overview.html](https://docs.couchbase.com/server/current/eventing/eventing-overview.html) Ini juga menghilangkan kebutuhan untuk mengelola instalasi, upgrade, backup, dan pemeliharaan database umum. 

Pola ini menjelaskan langkah-langkah dan praktik terbaik untuk memigrasikan lingkungan [Server Couchbase yang dikelola sendiri ke AWS](https://www.couchbase.com/products/server) Cloud. Pola ini menyediakan proses berulang untuk memigrasikan data dan indeks dari kluster Couchbase Server, berjalan baik di tempat atau di cloud, ke Couchbase Capella. Menggunakan langkah-langkah ini membantu Anda menghindari masalah selama migrasi dan mempercepat proses migrasi secara keseluruhan.

Pola ini menyediakan dua opsi migrasi berikut:
+ **Opsi 1** sesuai jika Anda memiliki kurang dari 50 indeks untuk dimigrasi. 
+ **Opsi 2** sesuai jika Anda memiliki lebih dari 50 indeks untuk dimigrasi. 

Anda juga dapat [mengatur data sampel](https://docs.couchbase.com/server/current/manage/manage-settings/install-sample-buckets.html) di Server Couchbase yang dikelola sendiri untuk mengikuti panduan migrasi.

Jika Anda memilih **opsi migrasi 2**, atau jika Anda menggunakan cakupan atau koleksi selain nilai default, Anda harus menggunakan contoh file konfigurasi, yang ada di bagian *Informasi tambahan*.

## Prasyarat dan batasan
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-prereqs"></a>

**Prasyarat**
+ Akun berbayar Couchbase Capella yang ada. Anda juga dapat membuat akun [Couchbase Capella di AWS](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) dan menggunakan uji coba gratis Couchbase Capella, lalu memutakhirkan ke akun berbayar untuk mengonfigurasi kluster Anda untuk migrasi.. Untuk memulai dengan versi uji coba, ikuti petunjuk di [Memulai dengan Couchbase](https://docs.couchbase.com/cloud/get-started/create-account.html) Capella.
+ Lingkungan Server Couchbase yang dikelola sendiri yang ada baik di tempat atau digunakan di penyedia layanan cloud. 
+ Untuk opsi migrasi 2, Couchbase Shell dan file konfigurasi. Untuk membuat file konfigurasi, Anda dapat menggunakan file contoh yang ada di bagian *Informasi tambahan*.
+ Keakraban dengan mengelola Couchbase Server dan Couchbase Capella.
+ Keakraban dengan membuka port TCP dan menjalankan perintah dalam antarmuka baris perintah (CLI).

Proses migrasi juga membutuhkan peran dan keahlian yang dijelaskan dalam tabel berikut.


| 
| 
| Peran | Keahlian | Tanggung jawab | 
| --- |--- |--- |
| Administrator Couchbase | Keakraban dengan Couchbase Server dan Couchbase CapellaPengetahuan baris perintah dasar sangat membantu tetapi tidak diperlukan | Server Couchbase dan tugas khusus Capella | 
| Administrator sistem, administrator TI | Keakraban dengan lingkungan dan administrasi sistem Couchbase Server yang dikelola sendiri | Membuka port dan menentukan alamat IP pada node cluster Couchbase Server yang dikelola sendiri | 

 

**Batasan**
+ Pola ini digunakan untuk memigrasikan data, indeks, dan indeks [Pencarian Teks Lengkap Couchbase](https://docs.couchbase.com/server/current/fts/full-text-intro.html) dari Couchbase Server ke Couchbase Capella di AWS. [Pola ini tidak berlaku untuk memigrasi [Couchbase Eventing Service, atau ke Couchbase](https://docs.couchbase.com/server/current/eventing/eventing-overview.html) Analytics.](https://docs.couchbase.com/server/current/analytics/introduction.html)
+ Couchbase Capella tersedia di beberapa Wilayah AWS. Untuk up-to-date informasi tentang Wilayah yang didukung Capella, lihat [Amazon Web Services di dokumentasi](https://docs.couchbase.com/cloud/reference/aws.html) Couchbase.

**Versi produk**
+ [Couchbase Server (Komunitas atau Perusahaan) Edition versi 5.x atau yang lebih baru](https://docs.couchbase.com/server/current/release-notes/relnotes.html)

## Arsitektur
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-architecture"></a>

**Tumpukan teknologi sumber**
+ Server Couchbase

**Tumpukan teknologi target**
+ Couchbase Capella

**Arsitektur target**

![\[Migrasi Couchbase Capella ke cluster Couchbase di bidang data Capella di AWS dalam empat langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/14ac5a81-eade-4708-9335-f5602fa07824/images/95cd7f33-742e-4d10-8e2c-37c7b4d9df45.png)


1. **Anda mengakses Couchbase Capella dengan menggunakan Capella Control Plane.** Anda dapat menggunakan Capella Control Plane untuk melakukan hal berikut:
   + Kontrol dan pantau akun Anda.
   + Kelola cluster dan data, indeks, pengguna dan grup, izin akses, pemantauan, dan acara.

1. Cluster dibuat.

1. **Capella Data Plane** ada di akun AWS yang dikelola Couchbase. Setelah Anda membuat klaster baru, Couchbase Capella menerapkannya di beberapa Availability Zone di Wilayah AWS yang dipilih.

1. Anda dapat mengembangkan dan menerapkan aplikasi Couchbase di VPC di akun AWS Anda. [Biasanya, VPC ini mengakses Capella Data Plane melalui VPC peering.](https://docs.couchbase.com/cloud/clouds/private-network.html)

## Alat
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-tools"></a>
+ [Couchbase Cross Data Center Replication (XDCR)](https://docs.couchbase.com/cloud/current/clusters/xdcr/xdcr.html) membantu mereplikasi data di seluruh cluster yang terletak di penyedia cloud yang berbeda dan pusat data yang berbeda. Ini digunakan untuk memigrasikan data ke Couchbase Capella dari cluster Server Couchbase yang dikelola sendiri.
**catatan**  
XDCR tidak dapat digunakan dengan Couchbase Server Community Edition untuk bermigrasi ke Couchbase Capella. Sebagai gantinya, Anda dapat menggunakan [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html). Untuk informasi selengkapnya, lihat epik *Migrasi data dari Edisi Komunitas*.
+ [Couchbase Shell adalah shell](https://couchbase.sh/docs/) baris perintah untuk Couchbase Server dan Couchbase Capella untuk mengakses cluster Couchbase lokal dan jarak jauh. Dalam pola ini, Couchbase Shell digunakan untuk memigrasikan indeks.
+ [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html) adalah utilitas Couchbase untuk mengekspor data dari cluster Couchbase. Termasuk dalam alat [CLI Server Couchbase](https://docs.couchbase.com/server/current/cli/cli-intro.html).

## Epik
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-epics"></a>

### Siapkan migrasi
<a name="prepare-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Evaluasi ukuran cluster Couchbase Server yang dikelola sendiri. | Masuk ke [Konsol Web Couchbase](https://docs.couchbase.com/server/current/manage/manage-ui/manage-ui.html) untuk Server Couchbase, dan nilai node dan bucket cluster yang dikelola sendiri. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Anda akan menggunakan konfigurasi cluster Couchbase Server yang dikelola sendiri sebagai panduan umum untuk mengukur dan mengonfigurasi cluster target di Couchbase Capella.[Untuk bantuan dengan latihan ukuran Couchbase Capella yang lebih detail, hubungi Couchbase.](https://www.couchbase.com/contact) | Administrator Couchbase | 
| Rekam distribusi Layanan Couchbase di cluster Couchbase Server yang dikelola sendiri.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 
| Rekam alamat IP node cluster Couchbase Server yang dikelola sendiri. | (Abaikan langkah ini jika Anda menggunakan Edisi Komunitas.) Catat alamat IP untuk setiap node di cluster Anda. Mereka akan ditambahkan ke daftar izinkan di cluster Couchbase Capella Anda nanti. | Administrator Couchbase, Administrator sistem | 

### Terapkan dan konfigurasikan sumber daya di Couchbase Capella
<a name="deploy-and-configure-resources-on-couchbase-capella"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih templat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 
| Pilih dan konfigurasikan node. | Pilih dan konfigurasikan node agar sesuai dengan lingkungan cluster Couchbase Server yang dikelola sendiri, termasuk jumlah node, distribusi layanan, komputasi atau RAM, dan penyimpanan.Couchbase Capella menggunakan praktik terbaik penskalaan [multidimensi](https://docs.couchbase.com/cloud/clusters/scale-cluster.html#scale-a-cluster). Layanan dan node hanya dapat dipilih sesuai dengan praktik terbaik penerapan. Ini mungkin berarti bahwa Anda tidak dapat sama persis dengan konfigurasi cluster Couchbase Server yang dikelola sendiri. | Administrator Couchbase | 
| Menyebarkan cluster. | Pilih zona dukungan dan paket dukungan, lalu gunakan cluster. Untuk langkah dan instruksi terperinci, lihat [Membuat klaster](https://docs.couchbase.com/cloud/clusters/create-cluster.html) di dokumentasi Couchbase.Jika Anda menggunakan uji coba gratis Couchbase Capella, Anda harus mengonversinya menjadi akun berbayar sebelum memulai migrasi. **Untuk mengonversi akun Anda, buka bagian **Penagihan** pada Couchbase Capella Control Plane, lalu pilih Tambahkan ID Aktivasi.** [ID Aktivasi dikirim ke alamat email kontak penagihan Anda setelah Anda menyelesaikan perjanjian pembelian dengan Couchbase Sales, atau setelah Anda melakukan pembelian melalui AWS Marketplace.](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) | Administrator Couchbase | 
| Buat pengguna kredenal basis data.  | Pengguna kredenal basis data khusus untuk klaster dan terdiri dari nama pengguna, kata sandi, dan sekumpulan hak istimewa bucket. Pengguna ini diperlukan untuk membuat bucket dan mengakses data bucket. Di Couchbase Capella Control Plane, buat kredensi database untuk cluster baru dengan mengikuti petunjuk di [Configure database credentials](https://docs.couchbase.com/cloud/clusters/manage-database-users.html) dalam dokumentasi Couchbase Capella.Pengguna organisasi memerlukan kredensi peran organisasi yang ditetapkan kepada mereka jika mereka ingin mengakses data bucket pada klaster tertentu, baik dari jarak jauh atau melalui UI Couchbase Capella. Ini terpisah dari kredensi database, yang biasanya digunakan oleh aplikasi dan integrasi. Membuat pengguna organisasi memungkinkan Anda membuat dan mengelola bucket target di cluster Couchbase Capella Anda. | Administrator Couchbase | 
| Jika menggunakan opsi migrasi 2, instal Couchbase Shell. | Anda dapat menginstal Couchbase Shell pada sistem apa pun yang memiliki akses jaringan ke Server Couchbase yang dikelola sendiri dan cluster Couchbase Capella. Untuk informasi selengkapnya, lihat [Menginstal Couchbase Shell versi 1.0.0-beta.5](https://couchbase.sh/docs/#_installation) di dokumentasi Couchbase Shell.Konfirmasikan bahwa Couchbase Shell diinstal [dengan menguji koneksi ke cluster yang dikelola sendiri di terminal](https://couchbase.sh/docs/#_connecting_to_a_cluster) baris perintah. | Administrator Couchbase, Administrator sistem | 
| Izinkan alamat IP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Untuk informasi selengkapnya tentang alamat IP yang diizinkan, lihat [Mengonfigurasi alamat IP yang diizinkan](https://docs.couchbase.com/cloud/get-started/configure-cluster-access.html#allow-ip-address) dalam dokumentasi Couchbase. | Administrator Couchbase, Administrator sistem | 
| Konfigurasikan sertifikat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase, Administrator sistem | 
| Buat file konfigurasi untuk Couchbase Shell. | Buat dotfile konfigurasi di direktori home instalasi Couchbase Shell (misalnya,). `/<HOME_DIRECTORY>/.cbsh/config` Untuk informasi selengkapnya, lihat [Config dotfiles](https://couchbase.sh/docs/#_the_config_dotfiles) dalam dokumentasi Couchbase.Tambahkan properti koneksi untuk cluster sumber dan target ke file konfigurasi. Anda dapat menggunakan contoh file konfigurasi yang ada di bagian *Informasi tambahan* dan mengedit pengaturan untuk cluster Anda. Simpan file konfigurasi dengan pengaturan yang diperbarui ke `.cbsh` folder (misalnya,`/<HOME_DIRECTORY>/.cbsh/config`). | Administrator Couchbase, Administrator sistem | 
| Buat ember target. | Untuk setiap bucket sumber, buat satu bucket target di cluster Couchbase Capella Anda dengan mengikuti petunjuk di [Buat bucket dalam dokumentasi](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket) Couchbase.Konfigurasi bucket target Anda harus sesuai dengan nama bucket, pengaturan memori, dan pengaturan resolusi konflik bucket di cluster Couchbase Server yang dikelola sendiri. | Administrator Couchbase | 
| Buat cakupan dan koleksi. | Setiap bucket berisi cakupan dan koleksi default dengan keyspace`_default._default`. Jika Anda menggunakan ruang kunci lain untuk cakupan dan koleksi Anda, Anda harus membuat ruang kunci yang identik di cluster Capella target.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)<pre>scopes --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope | where scope != "_default" | each { |it| scopes create $it.scope --clusters "Capella-Cluster" }<br />collections --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope collection | where $it.scope != "_default" | where $it.collection != "_default" | each { |it| collections create $it.collection --clusters "Capella-Cluster" --bucket <BUCKET_NAME> --scope $it.scope }</pre> | Administrator Couchbase | 

### Migrasi data dari Enterprise Edition
<a name="migrate-the-data-from-enterprise-edition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka port TCP pada node cluster Couchbase Server yang dikelola sendiri. | Pastikan port yang sesuai terbuka untuk komunikasi XDCR pada node cluster Couchbase Server yang dikelola sendiri. Untuk informasi selengkapnya, lihat dokumentasi [port Server Couchbase](https://docs.couchbase.com/server/current/install/install-ports.html#ports-listed-by-communication-path). | Administrator Couchbase, Administrator sistem | 
| Jika Anda menggunakan Couchbase Server Enterprise Edition, siapkan Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 
| Mulai Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 

### Migrasikan indeks dengan menggunakan opsi 1
<a name="migrate-the-indexes-by-using-option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan indeks cluster yang dikelola sendiri ke Couchbase Capella. | Kami merekomendasikan proses ini jika Anda memiliki kurang dari 50 indeks untuk dimigrasi. Jika Anda memiliki lebih dari 50 indeks untuk dimigrasi, sebaiknya gunakan opsi migrasi 2.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase, Administrator sistem | 

### Migrasikan indeks dengan menggunakan opsi 2
<a name="migrate-the-indexes-by-using-option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan definisi indeks.  | Kami merekomendasikan proses ini jika Anda memiliki lebih dari 50 indeks untuk dimigrasi. Jika Anda memiliki kurang dari 50 indeks untuk dimigrasi, sebaiknya gunakan opsi migrasi 1.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase, Administrator sistem | 
| Membangun definisi indeks.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase, Administrator sistem | 

### Migrasikan indeks pencarian teks lengkap
<a name="migrate-full-text-search-indexes"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan indeks pencarian teks lengkap klaster yang dikelola sendiri ke Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 

### Migrasi data dari Couchbase Community Edition
<a name="migrate-data-from-couchbase-community-edition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ekspor data dari Edisi Komunitas Server Couchbase yang dikelola sendiri. | XDCR terenkripsi tidak tersedia di Couchbase Community Edition. Anda dapat mengekspor data dari Couchbase Community Edition dan kemudian mengimpor data secara manual ke Couchbase Capella.Untuk mengekspor data dari bucket sumber, gunakan `cbexport` pada baris perintah.Perintah berikut diberikan sebagai contoh.<pre>cbexport json \<br />--cluster localhost \<br />--bucket <SOURCE BUCKET NAME> \<br />--format lines \<br />--username <USERNAME> \<br />--password <PASSWORD> \<br />--include-key cbkey \<br />--scope-field cbscope \<br />--collection-field cbcoll \<br />--output cbexported_data.json</pre>Perhatikan bahwa`cbkey`,, `cbscope``cbcoll`, dan `cbexported_data.json` merupakan label sewenang-wenang. Mereka akan direferensikan nanti dalam proses, jadi jika Anda memilih untuk menamainya secara berbeda, catat itu. | Administrator Couchbase | 
| Impor data ke Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Untuk file besar, Couchbase Capella mendukung impor baris perintah menggunakan cURL. Anda dapat menjelajahi opsi Impor secara lebih rinci di [Impor data](https://docs.couchbase.com/cloud/clusters/data-service/import-data-documents.html) dalam dokumentasi Couchbase Capella. | Administrator Couchbase | 

### Uji dan verifikasi migrasi
<a name="test-and-verify-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi migrasi data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 
| Verifikasi migrasi indeks.  | **Di Couchbase Capella Control Plane, di daftar dropdown **Tools** untuk cluster target Anda, pilih Indexes.** Verifikasi bahwa indeks dimigrasikan dan dibuat. | Administrator Couchbase | 
| Verifikasi hasil kueri.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 
| Verifikasi hasil pencarian teks lengkap (berlaku jika Anda memigrasikan indeks FTS). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrator Couchbase | 

## Sumber daya terkait
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-resources"></a>

**Siapkan migrasi**
+ [Memulai dengan uji coba gratis Couchbase Capella](https://cloud.couchbase.com/sign-up)
+ [Persyaratan penyedia cloud untuk Couchbase Capella](https://docs.couchbase.com/cloud/reference/aws.html)
+ [Pedoman ukuran Couchbase Capella](https://docs.couchbase.com/cloud/clusters/sizing.html)

**Migrasi data dan indeks**
+ [Couchbase XDCR](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html)
+ [Dokumentasi Couchbase Shell](https://couchbase.sh/docs/)

**Couchbase SLAs Capella dan dukungan**
+ Perjanjian tingkat [layanan Couchbase Capella](https://www.couchbase.com/capellasla) () SLAs
+ [Kebijakan dukungan Couchbase Capella Service](https://www.couchbase.com/support-policy/cloud)

## Informasi tambahan
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-additional"></a>

Kode berikut adalah contoh [file konfigurasi untuk Couchbase Shell](https://couchbase.sh/docs/#_the_config_dotfiles). 

```
Version = 1
 
[[clusters]]
identifier = "On-Prem-Cluster"
hostnames = ["<SELF_MANAGED_COUCHBASE_CLUSTER>"]
default-bucket = "travel-sample"
username = "<SELF_MANAGED_ADMIN>"
password = "<SELF_MANAGED_ADMIN_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_SELF_MANAGED_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
 
[[clusters]]
identifier = "Capella-Cluster"
hostnames = ["<COUCHBASE_CAPELLA_ENDPOINT>"]
default-bucket = "travel-sample"
username = "<CAPELLA_DATABASE_USER>"
password = "<CAPELLA_DATABASE_USER_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_COUCHBASE_CAPELLA_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
```

Sebelum Anda menyimpan file konfigurasi, gunakan tabel berikut untuk memastikan bahwa Anda menambahkan sumber dan informasi cluster target Anda sendiri.

 


|  |  | 
| --- |--- |
| <SELF\$1MANAGED\$1COUCHBASE\$1CLUSTER> | Gunakan alamat IP untuk cluster Couchbase Server yang dikelola sendiri. | 
| <SELF\$1MANAGED\$1ADMIN> | Gunakan pengguna administrator untuk cluster Couchbase Server yang dikelola sendiri. | 
| <ABSOLUTE\$1PATH\$1TO\$1SELF\$1MANAGED\$1ROOT\$1CERT> | Gunakan jalur absolut ke file sertifikat root yang disimpan untuk cluster Couchbase Server yang dikelola sendiri. | 
| <COUCHBASE\$1CAPELLA\$1ENDPOINT> | Gunakan titik akhir koneksi untuk cluster Couchbase Capella Anda. | 
| <CAPELLA\$1DATABASE\$1USER> | Gunakan pengguna database untuk cluster Couchbase Capella Anda. | 
| <CAPELLA\$1DATABASE\$1USER\$1PWD> | Gunakan kata sandi pengguna database untuk cluster Couchbase Capella Anda. | 
| <ABSOLUTE\$1PATH\$1TO\$1COUCHBASE\$1CAPELLA\$1ROOT\$1CERT> | Gunakan jalur absolut ke file sertifikat root yang disimpan untuk cluster Couchbase Capella Anda. | 

# Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2"></a>

*Neal Ardeljan dan Afroz Khan, Amazon Web Services*

## Ringkasan
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-summary"></a>

Pola ini memandu Anda melalui langkah-langkah untuk bermigrasi dari Red Hat Enterprise Linux (RHEL) 6.9 lokal atau sistem yang lebih baru yang menjalankan IBM WebSphere Application Server (WAS) ke RHEL 8 yang menjalankan Apache Tomcat pada instans Amazon Elastic Compute Cloud (Amazon). EC2 

Pola ini dapat diterapkan ke versi sumber dan target berikut: 
+ WebSphere Application Server 7.x ke Apache Tomcat 8 (dengan Java 7 atau lebih baru) 
+ WebSphere Application Server 8.x ke Apache Tomcat 8 (dengan Java 7 atau lebih baru) 
+ WebSphere Application Server 8.5.5.x ke Apache Tomcat 9 (dengan Java 8 atau lebih baru) 
+ WebSphere Application Server 8.5.5.x ke Apache Tomcat 10 (dengan Java 8 atau lebih baru) 

## Prasyarat dan batasan
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-prereqs"></a>

**Prasyarat******
+ Akun AWS yang aktif 
+ Sumber kode Java, dengan asumsi berikut:
  + Menggunakan Java Development Kit (JDK) versi Java 7 atau yang lebih baru 
  + Menggunakan kerangka Spring atau Apache Struts 
  + Tidak menggunakan kerangka kerja Enterprise Java Beans (EJB) atau fungsionalitas WebSphere server lainnya yang tidak tersedia untuk Tomcat
  + Terutama menggunakan servlet atau Java Server Pages () JSPs 
  + Menggunakan konektor Java Database Connectivity (JDBC) untuk terhubung ke database  
+ Sumber IBM WebSphere Application Server versi 7.x atau lebih tinggi 
+ Target Apache Tomcat versi 8.5 atau lebih tinggi  

## Arsitektur
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-architecture"></a>

******Tumpukan teknologi sumber**
+ Aplikasi web yang dibangun menggunakan kerangka Apache Struts Model-View-Controller (MVC) 
+ Aplikasi web yang berjalan pada IBM WebSphere Application Server versi 7.x atau 8.x
+ Aplikasi web yang menggunakan konektor Lightweight Directory Access Protocol (LDAP) untuk terhubung ke direktori LDAP (iPlanet/eTrust) 
+ Aplikasi yang menggunakan konektivitas IBM Tivoli Access Manager (TAM) untuk memperbarui kata sandi pengguna TAM (dalam implementasi saat ini, aplikasi menggunakan PD.jar)

******Database lokal**
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)
+ Oracle Database 12c Rilis 2 (12.2.0.1)
+ Oracle Database 12c Rilis 1 (12.1.0.2)

**Tumpukan teknologi target**
+ Apache Tomcat versi 8 (atau yang lebih baru) berjalan di RHEL pada sebuah instance EC2 
+ Amazon Relational Database Service (Amazon RDS) untuk Oracle

Untuk informasi selengkapnya tentang versi Oracle yang didukung oleh Amazon RDS, lihat situs web [Amazon RDS](https://aws.amazon.com/rds/oracle/) for Oracle. 

**Arsitektur target**

![\[Arsitektur untuk bermigrasi dari IBM WebSphere ke Apache Tomcat di Amazon EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/96f91201-e0a6-4d3f-a94e-7bd68a59cc4e/images/11afe7c0-b400-423b-9dfe-02a915fe47ff.png)


## Alat
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-tools"></a>
+ Tingkat aplikasi: Membangun kembali aplikasi Java menjadi file WAR.
+ Tingkat basis data: Pencadangan dan pemulihan asli Oracle.
+ Alat migrasi Apache Tomcat untuk Jakarta EE. Alat ini mengambil aplikasi web yang ditulis untuk Java EE 8 yang berjalan pada Apache Tomcat 9 dan mengubahnya secara otomatis untuk berjalan di Apache Tomcat 10, yang mengimplementasikan Jakarta EE 9.

## Epik
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lengkapi penemuan aplikasi, jejak status saat ini, dan baseline kinerja. |  | BA, Pimpinan Migrasi | 
| Validasi versi basis data sumber dan target. |  | DBA | 
| Identifikasi persyaratan perangkat keras untuk EC2 instance server target. |  | DBA, SysAdmin | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, SysAdmin | 
| Pilih jenis EC2 instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin | 
| Identifikasi strategi dan perkakas migrasi aplikasi. |  | DBA, Pimpinan Migrasi | 
| Lengkapi desain migrasi dan panduan migrasi untuk aplikasi. |  | Bangun Pimpinan, Pimpinan Migrasi | 
| Lengkapi runbook migrasi aplikasi. |  | Membangun Timbal, Cutover Lead, Testing Lead, Migration Lead | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). |  | SysAdmin | 
| Buat grup keamanan. |  | SysAdmin | 
| Konfigurasikan dan mulai Amazon RDS for Oracle. |  | DBA, SysAdmin | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat atau dapatkan akses ke titik akhir untuk mengambil file cadangan database. |  | DBA | 
| Gunakan mesin database asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | Untuk detailnya, lihat “Memigrasi objek dan data database” di bagian *Informasi tambahan*. | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ajukan permintaan perubahan (CR) untuk migrasi. |  | Timbal Cutover | 
| Dapatkan persetujuan CR untuk migrasi. |  | Timbal Cutover | 
| Ikuti strategi migrasi aplikasi per runbook migrasi aplikasi. | Untuk detailnya, lihat “Menyiapkan tingkat aplikasi” di bagian *Informasi tambahan*. | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Tingkatkan aplikasi (jika perlu). |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Lengkapi tes fungsional, non-fungsional, validasi data, SLA, dan kinerja. |  | Menguji Lead, Pemilik Aplikasi, Pengguna Aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan tanda tangan dari pemilik aplikasi atau pemilik bisnis. |  | Timbal Cutover | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, Insinyur Migrasi, SysAdmin | 
| Meninjau dan memvalidasi dokumen proyek. |  | Pimpinan Migrasi | 
| Kumpulkan metrik seperti waktu untuk bermigrasi, persentase tugas manual versus otomatis, dan penghematan biaya. |  | Pimpinan Migrasi | 
| Tutup proyek dan berikan umpan balik. |  | Pemimpin Migrasi, Pemilik Aplikasi | 

## Sumber daya terkait
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-resources"></a>

**Referensi**
+ [Dokumentasi Apache Tomcat 10.0](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
+ [Dokumentasi Apache Tomcat 9.0](https://tomcat.apache.org/tomcat-9.0-doc/index.html)
+ [Dokumentasi Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc)
+ [Panduan instalasi Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc/setup.html)
+ [Dokumentasi Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)
+ [Situs web Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle dan Amazon Web Services](https://aws.amazon.com/oracle/) 
+ [Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Penyebaran Multi-AZ Amazon RDS](https://aws.amazon.com/rds/details/multi-az/) 

**Tutorial dan video**
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

## Informasi tambahan
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-additional"></a>

**Migrasi objek database dan data**

Misalnya, jika Anda menggunakan backup/restore utilitas Oracle asli:

1. Buat cadangan Amazon Simple Storage Service (Amazon S3) untuk file cadangan database (opsional).

1. Cadangkan data Oracle DB ke folder bersama jaringan.

1. Masuk ke server pementasan migrasi untuk memetakan folder berbagi jaringan.

1. Salin data dari folder berbagi jaringan ke bucket S3.

1. Minta penerapan Amazon RDS Multi-AZ untuk Oracle.

1. Pulihkan cadangan database lokal ke Amazon RDS for Oracle.

**Menyiapkan tingkat aplikasi**

1. Instal Tomcat 8 (atau 9/10) dari situs web Apache Tomcat.

1. Package aplikasi dan library bersama ke dalam file WAR.

1. Menyebarkan file WAR di Tomcat.

1. Pantau log awal ke `Linux cat` pustaka bersama yang hilang dari WebSphere.

1. Tonton catatan awal ke ekstensi deskriptor penerapan WebSphere -spesifik `Linux cat` apa pun.

1. Kumpulkan pustaka Java dependen yang hilang dari WebSphere server.

1. Ubah elemen deskriptor penerapan WebSphere khusus -spesifik dengan padanan yang kompatibel dengan TomCat.

1. Bangun kembali file WAR dengan pustaka Java dependen dan deskriptor penerapan yang diperbarui.

1. Perbarui konfigurasi LDAP, konfigurasi database, dan koneksi uji (lihat [Realm Configuration HOW-TO dan [JNDI Datasource](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html) HOW-TO](https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html) dalam dokumentasi Apache Tomcat).

1. Uji aplikasi yang diinstal terhadap database Amazon RDS for Oracle yang dipulihkan.

1. Buat Amazon Machine Image (AMI) untuk Linux dari EC2 instance.

1. Luncurkan arsitektur lengkap dengan grup Application Load Balancer dan Auto Scaling.

1. Perbarui URLs (dengan menggunakan persimpangan WebSeal) untuk menunjuk ke Application Load Balancer.

1. Perbarui database manajemen konfigurasi (CMDB). 

# Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2 dengan Auto Scaling
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling"></a>

*Kevin Yung dan Afroz Khan, Amazon Web Services*

## Ringkasan
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-summary"></a>

Pola ini memberikan panduan untuk memigrasikan aplikasi Java dari IBM WebSphere Application Server ke Apache Tomcat pada instans Amazon Elastic Compute Cloud (Amazon EC2) dengan Amazon Auto EC2 Scaling diaktifkan. 

Dengan menggunakan pola ini, Anda dapat mencapai:
+ Pengurangan biaya lisensi IBM
+ Ketersediaan tinggi menggunakan penyebaran Multi-AZ
+ Peningkatan ketahanan aplikasi dengan Amazon EC2 Auto Scaling

## Prasyarat dan batasan
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-prerequisites-and-limitations"></a>

**Prasyarat**
+ Aplikasi Java (versi 7. *x* atau 8. *x*) harus dikembangkan di tumpukan LAMP.
+ Status target adalah untuk meng-host aplikasi Java di host Linux. Pola ini telah berhasil diterapkan di lingkungan Red Hat Enterprise Linux (RHEL) 7. Distribusi Linux lainnya dapat mengikuti pola ini, tetapi konfigurasi distribusi Apache Tomcat harus direferensikan.
+ Anda harus memahami dependensi aplikasi Java.
+ Anda harus memiliki akses ke kode sumber aplikasi Java untuk membuat perubahan. 

**Keterbatasan dan perubahan replatforming**
+ Anda harus memahami komponen arsip perusahaan (EAR) dan memverifikasi bahwa semua pustaka dikemas dalam file WAR komponen web. Anda perlu mengkonfigurasi [Plugin Apache Maven WAR](https://maven.apache.org/plugins/maven-war-plugin/) dan menghasilkan artefak file WAR.
+ Saat menggunakan Apache Tomcat 8, ada konflik yang diketahui antara servlet-api.jar dan paket aplikasi built-in file jar. Untuk mengatasi masalah ini, hapus servlet-api.jar dari paket aplikasi.
+ [Anda harus mengkonfigurasi WEB-INF/sumber daya yang terletak di *classpath* konfigurasi Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html) Secara default, pustaka JAR tidak dimuat dalam direktori. *Atau, Anda dapat menyebarkan semua sumber daya di bawahsrc/main/resources.*
+ Periksa akar konteks hard-code dalam aplikasi Java, dan perbarui [root konteks baru Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context)
+ **Untuk mengatur opsi runtime JVM, Anda dapat membuat file konfigurasi setenv.sh di folder bin Apache Tomcat; misalnya, JAVA\$1OPTS, JAVA\$1HOME, dll.**  
+ Otentikasi dikonfigurasi pada tingkat kontainer dan diatur sebagai ranah dalam konfigurasi Apache Tomcat. Otentikasi dibuat untuk salah satu dari tiga bidang berikut: 
  + [JDBC Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm) mencari pengguna dalam database relasional yang diakses oleh driver JDBC.
  + [DataSource Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm) mencari pengguna dalam database yang diakses oleh JNDI. 
  + [JNDI Directory Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm) mencari pengguna di direktori Lightweight Directory Access Protocol (LDAP) yang diakses oleh penyedia JNDI. Pencarian membutuhkan: 
    + Detail koneksi LDAP: basis pencarian pengguna, filter pencarian, basis peran, filter peran 
    + Kunci JNDI Directory Realm: Menghubungkan ke LDAP, mengautentikasi pengguna, dan mengambil semua grup di mana pengguna menjadi anggota
+ Otorisasi: Dalam kasus wadah dengan otorisasi berbasis peran yang memeriksa batasan otorisasi di web.xml, sumber daya web harus didefinisikan dan dibandingkan dengan peran yang ditentukan dalam batasan. Jika LDAP tidak memiliki pemetaan peran grup, Anda harus menyetel atribut < security-role-ref > di web.xml untuk mencapai pemetaan peran grup. Untuk melihat contoh dokumen konfigurasi, lihat [dokumentasi Oracle](https://docs.oracle.com/cd/E19226-01/820-7627/bncav/index.html). 
+ Koneksi database: Buat definisi sumber daya di Apache Tomcat dengan URL titik akhir Amazon Relational Database Service (Amazon RDS) dan detail koneksi. Perbarui kode aplikasi untuk referensi DataSource dengan menggunakan pencarian JNDI. Koneksi DB yang ada yang didefinisikan tidak WebSphere akan berfungsi, karena menggunakan nama WebSphere JNDI. Anda dapat menambahkan <resource-ref>entri di web.xml dengan nama JNDI dan definisi DataSource tipe. Untuk melihat contoh dokumen konfigurasi, lihat dokumentasi [Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
+ Logging: Secara default, Apache Tomcat log ke konsol atau ke file log. [Anda dapat mengaktifkan penelusuran tingkat alam dengan memperbarui *logging.properties (lihat Logging* in Tomcat).](https://tomcat.apache.org/tomcat-8.0-doc/logging.html) *Jika Anda menggunakan Apache Log4j untuk menambahkan log ke file, Anda harus mengunduh tomcat-Juli dan menambahkannya ke classpath.*
+ Manajemen sesi: Jika Anda mempertahankan IBM WebSeal untuk penyeimbangan beban aplikasi dan manajemen sesi, tidak diperlukan perubahan. [Jika Anda menggunakan Application Load Balancer atau Network Load Balancer di AWS untuk mengganti komponen IBM WebSeal, Anda harus menyiapkan manajemen sesi dengan menggunakan instans ElastiCache Amazon dengan klaster Memcached dan menyiapkan Apache Tomcat untuk menggunakan manajemen sesi sumber terbuka.](https://github.com/magro/memcached-session-manager) 
+ Jika Anda menggunakan proxy forward IBM WebSeal, Anda harus menyiapkan Network Load Balancer baru di AWS. Gunakan yang IPs disediakan oleh Network Load Balancer untuk konfigurasi persimpangan WebSeal.
+ Konfigurasi SSL: Kami menyarankan Anda menggunakan Secure Sockets Layer (SSL) untuk end-to-end komunikasi. Untuk mengatur konfigurasi server SSL di Apache Tomcat, ikuti petunjuk dalam dokumentasi [Apache](https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html) Tomcat. 

## Arsitektur
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-architecture"></a>

**Tumpukan teknologi sumber**
+ Server WebSphere Aplikasi IBM

 

**Tumpukan teknologi target**
+ Arsitekturnya menggunakan [Elastic Load Balancing (versi 2](https://docs.aws.amazon.com/elasticloadbalancing/)). Jika Anda menggunakan IBM WebSeal untuk manajemen Identifikasi dan penyeimbangan beban, Anda dapat memilih Network Load Balancer di AWS untuk diintegrasikan dengan proxy balik IBM WebSeal.
+ Aplikasi Java dikerahkan ke server aplikasi Apache Tomcat, yang berjalan pada EC2 instance dalam grup Amazon Auto [Scaling. EC2 ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) Anda dapat menyiapkan [kebijakan penskalaan](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) berdasarkan CloudWatch metrik Amazon seperti pemanfaatan CPU. 
+ Jika Anda menghentikan penggunaan IBM WebSeal untuk load balancing, Anda dapat menggunakan [Amazon untuk Memcached ElastiCache untuk manajemen sesi](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html).
+ Untuk database back-end, Anda dapat menerapkan [Ketersediaan Tinggi (Multi-AZ) untuk Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) dan memilih jenis mesin database.

 

**Arsitektur target**

![\[AWS Cloud architecture with VPC, two availability zones, load balancer, and database components.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/52b91dab-7b3b-4751-abe2-25e7c7cd8d89/images/25125023-9a81-452a-9ada-184e2416cc02.png)


## Alat
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ Apache Tomcat (versi 7. *x* atau 8. *x*)
+ RHEL 7 atau Centos 7
+ [Penyebaran Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache untuk Memcached (opsional](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html))

## Epik
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-epics"></a>

### Siapkan VPC
<a name="set-up-the-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). |  |  | 
| Buat subnet. |  |  | 
| Buat tabel routing jika perlu. |  |  | 
| Buat daftar kontrol akses jaringan (ACLs). |  |  | 
| Siapkan AWS Direct Connect atau koneksi VPN perusahaan. |  |  | 

### Memplatform ulang aplikasi
<a name="replatform-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Refactor aplikasi membangun konfigurasi Maven untuk menghasilkan artefak WAR. |  |  | 
| Refactor sumber data ketergantungan aplikasi di Apache Tomcat. |  |  | 
| Refactor kode sumber aplikasi untuk menggunakan nama JNDI di Apache Tomcat. |  |  | 
| Menyebarkan artefak WAR ke Apache Tomcat. |  |  | 
| Validasi dan tes aplikasi lengkap. |  |  | 

### Konfigurasikan jaringan
<a name="configure-the-network"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan firewall perusahaan untuk memungkinkan koneksi ke layanan ketergantungan. |  |  | 
| Konfigurasikan firewall perusahaan untuk memungkinkan akses pengguna akhir ke Elastic Load Balancing di AWS. |  |  | 

### Buat infrastruktur aplikasi
<a name="create-the-application-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membuat dan menyebarkan aplikasi pada sebuah EC2 instance. |  |  | 
| Buat Amazon ElastiCache untuk klaster Memcached untuk manajemen sesi. |  |  | 
| Buat instans Amazon RDS Multi-AZ untuk database backend. |  |  | 
| Buat sertifikat SSL dan impor ke AWS Certificate Manager (ACM). |  |  | 
| Instal sertifikat SSL pada penyeimbang beban. |  |  | 
| Instal sertifikat SSL untuk server Apache Tomcat. |  |  | 
| Validasi dan tes aplikasi lengkap. |  |  | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan infrastruktur yang ada. |  |  | 
| Kembalikan database dari produksi ke Amazon RDS. |  |  | 
| Potong aplikasi dengan membuat perubahan DNS. |  |  | 

## Sumber daya terkait
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-related-resources"></a>

**Referensi**
+ [Dokumentasi Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html)
+ [Panduan instalasi Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html)
+ [Dokumentasi Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)
+ [Penyebaran Multi-AZ Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache untuk Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html)

**Tutorial dan video**
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrasi aplikasi.NET dari Microsoft Azure App Service ke AWS Elastic Beanstalk
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk"></a>

*Raghavender Madamshitti, Amazon Web Services*

## Ringkasan
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-summary"></a>

Pola ini menjelaskan cara memigrasikan aplikasi web.NET yang dihosting di Microsoft Azure App Service ke AWS Elastic Beanstalk. Ada dua cara untuk memigrasikan aplikasi ke Elastic Beanstalk:
+ Gunakan AWS Toolkit for Visual Studio - Plugin untuk Microsoft Visual Studio IDE ini menyediakan cara termudah dan paling mudah untuk menerapkan aplikasi.NET kustom ke AWS. Anda dapat menggunakan pendekatan ini untuk menyebarkan kode.NET langsung ke AWS dan untuk membuat sumber daya pendukung, seperti Amazon Relational Database Service (Amazon RDS) untuk database SQL Server, langsung dari Visual Studio.
+ Unggah dan terapkan ke Elastic Beanstalk - Setiap Layanan Aplikasi Azure menyertakan layanan latar belakang yang disebut Kudu, yang berguna untuk menangkap dump memori dan log penyebaran, melihat parameter konfigurasi, dan mengakses paket penerapan. Anda dapat menggunakan konsol Kudu untuk mengakses konten Azure App Service, mengekstrak paket deployment, dan kemudian mengunggah paket ke Elastic Beanstalk dengan menggunakan opsi upload dan deploy di konsol Elastic Beanstalk.

Pola ini menjelaskan pendekatan kedua (mengunggah aplikasi Anda ke Elastic Beanstalk melalui Kudu). Pola ini juga menggunakan layanan AWS berikut: AWS Elastic Beanstalk, Amazon Virtual Private Cloud (Amazon VPC), Amazon, Amazon, Amazon Elastic Compute Cloud ( CloudWatchAmazon) Auto Scaling, EC2 Amazon Simple Storage Service (Amazon S3), dan Amazon Route 53. 

Aplikasi web.NET digunakan untuk AWS Elastic Beanstalk, yang berjalan di Amazon EC2 Auto Scaling Group. Anda dapat menyiapkan kebijakan penskalaan berdasarkan CloudWatch metrik Amazon seperti pemanfaatan CPU. Untuk database, Anda dapat menggunakan Amazon RDS di lingkungan multi-AZ, atau Amazon DynamoDB, tergantung pada aplikasi dan persyaratan bisnis Anda. 

## Prasyarat dan batasan
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Aplikasi web.NET yang berjalan di Azure App Service
+ Izin untuk menggunakan konsol Azure App Service Kudu

**Versi produk**
+ .NET Core (x64) 1.0.1, 2.0.0, atau yang lebih baru, atau .NET Framework 4.x, 3.5 (lihat [.NET pada](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html) riwayat platform Windows Server)
+ Internet Information Services (IIS) versi 8.0 atau yang lebih baru, berjalan pada Windows Server 2012 atau yang lebih baru
+ .NET 2.0 atau 4.0 Runtime.

## Arsitektur
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-architecture"></a>

**Tumpukan teknologi sumber**
+  Aplikasi yang dikembangkan menggunakan .NET Framework 3.5 atau yang lebih baru, atau.NET Core 1.0.1, 2.0.0, atau yang lebih baru, dan di-host di Azure App Service (aplikasi web atau aplikasi API)

**Tumpukan teknologi target**
+ AWS Elastic Beanstalk berjalan di grup Amazon EC2 Auto Scaling

**Arsitektur migrasi**

![\[Kudu mengakses konten Azure App Service, mendapatkan paket penerapan, mengunggahnya ke Elastic Beanstalk.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/dd15f97b-9cf2-4bcc-af45-44df1c4ca4a5.png)


 

**Alur kerja penerapan**

![\[Alur kerja penerapan untuk membuat aplikasi, mempublikasikannya ke lingkungan peluncuran, dan kemudian mengelola lingkungan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/accec77d-c753-4166-8f27-bd4932b3d884.png)


## Alat
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-tools"></a>

**Alat**
+ .NET Core atau .NET Framework
+ C\$1
+ IIS
+ Konsol Kudu

**Layanan dan fitur AWS**
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) — Elastic Beanstalk easy-to-use adalah layanan untuk menyebarkan dan menskalakan aplikasi web.NET. Elastic Beanstalk secara otomatis mengelola penyediaan kapasitas, load balancing, dan auto scaling.
+ [Grup EC2 Auto Scaling Amazon](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) — Elastic Beanstalk menyertakan grup Auto Scaling yang mengelola instans Amazon di lingkungan. EC2 Dalam lingkungan instans tunggal, grup Auto Scaling memastikan bahwa selalu ada satu instans yang berjalan. Di lingkungan load-balanced, Anda dapat mengonfigurasi grup dengan berbagai instance untuk dijalankan, dan Amazon EC2 Auto Scaling menambahkan atau menghapus instance sesuai kebutuhan, berdasarkan pemuatan.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Saat Anda mengaktifkan load balancing di AWS Elastic Beanstalk, Elastic Load Balancing akan menciptakan penyeimbang beban yang mendistribusikan lalu lintas antar instans di lingkungan. EC2 
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) - Elastic Beanstalk secara otomatis CloudWatch menggunakan Amazon untuk memberikan informasi tentang sumber daya aplikasi dan lingkungan Anda. Amazon CloudWatch mendukung metrik standar, metrik khusus, dan alarm.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) - Amazon Route 53 adalah layanan web Sistem Nama Domain (DNS) cloud yang sangat tersedia dan dapat diskalakan. Anda dapat menggunakan catatan alias Route 53 untuk memetakan nama domain khusus ke lingkungan AWS Elastic Beanstalk.

## Epik
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-epics"></a>

### Menyiapkan VPC
<a name="set-up-a-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan cloud pribadi virtual (VPC). | Di akun AWS Anda, buat VPC dengan informasi yang diperlukan. | Administrator sistem | 
| Buat subnet. | Buat dua atau lebih subnet di VPC Anda. | Administrator sistem | 
| Buat tabel rute. | Buat tabel rute, berdasarkan kebutuhan Anda. | Administrator sistem | 

### Mengatur Elastic Beanstalk
<a name="set-up-elastic-beanstalk"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Akses konsol Azure App Service Kudu. | **Akses Kudu melalui portal Azure dengan menavigasi ke dasbor App Service, lalu pilih **Advanced** Tools, Go.** Atau, Anda dapat memodifikasi URL Layanan Aplikasi Azure sebagai berikut:`https://<appservicename>.scm.azurewebsites.net`. | Pengembang aplikasi, Administrator sistem | 
| Unduh paket penyebaran dari Kudu. | Arahkan ke Windows PowerShell dengan memilih **DebugConsole**opsi. Ini akan membuka konsol Kudo. Buka `wwwroot` folder dan unduh. Ini akan mengunduh paket penyebaran Layanan Aplikasi Azure sebagai file zip. Sebagai contoh, lihat lampirannya. | Pengembang aplikasi, Administrator sistem | 
| Buat paket untuk Elastic Beanstalk. | Buka zip paket penerapan yang Anda unduh dari Azure App Service. Buat file JSON bernama `aws-windows-deployment-manifest.json` (file ini hanya diperlukan untuk aplikasi.NET Core). Buat file zip yang menyertakan `aws-windows-deployment-manifest.json` dan file paket penerapan Layanan Aplikasi Azure. Sebagai contoh, lihat lampirannya. | Pengembang aplikasi, Administrator sistem | 
| Buat aplikasi Elastic Beanstalk baru. | Buka Konsol Elastic Beanstalk. Pilih aplikasi yang sudah ada atau buat aplikasi baru. | Pengembang aplikasi, Administrator sistem | 
| Buat lingkungan. | **Di menu Tindakan konsol Elastic **Beanstalk**, pilih Buat lingkungan.** Pilih lingkungan server web dan platform.NET/IIS. Untuk kode aplikasi, pilih **Unggah**. **Unggah file zip yang Anda siapkan untuk Elastic Beanstalk, lalu pilih Create Environment.** | Pengembang aplikasi, Administrator sistem | 
| Konfigurasikan Amazon CloudWatch. | Secara default, CloudWatch pemantauan dasar diaktifkan. **Jika Anda ingin mengubah konfigurasi, di wizard Elastic Beanstalk, pilih aplikasi yang diterbitkan, lalu pilih Monitoring.** | Administrator sistem | 
| Verifikasi bahwa paket penerapan ada di Amazon S3.  | Ketika lingkungan aplikasi telah dibuat, Anda dapat menemukan paket penerapan di bucket S3. | Pengembang aplikasi, Administrator sistem | 
| Uji aplikasinya. | Ketika lingkungan telah dibuat, gunakan URL yang disediakan di konsol Elastic Beanstalk untuk menguji aplikasi. | Administrator sistem | 

## Sumber daya terkait
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-resources"></a>
+ [Konsep AWS Elastic Beanstack](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.html) (dokumentasi Elastic Beanstalk)
+ [Memulai dengan.NET pada Elastic Beanstalk (dokumentasi](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-getstarted.html) Elastic Beanstalk)
+ [Konsol Kudu](https://github.com/projectkudu/kudu/wiki/Kudu-console) () GitHub
+ [Menggunakan “Kudu” untuk Mengelola Aplikasi Web Azure (artikel](https://www.gslab.com/blogs/kudu-azure-web-app/) GS Lab)
+ Penerapan [Batang Kacang Elastis ASP.NET Core Kustom](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-beanstalk-custom-netcore.html) (Panduan Pengguna AWS Toolkit for Visual Studio)
+ [Dokumentasi Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Platform yang Didukung AWS Elastic Beanstalk (Dokumentasi Elastic Beanstalk](https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/platforms/platforms-supported.html))
+ [Menerapkan Aplikasi Web ke AWS (artikel](https://www.c-sharpcorner.com/article/deploying-a-web-application-to-aws/) C\$1 Corner)
+ [Menskalakan Ukuran Grup Auto Scaling Anda (dokumentasi](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) Amazon EC2 )
+ [Ketersediaan Tinggi (Multi-AZ) untuk Amazon RDS (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) Amazon RDS)

## Informasi tambahan
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-additional"></a>

**Catatan**
+ Jika Anda memigrasikan database lokal atau Azure SQL Server ke Amazon RDS, Anda juga harus memperbarui detail koneksi database. 
+ Untuk tujuan pengujian, contoh aplikasi demo dilampirkan.

## Lampiran
<a name="attachments-df606a2d-b0a8-4035-b377-0a760e7300c9"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)

# Bermigrasi dari Oracle WebLogic ke Apache Tomcat (ToMee) di Amazon ECS
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs"></a>

*Anya Epishcheva dan Harshad Gohil, Amazon Web Services*

## Ringkasan
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-summary"></a>

Pola ini membahas langkah-langkah untuk memigrasikan sistem Oracle Solaris SPARC lokal yang menjalankan Oracle WebLogic ke instalasi berbasis kontainer Docker yang menjalankan Apache [ToMee (Apache](http://tomee.apache.org/) Tomcat dengan dukungan kontainer tambahan) dengan Amazon Elastic Container Service (Amazon ECS). 

Untuk informasi tentang migrasi database yang terkait dengan aplikasi yang Anda migrasi dari Oracle WebLogic ke Tomcat, lihat pola migrasi database dalam katalog ini. 

**Praktik terbaik**

Langkah-langkah untuk memigrasi aplikasi web Java dan Java Enterprise Edition (Java EE) bervariasi, tergantung pada jumlah sumber daya khusus kontainer yang digunakan oleh aplikasi. Aplikasi berbasis pegas biasanya lebih mudah untuk dimigrasi, karena mereka memiliki sejumlah kecil dependensi pada wadah penerapan. Sebaliknya, aplikasi Java EE yang menggunakan Enterprise JavaBeans (EJBs) dan sumber daya kontainer terkelola seperti kumpulan thread, Java Authentication and Authorization Service (JAAS), dan Container-Managed Persistence (CMP) memerlukan lebih banyak usaha. 

Aplikasi yang dikembangkan untuk Oracle Application Server sering menggunakan suite Oracle Identity Management. Pelanggan yang bermigrasi ke server aplikasi open-source sering memilih untuk mengimplementasikan kembali identitas dan manajemen akses menggunakan federasi berbasis SAML. Orang lain menggunakan Oracle HTTP Server Webgate untuk kasus ketika bermigrasi dari Oracle Identity Management suite bukanlah pilihan. 

Aplikasi web Java dan Java EE adalah kandidat yang bagus untuk penerapan pada layanan AWS yang berbasis Docker, seperti AWS Fargate dan Amazon ECS. Pelanggan sering memilih gambar Docker dengan versi terbaru dari server aplikasi target (seperti ToMee) dan Java Development Kit (JDK) yang sudah diinstal sebelumnya. Mereka menginstal aplikasi mereka di atas image Docker dasar, mempublikasikannya di registri Amazon Elastic Container Registry (Amazon ECR), dan menggunakannya untuk penerapan aplikasi mereka yang dapat diskalakan di AWS Fargate atau Amazon ECS. 

Idealnya, penerapan aplikasi bersifat elastis; yaitu, jumlah instance aplikasi masuk atau keluar, tergantung pada lalu lintas atau beban kerja. Ini berarti bahwa instance aplikasi harus online atau dihentikan untuk menyesuaikan kapasitas permintaan. 

Saat memindahkan aplikasi Java ke AWS, pertimbangkan untuk membuatnya tanpa kewarganegaraan. Ini adalah prinsip arsitektur utama AWS Well-Architected Framework yang akan memungkinkan penskalaan horizontal menggunakan kontainerisasi. Misalnya, sebagian besar aplikasi web berbasis Java menyimpan informasi sesi pengguna secara lokal. Untuk bertahan dari penghentian instans aplikasi karena penskalaan otomatis di Amazon Elastic Compute Cloud EC2 (Amazon) atau karena alasan lain, informasi sesi pengguna harus disimpan secara global sehingga pengguna aplikasi web dapat terus bekerja dengan lancar dan transparan tanpa menghubungkan kembali atau masuk kembali ke aplikasi web. Ada beberapa opsi arsitektur untuk pendekatan ini, termasuk Amazon ElastiCache untuk Redis, atau menyimpan status sesi dalam database global. Server aplikasi seperti ToMee memiliki plugin, yang memungkinkan penyimpanan dan manajemen sesi melalui Redis, database, dan penyimpanan data global lainnya.

Gunakan alat logging dan debugging yang umum dan terpusat yang mudah diintegrasikan dengan Amazon CloudWatch dan AWS X-Ray. Migrasi memberikan kesempatan untuk meningkatkan kemampuan siklus hidup aplikasi. Misalnya, Anda mungkin ingin mengotomatiskan proses build sehingga perubahan mudah dilakukan menggunakan pipeline continuous integration dan continuous delivery (CI/CD). Ini mungkin memerlukan perubahan pada aplikasi sehingga dapat digunakan tanpa downtime. 

## Prasyarat dan batasan
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Sumber kode Java dan JDK 
+ Aplikasi sumber yang dibangun dengan Oracle WebLogic
+ Solusi yang ditetapkan untuk manajemen identitas dan akses (SAMP atau Oracle Webgate)
+ Solusi yang ditetapkan untuk manajemen sesi aplikasi (pindah like-for-like atau dengan Amazon ElastiCache, atau membuat aplikasi tanpa kewarganegaraan jika diperlukan)
+ [Memahami apakah tim perlu memfaktorkan ulang pustaka khusus J2EE untuk portabilitas ke Apache ToMee (lihat Status Implementasi Java EE 7 di situs web Apache)](http://tomee.apache.org/javaee7-status.html) 
+ Gambar ToMee yang diperkeras berdasarkan persyaratan keamanan Anda
+ Gambar kontainer dengan ToMee target yang sudah diinstal sebelumnya 
+ Remediasi aplikasi disetujui dan diimplementasikan jika diperlukan (misalnya, logging debug build, otentikasi)

**Versi produk**
+ Oracle WebLogic OC4 J, 9i, 10g 
+ Tomcat 7 (dengan Java 1.6 atau lebih baru) 

## Arsitektur
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-architecture"></a>

 **Tumpukan teknologi sumber**
+ Aplikasi web yang dibangun menggunakan Oracle WebLogic
+ Aplikasi web menggunakan otentikasi Oracle Webgate atau SAMP
+ Aplikasi web terhubung ke Oracle Database versi 10g dan yang lebih baru 

**Tumpukan teknologi target**
+ [ToMee (Apache Tomcat dengan dukungan kontainer tambahan) berjalan di Amazon ECS (lihat juga [Menyebarkan Aplikasi Web Java dan Java Microservices](https://aws.amazon.com/answers/web-applications/aws-web-app-deployment-java/) di Amazon ECS)](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) 
+ [Amazon Relational Database Service (Amazon RDS) untuk Oracle; untuk versi Oracle yang didukung oleh Amazon RDS, lihat Amazon RDS for Oracle****](https://aws.amazon.com/rds/oracle/)

**Arsitektur target**

![\[AWS Cloud architecture diagram showing VPC, application subnets, and shared services account components.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d5e7b3fa-062f-4559-af56-aa6058f96755/images/762193cf-aa68-4195-b3c7-6541caee61c9.png)


 

## Alat
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-tools"></a>

Untuk beroperasi di ToMee, aplikasi Java harus dibangun kembali menjadi file.war. Dalam beberapa kasus, perubahan aplikasi mungkin diperlukan untuk mengoperasikan aplikasi di ToMee; Anda harus memeriksa untuk memastikan bahwa opsi konfigurasi yang diperlukan dan properti lingkungan didefinisikan dengan benar.  

Selain itu, pencarian Java Naming and Directory Interface (JNDI) dan ruang nama JavaServer Pages (JSP) harus didefinisikan dengan benar. Pertimbangkan untuk memeriksa nama file yang digunakan oleh aplikasi untuk menghindari tabrakan penamaan dengan pustaka T bawaan. Misalnya, persistence.xml adalah nama file yang digunakan oleh kerangka Apache OpenJPA (yang dibundel dengan OpenEJB di ToMe) untuk tujuan konfigurasi. File persistence.xml di PUI berisi deklarasi kacang kerangka Spring.  

ToMee versi 7.0.3 dan yang lebih baru (Tomcat 8.5.7 dan yang lebih baru) mengembalikan respons HTTP 400 (permintaan buruk) untuk mentah (tidak dikodekan) dengan karakter khusus. URLs Respons server muncul sebagai halaman kosong untuk pengguna akhir. [Versi ToMee dan Tomcat sebelumnya memungkinkan penggunaan karakter khusus tertentu yang tidak dikodekan URLs; Namun, itu dianggap tidak aman, seperti yang dinyatakan di situs web CVE-2016-6816.](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6816) Untuk mengatasi masalah pengkodean URL, URLs diteruskan ke browser secara langsung melalui JavaScript harus dikodekan dengan metode **encodeUri ()** alih-alih digunakan sebagai string mentah. 

Setelah Anda menyebarkan file.war di ToMee, pantau *log mulai* ke *Linux cat* untuk setiap pustaka bersama yang hilang dan ekstensi khusus Oracle untuk menambahkan komponen yang hilang dari pustaka Tomcat. 

 

**Prosedur umum**
+ Konfigurasikan aplikasi di ToMee.
+ Mengidentifikasi dan mengkonfigurasi ulang file konfigurasi khusus server aplikasi dan sumber daya dari sumber ke format target.
+ Identifikasi dan konfigurasi ulang sumber daya JNDI.
+ Sesuaikan namespace dan pencarian EJB ke format yang diperlukan oleh server aplikasi target (jika ada).
+ Konfigurasikan ulang peran keamanan khusus wadah aplikasi JAAS dan pemetaan prinsip (jika ada).
+ Package aplikasi dan library bersama ke dalam file.war.
+ Terapkan file.war di ToMee dengan menggunakan wadah Docker yang disediakan.
+ Pantau *log awal* untuk mengidentifikasi pustaka bersama yang hilang dan ekstensi deskriptor penerapan. Jika ada yang ditemukan, kembali ke tugas pertama. 
+ Uji aplikasi yang diinstal terhadap database Amazon RDS yang dipulihkan.
+ Luncurkan arsitektur lengkap dengan load balancer dan Amazon ECS cluster dengan mengikuti petunjuk di [Deploy](https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/) Docker Containers.
+ Perbarui URLs untuk menunjuk ke penyeimbang beban. 
+ Perbarui database manajemen konfigurasi (CMDB). 

## Epik
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan penemuan aplikasi (jejak keadaan saat ini dan garis dasar kinerja). |  | BA, Pimpinan Migrasi | 
| Validasi versi dan mesin basis data sumber dan target. |  | DBA | 
| Validasi desain aplikasi sumber dan target (identitas dan manajemen sesi). |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Identifikasi persyaratan perangkat keras dan penyimpanan untuk instance server target. |  | DBA, SysAdmin | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, SysAdmin | 
| Identifikasi strategi dan perkakas migrasi aplikasi. |  | DBA, Pimpinan Migrasi | 
| Lengkapi desain migrasi dan panduan migrasi untuk aplikasi. |  | Bangun Pimpinan, Pimpinan Migrasi | 
| Lengkapi runbook migrasi aplikasi. |  | Membangun Timbal, Cutover Lead, Testing Lead, Migration Lead | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). |  | SysAdmin | 
| Buat grup keamanan. |  | SysAdmin | 
| Konfigurasikan dan mulai instans Amazon RDS DB. |  | DBA, SysAdmin | 
| Konfigurasikan penerapan Amazon ECS. |  | SysAdmin | 
| Package aplikasi Anda sebagai image Docker. |  | SysAdmin | 
| Dorong gambar ke registri Amazon ECR (atau lewati langkah ini dan dorong ke cluster Amazon ECS). |  | SysAdmin | 
| Konfigurasikan definisi tugas untuk aplikasi dan opsi layanan Amazon ECS. |  | SysAdmin | 
| Konfigurasikan klaster Anda, tinjau setelan keamanan, dan setel peran AWS Identity and Access Management (IAM). |  | SysAdmin | 
| Luncurkan penyiapan Anda dan jalankan pengujian sesuai dengan runbook migrasi aplikasi Anda. |  | SysAdmin | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan izin tim jaminan keamanan Anda untuk memindahkan data produksi ke AWS. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Buat dan dapatkan akses ke titik akhir untuk mengambil file cadangan database. |  | DBA | 
| Gunakan mesin database asli atau alat pihak ketiga untuk memigrasikan objek dan data database. |  | DBA | 
| Jalankan pengujian yang diperlukan dari runbook migrasi aplikasi untuk mengonfirmasi migrasi data yang berhasil. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat permintaan perubahan (CR) untuk migrasi. |  | Timbal Cutover | 
| Dapatkan persetujuan CR untuk migrasi. |  | Timbal Cutover | 
| Ikuti strategi migrasi aplikasi dari runbook migrasi aplikasi. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Tingkatkan aplikasi (jika diperlukan). |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Fungsional lengkap, non-fungsional, validasi data, SLA, dan tes kinerja. |  | Menguji Lead, Pemilik Aplikasi, Pengguna Aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan tanda tangan dari aplikasi atau pemilik bisnis. |  | Timbal Cutover | 
| Jalankan latihan topik tabel untuk berjalan melalui semua langkah runbook cutover. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, Insinyur Migrasi, Pemilik Aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | DBA, Insinyur Migrasi, SysAdmin | 
| Meninjau dan memvalidasi dokumen proyek. |  | Pimpinan Migrasi | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi,% manual vs. alat, penghematan biaya, dll. |  | Pimpinan Migrasi | 
| Tutup proyek dan berikan umpan balik. |  | Pemimpin Migrasi, Pemilik Aplikasi | 

## Sumber daya terkait
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-related-resources"></a>

**Referensi**
+ [Dokumentasi Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html) 
+ [Panduan instalasi Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html) 
+ [Dokumentasi Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) 
+ [Dokumentasi Apache ToMee](http://tomee.apache.org/) 
+ [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle dan AWS](https://aws.amazon.com/oracle/) 
+ [Oracle pada dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Penerapan Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/) 
+ [Memulai dengan Amazon ECS](https://aws.amazon.com/ecs/getting-started/)
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

**Tutorial dan video**
+ [Praktik Terbaik untuk Menjalankan Database Oracle di Amazon RDS](https://www.youtube.com/watch?v=j2wqT0EPDbw) (re:Invent 2018 presentasi) 

# Migrasikan database Oracle dari Amazon EC2 ke Amazon RDS for Oracle menggunakan AWS DMS
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms"></a>

*Chethan Gangadharaiah dan Brian motzer, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-summary"></a>

Pola ini menjelaskan langkah-langkah untuk memigrasikan database Oracle di Amazon Elastic Compute Cloud (Amazon EC2) ke Amazon Relational Database Service (Amazon RDS) untuk Oracle menggunakan AWS Database Migration Service (AWS DMS). Pola ini juga menggunakan Oracle SQL Developer atau SQL\$1Plus untuk terhubung ke instans Oracle DB Anda, dan menyertakan CloudFormation template AWS yang mengotomatiskan beberapa tugas.

Migrasi ke Amazon RDS for Oracle memungkinkan Anda untuk fokus pada bisnis dan aplikasi Anda sementara Amazon RDS menangani tugas-tugas administrasi database seperti penyediaan database, backup dan recovery, patch keamanan, upgrade versi, dan manajemen penyimpanan.

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Gambar Mesin Amazon (AMI) untuk Oracle Database di Amazon EC2

**Versi produk**
+ AWS DMS mendukung Oracle versi 11g (versi 11.2.0.3.v1 dan yang lebih baru), 12c, dan 18c untuk database instans Amazon RDS untuk edisi Enterprise, Standard, Standard One, dan Standard Two. Untuk informasi terbaru tentang versi yang didukung, lihat [Menggunakan Database Oracle sebagai Target untuk AWS DMS dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) AWS. ( CloudFormation Template AWS terlampir menggunakan Oracle versi 12c sebagai database sumber.)
+ Pengembang Oracle SQL 4.0.3

## Arsitektur
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-architecture"></a>

**Arsitektur sumber**
+ Database Oracle di Amazon EC2

**Arsitektur target**
+ Amazon RDS for Oracle

**Arsitektur migrasi**

![\[AWS Cloud architecture showing Oracle database migration from EC2 to RDS across availability zones.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4db0c731-0897-4eb8-a06f-b648c3d94b2c/images/636c2a69-5a78-482d-ae81-55e9ec975ead.png)


## Alat
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/index.html) — AWS Database Migration Service (AWS DMS) membantu Anda memigrasikan database ke AWS dengan cepat dan aman. Ini mendukung migrasi homogen dan heterogen. Untuk informasi tentang versi dan edisi database Oracle yang didukung, lihat [Menggunakan Database Oracle sebagai Sumber untuk AWS DMS dan Menggunakan Database](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) [Oracle sebagai Target untuk AWS DMS dalam dokumentasi AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html).
+ **Oracle SQL Developer atau SQL\$1 Plus** — Alat ini memungkinkan Anda untuk terhubung ke Amazon RDS for Oracle DB instans.

## Epik
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-epics"></a>

### Siapkan basis data target Anda
<a name="set-up-your-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS for Oracle DB. | Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/. Buat instans Oracle DB dengan memilih mesin yang sesuai, template, pengaturan kredenal database, jenis instans, penyimpanan, pengaturan Multi-AZ, virtual private cloud (VPC) dan konfigurasi, kredensi login, dan pengaturan tambahan untuk database Oracle. Untuk petunjuk, lihat tautan di bagian “Sumber daya terkait”. Atau gunakan CloudFormation template AWS (create\$1rds.yaml) di lampiran untuk membuat instans Amazon RDS for Oracle DB. | Developer | 
| Connect ke Amazon RDS dan berikan hak istimewa kepada pengguna Oracle. | Ubah grup keamanan untuk membuka port yang sesuai untuk terhubung dari mesin lokal dan instans replikasi AWS DMS. Saat Anda mengonfigurasi konektivitas, pastikan opsi “Dapat diakses secara publik” dipilih sehingga Anda dapat terhubung ke database dari luar VPC. Connect ke Amazon RDS dengan Oracle SQL Developer atau SQL \$1Plus dengan menggunakan kredenal login, buat pengguna AWS DMS, dan berikan hak istimewa yang diperlukan kepada pengguna AWS DMS untuk memodifikasi database. | Developer | 

### Konfigurasikan grup keamanan EC2 instance sumber
<a name="configure-the-security-group-of-the-source-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa apakah database Oracle aktif dan berjalan. | Gunakan Secure Shell (SSH) untuk terhubung ke EC2 instance, dan coba sambungkan ke database Oracle dengan menggunakan SQL \$1Plus. | Developer | 
| Ubah grup keamanan. | Ubah grup keamanan EC2 instans untuk membuka port yang sesuai, sehingga Anda dapat terhubung dari mesin lokal dan instans replikasi AWS DMS. | Developer | 

### Mengatur AWS DMS
<a name="set-up-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans replikasi AWS DMS. | Di AWS DMS, buat instance replikasi di VPC yang sama dengan instans Amazon RDS for Oracle DB Anda. Tentukan nama dan deskripsi untuk instance replikasi, pilih kelas instans dan versi mesin replikasi (gunakan default), pilih VPC tempat Anda membuat instans Amazon RDS DB, atur pengaturan Multi-AZ jika diperlukan, alokasikan penyimpanan, tentukan Availability Zone, dan konfigurasikan pengaturan tambahan. Atau, Anda dapat menggunakan CloudFormation template AWS (DMS.yaml) di lampiran untuk mengimplementasikan langkah ini. | DBA | 
| Connect ke titik akhir basis data sumber dan target. | Buat titik akhir basis data sumber dan target dengan menentukan pengenal titik akhir, mesin, server, port, kredensi login, dan atribut koneksi tambahan. Untuk server sumber, gunakan DNS publik dari EC2 instance yang menghosting database Oracle. Untuk server target, gunakan endpoint Amazon RDS for Oracle. Jalankan tes untuk memverifikasi bahwa koneksi sumber dan target berfungsi. Atau, Anda dapat menggunakan CloudFormation template AWS (DMS.yaml) di lampiran untuk mengimplementasikan langkah ini. | DBA | 
| Buat tugas AWS DMS. | Buat tugas AWS DMS untuk memigrasikan data dari titik akhir sumber ke titik akhir target, untuk menyiapkan replikasi antara titik akhir sumber dan tujuan, atau keduanya. Saat membuat tugas AWS DMS, tentukan instance replikasi, titik akhir sumber, titik akhir target, jenis migrasi (hanya data, replikasi saja, atau keduanya), pemetaan tabel, dan filter. Jalankan tugas AWS DMS, pantau tugas, periksa statistik tabel, dan periksa log di Amazon CloudWatch. Atau, Anda dapat menggunakan CloudFormation template AWS (DMS.yaml) di lampiran untuk mengimplementasikan langkah ini. | DBA | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-related-resources"></a>
+ [Membuat instans Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateOracleInstance.html)
+ [Menghubungkan ke Instans DB Menjalankan Oracle Database Engine](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToOracleInstance.html)
+ [Dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Panduan AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Migrasi Database Oracle ke AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Lampiran
<a name="attachments-4db0c731-0897-4eb8-a06f-b648c3d94b2c"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/4db0c731-0897-4eb8-a06f-b648c3d94b2c/attachments/attachment.zip)

# Memigrasi database Oracle lokal ke Amazon OpenSearch Service menggunakan Logstash
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash"></a>

*Aditya Goteti, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-summary"></a>

Pola ini menjelaskan cara memindahkan data dari database Oracle lokal ke Amazon OpenSearch Service menggunakan Logstash. Ini mencakup pertimbangan arsitektur dan beberapa keahlian dan rekomendasi yang diperlukan. Data dapat dari satu tabel atau dari beberapa tabel di mana pencarian teks lengkap perlu dilakukan. 

OpenSearch Layanan dapat dikonfigurasi dalam virtual private cloud (VPC), atau dapat ditempatkan secara publik dengan pembatasan berbasis IP. Pola ini menjelaskan skenario di mana OpenSearch Layanan dikonfigurasi dalam VPC. Logstash digunakan untuk mengumpulkan data dari database Oracle, menguraikannya ke format JSON, dan kemudian memasukkan data ke dalam Layanan. OpenSearch  

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Java 8 (diperlukan oleh Logstash 6.4.3)
+ Konektivitas antara server database lokal dan instans Amazon Elastic Compute Cloud EC2 (Amazon) dalam VPC, dibuat menggunakan AWS Virtual Private Network (AWS VPN)
+ Sebuah query untuk mengambil data yang diperlukan untuk didorong ke OpenSearch Service dari database
+ Driver Konektivitas Database Oracle Java (JDBC)

**Batasan**
+ Logstash tidak dapat mengidentifikasi catatan yang dihapus dari database 

**Versi produk**
+ Oracle Database 12c
+ OpenSearch Layanan 6,3
+ Logstash 6.4.3

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal
+ AWS VPN lokal

**Tumpukan teknologi target**
+ VPC
+ EC2 contoh
+ OpenSearch Layanan 
+ Logstash
+ NAT Gateway (untuk pembaruan sistem operasi pada EC2 instance dan untuk menginstal Java 8, Logstash, dan plugin)

**Arsitektur migrasi data**

![\[Cara memindahkan data dari database Oracle lokal ke Amazon OpenSearch Service menggunakan Logstash.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/09f6d2de-de2f-4ed6-af93-34b71b75a263/images/df6a61fb-09fb-49d4-a7e8-b04e88c003df.png)


## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-tools"></a>
+ Logstash 6.4.3
+ Plugin masukan JDBC ([unduh dan informasi lebih lanjut](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html))
+ [Plugin keluaran Logstash (logstash-output-amazon\$1es)](https://github.com/awslabs/logstash-output-amazon_es)
+ Oracle JDBC driver

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi ukuran data sumber. | Ukuran data sumber adalah salah satu parameter yang Anda gunakan untuk menentukan jumlah pecahan yang akan dikonfigurasi dalam indeks. | DBA, Pengembang basis data | 
| Menganalisis tipe data dari setiap kolom dan data yang sesuai. | OpenSearch Layanan secara dinamis memetakan tipe data ketika bidang yang sebelumnya tidak terlihat ditemukan dalam dokumen. Jika ada tipe atau format data tertentu (misalnya, bidang tanggal) yang perlu dideklarasikan secara eksplisit, identifikasi bidang dan tentukan pemetaan untuk bidang tersebut selama pembuatan indeks. | Pemilik aplikasi, Pengembang, Pengembang Basis Data | 
| Tentukan apakah ada kolom dengan kunci primer atau unik. | Untuk menghindari duplikasi catatan di OpenSearch Layanan Amazon selama pembaruan atau penyisipan, Anda perlu mengkonfigurasi `document_id` pengaturan di bagian output `amazon_es` plugin (misalnya, `document_id => "%{customer_id}"` di mana `customer_id` kunci utama). | Pemilik aplikasi, Pengembang | 
| Analisis jumlah dan frekuensi catatan baru yang ditambahkan; periksa seberapa sering catatan dihapus. | Tugas ini diperlukan untuk memahami tingkat pertumbuhan data sumber. Jika data dibaca secara intensif dan penyisipan jarang terjadi, Anda dapat memiliki satu indeks. Jika catatan baru sering dimasukkan dan tidak ada penghapusan, ukuran pecahan dapat dengan mudah melebihi ukuran maksimum yang disarankan 50 GB. Dalam hal ini, Anda dapat secara dinamis membuat indeks dengan mengkonfigurasi pola indeks di Logstash dan dalam kode di mana Anda dapat mengaksesnya dengan menggunakan alias. | Pemilik aplikasi, Pengembang | 
| Tentukan berapa banyak replika yang dibutuhkan. |  | Pemilik aplikasi, Pengembang | 
| Tentukan jumlah pecahan yang akan dikonfigurasi pada indeks. |  | Pemilik aplikasi, Pengembang | 
| Identifikasi jenis instance untuk node master khusus, node data, dan EC2 instance. | Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). | Pemilik aplikasi, Pengembang | 
| Tentukan jumlah node master khusus dan node data yang diperlukan. | Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). |  | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan sebuah EC2 instance. | Luncurkan EC2 instance dalam VPC yang terhubung dengan AWS VPN. | Konstruksi Amazon VPC, AWS VPN | 
| Instal Logstash pada instance. EC2  |  | Developer | 
| Instal plugin Logstash. | Instal plugin `jdbc-input` Logstash yang diperlukan dan. ` logstash-output-amazon_es` | Developer | 
| Konfigurasikan Logstash. | Buat keystore Logstash untuk menyimpan informasi sensitif seperti kunci AWS Secrets Manager dan kredensyal database, lalu tempatkan referensi dalam file konfigurasi Logstash. | Developer | 
| Konfigurasikan antrian huruf mati dan antrian persisten. | Secara default, ketika Logstash menemukan peristiwa yang tidak dapat diproses karena data berisi kesalahan pemetaan atau masalah lainnya, pipeline Logstash akan menggantung atau menghentikan peristiwa yang gagal. Untuk melindungi dari kehilangan data dalam situasi ini, Anda dapat mengonfigurasi Logstash untuk menulis peristiwa yang gagal ke antrian huruf mati alih-alih menjatuhkannya. Untuk melindungi dari kehilangan data selama penghentian abnormal, Logstash memiliki fitur antrian persisten yang akan menyimpan antrian pesan pada disk. Antrian persisten memberikan daya tahan data di Logstash. | Developer | 
| Buat domain OpenSearch Layanan Amazon. | Buat domain Amazon OpenSearch Service dengan kebijakan akses yang tidak memerlukan permintaan penandatanganan dengan kredensyal AWS Identity and Access Management (IAM). Domain OpenSearch Layanan Amazon harus dibuat dalam VPC yang sama. Anda juga harus memilih jenis instance dan mengatur jumlah node khusus dan master berdasarkan analisis Anda. | Developer | 
| Konfigurasikan log OpenSearch Layanan Amazon yang diperlukan. | Untuk informasi selengkapnya, lihat [dokumentasi OpenSearch Layanan](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html). |  | 
| Buat indeks. |  | Developer | 
| Mulai Logstash. | Jalankan Logstash sebagai layanan latar belakang. Logstash menjalankan kueri SQL yang dikonfigurasi, menarik data, mengubahnya menjadi format JSON, dan mengumpankannya ke Layanan. OpenSearch Untuk pemuatan awal, jangan konfigurasikan penjadwal dalam file konfigurasi Logstash. | Developer | 
| Periksa dokumen. | Periksa jumlah dokumen pada indeks dan apakah semua dokumen ada dalam database sumber. Selama pemuatan awal, mereka ditambahkan ke indeks dan digunakan untuk menghentikan Logstash. Ubah konfigurasi Logstash untuk menambahkan penjadwal yang berjalan pada interval tetap tergantung pada kebutuhan klien, dan mulai ulang Logstash. Logstash hanya akan memilih catatan yang diperbarui atau ditambahkan setelah proses terakhir, dan stempel waktu proses terakhir disimpan dalam file yang dikonfigurasi dengan properti `last_run_metadata_path => "/usr/share/logstash/.logstash_jdbc_last_run"` dalam file konfigurasi Logstash. | Developer | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources"></a>
+ [ CloudWatch Alarm yang Direkomendasikan](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html) 
+ [Node Master OpenSearch Layanan Amazon Khusus](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains-dedicatedmasternodes.html) 
+ [Ukuran Domain OpenSearch Layanan Amazon](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/sizing-domains.html) 
+ [Dokumentasi Logstash](https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html) 
+ [Plugin masukan JDBC](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Plugin keluaran Logstash](https://github.com/awslabs/logstash-output-amazon_es)
+ [Situs web Amazon OpenSearch Service](https://aws.amazon.com/elasticsearch-service/) 

# Memigrasikan database Oracle lokal ke Amazon RDS for Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle"></a>

*Baji Shaik dan Pavan Pusuluri, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-summary"></a>

Pola ini menjelaskan langkah-langkah untuk memigrasikan database Oracle lokal ke Amazon Relational Database Service (Amazon RDS) untuk Oracle. Sebagai bagian dari proses migrasi, Anda membuat rencana migrasi dan mempertimbangkan faktor-faktor penting tentang infrastruktur basis data target Anda berdasarkan basis data sumber Anda. Anda dapat memilih salah satu dari dua opsi migrasi berdasarkan persyaratan bisnis dan kasus penggunaan:
+ AWS Database Migration Service (AWS DMS) — Anda dapat menggunakan AWS DMS untuk memigrasikan database ke AWS Cloud dengan cepat dan aman. Database sumber Anda tetap beroperasi penuh selama migrasi, yang meminimalkan waktu henti ke aplikasi yang bergantung pada database. Anda dapat mengurangi waktu migrasi dengan menggunakan AWS DMS untuk membuat tugas yang menangkap perubahan yang sedang berlangsung setelah Anda menyelesaikan migrasi muatan penuh awal melalui proses yang disebut [change data capture (](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)CDC). 
+ [Alat Oracle asli - Anda dapat memigrasikan database dengan menggunakan alat Oracle asli, seperti Oracle dan Data Pump Export dan [Data [Pump Import](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300)](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL200) dengan Oracle untuk CDC. GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) Anda juga dapat menggunakan alat Oracle asli seperti [utilitas Ekspor asli dan utilitas](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#SUTIL3634) [Impor](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#SUTIL001) asli untuk mengurangi waktu muat penuh.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database Oracle lokal
+ Sebuah instans database Amazon RDS Oracle (DB)

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ Oracle versi 11g (versi 11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2 dan 18c. Untuk daftar terbaru versi dan edisi yang didukung, lihat [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle di dokumentasi AWS. Untuk versi Oracle yang didukung oleh AWS DMS, lihat [Menggunakan database Oracle sebagai sumber AWS DMS dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html).

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal

**Tumpukan teknologi target**
+ Amazon RDS for Oracle

**Arsitektur sumber dan target**

Diagram berikut menunjukkan cara memigrasikan database Oracle lokal ke Amazon RDS for Oracle dengan menggunakan AWS DMS.

![\[Alur kerja untuk memigrasikan database Oracle ke Amazon RDS for Oracle dengan menggunakan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/20f94a5c-1095-4182-b964-c379414c9a36.png)


Diagram menunjukkan alur kerja berikut:

1. [Buat atau gunakan pengguna database yang ada, berikan [izin AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed) yang diperlukan kepada pengguna tersebut, aktifkan [mode ARCHIVELOG](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode), lalu atur pencatatan tambahan.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging)

1. Konfigurasikan gateway internet antara jaringan lokal dan AWS.

1. Konfigurasikan [titik akhir sumber dan target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) untuk AWS DMS.

1. Konfigurasikan [tugas replikasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) untuk memigrasikan data dari database sumber ke database target.

1. Selesaikan aktivitas pasca-migrasi pada basis data target.

Diagram berikut menunjukkan cara memigrasi database Oracle lokal ke Amazon RDS for Oracle dengan menggunakan alat Oracle asli.

![\[Alur kerja untuk memigrasi database Oracle ke Amazon RDS for Oracle dengan menggunakan alat Oracle.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/af8e0e1a-d4c8-4d99-9780-3e093ad9a257.png)


Diagram menunjukkan alur kerja berikut:

1. Buat atau gunakan pengguna database yang ada dan berikan izin yang diperlukan untuk mencadangkan database Oracle dengan menggunakan utilitas Oracle Export (`exp`) dan Import (`imp`).

1. Konfigurasikan gateway internet antara jaringan lokal dan AWS.

1. Konfigurasikan klien Oracle pada host [Bastion](https://www.oracle.com/security/cloud-security/bastion/) untuk mengambil database cadangan.

1. Unggah database cadangan ke bucket Amazon Simple Storage Service (Amazon S3).

1. Kembalikan cadangan database dari Amazon S3 ke database Amazon RDS for Oracle.

1. Konfigurasikan Oracle GoldenGate untuk CDC.

1. Selesaikan aktivitas pasca-migrasi pada basis data target.

## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-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.
+ Alat Oracle asli membantu Anda melakukan migrasi homogen. Anda dapat menggunakan [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) untuk memigrasikan data antara basis data sumber dan target Anda. Pola ini menggunakan Oracle Data Pump untuk melakukan beban penuh dari database sumber ke database target.
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) membantu Anda melakukan replikasi logis antara dua atau lebih database. Pola ini digunakan GoldenGate untuk mereplikasi perubahan delta setelah pemuatan awal dengan menggunakan Oracle Data Pump.

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dokumen proyek dan catat detail database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Identifikasi persyaratan penyimpanan. | Identifikasi dan dokumentasikan kebutuhan penyimpanan Anda, termasuk yang berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html)Untuk [volume SSD Tujuan Umum (gp2)](https://aws.amazon.com/ebs/volume-types/), Anda mendapatkan tiga IOPS per 1 GB penyimpanan. Alokasikan penyimpanan dengan menghitung jumlah total IOPS baca dan tulis pada database sumber. | DBA, SysAdmin | 
| Pilih jenis instans yang tepat berdasarkan persyaratan komputasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | SysAdmin | 
| Identifikasi persyaratan keamanan akses jaringan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Identifikasi strategi migrasi aplikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin, Pemilik aplikasi | 
| Identifikasi risiko migrasi. | Menilai database dan mendokumentasikan risiko dan mitigasi spesifik migrasi. Contoh:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah VPC. | [Buat Amazon Virtual Private Cloud (Amazon VPC) baru untuk instans](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html) DB target. | SysAdmin | 
| Buat grup keamanan. | [Buat grup keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) di VPC baru Anda untuk memungkinkan koneksi masuk ke instans DB. | SysAdmin | 
| Buat instans Amazon RDS for Oracle DB. | [Buat instans DB target](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) dengan VPC baru dan grup keamanan, lalu mulai instance. | SysAdmin | 

### Opsi 1 - Gunakan Oracle asli atau alat pihak ketiga untuk memigrasi data
<a name="option-1---use-native-oracle-or-third-party-tools-to-migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan database sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Siapkan database target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 

### Opsi 2 - Gunakan AWS DMS untuk memigrasikan data
<a name="option-2---use-aws-dms-to-migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan datanya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Migrasikan data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Potong ke database target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin, Pemilik aplikasi | 
| Terapkan rencana rollback Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, Pemilik aplikasi | 

### Menutup proyek migrasi
<a name="close-out-the-migration-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pembersihan sumber daya  | Matikan atau hapus sumber daya AWS sementara, seperti instans replikasi AWS DMS dan bucket S3. | DBA, SysAdmin | 
| Tinjau dokumen proyek. | Tinjau dokumen dan sasaran perencanaan migrasi, lalu konfirmasikan bahwa Anda telah menyelesaikan semua langkah migrasi yang diperlukan. | DBA, SysAdmin, Pemilik aplikasi | 
| Kumpulkan metrik. | Catat metrik migrasi utama, termasuk berapa lama waktu yang dibutuhkan untuk menyelesaikan migrasi, persentase tugas manual vs berbasis alat, penghematan biaya, dan metrik relevan lainnya. | DBA, SysAdmin, Pemilik aplikasi | 
| Tutup proyek. | Tutup proyek migrasi dan tangkap umpan balik tentang upaya tersebut. | DBA, SysAdmin, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-resources"></a>

**Referensi**
+ [Memigrasi database Oracle ke AWS Cloud (AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html))
+ [AWS Database Migration Service](https://aws.amazon.com/dms/) (dokumentasi AWS DMS)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/) (dokumentasi Amazon RDS)

**Tutorial dan video**
+ [Memulai AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/) (dokumentasi AWS DMS)
+ [Sumber daya Amazon RDS](https://aws.amazon.com/rds/getting-started/) (dokumentasi Amazon RDS)
+ [AWS Database Migration Service (DMS) (YouTube)](https://www.youtube.com/watch?v=zb4GcjEdl8U)

# Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump"></a>

*Mohan Annam dan Brian motzer, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Pola ini menjelaskan cara memigrasikan database Oracle dari pusat data lokal ke Amazon Relational Database Service (Amazon RDS) untuk instans Oracle DB dengan menggunakan Oracle Data Pump. 

Polanya melibatkan pembuatan file dump data dari database sumber, menyimpan file dalam bucket Amazon Simple Storage Service (Amazon S3), dan kemudian memulihkan data ke instans Amazon RDS for Oracle DB. Pola ini berguna saat Anda menemukan batasan menggunakan AWS Database Migration Service (AWS DMS) untuk migrasi. 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Izin yang diperlukan untuk membuat peran di AWS Identity and Access Management (IAM) dan untuk unggahan multipart Amazon S3
+ Izin yang diperlukan untuk mengekspor data dari database sumber
+ [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)

**Versi produk**
+ Oracle Data Pump hanya tersedia untuk Oracle Database 10g Release 1 (10.1) dan versi yang lebih baru.

## Arsitektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Oracle lokal

**Tumpukan teknologi target**
+ Amazon RDS for Oracle
+ Klien SQL (Pengembang Oracle SQL)
+ Ember S3

**Arsitektur sumber dan target**

![\[Unggahan multipart Amazon S3 dari Oracle DB lokal ke Amazon RDS menggunakan Oracle Data Pump.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Alat
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-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. Dalam pola ini, IAM digunakan untuk membuat peran dan kebijakan yang diperlukan untuk memigrasi data dari Amazon S3 ke Amazon RDS for Oracle.
+ [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 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.

**Alat lainnya**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi. Dalam pola ini, Oracle Data Pump digunakan untuk mengekspor file dump data (.dmp) ke server Oracle, dan untuk mengimpornya ke Amazon RDS for Oracle. Untuk informasi selengkapnya, lihat [Mengimpor data ke Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) dalam dokumentasi Amazon RDS.
+ [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. Ini berinteraksi dengan database Oracle lokal dan Amazon RDS for Oracle untuk menjalankan perintah SQL yang diperlukan untuk mengekspor dan mengimpor data.

## Epik
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Buat Bucket S3
<a name="create-an-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket. | Untuk membuat bucket S3, ikuti petunjuk dalam [dokumentasi AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Administrator sistem AWS | 

### Buat peran IAM dan tetapkan kebijakan
<a name="create-the-iam-role-and-assign-policies"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan izin IAM. | Untuk mengonfigurasi izin, ikuti petunjuk dalam [dokumentasi AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Administrator sistem AWS | 

### Buat instans Amazon RDS for Oracle DB target dan kaitkan peran integrasi Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat target Amazon RDS for Oracle DB instans. | Untuk membuat instans Amazon RDS for Oracle, ikuti petunjuk dalam dokumentasi AWS[.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) | Administrator sistem AWS | 
| Kaitkan peran dengan instans DB. | Untuk mengaitkan peran dengan instans, ikuti instruksi dalam [dokumentasi AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | DBA | 

### Buat pengguna database pada database target
<a name="create-the-database-user-on-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna. | Connect ke target Amazon RDS for Oracle database dari Oracle SQL Developer atau SQL\$1 Plus, dan jalankan perintah SQL berikut untuk membuat pengguna mengimpor skema ke dalam.<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | DBA | 

### Buat file ekspor dari database sumber Oracle
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat file dump data. | Untuk membuat file dump bernama `sample.dmp` dalam `DATA_PUMP_DIR` direktori untuk mengekspor `SAMPLE_SCHEMA` pengguna, gunakan skrip berikut.<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre>Tinjau detail ekspor dengan meninjau `export.log` file di `DATA_PUMP_DIR` direktori lokal Anda.  | DBA | 

### Unggah file dump ke bucket S3
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file dump data dari sumber ke bucket S3. | Menggunakan AWS CLI, jalankan perintah berikut.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Unduh file ekspor dari bucket S3 ke instance RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh file dump data ke Amazon RDS | Untuk menyalin file dump `sample.dmp` dari bucket S3 ke database Amazon RDS for Oracle, jalankan perintah SQL berikut. Dalam contoh ini, `sample.dmp` file diunduh dari bucket S3 `my-s3-integration1` ke direktori Oracle. `DATA_PUMP_DIR` Pastikan Anda memiliki ruang disk yang cukup dialokasikan ke instance RDS Anda untuk mengakomodasi database dan file ekspor.<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre>Perintah sebelumnya mengeluarkan ID tugas. Untuk meninjau status unduhan dengan meninjau data di ID tugas, jalankan perintah berikut.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Untuk melihat file dalam `DATA_PUMP_DIR` direktori, jalankan perintah berikut.<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | Administrator sistem AWS | 

### Impor file dump ke database target
<a name="import-the-dump-file-into-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembalikan skema dan data ke Amazon RDS. | Untuk mengimpor file dump ke dalam skema `sample_schema` database, jalankan perintah SQL berikut dari SQL Developer atau SQL\$1 Plus.<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre>Untuk melihat file log dari impor, jalankan perintah berikut.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Hapus file dump dari direktori DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Daftar dan bersihkan file ekspor. | Daftar dan hapus file ekspor di `DATA_PUMP_DIR` direktori, jalankan perintah berikut.<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | Administrator sistem AWS | 

## Sumber daya terkait
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integrasi Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Buat instance DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Mengimpor data ke Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Dokumentasi Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [Dokumentasi IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Dokumentasi Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Dokumentasi Pompa Data Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)
+ [Pengembang Oracle SQL](https://www.oracle.com/database/sqldeveloper/)

# Bermigrasi dari PostgreSQL di Amazon ke Amazon RDS untuk PostgreSQL menggunakan pglogical EC2
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical"></a>

*Rajesh Madiwale, Amazon Web Services*

## Ringkasan
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-summary"></a>

**Pola ini menguraikan langkah-langkah untuk memigrasikan database PostgreSQL (versi 9.5 dan yang lebih baru) dari Amazon Elastic Compute Cloud (Amazon) ke Amazon Relational Database EC2 Service (Amazon RDS) untuk PostgreSQL dengan menggunakan ekstensi pglogical PostgreSQL.** Amazon RDS sekarang mendukung ekstensi pglogical untuk PostgreSQL versi 10.

## Prasyarat dan batasan
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-prereqs"></a>

**Prasyarat**
+ Pilih jenis instans Amazon RDS yang tepat. Untuk informasi selengkapnya, lihat [Jenis Instans Amazon RDS](https://aws.amazon.com/rds/instance-types/). 
+ Pastikan bahwa versi sumber dan target PostgreSQL adalah sama.   
+ Instal dan integrasikan [ekstensi **pglogical** dengan PostgreSQL](https://github.com/2ndQuadrant/pglogical) di Amazon. EC2 

**Versi produk**
+ PostgreSQL versi 10 dan yang lebih baru di Amazon RDS, dengan fitur yang didukung di Amazon RDS (lihat [PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) di Amazon RDS dalam dokumentasi AWS). Pola ini diuji dengan memigrasikan PostgreSQL 9.5 ke PostgreSQL versi 10 di Amazon RDS, tetapi juga berlaku untuk versi PostgreSQL yang lebih baru di Amazon RDS. 

## Arsitektur
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-architecture"></a>

**Arsitektur migrasi data**

![\[Arsitektur migrasi data untuk PostgreSQL di Amazon RDS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/29af3931-48de-499f-9c4b-e10a98e4bba5/images/5f5b906f-dc1a-49a5-ae3f-3e10ae854784.png)


## Alat
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-tools"></a>
+ [https://github.com/2ndQuadrant/pglogical](https://github.com/2ndQuadrant/pglogical)
+ [https://www.postgresql.org/docs/9.5/app-pgdump.html](https://www.postgresql.org/docs/9.5/app-pgdump.html)

## Epik
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-epics"></a>

### Migrasi data dengan menggunakan ekstensi pglogical
<a name="migrate-data-by-using-the-pglogical-extension"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS PostgreSQL DB. | Siapkan instans PostgreSQL DB di Amazon RDS. Untuk petunjuk, lihat dokumentasi [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html). | DBA | 
| Dapatkan dump skema dari database PostgreSQL sumber dan mengembalikannya ke database PostgreSQL target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Nyalakan decoding logis. | Di grup parameter Amazon RDS DB, atur parameter `rds.logical_replication` statis ke 1. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalDecoding). | DBA | 
| Buat ekstensi pglogical pada basis data sumber dan target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Buat penerbit di database PostgreSQL sumber. | Untuk membuat penerbit, jalankan:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.create_node( node_name := 'provider1', dsn := 'host=<ec2-endpoint> port=5432 dbname=source-dbname user=source-dbuser' );<br />EOF</pre> | DBA | 
| Buat set replikasi, tambahkan tabel dan urutan. | Untuk membuat kumpulan replikasi pada database PostgreSQL sumber, dan untuk menambahkan tabel dan urutan ke set replikasi, jalankan:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.replication_set_add_all_tables('default', '{public}'::text[],synchronize_data := true);<br />EOF</pre> | DBA | 
| Buat pelanggan. | Untuk membuat pelanggan pada database PostgreSQL target, jalankan:<pre>psql -h <rds-endpoint> -d target-dbname -U target-dbuser  <<EOF<br />SELECT pglogical.create_node(<br />    node_name := 'subscriber1',<br />    dsn := 'host=<rds-endpoint> port=5432 dbname=target-dbname password=postgres user=target-dbuser'<br />);<br />EOF</pre> | DBA | 
| Buat langganan. | Untuk membuat langganan pada database PostgreSQL target, jalankan:<pre>psql -h <rds-endpoint> -d target -U postgres  <<EOF<br />SELECT pglogical.create_subscription(<br /> subscription_name := 'subscription1',<br /> replication_sets := array['default'],<br />    provider_dsn := 'host=<ec2-endpoint> port=5432 dbname=<source-dbname> password=<password> user=source-dbuser'<br />);</pre> | DBA | 

### Validasi data Anda
<a name="validate-your-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa basis data sumber dan target. | Periksa basis data sumber dan target untuk mengonfirmasi bahwa data berhasil direplikasi. Anda dapat melakukan validasi dasar dengan menggunakan `select count(1)` dari tabel sumber dan target. | DBA | 

## Sumber daya terkait
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-resources"></a>
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Replikasi logis untuk PostgreSQL di Amazon RDS (dokumentasi Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication) RDS)
+ [pglogis (repositori](https://github.com/2ndQuadrant/pglogical)) GitHub 
+ [Keterbatasan pglogical (file README](https://github.com/2ndQuadrant/pglogical#limitations-and-restrictions) GitHub repositori)
+ [Memigrasi PostgreSQL dari lokal atau Amazon ke EC2 Amazon RDS](https://aws.amazon.com/blogs/database/migrating-postgresql-from-on-premises-or-amazon-ec2-to-amazon-rds-using-logical-replication/) menggunakan replikasi logis (blog AWS Database)

# Memigrasikan database PostgreSQL lokal ke Aurora PostgreSQL
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql"></a>

*Baji Shaik dan Jitender Kumar, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-summary"></a>

Amazon Aurora PostgreSQL Compatible Edition menggabungkan kinerja dan ketersediaan database komersial kelas atas dengan kesederhanaan dan efektivitas biaya database open-source. Aurora memberikan manfaat ini dengan menskalakan penyimpanan di tiga Availability Zone di Wilayah AWS yang sama, dan mendukung hingga 15 instance replika baca untuk meningkatkan beban kerja baca dan menyediakan ketersediaan tinggi dalam satu Wilayah. Dengan menggunakan database global Aurora, Anda dapat mereplikasi database PostgreSQL hingga lima Wilayah untuk akses baca jarak jauh dan pemulihan bencana jika terjadi kegagalan Wilayah. Pola ini menjelaskan langkah-langkah untuk memigrasikan database sumber PostgreSQL lokal ke database yang kompatibel dengan Aurora PostgreSQL. [https://www.postgresql.org/docs/current/app-pgrestore.html](https://www.postgresql.org/docs/current/app-pgrestore.html) 

Langkah-langkah yang dijelaskan dalam pola ini juga berlaku untuk menargetkan database PostgreSQL di Amazon Relational Database Service (Amazon RDS) dan Amazon Elastic Compute Cloud (Amazon) instans. EC2

## Prasyarat dan batasan
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber PostgreSQL di pusat data lokal
+ [Instans DB [yang kompatibel dengan Aurora PostgreSQL atau Amazon RDS for PostgreSQL DB instans](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html)](https://aws.amazon.com/getting-started/hands-on/create-connect-postgresql-db/)

**Batasan**
+ Batas ukuran database adalah 64 TB untuk Amazon RDS for PostgreSQL dan 128 TB untuk Aurora PostgreSQL kompatibel.
+ Jika Anda menggunakan opsi migrasi AWS DMS, tinjau [batasan AWS DMS saat menggunakan database PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.Limitations) sebagai sumber.

**Versi produk**
+ Untuk dukungan versi mayor dan minor PostgreSQL di Amazon RDS, lihat pembaruan Amazon RDS for [PostgreSQL dalam dokumentasi Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) RDS.
+ Untuk dukungan PostgreSQL di Aurora, lihat pembaruan [Amazon Aurora PostgreSQL dalam dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html).
+ Jika Anda menggunakan opsi migrasi AWS DMS, lihat versi [PostgreSQL yang didukung dalam dokumentasi AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html).

## Arsitektur
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database PostgreSQL lokal

**Tumpukan teknologi target**
+ Instans DB yang kompatibel dengan Aurora PostgreSQL

**Arsitektur sumber**

![\[Arsitektur sumber untuk database PostgreSQL lokal\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/a8621ad3-781b-45a9-86a8-d0b0ec5c79ea.png)


**Arsitektur target**

![\[Arsitektur target untuk database PostgreSQL di Amazon Aurora\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/fc2ec0cb-7b9b-4cc0-b70c-40e47c2f4c45.png)


**Arsitektur migrasi data**

*Menggunakan AWS DMS*

![\[Memigrasi database PostgreSQL lokal ke Aurora menggunakan AWS DMS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/5336adb4-e9eb-47d0-a5b5-d149261b1638.png)


*Menggunakan alat PostgreSQL asli*

![\[Memigrasi database PostgreSQL lokal ke Aurora menggunakan pg_dump dan pg_restore\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/3c6fb533-45ff-443e-bfb1-97e60cbdd583.png)


## Alat
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-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 konfigurasi cloud dan lokal. Layanan ini mendukung berbagai sumber dan basis data target. Untuk informasi tentang cara memvalidasi sumber PostgreSQL dan menargetkan versi dan edisi database yang didukung untuk digunakan dengan AWS DMS, lihat Menggunakan database [PostgreSQL sebagai](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) sumber AWS DMS. Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif.
+ [https://www.postgresql.org/docs/current/app-pgrestore.html](https://www.postgresql.org/docs/current/app-pgrestore.html)

## Epik
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-epics"></a>

### Menganalisis migrasi
<a name="analyze-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target. | Jika Anda menggunakan AWS DMS, pastikan Anda menggunakan [PostgreSQL versi yang didukung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html).  | DBA | 
| Identifikasi jenis penyimpanan dan persyaratan kapasitas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Administrator sistem | 
| Pilih jenis instans, kapasitas, fitur penyimpanan, dan fitur jaringan yang tepat. | Tentukan persyaratan komputasi dari instance database target. Tinjau masalah kinerja yang diketahui yang mungkin memerlukan perhatian tambahan. Pertimbangkan faktor-faktor berikut untuk menentukan jenis instance yang sesuai:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Untuk informasi selengkapnya, lihat [kelas instans Aurora DB dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) Aurora. | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. | Tentukan kelompok keamanan yang sesuai yang akan memungkinkan aplikasi untuk berbicara dengan database. | DBA, Administrator sistem | 
| Identifikasi strategi migrasi aplikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Pemilik aplikasi, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah VPC. | Buat virtual private cloud (VPC) baru untuk instance database target. | Administrator sistem | 
| Buat grup keamanan. | Buat grup keamanan dalam VPC (seperti yang ditentukan dalam epik sebelumnya) untuk memungkinkan koneksi masuk ke instance database.  | Administrator sistem | 
| Konfigurasikan dan mulai cluster Aurora DB. | Buat instance database target dengan VPC baru dan grup keamanan dan mulai instance. | Administrator sistem | 

### Migrasikan data - opsi 1 (menggunakan AWS DMS)
<a name="migrate-data-option-1-using-aws-dms"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lengkapi langkah-langkah pra-migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Lengkapi langkah migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Validasi data. | Untuk memastikan bahwa data Anda dimigrasikan secara akurat dari sumber ke target, ikuti [langkah-langkah validasi data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) dalam dokumentasi AWS DMS. | DBA | 

### Migrasikan data - opsi 2 (menggunakan pg\$1dump dan pg\$1restore)
<a name="migrate-data-option-2-using-pg_dump-and-pg_restore"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan database sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Untuk informasi selengkapnya, lihat dokumentasi [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html) dan [panduan](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) dalam dokumentasi AWS DMS. | DBA | 
| Siapkan database target. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Untuk informasi selengkapnya, lihat dokumentasi [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) dan [panduan](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) dalam dokumentasi AWS DMS. | DBA | 
| Validasi data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. | Terapkan strategi migrasi aplikasi yang Anda buat di epik pertama. | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong ke basis data target
<a name="cut-over-to-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Pemilik aplikasi, Administrator sistem | 
| Jika Anda perlu memutar kembali migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya. | Matikan sumber daya AWS sementara. | DBA, Administrator sistem | 
| Validasi dokumen. | Tinjau dan validasi dokumen proyek. | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik. | Kumpulkan metrik di sekitar waktu untuk bermigrasi, persen penghematan biaya manual versus alat, dan sebagainya. | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek. | Tutup proyek dan berikan umpan balik apa pun. | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-resources"></a>

**Referensi**
+ [Layanan Migrasi Data AWS](https://aws.amazon.com/dms/)
+ [VPCs dan Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.html)
+ [Harga Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Menggunakan database PostgreSQL sebagai sumber AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html)
+ [Cara membuat instance replikasi AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/)
+ [Cara membuat titik akhir sumber dan target menggunakan AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-source-target-endpoints-aws-dms/)

**Sumber daya tambahan**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [ step-by-stepPenelusuran migrasi data](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Sumber daya Amazon Aurora](https://aws.amazon.com/rds/aurora/getting-started/)

# Memigrasi database Microsoft SQL Server lokal ke Microsoft SQL Server di Amazon yang menjalankan Linux EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux"></a>

*Tirumala Dasari, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-summary"></a>

Pola ini menjelaskan cara bermigrasi dari database Microsoft SQL Server lokal yang berjalan di Microsoft Windows, ke Microsoft SQL Server di instans Amazon Elastic Compute Cloud ( EC2Amazon) Linux dengan menggunakan utilitas pencadangan dan pemulihan.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-prereqs"></a>

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

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal

**Tumpukan teknologi target**
+  EC2 Instance Linux dengan database Microsoft SQL Server

**Arsitektur migrasi database**

![\[Diagram arsitektur untuk memigrasikan database SQL Server lokal ke instance Linux. EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f331ad15-2d41-4087-a6d1-60e3443e2acf/images/f50a779a-ce5d-44b1-8d37-dedd6400a12c.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-tools"></a>
+ **WinSCP** - Alat ini memungkinkan pengguna Windows untuk dengan mudah berbagi file dengan pengguna Linux.
+ **Sqlcmd** - Utilitas baris perintah ini memungkinkan Anda mengirimkan pernyataan T-SQL atau batch ke instance SQL Server lokal dan jarak jauh. Utilitas ini sangat berguna untuk tugas-tugas database berulang seperti pemrosesan batch atau pengujian unit.

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-epics"></a>

### Siapkan instance EC2 Linux dengan SQL Server
<a name="prepare-the-ec2-linux-instance-with-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih AMI yang menyediakan sistem operasi Linux dan termasuk Microsoft SQL Server. |  | Sysadmin | 
| Konfigurasikan AMI untuk membuat EC2 instance. |  | Sysadmin | 
| Buat aturan masuk dan keluar untuk grup keamanan. |  | Sysadmin | 
| Konfigurasikan EC2 instance Linux untuk database Microsoft SQL Server. |  | DBA | 
| Buat pengguna dan berikan izin seperti pada database sumber. |  | Pemilik aplikasi, DBA | 
| Instal alat SQL Server dan utilitas sqlcmd pada instance Linux. EC2  |  | DBA | 

### Cadangkan database dan pindahkan file cadangan ke EC2 instance Linux
<a name="back-up-the-database-and-move-backup-file-to-linux-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Cadangkan database SQL Server lokal. |  | DBA | 
| Instal WinSCP di Microsoft SQL Server. |  | DBA | 
| Pindahkan file cadangan ke EC2 instance Linux yang menjalankan Microsoft SQL Server. |  | DBA | 

### Kembalikan database pada EC2 instance Linux yang menjalankan SQL Server
<a name="restore-the-database-on-linux-ec2-instance-running-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kembalikan database dari file cadangan database dengan menggunakan utilitas sqlcmd. |  | DBA | 
| Validasi objek database dan data. |  | Pengembang, Insinyur uji | 

### Potong dari Windows SQL Server ke Windows SQL Server pada instance Linux EC2
<a name="cut-over-from-windows-sql-server-to-windows-sql-server-on-linux-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi objek database dan data. |  | Pengembang, Insinyur uji | 
| Potong dari database Microsoft SQL Server lokal ke EC2 instance Linux yang menjalankan Microsoft SQL Server. |  | DBA | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-resources"></a>
+ [Cara mengkonfigurasi SQL Server 2017 di Amazon Linux dan Ubuntu AMIs](https://aws.amazon.com/blogs/database/configuring-sql-server-2017-on-amazon-linux-2-and-ubuntu-amis/) 
+ [Instalasi alat SQL pada instance Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL) 
+ [Pencadangan dan pemulihan dari database Microsoft SQL Server lokal ke Microsoft SQL Server pada instance Linux EC2 ](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017#create-a-backup-on-windows) 

# Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan server tertaut
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers"></a>

*Kevin Yung, Viqash Adwani, dan Vishal Singh, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-summary"></a>

Server tertaut memungkinkan Microsoft SQL Server untuk menjalankan pernyataan SQL pada contoh lain dari server database. Pola ini menjelaskan bagaimana Anda dapat memigrasikan database Microsoft SQL Server lokal ke Amazon Relational Database Service (Amazon RDS) untuk Microsoft SQL Server untuk mencapai biaya yang lebih rendah dan ketersediaan yang lebih tinggi. Saat ini, Amazon RDS for Microsoft SQL Server tidak mendukung koneksi di luar jaringan Amazon Virtual Private Cloud (Amazon VPC). 

Anda dapat menggunakan pola ini untuk mencapai tujuan berikut:
+ Untuk memigrasikan Microsoft SQL Server ke Amazon RDS untuk Microsoft SQL Server tanpa merusak kemampuan server tertaut.
+ Untuk memprioritaskan dan memigrasikan Microsoft SQL Server tertaut dalam gelombang yang berbeda.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-prerequisites-and-limitations"></a>

**Prasyarat**
+ Periksa apakah [Microsoft SQL Server di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) mendukung fitur yang Anda butuhkan. 
+ Pastikan Anda dapat menggunakan [Amazon RDS untuk Microsoft SQL Server dengan susunan atau susunan default yang diatur di atas tingkat](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) database. 

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-architecture"></a>

**Tumpukan teknologi sumber**
+ Database lokal (Microsoft SQL Server)

 **Tumpukan teknologi target**
+ Amazon RDS for SQL Server

**Arsitektur negara sumber**

![\[Diagram showing data replication between two data centers with primary and secondary SQL servers.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/776b453a-7fa0-43fd-b1ca-fb9e5cc21820.png)


 

 

 

 

 

 

 

 

 

 

 

 

**Arsitektur negara sasaran**

Dalam status target, Anda memigrasikan Microsoft SQL Server ke Amazon RDS untuk Microsoft SQL Server dengan menggunakan server tertaut. Arsitektur ini menggunakan Network Load Balancer untuk mem-proxy lalu lintas dari Amazon RDS untuk Microsoft SQL Server ke server lokal yang menjalankan Microsoft SQL Server. Diagram berikut menunjukkan kemampuan proxy terbalik untuk Network Load Balancer.

![\[AWS Cloud architecture with RDS SQL Server instances in two availability zones and on-premises databases.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/6bdbdfbf-b048-4fbd-acef-0aeb826edb50.png)


 

## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-tools"></a>
+ AWS CloudFormation
+ Penyeimbang Beban Jaringan 
+ Amazon RDS untuk SQL Server di beberapa Availability Zone (Multi-) AZs
+ AWS Database Migration Service (AWS DMS) 

## Epik
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-epics"></a>

### Buat VPC landing zone
<a name="create-a-landing-zone-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat alokasi CIDR. |  | AWS SysAdmin | 
| Buat cloud pribadi virtual (VPC). |  | AWS SysAdmin | 
| Buat subnet VPC. |  | AWS SysAdmin | 
| Buat daftar kontrol akses subnet (ACLs). |  | AWS SysAdmin | 
| Buat tabel rute subnet. |  | AWS SysAdmin | 
| Buat koneksi dengan AWS Direct Connect atau AWS Virtual Private Network (VPN). |  | AWS SysAdmin | 

### Migrasikan database ke Amazon RDS
<a name="migrate-the-database-to-amazon-rds"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS for Microsoft SQL Server DB. |  | AWS SysAdmin | 
| Buat instans replikasi AWS DMS. |  | AWS SysAdmin | 
| Buat titik akhir basis data sumber dan target di AWS DMS. |  | AWS SysAdmin | 
| Buat tugas migrasi dan atur replikasi berkelanjutan ke ON setelah beban penuh. |  | AWS SysAdmin | 
| Meminta perubahan firewall untuk mengizinkan Amazon RDS for Microsoft SQL Server mengakses database SQL Server lokal. |  | AWS SysAdmin | 
| Buat Network Load Balancer. |  | AWS SysAdmin | 
| Buat grup target yang menargetkan server database di pusat data Anda | Kami menyarankan Anda menggunakan nama host dalam pengaturan target untuk menggabungkan peristiwa failover pusat data (DC). | AWS SysAdmin | 
| Jalankan pernyataan SQL untuk penyiapan server tertaut. | Jalankan pernyataan SQL untuk menambahkan server tertaut dengan menggunakan alat manajemen Microsoft SQL terhadap instans Amazon RDS for Microsoft SQL Server DB. Dalam pernyataan SQL, atur @datasrc untuk menggunakan nama host Network Load Balancer. Tambahkan kredensil login server tertaut dengan menggunakan alat manajemen Microsoft SQL terhadap instans Amazon RDS for Microsoft SQL Server DB. | AWS SysAdmin | 
| Menguji dan memvalidasi fungsi SQL Server. |  | AWS SysAdmin | 
| Buat cutover. |  | AWS SysAdmin | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-related-resources"></a>
+ [Tugas Manajemen Umum untuk Microsoft SQL Server di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General)
+ [Kumpulan dan Set Karakter untuk Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) 
+ [Dokumentasi Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Menerapkan Server Tertaut dengan Amazon RDS untuk Microsoft SQL Server (posting blog)](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/)

# Memigrasi database Microsoft SQL Server lokal ke Amazon RDS for SQL Server menggunakan metode pencadangan dan pemulihan asli
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods"></a>

*Tirumala Dasari, David Queiroz, dan Vishal Singh, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-summary"></a>

Pola ini menjelaskan cara memigrasikan database Microsoft SQL Server lokal ke Amazon Relational Database Service (Amazon RDS) untuk instans SQL Server DB (migrasi homogen). Proses migrasi didasarkan pada metode pencadangan dan pemulihan SQL Server asli. Menggunakan SQL Server Management Studio (SSMS) untuk membuat file cadangan database, dan bucket Amazon Simple Storage Service (Amazon S3) untuk menyimpan file cadangan sebelum memulihkannya di Amazon RDS for SQL Server.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Kebijakan peran AWS Identity and Access Management (IAM) untuk mengakses bucket S3 dan instans Amazon RDS for SQL Server DB.

**Batasan**
+ Proses yang dijelaskan dalam pola ini hanya memigrasikan database. Login SQL atau pengguna database, termasuk pekerjaan Agen SQL Server apa pun, tidak dimigrasikan karena memerlukan langkah tambahan.

**Versi produk**
+ SQL Server 2012-2017. Untuk daftar terbaru versi dan fitur yang didukung, lihat [Microsoft SQL Server di Amazon RDS dalam dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) AWS.

## Arsitektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-architecture"></a>

**Tumpukan teknologi sumber**
+ Database Microsoft SQL Server lokal

**Tumpukan teknologi target**
+ Amazon RDS for SQL Server DB instans

**Arsitektur** **migrasi data**

![\[Arsitektur untuk memigrasikan SQL Server DB lokal ke instans Amazon RDS for SQL Server DB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c2dcd6ab-deb1-4d5e-b3c5-3bf48c02ca4e/images/29f90473-6dd4-4574-bfbd-5c6a0481c40e.png)


## Alat
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-tools"></a>
+ 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-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-epics"></a>

### Membuat instans Amazon RDS for SQL Server DB
<a name="create-an-amazon-rds-for-sql-server-db-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih SQL Server sebagai mesin database di Amazon RDS for SQL Server. |  | DBA | 
| Pilih SQL Server Express Edition. |  | DBA | 
| Tentukan detail database. | Untuk informasi selengkapnya tentang membuat instans DB, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | DBA, Pemilik aplikasi | 

### Membuat file cadangan dari database SQL Server lokal
<a name="create-a-backup-file-from-the-on-premises-sql-server-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Connect ke database SQL Server lokal melalui SSMS. |  | DBA | 
| Buat cadangan database. | Untuk instruksi, lihat [dokumentasi SSMS](https://learn.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms). | DBA, Pemilik aplikasi | 

### Unggah file cadangan ke Amazon S3
<a name="upload-the-backup-file-to-amazon-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember di Amazon S3. | Untuk informasi lebih lanjut, lihat [Dokumentasi Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | DBA | 
| Unggah file cadangan ke bucket S3. | Untuk informasi lebih lanjut, lihat [Dokumentasi Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html). | SysOps administrator | 

### Kembalikan database di Amazon RDS for SQL Server
<a name="restore-the-database-in-amazon-rds-for-sql-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan grup opsi ke Amazon RDS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html)Untuk informasi selengkapnya, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html). | SysOps administrator | 
| Kembalikan database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html) | DBA | 

### Validasi basis data target
<a name="validate-the-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi objek dan data. | Validasi objek dan data antara database sumber dan Amazon RDS for SQL Server.Tugas ini hanya memigrasikan database. Login dan pekerjaan tidak akan dimigrasikan. | Pemilik aplikasi, DBA | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengarahkan lalu lintas aplikasi. | Setelah validasi, arahkan lalu lintas aplikasi ke instans Amazon RDS for SQL Server DB. | Pemilik aplikasi, DBA | 

## Sumber daya terkait
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-resources"></a>
+ [Dokumentasi Amazon S3](https://docs.aws.amazon.com/s3/) 
+ [Dokumentasi Amazon RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) 
+ [Pilihan untuk Microsoft SQL Server Database Engine](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 

# Migrasikan database Microsoft SQL Server ke Aurora MySQL dengan menggunakan AWS DMS dan AWS SCT
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct"></a>

*Mark Szalkiewicz dan Pavan Pusuluri, Amazon Web Services*

## Ringkasan
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-summary"></a>

Pola ini menjelaskan cara memigrasikan database Microsoft SQL Server yang ada di tempat atau di instans Amazon Elastic Compute Cloud (Amazon EC2) ke Amazon Aurora MySQL. Pola ini menggunakan AWS Database Migration Service (AWS DMS) dan AWS Schema Conversion Tool (AWS SCT) untuk migrasi data dan konversi skema. 

## Prasyarat dan batasan
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber Microsoft SQL Server di pusat data lokal atau pada instans EC2 
+ Driver Java Database Connectivity (JDBC) untuk konektor AWS SCT, diinstal pada mesin lokal atau instance EC2 tempat AWS SCT diinstal 

 

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ Microsoft SQL Server 2008, 2008R2, 2012, 2014, 2016, dan 2017 untuk edisi Enterprise, Standard, Workgroup, dan Developer. Edisi Web dan Express tidak didukung oleh AWS DMS. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database Microsoft SQL Server sebagai Sumber untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). Kami menyarankan Anda menggunakan AWS DMS versi terbaru untuk versi dan dukungan fitur yang paling komprehensif. Untuk informasi tentang versi Microsoft SQL Server yang didukung oleh AWS SCT, lihat dokumentasi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html).
+ MySQL versi 5.5, 5.6, dan 5.7. Untuk daftar terbaru versi yang didukung, lihat [Menggunakan Database yang kompatibel dengan MySQL sebagai Target untuk AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) DMS.

## Arsitektur
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-architecture"></a>

**Tumpukan teknologi sumber**

Salah satu dari yang berikut: 
+ Database Microsoft SQL Server lokal
+ Database Microsoft SQL Server pada sebuah instance EC2 

**Tumpukan teknologi target**
+ Aurora MySQL

**Arsitektur migrasi data**
+ Dari database Microsoft SQL Server yang berjalan di AWS Cloud 

![\[AWS Cloud architecture showing VPC with private subnet containing SQL Server and Aurora MySQL databases.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/c675ada4-e92c-4ddb-b49f-69668f532504.png)

+ Dari database Microsoft SQL Server yang berjalan di pusat data lokal

![\[AWS Cloud architecture diagram showing on-premises to cloud migration using AWS SCT, DMS, and Aurora MySQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/b6ce0199-fc56-4bf2-a8cc-67de161e3cf0.png)


## Alat
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) (AWS DMS) membantu Anda memigrasikan data ke dan dari basis data komersial dan sumber terbuka yang banyak digunakan, termasuk Oracle, SQL Server, MySQL, dan PostgreSQL. Anda dapat menggunakan AWS DMS untuk memigrasikan data Anda ke AWS Cloud, antar instans lokal (melalui penyiapan AWS Cloud), atau antara kombinasi pengaturan cloud dan lokal.
+ **AWS SCT** - [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) Tool (AWS SCT) memudahkan migrasi database heterogen dengan mengonversi skema basis data sumber secara otomatis dan sebagian besar kode kustom ke format yang kompatibel dengan basis data target.

## Epik
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-epics"></a>

### Bersiaplah untuk migrasi
<a name="prepare-for-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi basis data sumber dan target dan mesin. |  | DBA | 
| Buat grup keamanan keluar untuk basis data sumber dan target. |  | SysAdmin | 
| Buat dan konfigurasikan EC2 instance untuk AWS SCT, jika diperlukan. |  | DBA | 
| Unduh versi terbaru AWS SCT dan driver terkait. |  | DBA | 
| Menambahkan dan memvalidasi pengguna prasyarat dan hibah dalam database sumber. |  | DBA | 
| Buat proyek AWS SCT untuk beban kerja dan sambungkan ke database sumber. |  | DBA | 
| Menghasilkan laporan penilaian dan mengevaluasi kelayakan. |  | DBA | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans DB Amazon RDS target, menggunakan Amazon Aurora sebagai mesin database. |  | DBA | 
| Ekstrak daftar pengguna, peran, dan hibah dari sumbernya. |  | DBA | 
| Memetakan pengguna database yang ada untuk pengguna database baru. |  | Pemilik aplikasi | 
| Buat pengguna di database target. |  | DBA | 
| Terapkan peran dari langkah sebelumnya ke database target. |  | DBA | 
| Tinjau opsi database, parameter, file jaringan, dan tautan basis data dalam basis data sumber, dan kemudian evaluasi penerapannya ke basis data target. |  | DBA | 
| Terapkan pengaturan yang relevan ke target. |  | DBA | 

### Transfer objek
<a name="transfer-objects"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan konektivitas AWS SCT ke database target. |  | DBA | 
| Konversikan skema menggunakan AWS SCT. | AWS SCT secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan basis data target. Kode apa pun yang tidak dapat dikonversi oleh alat secara otomatis ditandai dengan jelas sehingga Anda dapat mengonversinya sendiri. | DBA | 
| Tinjau laporan SQL yang dihasilkan dan simpan kesalahan dan peringatan apa pun. |  | DBA | 
| Terapkan perubahan skema otomatis ke target atau simpan sebagai file.sql. |  | DBA | 
| Validasi bahwa AWS SCT membuat objek pada target.  |  | DBA | 
| Menulis ulang, menolak, atau mendesain ulang item apa pun secara manual yang gagal dikonversi secara otomatis. |  | DBA | 
| Terapkan peran yang dihasilkan dan hibah pengguna dan tinjau pengecualian apa pun. |  | DBA | 

### Migrasikan data
<a name="migrate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan metode migrasi. |  | DBA | 
| Buat instance replikasi dari konsol AWS DMS. | Untuk informasi terperinci tentang penggunaan AWS DMS, lihat tautan di bagian “Sumber daya terkait”. | DBA | 
| Buat titik akhir sumber dan target. |  | DBA | 
| Buat tugas replikasi. |  | DBA | 
| Mulai tugas replikasi dan pantau log. |  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan AWS SCT untuk menganalisis dan mengonversi item SQL dalam kode aplikasi. | Ketika Anda mengonversi skema database Anda dari satu mesin ke mesin lain, Anda juga perlu memperbarui kode SQL dalam aplikasi Anda untuk berinteraksi dengan mesin database baru, bukan yang lama. Anda dapat melihat, menganalisis, mengedit, dan menyimpan kode SQL yang dikonversi. Untuk informasi terperinci tentang penggunaan AWS SCT, lihat tautan di bagian “Sumber daya terkait”. | Pemilik aplikasi | 
| Buat server aplikasi baru di AWS. |  | Pemilik aplikasi | 
| Migrasikan kode aplikasi ke server baru. |  | Pemilik aplikasi | 
| Konfigurasikan server aplikasi untuk database target dan driver. |  | Pemilik aplikasi | 
| Perbaiki kode apa pun yang khusus untuk mesin basis data sumber dalam aplikasi. |  | Pemilik aplikasi | 
| Optimalkan kode aplikasi untuk mesin target. |  | Pemilik aplikasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Terapkan setiap pengguna baru, hibah, dan perubahan kode ke target. |  | DBA | 
| Kunci aplikasi untuk setiap perubahan. |  | Pemilik aplikasi | 
| Validasi bahwa semua perubahan disebarkan ke database target. |  | DBA | 
| Arahkan server aplikasi baru ke database target. |  | Pemilik aplikasi | 
| Periksa kembali semuanya. |  | Pemilik aplikasi | 
| Pergilah hidup. |  | Pemilik aplikasi | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara (instans replikasi AWS DMS dan EC2 instans yang digunakan untuk AWS SCT). |  | DBA, Pemilik aplikasi | 
| Perbarui umpan balik tentang proses AWS DMS untuk tim internal. |  | DBA, Pemilik aplikasi | 
| Merevisi proses AWS DMS dan meningkatkan template jika perlu. |  | DBA, Pemilik aplikasi | 
| Meninjau dan memvalidasi dokumen proyek. |  | DBA, Pemilik aplikasi | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi, persen penghematan biaya manual versus alat, dan sebagainya. |  | DBA, Pemilik aplikasi | 
| Tutup proyek dan berikan umpan balik apa pun. |  | DBA, Pemilik aplikasi | 

## Sumber daya terkait
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-related-resources"></a>

**Referensi**
+ [Panduan Pengguna AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Panduan Pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)  
+ [Harga Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/) 

**Tutorial dan video**
+ [Memulai AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Sumber daya Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Panduan AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) 

# Memigrasi database MariaDB lokal ke Amazon RDS for MariaDB menggunakan alat bawaan
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools"></a>

*Shyam Sunder Rakhecha, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-summary"></a>

Pola ini memberikan panduan untuk memigrasikan database MariaDB lokal ke Amazon Relational Database Service (Amazon RDS) untuk MariaDB dengan menggunakan alat bawaan. **Jika Anda memiliki alat MySQL diinstal, Anda dapat **menggunakan** mysql dan mysqldump.** **Jika Anda telah menginstal alat MariaDB, Anda dapat **menggunakan** mariadb dan mariadb-dump.** Alat MySQL dan MariaDB memiliki asal yang sama, tetapi ada perbedaan kecil di MariaDB versi 10.6 dan yang lebih baru.

## Prasyarat dan batasan
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Database sumber MariaDB di pusat data lokal

**Batasan**
+ Batas ukuran database: 64 TB

**Versi produk**
+ [MariaDB versi 10.0-10.6 (untuk daftar terbaru versi yang didukung, lihat MariaDB di Amazon RDS dalam dokumentasi AWS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt)

## Arsitektur
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-architecture"></a>

**Tumpukan teknologi sumber**
+ Basis data MariaDB di pusat data lokal

**Tumpukan teknologi target**
+ Amazon RDS untuk instance DB MariaDB

**Arsitektur target**

![\[Diagram arsitektur dengan instans RDS DB primer dan siaga di Availability Zone yang berbeda.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/eca8eb55-579a-42e2-96ce-9b14b097b4c9.png)


**Arsitektur migrasi data**

![\[Diagram arsitektur untuk memigrasikan database MariaDB lokal ke Amazon RDS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/daba40e2-a2b1-44f8-8e69-31458206a823.png)


## Alat
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-tools"></a>
+ ****Alat MySQL asli: mysql dan mysqldump****
+ ****Alat MariaDB asli: mariadb dan mariadb-dump****

## Epik
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi dan mesin basis data sumber dan target. |  | DBA | 
| Identifikasi persyaratan perangkat keras untuk instance server target. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). |  | DBA, Administrator sistem | 
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. |  | DBA, Administrator sistem | 
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. |  | DBA, Administrator sistem | 
| Identifikasi strategi migrasi aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). |  | Administrator sistem | 
| Buat grup keamanan. |  | Administrator sistem | 
| Konfigurasikan dan mulai instans Amazon RDS DB yang menjalankan MariaDB. |  | Administrator sistem | 

### Migrasikan data
<a name="migrate-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat asli untuk memigrasikan objek dan data database. | Dalam database sumber, gunakan **mysqldump atau **mariadb-dump**** untuk membuat file output yang berisi objek database dan data. Dalam database target, gunakan **mysql** atau **mariadb** untuk mengembalikan data. | DBA | 
| Validasi data. | Periksa basis data sumber dan target untuk mengonfirmasi bahwa migrasi data berhasil. | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strategi migrasi aplikasi. |  | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Alihkan klien aplikasi ke infrastruktur baru. |  | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya AWS sementara. |  | Administrator sistem | 
| Tinjau dan validasi dokumen proyek. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik di sekitar waktu untuk bermigrasi, penghematan biaya yang disediakan oleh alat, dan sebagainya. |  | DBA, Pemilik aplikasi, Administrator sistem | 
| Tutup proyek dan berikan umpan balik. |  | DBA, Pemilik aplikasi, Administrator sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-resources"></a>

**Referensi Amazon RDS**
+ [Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/)
+ [Amazon Virtual Private Cloud VPCs dan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Penyebaran Multi-AZ Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Harga Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Referensi MySQL dan MariaDB**
+ [mariadb-dump/mysqldump](https://mariadb.com/kb/en/mariadb-dumpmysqldump/) 
+ [Klien baris perintah mysql](https://mariadb.com/kb/en/mysql-command-line-client/) 

**Tutorial dan video**
+ [Memulai dengan Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Memigrasikan database MySQL lokal ke Aurora MySQL
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql"></a>

*Igor Obradovic, Amazon Web Services*

## Ringkasan
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-summary"></a>

Pola ini menjelaskan cara memigrasikan database sumber MySQL lokal ke Amazon Aurora Edisi yang kompatibel dengan MySQL. **Ini menjelaskan dua opsi untuk migrasi: menggunakan AWS Database Migration Service (AWS DMS) atau menggunakan alat MySQL asli **seperti** mysqldbcopy dan mysqldump.** 

## Prasyarat dan batasan
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Database MySQL sumber di pusat data lokal

**Batasan**
+ Batas ukuran database: 128 TB

**Versi produk**
+ MySQL versi 8.0 (Aurora MySQL versi 3) tersedia di bawah dukungan standar. 
+ MySQL versi 5.7 (Aurora MySQL versi 2) tersedia di bawah dukungan diperpanjang, dengan biaya tambahan.

Untuk daftar terbaru versi yang didukung, lihat versi [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html) dalam dokumentasi. AWS Jika Anda menggunakan AWS DMS, lihat juga [Menggunakan Database yang kompatibel dengan MySQL sebagai Target untuk](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) versi AWS DMS MySQL yang didukung oleh. AWS DMS

## Arsitektur
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-architecture"></a>

**Tumpukan teknologi sumber**
+ Database MySQL lokal

**Tumpukan teknologi target**
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL 

**Arsitektur target**

Data Aurora disimpan dalam volume cluster, yang merupakan volume virtual tunggal yang menggunakan solid state drive ()SSDs. Volume cluster terdiri dari salinan data di tiga Availability Zone dalam satu Wilayah AWS. Karena data secara otomatis direplikasi di seluruh Availability Zone, ini sangat tahan lama dengan kemungkinan kehilangan data yang lebih kecil.

Aurora secara otomatis membagi volume database Anda menjadi segmen 10 GB yang tersebar di banyak disk. Setiap potongan 10 GB volume database Anda direplikasi enam cara, di tiga Availability Zone. Diagram berikut menggambarkan hubungan antara volume cluster, instance DB penulis, dan instance DB pembaca dalam cluster Aurora DB, dan pemisahan kapasitas komputasi dan penyimpanan. [Untuk informasi lebih lanjut tentang arsitektur ini, lihat [dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html) dan FAQ.](https://aws.amazon.com/rds/aurora/faqs/#product-faqs)

![\[Instans Aurora MySQL DB dan volume penyimpanan bersama di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/0d7d8ebd-e0f2-4bcf-b296-8bdfb2f12b64.png)


**Arsitektur migrasi data**

*Menggunakan AWS DMS:*

Diagram berikut menggambarkan migrasi database MySQL lokal ke cluster yang kompatibel dengan Aurora MySQL di, menggunakan. AWS Cloud AWS DMS

![\[Memigrasi database MySQL lokal ke Aurora MySQL dengan menggunakan AWS DMS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/e5d72ebd-d157-45d7-8844-d1011f1646c0.png)


*Menggunakan alat MySQL asli:*

****Diagram berikut mengilustrasikan migrasi database MySQL lokal ke klaster yang kompatibel dengan Aurora MySQL di, menggunakan alat MySQL asli seperti mysqldbcopy dan AWS Cloud mysqldump.****

![\[Migrasi database MySQL lokal ke Aurora MySQL dengan menggunakan mysqldbcopy dan mysqldump.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/26258752-24f6-4241-a49f-59c15e946314.png)


 

## Alat
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) mendukung beberapa mesin basis data sumber dan target. Untuk informasi tentang sumber MySQL dan basis data target yang didukung AWS DMS oleh, [lihat](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) Memigrasi Database yang kompatibel dengan MySQL ke. AWS Kami menyarankan Anda menggunakan versi terbaru AWS DMS untuk versi dan dukungan fitur yang paling komprehensif.
+ [mysqldbcopy adalah](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) utilitas MySQL yang menyalin database MySQL pada satu server atau antar server.
+ [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.

## Epik
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-epics"></a>

### Rencanakan migrasi
<a name="plan-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi versi dan mesin. | Validasi versi database dan mesin untuk basis data sumber dan target. | DBA | 
| Identifikasi persyaratan perangkat keras. | Identifikasi persyaratan perangkat keras untuk instance server target. | DBA, Administrator sistem | 
| Identifikasi persyaratan penyimpanan. | Identifikasi persyaratan penyimpanan (jenis dan kapasitas penyimpanan). | DBA, Administrator sistem | 
| Pilih jenis instans. | Pilih jenis instans yang tepat berdasarkan persyaratan komputasi, penyimpanan, dan jaringan Anda. | DBA, Administrator sistem | 
| Tentukan persyaratan keamanan akses jaringan. | Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. | DBA, Administrator sistem | 
| Tentukan strategi. | Identifikasi strategi migrasi aplikasi. | DBA, Pemilik aplikasi, Administrator sistem | 

### Konfigurasikan infrastruktur
<a name="configure-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cloud pribadi virtual (VPC). | Untuk petunjuk, lihat [Membuat VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) di dokumentasi Amazon Virtual Private Cloud (Amazon VPC). | Administrator sistem | 
| Buat grup keamanan. | Untuk petunjuknya, lihat [Membuat grup keamanan untuk VPC Anda di dokumentasi](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) Amazon VPC. | Administrator sistem | 
| Konfigurasikan dan mulai cluster DB yang kompatibel dengan Aurora MySQL di. Akun AWS | Untuk petunjuknya, lihat [Membuat klaster DB Amazon Aurora di dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) Aurora. | Administrator sistem | 

### Migrasikan data - opsi 1
<a name="migrate-data---option-1"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan alat MySQL asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | [https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) | DBA | 

### Migrasikan data - opsi 2
<a name="migrate-data---option-2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Migrasikan data dengan AWS DMS. | Untuk petunjuk, lihat [Menggunakan database yang kompatibel dengan MySQL sebagai sumber dan Menggunakan database](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html) [yang kompatibel dengan MySQL sebagai target dalam dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). AWS DMS  | DBA | 

### Migrasikan aplikasi
<a name="migrate-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti strateginya. | Ikuti strategi migrasi aplikasi. | DBA, Pemilik aplikasi, Administrator sistem | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Beralih klien aplikasi. | Alihkan klien aplikasi untuk terhubung ke titik akhir cluster Aurora yang baru. | DBA, Pemilik aplikasi, Administrator sistem | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Matikan sumber daya. | Matikan AWS sumber daya sementara. | DBA, Administrator sistem | 
| Tinjau dokumentasi. | Tinjau dan validasi dokumen proyek. | DBA, Pemilik aplikasi, Administrator sistem | 
| Kumpulkan metrik. | Kumpulkan metrik di sekitar waktu untuk bermigrasi, persentase langkah manual versus penggunaan alat, penghematan biaya, dan sebagainya. | DBA, Pemilik aplikasi, Administrator sistem | 
| Selesaikan proyek migrasi. | Tutup proyek dan berikan umpan balik. | Pemilik aplikasi, DBA, administrator Sistem | 

## Sumber daya terkait
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-resources"></a>

**Referensi**
+ [Migrasi data ke Amazon Aurora MySQL DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.html)
+ [AWS DMS situs web](https://aws.amazon.com/dms/)
+ [AWS DMS dokumentasi](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Harga Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Membuat dan menghubungkan ke cluster DB MySQL Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.Aurora.html)
+ [Amazon VPC dan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Dokumentasi Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)

**Tutorial dan video**
+ [Memulai dengan AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Memulai dengan Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.html)

# Migrasikan database MySQL lokal ke Aurora MySQL menggunakan Percona, Amazon EFS, dan Amazon S3 XtraBackup
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3"></a>

*Rohan Jamadagni, Udayasimha Theepireddy, dan sajith menon, Amazon Web Services*

## Ringkasan
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-summary"></a>

Pola ini menjelaskan cara memigrasi database MySQL lokal yang besar secara efisien ke Amazon Aurora MySQL menggunakan Percona. XtraBackup Percona XtraBackup adalah utilitas cadangan open-source dan non-blocking untuk server berbasis MySQL. Pola ini menunjukkan cara menggunakan Amazon Elastic File System (Amazon EFS) untuk mengurangi waktu mengunggah cadangan ke Amazon Simple Storage Service (Amazon S3) dan mengembalikan cadangan ke Amazon Aurora MySQL. Pola ini juga memberikan rincian tentang cara membuat backup Percona tambahan untuk meminimalkan jumlah log biner yang akan diterapkan ke database MySQL Aurora target.  

## Prasyarat dan batasan
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Izin untuk membuat peran dan kebijakan AWS Identity and Access Management (IAM)
+ Konektivitas jaringan antara database MySQL lokal dan cloud pribadi virtual (VPC) di AWS

**Batasan**
+ Server sumber harus sistem berbasis Linux yang dapat menginstal klien Network File System (NFS) (nfs-utils/nfs-common).
+ Bucket S3 yang digunakan untuk mengunggah file cadangan hanya mendukung enkripsi sisi server (SSE-S3/SSE-KMS).
+ Amazon S3 membatasi ukuran file cadangan hingga 5 TB. Jika file cadangan Anda melebihi 5 TB, Anda dapat membaginya menjadi beberapa file yang lebih kecil.
+ Jumlah file sumber yang diunggah ke bucket S3 tidak boleh melebihi satu juta file.
+ Pola ini mendukung Percona XtraBackup full backup dan incremental backup saja. Itu tidak mendukung cadangan sebagian yang menggunakan`--tables`,,,`--tables-exclude`, `--tables-file` `--databases``--databases-exclude`, atau. `--databases-file`
+ Aurora tidak memulihkan pengguna, fungsi, prosedur tersimpan, atau informasi zona waktu dari database MySQL sumber.

**Versi produk**
+ Database sumber harus MySQL versi 5.5, 5.6, atau 5.7.
+ Untuk MySQL 5.7, Anda harus menggunakan Percona 2.4. XtraBackup 
+ Untuk MySQL 5.6 dan 5.6, Anda harus menggunakan Percona 2.3 atau 2.4. XtraBackup 

## Arsitektur
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-architecture"></a>

**Tumpukan teknologi sumber**
+ Sistem operasi berbasis Linux
+ Server MySQL
+ Percona XtraBackup

**Tumpukan teknologi target**
+ Amazon Aurora
+ Amazon S3
+ Amazon EFS

**Arsitektur target**

![\[Arsitektur untuk memigrasikan database MySQL besar ke Amazon Aurora MySQL dengan menggunakan Percona. XtraBackup\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bf327776-bafd-484d-9ae2-a6f5c8af6edd/images/7a410539-1511-4106-90e2-8c0c8e95f92b.png)


## Alat
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-tools"></a>

*Layanan AWS*
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) adalah mesin database relasional yang dikelola sepenuhnya yang membuatnya sederhana dan hemat biaya untuk menyiapkan, mengoperasikan, dan menskalakan penyebaran MySQL. Aurora MySQL adalah pengganti drop-in untuk MySQL.
+ [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 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.

**Alat-alat lainnya**
+ [Percona XtraBackup](https://www.percona.com/doc/percona-xtrabackup/2.4/index.html) adalah utilitas sumber terbuka yang melakukan streaming, terkompresi, dan pencadangan tambahan dari database MySQL tanpa mengganggu atau memblokir database Anda.

## Epik
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-epics"></a>

### Buat sistem file Amazon EFS
<a name="create-an-amazon-efs-file-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup keamanan untuk diasosiasikan dengan target pemasangan Amazon EFS. | Buat grup keamanan di VPC yang dikonfigurasi dengan lampiran VPN ke database lokal melalui AWS Transit Gateway. Untuk informasi selengkapnya tentang perintah dan langkah yang dijelaskan dalam cerita ini dan cerita lainnya, lihat tautan di bagian “Sumber daya terkait” di akhir pola ini. |  DevOps/database Administrator AWS | 
| Edit aturan grup keamanan. | Tambahkan aturan masuk, menggunakan tipe NFS, port 2049, dan rentang IP server database lokal sebagai sumbernya. Secara default, aturan keluar memungkinkan semua lalu lintas untuk pergi. Jika ini tidak terjadi, tambahkan aturan keluar untuk membuka koneksi untuk port NFS. Tambahkan dua aturan masuk lagi: port 2049 (sumber: ID grup keamanan dari grup keamanan yang sama ini) dan port 22 (sumber: rentang IP dari mana Anda akan terhubung ke sebuah EC2 instance). |  DevOps/database Administrator AWS | 
| Buat sistem file. | Di target pemasangan, gunakan VPC dan grup keamanan yang Anda buat di cerita sebelumnya. Pilih mode throughput dan kinerja berdasarkan I/O persyaratan database lokal. Secara opsional, aktifkan enkripsi saat istirahat. |  DevOps/database Administrator AWS | 

### Pasang sistem berkas
<a name="mount-the-file-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran profil instans IAM untuk dikaitkan dengan sebuah EC2 instance. | Buat peran IAM yang memiliki izin untuk mengunggah dan mengakses objek di Amazon S3. Pilih bucket S3 tempat cadangan akan disimpan sebagai sumber kebijakan. | AWS DevOps | 
| Buat sebuah EC2 instance. | Luncurkan EC2 instance berbasis Linux dan lampirkan peran profil instans IAM yang Anda buat pada langkah sebelumnya, dan grup keamanan yang Anda buat sebelumnya. | AWS DevOps | 
| Instal klien NFS. | Instal klien NFS di server database lokal dan instans. EC2 Untuk petunjuk penginstalan, lihat bagian “Informasi tambahan”. | DevOps | 
| Pasang sistem file Amazon EFS. | Pasang sistem file Amazon EFS di tempat dan di EC2 instans. Di setiap server, buat direktori untuk menyimpan cadangan, dan pasang sistem file dengan menggunakan titik akhir target mount. Sebagai contoh, lihat bagian “Informasi tambahan”. | DevOps | 

### Buat cadangan database sumber MySQL
<a name="make-a-backup-of-the-mysql-source-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal XtraBackup Percona. | Instal Percona XtraBackup 2.3 atau 2.4 (tergantung pada versi database MySQL Anda) di server database lokal. Untuk tautan instalasi, lihat bagian “Sumber daya terkait”. | Administrator basis data | 
| Hitung skema dan tabel dalam database sumber. | Kumpulkan dan catat jumlah skema dan objek dalam database sumber MySQL. Anda akan menggunakan jumlah ini untuk memvalidasi database Aurora MySQL setelah migrasi. | Administrator basis data | 
| (Opsional) Perhatikan urutan log biner terbaru dari database sumber. | Lakukan langkah ini jika Anda ingin membuat replikasi log biner antara database sumber dan Aurora MySQL untuk meminimalkan waktu henti. log-bin harus diaktifkan, dan server\$1id harus unik. Perhatikan urutan log biner saat ini dari database sumber, tepat sebelum memulai cadangan. Lakukan langkah ini sebelum pencadangan penuh jika Anda berencana hanya menggunakan cadangan penuh. Jika Anda berencana untuk membuat cadangan tambahan setelah pencadangan penuh, lakukan langkah ini tepat sebelum pencadangan tambahan akhir yang akan Anda pulihkan pada instance Aurora MySQL DB. | Administrator basis data | 
| Mulai backup penuh dari sumber MySQL database. | Buat cadangan lengkap database sumber MySQL menggunakan Percona. XtraBackup Misalnya perintah untuk cadangan penuh dan tambahan, lihat bagian “Informasi tambahan”. | Administrator basis data | 
| (Opsional) Buat cadangan tambahan menggunakan Percona. XtraBackup | Backup tambahan dapat digunakan untuk mengurangi jumlah log biner yang perlu Anda terapkan untuk menyinkronkan database sumber dengan Aurora MySQL. Database ukuran besar dan berat transaksi mungkin menghasilkan sejumlah besar log biner selama pencadangan. Dengan mengambil cadangan tambahan dan menyimpannya di sistem file Amazon EFS bersama, Anda dapat secara signifikan mengurangi waktu untuk mencadangkan dan mengunggah database Anda. Untuk detailnya, lihat bagian “Informasi tambahan”. Lanjutkan untuk membuat backup tambahan sampai Anda siap untuk memulai proses migrasi ke Aurora. | Administrator basis data | 
| Siapkan cadangan. | Pada langkah ini, log transaksional diterapkan pada cadangan untuk transaksi yang sedang dalam penerbangan selama pencadangan. Terus menerapkan log transaksional (--apply-log-only) ke setiap cadangan tambahan untuk menggabungkan cadangan, kecuali untuk cadangan terakhir. Sebagai contoh, lihat bagian “Informasi tambahan”. <efs\$1mount\$1name>Setelah langkah ini, cadangan yang lengkap dan digabungkan akan berada di \$1/ /fullbackup. | Administrator basis data | 
| Zip dan pisahkan cadangan gabungan terakhir. | Setelah Anda menyiapkan cadangan terakhir yang digabungkan, gunakan perintah tar, zip, dan split untuk membuat file cadangan zip yang lebih kecil. Sebagai contoh, lihat bagian “Informasi tambahan”. | Administrator basis data | 

### Kembalikan cadangan ke cluster DB MySQL Aurora
<a name="restore-the-backup-to-an-aurora-mysql-db-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah cadangan ke Amazon S3. | Sistem file Amazon EFS tempat file cadangan disimpan dipasang pada database lokal dan EC2 instans, sehingga file cadangan sudah tersedia untuk instance. EC2 <efs\$1mount\$1name><bucket\$1name>Hubungkan ke EC2 instance dengan menggunakan Secure Shell (SSH) dan unggah file cadangan zip ke bucket S3 baru atau yang sudah ada; misalnya: aws s3 sync \$1/ /fullbackup s3:///fullbackup. Untuk detail tambahan, lihat tautan di bagian “Sumber daya terkait”. | AWS DevOps | 
| Buat peran layanan untuk Aurora untuk mengakses Amazon S3. | Buat peran IAM dengan kepercayaan “rds.amazonaws.com” dan kebijakan yang memungkinkan Aurora mengakses bucket S3 tempat file cadangan disimpan. Izin yang diperlukan adalah ListBucket, GetObject, dan GetObjectVersion. | AWS DevOps | 
| Buat konfigurasi jaringan untuk Aurora. | Buat grup subnet cluster DB dengan setidaknya dua Availability Zones dan konfigurasi tabel rute subnet yang memungkinkan konektivitas keluar ke database sumber. Buat grup keamanan yang memungkinkan koneksi keluar ke database lokal, dan memungkinkan administrator untuk terhubung ke klaster Aurora DB. Untuk informasi selengkapnya, lihat tautan di bagian “Sumber daya terkait”. |  DevOps/database Administrator AWS | 
| Kembalikan cadangan ke cluster DB MySQL Aurora. | Pulihkan data Anda dari cadangan yang Anda unggah ke Amazon S3. Tentukan versi MySQL dari database sumber Anda, berikan nama bucket S3 dan awalan jalur folder tempat Anda mengunggah file cadangan (misalnya, “fullbackup” untuk contoh di bagian “Informasi tambahan”), dan berikan peran IAM yang Anda buat untuk mengotorisasi Aurora mengakses Amazon S3. |  DevOps/database Administrator AWS | 
| Validasi database Aurora MySQL. | Validasi jumlah skema dan objek di cluster Aurora DB yang dipulihkan terhadap hitungan yang Anda peroleh dari database sumber. | Administrator basis data | 
| Siapkan replikasi binlog.  | Gunakan urutan log biner yang Anda catat sebelumnya, sebelum membuat cadangan terakhir yang dikembalikan ke cluster Aurora DB. Buat pengguna replikasi pada basis data sumber, dan ikuti instruksi di bagian “Informasi tambahan” untuk memberikan hak istimewa yang sesuai, untuk mengaktifkan replikasi pada Aurora, dan untuk mengonfirmasi bahwa replikasi sinkron. |  DevOps/database Administrator AWS | 

## Sumber daya terkait
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-resources"></a>

**Membuat sistem file Amazon EFS**
+ [Membuat grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups) (dokumentasi Amazon VPC)
+ [Lampiran VPN gateway transit](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html) (dokumentasi Amazon VPC)
+ [Menskalakan throughput VPN menggunakan AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) (blog Jaringan & Pengiriman Konten)
+ [Membuat sistem file Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step1-efs) (dokumentasi Amazon EFS)
+ [Membuat target pemasangan](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) (dokumentasi Amazon EFS)
+ [Mengenkripsi data saat istirahat (dokumentasi](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) Amazon EFS)

**Memasang sistem file**
+ [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) ( EC2 dokumentasi Amazon)
+ [Meluncurkan instans Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) ( EC2 dokumentasi Amazon)
+ [Menginstal klien NFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) (dokumentasi Amazon EFS)
+ [Memasang sistem file Amazon EFS di klien lokal Anda](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) (dokumentasi Amazon EFS)
+ [Memasang Sistem File EFS](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) (dokumentasi Amazon EFS)

**Membuat cadangan database sumber MySQL**
+ [Instalasi Percona XtraBackup 2.3 (dokumentasi](https://www.percona.com/doc/percona-xtrabackup/2.3/installation.html) XtraBackup Percona)
+ [Instalasi Percona XtraBackup 2.4 (dokumentasi](https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html) XtraBackup Percona) 
+ [Mengatur konfigurasi master replikasi (dokumentasi](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) MySQL)
+ [Migrasi data dari database MySQL eksternal ke cluster DB MySQL Aurora (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html))
+ [Pencadangan tambahan (dokumentasi](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) XtraBackup Percona)

**Memulihkan cadangan ke Amazon Aurora MySQL**
+ [Membuat ember](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro) (dokumentasi Amazon S3)
+ [Menyambung ke instans Linux Anda menggunakan SSH (dokumentasi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) Amazon Ec2)
+ [Mengkonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) (dokumentasi AWS CLI)
+ [perintah sinkronisasi](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) (referensi perintah AWS CLI)
+ [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html) (dokumentasi Aurora)
+ [Prasyarat cluster DB (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html#Aurora.CreateInstance.Prerequisites))
+ [Bekerja dengan grup subnet DB (dokumentasi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) Aurora)
+ [Membuat grup keamanan VPC untuk instans DB pribadi](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB) (dokumentasi Aurora)
+ [Memulihkan cluster DB MySQL Aurora dari bucket S3 (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore))
+ [Menyiapkan replikasi dengan MySQL atau cluster Aurora DB lainnya (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html#AuroraMySQL.Replication.MySQL.SettingUp))
+ [mysql.rds\$1set\$1external\$1master prosedur](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html) (MySQL pada referensi Amazon RDS SQL)
+ [mysql.rds\$1start\$1replication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_start_replication.html) procedure (MySQL pada referensi Amazon RDS SQL)

**Referensi tambahan**
+ [Migrasi data dari database MySQL eksternal ke cluster DB MySQL Aurora (dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html))
+ Unduhan [server MySQL (situs web Oracle](https://downloads.mysql.com/archives/community/))

**Tutorial dan video**
+  [Migrasi data MySQL ke cluster DB MySQL Aurora menggunakan Amazon S3 (AWS Knowledge](https://aws.amazon.com/premiumsupport/knowledge-center/migrate-mysql-aurora-innobackup/) Center)
+  [Penyiapan dan pemasangan Amazon EFS](https://www.youtube.com/watch?v=NR8rVsSn_dY) (video)

## Informasi tambahan
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-additional"></a>

**Menginstal klien NFS**
+ Jika Anda menggunakan Red Hat atau sistem operasi Linux serupa, gunakan perintah:  

```
$ sudo yum -y install nfs-utils
```
+ Jika Anda menggunakan Ubuntu atau sistem operasi Linux serupa, gunakan perintah: 

```
$ sudo apt-get -y install nfs-common
```

Untuk informasi selengkapnya, lihat [panduan di dokumentasi](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) Amazon EFS.

**Memasang sistem file Amazon EFS**

Gunakan perintah:

```
mkdir ~/<efs_mount_name>
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/<efs_mount_name>
```

Untuk informasi selengkapnya, lihat [panduan dan Pemasangan](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) [Sistem File EFS di dokumentasi](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) Amazon EFS.

**Membuat backup dari database sumber MySQL**

*Cadangan penuh*

Gunakan perintah seperti berikut ini, yang mengambil cadangan, ritsleting, dan membaginya menjadi potongan-potongan kecil masing-masing 1 GB:

```
xtrabackup --backup --user=dbuser --password=<password> --binlog-info=AUTO --stream=tar --target-dir=~/<efs_mount_name>/fullbackup | gzip - | split -d --bytes=1024MB - ~/<efs_mount_name>/fullbackup/backup.tar.gz &
```

Jika Anda berencana untuk membuat cadangan tambahan berikutnya setelah pencadangan penuh, jangan zip dan pisahkan cadangan. Sebagai gantinya, gunakan perintah yang mirip dengan berikut ini:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/fullbackup/
```

*Pencadangan tambahan*

Gunakan jalur cadangan lengkap untuk `--incremental-basedir` parameter; misalnya:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/incremental/backupdate --incremental-basedir=~/<efs_mount_name>/fullbackup
```

di mana *basedir* adalah jalur ke cadangan lengkap dan file xtrabackup\$1checkpoints.

Untuk informasi selengkapnya tentang membuat cadangan, lihat [Memigrasi Data dari Database MySQL Eksternal ke Cluster DB MySQL Amazon Aurora dalam dokumentasi Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html).

**Mempersiapkan cadangan**

Untuk menyiapkan cadangan lengkap:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup
```

Untuk menyiapkan cadangan tambahan:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06062020
```

Untuk menyiapkan cadangan akhir:

```
xtrabackup --prepare --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06072020
```

Untuk informasi selengkapnya, lihat [Pencadangan tambahan](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) di dokumentasi Percona. XtraBackup 

**Ritsleting dan pemisahan cadangan yang digabungkan**

<efs\$1mount\$1name>Untuk zip cadangan gabungan di \$1/ /fullbackup:

```
tar -zcvf <backupfilename.tar.gz> ~/<efs_mount_name>/fullbackup
```

Untuk membagi cadangan:

```
split -d -b1024M --verbose  <backupfilename.tar.gz> <backupfilename.tar.gz>
```

**Menyiapkan replikasi binlog**

Untuk membuat pengguna replikasi pada database sumber dan memberikan hak istimewa yang sesuai:

```
CREATE USER 'repl_user'@'' IDENTIFIED BY ''; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'';
```

Untuk mengaktifkan replikasi pada Aurora dengan menghubungkan ke cluster Aurora DB, aktifkan log biner di grup parameter cluster DB. Set `binlog_format = mixed` (mode campuran lebih disukai). Perubahan ini mengharuskan Anda memulai ulang instance untuk menerapkan pembaruan.

```
CALL mysql.rds_set_external_master ('sourcedbinstanceIP', sourcedbport, 'repl_user', '', 'binlog_file_name', binlog_file_position, 0); CALL mysql.rds_start_replication;
```

Untuk mengonfirmasi bahwa replikasi sinkron:

```
SHOW Slave Status \G;
```

Bidang **Detik di belakang master** menunjukkan seberapa jauh di belakang Aurora dari database lokal.

# Migrasikan aplikasi Java lokal ke AWS menggunakan AWS App2Container
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Ringkasan
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

AWS App2Container (A2C) adalah alat baris perintah yang membantu mengubah aplikasi yang ada yang berjalan di mesin virtual menjadi wadah, tanpa perlu perubahan kode apa pun. A2C menemukan aplikasi yang berjalan di server, mengidentifikasi dependensi, dan menghasilkan artefak yang relevan untuk penyebaran tanpa batas ke Amazon Elastic Container Service (Amazon ECS) Container Service (Amazon ECS) dan Amazon Elastic Kubernetes Service (Amazon EKS).

Pola ini menyediakan langkah-langkah untuk memigrasikan aplikasi Java lokal dari jarak jauh yang diterapkan pada server aplikasi ke AWS Fargate atau Amazon EKS dengan menggunakan App2Container melalui mesin pekerja. 

Mesin pekerja dapat digunakan dalam kasus penggunaan berikut:
+ Instalasi Docker tidak diperbolehkan atau tidak tersedia di server aplikasi tempat aplikasi Java berjalan.
+ Anda harus mengelola migrasi beberapa aplikasi yang digunakan pada server fisik atau virtual yang berbeda.

Pola ini menggunakan AWS CodeCommit AWS CodePipeline,, dan AWS CodeBuild.

## Prasyarat dan batasan
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Prasyarat**
+ Server aplikasi dengan aplikasi Java yang berjalan di server Linux
+ Mesin pekerja dengan sistem operasi Linux
+ Mesin pekerja dengan setidaknya 20 GB ruang disk yang tersedia

**Batasan**
+ Tidak semua aplikasi didukung. Untuk informasi selengkapnya, lihat [Aplikasi yang didukung untuk Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Arsitektur
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Tumpukan teknologi sumber**
+ Aplikasi Java berjalan di server Linux

**Tumpukan teknologi target**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Arsitektur target**

![\[Arsitektur untuk aplikasi Java lokal di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Alat
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Alat**
+ [AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) — AWS App2Container (A2C) adalah alat baris perintah untuk membantu Anda mengangkat dan memindahkan aplikasi yang berjalan di pusat data lokal atau di mesin virtual, sehingga mereka berjalan dalam wadah yang dikelola oleh Amazon ECS atau Amazon EKS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — AWS CodeBuild adalah layanan build yang dikelola sepenuhnya di cloud. CodeBuild mengkompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — AWS CodeCommit adalah layanan kontrol versi yang dihosting oleh Amazon Web Services yang dapat Anda gunakan untuk menyimpan dan mengelola aset secara pribadi (seperti dokumen, kode sumber, dan file biner) di cloud.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — AWS CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perangkat lunak Anda.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang sangat skalabel dan cepat untuk menjalankan, menghentikan, dan mengelola kontainer di cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) — Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola AWS yang aman, terukur, dan andal.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) — Amazon Elastic Kubernetes Service (Amazon EKS) adalah layanan terkelola yang dapat Anda gunakan untuk menjalankan Kubernetes di AWS tanpa perlu menginstal, mengoperasikan, dan memelihara control plane atau node Kubernetes Anda sendiri.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — AWS Fargate adalah teknologi yang dapat Anda gunakan dengan Amazon ECS untuk menjalankan container tanpa harus mengelola server atau cluster instans Amazon Elastic Compute Cloud (Amazon). EC2 Dengan Fargate, Anda tidak perlu menyediakan, mengonfigurasi, atau menskalakan klaster mesin virtual untuk menjalankan kontainer.

## Epik
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat rahasia untuk mengakses server aplikasi. | Untuk mengakses server aplikasi dari jarak jauh dari mesin pekerja, buat rahasia di AWS Secrets Manager. Untuk rahasia Anda, Anda dapat menggunakan kunci pribadi SSH atau Sertifikat dan kunci pribadi SSH. Untuk informasi selengkapnya, lihat [Mengelola rahasia untuk AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Pengembang | 

### Siapkan mesin pekerja
<a name="set-up-the-worker-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal file tar. | Jalankan `sudo yum install -y tar`. | DevOps, Pengembang | 
| Instal AWS CLI. | Untuk menginstal Amazon Command Line Interface (AWS CLI), jalankan. `curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"` Buka ritsleting`awscliv2.zip`.Jalankan `sudo ./aws/install`. | DevOps, Pengembang | 
| Instal App2Container. | Jalankan perintah berikut:`curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz``sudo tar xvf AWSApp2Container-installer-linux.tar.gz``sudo ./install.sh` | DevOps, Pengembang | 
| Konfigurasikan profil. | Untuk mengonfigurasi profil default AWS, jalankan`sudo aws configure`.Untuk mengonfigurasi profil default AWS bernama, jalankan`sudo aws configure --profile <profile name>`. | DevOps, Pengembang | 
| Pasang Docker. | Jalankan perintah berikut.`sudo yum install -y docker``sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Inisialisasi App2Container. | Untuk menginisialisasi App2Container, Anda memerlukan informasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Jalankan `sudo app2container init`. | DevOps, Pengembang | 

### Konfigurasikan mesin pekerja
<a name="configure-the-worker-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan mesin pekerja untuk menghubungkan dan menjalankan perintah App2Container dari jarak jauh di server aplikasi. | Untuk mengkonfigurasi mesin pekerja, informasi berikut diperlukan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Jalankan `sudo app2container remote configure`. | DevOps, Pengembang | 

### Temukan, analisis, dan ekstrak aplikasi pada mesin pekerja
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Temukan aplikasi Java lokal. | Untuk menemukan semua aplikasi yang berjalan di server aplikasi dari jarak jauh, jalankan perintah berikut.`sudo app2container remote inventory --target <FQDN/IP of App server>`Perintah ini menghasilkan daftar aplikasi yang digunakan di`inventory.json`. | Pengembang, DevOps | 
| Analisis aplikasi yang ditemukan. | Untuk menganalisis setiap aplikasi dari jarak jauh dengan menggunakan id aplikasi yang diperoleh pada tahap inventaris, jalankan perintah berikut.`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`Ini menghasilkan `analysis.json` file di lokasi ruang kerja. Setelah file ini dibuat, Anda dapat mengubah parameter kontainerisasi berdasarkan kebutuhan Anda. | Pengembang, DevOps | 
| Ekstrak aplikasi yang dianalisis. | Untuk menghasilkan arsip aplikasi untuk aplikasi yang dianalisis, jalankan perintah berikut dari jarak jauh, yang akan menghasilkan bundel tar di lokasi ruang kerja.`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`Artefak yang diekstraksi dapat dihasilkan pada mesin pekerja lokal. | Pengembang, DevOps | 

### Kontainerisasi artefak yang diekstraksi pada mesin pekerja
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kontainerisasi artefak yang diekstraksi. | Kontainerisasi artefak yang diekstraksi pada langkah sebelumnya dengan menjalankan perintah berikut.`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Pengembang, DevOps | 
| Selesaikan target. | Untuk menyelesaikan target, buka`deployment.json`, yang dibuat saat `containerize` perintah berjalan. Untuk menentukan AWS Fargate sebagai target, atur `createEcsArtifacts` ke. `true` Untuk menetapkan Amazon EKS sebagai target, atur `createEksArtifacts` ke true. | Pengembang, DevOps | 

### Menghasilkan dan menyediakan artefak AWS
<a name="generate-and-provision-aws-artifacts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan artefak penerapan AWS di mesin pekerja. | Untuk menghasilkan artefak penyebaran, jalankan perintah berikut.`sudo app2container generate app-deployment --application-id <application id>`Ini menghasilkan CloudFormation template `ecs-master.yml` AWS di ruang kerja. | DevOps | 
| Menyediakan artefak. | Untuk menyediakan lebih lanjut artefak yang dihasilkan, terapkan CloudFormation template AWS dengan menjalankan perintah berikut.`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Hasilkan pipa. | Modifikasi`pipeline.json`, yang dibuat di cerita sebelumnya, berdasarkan kebutuhan Anda. Kemudian jalankan `generate pipeline` perintah untuk menghasilkan artefak penyebaran pipeline. | DevOps | 

## Sumber daya terkait
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [Apa itu App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Posting blog AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Dasar-dasar konfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Dasar-dasar Docker untuk Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Perintah Docker](https://docs.docker.com/engine/reference/commandline/cli/)

# Migrasi sistem file bersama dalam migrasi AWS besar
<a name="migrate-shared-file-systems-in-an-aws-large-migration"></a>

*Amit Rudraraju, Sam Apa, Bheemeswararao Balla, Wally Lu, dan Sanjeev Prakasam, Amazon Web Services*

## Ringkasan
<a name="migrate-shared-file-systems-in-an-aws-large-migration-summary"></a>

Migrasi 300 atau lebih server dianggap sebagai *migrasi besar*. Tujuan migrasi besar adalah untuk memigrasikan beban kerja dari pusat data lokal yang ada ke pusat data lokal AWS Cloud, dan proyek ini biasanya berfokus pada beban kerja aplikasi dan database. Namun, sistem file bersama memerlukan perhatian terfokus dan rencana migrasi terpisah. Pola ini menjelaskan proses migrasi untuk sistem file bersama dan memberikan praktik terbaik untuk memigrasikannya dengan sukses sebagai bagian dari proyek migrasi besar.

*Sistem file bersama* (SFS), juga dikenal sebagai *jaringan* atau sistem file *berkerumun*, adalah berbagi file yang dipasang ke beberapa server. Sistem file bersama diakses melalui protokol seperti Network File System (NFS), Common Internet File System (CIFS), atau Server Message Block (SMB).

Sistem ini tidak dimigrasikan dengan alat migrasi standar seperti AWS Application Migration Service karena tidak didedikasikan untuk host yang dimigrasi atau direpresentasikan sebagai perangkat blok. Meskipun sebagian besar dependensi host dimigrasikan secara transparan, koordinasi dan pengelolaan sistem file dependen harus ditangani secara terpisah.

Anda memigrasi sistem file bersama dalam fase berikut: temukan, rencanakan, siapkan, potong, dan validasi. Dengan menggunakan pola ini dan buku kerja terlampir, Anda memigrasikan sistem file bersama ke layanan AWS penyimpanan, seperti Amazon Elastic File System (Amazon EFS), Amazon FSx untuk NetApp ONTAP, atau Amazon FSx untuk Windows File Server. Untuk mentransfer sistem file, Anda dapat menggunakan AWS DataSync atau alat pihak ketiga, seperti NetApp SnapMirror.

**catatan**  
Pola ini adalah bagian dari seri Panduan AWS Preskriptif tentang [migrasi besar ke. AWS Cloud](https://aws.amazon.com/prescriptive-guidance/large-migrations/) Pola ini mencakup praktik terbaik dan instruksi untuk memasukkan SFSs ke dalam paket gelombang Anda untuk server. Jika Anda memigrasikan satu atau beberapa sistem file bersama di luar proyek migrasi besar, lihat petunjuk transfer data dalam AWS dokumentasi untuk [Amazon EFS, Amazon FSx ](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html) [untuk Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html), dan [Amazon FSx untuk NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).

## Prasyarat dan batasan
<a name="migrate-shared-file-systems-in-an-aws-large-migration-prereqs"></a>

**Prasyarat**

Prasyarat dapat bervariasi tergantung pada sumber dan target sistem file bersama dan kasus penggunaan Anda. Berikut ini adalah yang paling umum:
+ Aktif Akun AWS.
+ Anda telah menyelesaikan penemuan portofolio aplikasi untuk proyek migrasi besar Anda dan mulai mengembangkan rencana gelombang. Untuk informasi selengkapnya, lihat [Buku pedoman portofolio untuk migrasi AWS besar](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html).
+ Virtual private cloud (VPCs) dan grup keamanan yang memungkinkan lalu lintas masuk dan keluar antara pusat data lokal dan lingkungan Anda. AWS [Untuk informasi selengkapnya, lihat Opsi [konektivitas VPC Network-to Amazon](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) dan persyaratan jaringan.AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html)
+ Izin untuk membuat AWS CloudFormation tumpukan atau izin untuk membuat Amazon EFS atau sumber daya Amazon. FSx Untuk informasi selengkapnya, lihat [CloudFormation dokumentasi, dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/security-iam.html), atau [ FSx dokumentasi Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/security-iam.html).
+ Jika Anda menggunakan AWS DataSync untuk melakukan migrasi, Anda memerlukan izin berikut:
  + Izin AWS DataSync untuk mengirim log ke grup CloudWatch log Amazon Logs. Untuk informasi selengkapnya, lihat [ DataSync Mengizinkan mengunggah log ke grup CloudWatch log](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs).
  + Izin untuk mengakses grup CloudWatch log Log. Untuk informasi selengkapnya, lihat [Ringkasan mengelola izin akses ke sumber daya CloudWatch Log Anda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html).
  + Izin untuk membuat agen dan tugas di DataSync. Untuk informasi selengkapnya, lihat [Izin IAM yang diperlukan untuk menggunakan](https://docs.aws.amazon.com/datasync/latest/userguide/permissions-requirements.html). AWS DataSync

**Batasan**
+ Pola ini dirancang untuk bermigrasi SFSs sebagai bagian dari proyek migrasi besar. Ini mencakup praktik dan instruksi terbaik untuk memasukkan SFSs ke dalam paket gelombang Anda untuk migrasi aplikasi. Jika Anda memigrasikan satu atau beberapa sistem file bersama di luar proyek migrasi besar, lihat petunjuk transfer data dalam AWS dokumentasi untuk [Amazon EFS, Amazon FSx ](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html) [untuk Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html), dan [Amazon FSx untuk NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).
+ Pola ini didasarkan pada arsitektur, layanan, dan pola migrasi yang umum digunakan. Namun, proyek dan strategi migrasi besar dapat bervariasi antar organisasi. Anda mungkin perlu menyesuaikan solusi ini atau buku kerja yang disediakan berdasarkan kebutuhan Anda.

## Arsitektur
<a name="migrate-shared-file-systems-in-an-aws-large-migration-architecture"></a>

**Tumpukan teknologi sumber**

Satu atau lebih dari berikut ini:
+ Server file Linux (NFS)
+ Server file Windows (SMB)
+ NetApp array penyimpanan
+ Larik penyimpanan Dell EMC Isilon

**Tumpukan teknologi target**

Satu atau lebih dari berikut ini:
+ Sistem File Elastis Amazon
+ Amazon FSx untuk NetApp ONTAP
+ Amazon FSx untuk Server File Windows

**Arsitektur target**

![\[Diagram arsitektur menggunakan AWS DataSync untuk memigrasikan sistem file bersama lokal ke AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/13232433-7d33-44c8-8998-b720f33f67b3.png)


Diagram menunjukkan proses berikut:

1. Anda membuat sambungan antara pusat data lokal dan AWS Cloud dengan menggunakan Layanan AWS seperti AWS Direct Connect atau AWS Site-to-Site VPN.

1. Anda menginstal DataSync agen di pusat data lokal.

1. Menurut rencana gelombang Anda, Anda gunakan DataSync untuk mereplikasi data dari sistem file bersama sumber ke berbagi AWS file target.

**Fase migrasi**

Gambar berikut menunjukkan fase dan langkah-langkah tingkat tinggi untuk memigrasikan SFS dalam proyek migrasi besar.

![\[Temukan, rencanakan, siapkan, potong, dan validasi fase migrasi sistem file bersama ke AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/f1e0c94d-0eea-46a8-bdec-3297b34c1d43.png)


Bagian [Epik](#migrate-shared-file-systems-in-an-aws-large-migration-epics) dari pola ini berisi petunjuk terperinci tentang cara menyelesaikan migrasi dan menggunakan buku kerja terlampir. Berikut ini adalah ikhtisar tingkat tinggi dari langkah-langkah dalam pendekatan bertahap ini.


| 
| 
| Fase | Langkah-langkah | 
| --- |--- |
| Temukan | 1. Dengan menggunakan alat penemuan, Anda mengumpulkan data tentang sistem file bersama, termasuk server, titik pemasangan, dan alamat IP.2. Menggunakan database manajemen konfigurasi (CMDB) atau alat migrasi Anda, Anda mengumpulkan detail tentang server, termasuk informasi tentang gelombang migrasi, lingkungan, pemilik aplikasi, nama layanan manajemen layanan TI (ITSM), unit organisasi, dan ID aplikasi. | 
| Rencana | 3. Menggunakan informasi yang dikumpulkan tentang SFSs dan server, buat rencana gelombang SFS.4. Menggunakan informasi di lembar kerja build, untuk setiap SFS, pilih target Layanan AWS dan alat migrasi. | 
| Persiapkan | 5. Siapkan infrastruktur target di Amazon EFS, Amazon FSx untuk NetApp ONTAP, atau Amazon FSx untuk Windows File Server.6. Siapkan layanan transfer data, seperti DataSync, dan kemudian mulai sinkronisasi data awal. Saat sinkronisasi awal selesai, Anda dapat mengatur sinkronisasi berulang untuk dijalankan sesuai jadwal,7. Perbarui rencana gelombang SFS dengan informasi tentang berbagi file target, seperti alamat IP atau jalur. | 
| Potong | 8. Hentikan aplikasi yang secara aktif mengakses sumber SFS.9. Dalam layanan transfer data, lakukan sinkronisasi data akhir.10. Ketika sinkronisasi selesai, validasi bahwa itu benar-benar berhasil dengan meninjau data log di CloudWatch Log. | 
| Validasi | 11. Di server, ubah titik pemasangan ke jalur SFS baru.12. Mulai ulang dan validasi aplikasi. | 

## Alat
<a name="migrate-shared-file-systems-in-an-aws-large-migration-tools"></a>

**Layanan AWS**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)adalah layanan transfer dan penemuan data online yang membantu Anda memindahkan file atau data objek ke, dari, dan di antara layanan AWS penyimpanan.
+ [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.
+ [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

**Alat lainnya**
+ [SnapMirror](https://library.netapp.com/ecmdocs/ECMP1196991/html/GUID-BA1081BE-B2BB-4C6E-8A82-FB0F87AC514E.html)adalah alat replikasi NetApp data yang mereplikasi data dari volume sumber tertentu atau [qtrees ke volume target atau qtrees](https://library.netapp.com/ecmdocs/ECMP1154894/html/GUID-8F084F85-2AB8-4622-B4F3-2D9E68559292.html), masing-masing. Anda dapat menggunakan alat ini untuk memigrasikan sistem file NetApp sumber ke Amazon FSx untuk NetApp ONTAP.
+ [Robocopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy), yang merupakan kependekan dari *Robust File Copy*, adalah direktori baris perintah dan perintah untuk Windows. Anda dapat menggunakan alat ini untuk memigrasikan sistem file sumber Windows ke Amazon FSx untuk Windows File Server.

## Praktik terbaik
<a name="migrate-shared-file-systems-in-an-aws-large-migration-best-practices"></a>

**Pendekatan perencanaan gelombang**

Saat merencanakan gelombang untuk proyek migrasi besar Anda, pertimbangkan latensi dan kinerja aplikasi. Ketika SFS dan aplikasi dependen beroperasi di lokasi yang berbeda, seperti satu di cloud dan satu di pusat data lokal, ini dapat meningkatkan latensi dan memengaruhi kinerja aplikasi. Berikut ini adalah opsi yang tersedia saat membuat rencana gelombang:

1. **Migrasikan SFS dan semua server dependen dalam gelombang yang sama** — Pendekatan ini mencegah masalah kinerja dan meminimalkan pengerjaan ulang, seperti mengonfigurasi ulang titik pemasangan beberapa kali. Disarankan ketika latensi sangat rendah diperlukan antara aplikasi dan SFS. Namun, perencanaan gelombang rumit, dan tujuannya biasanya untuk menghapus variabel dari pengelompokan ketergantungan, bukan menambahkannya. Selain itu, pendekatan ini tidak disarankan jika banyak server mengakses SFS yang sama karena membuat gelombang terlalu besar.

1. **Migrasikan SFS setelah server dependen terakhir dimigrasi** — Misalnya, jika SFS diakses oleh beberapa server dan server tersebut dijadwalkan untuk bermigrasi dalam gelombang 4, 6, dan 7, jadwalkan SFS untuk bermigrasi dalam gelombang 7.

   Pendekatan ini sering kali paling logis untuk migrasi besar dan direkomendasikan untuk aplikasi yang sensitif terhadap latensi. Ini mengurangi biaya yang terkait dengan transfer data. Ini juga meminimalkan periode latensi antara SFS dan aplikasi tingkat tinggi (seperti produksi) karena aplikasi tingkat yang lebih tinggi biasanya dijadwalkan untuk bermigrasi terakhir, setelah pengembangan dan aplikasi QA.

   Namun, pendekatan ini masih membutuhkan penemuan, perencanaan, dan kelincahan. Anda mungkin perlu memigrasikan SFS dalam gelombang sebelumnya. Konfirmasikan bahwa aplikasi dapat menahan latensi tambahan untuk periode waktu antara gelombang dependen pertama dan gelombang yang mengandung SFS. Lakukan sesi penemuan dengan pemilik aplikasi dan migrasi aplikasi dalam gelombang yang sama aplikasi yang paling sensitif terhadap latensi. Jika masalah kinerja ditemukan setelah memigrasikan aplikasi dependen, bersiaplah untuk berputar dengan cepat untuk memigrasikan SFS secepat mungkin.

1. **Migrasikan SFS di akhir proyek migrasi besar** — Pendekatan ini direkomendasikan jika latensi bukan faktor, seperti ketika data di SFS jarang diakses atau tidak penting untuk kinerja aplikasi. Pendekatan ini merampingkan migrasi dan menyederhanakan tugas cutover.

Anda dapat memadukan pendekatan ini berdasarkan sensitivitas latensi aplikasi. Misalnya, Anda dapat memigrasikan latensi-sensitif SFSs dengan menggunakan pendekatan 1 atau 2 dan kemudian memigrasikan sisanya dengan menggunakan pendekatan 3. SFSs 

**Memilih layanan sistem AWS file**

AWS menawarkan beberapa layanan cloud untuk penyimpanan file. Masing-masing menawarkan manfaat dan batasan yang berbeda untuk kinerja, skala, aksesibilitas, integrasi, kepatuhan, dan pengoptimalan biaya. Ada beberapa opsi default logis. Misalnya, jika sistem file lokal Anda saat ini mengoperasikan Windows Server, maka Amazon FSx untuk Windows File Server adalah pilihan default. Atau jika sistem file lokal mengoperasikan NetApp ONTAP, Amazon FSx untuk NetApp ONTAP adalah pilihan default. Namun, Anda dapat memilih layanan target berdasarkan persyaratan aplikasi Anda atau untuk mewujudkan manfaat operasi cloud lainnya. Untuk informasi selengkapnya, lihat [Memilih layanan penyimpanan AWS file yang tepat untuk penerapan Anda](https://d1.awsstatic.com/events/Summits/awsnycsummit/Choosing_the_right_AWS_file_storage_service_for_your_deployment_STG302.pdf) (presentasi AWS Summit).

**Memilih alat migrasi**

Amazon EFS dan Amazon FSx mendukung penggunaan AWS DataSync untuk memigrasikan sistem file bersama ke file. AWS Cloud Untuk informasi selengkapnya tentang sistem dan layanan penyimpanan yang didukung, manfaat, dan kasus penggunaan, lihat [Apa itu AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html). Untuk gambaran umum tentang proses penggunaan DataSync untuk mentransfer file Anda, lihat [Cara kerja AWS DataSync transfer](https://docs.aws.amazon.com/datasync/latest/userguide/how-datasync-transfer-works.html).

Ada juga beberapa alat pihak ketiga yang tersedia, termasuk yang berikut ini:
+ Jika memilih Amazon FSx untuk NetApp ONTAP, Anda dapat menggunakannya NetApp SnapMirror untuk memigrasikan file dari pusat data lokal ke cloud. SnapMirror menggunakan replikasi tingkat blok, yang bisa lebih cepat dari DataSync dan mengurangi durasi proses transfer data. Untuk informasi selengkapnya, lihat [Memigrasi ke FSx untuk ONTAP menggunakan](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap-snapmirror.html). NetApp SnapMirror
+ Jika Anda memilih Amazon FSx untuk Windows File Server, Anda dapat menggunakan Robocopy untuk memigrasi file ke cloud. Untuk informasi selengkapnya, lihat [Memigrasi file yang ada ke FSx Windows File Server menggunakan Robocopy](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-files-to-fsx.html).

## Epik
<a name="migrate-shared-file-systems-in-an-aws-large-migration-epics"></a>

### Temukan
<a name="discover"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan buku kerja penemuan SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 
| Kumpulkan informasi tentang sumber SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 
| Kumpulkan informasi tentang server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 

### Rencana
<a name="plan"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bangun rencana gelombang SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Membangun lead, Cutover lead, Insinyur migrasi, Pimpinan migrasi | 
| Pilih alat target Layanan AWS dan migrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 

### Persiapkan
<a name="prepare"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan sistem file target. | Menurut detail yang tercatat dalam rencana gelombang Anda, atur sistem file target di target Akun AWS, VPC, dan subnet. Untuk petunjuk, lihat AWS dokumentasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi, Administrator AWS | 
| Siapkan alat migrasi dan transfer data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Administrator AWS, Administrator Cloud, Insinyur migrasi, Pimpinan migrasi | 
| Perbarui rencana gelombang. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan aplikasi. | Jika aplikasi atau klien secara aktif melakukan operasi baca dan tulis di SFS sumber, hentikan mereka sebelum Anda melakukan sinkronisasi data akhir. Untuk instruksi, lihat dokumentasi aplikasi atau proses internal Anda untuk menghentikan aktivitas membaca dan menulis. Misalnya, lihat [Memulai atau Menghentikan Server Web (IIS 8) (dokumentasi Microsoft)](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635851(v=ws.11)) atau [Mengelola layanan sistem dengan systemctl](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/managing-systemd_configuring-basic-system-settings#managing-system-services-with-systemctl_managing-systemd) (dokumentasi Red Hat). | Pemilik aplikasi, Pengembang aplikasi | 
| Lakukan transfer data akhir. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Insinyur migrasi, pimpinan Migrasi | 
| Validasi transfer data. | Jika Anda menggunakan AWS DataSync, lakukan hal berikut untuk memvalidasi transfer data akhir yang berhasil diselesaikan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html)Jika Anda menggunakan alat pihak ketiga, lihat petunjuk validasi transfer data dalam dokumentasi untuk alat migrasi yang dipilih. | Insinyur migrasi, pimpinan Migrasi | 

### Validasi
<a name="validate"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Remount sistem file dan validasi fungsi aplikasi dan kinerja. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Administrator sistem AWS, Pemilik aplikasi | 

## Pemecahan masalah
<a name="migrate-shared-file-systems-in-an-aws-large-migration-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Nilai sel di Microsoft Excel tidak diperbarui. | Salin rumus di baris sampel dengan menyeret gagang isian. Untuk informasi selengkapnya, lihat petunjuk untuk [Windows](https://support.microsoft.com/en-us/office/fill-a-formula-down-into-adjacent-cells-041edfe2-05bc-40e6-b933-ef48c3f308c6) atau [Mac](https://support.microsoft.com/en-au/office/copy-a-formula-by-dragging-the-fill-handle-in-excel-for-mac-dd928259-622b-473f-9a33-83aa1a63e218) (situs web Dukungan Microsoft). | 

## Sumber daya terkait
<a name="migrate-shared-file-systems-in-an-aws-large-migration-resources"></a>

**AWS dokumentasi**
+ [AWS DataSync dokumentasi](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)
+ [Dokumentasi Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)
+ [ FSx Dokumentasi Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/index.html)
+ [Migrasi besar ke AWS Cloud](https://aws.amazon.com/prescriptive-guidance/large-migrations/)
  + [Panduan untuk migrasi AWS besar](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/welcome.html)
  + [Buku pedoman portofolio untuk migrasi AWS besar](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html)

**Pemecahan Masalah**
+ [Memecahkan masalah AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync.html)
+ [Memecahkan Masalah Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)
+ [Memecahkan Masalah Amazon FSx untuk Server File Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/troubleshooting.html)
+ [Memecahkan masalah Amazon FSx untuk ONTAP NetApp ](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/troubleshooting.html)

## Lampiran
<a name="attachments-a30cf791-7a8a-4f71-8927-bc61f3b332f2"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/a30cf791-7a8a-4f71-8927-bc61f3b332f2/attachments/attachment.zip)

# Migrasikan database Oracle ke Amazon RDS for Oracle dengan menggunakan adaptor file datar Oracle GoldenGate
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters"></a>

*Dhairya Jindani dan Baji Shaik, Amazon Web Services*

## Ringkasan
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-summary"></a>

Oracle GoldenGate adalah layanan pengambilan dan replikasi data real-time untuk database heterogen dan lingkungan TI. Namun, layanan ini saat ini tidak mendukung Amazon Relational Database Service (Amazon RDS) untuk Oracle. Untuk daftar database yang didukung, lihat [Oracle GoldenGate for Heterogenous Databases](https://docs.oracle.com/goldengate/c1230/gg-winux/GGHDB/12.3-what-is-oracle-goldengate-heterogeneous-databases.htm#GGHDB-GUID-08EAC588-F76C-4E37-BEBA-0DC57B98CA46) (dokumentasi Oracle). Pola ini menjelaskan cara menggunakan adaptor file GoldenGate datar Oracle GoldenGate dan Oracle untuk menghasilkan file datar dari database Oracle sumber, yang dapat berada di tempat atau di instans Amazon Elastic Compute Cloud (Amazon). EC2 Anda kemudian dapat mengimpor file datar tersebut ke instance database Amazon RDS for Oracle.

Dalam pola ini, Anda menggunakan Oracle GoldenGate untuk mengekstrak file jejak dari database Oracle sumber Anda. Pompa data menyalin file jejak ke server integrasi, yang merupakan EC2 instance Amazon. Pada server integrasi, Oracle GoldenGate menggunakan adaptor file datar untuk menghasilkan serangkaian file datar berurutan berdasarkan pengambilan data transasional dari file jejak.Oracle GoldenGate memformat data sebagai nilai yang dipisahkan pembatas atau nilai yang dibatasi panjang. Anda kemudian menggunakan Oracle SQL\$1 Loader untuk mengimpor file datar ke instans database Amazon RDS for Oracle target.

**Audiens yang dituju**

Pola ini ditujukan bagi mereka yang memiliki pengalaman dan pengetahuan tentang blok bangunan dasar Oracle GoldenGate. Untuk informasi selengkapnya, lihat [Ikhtisar GoldenGate Arsitektur Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD115) (dokumentasi Oracle).

## Prasyarat dan batasan
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+  GoldenGate Lisensi Oracle.
+ Lisensi terpisah untuk GoldenGate adaptor Oracle.
+ Database Oracle sumber, baik berjalan di tempat atau di instans Amazon EC2 .
+ Instans Amazon EC2 Linux yang digunakan sebagai server integrasi. Untuk informasi selengkapnya, lihat [Memulai instans Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) ( EC2 dokumentasi Amazon).
+ Target Amazon RDS for Oracle database instance. Untuk informasi selengkapnya, lihat [Membuat instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) (dokumentasi Amazon RDS).

**Versi produk**
+ Oracle Database Enterprise Edition versi 10g, 11g, 12c, atau yang lebih baru
+ Oracle GoldenGate versi 12.2.0.1.1 atau yang lebih baru

## Arsitektur
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-architecture"></a>

**Tumpukan teknologi sumber**

Database Oracle (di tempat atau di EC2 instans Amazon)

**Tumpukan teknologi target**

Amazon RDS for Oracle

**Arsitektur sumber dan target**

![\[Migrasi database Oracle ke Amazon RDS for Oracle dengan menggunakan adaptor Oracle. GoldenGate\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f34961f7-aa9a-41cb-b1ea-522e36ef2f67/images/21ef5177-e669-4591-aced-28d2f22decf2.png)


1. Oracle GoldenGate mengekstrak jejak dari log database sumber.

1. Pompa data mengekstrak jejak dan memigrasikannya ke server integrasi.

1. Adaptor file GoldenGate datar Oracle membaca jejak, definisi sumber, dan parameter ekstrak.

1. Anda keluar dari ekstraksi, yang menghasilkan file kontrol dan file data datar.

1. Anda memigrasikan file data datar ke instance database Amazon RDS for Oracle di file. AWS Cloud

## Alat
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-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 Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) untuk Oracle membantu Anda mengatur, mengoperasikan, dan menskalakan database relasional Oracle di. AWS Cloud

**Layanan lainnya**
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110) adalah layanan yang membantu Anda mereplikasi, memfilter, dan mengubah data dari satu database ke database heterogen lain atau ke topologi target lain, seperti file datar.
+ [Adaptor GoldenGate aplikasi Oracle](https://docs.oracle.com/goldengate/gg121211/gg-adapter/GADAD/flatfile_config.htm#GADAD424) memungkinkan Oracle GoldenGate untuk menghasilkan serangkaian file datar berurutan dan file kontrol dari data transaksional yang ditangkap dalam file jejak database sumber. Adaptor ini banyak digunakan untuk operasi ekstrak, transformasi, dan beban (ETL) dalam aplikasi gudang data dan aplikasi berpemilik atau warisan. Oracle GoldenGate melakukan penangkapan ini dan menerapkannya dalam waktu dekat di seluruh database, platform, dan sistem operasi yang heterogen. Adaptor mendukung format yang berbeda untuk file output, seperti CSV atau Apache Parquet. Anda dapat memuat file-file yang dihasilkan ini untuk memuat data ke dalam database heterogen yang berbeda.

## Epik
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-epics"></a>

### Mengatur Oracle GoldenGate di server database sumber
<a name="set-up-oracle-goldengate-on-the-source-database-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh Oracle GoldenGate. | Di server database sumber, unduh Oracle GoldenGate versi 12.2.0.1.1 atau yang lebih baru. Untuk petunjuk, lihat [Mengunduh Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164) (dokumentasi Oracle). | DBA | 
| Instal Oracle GoldenGate. | Untuk petunjuk, lihat [Menginstal Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (dokumentasi Oracle). | DBA | 
| Mengatur Oracle GoldenGate. | Untuk petunjuk, lihat [Mempersiapkan Database untuk Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (dokumentasi Oracle). | DBA | 

### Siapkan Oracle GoldenGate di server integrasi
<a name="set-up-oracle-goldengate-on-the-integration-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh Oracle GoldenGate. | Di server integrasi, unduh Oracle GoldenGate versi 12.2.0.1.1 atau yang lebih baru. Untuk petunjuk, lihat [Mengunduh Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164) (dokumentasi Oracle). | DBA | 
| Instal Oracle GoldenGate. | Buat direktori, atur proses manajer, dan buat `defgen` file untuk lingkungan yang heterogen. Untuk petunjuk, lihat [Menginstal Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (dokumentasi Oracle). | DBA | 

### Ubah konfigurasi pengambilan GoldenGate data Oracle
<a name="change-the-oracle-goldengate-data-capture-configuration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan GoldenGate adaptor Oracle. | Di server integrasi, atur perangkat lunak GoldenGate adaptor Oracle. Lakukan hal-hal berikut:[\[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-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.html) | DBA | 
| Konfigurasikan pompa data. | Di server sumber, konfigurasikan pompa data untuk mentransfer file jejak dari server sumber ke server integrasi. Buat file parameter pompa data dan direktori file jejak. Untuk petunjuk, lihat [Mengkonfigurasi Adaptor File Datar](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (dokumentasi Oracle). | DBA | 

### Menghasilkan dan memigrasikan file datar
<a name="generate-and-migrate-the-flat-files"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan file datar. | Buat file ekstrak dan file kontrol, dan kemudian mulai proses ekstraksi pada server integrasi. Ini mengekstrak perubahan database dan menulis database sumber ke file datar. Untuk petunjuk, lihat [Menggunakan Adaptor File Datar](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD432) (dokumentasi Oracle). | DBA | 
| Muat file datar ke database target. | Muat file datar ke instans database Amazon RDS for Oracle target. Untuk informasi selengkapnya, lihat [Mengimpor menggunakan Oracle SQL\$1Loader](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.SQLLoader.html) (dokumentasi Amazon RDS). | DBA | 

## Pemecahan masalah
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Adaptor file GoldenGate datar Oracle menghasilkan kesalahan. | Untuk deskripsi kesalahan adaptor, lihat [Menemukan Pesan Kesalahan](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD437) (dokumentasi Oracle). Untuk petunjuk pemecahan masalah, lihat [Memecahkan Masalah Adaptor File Datar](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-CB3D9B2C-49CC-408A-8C00-06E0C7923DD6.htm#GADAD552) (dokumentasi Oracle). | 

## Sumber daya terkait
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-resources"></a>
+ [Menginstal Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (dokumentasi Oracle)
+ [Mengkonfigurasi Oracle GoldenGate (dokumentasi Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357))
+ [Memahami GoldenGate Adaptor Oracle](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-F9105B02-9836-4F98-99F8-6E9C46D42764.htm#GADAD101) (dokumentasi Oracle)
+ [Mengkonfigurasi Adaptor File Datar](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (dokumentasi Oracle)

# Ubah aplikasi Python dan Perl untuk mendukung migrasi database dari Microsoft SQL Server ke Amazon Aurora PostgreSQL Edisi yang kompatibel
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition"></a>

*Dwarika Patra dan Deepesh Jayaprakash, Amazon Web Services*

## Ringkasan
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-summary"></a>

Pola ini menjelaskan perubahan pada repositori aplikasi yang mungkin diperlukan saat Anda memigrasikan database dari Microsoft SQL Server ke Amazon Aurora PostgreSQL Compatible Edition. Pola mengasumsikan bahwa aplikasi ini berbasis Python atau berbasis Perl, dan memberikan instruksi terpisah untuk bahasa scripting ini.

Migrasi database SQL Server ke Aurora PostgreSQL kompatibel melibatkan konversi skema, konversi objek database, migrasi data, dan pemuatan data. Karena perbedaan antara PostgreSQL dan SQL Server (berkaitan dengan tipe data, objek koneksi, sintaks, dan logika), tugas migrasi yang paling sulit melibatkan membuat perubahan yang diperlukan pada basis kode sehingga bekerja dengan benar dengan PostgreSQL.

Untuk aplikasi berbasis Python, objek koneksi dan kelas tersebar di seluruh sistem. Juga, basis kode Python mungkin menggunakan beberapa pustaka untuk terhubung ke database. Jika antarmuka koneksi database berubah, objek yang menjalankan kueri inline aplikasi juga memerlukan perubahan.

Untuk aplikasi berbasis Perl, perubahan melibatkan objek koneksi, driver koneksi database, pernyataan SQL inline statis dan dinamis, dan bagaimana aplikasi menangani kueri dan set hasil DHTML dinamis yang kompleks.

Saat memigrasikan aplikasi, Anda juga dapat mempertimbangkan kemungkinan penyempurnaan di AWS, seperti mengganti server FTP dengan akses Amazon Simple Storage Service (Amazon S3).

Proses migrasi aplikasi melibatkan tantangan berikut:
+ Objek koneksi. Jika objek koneksi tersebar dalam kode dengan beberapa pustaka dan panggilan fungsi, Anda mungkin harus menemukan cara umum untuk mengubahnya untuk mendukung PostgreSQL.
+ Penanganan kesalahan atau pengecualian selama pengambilan rekaman atau pembaruan. Jika Anda memiliki operasi membuat, membaca, memperbarui, dan menghapus (CRUD) bersyarat pada database yang mengembalikan variabel, kumpulan hasil, atau bingkai data, kesalahan atau pengecualian apa pun dapat mengakibatkan kesalahan aplikasi dengan efek cascading. Ini harus ditangani dengan hati-hati dengan validasi yang tepat dan menyimpan poin. Salah satu titik penyimpanan tersebut adalah memanggil kueri SQL sebaris besar atau objek database di dalam blok. `BEGIN...EXCEPTION...END`
+ Mengontrol transaksi dan validasinya. Ini termasuk komit dan rollback manual dan otomatis. Driver PostgreSQL untuk Perl mengharuskan Anda untuk selalu secara eksplisit mengatur atribut auto-commit.
+ Menangani query SQL dinamis. Ini membutuhkan pemahaman yang kuat tentang logika kueri dan pengujian berulang untuk memastikan bahwa kueri berfungsi seperti yang diharapkan.
+ Kinerja. Anda harus memastikan bahwa perubahan kode tidak mengakibatkan penurunan kinerja aplikasi.

Pola ini menjelaskan proses konversi secara rinci.

## Prasyarat dan batasan
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-prereqs"></a>

**Prasyarat**
+ Pengetahuan tentang sintaks Python dan Perl.
+ Keterampilan dasar dalam SQL Server dan PostgreSQL.
+ Memahami arsitektur aplikasi Anda yang ada.
+ Akses ke kode aplikasi Anda, database SQL Server, dan database PostgreSQL.
+ Akses ke lingkungan pengembangan Windows atau Linux (atau Unix lainnya) dengan kredensil untuk mengembangkan, menguji, dan memvalidasi perubahan aplikasi.
+ **Untuk aplikasi berbasis Python, pustaka Python standar yang mungkin diperlukan aplikasi Anda, seperti **Pandas** untuk menangani frame data, dan psycopg2 atau untuk koneksi database. **SQLAlchemy****
+ Untuk aplikasi berbasis Perl, diperlukan paket Perl dengan pustaka atau modul dependen. Modul Comprehensive Perl Archive Network (CPAN) dapat mendukung sebagian besar persyaratan aplikasi.
+ Semua perpustakaan atau modul khusus tergantung yang diperlukan. 
+ Kredensi database untuk akses baca ke SQL Server dan read/write akses ke Aurora.
+ PostgreSQL untuk memvalidasi dan men-debug perubahan aplikasi dengan layanan dan pengguna.
+ Akses ke alat pengembangan selama migrasi aplikasi seperti Visual Studio Code, Sublime Text, atau **pgAdmin**.

**Batasan**
+ Beberapa versi Python atau Perl, modul, pustaka, dan paket tidak kompatibel dengan lingkungan cloud.
+ Beberapa pustaka dan kerangka kerja pihak ketiga yang digunakan untuk SQL Server tidak dapat diganti untuk mendukung migrasi PostgreSQL. 
+ Variasi kinerja mungkin memerlukan perubahan pada aplikasi Anda, untuk kueri Transact-SQL (T-SQL) sebaris, fungsi database, dan prosedur tersimpan.
+ PostgreSQL mendukung nama huruf kecil untuk nama tabel, nama kolom, dan objek database lainnya. 
+ Beberapa tipe data, seperti kolom UUID, disimpan dalam huruf kecil saja. Aplikasi Python dan Perl harus menangani perbedaan kasus tersebut. 
+ Perbedaan pengkodean karakter harus ditangani dengan tipe data yang benar untuk kolom teks yang sesuai dalam database PostgreSQL.                                

**Versi produk**
+ Python 3.6 atau yang lebih baru (gunakan versi yang mendukung sistem operasi Anda)
+ Perl 5.8.3 atau yang lebih baru (gunakan versi yang mendukung sistem operasi Anda)
+ [Aurora PostgreSQL Compatible Edition 4.2 atau yang lebih baru (lihat detail)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html#AuroraPostgreSQL.Updates.20180305.42)

## Arsitektur
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-architecture"></a>

**Tumpukan teknologi sumber**
+ Bahasa scripting (pemrograman aplikasi): Python 2.7 atau yang lebih baru, atau Perl 5.8 
+ Database: Microsoft SQL Server versi 13
+ Sistem operasi: Red Hat Enterprise Linux (RHEL) 7 

**Tumpukan teknologi target**
+ Bahasa scripting (pemrograman aplikasi): Python 3.6 atau yang lebih baru, atau Perl 5.8 atau yang lebih baru 
+ Database: Aurora PostgreSQL kompatibel 4.2
+ Sistem operasi: RHEL 7 

**Arsitektur migrasi**

![\[Migrasi aplikasi Perl atau Python dengan SQL Server ke Aurora PostgreSQL kompatibel\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b64de64a-bd55-4db7-ba7b-0a2557862af1/images/b8fab3e2-ded5-4f58-86bf-3f645252e9fc.png)


## Alat
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-tools"></a>

**Layanan dan alat AWS**
+ [Aurora PostgreSQL — Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin basis data relasional relasional yang dikelola sepenuhnya, kompatibel dengan PostgreSQL, dan sesuai dengan asam yang menggabungkan kecepatan dan keandalan database komersial kelas atas dengan efektivitas biaya database sumber terbuka. Aurora PostgreSQL adalah pengganti drop-in untuk PostgreSQL dan membuatnya lebih mudah dan lebih hemat biaya untuk mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL Anda yang baru dan yang sudah ada.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang memungkinkan Anda berinteraksi dengan layanan AWS dengan menggunakan perintah di shell baris perintah Anda.

**Alat-alat lainnya**
+ [Pustaka koneksi database Python](https://www.python.org/) [dan PostgressQL seperti psycopg2 dan [SQLAlchemy](https://www.sqlalchemy.org/)](https://pypi.org/project/psycopg2/)
+ [Perl dan modul](https://www.perl.org/) [DBI-nya](https://metacpan.org/pod/DBD::Pg)
+ [Terminal interaktif PostgreSQL (psql](https://www.postgresql.org/docs/13/app-psql.html))

## Epik
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-epics"></a>

### Migrasikan repositori aplikasi Anda ke PostgreSQL — langkah tingkat tinggi
<a name="migrate-your-application-repository-to-postgresql-ndash-high-level-steps"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ikuti langkah-langkah konversi kode ini untuk memigrasikan aplikasi Anda ke PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Epos berikut memberikan instruksi terperinci untuk beberapa tugas konversi ini untuk aplikasi Python dan Perl. | Pengembang aplikasi | 
| Gunakan daftar periksa untuk setiap langkah migrasi. | Tambahkan yang berikut ini ke daftar periksa Anda untuk setiap langkah migrasi aplikasi, termasuk langkah terakhir:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 

### Analisis dan perbarui aplikasi Anda — basis kode Python
<a name="analyze-and-update-your-application-ndash-python-code-base"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Analisis basis kode Python Anda yang ada.  | Analisis Anda harus mencakup hal-hal berikut untuk memfasilitasi proses migrasi aplikasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 
| Konversikan koneksi database Anda untuk mendukung PostgreSQL.  | Sebagian besar aplikasi Python menggunakan pustaka **pyodbc** untuk terhubung dengan database SQL Server sebagai berikut.<pre>import pyodbc<br />....<br />try:<br />    conn_string = "Driver=ODBC Driver 17 for SQL<br />    Server;UID={};PWD={};Server={};Database={}".format (conn_user, conn_password,<br />    conn_server, conn_database)<br />    conn = pyodbc.connect(conn_string)<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre>Mengkonversi koneksi database untuk mendukung PostgreSQL sebagai berikut.<pre>import pyodbc<br />import psycopg2<br />....<br />try:<br />    conn_string = ‘postgresql+psycopg2://’+<br />    conn_user+’:’+conn_password+’@’+conn_server+’/’+conn_database<br />    conn = pyodbc.connect(conn_string, connect_args={‘options’:’-csearch_path=dbo’})<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre> | Pengembang aplikasi | 
| Ubah kueri SQL sebaris ke PostgreSQL. | Konversikan kueri SQL sebaris Anda ke format yang kompatibel dengan PostgreSQL. Misalnya, query SQL Server berikut mengambil string dari tabel.<pre>dtype = "type1"<br />stm = ‘"SELECT TOP 1 searchcode FROM TypesTable (NOLOCK)<br />WHERE code="’ + "’" + str(dtype) + "’"<br /># For Microsoft SQL Server Database Connection<br />engine = create_engine(‘mssql+pyodbc:///?odbc_connect=%s’ % urllib.parse.quote_plus(conn_string), connect_args={‘connect_timeout’:login_timeout})<br />conn = engine_connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre>Setelah konversi, kueri SQL sebaris yang kompatibel dengan PostgreSQL terlihat seperti berikut.<pre>dtype = "type1"<br />stm = ‘"SELECT searchcode FROM TypesTable<br />WHERE code="’ + "’" + str(dtype) + "’ LIMIT 1"<br /># For PostgreSQL Database Connection<br />engine = create_engine(‘postgres+psycopg2://%s’ %conn_string, connect_args={‘connect_timeout’:login_timeout})<br />conn = engine.connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre> | Pengembang aplikasi | 
| Menangani query SQL dinamis. | SQL dinamis dapat hadir dalam satu skrip atau dalam beberapa skrip Python. Contoh sebelumnya menunjukkan bagaimana menggunakan fungsi penggantian string Python untuk menyisipkan variabel untuk membangun query SQL dinamis. Pendekatan alternatif adalah menambahkan string kueri dengan variabel di mana pun berlaku. Dalam contoh berikut, string kueri dibangun dengan cepat berdasarkan nilai yang dikembalikan oleh fungsi.<pre>query = ‘"SELECT id from equity e join issues i on e.permId=i.permId where e.id’"<br />query += get_id_filter(ids) + " e.id is NOT NULL</pre>Jenis kueri dinamis ini sangat umum selama migrasi aplikasi. Ikuti langkah-langkah berikut untuk menangani kueri dinamis:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 
| Menangani set hasil, variabel, dan frame data. | Untuk Microsoft SQL Server, Anda menggunakan metode Python `fetchone()` seperti `fetchall()` atau untuk mengambil hasil yang ditetapkan dari database. Anda juga dapat menggunakan `fetchmany(size)` dan menentukan jumlah catatan yang akan dikembalikan dari hasil yang ditetapkan. Untuk melakukan ini, Anda dapat menggunakan objek koneksi **pyodbc** seperti yang ditunjukkan pada contoh berikut.**pyodbc (Microsoft SQL Server)**<pre>import pyodbc <br />server = 'tcp:myserver.database.windows.net' <br />database = 'exampledb' <br />username = 'exampleusername' <br />password = 'examplepassword' <br />conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)<br />cursor = conn.cursor()<br />cursor.execute("SELECT * FROM ITEMS") <br />row = cursor.fetchone() <br />while row: <br />    print(row[0])<br />    row = cursor.fetchone()</pre>**Di Aurora, untuk melakukan tugas serupa seperti menghubungkan ke PostgreSQL dan mengambil set hasil, Anda dapat menggunakan psycopg2 atau. **SQLAlchemy**** Pustaka Python ini menyediakan modul koneksi dan objek kursor untuk melintasi catatan database PostgreSQL, seperti yang ditunjukkan pada contoh berikut.**psycopg2 (Kompatibel dengan Aurora PostgreSQL)**<pre>import psycopg2<br />query = "SELECT * FROM ITEMS;"<br />//Initialize variables<br />host=dbname=user=password=port=sslmode=connect_timeout=""<br />connstring = "host='{host}' dbname='{dbname}' user='{user}' \<br />password='{password}'port='{port}'".format(host=host,dbname=dbname,\<br />user=user,password=password,port=port) <br />conn = psycopg2.connect(connstring)<br />cursor = conn.cursor()<br />cursor.execute(query)<br />column_names = [column[0] for column in cursor.description]<br />print("Column Names: ", column_names)<br />print("Column values: "<br />for row in cursor:<br />    print("itemid :", row[0])<br />    print("itemdescrption :", row[1])<br />    print("itemprice :", row[3]))</pre>**SQLAlchemy (Kompatibel dengan Aurora PostgreSQL)**<pre>from sqlalchemy import create_engine<br />from pandas import DataFrame<br />conn_string = 'postgresql://core:database@localhost:5432/exampledatabase'<br />engine = create_engine(conn_string)<br />conn = engine.connect()<br />dataid = 1001<br />result = conn.execute("SELECT * FROM ITEMS")<br />df = DataFrame(result.fetchall())<br />df.columns = result.keys()<br />df = pd.DataFrame()<br />engine.connect()<br />df = pd.read_sql_query(sql_query, engine, coerce_float=False)<br />print("df=", df)</pre> | Pengembang aplikasi | 
| Uji aplikasi Anda selama dan setelah migrasi. | Menguji aplikasi Python yang dimigrasi adalah proses yang berkelanjutan. Karena migrasi mencakup perubahan objek koneksi (**psycopg2** atau **SQLAlchemy**), penanganan kesalahan, fitur baru (bingkai data), perubahan SQL sebaris, fungsi salinan massal (`bcp`bukan`COPY`) dan perubahan serupa, migrasi harus diuji dengan cermat selama dan setelah migrasi aplikasi. Periksa:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 

### Analisis dan perbarui aplikasi Anda — Basis kode Perl
<a name="analyze-and-update-your-application-ndash-perl-code-base"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Analisis basis kode Perl Anda yang ada. | Analisis Anda harus mencakup hal-hal berikut untuk memfasilitasi proses migrasi aplikasi. Anda harus mengidentifikasi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 
| Mengkonversi koneksi dari aplikasi Perl dan modul DBI untuk mendukung PostgreSQL. | Aplikasi berbasis Perl umumnya menggunakan modul Perl DBI, yang merupakan modul akses database standar untuk bahasa pemrograman Perl. Anda dapat menggunakan modul DBI yang sama dengan driver yang berbeda untuk SQL Server dan PostgreSQL.Untuk informasi selengkapnya tentang modul Perl yang diperlukan, instalasi, dan instruksi lainnya, lihat dokumentasi [DBD](https://metacpan.org/pod/DBD::Pg): :Pg. Contoh berikut terhubung ke Aurora PostgreSQL kompatibel di. `exampletest-aurorapg-database.cluster-sampleclusture.us-east.-rds.amazonaws.com`<pre>#!/usr/bin/perl<br />use DBI;<br />use strict;<br />my $driver = "Pg";<br />my $hostname = "exampletest-aurorapg-database-sampleclusture.us-east.rds.amazonaws.com"<br />my $dsn = "DBI:$driver: dbname = $hostname;host = 127.0.0.1;port = 5432";<br />my $username = "postgres";<br />my $password = "pass123";<br />$dbh = DBI->connect("dbi:Pg:dbname=$hostname;host=$host;port=$port;options=$options",<br />      $username,<br />      $password,<br />      {AutoCommit => 0, RaiseError => 1, PrintError => 0}<br />      );</pre> | Pengembang aplikasi | 
| Ubah kueri SQL Inline ke PostgreSQL. | Aplikasi Anda mungkin memiliki kueri SQL sebaris dengan`SELECT`,, `DELETE``UPDATE`, dan pernyataan serupa yang menyertakan klausa kueri yang tidak didukung PostgreSQL. Misalnya, kata kunci kueri seperti `TOP` dan `NOLOCK` tidak didukung di PostgreSQL. Contoh berikut menunjukkan bagaimana Anda dapat menangani`TOP`,`NOLOCK`, dan variabel Boolean.Di SQL Server:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id   \<br />FROM active_student_record b WITH (NOLOCK) \<br />INNER JOIN student_contributor c WITH (NOLOCK) on c.contributor_id = b.c_st)</pre>Untuk PostgreSQL, konversi ke:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id  \<br />FROM active_student_record b INNER JOIN student_contributor c  \<br />on c.contributor_id = b.c_student_contr_id WHERE b_current_1 is true \<br />LIMIT $numofRecords)"</pre> | Pengembang aplikasi | 
| Menangani query SQL dinamis dan variabel Perl. | Query SQL dinamis adalah pernyataan SQL yang dibangun pada runtime aplikasi. Kueri ini dibangun secara dinamis saat aplikasi berjalan, tergantung pada kondisi tertentu, sehingga teks lengkap kueri tidak diketahui sampai runtime. Contohnya adalah aplikasi analitik keuangan yang menganalisis 10 saham teratas setiap hari, dan saham ini berubah setiap hari. Tabel SQL dibuat berdasarkan performa terbaik, dan nilainya tidak diketahui sampai runtime.Katakanlah kueri SQL sebaris untuk contoh ini diteruskan ke fungsi pembungkus untuk mendapatkan hasil yang ditetapkan dalam variabel, dan kemudian variabel menggunakan kondisi untuk menentukan apakah tabel itu ada:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Berikut adalah contoh penanganan variabel, diikuti oleh SQL Server dan PostgreSQL query untuk kasus penggunaan ini.<pre>my $tableexists = db_read( arg 1, $sql_qry, undef, 'writer');<br />my $table_already_exists = $tableexists->[0]{table_exists};<br />if ($table_already_exists){<br /># do some thing<br />}<br />else {<br /># do something else<br />}</pre>Server SQL:<pre>my $sql_qry = "SELECT OBJECT_ID('$backendTable', 'U') table_exists", undef, 'writer')";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT TO_REGCLASS('$backendTable', 'U') table_exists", undef, 'writer')";</pre>Contoh berikut menggunakan variabel**** Perl dalam SQL inline, yang menjalankan `SELECT` pernyataan dengan `JOIN` untuk mengambil kunci utama dari tabel dan posisi kolom kunci.Server SQL:<pre>my $sql_qry = "SELECT column_name', character_maxi mum_length \<br />FROM INFORMATION_SCHEMA.COLUMNS \<br />WHERE TABLE_SCHEMA='$example_schemaInfo' \<br />AND TABLE_NAME='$example_table' \<br />AND DATA_TYPE IN ('varchar','nvarchar');";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT c1.column_name, c1.ordinal_position \<br />FROM information_schema.key_column_usage AS c LEFT \<br />JOIN information_schema.table_constraints AS t1 \<br />ON t1.constraint_name = c1.constraint_name \<br />WHERE t1.table_name = $example_schemaInfo'.'$example_table’ \<br />AND t1.constraint_type = 'PRIMARY KEY' ;";</pre> | Pengembang aplikasi | 

### Buat perubahan tambahan pada aplikasi berbasis Perl atau Python Anda untuk mendukung PostgreSQL
<a name="make-additional-changes-to-your-perl-based-or-python-based-application-to-support-postgresql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengkonversi konstruksi SQL Server tambahan ke PostgreSQL. | Perubahan berikut berlaku untuk semua aplikasi, terlepas dari bahasa pemrograman.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Pengembang aplikasi | 

### Tingkatkan kinerja
<a name="improve-performance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Manfaatkan layanan AWS untuk melakukan peningkatan kinerja. | Saat bermigrasi ke AWS Cloud, Anda dapat menyempurnakan desain aplikasi dan database Anda untuk memanfaatkan layanan AWS. Misalnya, jika kueri dari aplikasi Python Anda, yang terhubung ke server database yang kompatibel dengan Aurora PostgreSQL, membutuhkan waktu lebih lama daripada kueri Microsoft SQL Server asli Anda, Anda dapat mempertimbangkan untuk membuat umpan data historis langsung ke bucket Amazon Simple Storage Service (Amazon S3) dari server Aurora, dan menggunakan bucket Amazon Athena-based Kueri SQL untuk menghasilkan laporan dan kueri data analitik untuk dasbor pengguna Anda. | Pengembang aplikasi, arsitek Cloud | 

## Sumber daya terkait
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-resources"></a>
+ [Perl](https://www.perl.org/)
+ [Perl DBI Modul](https://metacpan.org/pod/DBI)
+ [Python](https://www.python.org/)
+ [psycopg2](https://pypi.org/project/psycopg2/)
+ [SQLAlchemy](https://www.sqlalchemy.org/)
+ [Salinan Massal - PostgreSQL](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ [Salinan Massal - Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15)
+ [PostgreSQL](https://www.postgresql.org/)
+ [Bekerja dengan Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)

## Informasi tambahan
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-additional"></a>

Baik Microsoft SQL Server dan Aurora PostgreSQL kompatibel adalah ANSI SQL-Complaint. Namun, Anda harus tetap mengetahui adanya ketidakcocokan dalam sintaks, tipe data kolom, fungsi khusus database asli, sisipan massal, dan sensitivitas huruf besar saat Anda memigrasikan aplikasi Python atau Perl dari SQL Server ke PostgreSQL.

Bagian berikut memberikan informasi lebih lanjut tentang kemungkinan inkonsistensi.

**Perbandingan tipe data**

Perubahan tipe data dari SQL Server ke PostgreSQL dapat menyebabkan perbedaan yang signifikan dalam data yang dihasilkan di mana aplikasi beroperasi. Untuk perbandingan tipe data, lihat tabel di [situs web Sqlines](https://www.sqlines.com/sql-server-to-postgresql).

**Fungsi SQL asli atau bawaan**

Perilaku beberapa fungsi berbeda antara database SQL Server dan PostgreSQL. Tabel berikut memberikan perbandingan.


| 
| 
| Microsoft SQL Server | Deskripsi | PostgreSQL | 
| --- |--- |--- |
| `CAST`  | Mengkonversi nilai dari satu tipe data ke yang lain. | PostgreSQL `type :: operator` | 
| `GETDATE()` | Mengembalikan tanggal dan waktu sistem database saat ini, dalam `YYYY-MM-DD hh:mm:ss.mmm` format. | `CLOCK_TIMESTAMP` | 
| `DATEADD` | Menambahkan time/date interval ke tanggal. | `INTERVAL`ekspresi | 
| `CONVERT` | Mengkonversi nilai ke format data tertentu. | `TO_CHAR` | 
| `DATEDIFF` | Mengembalikan perbedaan antara dua tanggal. | `DATE_PART` | 
| `TOP` | Membatasi jumlah baris dalam set `SELECT` hasil. | `LIMIT/FETCH` | 

**Blok anonim**

Kueri SQL terstruktur diatur ke dalam beberapa bagian seperti deklarasi, executable, dan penanganan pengecualian. Tabel berikut membandingkan versi Microsoft SQL Server dan PostgreSQL dari blok anonim sederhana. Untuk blok anonim yang kompleks, kami sarankan Anda memanggil fungsi basis data khusus dalam aplikasi Anda.


| 
| 
| Microsoft SQL Server | PostgreSQL | 
| --- |--- |
| <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sqlqry = "BEGIN TRAN<br />$sql_qry1 $sql_qry2<br />if @\@error !=0 ROLLBACK<br />TRAN<br />else COMIT TRAN";</pre> | <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sql_qry = " DO \$\$<br />BEGIN<br />$header_sql $content_sql<br />END<br />\$\$";</pre> | 

 

**Perbedaan lainnya**
+ **Sisipan baris massal:** [PostgreSQL setara dengan utilitas [Microsoft SQL Server bcp adalah COPY](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15).](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ **Sensitivitas kasus:** Nama kolom peka huruf besar/kecil di PostgreSQL, jadi Anda harus mengonversi nama kolom SQL Server Anda menjadi huruf kecil atau huruf besar. Ini menjadi faktor ketika Anda mengekstrak atau membandingkan data, atau menempatkan nama kolom dalam kumpulan hasil atau variabel. Contoh berikut mengidentifikasi kolom di mana nilai mungkin disimpan dalam huruf besar atau kecil.

```
my $sql_qry = "SELECT $record_id FROM $exampleTable WHERE LOWER($record_name) = \'failed transaction\'"; 
```
+ **Penggabungan:** SQL Server menggunakan `+` sebagai operator untuk penggabungan string, sedangkan PostgreSQL menggunakan. `||`
+ **Validasi:** Anda harus menguji dan memvalidasi query SQL sebaris dan fungsi sebelum Anda menggunakannya dalam kode aplikasi untuk PostgreSQL.
+ **Penyertaan Perpustakaan ORM:** [Anda juga dapat mencari termasuk atau mengganti pustaka koneksi database yang ada dengan pustaka ORM Python seperti dan PynoMoDB. [SQLAlchemy](https://www.sqlalchemy.org/)](https://pynamodb.readthedocs.io/en/latest/quickstart.html) Ini akan membantu untuk dengan mudah query dan memanipulasi data dari database menggunakan paradigma berorientasi objek.

# Pola migrasi berdasarkan beban kerja
<a name="migration-migration-patterns-by-workload-pattern-list"></a>

**Topics**
+ [IBM](migration-migration-patterns-by-workload-ibm-pattern-list.md)
+ [Microsoft](migration-migration-patterns-by-workload-microsoft-pattern-list.md)
+ [N/A](migration-migration-patterns-by-workload-notapplicable-pattern-list.md)
+ [Sumber terbuka](migration-migration-patterns-by-workload-open-source-pattern-list.md)
+ [Oracle](migration-migration-patterns-by-workload-oracle-pattern-list.md)
+ [SAP](migration-migration-patterns-by-workload-sap-pattern-list.md)

# IBM
<a name="migration-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)

# Microsoft
<a name="migration-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)
+ [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)
+ [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)
+ [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)
+ [Menyerap dan memigrasikan instans EC2 Windows ke akun AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.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)
+ [Memigrasi database Microsoft SQL Server lokal ke Amazon EC2 menggunakan Layanan Migrasi Aplikasi](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.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)
+ [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="migration-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)

# Sumber terbuka
<a name="migration-migration-patterns-by-workload-open-source-pattern-list"></a>

**Topics**
+ [Buat pengguna dan peran aplikasi di Aurora PostgreSQL yang kompatibel](create-application-users-and-roles-in-aurora-postgresql-compatible.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 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 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)
+ [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)
+ [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)

# Oracle
<a name="migration-migration-patterns-by-workload-oracle-pattern-list"></a>

**Topics**
+ [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)
+ [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 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 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)
+ [Siapkan fungsionalitas Oracle UTL\$1FILE pada Aurora PostgreSQL yang kompatibel](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.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="migration-migration-patterns-by-workload-sap-pattern-list"></a>

**Topics**
+ [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)

# Lebih banyak pola
<a name="migration-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)
+ [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)
+ [Otomatiskan failover dan failback lintas wilayah dengan menggunakan DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Mengotomatiskan tugas database di SQL Server Express di Amazon EC2 dengan AWS Lambda menggunakan dan Penjadwal Tugas](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Membangun penampil file mainframe tingkat lanjut di AWS Cloud](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Connect ke data Application Migration Service dan kontrol pesawat melalui jaringan pribadi](connect-to-application-migration-service-data-and-control-planes-over-a-private-network.md)
+ [Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Mengkonversi kueri JSON Oracle ke database PostgreSQL SQL](convert-json-oracle-queries-into-postgresql-database-sql.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)
+ [Salin tabel Amazon DynamoDB di seluruh akun menggunakan AWS Backup](copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.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 aplikasi multi-stack menggunakan AWS CDK dengan TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.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)
+ [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)
+ [Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Menangani blok anonim dalam pernyataan SQL Dinamis di Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Identifikasi gambar kontainer duplikat secara otomatis saat bermigrasi ke repositori Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Mengatur cluster failover Microsoft SQL Server di Amazon EC2 dengan FSx menggunakan untuk Windows File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Migrasikan beban kerja Apache Cassandra ke Amazon Keyspaces dengan menggunakan AWS Glue](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Migrasikan beban kerja kontainer Anda dari Azure Red Hat OpenShift (ARO) ke (ROSA Layanan OpenShift Red Hat di AWS )](migrate-container-workloads-from-aro-to-rosa.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)
+ [Migrasi grup ketersediaan Microsoft SQL Server Always On menggunakan AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.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 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)
+ [Migrasikan SQL Server ke AWS menggunakan grup ketersediaan terdistribusi](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Memodernisasi dan menyebarkan aplikasi mainframe menggunakan dan Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisasi beban kerja pencetakan online mainframe di AWS dengan menggunakan Micro Focus Enterprise Server dan LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisasi manajemen output mainframe AWS dengan menggunakan Rocket Enterprise Server dan LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Ubah header HTTP saat Anda bermigrasi dari F5 ke Application Load Balancer di AWS](modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws.md)
+ [Kelola failover Multi-AZ untuk cluster EMR dengan menggunakan Application Recovery Controller](multi-az-failover-spark-emr-clusters-arc.md)
+ [Menganalisis dependensi objek untuk migrasi database sebagian dari Oracle ke PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Siapkan CI/CD pipeline untuk migrasi database dengan menggunakan Terraform](set-up-ci-cd-pipeline-for-db-migration-with-terraform.md)
+ [Siapkan pemulihan bencana untuk Oracle JD Edwards dengan EnterpriseOne AWS Elastic Disaster Recovery](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Sederhanakan manajemen sertifikat pribadi dengan menggunakan AWS Private CA dan AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.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)
+ [Ubah Easytrieve ke bahasa modern dengan menggunakan kustom AWS Transform](transform-easytrieve-modern-languages.md)

# Modernisasi
<a name="modernization-pattern-list"></a>

**Topics**
+ [Secara otomatis mengarsipkan item ke Amazon S3 menggunakan DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Membangun arsitektur tanpa server multi-tenant di Amazon Service OpenSearch](build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.md)
+ [Menerapkan aplikasi multi-stack menggunakan AWS CDK dengan TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Otomatiskan penerapan aplikasi bersarang menggunakan AWS SAM](automate-deployment-of-nested-applications-using-aws-sam.md)
+ [Menerapkan isolasi penyewa SaaS untuk Amazon S3 dengan menggunakan mesin penjual otomatis token AWS Lambda](implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.md)
+ [Menerapkan pola saga tanpa server dengan menggunakan AWS Step Functions](implement-the-serverless-saga-pattern-by-using-aws-step-functions.md)
+ [Mengelola aplikasi kontainer lokal dengan menyiapkan Amazon ECS Anywhere dengan AWS CDK](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Memodernisasi aplikasi Formulir Web ASP.NET di AWS](modernize-asp-net-web-forms-applications-on-aws.md)
+ [Orientasi penyewa dalam arsitektur SaaS untuk model silo menggunakan C\$1 dan AWS CDK](tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.md)
+ [Menguraikan monolit menjadi layanan mikro dengan menggunakan CQRS dan sumber acara](decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.md)
+ [Lebih banyak pola](modernization-more-patterns-pattern-list.md)

# Secara otomatis mengarsipkan item ke Amazon S3 menggunakan DynamoDB TTL
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl"></a>

*Tabby Ward, Amazon Web Services*

## Ringkasan
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-summary"></a>

Pola ini menyediakan langkah-langkah untuk menghapus data lama dari tabel Amazon DynamoDB dan mengarsipkannya ke bucket Amazon Simple Storage Service (Amazon S3) di Amazon Web Services (AWS) tanpa harus mengelola armada server. 

Pola ini menggunakan Amazon DynamoDB Time to Live (TTL) untuk secara otomatis menghapus item lama dan Amazon DynamoDB Streams untuk menangkap item kedaluwarsa TTL. Kemudian menghubungkan DynamoDB Streams ke AWS Lambda, yang menjalankan kode tanpa menyediakan atau mengelola server apa pun. 

Saat item baru ditambahkan ke aliran DynamoDB, fungsi Lambda dimulai dan menulis data ke aliran pengiriman Amazon Data Firehose. Firehose menyediakan solusi sederhana dan terkelola sepenuhnya untuk memuat data sebagai arsip ke Amazon S3.

DynamoDB sering digunakan untuk menyimpan data time series, seperti data klik-aliran halaman web atau data Internet of Things (IoT) dari sensor dan perangkat yang terhubung. Daripada menghapus item yang jarang diakses, banyak pelanggan ingin mengarsipkannya untuk tujuan audit. TTL menyederhanakan pengarsipan ini dengan secara otomatis menghapus item berdasarkan atribut timestamp. 

Item yang dihapus oleh TTL dapat diidentifikasi di DynamoDB Streams, yang menangkap urutan modifikasi tingkat item yang diurutkan waktu dan menyimpan urutan dalam log hingga 24 jam. Data ini dapat dikonsumsi oleh fungsi Lambda dan diarsipkan dalam bucket Amazon S3 untuk mengurangi biaya penyimpanan. [Untuk mengurangi biaya lebih lanjut, [aturan siklus hidup Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) dapat dibuat untuk mentransisikan data secara otomatis (segera setelah dibuat) ke kelas penyimpanan dengan biaya terendah.](https://aws.amazon.com/s3/storage-classes/)

## Prasyarat dan batasan
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ [AWS Command Line Interface (AWS CLI) 1.7 atau](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) yang lebih baru, diinstal dan dikonfigurasi di macOS, Linux, atau Windows.
+ [Python 3.7](https://www.python.org/downloads/release/python-370/) atau yang lebih baru.
+ [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html), diinstal dan dikonfigurasi. Jika Boto3 belum diinstal, jalankan `python -m pip install boto3` perintah untuk menginstalnya.

## Arsitektur
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-architecture"></a>

**Tumpukan teknologi**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Amazon Data Firehose
+ AWS Lambda
+ Amazon S3

![\[Proses empat langkah dari DynamoDB ke bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9dbc833f-cf3c-4574-8f09-d0b81134fe41/images/50d9da65-5398-4a99-bc8f-58afc80e9d7b.png)


1. Item dihapus oleh TTL.

1. Pemicu aliran DynamoDB memanggil fungsi prosesor aliran Lambda.

1. Fungsi Lambda menempatkan catatan dalam aliran pengiriman Firehose dalam format batch.

1. Catatan data diarsipkan dalam bucket S3.

## Alat
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-tools"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) — AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) adalah alat terpadu untuk mengelola layanan AWS Anda.
+ [Amazon DynamoDB - Amazon](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) DynamoDB adalah database nilai kunci dan dokumen yang memberikan kinerja milidetik satu digit pada skala apa pun.
+ [Amazon DynamoDB Time to Live (TTL) -](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html) Amazon DynamoDB TTL membantu Anda menentukan stempel waktu per item untuk menentukan kapan item tidak lagi diperlukan.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Types_Amazon_DynamoDB_Streams.html) Streams - Amazon DynamoDB Streams menangkap urutan modifikasi tingkat item yang diurutkan waktu di tabel DynamoDB apa pun dan menyimpan informasi ini dalam log hingga 24 jam.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) — Amazon Data Firehose adalah cara termudah untuk memuat data streaming secara andal ke dalam data lake, penyimpanan data, dan layanan analitik.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda menjalankan kode tanpa perlu menyediakan atau mengelola server. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi.
+ [Amazon S3 — Amazon Simple Storage](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja terdepan di industri.

**Kode**

Kode untuk pola ini tersedia di [item GitHub Arsip ke S3 menggunakan repositori DynamoDB TTL](https://github.com/aws-samples/automatically-archive-items-to-s3-using-dynamodb-ttl).

## Epik
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-epics"></a>

### Siapkan tabel DynamoDB, TTL, dan aliran DynamoDB
<a name="set-up-a-dynamodb-table-ttl-and-a-dynamodb-stream"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel DynamoDB. | Gunakan AWS CLI untuk membuat tabel di DynamoDB yang disebut. `Reservation` Pilih unit kapasitas baca acak (RCU) dan unit kapasitas tulis (WCU), dan berikan tabel Anda dua atribut: `ReservationID` dan. `ReservationDate` <pre>aws dynamodb create-table \<br />--table-name Reservation \<br />--attribute-definitions AttributeName=ReservationID,AttributeType=S AttributeName=ReservationDate,AttributeType=N \<br />--key-schema AttributeName=ReservationID,KeyType=HASH AttributeName=ReservationDate,KeyType=RANGE \<br />--provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=100 </pre>`ReservationDate`adalah stempel waktu epoch yang akan digunakan untuk menyalakan TTL. | Arsitek cloud, Pengembang aplikasi | 
| Nyalakan DynamoDB TTL. | Gunakan AWS CLI untuk mengaktifkan DynamoDB TTL untuk atribut. `ReservationDate`<pre>aws dynamodb update-time-to-live \<br />--table-name Reservation\<br />  --time-to-live-specification Enabled=true,AttributeName=ReservationDate</pre> | Arsitek cloud, Pengembang aplikasi | 
| Nyalakan aliran DynamoDB. | Gunakan AWS CLI untuk mengaktifkan aliran DynamoDB untuk `Reservation` tabel dengan menggunakan jenis aliran. `NEW_AND_OLD_IMAGES` <pre>aws dynamodb update-table \<br />--table-name Reservation \<br />  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES</pre>Aliran ini akan berisi catatan untuk item baru, item yang diperbarui, item yang dihapus, dan item yang dihapus oleh TTL. Catatan untuk item yang dihapus oleh TTL berisi atribut metadata tambahan untuk membedakannya dari item yang dihapus secara manual. `userIdentity`Bidang untuk penghapusan TTL menunjukkan bahwa layanan DynamoDB melakukan tindakan penghapusan. Dalam pola ini, hanya item yang dihapus oleh TTL yang diarsipkan, tetapi Anda hanya dapat mengarsipkan catatan di mana `eventName` ada `REMOVE` dan `userIdentity` berisi `principalId` sama dengan. `dynamodb.amazonaws.com` | Arsitek cloud, Pengembang aplikasi | 

### Buat dan konfigurasikan bucket S3
<a name="create-and-configure-an-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Gunakan AWS CLI untuk membuat bucket S3 tujuan di Wilayah AWS Anda, ganti `us-east-1` dengan Region dan amzn-s3- demo-destination-bucket dengan nama bucket Anda. <pre>aws s3api create-bucket \<br />--bucket amzn-s3-demo-destination-bucket \<br />--region us-east-1</pre>Pastikan nama bucket S3 Anda unik secara global, karena namespace dibagikan oleh semua akun AWS. | Arsitek cloud, Pengembang aplikasi | 
| Buat kebijakan siklus hidup 30 hari untuk bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.html) | Arsitek cloud, Pengembang aplikasi | 

### Membuat aliran pengiriman Firehose
<a name="create-a-akf-delivery-stream"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan konfigurasikan aliran pengiriman Firehose. | Unduh dan edit contoh `CreateFireHoseToS3.py` kode dari GitHub repositori. Kode ini ditulis dengan Python dan menunjukkan cara membuat aliran pengiriman Firehose dan peran AWS Identity and Access Management (IAM). Peran IAM akan memiliki kebijakan yang dapat digunakan oleh Firehose untuk menulis ke bucket S3 tujuan.Untuk menjalankan skrip, gunakan argumen perintah dan baris perintah berikut.Argumen 1=`<Your_S3_bucket_ARN>`, yang merupakan Amazon Resource Name (ARN) untuk bucket yang Anda buat sebelumnyaArgumen 2= Nama Firehose Anda (Pilot ini `firehose_to_s3_stream` menggunakan.)Argumen 3= Nama peran IAM Anda (Pilot ini menggunakan`firehose_to_s3`.)<pre>python CreateFireHoseToS3.py <Your_S3_Bucket_ARN> firehose_to_s3_stream firehose_to_s3</pre>Jika peran IAM yang ditentukan tidak ada, skrip akan membuat peran asumsi dengan kebijakan hubungan tepercaya, serta kebijakan yang memberikan izin Amazon S3 yang memadai. Untuk contoh kebijakan ini, lihat bagian *Informasi tambahan*. | Arsitek cloud, Pengembang aplikasi | 
| Verifikasi aliran pengiriman Firehose. | Jelaskan aliran pengiriman Firehose dengan menggunakan AWS CLI untuk memverifikasi bahwa aliran pengiriman berhasil dibuat.<pre>aws firehose describe-delivery-stream --delivery-stream-name firehose_to_s3_stream </pre> | Arsitek cloud, Pengembang aplikasi | 

### Buat fungsi Lambda untuk memproses aliran pengiriman Firehose
<a name="create-a-lambda-function-to-process-the-akf-delivery-stream"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan kepercayaan untuk fungsi Lambda. | Buat file kebijakan kepercayaan dengan informasi berikut.<pre> {<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />      {<br />          "Effect": "Allow",<br />          "Principal": {<br />              "Service": "lambda.amazonaws.com"<br />           },<br />           "Action": "sts:AssumeRole"<br />      }<br />    ]<br />  } </pre>Ini memberi izin fungsi Anda untuk mengakses sumber daya AWS. | Arsitek cloud, Pengembang aplikasi | 
| Buat peran eksekusi untuk fungsi Lambda. | Untuk membuat peran eksekusi, jalankan kode berikut.<pre>aws iam create-role --role-name lambda-ex --assume-role-policy-document file://TrustPolicy.json</pre> | Arsitek cloud, Pengembang aplikasi | 
| Tambahkan izin ke peran. | Untuk menambahkan izin ke peran, gunakan `attach-policy-to-role` perintah.<pre>aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/AmazonKinesisFirehoseFullAccess<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/IAMFullAccess </pre> | Arsitek cloud, Pengembang aplikasi | 
| Buat fungsi Lambda. | Kompres `LambdaStreamProcessor.py` file dari repositori kode dengan menjalankan perintah berikut.<pre>zip function.zip LambdaStreamProcessor.py</pre>Saat Anda membuat fungsi Lambda, Anda akan memerlukan peran eksekusi Lambda ARN. Untuk mendapatkan ARN, jalankan kode berikut.<pre>aws iam get-role \<br />--role-name lambda-ex </pre>Untuk membuat fungsi Lambda, jalankan kode berikut.<pre># Review the environment variables and replace them with your values.<br /><br />aws lambda create-function --function-name LambdaStreamProcessor \<br />--zip-file fileb://function.zip --handler LambdaStreamProcessor.handler --runtime python3.8 \<br />--role {Your Lamda Execution Role ARN}\<br />  --environment Variables="{firehose_name=firehose_to_s3_stream,bucket_arn = <Your_S3_bucket_ARN>,iam_role_name = firehose_to_s3, batch_size=400}"</pre> | Arsitek cloud, Pengembang aplikasi | 
| Konfigurasikan pemicu fungsi Lambda. | Gunakan AWS CLI untuk mengonfigurasi pemicu (DynamoDB Streams), yang memanggil fungsi Lambda. Ukuran batch 400 adalah untuk menghindari masalah konkurensi Lambda.<pre>aws lambda create-event-source-mapping --function-name LambdaStreamProcessor \<br />--batch-size 400 --starting-position LATEST \<br />--event-source-arn <Your Latest Stream ARN From DynamoDB Console></pre> | Arsitek cloud, Pengembang aplikasi | 

### Uji fungsionalitasnya
<a name="test-the-functionality"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan item dengan cap waktu kedaluwarsa ke tabel Reservasi. | Untuk menguji fungsionalitas, tambahkan item dengan stempel waktu epoch kedaluwarsa ke tabel. `Reservation` TTL akan secara otomatis menghapus item berdasarkan stempel waktu. Fungsi Lambda dimulai pada aktivitas DynamoDB Stream, dan memfilter acara untuk mengidentifikasi aktivitas atau item yang dihapus. `REMOVE` Kemudian menempatkan catatan dalam aliran pengiriman Firehose dalam format batch.Aliran pengiriman Firehose mentransfer item ke bucket S3 tujuan dengan awalan. `firehosetos3example/year=current year/month=current month/ day=current day/hour=current hour/`Untuk mengoptimalkan pengambilan data, konfigurasikan Amazon S3 dengan `ErrorOutputPrefix` dan `Prefix` yang dirinci di *bagian Informasi tambahan*. | Arsitek awan  | 

### Bersihkan sumber daya
<a name="clean-up-the-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus semua sumber daya. | Hapus semua sumber daya untuk memastikan bahwa Anda tidak dikenakan biaya untuk layanan apa pun yang tidak Anda gunakan.   | Arsitek cloud, Pengembang aplikasi | 

## Sumber daya terkait
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-resources"></a>
+ [Mengelola siklus hidup penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)
+ [Kelas Penyimpanan Amazon S3](https://aws.amazon.com/s3/storage-classes/)
+ [Dokumentasi AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)

## Informasi tambahan
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-additional"></a>

**Membuat dan mengonfigurasi aliran pengiriman Firehose — Contoh kebijakan**

*Dokumen contoh kebijakan hubungan tepercaya Firehose*

```
firehose_assume_role = {
        'Version': '2012-10-17',
        'Statement': [
            {
                'Sid': '',
                'Effect': 'Allow',
                'Principal': {
                    'Service': 'firehose.amazonaws.com'
                },
                'Action': 'sts:AssumeRole'
            }
        ]
    }
```

*Contoh kebijakan izin S3*

```
s3_access = {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                ],
                "Resource": [
                    "{your s3_bucket ARN}/*",
                    "{Your s3 bucket ARN}"
                ]
            }
        ]
    }
```

**Uji fungsionalitas - konfigurasi Amazon S3**

Konfigurasi Amazon S3 dengan yang berikut ini `Prefix` dan `ErrorOutputPrefix` dipilih untuk mengoptimalkan pengambilan data. 

*prefix*

```
firehosetos3example/year=! {timestamp: yyyy}/month=! {timestamp:MM}/day=! {timestamp:dd}/hour=!{timestamp:HH}/
```

Firehose pertama kali membuat folder dasar yang disebut `firehosetos3example` langsung di bawah bucket S3. Kemudian mengevaluasi ekspresi`!{timestamp:yyyy}`,,`!{timestamp:MM}`, dan `!{timestamp:HH}` ke tahun`!{timestamp:dd}`, bulan, hari, dan jam menggunakan [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)format Java.

Misalnya, perkiraan timestamp kedatangan 1604683577 dalam waktu zaman Unix mengevaluasi,,, dan. `year=2020` `month=11` `day=06` `hour=05` Oleh karena itu, lokasi di Amazon S3, tempat catatan data dikirimkan, dievaluasi. `firehosetos3example/year=2020/month=11/day=06/hour=05/`

*ErrorOutputPrefix*

```
firehosetos3erroroutputbase/!{firehose:random-string}/!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}/
```

`ErrorOutputPrefix`Hasilnya dalam folder dasar yang dipanggil `firehosetos3erroroutputbase` langsung di bawah bucket S3. Ekspresi `!{firehose:random-string}` mengevaluasi ke string acak 11 karakter seperti. `ztWxkdg3Thg` Lokasi untuk objek Amazon S3 tempat catatan gagal dikirimkan dapat dievaluasi. `firehosetos3erroroutputbase/ztWxkdg3Thg/processing-failed/2020/11/06/`

# Membangun arsitektur tanpa server multi-tenant di Amazon Service OpenSearch
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service"></a>

*Tabby Ward dan Nisha Gambhir, Amazon Web Services*

## Ringkasan
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-summary"></a>

Amazon OpenSearch Service adalah layanan terkelola yang memudahkan penerapan, pengoperasian, dan skala Elasticsearch, yang merupakan mesin pencari dan analitik sumber terbuka yang populer. OpenSearch Layanan menyediakan pencarian teks gratis serta konsumsi dan dasbor mendekati waktu nyata untuk streaming data seperti log dan metrik. 

Penyedia perangkat lunak sebagai layanan (SaaS) sering menggunakan OpenSearch Layanan untuk mengatasi berbagai kasus penggunaan, seperti mendapatkan wawasan pelanggan dengan cara yang terukur dan aman sekaligus mengurangi kompleksitas dan waktu henti.

Menggunakan OpenSearch Layanan di lingkungan multi-penyewa memperkenalkan serangkaian pertimbangan yang memengaruhi partisi, isolasi, penyebaran, dan pengelolaan solusi SaaS Anda. Penyedia SaaS harus mempertimbangkan cara menskalakan cluster Elasticsearch mereka secara efektif dengan beban kerja yang terus berubah. Mereka juga perlu mempertimbangkan bagaimana kondisi tetangga yang berjenjang dan bising dapat memengaruhi model partisi mereka.

Pola ini meninjau model yang digunakan untuk mewakili dan mengisolasi data penyewa dengan konstruksi Elasticsearch. Selain itu, pola berfokus pada arsitektur referensi tanpa server sederhana sebagai contoh untuk menunjukkan pengindeksan dan pencarian menggunakan OpenSearch Layanan di lingkungan multi-penyewa. Ini mengimplementasikan model partisi data pool, yang berbagi indeks yang sama di antara semua penyewa sambil mempertahankan isolasi data penyewa. Pola ini menggunakan AWS layanan berikut: Amazon API Gateway, AWS Lambda, Amazon Simple Storage Service (Amazon S3), dan Service. OpenSearch 

Untuk informasi selengkapnya tentang model kumpulan dan model partisi data lainnya, lihat bagian [Informasi tambahan](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional).

## Prasyarat dan batasan
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ [AWS Command Line Interface (AWS CLI) versi 2.x](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html), diinstal dan dikonfigurasi di macOS, Linux, atau Windows
+ [Python versi 3.9](https://www.python.org/downloads/release/python-3921/)
+ [pip3](https://pip.pypa.io/en/stable/) — Kode sumber Python disediakan sebagai file.zip untuk digunakan dalam fungsi Lambda. Jika Anda ingin menggunakan kode secara lokal atau menyesuaikannya, ikuti langkah-langkah berikut untuk mengembangkan dan mengkompilasi ulang kode sumber:

  1. Hasilkan `requirements.txt` file dengan menjalankan perintah berikut di direktori yang sama dengan skrip Python: `pip3 freeze > requirements.txt`

  1. Instal dependensi: `pip3 install -r requirements.txt`

**Batasan**
+ Kode ini berjalan dengan Python, dan saat ini tidak mendukung bahasa pemrograman lainnya. 
+ Aplikasi sampel tidak menyertakan dukungan AWS Cross-region atau Disaster Recovery (DR). 
+ Pola ini dimaksudkan untuk tujuan demonstrasi saja. Ini tidak dimaksudkan untuk digunakan dalam lingkungan produksi.

## Arsitektur
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-architecture"></a>

Diagram berikut menggambarkan arsitektur tingkat tinggi dari pola ini. Arsitekturnya meliputi:
+ Lambda untuk mengindeks dan menanyakan konten 
+ OpenSearch Layanan untuk melakukan pencarian 
+ API Gateway untuk menyediakan interaksi API dengan pengguna
+ Amazon S3 untuk menyimpan data mentah (tidak diindeks)
+ Amazon CloudWatch untuk memantau log
+ AWS Identity and Access Management (IAM) untuk membuat peran dan kebijakan penyewa

![\[Arsitektur tanpa server multi-tenant tingkat tinggi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/1a8501e7-0776-4aca-aed3-28e3ada1d15d.png)


**Otomatisasi dan skala**

Untuk kesederhanaan, pola menggunakan AWS CLI untuk menyediakan infrastruktur dan untuk menyebarkan kode sampel. Anda dapat membuat CloudFormation template atau AWS Cloud Development Kit (AWS CDK) skrip untuk mengotomatiskan pola.

## Alat
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-tools"></a>

**Layanan AWS**
+ [AWS CLI](https://aws.amazon.com/cli/)adalah alat terpadu untuk mengelola Layanan AWS dan sumber daya dengan menggunakan perintah di shell baris perintah Anda.
+ [Lambda](https://aws.amazon.com/lambda/) adalah layanan komputasi yang memungkinkan Anda 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.
+ [API Gateway](https://aws.amazon.com/api-gateway/) adalah Layanan AWS untuk membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs pada skala apa pun.
+ [Amazon S3](https://aws.amazon.com/s3/) adalah layanan penyimpanan objek yang memungkinkan Anda menyimpan dan mengambil sejumlah informasi kapan saja, dari mana saja di web.
+ [OpenSearch Layanan adalah layanan](https://aws.amazon.com/opensearch-service/) yang dikelola sepenuhnya yang memudahkan Anda untuk menerapkan, mengamankan, dan menjalankan Elasticsearch dengan biaya efektif dalam skala besar.

**Kode**

Lampiran menyediakan file sampel untuk pola ini. Ini termasuk:
+ `index_lambda_package.zip`— Fungsi Lambda untuk mengindeks data di OpenSearch Layanan dengan menggunakan model pool.
+ `search_lambda_package.zip`— Fungsi Lambda untuk mencari data di OpenSearch Layanan.
+ `Tenant-1-data`— Sampel data mentah (tidak diindeks) untuk Penyewa - 1.
+ `Tenant-2-data`— Sampel data mentah (tidak diindeks) untuk Penyewa-2.

**penting**  
Cerita dalam pola ini mencakup contoh AWS CLI perintah yang diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

**catatan**  
Dalam AWS CLI perintah, ganti semua nilai dalam kurung sudut (<>) dengan nilai yang benar.

## Epik
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-epics"></a>

### Buat dan konfigurasikan bucket S3
<a name="create-and-configure-an-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Buat ember S3 di. Wilayah AWS Bucket ini akan menyimpan data penyewa yang tidak diindeks untuk aplikasi sampel. Pastikan nama bucket S3 unik secara global, karena namespace dibagikan oleh semua orang. Akun AWSUntuk membuat bucket S3, Anda dapat menggunakan perintah AWS CLI [create-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html) sebagai berikut:<pre>aws s3api create-bucket \<br />  --bucket <tenantrawdata> \<br />  --region <your-AWS-Region></pre>di `tenantrawdata` mana nama bucket S3. (Anda dapat menggunakan nama unik apa pun yang mengikuti [pedoman penamaan bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).) | Arsitek cloud, Administrator Cloud | 

### Membuat dan mengkonfigurasi cluster Elasticsearch
<a name="create-and-configure-an-elasticsearch-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat domain OpenSearch Layanan. | Jalankan AWS CLI [create-elasticsearch-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/es/create-elasticsearch-domain.html)perintah untuk membuat domain OpenSearch Layanan:<pre>aws es create-elasticsearch-domain \<br />  --domain-name vpc-cli-example \<br />  --elasticsearch-version 7.10 \<br />  --elasticsearch-cluster-config InstanceType=t3.medium.elasticsearch,InstanceCount=1 \<br />  --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=10 \<br />  --domain-endpoint-options "{\"EnforceHTTPS\": true}" \<br />  --encryption-at-rest-options "{\"Enabled\": true}" \<br />  --node-to-node-encryption-options "{\"Enabled\": true}" \<br />  --advanced-security-options "{\"Enabled\": true, \"InternalUserDatabaseEnabled\": true, \<br />    \"MasterUserOptions\": {\"MasterUserName\": \"KibanaUser\", \<br />    \"MasterUserPassword\": \"NewKibanaPassword@123\"}}" \<br />  --vpc-options "{\"SubnetIds\": [\"<subnet-id>\"], \"SecurityGroupIds\": [\"<sg-id>\"]}" \<br />  --access-policies "{\"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \ <br />    \"Principal\": {\"AWS\": \"*\" }, \"Action\":\"es:*\", \<br />    \"Resource\": \"arn:aws:es:<region>:<account-id>:domain\/vpc-cli-example\/*\" } ] }"</pre>Jumlah instans diatur ke 1 karena domain adalah untuk tujuan pengujian. Anda perlu mengaktifkan kontrol akses berbutir halus dengan menggunakan `advanced-security-options` parameter, karena detailnya tidak dapat diubah setelah domain dibuat. Perintah ini membuat nama pengguna master (`KibanaUser`) dan kata sandi yang dapat Anda gunakan untuk masuk ke konsol Kibana.Karena domain merupakan bagian dari virtual private cloud (VPC), Anda harus memastikan bahwa Anda dapat menjangkau instance Elasticsearch dengan menentukan kebijakan akses yang akan digunakan.Untuk informasi selengkapnya, lihat [Meluncurkan domain OpenSearch Layanan Amazon Anda dalam VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html) dalam AWS dokumentasi. | Arsitek cloud, Administrator Cloud | 
| Siapkan host benteng. | Siapkan instans Windows Amazon Elastic Compute Cloud (Amazon EC2) sebagai host bastion untuk mengakses konsol Kibana. Grup keamanan Elasticsearch harus mengizinkan lalu lintas dari grup EC2 keamanan Amazon. Untuk petunjuk, lihat posting blog [Mengontrol Akses Jaringan ke EC2 Instans Menggunakan Server Bastion.](https://aws.amazon.com/blogs/security/controlling-network-access-to-ec2-instances-using-a-bastion-server/)Ketika host bastion telah disiapkan, dan Anda memiliki grup keamanan yang terkait dengan instance yang tersedia, gunakan AWS CLI [authorize-security-group-ingress](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/authorize-security-group-ingress.html)perintah untuk menambahkan izin ke grup keamanan Elasticsearch untuk mengizinkan port 443 dari grup keamanan Amazon EC2 (bastion host).<pre>aws ec2 authorize-security-group-ingress \<br />  --group-id <SecurityGroupIdfElasticSearch> \ <br />  --protocol tcp \<br />  --port 443 \<br />  --source-group <SecurityGroupIdfBashionHostEC2></pre> | Arsitek cloud, Administrator Cloud | 

### Buat dan konfigurasikan fungsi indeks Lambda
<a name="create-and-configure-the-lam-index-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran eksekusi Lambda. | Jalankan perintah AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) untuk memberikan akses dan sumber daya fungsi indeks Lambda: Layanan AWS <pre>aws iam create-role \<br />  --role-name index-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>di mana `lambda_assume_role.json` adalah dokumen JSON yang memberikan `AssumeRole` izin ke fungsi Lambda, sebagai berikut:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Arsitek cloud, Administrator Cloud | 
| Lampirkan kebijakan terkelola ke peran Lambda. | Jalankan AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)perintah untuk melampirkan kebijakan terkelola ke peran yang dibuat pada langkah sebelumnya. Kedua kebijakan ini memberikan izin peran untuk membuat elastic network interface dan menulis log ke CloudWatch Log.<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Arsitek cloud, Administrator Cloud | 
| Buat kebijakan untuk memberikan izin fungsi indeks Lambda untuk membaca objek S3. | Jalankan perintah AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) untuk `s3:GetObject` memberikan izin fungsi indeks Lambda untuk membaca objek di bucket S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3-policy.json</pre>File tersebut `s3-policy.json` adalah dokumen JSON yang ditunjukkan di bawah ini yang memberikan `s3:GetObject` izin untuk memungkinkan akses baca ke objek S3. Jika Anda menggunakan nama yang berbeda saat membuat bucket S3, berikan nama bucket yang benar di `Resource ` bagian ini:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />           "Effect": "Allow",<br />           "Action": "s3:GetObject",<br />           "Resource": "arn:aws:s3:::<tenantrawdata>/*"<br />        }<br />    ]<br />}</pre> | Arsitek cloud, Administrator Cloud | 
| Lampirkan kebijakan izin Amazon S3 ke peran eksekusi Lambda. | Jalankan AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)perintah untuk melampirkan kebijakan izin Amazon S3 yang Anda buat di langkah sebelumnya ke peran eksekusi Lambda:<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn <PolicyARN></pre>di `PolicyARN` mana Nama Sumber Daya Amazon (ARN) dari kebijakan izin Amazon S3. Anda bisa mendapatkan nilai ini dari output dari perintah sebelumnya. | Arsitek cloud, Administrator Cloud | 
| Buat fungsi indeks Lambda. | Jalankan perintah AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) untuk membuat fungsi indeks Lambda, yang akan mengakses Service: OpenSearch <pre>aws lambda create-function \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip \<br />  --handler lambda_index.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/index-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Arsitek cloud, Administrator Cloud | 
| Izinkan Amazon S3 memanggil fungsi indeks Lambda. | Jalankan perintah AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) untuk memberi Amazon S3 izin untuk memanggil fungsi indeks Lambda:<pre>aws lambda add-permission \<br />  --function-name index-lambda-function \<br />  --statement-id s3-permissions \<br />  --action lambda:InvokeFunction \<br />  --principal s3.amazonaws.com \<br />  --source-arn "arn:aws:s3:::<tenantrawdata>" \<br />  --source-account "<account-id>" </pre> | Arsitek cloud, Administrator Cloud | 
| Tambahkan pemicu Lambda untuk acara Amazon S3. | Jalankan AWS CLI [put-bucket-notification-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification-configuration.html)perintah untuk mengirim notifikasi ke fungsi indeks Lambda saat peristiwa Amazon `ObjectCreated` S3 terdeteksi. Fungsi indeks berjalan setiap kali objek diunggah ke bucket S3. <pre>aws s3api put-bucket-notification-configuration \<br />  --bucket <tenantrawdata> \<br />  --notification-configuration file://s3-trigger.json</pre>File tersebut `s3-trigger.json` adalah dokumen JSON di folder saat ini yang menambahkan kebijakan sumber daya ke fungsi Lambda saat peristiwa Amazon `ObjectCreated` S3 terjadi. | Arsitek cloud, Administrator Cloud | 

### Buat dan konfigurasikan fungsi pencarian Lambda
<a name="create-and-configure-the-lam-search-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran eksekusi Lambda. | Jalankan perintah AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) untuk memberikan akses dan sumber daya fungsi pencarian Lambda: Layanan AWS <pre>aws iam create-role \<br />  --role-name search-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>di mana `lambda_assume_role.json` adalah dokumen JSON di folder saat ini yang memberikan `AssumeRole` izin ke fungsi Lambda, sebagai berikut:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Arsitek cloud, Administrator Cloud | 
| Lampirkan kebijakan terkelola ke peran Lambda. | Jalankan AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)perintah untuk melampirkan kebijakan terkelola ke peran yang dibuat pada langkah sebelumnya. Kedua kebijakan ini memberikan izin peran untuk membuat elastic network interface dan menulis log ke CloudWatch Log.<pre>aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Arsitek cloud, Administrator Cloud | 
| Buat fungsi pencarian Lambda. | Jalankan perintah AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) untuk membuat fungsi pencarian Lambda, yang akan mengakses Service: OpenSearch <pre>aws lambda create-function \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip \<br />  --handler lambda_search.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/search-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Arsitek cloud, Administrator Cloud | 

### Buat dan konfigurasikan peran penyewa
<a name="create-and-configure-tenant-roles"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM penyewa. | Jalankan perintah AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) untuk membuat dua peran penyewa yang akan digunakan untuk menguji fungsionalitas pencarian:<pre>aws iam create-role \<br />  --role-name Tenant-1-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre><pre>aws iam create-role \<br />  --role-name Tenant-2-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre>File tersebut `assume-role-policy.json` adalah dokumen JSON di folder saat ini yang memberikan `AssumeRole` izin untuk peran eksekusi Lambda:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                 "AWS": "<Lambda execution role for index function>",<br />                 "AWS": "<Lambda execution role for search function>"<br />             },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre> | Arsitek cloud, Administrator Cloud | 
| Buat kebijakan IAM penyewa. | Jalankan perintah AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) untuk membuat kebijakan penyewa yang memberikan akses ke operasi Elasticsearch:<pre>aws iam create-policy \<br />  --policy-name tenant-policy \<br />  --policy-document file://policy.json</pre>File tersebut `policy.json` adalah dokumen JSON di folder saat ini yang memberikan izin di Elasticsearch:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "es:ESHttpDelete",<br />                "es:ESHttpGet",<br />                "es:ESHttpHead",<br />                "es:ESHttpPost",<br />                "es:ESHttpPut",<br />                "es:ESHttpPatch"<br />            ],<br />            "Resource": [<br />                "<ARN of Elasticsearch domain created earlier>"<br />            ]<br />        }<br />    ]<br />}</pre> | Arsitek cloud, Administrator Cloud | 
| Lampirkan kebijakan IAM penyewa ke peran penyewa. | Jalankan AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)perintah untuk melampirkan kebijakan IAM penyewa ke dua peran penyewa yang Anda buat di langkah sebelumnya:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-1-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-2-role</pre>Kebijakan ARN berasal dari output dari langkah sebelumnya. | Arsitek cloud, Administrator Cloud | 
| Buat kebijakan IAM untuk memberikan izin Lambda untuk mengambil peran. | Jalankan perintah AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) untuk membuat kebijakan bagi Lambda untuk mengambil peran penyewa:<pre>aws iam create-policy \<br />  --policy-name assume-tenant-role-policy \<br />  --policy-document file://lambda_policy.json</pre>File tersebut `lambda_policy.json` adalah dokumen JSON di folder saat ini yang memberikan izin untuk: `AssumeRole`<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />       {<br />            "Effect": "Allow",<br />            "Action":  "sts:AssumeRole",<br />            "Resource": "<ARN of tenant role created earlier>"<br />       }<br />    ]<br />}</pre>Untuk`Resource`, Anda dapat menggunakan karakter wildcard untuk menghindari pembuatan kebijakan baru untuk setiap penyewa. | Arsitek cloud, Administrator Cloud | 
| Buat kebijakan IAM untuk memberikan izin peran indeks Lambda untuk mengakses Amazon S3. | Jalankan perintah AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) untuk memberikan izin peran indeks Lambda untuk mengakses objek di bucket S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3_lambda_policy.json</pre>File tersebut `s3_lambda_policy.json` adalah dokumen kebijakan JSON berikut di folder saat ini:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::tenantrawdata/*"<br />        }<br />    ]<br />}</pre> | Arsitek cloud, Administrator Cloud | 
| Lampirkan kebijakan ke peran eksekusi Lambda. | Jalankan AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)perintah untuk melampirkan kebijakan yang dibuat pada langkah sebelumnya ke indeks Lambda dan peran eksekusi pencarian yang Anda buat sebelumnya:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name index-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name search-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/s3-permission-policy \<br />  --role-name index-lambda-role</pre>Kebijakan ARN berasal dari output dari langkah sebelumnya. | Arsitek cloud, Administrator Cloud | 

### Membuat dan mengonfigurasi API penelusuran
<a name="create-and-configure-a-search-api"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat REST API di API Gateway. | Jalankan AWS CLI [create-rest-api](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-rest-api.html)perintah untuk membuat sumber daya REST API:<pre>aws apigateway create-rest-api \<br />  --name Test-Api \<br />  --endpoint-configuration "{ \"types\": [\"REGIONAL\"] }"</pre>Untuk jenis konfigurasi titik akhir, Anda dapat menentukan `EDGE` alih-alih `REGIONAL` menggunakan lokasi tepi, bukan lokasi tertentu Wilayah AWS.Perhatikan nilai `id` bidang dari output perintah. Ini adalah ID API yang akan Anda gunakan dalam perintah berikutnya. | Arsitek cloud, Administrator Cloud | 
| Buat sumber daya untuk API pencarian. | Sumber daya API pencarian memulai fungsi pencarian Lambda dengan nama sumber daya. `search` (Anda tidak perlu membuat API untuk fungsi indeks Lambda, karena ini berjalan secara otomatis saat objek diunggah ke bucket S3.)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arsitek cloud, Administrator Cloud | 
| Buat metode GET untuk API pencarian. | Jalankan perintah AWS CLI [put-method](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method.html) untuk membuat `GET ` metode untuk API pencarian:<pre>aws apigateway put-method \<br />  --rest-api-id <API-ID> \<br />  --resource-id <ID from the previous command output> \<br />  --http-method GET \<br />  --authorization-type "NONE" \<br />  --no-api-key-required</pre>Untuk`resource-id`, tentukan ID dari output `create-resource` perintah. | Arsitek cloud, Administrator Cloud | 
| Buat respons metode untuk API penelusuran. | Jalankan AWS CLI [put-method-response](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method-response.html)perintah untuk menambahkan respons metode untuk API pencarian:<pre>aws apigateway put-method-response \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --status-code 200 \<br />  --response-models "{\"application/json\": \"Empty\"}"</pre>Untuk`resource-id`, tentukan ID dari output dari `create-resource` perintah sebelumnya. | Arsitek cloud, Administrator Cloud | 
| Siapkan integrasi Lambda proxy untuk API pencarian. | Jalankan perintah AWS CLI [put-integration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-integration.html) untuk mengatur integrasi dengan fungsi pencarian Lambda:<pre>aws apigateway put-integration \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --type AWS_PROXY \<br />  --integration-http-method GET \<br />  --uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account-id>:function:<function-name>/invocations</pre>Untuk`resource-id`, tentukan ID dari `create-resource` perintah sebelumnya. | Arsitek cloud, Administrator Cloud | 
| Berikan izin API Gateway untuk memanggil fungsi pencarian Lambda. | Jalankan perintah AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) untuk memberikan izin API Gateway untuk menggunakan fungsi pencarian:<pre>aws lambda add-permission \<br />  --function-name <function-name> \<br />  --statement-id apigateway-get \<br />  --action lambda:InvokeFunction \<br />  --principal apigateway.amazonaws.com \<br />  --source-arn "arn:aws:execute-api:<region>:<account-id>:api-id/*/GET/search</pre>Ubah `source-arn` jalur jika Anda menggunakan nama sumber daya API yang berbeda, bukan`search`. | Arsitek cloud, Administrator Cloud | 
| Terapkan API pencarian. | Jalankan perintah AWS CLI [create-deployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-deployment.html) untuk membuat sumber daya panggung bernama: `dev`<pre>aws apigateway create-deployment \<br />  --rest-api-id <API-ID> \<br />  --stage-name dev</pre>Jika Anda memperbarui API, Anda dapat menggunakan AWS CLI perintah yang sama untuk menerapkannya kembali ke tahap yang sama. | Arsitek cloud, Administrator Cloud | 

### Buat dan konfigurasikan peran Kibana
<a name="create-and-configure-kibana-roles"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Masuk ke konsol Kibana. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arsitek cloud, Administrator Cloud | 
| Buat dan konfigurasikan peran Kibana. | Untuk memberikan isolasi data dan memastikan bahwa satu penyewa tidak dapat mengambil data penyewa lain, Anda perlu menggunakan keamanan dokumen, yang memungkinkan penyewa untuk mengakses hanya dokumen yang berisi ID penyewa mereka.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arsitek cloud, Administrator Cloud | 
| Memetakan pengguna ke peran. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Kami menyarankan Anda mengotomatiskan pembuatan peran penyewa dan Kibana pada saat orientasi penyewa. | Arsitek cloud, Administrator Cloud | 
| Buat indeks data penyewa. | Di panel navigasi, di bawah **Manajemen**, pilih **Alat Pengembang**, lalu jalankan perintah berikut. Perintah ini membuat `tenant-data` indeks untuk menentukan pemetaan untuk `TenantId` properti.<pre>PUT /tenant-data<br />{<br />  "mappings": {<br />    "properties": {<br />      "TenantId": { "type": "keyword"}<br />    }<br />  }<br />}</pre> | Arsitek cloud, Administrator Cloud | 

### Buat titik akhir VPC untuk Amazon S3 dan AWS STS
<a name="create-vpc-endpoints-for-s3-and-sts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir VPC untuk Amazon S3. | Jalankan AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)perintah untuk membuat titik akhir VPC untuk Amazon S3. Titik akhir memungkinkan fungsi indeks Lambda di VPC untuk mengakses Amazon S3.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --service-name com.amazonaws.us-east-1.s3 \<br />  --route-table-ids <route-table-ID></pre>Untuk`vpc-id`, tentukan VPC yang Anda gunakan untuk fungsi indeks Lambda. Untuk`service-name`, gunakan URL yang benar untuk titik akhir Amazon S3. Untuk`route-table-ids`, tentukan tabel rute yang terkait dengan titik akhir VPC. | Arsitek cloud, Administrator Cloud | 
| Buat titik akhir VPC untuk. AWS STS | Jalankan AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)perintah untuk membuat titik akhir VPC untuk AWS Security Token Service ().AWS STS Titik akhir memungkinkan indeks Lambda dan fungsi pencarian di VPC untuk mengakses. AWS STS Fungsi digunakan AWS STS ketika mereka mengambil peran IAM.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --vpc-endpoint-type Interface \<br />  --service-name com.amazonaws.us-east-1.sts \<br />  --subnet-id <subnet-ID> \<br />  --security-group-id <security-group-ID></pre>Untuk`vpc-id`, tentukan VPC yang Anda gunakan untuk indeks Lambda dan fungsi pencarian. Untuk`subnet-id`, berikan subnet di mana titik akhir ini harus dibuat. Untuk`security-group-id`, tentukan grup keamanan untuk mengaitkan titik akhir ini dengan. (Ini bisa sama dengan kelompok keamanan yang digunakan Lambda.) | Arsitek cloud, Administrator Cloud | 

### Uji multi-tenancy dan isolasi data
<a name="test-multi-tenancy-and-data-isolation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui file Python untuk fungsi indeks dan pencarian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Anda bisa mendapatkan titik akhir Elasticsearch dari tab **Ikhtisar** konsol Layanan. OpenSearch Ini memiliki format`<AWS-Region>.es.amazonaws.com`. | Arsitek cloud, Pengembang aplikasi | 
| Perbarui kode Lambda. | Gunakan AWS CLI [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html)perintah untuk memperbarui kode Lambda dengan perubahan yang Anda buat pada file Python:<pre>aws lambda update-function-code \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip<br /><br />aws lambda update-function-code \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip</pre> | Arsitek cloud, Pengembang aplikasi | 
| Unggah data mentah ke bucket S3. | Gunakan perintah AWS CLI [cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) untuk mengunggah data objek Tenant-1 dan Tenant-2 ke `tenantrawdata` bucket (tentukan nama bucket S3 yang Anda buat untuk tujuan ini):<pre>aws s3 cp tenant-1-data s3://tenantrawdata<br />aws s3 cp tenant-2-data s3://tenantrawdata</pre>Bucket S3 diatur untuk menjalankan fungsi indeks Lambda setiap kali data diunggah sehingga dokumen diindeks di Elasticsearch. | Arsitek cloud, Administrator Cloud | 
| Cari data dari konsol Kibana. | Di konsol Kibana, jalankan kueri berikut:<pre>GET tenant-data/_search</pre>Kueri ini menampilkan semua dokumen yang diindeks di Elasticsearch. Dalam hal ini, Anda akan melihat dua dokumen terpisah untuk Tenant-1 dan Tenant-2. | Arsitek cloud, Administrator Cloud | 
| Uji API pencarian dari API Gateway. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Untuk ilustrasi layar, lihat bagian [Informasi tambahan](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional). | Arsitek cloud, Pengembang aplikasi | 
| Pembersihan sumber daya  | Bersihkan semua sumber daya yang Anda buat untuk mencegah biaya tambahan ke akun Anda. | AWS DevOps, arsitek Cloud, Administrator Cloud | 

## Sumber daya terkait
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-resources"></a>
+ [AWS SDK for Python (Boto)](https://aws.amazon.com/sdk-for-python/)
+ [AWS Lambda dokumentasi](https://docs.aws.amazon.com/lambda/)
+ [Dokumentasi API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Dokumentasi Amazon S3](https://docs.aws.amazon.com/s3/)
+ [Dokumentasi OpenSearch Layanan Amazon](https://docs.aws.amazon.com/elasticsearch-service/)
  + [Kontrol akses berbutir halus di Layanan Amazon OpenSearch ](https://docs.amazonaws.cn/en_us/elasticsearch-service/latest/developerguide/fgac.html)
  + [Membuat aplikasi pencarian dengan Amazon OpenSearch Service](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/search-example.html)
  + [Meluncurkan domain OpenSearch Layanan Amazon Anda dalam VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html)

## Informasi tambahan
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional"></a>

**Model partisi data**

Ada tiga model partisi data umum yang digunakan dalam sistem multi-tenant: silo, pool, dan hybrid. Model yang Anda pilih tergantung pada kepatuhan, tetangga yang bising, operasi, dan kebutuhan isolasi lingkungan Anda.

*Model silo*

Dalam model silo, setiap data penyewa disimpan di area penyimpanan yang berbeda di mana tidak ada percampuran data penyewa. Anda dapat menggunakan dua pendekatan untuk mengimplementasikan model silo dengan OpenSearch Layanan: domain per penyewa dan indeks per penyewa.
+ **Domain per penyewa** — Anda dapat menggunakan domain OpenSearch Layanan terpisah (identik dengan cluster Elasticsearch) per penyewa. Menempatkan setiap penyewa di domainnya sendiri memberikan semua manfaat yang terkait dengan memiliki data dalam konstruksi mandiri. Namun, pendekatan ini memperkenalkan tantangan manajemen dan kelincahan. Sifatnya yang terdistribusi membuat lebih sulit untuk mengumpulkan dan menilai kesehatan operasional dan aktivitas penyewa. Ini adalah opsi mahal yang mengharuskan setiap domain OpenSearch Layanan memiliki tiga node master dan dua node data untuk beban kerja produksi seminimal mungkin.

![\[Domain per model silo penyewa untuk arsitektur tanpa server multi-tenant.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2195f82-e5ed-40bb-b76a-3b0210bf1254.png)


 
+ **Indeks per penyewa** — Anda dapat menempatkan data penyewa dalam indeks terpisah dalam kluster Layanan. OpenSearch Dengan pendekatan ini, Anda menggunakan pengenal penyewa saat membuat dan memberi nama indeks, dengan mengawali pengenal penyewa ke nama indeks. Pendekatan indeks per penyewa membantu Anda mencapai tujuan silo Anda tanpa memperkenalkan cluster yang benar-benar terpisah untuk setiap penyewa. Namun, Anda mungkin mengalami tekanan memori jika jumlah indeks bertambah, karena pendekatan ini membutuhkan lebih banyak pecahan, dan node master harus menangani lebih banyak alokasi dan penyeimbangan kembali.

![\[Indeks per model silo penyewa untuk arsitektur tanpa server multi-tenant.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/354a9463-25bb-422b-84de-d4875a7c8ea2.png)


 

**Isolasi dalam model silo** — Dalam model silo, Anda menggunakan kebijakan IAM untuk mengisolasi domain atau indeks yang menyimpan data setiap penyewa. Kebijakan ini mencegah satu penyewa mengakses data penyewa lain. Untuk menerapkan model isolasi silo, Anda dapat membuat kebijakan berbasis sumber daya yang mengontrol akses ke sumber daya penyewa Anda. Ini sering merupakan kebijakan akses domain yang menentukan tindakan mana yang dapat dilakukan prinsipal pada sub-sumber daya domain, termasuk indeks Elasticsearch dan. APIs Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan yang *diizinkan* atau *ditolak* pada domain, indeks, atau dalam Layanan. APIs OpenSearch `Action`Elemen kebijakan IAM menjelaskan tindakan atau tindakan spesifik yang diizinkan atau ditolak oleh kebijakan, dan `Principal ` elemen tersebut menentukan akun, pengguna, atau peran yang terpengaruh.

Kebijakan contoh berikut memberikan akses penuh Penyewa-1 (seperti yang ditentukan oleh`es:*`) ke sub-sumber daya pada domain saja. `tenant-1` Bagian tambahan `/*` dalam `Resource` elemen menunjukkan bahwa kebijakan ini berlaku untuk sub-sumber daya domain, bukan untuk domain itu sendiri. Ketika kebijakan ini berlaku, penyewa tidak diizinkan untuk membuat domain baru atau mengubah setelan pada domain yang sudah ada.

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::<aws-account-id>:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/tenant-1/*"
      }
   ]
}
```

Untuk mengimplementasikan model silo penyewa per indeks, Anda perlu memodifikasi kebijakan sampel ini untuk lebih membatasi Penyewa-1 ke indeks atau indeks yang ditentukan, dengan menentukan nama indeks. Kebijakan sampel berikut membatasi Penyewa-1 ke indeks. `tenant-index-1` 

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/test-domain/tenant-index-1/*"
      }
   ]
}
```

*Model kolam*

Dalam model pool, semua data penyewa disimpan dalam indeks dalam domain yang sama. Pengenal penyewa disertakan dalam data (dokumen) dan digunakan sebagai kunci partisi, sehingga Anda dapat menentukan data mana yang menjadi milik penyewa mana. Model ini mengurangi overhead manajemen. Mengoperasikan dan mengelola indeks gabungan lebih mudah dan lebih efisien daripada mengelola beberapa indeks. Namun, karena data penyewa bercampur dalam indeks yang sama, Anda kehilangan isolasi penyewa alami yang disediakan oleh model silo. Pendekatan ini mungkin juga menurunkan kinerja karena efek tetangga yang bising.

![\[Model kolam untuk arsitektur tanpa server multi-tenant.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2c3bb0f-6ccd-47a7-ab67-e7f3f8c7f289.png)


 

**Isolasi penyewa dalam model kolam** — Secara umum, isolasi penyewa menantang untuk diterapkan dalam model kolam renang. Mekanisme IAM yang digunakan dengan model silo tidak memungkinkan Anda untuk menggambarkan isolasi berdasarkan ID penyewa yang disimpan dalam dokumen Anda.

Pendekatan alternatif adalah dengan menggunakan dukungan [kontrol akses halus](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html) (FGAC) yang disediakan oleh Open Distro untuk Elasticsearch. FGAC memungkinkan Anda mengontrol izin pada tingkat indeks, dokumen, atau bidang. Dengan setiap permintaan, FGAC mengevaluasi kredensi pengguna dan mengautentikasi pengguna atau menolak akses. Jika FGAC mengautentikasi pengguna, FGAC mengambil semua peran yang dipetakan ke pengguna tersebut dan menggunakan set lengkap izin untuk menentukan cara menangani permintaan. 

Untuk mencapai isolasi yang diperlukan dalam model gabungan, Anda dapat menggunakan [keamanan tingkat dokumen](https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/document-level-security/), yang memungkinkan Anda membatasi peran pada subset dokumen dalam indeks. Peran contoh berikut membatasi kueri ke Penyewa-1. Dengan menerapkan peran ini ke Penyewa-1, Anda dapat mencapai isolasi yang diperlukan. 

```
{
   "bool": {
     "must": {
       "match": {
         "tenantId": "Tenant-1"
       }
     }
   }
 }
```

*Model hibrida*

Model hibrida menggunakan kombinasi model silo dan kolam renang di lingkungan yang sama untuk menawarkan pengalaman unik untuk setiap tingkat penyewa (seperti tingkatan gratis, standar, dan premium). Setiap tingkatan mengikuti profil keamanan yang sama yang digunakan dalam model pool.

 

![\[Model hybrid untuk arsitektur tanpa server multi-tenant.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/e7def98a-38ef-435a-9881-7e95ae4d4940.png)


**Isolasi penyewa dalam model hybrid** — Dalam model hybrid, Anda mengikuti profil keamanan yang sama seperti pada model pool, di mana menggunakan model keamanan FGAC pada tingkat dokumen menyediakan isolasi penyewa. Meskipun strategi ini menyederhanakan manajemen cluster dan menawarkan kelincahan, ini memperumit aspek lain dari arsitektur. Misalnya, kode Anda memerlukan kompleksitas tambahan untuk menentukan model mana yang terkait dengan setiap penyewa. Anda juga harus memastikan bahwa kueri penyewa tunggal tidak memenuhi seluruh domain dan menurunkan pengalaman untuk penyewa lain. 

**Pengujian di API Gateway**

*Jendela uji untuk kueri Penyewa-1*

![\[Jendela uji untuk kueri Penyewa-1.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/a6757d3f-977a-4ecc-90cb-83ab7f1c3588.png)


*Jendela uji untuk kueri Penyewa-2*

 

![\[Jendela uji untuk kueri Penyewa-2.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/31bfd656-33ca-4750-b6e6-da4d703c2071.png)


## Lampiran
<a name="attachments-750196bb-03f6-4b6e-92cd-eb7141602547"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/750196bb-03f6-4b6e-92cd-eb7141602547/attachments/attachment.zip)

# Menerapkan aplikasi multi-stack menggunakan AWS CDK dengan TypeScript
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Ringkasan
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-summary"></a>

Pola ini menyediakan step-by-step pendekatan untuk penerapan aplikasi di Amazon Web Services (AWS) menggunakan AWS Cloud Development Kit (AWS CDK) dengan. TypeScript Sebagai contoh, pola tersebut menyebarkan aplikasi analitik real-time tanpa server.

Pola membangun dan menyebarkan aplikasi tumpukan bersarang. CloudFormation Tumpukan AWS induk memanggil tumpukan turunan, atau bersarang,.  Setiap tumpukan anak membangun dan menerapkan sumber daya AWS yang ditentukan dalam tumpukan. CloudFormation AWS CDK Toolkit, perintah antarmuka baris perintah (CLI)`cdk`, adalah antarmuka utama untuk tumpukan. CloudFormation 

## Prasyarat dan batasan
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Virtual Private Cloud (VPC) dan subnet yang ada
+ AWS CDK Toolkit diinstal dan dikonfigurasi
+ Seorang pengguna dengan izin administrator dan satu set kunci akses.
+ Node.js
+ Antarmuka Baris Perintah AWS (AWS CLI)

**Batasan**
+ Karena AWS CDK menggunakan AWS CloudFormation, aplikasi AWS CDK tunduk pada kuota CloudFormation layanan. Untuk informasi selengkapnya, lihat [ CloudFormation kuota AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**Versi produk**

Pola ini telah dibangun dan diuji menggunakan alat dan versi berikut.
+ Perangkat AWS CDK 1.83.0
+ Node.js 14.13.0
+ npm 7.0.14

Pola tersebut harus berfungsi dengan versi AWS CDK atau npm apa pun. Perhatikan bahwa Node.js versi 13.0.0 hingga 13.6.0 tidak kompatibel dengan AWS CDK.

## Arsitektur
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-architecture"></a>

**Tumpukan teknologi target**
+ Konsol AWS Amplify
+ Amazon API Gateway
+ AWS CDK
+ Amazon CloudFront
+ Amazon Cognito
+ Amazon DynamoDB
+ Amazon Data Firehose
+ Amazon Kinesis Data Streams
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon S3)

**Arsitektur target**

Diagram berikut menunjukkan penerapan aplikasi multi-tumpukan menggunakan AWS CDK dengan. TypeScript

![\[Arsitektur tumpukan di VPC, dengan tumpukan induk dan dua tumpukan anak yang berisi sumber daya.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/8f92e86a-aa3d-4f8a-9b11-b92c52a7226c.png)


 

Diagram berikut menunjukkan arsitektur contoh aplikasi real-time tanpa server.

![\[Arsitektur aplikasi di Wilayah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/2df00faf-f871-4aec-9655-19ba2eb14cf8.png)


 

## Alat
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-tools"></a>

**Alat**
+ [AWS Amplify Console](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html) adalah pusat kendali untuk penerapan web dan aplikasi seluler fullstack di AWS. Hosting Konsol Amplify menyediakan alur kerja berbasis git untuk hosting aplikasi web nirserver fullstack dengan deployment kontinu. UI Admin adalah antarmuka visual untuk pengembang web dan seluler frontend untuk membuat dan mengelola backend aplikasi di luar konsol AWS.
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) adalah layanan AWS untuk membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs pada skala apa pun.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS CDK Toolkit adalah kit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi AWS CDK Anda. Perintah `cdk` CLI adalah alat utama untuk berinteraksi dengan aplikasi AWS CDK Anda. Ini menjalankan aplikasi Anda, menginterogasi model aplikasi yang Anda tentukan, dan memproduksi serta menerapkan CloudFormation template AWS yang dihasilkan oleh AWS CDK.
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) adalah layanan web yang mempercepat distribusi konten web statis dan dinamis, seperti.html, .css, .js, dan file gambar. CloudFront mengirimkan konten Anda melalui jaringan pusat data di seluruh dunia yang disebut lokasi tepi untuk latensi yang lebih rendah dan peningkatan kinerja.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk web dan aplikasi seluler Anda. Pengguna Anda dapat masuk secara langsung atau melalui pihak ketiga.
+ [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.
+ [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](https://aws.amazon.com/streaming-data/) 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 Kinesis Data](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) Streams adalah layanan untuk mengumpulkan dan memproses aliran besar catatan data secara real time.
+ [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. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
+ [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.

**Kode**

Kode untuk pola ini terlampir.

## Epik
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-epics"></a>

### Instal AWS CDK Toolkit
<a name="install-aws-cdk-toolkit"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS CDK Toolkit. | Untuk menginstal AWS CDK Toolkit secara global, jalankan perintah berikut.`npm install -g aws-cdk` | DevOps | 
| Verifikasi versinya. | Untuk memverifikasi versi AWS CDK Toolkit, jalankan perintah berikut. `cdk --version` | DevOps | 

### Mengatur kredensi AWS
<a name="set-up-aws-credentials"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan kredensil. | Untuk mengatur kredensil, jalankan `aws configure` perintah dan ikuti petunjuknya.<pre>$aws configure<br />AWS Access Key ID [None]: <br />AWS Secret Access Key [None]: your_secret_access_key<br />Default region name [None]:<br />Default output format [None]:</pre> | DevOps | 

### Unduh kode proyek
<a name="download-the-project-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh kode proyek terlampir. | Untuk informasi selengkapnya tentang direktori dan struktur file, lihat bagian *Informasi tambahan*. | DevOps | 

### Bootstrap lingkungan AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bootstrap lingkungan. | Untuk menerapkan CloudFormation template AWS ke akun dan Wilayah AWS yang ingin Anda gunakan, jalankan perintah berikut.`cdk bootstrap <account>/<Region>`Untuk informasi selengkapnya, lihat [dokumentasi AWS](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | DevOps | 

### Membangun dan menyebarkan proyek
<a name="build-and-deploy-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bangun proyek. | Untuk membangun kode proyek, jalankan `npm run build` perintah. | DevOps | 
| Deploy proyek. | Untuk menyebarkan kode proyek, jalankan `cdk deploy` perintah. |  | 

### Verifikasi output
<a name="verify-outputs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi pembuatan tumpukan. | Di AWS Management Console, pilih **CloudFormation**. Di tumpukan untuk proyek, verifikasi bahwa tumpukan induk dan dua tumpukan anak telah dibuat. | DevOps | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim data ke Kinesis Data Streams. | Konfigurasikan Akun AWS Anda untuk mengirim data ke Kinesis Data Streams menggunakan Amazon Kinesis Data Generator (KDG). Untuk informasi selengkapnya, lihat [Amazon Kinesis Data Generator](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html). | DevOps | 
| Buat pengguna Amazon Cognito. | [Untuk membuat pengguna Amazon Cognito, unduh templat cognito-setup.json CloudFormation dari bagian Buat Pengguna *Amazon Cognito di halaman bantuan Kinesis Data Generator*.](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html) **Mulai template, lalu masukkan Nama Pengguna dan Kata Sandi Amazon **Cognito** Anda.**Tab **Output** mencantumkan URL Kinesis Data Generator. | DevOps | 
| Masuk ke Kinesis Data Generator | Untuk masuk ke KDG, gunakan kredenal Amazon Cognito yang Anda berikan dan URL Kinesis Data Generator. | DevOps | 
| Uji aplikasi. | Di KDG, di **Rekam template**, **Template 1**, tempel kode uji dari bagian *Informasi tambahan*, dan pilih **Kirim** data. | DevOps | 
| Uji API Gateway. | Setelah data tertelan, uji API Gateway dengan menggunakan `GET` metode untuk mengambil data. | DevOps | 

## Sumber daya terkait
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-resources"></a>

**Referensi**
+ [AWS Cloud Development Kit](https://aws.amazon.com/cdk/)
+ [AWS CDK aktif GitHub](https://github.com/aws/aws-cdk)
+ [Bekerja dengan tumpukan bersarang](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
+ [Contoh contoh AWS - Analisis real-time tanpa server](https://github.com/aws-samples/serverless-realtime-analytics)

## Informasi tambahan
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-additional"></a>

**Direktori dan detail file**

Pola ini mengatur tiga tumpukan berikut.
+ `parent-cdk-stack.ts`— Tumpukan ini bertindak sebagai tumpukan induk dan memanggil dua aplikasi anak sebagai tumpukan bersarang. 
+ `real-time-analytics-poc-stack.ts`— Tumpukan bersarang ini berisi infrastruktur dan kode aplikasi.
+ `real-time-analytics-web-stack.ts`— Tumpukan bersarang ini hanya berisi kode aplikasi web statis.

*File penting dan fungsinya*
+ `bin/real-time-analytics-poc.ts`— Titik masuk aplikasi AWS CDK. Ini memuat semua tumpukan yang didefinisikan di bawah`lib/`.
+ `lib/real-time-analytics-poc-stack.ts`— Definisi stack (`real-time-analytics-poc`) aplikasi AWS CDK.
+ `lib/real-time-analytics-web-stack.ts`— Definisi stack (`real-time-analytics-web-stack`) aplikasi AWS CDK.
+ `lib/parent-cdk-stack.ts`— Definisi stack (`parent-cdk`) aplikasi AWS CDK.
+ `package.json`— manifes modul npm, yang mencakup nama aplikasi, versi, dan dependensi.
+ `package-lock.json`— Dipelihara oleh npm.
+ `cdk.json`— Toolkit untuk menjalankan aplikasi.
+ `tsconfig.json`- TypeScript Konfigurasi proyek.
+ `.gitignore`— Daftar file yang harus dikecualikan Git dari kontrol sumber.
+ `node_modules`— Dipelihara oleh npm; termasuk dependensi proyek.

Bagian kode berikut di tumpukan induk memanggil aplikasi turunan sebagai tumpukan AWS CDK bersarang.

```
import * as cdk from '@aws-cdk/core';
import { Construct, Stack, StackProps } from '@aws-cdk/core';
import { RealTimeAnalyticsPocStack } from './real-time-analytics-poc-stack';
import { RealTimeAnalyticsWebStack } from './real-time-analytics-web-stack';


export class CdkParentStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);


    new RealTimeAnalyticsPocStack(this, 'RealTimeAnalyticsPocStack');
    new RealTimeAnalyticsWebStack(this, 'RealTimeAnalyticsWebStack');
  }
}
```

**Kode untuk pengujian**

```
session={{date.now('YYYYMMDD')}}|sequence={{date.now('x')}}|reception={{date.now('x')}}|instrument={{random.number(9)}}|l={{random.number(20)}}|price_0={{random.number({"min":10000, "max":30000})}}|price_1={{random.number({"min":10000, "max":30000})}}|price_2={{random.number({"min":10000, "max":30000})}}|price_3={{random.number({"min":10000, "max":30000})}}|price_4={{random.number({"min":10000, "max":30000})}}|price_5={{random.number({"min":10000, "max":30000})}}|price_6={{random.number({"min":10000, "max":30000})}}|price_7={{random.number({"min":10000, "max":30000})}}|price_8={{random.number({"min":10000, "max":30000})}}|
```

**Menguji API Gateway**

Di konsol API Gateway, uji API Gateway dengan menggunakan `GET` metode ini. 

![\[Konsol API Gateway dengan GET dipilih di bawah OPTIONS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/452e5b8f-6d61-401d-8484-e5a436cb6f1b.png)


 

## Lampiran
<a name="attachments-0ac29a11-1362-4084-92ed-6b85205763ca"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/0ac29a11-1362-4084-92ed-6b85205763ca/attachments/attachment.zip)

# Otomatiskan penerapan aplikasi bersarang menggunakan AWS SAM
<a name="automate-deployment-of-nested-applications-using-aws-sam"></a>

*Dr. Rahul Sharad Gaikwad, Ishwar Chathaiwale, Dmitry Gulin, dan Tabby Ward, Amazon Web Services*

## Ringkasan
<a name="automate-deployment-of-nested-applications-using-aws-sam-summary"></a>

Di Amazon Web Services (AWS), AWS Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka yang menyediakan sintaks singkatan untuk mengekspresikan APIs fungsi, database, dan pemetaan sumber peristiwa. Dengan hanya beberapa baris untuk setiap sumber daya, Anda dapat menentukan aplikasi yang Anda inginkan dan memodelkannya dengan menggunakan YAMAL. Selama penerapan, SAM mengubah dan memperluas sintaks SAM menjadi sintaks CloudFormation AWS yang dapat Anda gunakan untuk membangun aplikasi tanpa server lebih cepat.

AWS SAM menyederhanakan pengembangan, penerapan, dan pengelolaan aplikasi tanpa server di platform AWS. Ini menyediakan kerangka kerja standar, penyebaran yang lebih cepat, kemampuan pengujian lokal, manajemen sumber daya, Integrasi tanpa batas dengan Alat Pengembangan, dan komunitas yang mendukung. Fitur-fitur ini menjadikannya alat yang berharga untuk membangun aplikasi tanpa server secara efisien dan efektif.

Pola ini menggunakan template AWS SAM untuk mengotomatiskan penerapan aplikasi bersarang. Aplikasi bersarang adalah aplikasi dalam aplikasi lain. Aplikasi induk memanggil aplikasi anak mereka. Ini adalah komponen yang digabungkan secara longgar dari arsitektur tanpa server. 

Menggunakan aplikasi bersarang, Anda dapat dengan cepat membangun arsitektur tanpa server yang sangat canggih dengan menggunakan kembali layanan atau komponen yang ditulis dan dipelihara secara independen tetapi disusun menggunakan AWS SAM dan Serverless Application Repository. Aplikasi bersarang membantu Anda membangun aplikasi yang lebih kuat, menghindari pekerjaan duplikat, dan memastikan konsistensi dan praktik terbaik di seluruh tim dan organisasi Anda. Untuk mendemonstrasikan aplikasi bersarang, pola tersebut menerapkan contoh aplikasi keranjang belanja [tanpa server AWS](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Prasyarat dan batasan
<a name="automate-deployment-of-nested-applications-using-aws-sam-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Virtual Private Cloud (VPC) dan subnet
+ Lingkungan pengembangan terintegrasi seperti Visual Studio Code (untuk informasi selengkapnya, lihat [Alat untuk Dibangun di AWS](https://aws.amazon.com/getting-started/tools-sdks/#IDE_and_IDE_Toolkits))
+ Pustaka roda Python diinstal menggunakan pip install wheel, jika belum diinstal

**Batasan**
+ Jumlah maksimum aplikasi yang dapat di-nest dalam aplikasi nirserver adalah 200.
+ Jumlah maksimum parameter untuk aplikasi bersarang dapat memiliki 60.

**Versi produk**
+ Solusi ini dibangun di atas antarmuka baris perintah AWS SAM (AWS SAM CLI) versi 1.21.1, tetapi arsitektur ini harus bekerja dengan versi AWS SAM CLI yang lebih baru.

## Arsitektur
<a name="automate-deployment-of-nested-applications-using-aws-sam-architecture"></a>

**Tumpukan teknologi target**
+ Amazon API Gateway
+ AWS SAM
+ Amazon Cognito
+ Amazon DynamoDB
+ AWS Lambda
+ Antrean Amazon Simple Queue Service (Amazon SQS)

**Arsitektur target**

Diagram berikut menunjukkan bagaimana permintaan pengguna dibuat ke layanan belanja dengan menelepon APIs. Permintaan pengguna, termasuk semua informasi yang diperlukan, dikirim ke Amazon API Gateway dan otorisasi Amazon Cognito, yang melakukan mekanisme otentikasi dan otorisasi untuk. APIs

Ketika item ditambahkan, dihapus, atau diperbarui di DynamoDB, peristiwa dimasukkan ke DynamoDB Streams, yang pada gilirannya memulai fungsi Lambda. Untuk menghindari penghapusan langsung item lama sebagai bagian dari alur kerja sinkron, pesan dimasukkan ke antrian SQS, yang memulai fungsi pekerja untuk menghapus pesan.

![\[Operasi POST dan PUT dari API Gateway ke fungsi Lambda ke DynamoDB dan Layanan Produk.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5b454bae-5fd4-405d-a37d-6bafc3fcf889.png)


Dalam pengaturan solusi ini, AWS SAM CLI berfungsi sebagai antarmuka untuk tumpukan CloudFormation AWS. Template AWS SAM secara otomatis menyebarkan aplikasi bersarang. Template SAM induk memanggil template anak, dan CloudFormation tumpukan induk menyebarkan tumpukan anak. Setiap tumpukan anak membangun sumber daya AWS yang ditentukan dalam CloudFormation templat AWS SAM.

![\[Proses empat langkah menggunakan AWS SAM CLI dengan induk dan tiga CloudFormation tumpukan anak.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5828026e-72ad-4a3f-a5f2-bffac0f13e42.png)


1. Bangun dan gunakan tumpukan.

1.  CloudFormation Tumpukan Auth berisi Amazon Cognito.

1.  CloudFormation Tumpukan Produk berisi fungsi Lambda dan Amazon API Gateway

1.  CloudFormation Tumpukan Belanja berisi fungsi Lambda, Amazon API Gateway, antrean SQS, dan database Amazon DynamoDB.

## Alat
<a name="automate-deployment-of-nested-applications-using-aws-sam-tools"></a>

**Alat**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler.
+ [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 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 Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka yang membantu Anda membangun aplikasi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) tanpa server di AWS Cloud.
+ [Amazon Simple Queue Service (Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.

**Kode**

Kode untuk pola ini tersedia di repositori GitHub [AWS SAM Nested Stack Sample](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Epik
<a name="automate-deployment-of-nested-applications-using-aws-sam-epics"></a>

### Instal AWS SAM CLI
<a name="install-aws-sam-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS SAM CLI. | Untuk menginstal AWS SAM CLI, lihat instruksi dalam dokumentasi [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html). | DevOps insinyur | 
| Siapkan kredensil AWS. | Untuk menetapkan kredensi AWS sehingga AWS SAM CLI dapat melakukan panggilan ke layanan AWS atas nama Anda, jalankan `aws configure` perintah dan ikuti petunjuknya.<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>Untuk informasi selengkapnya tentang menyiapkan kredensil Anda, lihat [Otentikasi dan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) akses kredensil.  | DevOps insinyur | 

### Inisialisasi proyek AWS SAM
<a name="initialize-the-aws-sam-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode AWS SAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps insinyur | 
| Menyebarkan template untuk menginisialisasi proyek. | Untuk menginisialisasi proyek, jalankan `SAM init` perintah. Ketika diminta untuk memilih sumber template, pilih`Custom Template Location`. | DevOps insinyur | 

### Kompilasi dan buat kode template SAM
<a name="compile-and-build-the-sam-template-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau template aplikasi AWS SAM. | Tinjau template untuk aplikasi bersarang. Contoh ini menggunakan template aplikasi bersarang berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps insinyur | 
| Tinjau template induk. | Tinjau template yang akan memanggil template aplikasi bersarang. Dalam contoh ini, template induk adalah`template.yml`. Semua aplikasi terpisah bersarang di template `template.yml` induk tunggal. | DevOps insinyur | 
| Kompilasi dan buat kode template AWS SAM.  | Menggunakan AWS SAM CLI, jalankan perintah berikut.<pre>sam build</pre> | DevOps insinyur | 

### Terapkan template AWS SAM
<a name="deploy-the-aws-sam-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan aplikasi. | Untuk meluncurkan kode template SAM yang membuat CloudFormation tumpukan aplikasi bersarang dan menyebarkan kode di lingkungan AWS, jalankan perintah berikut.<pre>sam deploy --guided --stack-name shopping-cart-nested-stack --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND</pre>Perintah akan meminta dengan beberapa pertanyaan. Jawab semua pertanyaan dengan`y`. | DevOps insinyur | 

### Verifikasi penyebaran
<a name="verify-the-deployment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi tumpukan. | Untuk meninjau CloudFormation tumpukan AWS dan sumber daya AWS yang ditentukan dalam templat AWS SAM, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps insinyur | 

## Sumber daya terkait
<a name="automate-deployment-of-nested-applications-using-aws-sam-resources"></a>

**Referensi**
+ [AWS Model Aplikasi Tanpa Server (AWS SAM)](https://aws.amazon.com/serverless/sam/#:~:text=The%20AWS%20Serverless%20Application%20Model,and%20model%20it%20using%20YAML.)
+ [AWS SAM aktif GitHub](https://github.com/aws/serverless-application-model)
+ [Serverless Shopping Cart Microservice (aplikasi contoh AWS)](https://github.com/aws-samples/aws-serverless-shopping-cart)

**Tutorial dan video**
+ [Membangun Aplikasi Tanpa Server](https://youtu.be/Hv3YrP8G4ag)
+ [AWS Online Tech Talks: Pembuatan dan Penerapan Aplikasi Tanpa Server dengan AWS SAM](https://youtu.be/1NU7vyJw9LU)

## Informasi tambahan
<a name="automate-deployment-of-nested-applications-using-aws-sam-additional"></a>

Setelah semua kode ada, contoh memiliki struktur direktori berikut:
+ [sam\$1stacks](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html) — Folder ini berisi layer. `shared.py` Lapisan adalah arsip file yang berisi pustaka, runtime kustom, atau dependensi lainnya. Dengan lapisan, Anda dapat menggunakan pustaka dalam fungsi Anda tanpa perlu memasukkannya ke dalam paket penerapan.
+ *product-mock-service*— Folder ini berisi semua fungsi dan file Lambda terkait produk.
+ *shopping-cart-service*- Folder ini berisi semua fungsi dan file Lambda terkait belanja.

# Menerapkan isolasi penyewa SaaS untuk Amazon S3 dengan menggunakan mesin penjual otomatis token AWS Lambda
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine"></a>

*Tabby Ward, Thomas Davis, dan Sravan Periyathambi, Amazon Web Services*

## Ringkasan
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-summary"></a>

Aplikasi SaaS multitenant harus menerapkan sistem untuk memastikan bahwa isolasi penyewa dipertahankan. Saat menyimpan data penyewa pada AWS sumber daya yang sama—seperti saat beberapa penyewa menyimpan data dalam ember Amazon Simple Storage Service (Amazon S3) S3—Anda harus memastikan bahwa akses lintas penyewa tidak dapat terjadi. Token vending machine (TVMs) adalah salah satu cara untuk menyediakan isolasi data penyewa. Mesin-mesin ini menyediakan mekanisme untuk mendapatkan token sambil mengabstraksi kompleksitas bagaimana token ini dihasilkan. Pengembang dapat menggunakan TVM tanpa memiliki pengetahuan rinci tentang bagaimana menghasilkan token.

Pola ini mengimplementasikan TVM dengan menggunakan. AWS Lambda TVM menghasilkan token yang terdiri dari kredenal layanan token keamanan sementara (STS) yang membatasi akses ke data penyewa SaaS tunggal dalam bucket S3.

TVMs, dan kode yang disediakan dengan pola ini, biasanya digunakan dengan klaim yang berasal dari JSON Web Tokens (JWTs) untuk mengaitkan permintaan AWS sumber daya dengan kebijakan cakupan penyewa (IAM AWS Identity and Access Management ). Anda dapat menggunakan kode dalam pola ini sebagai dasar untuk mengimplementasikan aplikasi SaaS yang menghasilkan kredensi STS sementara cakupan berdasarkan klaim yang diberikan dalam token JWT.

## Prasyarat dan batasan
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ AWS Command Line Interface (AWS CLI) [versi 1.19.0 atau yang lebih baru](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), diinstal dan dikonfigurasi di macOS, Linux, atau Windows. Atau, Anda dapat menggunakan AWS CLI [versi 2.1 atau yang lebih baru](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).

**Batasan**
+ Kode ini berjalan di Java dan saat ini tidak mendukung bahasa pemrograman lainnya. 
+ Aplikasi sampel tidak menyertakan dukungan AWS Cross-region atau disaster recovery (DR). 
+ Pola ini menunjukkan bagaimana TVM Lambda untuk aplikasi SaaS dapat menyediakan akses penyewa cakupan. Pola ini tidak dimaksudkan untuk digunakan di lingkungan produksi tanpa pengujian keamanan tambahan sebagai bagian dari aplikasi atau kasus penggunaan spesifik Anda.

## Arsitektur
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-architecture"></a>

**Tumpukan teknologi target**
+ AWS Lambda
+ Amazon S3
+ IAM
+ AWS Security Token Service (AWS STS)

**Arsitektur target**

![\[Menghasilkan token untuk mendapatkan kredensi STS sementara untuk mengakses data dalam bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/14d0508a-703b-4229-85e6-c5094de7fe01.png)


 

## Alat
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-tools"></a>

**Layanan 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.
+ [AWS Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) membantu Anda meminta kredensil hak istimewa terbatas sementara untuk pengguna.
+ [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.

**Kode**

Kode sumber untuk pola ini tersedia sebagai lampiran dan termasuk file-file berikut:
+ `s3UploadSample.jar`menyediakan kode sumber untuk fungsi Lambda yang mengunggah dokumen JSON ke bucket S3.
+ `tvm-layer.zip`menyediakan pustaka Java yang dapat digunakan kembali yang memasok token (kredensi sementara STS) untuk fungsi Lambda untuk mengakses bucket S3 dan mengunggah dokumen JSON.
+ `token-vending-machine-sample-app.zip`menyediakan kode sumber yang digunakan untuk membuat artefak dan instruksi kompilasi ini.

Untuk menggunakan file-file ini, ikuti instruksi di bagian selanjutnya.

## Epik
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-epics"></a>

### Tentukan nilai variabel
<a name="determine-variable-values"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan nilai variabel. | Implementasi pola ini mencakup beberapa nama variabel yang harus digunakan secara konsisten. Tentukan nilai yang harus digunakan untuk setiap variabel, dan berikan nilai itu ketika diminta dalam langkah selanjutnya.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.html) | Administrator awan | 

### Buat Bucket S3
<a name="create-an-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket S3 untuk aplikasi sampel. | Gunakan AWS CLI perintah berikut untuk membuat bucket S3. Berikan `<sample-app-bucket-name>`**** nilai dalam cuplikan kode:<pre>aws s3api create-bucket --bucket <sample-app-bucket-name></pre>Aplikasi sampel Lambda mengunggah file JSON ke bucket ini. | Administrator awan | 

### Buat peran dan kebijakan IAM TVM
<a name="create-the-iam-tvm-role-and-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran TVM. | Gunakan salah satu AWS CLI perintah berikut untuk membuat peran IAM. Berikan `<sample-tvm-role-name>`**** nilai dalam perintah.Untuk shell macOS atau Linux:<pre>aws iam create-role \<br />--role-name <sample-tvm-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "sts:AssumeRole"<br />            ],<br />            "Principal": {<br />                "Service": [<br />                    "lambda.amazonaws.com"<br />                ]<br />            },<br />            "Condition": {<br />                "StringEquals": {<br />                    "aws:SourceAccount": "<AWS Account ID>"<br />                }<br />            }<br />        }<br />    ]<br />}'</pre>Untuk baris perintah Windows:<pre>aws iam create-role ^<br />--role-name <sample-tvm-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"sts:AssumeRole\"], \"Principal\": {\"Service\": [\"lambda.amazonaws.com\"]}, \"Condition\": {\"StringEquals\": {\"aws:SourceAccount\": \"<AWS Account ID>\"}}}]}"</pre>Contoh aplikasi Lambda mengasumsikan peran ini saat aplikasi dipanggil. Kemampuan untuk mengambil peran aplikasi dengan kebijakan cakupan memberikan izin kode yang lebih luas untuk mengakses bucket S3. | Administrator awan | 
| Buat kebijakan peran TVM sebaris. | Gunakan salah satu AWS CLI perintah berikut untuk membuat kebijakan IAM. Berikan`<sample-tvm-role-name>`, **`<AWS Account ID>`**, dan `<sample-app-role-name>` nilai dalam perintah.Untuk shell macOS atau Linux:<pre>aws iam put-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-name assume-app-role \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": "sts:AssumeRole", <br />            "Resource": "arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>"<br />        }<br />    ]}'</pre>Untuk baris perintah Windows:<pre>aws iam put-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-name assume-app-role ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": \"sts:AssumeRole\", \"Resource\": \"arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>\"}]}"</pre>Kebijakan ini melekat pada peran TVM. Ini memberi kode kemampuan untuk mengambil peran aplikasi, yang memiliki izin yang lebih luas untuk mengakses bucket S3. | Administrator awan | 
| Lampirkan kebijakan Lambda yang dikelola. | Gunakan AWS CLI perintah berikut untuk melampirkan kebijakan `AWSLambdaBasicExecutionRole` IAM. Berikan `<sample-tvm-role-name>` nilai dalam perintah:<pre>aws iam attach-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Untuk baris perintah Windows:<pre>aws iam attach-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Kebijakan terkelola ini dilampirkan pada peran TVM untuk mengizinkan Lambda mengirim log ke Amazon. CloudWatch | Administrator awan | 

### Buat peran dan kebijakan aplikasi IAM
<a name="create-the-iam-application-role-and-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran aplikasi. | Gunakan salah satu AWS CLI perintah berikut untuk membuat peran IAM. Berikan`<sample-app-role-name>`,`<AWS Account ID>`, dan `<sample-tvm-role-name>` nilai dalam perintah.Untuk shell macOS atau Linux:<pre>aws iam create-role \<br />--role-name <sample-app-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": <br />            "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]}'</pre>Untuk baris perintah Windows:<pre>aws iam create-role ^<br />--role-name <sample-app-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>\"},\"Action\": \"sts:AssumeRole\"}]}"</pre>Aplikasi sampel Lambda mengasumsikan peran ini dengan kebijakan cakupan untuk mendapatkan akses berbasis penyewa ke bucket S3. | Administrator awan | 
| Buat kebijakan peran aplikasi inline. | Gunakan salah satu AWS CLI mmands berikut untuk membuat kebijakan IAM. Berikan `<sample-app-role-name>` dan `<sample-app-bucket-name>`**** nilai dalam perintah.Untuk shell macOS atau Linux:<pre>aws iam put-role-policy \<br />--role-name <sample-app-role-name> \<br />--policy-name s3-bucket-access \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": [<br />                "s3:PutObject", <br />                "s3:GetObject", <br />                "s3:DeleteObject"<br />            ], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>/*"<br />        }, <br />        {<br />            "Effect": "Allow", <br />            "Action": ["s3:ListBucket"], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>"<br />        }<br />    ]}'</pre>Untuk baris perintah Windows:<pre>aws iam put-role-policy ^<br />--role-name <sample-app-role-name> ^<br />--policy-name s3-bucket-access ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"s3:PutObject\", \"s3:GetObject\", \"s3:DeleteObject\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>/*\"}, {\"Effect\": \"Allow\", \"Action\": [\"s3:ListBucket\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>\"}]}"</pre>Kebijakan ini dilampirkan pada peran aplikasi. Ini menyediakan akses luas ke objek di bucket S3. Saat aplikasi sampel mengasumsikan peran tersebut, izin ini akan dicakup oleh penyewa tertentu dengan kebijakan TVM yang dihasilkan secara dinamis. | Administrator awan | 

### Buat aplikasi sampel Lambda dengan TVM
<a name="create-the-lam-sample-application-with-tvm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh file sumber yang dikompilasi. | Unduh `tvm-layer.zip`**** file `s3UploadSample.jar` dan, yang disertakan sebagai lampiran. Kode sumber yang digunakan untuk membuat artefak dan instusi kompilasi ini disediakan di. `token-vending-machine-sample-app.zip` | Administrator awan | 
| Buat layer Lambda. | Gunakan AWS CLI perintah berikut untuk membuat layer Lambda, yang membuat TVM dapat diakses oleh Lambda. Jika Anda tidak menjalankan perintah ini dari lokasi di mana Anda mengunduh` tvm-layer.zip`, berikan jalur yang benar ke `tvm-layer.zip` dalam `--zip-file` parameter. <pre>aws lambda publish-layer-version \<br />--layer-name sample-token-vending-machine \<br />--compatible-runtimes java11 \<br />--zip-file fileb://tvm-layer.zip</pre>Untuk baris perintah Windows:<pre>aws lambda publish-layer-version ^<br />--layer-name sample-token-vending-machine ^<br />--compatible-runtimes java11 ^<br />--zip-file fileb://tvm-layer.zip</pre>Perintah ini membuat lapisan Lambda yang berisi pustaka TVM yang dapat digunakan kembali. | Administrator cloud, Pengembang aplikasi | 
| Buat fungsi Lambda. | Gunakan AWS CLI perintah berikut untuk membuat fungsi Lambda. Berikan`<sample-app-function-name>`,`<AWS Account ID>`,`<AWS Region>`,`<sample-tvm-role-name>`,`<sample-app-bucket-name>`, dan `<sample-app-role-name>` nilai dalam perintah. Jika Anda tidak menjalankan perintah ini dari lokasi di mana Anda mengunduh`s3UploadSample.jar`, berikan jalur yang benar ke `s3UploadSample.jar` dalam `--zip-file` parameter. <pre>aws lambda create-function \<br />--function-name <sample-app-function-name>  \<br />--timeout 30 \<br />--memory-size 256 \<br />--runtime java11 \<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> \<br />--handler com.amazon.aws.s3UploadSample.App \<br />--zip-file fileb://s3UploadSample.jar \<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 \<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,<br />ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Untuk baris perintah Windows:<pre>aws lambda create-function ^<br />--function-name <sample-app-function-name>  ^<br />--timeout 30 ^<br />--memory-size 256 ^<br />--runtime java11 ^<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> ^<br />--handler com.amazon.aws.s3UploadSample.App ^<br />--zip-file fileb://s3UploadSample.jar ^<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 ^<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Perintah ini menciptakan fungsi Lambda dengan kode aplikasi sampel dan lapisan TVM terpasang. Ini juga menetapkan dua variabel lingkungan: `S3_BUCKET` dan`ROLE`. Aplikasi sampel menggunakan variabel-variabel ini untuk menentukan peran yang akan diasumsikan dan bucket S3 untuk mengunggah dokumen JSON. | Administrator cloud, Pengembang aplikasi | 

### Uji aplikasi sampel dan TVM
<a name="test-the-sample-application-and-tvm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memanggil aplikasi sampel Lambda. | Gunakan salah satu AWS CLI perintah berikut untuk memulai aplikasi sampel Lambda dengan muatan yang diharapkan. Berikan `<sample-app-function-name>` dan `<sample-tenant-name>` nilai dalam perintah.Untuk shell macOS dan Linux:<pre>aws lambda invoke \<br />--function <sample-app-function-name> \<br />--invocation-type RequestResponse \<br />--payload '{"tenant": "<sample-tenant-name>"}' \<br />--cli-binary-format raw-in-base64-out response.json</pre>Untuk baris perintah Windows:<pre>aws lambda invoke ^<br />--function <sample-app-function-name> ^<br />--invocation-type RequestResponse ^<br />--payload "{\"tenant\": \"<sample-tenant-name>\"}" ^<br />--cli-binary-format raw-in-base64-out response.json</pre>Perintah ini memanggil fungsi Lambda dan mengembalikan hasilnya dalam dokumen. `response.json` Pada banyak sistem berbasis Unix, Anda dapat mengubah `response.json` `/dev/stdout` untuk menampilkan hasil langsung ke shell Anda tanpa membuat file lain. Mengubah `<sample-tenant-name>` nilai dalam pemanggilan berikutnya dari fungsi Lambda ini mengubah lokasi dokumen JSON dan izin yang diberikan token. | Administrator cloud, Pengembang aplikasi | 
| Lihat bucket S3 untuk melihat objek yang dibuat. | Jelajahi bucket S3 (`<sample-app-bucket-name>`) yang Anda buat sebelumnya. Bucket ini berisi awalan objek S3 dengan nilai. `<sample-tenant-name>` Di bawah awalan itu, Anda akan menemukan dokumen JSON bernama dengan UUID. Memanggil aplikasi sampel beberapa kali menambahkan lebih banyak dokumen JSON. | Administrator awan | 
| Lihat log untuk aplikasi sampel di CloudWatch Log. | Lihat log yang terkait dengan fungsi Lambda yang dinamai `<sample-app-function-name>` di CloudWatch Log. Untuk petunjuk, lihat [Mengirim log fungsi Lambda ke CloudWatch Log dalam dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) Lambda. Anda dapat melihat kebijakan cakupan penyewa yang dihasilkan oleh TVM di log ini. Kebijakan cakupan penyewa ini memberikan izin untuk aplikasi sampel ke Amazon S3,, dan **PutObject**GetObject**DeleteObject**ListBucket******** APIs, tetapi hanya untuk awalan objek yang terkait dengannya. `<sample-tenant-name>` Dalam pemanggilan aplikasi sampel berikutnya, jika Anda mengubah`<sample-tenant-name>`, TVM memperbarui kebijakan cakupan agar sesuai dengan penyewa yang disediakan dalam muatan pemanggilan. Kebijakan yang dihasilkan secara dinamis ini menunjukkan bagaimana akses cakupan penyewa dapat dipertahankan dengan TVM di aplikasi SaaS. Fungsionalitas TVM disediakan dalam lapisan Lambda sehingga dapat dilampirkan ke fungsi Lambda lain yang digunakan oleh aplikasi tanpa harus mereplikasi kode.Untuk ilustrasi kebijakan yang dihasilkan secara dinamis, lihat bagian [Informasi tambahan](#implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional). | Administrator awan | 

## Sumber daya terkait
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-resources"></a>
+ [Mengisolasi Penyewa dengan Kebijakan IAM yang Dihasilkan Secara Dinamis](https://aws.amazon.com/blogs/apn/isolating-saas-tenants-with-dynamically-generated-iam-policies/) (posting blog)
+ [Menerapkan Kebijakan Isolasi yang Dihasilkan Secara Dinamis di Lingkungan SaaS](https://aws.amazon.com/blogs/apn/applying-dynamically-generated-isolation-policies-in-saas-environments/) (posting blog)
+ [SaaS di AWS](https://aws.amazon.com/saas/)

## Informasi tambahan
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional"></a>

Log berikut menunjukkan kebijakan yang dihasilkan secara dinamis yang dihasilkan oleh kode TVM dalam pola ini. Dalam tangkapan layar ini, `<sample-app-bucket-name>` adalah `DOC-EXAMPLE-BUCKET` dan yang `<sample-tenant-name>` ada`test-tenant-1`. Kredensi STS yang dikembalikan oleh kebijakan cakupan ini tidak dapat melakukan tindakan apa pun pada objek di bucket S3 kecuali untuk objek yang terkait dengan awalan key objek. `test-tenant-1`

![\[Log menunjukkan kebijakan yang dihasilkan secara dinamis yang dihasilkan oleh kode TVM.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/d4776ebe-fb8f-41ac-b8c5-b4f97a821c8c.png)


## Lampiran
<a name="attachments-97a34c8e-d04e-40b6-acbf-1baa176d22a9"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/97a34c8e-d04e-40b6-acbf-1baa176d22a9/attachments/attachment.zip)

# Menerapkan pola saga tanpa server dengan menggunakan AWS Step Functions
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions"></a>

*Tabby Ward, Joe Kern, dan Rohan Mehta, Amazon Web Services*

## Ringkasan
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-summary"></a>

Dalam arsitektur layanan mikro, tujuan utamanya adalah membangun komponen terpisah dan independen untuk mempromosikan kelincahan, fleksibilitas, dan waktu yang lebih cepat untuk memasarkan aplikasi Anda. Sebagai hasil dari decoupling, setiap komponen microservice memiliki lapisan persistensi datanya sendiri. Dalam arsitektur terdistribusi, transaksi bisnis dapat menjangkau beberapa layanan mikro. Karena layanan mikro ini tidak dapat menggunakan transaksi atomisitas, konsistensi, isolasi, daya tahan (ACID) tunggal, Anda mungkin berakhir dengan transaksi sebagian. Dalam hal ini, diperlukan beberapa logika kontrol untuk membatalkan transaksi yang telah diproses. Pola saga terdistribusi biasanya digunakan untuk tujuan ini. 

Pola saga adalah pola manajemen kegagalan yang membantu membangun konsistensi dalam aplikasi terdistribusi dan mengkoordinasikan transaksi antara beberapa layanan mikro untuk menjaga konsistensi data. Ketika Anda menggunakan pola saga, setiap layanan yang melakukan transaksi menerbitkan peristiwa yang memicu layanan berikutnya untuk melakukan transaksi berikutnya dalam rantai. Ini berlanjut sampai transaksi terakhir dalam rantai selesai. Jika transaksi bisnis gagal, saga mengatur serangkaian transaksi kompensasi yang membatalkan perubahan yang dilakukan oleh transaksi sebelumnya.

Pola ini menunjukkan cara mengotomatiskan penyiapan dan penerapan aplikasi sampel (yang menangani reservasi perjalanan) dengan teknologi tanpa server seperti AWS Step Functions, AWS Lambda, dan Amazon DynamoDB. Aplikasi sampel juga menggunakan Amazon API Gateway dan Amazon Simple Notification Service (Amazon SNS) untuk mengimplementasikan koordinator eksekusi saga. Pola ini dapat diterapkan dengan kerangka infrastruktur sebagai kode (IAc) seperti AWS Cloud Development Kit (AWS CDK), AWS Serverless Application Model (AWS SAM), atau Terraform.

## Prasyarat dan batasan
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Izin untuk membuat CloudFormation tumpukan AWS. Untuk informasi selengkapnya, lihat [Mengontrol akses](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dalam CloudFormation dokumentasi.
+ Kerangka kerja IAC pilihan Anda (AWS CDK, AWS SAM, atau Terraform) dikonfigurasi dengan akun AWS Anda sehingga Anda dapat menggunakan kerangka kerja CLI untuk menyebarkan aplikasi.
+ NodeJS, digunakan untuk membangun aplikasi dan menjalankannya secara lokal. 
+ Editor kode pilihan Anda (seperti Visual Studio Code, Sublime, atau Atom).

**Versi produk**
+ [NodeJS versi 14](https://nodejs.org/en/download/)
+ [AWS CDK versi 2.37.1](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [AWS SAM versi 1.71.0](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)
+ [Terraform versi 1.3.7](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)

**Batasan**

Sumber acara adalah cara alami untuk menerapkan pola orkestrasi saga dalam arsitektur layanan mikro di mana semua komponen digabungkan secara longgar dan tidak memiliki pengetahuan langsung satu sama lain. Jika transaksi Anda melibatkan sejumlah kecil langkah (tiga hingga lima), pola saga mungkin sangat cocok. Namun kompleksitas meningkat dengan jumlah layanan mikro dan jumlah langkah. 

Pengujian dan debugging dapat menjadi sulit ketika Anda menggunakan desain ini, karena Anda harus menjalankan semua layanan untuk mensimulasikan pola transaksi.

## Arsitektur
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-architecture"></a>

**Arsitektur target**

Arsitektur yang diusulkan menggunakan AWS Step Functions untuk membangun pola saga untuk memesan penerbangan, memesan penyewaan mobil, dan memproses pembayaran untuk liburan.

Diagram alur kerja berikut menggambarkan aliran khas sistem reservasi perjalanan. Alur kerja terdiri dari pemesanan perjalanan udara (” ReserveFlight “), memesan mobil (” ReserveCarRental “), memproses pembayaran (” ProcessPayment “), konfirmasi reservasi penerbangan (” ConfirmFlight “), dan konfirmasi penyewaan mobil (” ConfirmCarRental “) diikuti dengan pemberitahuan keberhasilan ketika langkah-langkah ini selesai. Namun, jika sistem menemukan kesalahan dalam menjalankan salah satu transaksi ini, itu mulai gagal mundur. Misalnya, kesalahan dengan pemrosesan pembayaran (” ProcessPayment “) memicu pengembalian uang (” RefundPayment “), yang kemudian memicu pembatalan mobil sewaan dan penerbangan (” CancelRentalReservation "dan" CancelFlightReservation “), yang mengakhiri seluruh transaksi dengan pesan kegagalan.

Pola ini menyebarkan fungsi Lambda terpisah untuk setiap tugas yang disorot dalam diagram serta tiga tabel DynamoDB untuk penerbangan, penyewaan mobil, dan pembayaran. Setiap fungsi Lambda membuat, memperbarui, atau menghapus baris di tabel DynamoDB masing-masing, tergantung pada apakah transaksi dikonfirmasi atau digulung kembali. Pola ini menggunakan Amazon SNS untuk mengirim pesan teks (SMS) ke pelanggan, memberi tahu mereka tentang transaksi yang gagal atau berhasil. 

![\[Alur kerja untuk sistem reservasi perjalanan berdasarkan pola saga.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/daad3e8e-6e6b-41c2-95c1-ca79d53ead64.png)


 

**Otomatisasi dan skala**

Anda dapat membuat konfigurasi untuk arsitektur ini dengan menggunakan salah satu kerangka kerja IAc. Gunakan salah satu tautan berikut untuk IAc pilihan Anda.
+ [Terapkan dengan AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Terapkan dengan AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Terapkan dengan Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Alat
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-tools"></a>

**Layanan AWS**
+ [AWS Step Functions](https://aws.amazon.com/step-functions/) adalah layanan orkestrasi tanpa server yang memungkinkan Anda menggabungkan fungsi AWS Lambda dan layanan AWS lainnya untuk membangun aplikasi yang penting bagi bisnis. Melalui konsol grafis Step Functions, Anda melihat alur kerja aplikasi Anda sebagai serangkaian langkah berbasis peristiwa.
+ [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) adalah layanan database NoSQL yang dikelola sepenuhnya yang memberikan kinerja yang cepat dan dapat diprediksi dengan skalabilitas yang mulus. Anda dapat menggunakan DynamoDB untuk membuat tabel basis data yang dapat menyimpan dan mengambil data dalam jumlah berapa pun, dan melayani tingkat lalu lintas permintaan apapun.
+ [AWS Lambda](https://aws.amazon.com/lambda/) adalah layanan komputasi yang memungkinkan Anda 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 API Gateway](https://aws.amazon.com/api-gateway/) adalah layanan AWS untuk membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs pada skala apa pun.
+ [Amazon Simple Notification Service (Amazon SNS](https://aws.amazon.com/sns/)) adalah layanan terkelola yang menyediakan pengiriman pesan dari penerbit ke pelanggan.
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/) adalah kerangka kerja pengembangan perangkat lunak untuk mendefinisikan sumber daya aplikasi cloud Anda dengan menggunakan bahasa pemrograman yang sudah dikenal seperti TypeScript,, JavaScript Python, Java, dan C\$1/Net.
+ [AWS Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka untuk membangun aplikasi](https://aws.amazon.com/serverless/sam/) tanpa server. Ini menyediakan sintaks singkatan untuk mengekspresikan fungsi, database APIs, dan pemetaan sumber peristiwa. 

**Kode**

Kode untuk contoh aplikasi yang menunjukkan pola saga, termasuk template IAC (AWS CDK, AWS SAM, atau Terraform), fungsi Lambda, dan tabel DynamoDB dapat ditemukan di tautan berikut. Ikuti instruksi dalam epik pertama untuk menginstal ini.
+ [Terapkan dengan AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Terapkan dengan AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Terapkan dengan Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Epik
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-epics"></a>

### Instal paket, kompilasi, dan bangun
<a name="install-packages-compile-and-build"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal paket NPM. | Buat direktori baru, arahkan ke direktori itu di terminal, dan kloning GitHub repositori pilihan Anda dari bagian *Kode* sebelumnya dalam pola ini.Di folder root yang memiliki `package.json` file, jalankan perintah berikut untuk mengunduh dan menginstal semua paket Node Package Manager (NPM):<pre>npm install</pre> | Pengembang, arsitek Cloud | 
| Kompilasi skrip. | Di folder root, jalankan perintah berikut untuk menginstruksikan TypeScript transpiler untuk membuat semua file yang diperlukan JavaScript :<pre>npm run build</pre> | Pengembang, arsitek Cloud | 
| Perhatikan perubahan dan kompilasi ulang. | Di folder root, jalankan perintah berikut di jendela terminal terpisah untuk melihat perubahan kode, dan kompilasi kode ketika mendeteksi perubahan:<pre>npm run watch</pre> | Pengembang, arsitek Cloud | 
| Jalankan pengujian unit (hanya AWS CDK).  | Jika Anda menggunakan AWS CDK, di folder root, jalankan perintah berikut untuk melakukan pengujian unit Jest:<pre>npm run test</pre> | Pengembang, arsitek Cloud | 

### Menerapkan sumber daya ke akun AWS target
<a name="deploy-resources-to-the-target-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Terapkan tumpukan demo ke AWS. | Aplikasi ini AWS Region-agnostik. [Jika Anda menggunakan profil, Anda harus mendeklarasikan Region secara eksplisit di [profil AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) atau melalui variabel lingkungan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)Di folder root, jalankan perintah berikut untuk membuat perakitan penerapan dan menerapkannya ke akun AWS default dan Wilayah.AWS CDK:<pre>cdk bootstrap<br />cdk deploy</pre>AWS SAM:<pre>sam build<br />sam deploy --guided</pre>Terraform:<pre>terraform init<br />terraform apply</pre>Langkah ini mungkin memakan waktu beberapa menit untuk menyelesaikannya. Perintah ini menggunakan kredensyal default yang dikonfigurasi untuk AWS CLI.Perhatikan URL API Gateway yang ditampilkan di konsol setelah penerapan selesai. Anda akan memerlukan informasi ini untuk menguji alur eksekusi saga. | Pengembang, arsitek Cloud | 
| Bandingkan tumpukan yang diterapkan dengan status saat ini. | Di folder root, jalankan perintah berikut untuk membandingkan tumpukan yang diterapkan dengan status saat ini setelah membuat perubahan pada kode sumber:AWS CDK:<pre>cdk diff</pre>AWS SAM:<pre>sam deploy</pre>Terraform:<pre>terraform plan</pre> | Pengembang, arsitek Cloud | 

### Uji alur eksekusi
<a name="test-the-execution-flow"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji alur eksekusi saga. | Arahkan ke URL API Gateway yang Anda catat di langkah sebelumnya, saat Anda menerapkan tumpukan. URL ini memicu mesin status untuk memulai. Untuk informasi selengkapnya tentang cara memanipulasi aliran mesin status dengan meneruskan parameter URL yang berbeda, lihat bagian [Informasi tambahan](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional).Untuk melihat hasilnya, masuk ke AWS Management Console dan navigasikan ke konsol Step Functions. Di sini, Anda dapat melihat setiap langkah dari mesin saga state. Anda juga dapat melihat tabel DynamoDB untuk melihat catatan yang disisipkan, diperbarui, atau dihapus. Jika Anda sering menyegarkan layar, Anda dapat melihat perubahan status transaksi dari `pending` ke`confirmed`. Anda dapat berlangganan topik SNS dengan memperbarui kode dalam `stateMachine.ts` file dengan nomor ponsel Anda untuk menerima pesan SMS setelah reservasi berhasil atau gagal. Untuk informasi selengkapnya, lihat *Amazon SNS* di bagian [Informasi tambahan](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional). | Pengembang, arsitek Cloud | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pembersihan sumber daya  | Untuk membersihkan sumber daya yang digunakan untuk aplikasi ini, Anda dapat menggunakan salah satu perintah berikut.AWS CDK:<pre>cdk destroy</pre>AWS SAM:<pre>sam delete</pre>Terraform:<pre>terraform destroy</pre> | Pengembang aplikasi, arsitek Cloud | 

## Sumber daya terkait
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-resources"></a>

**Makalah teknis**
+ [Menerapkan Layanan Mikro di AWS](https://docs.aws.amazon.com/pdfs/whitepapers/latest/microservices-on-aws/microservices-on-aws.pdf)
+ [Lensa Aplikasi Tanpa Server](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)

**Dokumentasi layanan AWS**
+ [Memulai dengan AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
+ [Memulai AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html)
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/)
+ [Amazon DynamoDB](https://docs.aws.amazon.com/dynamodb/)
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/)
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

**Tutorial**
+ [Lokakarya Langsung untuk Komputasi Tanpa Server](https://aws.amazon.com/serverless-workshops/)

## Informasi tambahan
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional"></a>

**Kode**

Untuk tujuan pengujian, pola ini menerapkan API Gateway dan fungsi Lambda pengujian yang memicu mesin status Step Functions. Dengan Step Functions, Anda dapat mengontrol fungsionalitas sistem reservasi perjalanan dengan meneruskan `run_type` parameter untuk meniru kegagalan di “ReserveFlightReserveCarRental,” “ProcessPayment,” “ConfirmFlight,” dan “ConfirmCarRental.”

Fungsi `saga` Lambda (`sagaLambda.ts`) mengambil input dari parameter kueri di URL API Gateway, membuat objek JSON berikut, dan meneruskannya ke Step Functions untuk dieksekusi:

```
let input = {
"trip_id": tripID, //  value taken from query parameter, default is AWS request ID
"depart_city": "Detroit",
"depart_time": "2021-07-07T06:00:00.000Z",
"arrive_city": "Frankfurt",
"arrive_time": "2021-07-09T08:00:00.000Z",
"rental": "BMW",
"rental_from": "2021-07-09T00:00:00.000Z",
"rental_to": "2021-07-17T00:00:00.000Z",
"run_type": runType // value taken from query parameter, default is "success"
};
```

Anda dapat bereksperimen dengan aliran yang berbeda dari mesin status Step Functions dengan meneruskan parameter URL berikut:
+ **Eksekusi Berhasil** ─ https://\$1api gateway url\$1
+ **Penerbangan Cadangan Gagal** ─ https://\$1api gateway url\$1? **RunType= failFlightsReservation**
+ **Konfirmasikan Penerbangan Gagal** ─ https://\$1api gateway url\$1? **RunType= failFlightsConfirmation**
+ **Cadangan Sewa Mobil Gagal** ─ https://\$1api gateway url\$1? **RunType= failCarRental Reservasi**
+ **Konfirmasikan Gagal Sewa Mobil** ─ https://\$1api gateway url\$1? **RunType= Konfirmasi failCarRental**
+ **Proses Pembayaran Gagal** ─ https://\$1api gateway url\$1? **runType=Kegagalan pembayaran**
+ **Lulus ID Perjalanan** ─ https://\$1api gateway url\$1? **tripid=** \$1secara default, ID trip akan menjadi ID permintaan AWS\$1

**Template IAc**

Repositori tertaut menyertakan templat IAC yang dapat Anda gunakan untuk membuat seluruh contoh aplikasi reservasi perjalanan.
+ [Terapkan dengan AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Terapkan dengan AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Terapkan dengan Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

**Tabel DynamoDB**

Berikut adalah model data untuk penerbangan, penyewaan mobil, dan tabel pembayaran.

```
Flight Data Model:
 var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: flightReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: flightReservationID},
        'depart_city' : {S: event.depart_city},
        'depart_time': {S: event.depart_time},
        'arrive_city': {S: event.arrive_city},
        'arrive_time': {S: event.arrive_time},
        'transaction_status': {S: 'pending'}
      }
    };

Car Rental Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: carRentalReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: carRentalReservationID},
        'rental': {S: event.rental},
        'rental_from': {S: event.rental_from},
        'rental_to': {S: event.rental_to},
        'transaction_status': {S: 'pending'}
      }
    };

Payment Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: paymentID},
        'trip_id' : {S: event.trip_id},
        'id': {S: paymentID},
        'amount': {S: "750.00"}, // hard coded for simplicity as implementing any monetary transaction functionality is beyond the scope of this pattern
        'currency': {S: "USD"},
        'transaction_status': {S: "confirmed"}
      }
    };
```

**Fungsi Lambda**

Fungsi-fungsi berikut akan dibuat untuk mendukung aliran dan eksekusi mesin state di Step Functions:
+ **Reserve Flights**: Menyisipkan catatan ke dalam tabel DynamoDB Flights dengan `pending` jumlah, `transaction_status` untuk memesan penerbangan.
+ **Konfirmasi Penerbangan**: Memperbarui catatan di tabel DynamoDB Flights, untuk `transaction_status` disetel `confirmed` ke, untuk mengonfirmasi penerbangan.
+ **Batalkan Reservasi Penerbangan**: Menghapus catatan dari tabel DynamoDB Flights, untuk membatalkan penerbangan yang tertunda.
+ **Reserve Car Rentals**: Menyisipkan catatan ke dalam tabel CarRentals DynamoDB dengan, untuk `transaction_status` memesan `pending` sewa mobil.
+ **Konfirmasikan Penyewaan Mobil**: Memperbarui catatan di tabel CarRentals DynamoDB, untuk `transaction_status` mengatur ke, `confirmed` untuk mengkonfirmasi sewa mobil.
+ **Batalkan Reservasi Penyewaan Mobil:** Menghapus catatan dari tabel CarRentals DynamoDB, untuk membatalkan sewa mobil yang tertunda.
+ **Proses Pembayaran**: Menyisipkan catatan ke dalam tabel Pembayaran DynamoDB untuk pembayaran.
+ **Batalkan Pembayaran**: Menghapus catatan dari tabel Pembayaran DynamoDB untuk pembayaran.

**Amazon SNS**

Aplikasi sampel membuat topik dan langganan berikut untuk mengirim pesan SMS dan memberi tahu pelanggan tentang pemesanan yang berhasil atau gagal. Jika Anda ingin menerima pesan teks saat menguji aplikasi sampel, perbarui langganan SMS dengan nomor telepon Anda yang valid di file definisi mesin negara.

Cuplikan AWS CDK (tambahkan nomor telepon di baris kedua dari kode berikut):

```
const topic = new  sns.Topic(this, 'Topic');
topic.addSubscription(new subscriptions.SmsSubscription('+11111111111'));
const snsNotificationFailure = new tasks.SnsPublish(this ,'SendingSMSFailure', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation Failed'),
});
 
const snsNotificationSuccess = new tasks.SnsPublish(this ,'SendingSMSSuccess', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation is Successful'),
});
```

Cuplikan AWS SAM (ganti `+1111111111` string dengan nomor telepon Anda yang valid):

```
  StateMachineTopic11111111111:
    Type: 'AWS::SNS::Subscription'
    Properties:
      Protocol: sms
      TopicArn:
        Ref: StateMachineTopic
      Endpoint: '+11111111111'
    Metadata:
      'aws:sam:path': SamServerlessSagaStack/StateMachine/Topic/+11111111111/Resource
```

Cuplikan Terraform (ganti `+111111111` string dengan nomor telepon Anda yang valid):

```
resource "aws_sns_topic_subscription" "sms-target" {
  topic_arn = aws_sns_topic.topic.arn
  protocol  = "sms"
  endpoint  = "+11111111111"
}
```

**Reservasi yang berhasil**

Alur berikut menggambarkan reservasi yang berhasil dengan “ReserveFlight,” “ReserveCarRental,” dan "ProcessPayment" diikuti oleh "ConfirmFlight" dan "ConfirmCarRental.” Pelanggan diberitahu tentang pemesanan yang berhasil melalui pesan SMS yang dikirim ke pelanggan topik SNS.

![\[Contoh reservasi yang berhasil diimplementasikan oleh Step Functions dengan menggunakan pola saga.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/f58c894e-7721-4bc7-8f7d-29f23faa5dc1.png)


**Reservasi gagal**

Aliran ini adalah contoh kegagalan dalam pola saga. Jika, setelah memesan penerbangan dan penyewaan mobil, ProcessPayment "" gagal, langkah-langkah dibatalkan dalam urutan terbalik.  Reservasi dirilis, dan pelanggan diberitahu tentang kegagalan melalui pesan SMS yang dikirim ke pelanggan topik SNS.

![\[Contoh reservasi gagal yang diimplementasikan oleh Step Functions dengan menggunakan pola saga.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/7c64d326-be27-42c3-b03f-d677efedb9a7.png)


# Mengelola aplikasi kontainer lokal dengan menyiapkan Amazon ECS Anywhere dengan AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Ringkasan
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS](https://aws.amazon.com/ecs/anywhere/) Anywhere adalah perpanjangan dari Amazon Elastic Container Service (Amazon ECS). Anda dapat menggunakan ECS Anywhere untuk menerapkan tugas Amazon ECS asli di lingkungan lokal atau yang dikelola pelanggan. Fitur ini membantu mengurangi biaya dan mengurangi orkestrasi dan operasi kontainer lokal yang kompleks. Anda dapat menggunakan ECS Anywhere untuk menyebarkan dan menjalankan aplikasi kontainer di lingkungan lokal dan cloud. Ini menghilangkan kebutuhan tim Anda untuk mempelajari beberapa domain dan keahlian, atau untuk mengelola perangkat lunak yang kompleks sendiri.

Pola ini menunjukkan langkah-langkah untuk menyiapkan ECS Anywhere dengan menggunakan tumpukan [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).

## Prasyarat dan batasan
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. (Lihat [Menginstal, memperbarui, dan menghapus instalan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dalam dokumentasi AWS CLI.) 
+ AWS CDK Toolkit, diinstal dan dikonfigurasi. (Lihat [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) dalam dokumentasi AWS CDK, dan ikuti petunjuk untuk menginstal versi 2 secara global.)
+ Manajer paket node (npm), diinstal dan dikonfigurasi untuk AWS CDK di. TypeScript (Lihat [Mengunduh dan menginstal Node.js dan npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) di dokumentasi npm.)

**Batasan**
+ Untuk batasan dan pertimbangan, lihat [Instans eksternal (Amazon ECS Anywhere) di dokumentasi Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations).

**Versi produk**
+ AWS CDK Toolkit versi 2
+ npm versi 7.20.3 atau yang lebih baru
+ Node.js versi 16.6.1 atau yang lebih baru

## Arsitektur
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Tumpukan teknologi target**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Arsitektur target**

Diagram berikut menggambarkan arsitektur sistem tingkat tinggi pengaturan ECS Anywhere menggunakan AWS CDK dengan TypeScript, seperti yang diterapkan oleh pola ini.

1. Saat Anda menerapkan tumpukan AWS CDK, itu membuat CloudFormation tumpukan di AWS.

1.  CloudFormation Stack menyediakan kluster Amazon ECS dan sumber daya AWS terkait.

1. Untuk mendaftarkan instans eksternal dengan kluster Amazon ECS, Anda harus menginstal AWS Systems Manager Agent (Agen SSM) di mesin virtual (VM) dan mendaftarkan VM sebagai instans terkelola AWS Systems Manager. 

1. Anda juga harus menginstal agen penampung Amazon ECS dan Docker di VM Anda untuk mendaftarkannya sebagai instance eksternal dengan cluster Amazon ECS.

1. Ketika instans eksternal terdaftar dan dikonfigurasi dengan cluster Amazon ECS, instans dapat menjalankan beberapa kontainer di VM Anda, yang terdaftar sebagai instance eksternal.

![\[Pengaturan ECS Anywhere menggunakan AWS CDK dengan. TypeScript\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Otomatisasi dan skala**

[GitHub Repositori](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) yang disediakan dengan pola ini menggunakan AWS CDK sebagai alat infrastruktur sebagai kode (IAc) untuk membuat konfigurasi untuk arsitektur ini. AWS CDK membantu Anda mengatur sumber daya dan menyiapkan ECS Anywhere.

## Alat
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [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 dengan layanan AWS melalui perintah di shell baris perintah Anda.

**Kode**

Kode sumber untuk pola ini tersedia di GitHub, di repositori Sampel [CDK Amazon ECS Anywhere](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples). Untuk mengkloning dan menggunakan repositori, ikuti instruksi di bagian selanjutnya.

## Epik
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifikasi konfigurasi AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi versi AWS CDK. | Verifikasi versi AWS CDK Toolkit dengan menjalankan perintah berikut:<pre>cdk --version</pre>Pola ini membutuhkan AWS CDK versi 2. Jika Anda memiliki AWS CDK versi sebelumnya, ikuti petunjuk dalam [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) untuk memperbaruinya. | DevOps insinyur | 
| Siapkan kredensil AWS. | Untuk mengatur kredensil, jalankan `aws configure` perintah dan ikuti petunjuknya:<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]: <your-Region-name><br />Default output format [None]:</pre> | DevOps insinyur | 

### Bootstrap lingkungan AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode AWS CDK. | Kloning repositori GitHub kode untuk pola ini dengan menggunakan perintah:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps insinyur | 
| Bootstrap lingkungan. | Untuk menerapkan CloudFormation template AWS ke akun dan Wilayah AWS yang ingin Anda gunakan, jalankan perintah berikut:<pre>cdk bootstrap <account-number>/<Region></pre>Untuk informasi selengkapnya, lihat [Bootstrapping di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) AWS CDK. | DevOps insinyur | 

### Membangun dan menyebarkan proyek
<a name="build-and-deploy-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dependensi paket dan kompilasi TypeScript file. | Instal dependensi paket dan kompilasi TypeScript file dengan menjalankan perintah berikut:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Perintah ini menginstal semua paket dari repositori sampel. Jika Anda mendapatkan kesalahan tentang paket yang hilang, gunakan salah satu perintah berikut:<pre>$npm ci   </pre>— atau —<pre>$npm install -g @aws-cdk/<package_name></pre>Untuk informasi selengkapnya, lihat [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) dan [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) di dokumentasi npm. | DevOps insinyur | 
| Bangun proyek. | Untuk membangun kode proyek, jalankan perintah:<pre>npm run build</pre>Untuk informasi selengkapnya tentang membangun dan menerapkan project, lihat [aplikasi AWS CDK pertama Anda di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) AWS CDK. | DevOps insinyur | 
| Deploy proyek. | Untuk menyebarkan kode proyek, jalankan perintah:<pre>cdk deploy</pre> | DevOps insinyur | 
| Verifikasi pembuatan dan output tumpukan. | Buka CloudFormation konsol AWS di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/),**** dan pilih tumpukan. `EcsAnywhereStack` Tab **Output** menunjukkan perintah untuk dijalankan di VM eksternal Anda. | DevOps insinyur | 

### Menyiapkan mesin lokal
<a name="set-up-an-on-premises-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan VM Anda dengan menggunakan Vagrant. | Untuk tujuan demonstrasi, Anda dapat menggunakan [HashiCorp Vagrant](https://www.vagrantup.com/) untuk membuat VM. Vagrant adalah utilitas open-source untuk membangun dan memelihara lingkungan pengembangan perangkat lunak virtual portabel. Buat Vagrant VM dengan menjalankan `vagrant up` perintah dari direktori root tempat Vagrantfile ditempatkan. Untuk informasi lebih lanjut, lihat [dokumentasi Vagrant](https://www.vagrantup.com/docs/cli/up). | DevOps insinyur | 
| Daftarkan VM Anda sebagai instance eksternal. | 1. Masuk ke Vagrant VM dengan menggunakan perintah. `vagrant ssh` Untuk informasi lebih lanjut, lihat [dokumentasi Vagrant](https://www.vagrantup.com/docs/cli/ssh).2. Buat kode aktivasi dan ID yang dapat Anda gunakan untuk mendaftarkan VM Anda dengan AWS Systems Manager dan untuk mengaktifkan instans eksternal Anda. Output dari perintah ini termasuk `ActivationId` dan `ActivationCode` nilai: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Ekspor ID aktivasi dan nilai kode:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. Unduh skrip penginstalan ke server lokal atau VM Anda:<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre>5. Jalankan skrip penginstalan di server lokal atau VM Anda:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre>Untuk informasi selengkapnya tentang menyiapkan dan mendaftarkan VM Anda, lihat [Mendaftarkan instans eksternal ke klaster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) di dokumentasi Amazon ECS. | DevOps insinyur | 
| Verifikasi status ECS Anywhere dan VM eksternal. | Untuk memverifikasi apakah kotak virtual Anda terhubung ke bidang kontrol Amazon ECS dan berjalan, gunakan perintah berikut:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps insinyur | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan dan hapus sumber daya. | Setelah Anda menelusuri pola ini, Anda harus menghapus sumber daya yang Anda buat untuk menghindari biaya lebih lanjut. Untuk membersihkan, jalankan perintah:<pre>cdk destroy</pre> | DevOps insinyur | 

## Sumber daya terkait
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Dokumentasi Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demo Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Sampel Workshop Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)

# Memodernisasi aplikasi Formulir Web ASP.NET di AWS
<a name="modernize-asp-net-web-forms-applications-on-aws"></a>

*Vijai Anand Ramalingam dan Sreelaxmi Pai, Amazon Web Services*

## Ringkasan
<a name="modernize-asp-net-web-forms-applications-on-aws-summary"></a>

Pola ini menjelaskan langkah-langkah untuk memodernisasi aplikasi ASP.NET Web Forms lama dan monolit dengan mem-porting ke ASP.NET Core di AWS.

Porting aplikasi ASP.NET Web Forms ke ASP.NET Core membantu Anda memanfaatkan kinerja, penghematan biaya, dan ekosistem Linux yang kuat. Namun, ini bisa menjadi upaya manual yang signifikan. Dalam pola ini, aplikasi lama dimodernisasi secara bertahap dengan menggunakan pendekatan bertahap, dan kemudian dikemas di AWS Cloud.

Pertimbangkan aplikasi monolit warisan untuk keranjang belanja. Mari kita asumsikan bahwa itu dibuat sebagai aplikasi ASP.NET Web Forms dan terdiri dari halaman.aspx dengan file code-behind (). `aspx.cs` Proses modernisasi terdiri dari langkah-langkah berikut:

1. Pecahkan monolit menjadi layanan mikro dengan menggunakan pola dekomposisi yang sesuai. Untuk informasi selengkapnya, lihat panduan [Menguraikan monolit menjadi layanan mikro](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-decomposing-monoliths/) di situs web AWS Prescriptive Guidance.

1. Port aplikasi ASP.NET Web Forms (.NET Framework) lama Anda ke ASP.NET Core di.NET 5 atau yang lebih baru. Dalam pola ini, Anda menggunakan Porting Assistant untuk.NET untuk memindai aplikasi ASP.NET Web Forms Anda dan mengidentifikasi ketidakcocokan dengan ASP.NET Core. Ini mengurangi upaya porting manual.

1. Kembangkan kembali layer UI Formulir Web dengan menggunakan React. Pola ini tidak mencakup pembangunan kembali UI. Untuk petunjuk, lihat [Membuat Aplikasi React Baru](https://reactjs.org/docs/create-a-new-react-app.html) di dokumentasi React.

1. Kembangkan kembali file kode di belakang Formulir Web (antarmuka bisnis) sebagai API web ASP.NET Core. Pola ini menggunakan NDepend laporan untuk membantu mengidentifikasi file dan dependensi yang diperlukan.

1. Tingkatkan shared/common proyek, seperti Logika Bisnis dan Akses Data, dalam aplikasi lama Anda ke .NET 5 atau yang lebih baru dengan menggunakan Porting Assistant untuk.NET. 

1. Tambahkan layanan AWS untuk melengkapi aplikasi Anda. Misalnya, Anda dapat menggunakan [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) untuk memantau, menyimpan, dan mengakses log aplikasi Anda, dan [AWS Systems Manager](https://aws.amazon.com/systems-manager/) untuk menyimpan setelan aplikasi Anda.

1. Kontainerisasi aplikasi ASP.NET Core yang dimodernisasi. Pola ini membuat file Docker yang menargetkan Linux di Visual Studio dan menggunakan Docker Desktop untuk mengujinya secara lokal. Langkah ini mengasumsikan bahwa aplikasi lama Anda sudah berjalan di instans Windows Amazon Elastic Compute Cloud (Amazon) lokal atau Amazon EC2. Untuk informasi selengkapnya, lihat pola [Menjalankan container ASP.NET Core API Docker pada instance Amazon EC2 Linux](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html).

1. Terapkan aplikasi inti ASP.NET yang dimodernisasi ke Amazon Elastic Container Service (Amazon ECS). Pola ini tidak mencakup langkah penerapan. Untuk petunjuk, lihat [Amazon ECS Workshop](https://ecsworkshop.com/).

**catatan**  
Pola ini tidak mencakup pengembangan UI, modernisasi database, atau langkah penerapan kontainer.

## Prasyarat dan batasan
<a name="modernize-asp-net-web-forms-applications-on-aws-prereqs"></a>

**Prasyarat**
+ [Visual Studio](https://visualstudio.microsoft.com/downloads/) atau [Visual Studio Code](https://code.visualstudio.com/download), diunduh dan diinstal.
+ Akses ke akun AWS menggunakan AWS Management Console dan AWS Command Line Interface (AWS CLI) versi 2. (Lihat [petunjuk untuk mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).)
+ AWS Toolkit for Visual Studio ([lihat petunjuk penyiapan](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html)).
+ Docker Desktop, [diunduh](https://www.docker.com/products/docker-desktop) dan diinstal.
+ .NET SDK, [diunduh](https://download.visualstudio.microsoft.com/download/pr/4263dc3b-dc67-4f11-8d46-cc0ae86a232e/66782bbd04c53651f730b2e30a873f18/dotnet-sdk-5.0.203-win-x64.exe) dan diinstal.
+ NDepend alat, [diunduh](https://www.ndepend.com/download) dan diinstal. Untuk menginstal NDepend ekstensi untuk Visual Studio, jalankan `NDepend.VisualStudioExtension.Installer` ([lihat instruksi](https://www.ndepend.com/docs/getting-started-with-ndepend#Part1)). Anda dapat memilih Visual Studio 2019 atau 2022, tergantung pada kebutuhan Anda. 
+ Porting Assistant untuk.NET, [diunduh](https://aws.amazon.com/porting-assistant-dotnet/) dan diinstal.

## Arsitektur
<a name="modernize-asp-net-web-forms-applications-on-aws-architecture"></a>

**Memodernisasi aplikasi keranjang belanja**

Diagram berikut menggambarkan proses modernisasi untuk aplikasi keranjang belanja ASP.NET warisan.

![\[Memodernisasi aplikasi keranjang belanja lama\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/4367e259-9bb3-4eb6-a54d-1c1e2dece7d4.png)


**Arsitektur target**

Diagram berikut menggambarkan arsitektur aplikasi keranjang belanja modern di AWS. Web ASP.NET Core APIs dikerahkan ke cluster Amazon ECS. Layanan pencatatan dan konfigurasi disediakan oleh Amazon CloudWatch Logs dan AWS Systems Manager.

![\[Arsitektur target untuk aplikasi Formulir Web ASP.NET di AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/ed6d65ec-0dc9-43ab-ac07-1f172e089399.png)


## Alat
<a name="modernize-asp-net-web-forms-applications-on-aws-tools"></a>

**Layanan AWS**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang sangat skalabel dan cepat untuk menjalankan, menghentikan, dan mengelola kontainer di klaster. Anda dapat menjalankan tugas dan layanan Anda pada infrastruktur tanpa server yang dikelola oleh AWS Fargate. Atau, untuk kontrol lebih besar atas infrastruktur Anda, Anda dapat menjalankan tugas dan layanan Anda pada sekelompok EC2 instance yang Anda kelola.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) — Amazon CloudWatch Logs memusatkan log dari semua sistem, aplikasi, dan layanan AWS yang Anda gunakan. Anda dapat melihat dan memantau log, mencari kode atau pola kesalahan tertentu, memfilternya berdasarkan bidang tertentu, atau mengarsipkannya dengan aman untuk analisis masa depan.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ─ AWS Systems Manager adalah layanan AWS yang dapat Anda gunakan untuk 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. Systems Manager membantu Anda menjaga keamanan dan kepatuhan dengan memindai instans dan pelaporan terkelola Anda (atau mengambil tindakan korektif) pada setiap pelanggaran kebijakan yang terdeteksi.

**Alat**
+ [Visual Studio](https://visualstudio.microsoft.com/) atau [Visual Studio Code](https://code.visualstudio.com/) — Alat untuk membangun aplikasi.NET, web APIs, dan program lainnya.
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio — Ekstensi untuk Visual Studio yang membantu mengembangkan, men-debug, dan menyebarkan aplikasi.NET yang menggunakan layanan AWS.
+ [Docker Desktop](https://www.docker.com/products/docker-desktop) — Alat yang menyederhanakan pembuatan dan penerapan aplikasi kontainer.
+ [NDepend](https://www.ndepend.com/features/)— Analyzer yang memantau kode.NET untuk dependensi, masalah kualitas, dan perubahan kode.
+ [Porting Assistant for .NET](https://aws.amazon.com/porting-assistant-dotnet/) — Alat analisis yang memindai kode.NET untuk mengidentifikasi ketidakcocokan dengan.NET Core dan untuk memperkirakan upaya migrasi.

## Epik
<a name="modernize-asp-net-web-forms-applications-on-aws-epics"></a>

### Port aplikasi lama Anda ke .NET 5 atau versi yang lebih baru
<a name="port-your-legacy-application-to-net-5-or-later-version"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tingkatkan aplikasi lawasan.NET Framework Anda ke .NET 5. | Anda dapat menggunakan Porting Assistant untuk.NET untuk mengonversi aplikasi ASP.NET Web Forms lama Anda ke .NET 5 atau yang lebih baru. Ikuti petunjuk di [Porting Assistant untuk dokumentasi .NET](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-getting-started.html). | Pengembang aplikasi | 
| Hasilkan NDepend laporan. | Saat Anda memodernisasi aplikasi Formulir Web ASP.NET Anda dengan menguraikannya menjadi layanan mikro, Anda mungkin tidak memerlukan semua file.cs dari aplikasi lama. Anda dapat menggunakan NDepend untuk membuat laporan untuk file code-behind (.cs) apa pun, untuk mendapatkan semua penelepon dan pemanggil. Laporan ini membantu Anda mengidentifikasi dan hanya menggunakan file yang diperlukan dalam layanan mikro Anda.Setelah Anda menginstal NDepend (lihat bagian [Prasyarat](#modernize-asp-net-web-forms-applications-on-aws-prereqs)), buka solusi (file.sln) untuk aplikasi lama Anda di Visual Studio dan ikuti langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Proses ini menghasilkan laporan untuk file di belakang kode yang mencantumkan semua penelepon dan pemanggil. Untuk informasi selengkapnya tentang grafik ketergantungan, lihat [NDepend dokumentasi](https://www.ndepend.com/docs/visual-studio-dependency-graph). | Pengembang aplikasi | 
| Buat solusi.NET 5 baru. | Untuk membuat struktur.NET 5 (atau yang lebih baru) baru untuk web ASP.NET Core Anda yang dimodernisasi: APIs[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Untuk informasi selengkapnya tentang membuat proyek dan solusi, lihat [dokumentasi Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/creating-solutions-and-projects).Saat Anda membangun solusi dan memverifikasi fungsionalitas, Anda mungkin mengidentifikasi beberapa file tambahan yang akan ditambahkan ke solusi, selain file yang NDepend diidentifikasi. | Pengembang aplikasi | 

### Perbarui kode aplikasi Anda
<a name="update-your-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Implementasikan web APIs dengan ASP.NET Core. | *Mari kita asumsikan bahwa salah satu layanan mikro yang Anda identifikasi dalam aplikasi keranjang belanja monolit lama Anda adalah Produk.* Anda membuat proyek API web ASP.NET Core baru untuk *Produk* di epik sebelumnya. *Pada langkah ini, Anda mengidentifikasi dan memodernisasi semua formulir web (halaman.aspx) yang terkait dengan Produk.* Mari kita asumsikan bahwa *Produk* terdiri dari empat bentuk web, seperti yang diilustrasikan sebelumnya di bagian [Arsitektur](#modernize-asp-net-web-forms-applications-on-aws-architecture):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Anda harus menganalisis setiap formulir web, mengidentifikasi semua permintaan yang dikirim ke database untuk melakukan beberapa logika, dan mendapatkan tanggapan. Anda dapat mengimplementasikan setiap permintaan sebagai titik akhir API web. Mengingat bentuk webnya, *Produk* dapat memiliki titik akhir yang mungkin berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Seperti disebutkan sebelumnya, Anda juga dapat menggunakan kembali semua proyek lain yang Anda upgrade ke .NET 5, termasuk Logika Bisnis, Akses Data, dan shared/common proyek. | Pengembang aplikasi | 
| Konfigurasikan CloudWatch Log Amazon. | Anda dapat menggunakan [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) untuk memantau, menyimpan, dan mengakses log aplikasi Anda. Anda dapat mencatat data ke Amazon CloudWatch Logs menggunakan AWS SDK. Anda juga dapat mengintegrasikan aplikasi.NET dengan CloudWatch Log dengan menggunakan framework logging .NET populer seperti [NLog](https://www.nuget.org/packages/AWS.Logger.NLog/), [Log4Net, dan [ASP.NET](https://www.nuget.org/packages/AWS.Logger.AspNetCore/)](https://www.nuget.org/packages/AWS.Logger.Log4net/) Core logging framework.Untuk informasi selengkapnya tentang langkah ini, lihat posting blog [Amazon CloudWatch Logs dan .NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/). | Pengembang aplikasi | 
| Konfigurasikan AWS Systems Manager Parameter Store. | Anda dapat menggunakan [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) untuk menyimpan setelan aplikasi seperti string koneksi secara terpisah dari kode aplikasi Anda. NuGet Paket [Amazon.Extensions.Configuration. SystemsManager](https://www.nuget.org/packages/Amazon.Extensions.Configuration.SystemsManager/)menyederhanakan cara aplikasi Anda memuat pengaturan ini dari AWS Systems Manager Parameter Store ke dalam sistem konfigurasi.NET Core. Untuk informasi selengkapnya tentang langkah ini, lihat posting blog [penyedia konfigurasi.NET Core untuk AWS Systems Manager](https://aws.amazon.com/blogs/developer/net-core-configuration-provider-for-aws-systems-manager/). | Pengembang aplikasi | 

### Tambahkan otentikasi dan otorisasi
<a name="add-authentication-and-authorization"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan cookie bersama untuk otentikasi. | Memodernisasi aplikasi monolit warisan adalah proses berulang dan membutuhkan monolit dan versi modernnya untuk hidup berdampingan. Anda dapat menggunakan cookie bersama untuk mencapai otentikasi tanpa batas antara kedua versi. Aplikasi ASP.NET lama terus memvalidasi kredensi pengguna dan mengeluarkan cookie sementara aplikasi ASP.NET Core yang dimodernisasi memvalidasi cookie. Untuk instruksi dan kode sampel, lihat [ GitHub proyek sampel](https://github.com/aws-samples/dotnet-share-auth-cookie-between-monolith-and-modernized-apps). | Pengembang aplikasi | 

### Bangun dan jalankan kontainer secara lokal
<a name="build-and-run-the-container-locally"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat gambar Docker dengan menggunakan Visual Studio. | Pada langkah ini, Anda membuat file Docker dengan menggunakan Visual Studio for .NET Core web API.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Visual Studio membuat file Docker untuk proyek Anda. Untuk contoh file Docker, lihat [Visual Studio Container Tools for Docker](https://docs.microsoft.com/en-us/visualstudio/containers/overview) di situs web Microsoft. | Pengembang aplikasi | 
| Bangun dan jalankan wadah dengan menggunakan Docker Desktop. | Sekarang Anda dapat membangun, membuat dan menjalankan wadah di Docker Desktop.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html) | Pengembang aplikasi | 

## Sumber daya terkait
<a name="modernize-asp-net-web-forms-applications-on-aws-resources"></a>
+ [Jalankan wadah API Docker web ASP.NET Core di instans Amazon EC2 Linux](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html) (AWS Prescriptive Guidance)
+ [Lokakarya Amazon ECS](https://ecsworkshop.com/)
+ [Lakukan blue/green penerapan ECS dengan menggunakan CodeDeploy AWS (dokumentasi CloudFormation AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html)) CloudFormation 
+ [Memulai dengan NDepend](https://www.ndepend.com/docs/getting-started-with-ndepend) (NDepend dokumentasi)
+ [Asisten Porting untuk .NET](https://aws.amazon.com/porting-assistant-dotnet/)

## Informasi tambahan
<a name="modernize-asp-net-web-forms-applications-on-aws-additional"></a>

Tabel berikut memberikan contoh proyek sampel untuk aplikasi keranjang belanja lama dan proyek yang setara dalam aplikasi ASP.NET Core Anda yang dimodernisasi.

**Solusi warisan:**


| 
| 
| Nama proyek | Template proyek | Kerangka target | 
| --- |--- |--- |
| Antarmuka Bisnis  | Perpustakaan Kelas  | .NET Framework  | 
| BusinessLogic  | Perpustakaan Kelas  | .NET Framework  | 
| WebApplication  | Aplikasi Web Kerangka ASP.NET  | .NET Framework  | 
| UnitTests  | NUnit Proyek Uji  | .NET Framework  | 
| Dibagikan -> Umum  | Perpustakaan Kelas  | .NET Framework  | 
| Bersama -> Kerangka  | Perpustakaan Kelas  | .NET Framework  | 

**Solusi baru:**


| 
| 
| Nama proyek | Template proyek | Kerangka target | 
| --- |--- |--- |
| BusinessLogic  | Perpustakaan Kelas  | .NET 5.0  | 
| <WebAPI>  | API Web Inti ASP.NET  | .NET 5.0  | 
| <WebAPI>. UnitTests  | NUnit 3 Proyek Uji  | .NET 5.0  | 
| Dibagikan -> Umum  | Perpustakaan Kelas  | .NET 5.0  | 
| Bersama -> Kerangka  | Perpustakaan Kelas  | .NET 5.0  | 

# Orientasi penyewa dalam arsitektur SaaS untuk model silo menggunakan C\$1 dan AWS CDK
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk"></a>

*Tabby Ward, Susmitha Reddy Gankidi, dan Vijai Anand Ramalingam, Amazon Web Services*

## Ringkasan
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-summary"></a>

Aplikasi perangkat lunak sebagai layanan (SaaS) dapat dibangun dengan berbagai model arsitektur yang berbeda. *Model silo* mengacu pada arsitektur di mana penyewa disediakan sumber daya khusus.

Aplikasi SaaS mengandalkan model tanpa gesekan untuk memperkenalkan penyewa baru ke lingkungan mereka. Ini sering membutuhkan orkestrasi sejumlah komponen untuk berhasil menyediakan dan mengkonfigurasi semua elemen yang diperlukan untuk membuat penyewa baru. Proses ini, dalam arsitektur SaaS, disebut sebagai penyewa on-boarding. On-boarding harus sepenuhnya otomatis untuk setiap lingkungan SaaS dengan memanfaatkan infrastruktur sebagai kode dalam proses on-boarding Anda.

Pola ini memandu Anda melalui contoh pembuatan penyewa dan penyediaan infrastruktur dasar untuk penyewa di Amazon Web Services (AWS). Pola ini menggunakan C\$1 dan AWS Cloud Development Kit (AWS CDK).

Karena pola ini menciptakan alarm penagihan, sebaiknya gunakan tumpukan di US East (Virginia N.), atau us-east-1, Wilayah AWS. Untuk informasi selengkapnya, lihat [dokumentasi AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

## Prasyarat dan batasan
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-prereqs"></a>

**Prasyarat******
+ [Akun AWS](https://aws.amazon.com/account/) yang aktif.
+ Prinsipal AWS Identity and Access Management (IAM) dengan akses IAM yang memadai untuk membuat sumber daya AWS untuk pola ini. Untuk informasi selengkapnya, lihat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).
+ [Instal Amazon Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)) dan [konfigurasikan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) untuk melakukan penerapan AWS CDK.
+ [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) diunduh dan diinstal atau [Visual Studio Code](https://code.visualstudio.com/download) diunduh dan diinstal.
+ [AWS Toolkit untuk penyiapan AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) Studio.
+ [.NET Core 3.1 atau yang lebih baru](https://dotnet.microsoft.com/download/dotnet-core/3.1) (diperlukan untuk aplikasi CDK C\$1 AWS)
+ [Amazon.Lambda.Tools diinstal.](https://github.com/aws/aws-extensions-for-dotnet-cli#aws-lambda-amazonlambdatools)

**Keterbatasan******
+ AWS CDK menggunakan [AWS CloudFormation](https://aws.amazon.com/cloudformation/), sehingga aplikasi AWS CDK tunduk pada kuota CloudFormation layanan. Untuk informasi selengkapnya, lihat [ CloudFormation kuota AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html). 
+  CloudFormation Tumpukan penyewa dibuat dengan peran CloudFormation `infra-cloudformation-role` layanan dengan karakter wildcard pada tindakan (`sns`\$1 dan`sqs*`) tetapi dengan sumber daya yang dikunci ke awalan. `tenant-cluster` Untuk kasus penggunaan produksi, evaluasi pengaturan ini dan berikan hanya akses yang diperlukan ke peran layanan ini. Fungsi `InfrastructureProvision` Lambda juga menggunakan karakter wildcard (`cloudformation*`) untuk menyediakan CloudFormation tumpukan tetapi dengan sumber daya yang dikunci ke awalan. `tenant-cluster`
+ Contoh docker build kode ini digunakan `--platform=linux/amd64` untuk memaksa gambar `linux/amd64` berbasis. Ini untuk memastikan bahwa artefak gambar akhir akan cocok untuk Lambda, yang secara default menggunakan arsitektur x86-64. Jika Anda perlu mengubah arsitektur Lambda target, pastikan untuk mengubah kode Dockerfiles dan AWS CDK. Untuk informasi selengkapnya, lihat posting blog [Memigrasi fungsi AWS Lambda ke prosesor AWS Graviton2 berbasis ARM](https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-to-arm-based-aws-graviton2-processors/).
+ Proses penghapusan tumpukan tidak akan membersihkan CloudWatch Log (grup log dan log) yang dihasilkan oleh tumpukan. Anda harus membersihkan log secara manual melalui konsol AWS Management CloudWatch Console Amazon atau melalui API.

Pola ini diatur sebagai contoh. Untuk penggunaan produksi, evaluasi pengaturan berikut dan buat perubahan berdasarkan kebutuhan bisnis Anda:
+ Bucket [AWS Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) dalam contoh ini tidak mengaktifkan versi untuk kesederhanaan. Evaluasi dan perbarui pengaturan sesuai kebutuhan.
+ Contoh ini menyiapkan titik akhir [Amazon API Gateway](https://aws.amazon.com/api-gateway/) REST API tanpa autentikasi, otorisasi, atau pembatasan untuk kesederhanaan. Untuk penggunaan produksi, kami merekomendasikan mengintegrasikan sistem dengan infrastruktur keamanan bisnis. Evaluasi pengaturan ini dan tambahkan pengaturan keamanan yang diperlukan sesuai kebutuhan.
+ Untuk contoh infrastruktur penyewa ini, [Amazon Simple Notification Service (Amazon SNS) dan Amazon](https://aws.amazon.com/sns/) [Simple Queue Service (Amazon SQS) hanya memiliki pengaturan minimum](https://aws.amazon.com/sqs/). [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) [untuk setiap penyewa terbuka untuk layanan [Amazon](https://aws.amazon.com/cloudwatch/) dan Amazon CloudWatch SNS di akun untuk dikonsumsi berdasarkan kebijakan kunci AWS KMS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html#compatibility-with-aws-services) Pengaturan hanya contoh placeholder. Sesuaikan pengaturan sesuai kebutuhan berdasarkan kasus penggunaan bisnis Anda.
+ Seluruh penyiapan, yang mencakup tetapi tidak terbatas pada titik akhir API dan penyediaan dan penghapusan penyewa backend dengan menggunakan AWS CloudFormation, hanya mencakup kasus happy path dasar. Evaluasi dan perbarui pengaturan dengan logika coba lagi yang diperlukan, logika penanganan kesalahan tambahan, dan logika keamanan berdasarkan kebutuhan bisnis Anda.
+ Kode contoh diuji dengan up-to-date [cdk-nag](https://github.com/cdklabs/cdk-nag) untuk memeriksa kebijakan pada saat penulisan ini. Kebijakan baru mungkin ditegakkan di masa depan. Kebijakan baru ini mungkin mengharuskan Anda untuk memodifikasi tumpukan secara manual berdasarkan rekomendasi sebelum tumpukan dapat diterapkan. Tinjau kode yang ada untuk memastikan bahwa itu selaras dengan kebutuhan bisnis Anda.
+ Kode bergantung pada AWS CDK untuk menghasilkan akhiran acak alih-alih mengandalkan nama fisik statis yang ditetapkan untuk sebagian besar sumber daya yang dibuat. Pengaturan ini untuk memastikan bahwa sumber daya ini unik dan tidak bertentangan dengan tumpukan lain. Untuk informasi selengkapnya, lihat [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources_physical_names). Sesuaikan ini berdasarkan kebutuhan bisnis Anda.
+ [Contoh kode ini mengemas artefak .NET Lambda ke dalam gambar berbasis Docker dan berjalan dengan runtime image Container yang disediakan Lambda.](https://docs.aws.amazon.com/lambda/latest/dg/csharp-image.html) Runtime image container memiliki keunggulan untuk mekanisme transfer dan penyimpanan standar (pendaftar kontainer) dan lingkungan pengujian lokal yang lebih akurat (melalui image container). Anda dapat mengganti proyek untuk menggunakan [runtime .NET yang disediakan Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) untuk mengurangi waktu pembuatan gambar Docker, tetapi Anda kemudian perlu mengatur mekanisme transfer dan penyimpanan dan memastikan bahwa pengaturan lokal cocok dengan pengaturan Lambda. Sesuaikan kode agar selaras dengan persyaratan bisnis pengguna.

**Versi produk**
+ AWS CDK versi 2.45.0 atau yang lebih baru
+ Studio Visual 2022

## Arsitektur
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-architecture"></a>

**Tumpukan teknologi**
+ Amazon API Gateway
+ AWS CloudFormation
+ Amazon CloudWatch
+ Amazon DynamoDB
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ AWS Lambda
+ Amazon S3
+ Amazon SNS
+ Amazon SQS

**Arsitektur **

Diagram berikut menunjukkan aliran pembuatan tumpukan penyewa. *Untuk informasi selengkapnya tentang tumpukan teknologi pesawat kontrol dan penyewa, lihat bagian Informasi tambahan.*

![\[Alur kerja untuk membuat penyewa dan menyediakan infrastruktur dasar untuk penyewa di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5baef800-fe39-4eb8-b11d-2c23eb3175fc/images/0b579484-b87c-4acb-8c60-8c33c18370e3.png)


**Aliran pembuatan tumpukan penyewa**

1. Pengguna mengirimkan permintaan POST API dengan payload penyewa baru (nama penyewa, deskripsi penyewa) di JSON ke REST API yang dihosting oleh Amazon API Gateway. API Gateway memproses permintaan dan meneruskannya ke fungsi backend Lambda Tenant On-boarding. Dalam contoh ini, tidak ada otorisasi atau otentikasi. Dalam pengaturan produksi, API ini harus diintegrasikan dengan sistem keamanan infrastruktur SaaS.

1. Fungsi Tenant On-boarding memverifikasi permintaan. Kemudian mencoba untuk menyimpan catatan penyewa, yang mencakup nama penyewa, pengidentifikasi unik universal penyewa (UUID) yang dihasilkan, dan deskripsi penyewa, ke dalam tabel On-boarding Amazon DynamoDB Tenant. 

1. Setelah DynamoDB menyimpan catatan, aliran DynamoDB memulai fungsi Infrastruktur Penyewa Lambda hilir.

1. Fungsi Lambda Infrastruktur Penyewa bertindak berdasarkan aliran DynamoDB yang diterima. Jika aliran untuk acara INSERT, fungsi menggunakan NewImage bagian aliran (catatan pembaruan terbaru, bidang Nama Penyewa) untuk memanggil CloudFormation untuk membuat infrastruktur penyewa baru menggunakan templat yang disimpan di bucket S3. CloudFormation Template membutuhkan parameter Nama Penyewa. 

1. AWS CloudFormation membuat infrastruktur penyewa berdasarkan CloudFormation template dan parameter input.

1. Setiap pengaturan infrastruktur penyewa memiliki CloudWatch alarm, alarm penagihan, dan acara alarm.

1. Acara alarm menjadi pesan ke topik SNS, yang dienkripsi oleh kunci AWS KMS penyewa.

1. Topik SNS meneruskan pesan alarm yang diterima ke antrean SQS, yang dienkripsi oleh AWS KMS penyewa untuk kunci enkripsi.

Sistem lain dapat diintegrasikan dengan Amazon SQS untuk melakukan tindakan berdasarkan pesan dalam antrian. Dalam contoh ini, untuk menjaga kode generik, pesan masuk tetap dalam antrian dan memerlukan penghapusan manual.

**Aliran penghapusan tumpukan penyewa**

1. Pengguna mengirimkan permintaan DELETE API dengan payload penyewa baru (nama penyewa, deskripsi penyewa) di JSON ke REST API yang dihosting oleh Amazon API Gateway, yang akan memproses permintaan dan meneruskan ke fungsi Tenant On-boarding. Dalam contoh ini, tidak ada otorisasi atau otentikasi. Dalam pengaturan produksi, API ini akan diintegrasikan dengan sistem keamanan infrastruktur SaaS.

1. Fungsi Tenant On-Boarding akan memverifikasi permintaan dan kemudian mencoba menghapus catatan penyewa (nama penyewa) dari meja On-Boarding Penyewa. 

1. Setelah DynamoDB berhasil menghapus catatan (catatan ada di tabel dan dihapus), aliran DynamoDB memulai fungsi Infrastruktur Penyewa Lambda hilir.

1. Fungsi Lambda Infrastruktur Penyewa bertindak berdasarkan catatan aliran DynamoDB yang diterima. Jika aliran untuk acara REMOVE, fungsi menggunakan OldImage bagian rekaman (informasi rekaman dan bidang Nama Penyewa, sebelum perubahan terbaru, yang dihapus) untuk memulai penghapusan tumpukan yang ada berdasarkan informasi rekaman tersebut.

1. AWS CloudFormation menghapus tumpukan penyewa target sesuai dengan input.

## Alat
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-tools"></a>

**Layanan AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS CDK Toolkit adalah kit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi AWS Cloud Development Kit (AWS CDK).
+ [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 dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah 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 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.
+ [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.
+ [Amazon Simple Queue Service (Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio adalah plugin untuk lingkungan pengembangan terintegrasi Visual Studio (IDE). Toolkit for Visual Studio mendukung pengembangan, debugging, dan penerapan aplikasi.NET yang menggunakan layanan AWS.

**Alat-alat lainnya**
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022) adalah IDE yang mencakup kompiler, alat penyelesaian kode, desainer grafis, dan fitur lain yang mendukung pengembangan perangkat lunak.

**Kode**

Kode untuk pola ini ada di [orientasi Tenant di SaaS Architecture for Silo Model APG Example](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example) repository.

## Epik
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-epics"></a>

### Mengatur AWS CDK
<a name="set-up-aws-cdk"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi instalasi Node.js. | Untuk memverifikasi bahwa Node.js diinstal pada mesin lokal Anda, jalankan perintah berikut.<pre>node --version</pre> | Administrator AWS, AWS DevOps | 
| Instal AWS CDK Toolkit. | Untuk menginstal AWS CDK Toolkit di komputer lokal Anda, jalankan perintah berikut.<pre>npm install -g aws-cdk</pre>Jika npm tidak diinstal, Anda dapat menginstalnya dari [situs Node.js](https://nodejs.org/en/download/package-manager/). | Administrator AWS, AWS DevOps | 
| Verifikasi versi AWS CDK Toolkit. | Untuk memverifikasi bahwa versi AWS CDK Toolkit diinstal dengan benar di mesin Anda, jalankan perintah berikut.  <pre>cdk --version</pre> | Administrator AWS, AWS DevOps | 

### Tinjau kode untuk pesawat kontrol orientasi penyewa
<a name="review-the-code-for-the-tenant-onboarding-control-plane"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Kloning [repositori](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example), dan arahkan ke folder. `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`Di Visual Studio 2022, buka `\src\TenantOnboardingInfra.sln` solusinya. Buka `TenantOnboardingInfraStack.cs` file dan tinjau kodenya.Sumber daya berikut dibuat sebagai bagian dari tumpukan ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Administrator AWS, AWS DevOps | 
| Tinjau CloudFormation template. | Di `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\template` folder, buka`infra.yaml`, dan tinjau CloudFormation template. Template ini akan terhidrasi dengan nama penyewa diambil dari tabel DynamoDB orientasi penyewa.Template menyediakan infrastruktur khusus penyewa. Dalam contoh ini, ia menyediakan kunci AWS KMS, Amazon SNS, Amazon SQS, dan alarm. CloudWatch  | Pengembang aplikasi, AWS DevOps | 
| Tinjau fungsi orientasi penyewa. | Buka`Function.cs`, dan tinjau kode untuk fungsi orientasi penyewa, yang dibuat dengan templat Visual Studio AWS Lambda Project (.NET Core- C\$1) dengan cetak biru .NET 6 (Gambar Kontainer).Buka`Dockerfile`, dan tinjau kodenya. `Dockerfile`Ini adalah file teks yang terdiri dari instruksi untuk membangun gambar wadah Lambda.Perhatikan bahwa NuGet paket-paket berikut ditambahkan sebagai dependensi ke proyek: `TenantOnboardingFunction`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Pengembang aplikasi, AWS DevOps | 
| Tinjau InfraProvisioning fungsi Penyewa. | Navigasi ke `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\InfraProvisioningFunction`.Buka`Function.cs`, dan tinjau kode untuk fungsi penyediaan infrastruktur penyewa, yang dibuat dengan templat Visual Studio AWS Lambda Project (.NET Core- C\$1) dengan cetak biru .NET 6 (Gambar Kontainer).Buka`Dockerfile`, dan tinjau kodenya. Perhatikan bahwa NuGet paket-paket berikut ditambahkan sebagai dependensi ke proyek: `InfraProvisioningFunction`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Pengembang aplikasi, AWS DevOps | 

### Menerapkan sumber daya AWS
<a name="deploy-the-aws-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bangun solusinya. | Untuk membangun solusi, lakukan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Pastikan Anda memperbarui `Amazon.CDK.Lib NuGet` paket ke versi terbaru dalam `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\TenantOnboardingInfra` proyek sebelum Anda membuat solusi. | Pengembang aplikasi | 
| Bootstrap lingkungan AWS CDK. | Buka prompt perintah Windows dan arahkan ke folder root aplikasi AWS CDK tempat `cdk.json` file tersedia (`\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`). Jalankan perintah berikut untuk bootstrap.<pre>cdk bootstrap </pre>Jika Anda telah membuat profil AWS untuk kredensialnya, gunakan perintah dengan profil Anda.<pre>cdk bootstrap --profile <profile name><br />  </pre> | Administrator AWS, AWS DevOps | 
| Buat daftar tumpukan AWS CDK. | Untuk daftar semua tumpukan yang akan dibuat sebagai bagian dari proyek ini, jalankan perintah berikut.<pre>cdk ls<br />cdk ls --profile <profile name></pre>Jika Anda telah membuat profil AWS untuk kredensialnya, gunakan perintah dengan profil Anda.<pre>cdk ls --profile <profile name></pre> | Administrator AWS, AWS DevOps | 
| Tinjau sumber daya AWS mana yang akan dibuat. | Untuk meninjau semua sumber daya AWS yang akan dibuat sebagai bagian dari proyek ini, jalankan perintah berikut.<pre>cdk diff</pre>Jika Anda telah membuat profil AWS untuk kredensialnya, gunakan perintah dengan profil Anda.<pre>cdk diff --profile <profile name></pre> | Administrator AWS, AWS DevOps | 
| Terapkan semua sumber daya AWS dengan menggunakan AWS CDK. | Untuk menerapkan semua sumber daya AWS, jalankan perintah berikut.<pre>cdk deploy --all --require-approval never</pre>Jika Anda telah membuat profil AWS untuk kredensialnya, gunakan perintah dengan profil Anda.<pre>cdk deploy --all --require-approval never --profile <profile name></pre>Setelah penerapan selesai, salin URL API dari bagian output di prompt perintah, yang ditampilkan dalam contoh berikut.<pre>Outputs:<br />TenantOnboardingInfraStack.TenantOnboardingAPIEndpoint42E526D7 = https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/</pre> | Administrator AWS, AWS DevOps | 

### Verifikasi fungsionalitas
<a name="verify-the-functionality"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat penyewa baru. | Untuk membuat penyewa baru, kirim permintaan curl berikut.<pre>curl -X POST <TenantOnboardingAPIEndpoint* from CDK Output>tenant -d '{"Name":"Tenant123", "Description":"Stack for Tenant123"}'</pre>Ubah pemegang tempat `<TenantOnboardingAPIEndpoint* from CDK Output>` ke nilai aktual dari AWS CDK, seperti yang ditunjukkan pada contoh berikut.<pre>curl -X POST https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant -d '{"Name":"Tenant123", "Description":"test12"}'</pre>Contoh berikut menunjukkan output.<pre>{"message": "A new tenant added - 5/4/2022 7:11:30 AM"}</pre> | Pengembang aplikasi, administrator AWS, AWS DevOps | 
| Verifikasi detail penyewa yang baru dibuat di DynamoDB. | Untuk memverifikasi detail penyewa yang baru dibuat di DynamoDB, lakukan langkah-langkah berikut.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Pengembang aplikasi, administrator AWS, AWS DevOps | 
| Verifikasi pembuatan tumpukan untuk penyewa baru. | Verifikasi bahwa tumpukan baru berhasil dibuat dan disediakan dengan infrastruktur untuk penyewa yang baru dibuat sesuai dengan template. CloudFormation [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Pengembang aplikasi, administrator AWS, AWS DevOps | 
| Hapus tumpukan penyewa. | Untuk menghapus tumpukan penyewa, kirim permintaan curl berikut.<pre>curl -X DELETE <TenantOnboardingAPIEndpoint* from CDK Output>tenant/<Tenant Name from previous step></pre>Ubah pemegang tempat `<TenantOnboardingAPIEndpoint* from CDK Output>` ke nilai aktual dari AWS CDK, dan ubah `<Tenant Name from previous step>` ke nilai aktual dari langkah pembuatan penyewa sebelumnya, seperti yang ditunjukkan pada contoh berikut.<pre>curl -X DELETE https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant/Tenant123</pre>Contoh berikut menunjukkan output.<pre>{"message": "Tenant destroyed - 5/4/2022 7:14:48 AM"}</pre> | Pengembang aplikasi, AWS DevOps, administrator AWS | 
| Verifikasi penghapusan tumpukan untuk penyewa yang ada. | Untuk memverifikasi bahwa tumpukan penyewa yang ada telah dihapus, lakukan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Pengembang aplikasi, administrator AWS, AWS DevOps | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hancurkan lingkungan. | Sebelum tumpukan dibersihkan, pastikan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Setelah pengujian selesai, AWS CDK dapat digunakan untuk menghancurkan semua tumpukan dan sumber daya terkait dengan menjalankan perintah berikut.<pre>cdk destroy --all;</pre>Jika Anda membuat profil AWS untuk kredensialnya, gunakan profil tersebut.Konfirmasikan prompt penghapusan tumpukan untuk menghapus tumpukan. | Administrator AWS, AWS DevOps | 
| Bersihkan CloudWatch Log Amazon. | Proses penghapusan tumpukan tidak akan membersihkan CloudWatch Log (grup log dan log) yang dihasilkan oleh tumpukan. Bersihkan CloudWatch sumber daya secara manual dengan menggunakan CloudWatch konsol atau API. | Pengembang aplikasi, AWS DevOps, administrator AWS | 

## Sumber daya terkait
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-resources"></a>
+ [Workshop AWS CDK .NET](https://cdkworkshop.com/40-dotnet.html)
+ [Bekerja dengan AWS CDK di C \$1](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-csharp.html)
+ [CDK .NET Referensi](https://docs.aws.amazon.com/cdk/api/v2/dotnet/api/index.html)

## Informasi tambahan
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-additional"></a>

**Tumpukan teknologi bidang kontrol**

Kode CDK yang ditulis dalam.NET digunakan untuk menyediakan infrastruktur bidang kontrol, yang terdiri dari sumber daya berikut:

1. **API Gateway**

   Berfungsi sebagai titik masuk REST API untuk tumpukan bidang kontrol.

1. **Fungsi Lambda on-boarding penyewa**

   Fungsi Lambda ini diprakarsai oleh API Gateway menggunakan metode m.

   Permintaan API metode POST menghasilkan (`tenant name`,`tenant description`) yang dimasukkan ke dalam tabel DynamoDB`Tenant Onboarding`.

   Dalam contoh kode ini, nama penyewa juga digunakan sebagai bagian dari nama tumpukan penyewa dan nama sumber daya dalam tumpukan itu. Ini untuk membuat sumber daya ini lebih mudah diidentifikasi. Nama penyewa ini harus unik di seluruh pengaturan untuk menghindari konflik atau kesalahan. Pengaturan validasi masukan terperinci dijelaskan dalam dokumentasi [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dan bagian *Batasan*.

   Proses persistensi ke tabel DynamoDB akan berhasil hanya jika nama penyewa tidak digunakan dalam catatan lain dalam tabel.

   Nama penyewa dalam hal ini adalah kunci partisi untuk tabel ini, karena hanya kunci partisi yang dapat digunakan sebagai ekspresi `PutItem` kondisi.

   Jika nama penyewa tidak pernah direkam sebelumnya, catatan akan berhasil disimpan ke dalam tabel.

   Namun, jika nama penyewa sudah digunakan oleh catatan yang ada dalam tabel, operasi akan gagal dan memulai pengecualian DynamoDB. `ConditionalCheckFailedException` Pengecualian akan digunakan untuk mengembalikan pesan kegagalan (`HTTP BadRequest`) yang menunjukkan bahwa nama penyewa sudah ada.

   Permintaan `DELETE` metode API akan menghapus catatan untuk nama penyewa tertentu dari tabel `Tenant Onboardin` g.

   Penghapusan catatan DynamoDB dalam contoh ini akan berhasil bahkan jika catatan tidak ada.

   Jika catatan target ada dan dihapus, itu akan membuat catatan aliran DynamoDB. Jika tidak, tidak ada catatan hilir yang akan dibuat.

1. **Penyewa on-boarding DynamoDB, dengan Amazon DynamoDB Streams diaktifkan**

   Ini mencatat informasi metadata penyewa, dan penyimpanan atau penghapusan catatan apa pun akan mengirim aliran hilir ke fungsi Lambda. `Tenant Infrastructure` 

1. **Infrastruktur penyewa fungsi Lambda**

   Fungsi Lambda ini diprakarsai oleh catatan aliran DynamoDB dari langkah sebelumnya. Jika record adalah untuk suatu `INSERT` peristiwa, ia memanggil AWS CloudFormation untuk membuat infrastruktur penyewa baru dengan CloudFormation template yang disimpan dalam bucket S3. Jika catatan untuk`REMOVE`, itu memulai penghapusan tumpukan yang ada berdasarkan bidang rekaman aliran. `Tenant Name`

1. **Ember S3**

   Ini untuk menyimpan CloudFormation template.

1. **Peran IAM untuk setiap fungsi Lambda dan peran layanan untuk CloudFormation**

   Setiap fungsi Lambda memiliki peran IAM yang unik dengan izin [hak istimewa paling sedikit untuk mencapai tugasnya](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Misalnya, fungsi `Tenant On-boarding` Lambda memiliki read/write akses ke DynamoDB, dan fungsi `Tenant Infrastructure` Lambda hanya dapat membaca aliran DynamoDB.

   Peran CloudFormation layanan khusus dibuat untuk penyediaan tumpukan penyewa. Peran layanan ini berisi izin tambahan untuk penyediaan CloudFormation tumpukan (misalnya, kunci AWS KMS). Ini membagi peran antara Lambda CloudFormation dan untuk menghindari semua izin pada satu peran (peran Lambda Infrastruktur).

   Izin yang memungkinkan tindakan kuat (seperti membuat dan menghapus CloudFormation tumpukan) dikunci dan hanya diizinkan pada sumber daya yang dimulai. `tenantcluster-` Pengecualiannya adalah AWS KMS, karena konvensi penamaan sumber dayanya. Nama penyewa yang dicerna dari API akan ditambahkan `tenantcluster-` bersama dengan pemeriksaan validasi lainnya (alfanumerik dengan tanda hubung saja, dan dibatasi hingga kurang dari 30 karakter agar sesuai dengan sebagian besar penamaan sumber daya AWS). Ini memastikan bahwa nama penyewa tidak akan secara tidak sengaja mengakibatkan gangguan tumpukan infrastruktur inti atau sumber daya.

**Tumpukan teknologi penyewa**

 CloudFormation Template disimpan dalam ember S3. [Template menyediakan kunci AWS KMS khusus penyewa, CloudWatch alarm, topik SNS, antrian SQS, dan kebijakan SQS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html)

Kunci AWS KMS digunakan untuk enkripsi data oleh Amazon SNS dan Amazon SQS untuk pesan mereka. Praktik keamanan untuk [AwsSolutions- SNS2 dan AwsSolutions - SQS2](https://github.com/cdklabs/cdk-nag/blob/main/RULES.md) merekomendasikan agar Anda mengatur Amazon SNS dan Amazon SQS dengan enkripsi. Namun, CloudWatch alarm tidak berfungsi dengan Amazon SNS saat menggunakan kunci yang dikelola AWS, jadi Anda harus menggunakan kunci yang dikelola pelanggan dalam kasus ini. Untuk informasi selengkapnya, lihat [Pusat Pengetahuan AWS](https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/).

Kebijakan SQS digunakan pada antrean Amazon SQS untuk memungkinkan topik SNS yang dibuat mengirimkan pesan ke antrian. Tanpa kebijakan SQS, akses akan ditolak. Untuk informasi selengkapnya, lihat [dokumentasi Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html#SendMessageToSQS.sqs.permissions).

# Menguraikan monolit menjadi layanan mikro dengan menggunakan CQRS dan sumber acara
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing"></a>

*Rodolfo Jr. Cerrada, Dmitry Gulin, dan Tabby Ward, Amazon Web* Services

## Ringkasan
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-summary"></a>

Pola ini menggabungkan dua pola, menggunakan pola pemisahan tanggung jawab permintaan perintah (CQRS) dan pola sumber peristiwa. Pola CQRS memisahkan tanggung jawab model perintah dan kueri. Pola sumber acara memanfaatkan komunikasi berbasis peristiwa asinkron untuk meningkatkan pengalaman pengguna secara keseluruhan.

Anda dapat menggunakan layanan CQRS dan Amazon Web Services (AWS) untuk memelihara dan menskalakan setiap model data secara independen sambil memfaktorkan ulang aplikasi monolit Anda ke dalam arsitektur layanan mikro. Kemudian Anda dapat menggunakan pola sumber acara untuk menyinkronkan data dari database perintah ke database kueri.

Pola ini menggunakan kode contoh yang menyertakan file solusi (\$1.sln) yang dapat Anda buka menggunakan versi terbaru Visual Studio. Contoh ini berisi kode Reward API untuk menampilkan cara kerja CQRS dan sumber acara di aplikasi AWS tanpa server dan tradisional atau lokal.

Untuk mempelajari lebih lanjut tentang CQRS dan sumber acara, lihat bagian [Informasi tambahan](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

## Prasyarat dan batasan
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Amazon CloudWatch
+ Tabel Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Kunci akses AWS Identity and Access Management (IAM) dan kunci rahasia; untuk informasi selengkapnya, lihat video di bagian *Sumber daya terkait*
+ AWS Lambda
+ Keakraban dengan Visual Studio
+ *Keakraban dengan AWS Toolkit for Visual Studio; untuk informasi selengkapnya, lihat video demo *AWS Toolkit for Visual Studio di bagian* Sumber daya terkait*

**Versi produk**
+ [Edisi Komunitas Visual Studio 2019](https://visualstudio.microsoft.com/downloads/).
+ [AWS Toolkit for Visual Studio 2019](https://aws.amazon.com/visualstudio/).
+ .NET Inti 3.1. Komponen ini merupakan opsi dalam instalasi Visual Studio. Untuk menyertakan .NET Core selama instalasi, pilih **NET Core cross-platform development**.

**Batasan**
+ Kode contoh untuk aplikasi lokal tradisional (ASP.NET Core Web API dan objek akses data) tidak disertakan dengan database. Namun, ia datang dengan objek `CustomerData` dalam memori, yang bertindak sebagai database tiruan. Kode yang diberikan cukup bagi Anda untuk menguji polanya.

## Arsitektur
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-architecture"></a>

**Tumpukan teknologi sumber**
+ Proyek API Web Inti ASP.NET
+ Server Web IIS
+ Objek akses data
+ Model CRUD

**Arsitektur sumber**

Dalam arsitektur sumber, model CRUD berisi antarmuka perintah dan kueri dalam satu aplikasi. Misalnya kode, lihat `CustomerDAO.cs` (terlampir).

![\[Koneksi antara aplikasi, antarmuka layanan, model CRUD pelanggan, dan database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1cd3a84c-12c7-4306-99aa-23f2c53d3cd3.png)


**Tumpukan teknologi target**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ AWS Lambda
+ (Opsional) Amazon API Gateway
+ (Opsional) Layanan Pemberitahuan Sederhana Amazon (Amazon SNS)

**Arsitektur target**

Dalam arsitektur target, antarmuka perintah dan kueri dipisahkan. Arsitektur yang ditunjukkan dalam diagram berikut dapat diperluas dengan API Gateway dan Amazon SNS. Untuk informasi selengkapnya, lihat bagian [Informasi tambahan](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

![\[Aplikasi yang terhubung dengan layanan mikro Customer Command dan Customer Query tanpa server.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1c665697-e3ac-4ef4-98d0-86c2cbf164c1.png)


1. Fungsi Command Lambda melakukan operasi tulis, seperti membuat, memperbarui, atau menghapus, pada database.

1. Fungsi Query Lambda melakukan operasi baca, seperti dapatkan atau pilih, pada database.

1. Fungsi Lambda ini memproses aliran DynamoDB dari database Command dan memperbarui database Query untuk perubahan.

## Alat
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-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.
+ [Amazon DynamoDB Streams - DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) menangkap urutan urutan waktu modifikasi tingkat item dalam tabel DynamoDB apa pun. Kemudian menyimpan informasi ini dalam log hingga 24 jam. Enkripsi saat istirahat mengenkripsi data dalam DynamoDB streams.
+ [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. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
+ [AWS Management Console](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/learn-whats-new.html) — AWS Management Console adalah aplikasi web yang terdiri dari koleksi luas konsol layanan untuk mengelola layanan AWS.
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/) — Visual Studio 2019 adalah lingkungan pengembangan terintegrasi (IDE). Edisi Komunitas gratis untuk kontributor sumber terbuka. Dalam pola ini, Anda akan menggunakan Visual Studio 2019 Community Edition untuk membuka, mengkompilasi, dan menjalankan kode contoh. Untuk melihat saja, Anda dapat menggunakan editor teks atau [Kode Visual Studio](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html).
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio — AWS Toolkit for Visual Studio adalah plugin untuk Visual Studio IDE. AWS Toolkit for Visual Studio memudahkan Anda mengembangkan, men-debug, dan menerapkan aplikasi.NET yang menggunakan layanan AWS.

**Kode**

Kode contoh terlampir. Untuk petunjuk tentang penerapan kode contoh, lihat bagian *Epik*.

## Epik
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-epics"></a>

### Buka dan bangun solusinya
<a name="open-and-build-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka solusinya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi | 
| Bangun solusinya. | Buka menu konteks (klik kanan) untuk solusinya, lalu pilih **Build Solution**. Ini akan membangun dan mengkompilasi semua proyek dalam solusi. Itu harus berhasil dikompilasi.Visual Studio Solution Explorer harus menunjukkan struktur direktori.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi | 

### Membangun tabel DynamoDB
<a name="build-the-dynamodb-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Berikan kredensyal. | Jika Anda belum memiliki kunci akses, lihat video di bagian *Sumber daya terkait*.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi, Insinyur data, DBA | 
| Bangun proyek. | **Untuk membangun proyek, buka menu konteks (klik kanan) untuk proyek **AWS.apg.cqrses.Build**, lalu pilih Build.** | Pengembang aplikasi, Insinyur data, DBA | 
| Bangun dan isi tabel. | ****Untuk membuat tabel dan mengisinya dengan data benih, buka menu konteks (klik kanan) untuk proyek **AWS.apg.cqrses.Build**, lalu pilih Debug, Start New Instance.**** | Pengembang aplikasi, Insinyur data, DBA | 
| Verifikasi konstruksi tabel dan data. | Untuk memverifikasi, navigasikan ke **AWS Explorer**, dan perluas **Amazon DynamoDB**. Ini harus menampilkan tabel. Buka setiap tabel untuk menampilkan contoh data. | Pengembang aplikasi, Insinyur data, DBA | 

### Jalankan tes lokal
<a name="run-local-tests"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membangun proyek CQRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi, Insinyur uji | 
| Bangun proyek sumber acara. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi, Insinyur uji | 
| Jalankan tes. | Untuk menjalankan semua pengujian, pilih **View**, **Test Explorer**, lalu pilih **Run All Tests In View**. Semua tes harus lulus, yang ditunjukkan oleh ikon tanda centang hijau.  | Pengembang aplikasi, Insinyur uji | 

### Publikasikan fungsi Lambda CQRS ke AWS
<a name="publish-the-cqrs-lambda-functions-to-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Publikasikan fungsi Lambda pertama. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi, DevOps insinyur | 
| Verifikasi fungsi upload. | (Opsional) Anda dapat memverifikasi bahwa fungsi berhasil dimuat dengan menavigasi ke AWS Explorer dan memperluas AWS **Lambda**. Untuk membuka jendela pengujian, pilih fungsi Lambda (klik dua kali). | Pengembang aplikasi, DevOps insinyur | 
| Uji fungsi Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Semua proyek Lambda CQRS ditemukan di bawah folder dan solusi. `CQRS AWS Serverless\CQRS\Command Microservice` ` CQRS AWS Serverless\CQRS\Command Microservice` Untuk direktori solusi dan proyek, lihat **Direktori kode sumber** di bagian [Informasi tambahan](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Pengembang aplikasi, DevOps insinyur | 
| Publikasikan fungsi yang tersisa. | Ulangi langkah sebelumnya untuk proyek-proyek berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi, DevOps insinyur | 

### Siapkan fungsi Lambda sebagai pendengar acara
<a name="set-up-the-lambda-function-as-an-event-listener"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Publikasikan penangan acara Pelanggan dan Hadiah Lambda. | Untuk mempublikasikan setiap event handler, ikuti langkah-langkah dalam epik sebelumnya.Proyek-proyek berada di bawah folder `CQRS AWS Serverless\Event Source\Reward Event` solusi `CQRS AWS Serverless\Event Source\Customer Event` dan. Untuk informasi selengkapnya, lihat *Direktori kode sumber* di bagian [Informasi tambahan](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Pengembang aplikasi | 
| Lampirkan pendengar acara Lambda sumber acara. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Setelah pendengar berhasil dilampirkan ke tabel DynamoDB, itu akan ditampilkan di halaman desainer Lambda. | Pengembang aplikasi | 
| Publikasikan dan lampirkan fungsi EventSourceReward Lambda. | **Untuk mempublikasikan dan melampirkan fungsi `EventSourceReward` Lambda, ulangi langkah-langkah dalam dua cerita sebelumnya, pilih **cqrses-reward-cmd**dari daftar dropdown tabel DynamoDB.** | Pengembang aplikasi | 

### Menguji dan memvalidasi aliran DynamoDB dan pemicu Lambda
<a name="test-and-validate-the-dynamodb-streams-and-lambda-trigger"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji aliran dan pemicu Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi | 
| Validasi, menggunakan tabel query reward DynamoddB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi | 
| Validasi, menggunakan CloudWatch Log. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Pengembang aplikasi | 
| Validasi EventSourceCustomer pemicunya. | Untuk memvalidasi `EventSourceCustomer` pemicu, ulangi langkah-langkah dalam epik ini, menggunakan tabel dan CloudWatch log pelanggan masing-masing `EventSourceCustomer` pemicu. | Pengembang aplikasi | 

## Sumber daya terkait
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-resources"></a>

**Referensi**
+ [Unduhan Edisi Komunitas Visual Studio 2019](https://visualstudio.microsoft.com/downloads/)
+ [Unduhan AWS Toolkit for Visual Studio](https://aws.amazon.com/visualstudio/)
+ [Panduan Pengguna AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)
+ [Tanpa server di AWS](https://aws.amazon.com/serverless/)
+ [Kasus Penggunaan DynamoDB dan Pola Desain](https://aws.amazon.com/blogs/database/dynamodb-streams-use-cases-and-design-patterns/)
+ [Martin Fowler CQRS](https://martinfowler.com/bliki/CQRS.html)
+ [Sumber Acara Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)

**Video**
+ [AWS Toolkit untuk demo AWS Toolkit for Visual Studio](https://www.youtube.com/watch?v=B190tcu1ERk)
+ [Bagaimana cara membuat ID kunci akses untuk pengguna IAM baru?](https://www.youtube.com/watch?v=665RYobRJDY)

## Informasi tambahan
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional"></a>

**CQRS dan sumber acara**

*CQRS*

Pola CQRS memisahkan model operasi konseptual tunggal, seperti objek akses data tunggal CRUD (create, read, update, delete) model, ke dalam model operasi perintah dan query. Model perintah mengacu pada operasi apa pun, seperti membuat, memperbarui, atau menghapus, yang mengubah status. Model query mengacu pada setiap operasi yang mengembalikan nilai.

![\[Arsitektur dengan antarmuka layanan, model CRUD, dan database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/3f64756d-681e-4f0e-8034-746263d857b2.png)


1. Model CRUD Pelanggan mencakup antarmuka berikut:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`

Karena kebutuhan Anda menjadi lebih kompleks, Anda dapat beralih dari pendekatan model tunggal ini. CQRS menggunakan model perintah dan model kueri untuk memisahkan tanggung jawab untuk menulis dan membaca data. Dengan begitu, data dapat dikelola dan dikelola secara independen. Dengan pemisahan tanggung jawab yang jelas, peningkatan untuk setiap model tidak memengaruhi yang lain. Pemisahan ini meningkatkan pemeliharaan dan kinerja, dan mengurangi kompleksitas aplikasi saat tumbuh.

![\[Aplikasi dipisahkan menjadi model perintah dan kueri, berbagi database tunggal.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/12db023c-eb81-4c27-bbb9-b085b13176ae.png)


 

1. Antarmuka dalam model Customer Command:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`

1. Antarmuka dalam model Customer Query:
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`
   + `GetMonthlyStatement()`

Misalnya kode, lihat *Direktori kode sumber*.

Pola CQRS kemudian memisahkan database. Decoupling ini mengarah pada independensi total setiap layanan, yang merupakan bahan utama arsitektur microservice.

![\[Database terpisah untuk model perintah dan kueri.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/016dbfa8-3bd8-42ee-afa1-38a98986c7d5.png)


 Dengan menggunakan CQRS di AWS Cloud, Anda dapat mengoptimalkan setiap layanan lebih lanjut. Misalnya, Anda dapat mengatur pengaturan komputasi yang berbeda atau memilih antara layanan mikro tanpa server atau berbasis kontainer. Anda dapat mengganti caching lokal dengan Amazon. ElastiCache Jika memiliki publish/subscribe pesan lokal, Anda dapat menggantinya dengan Amazon Simple Notification Service (Amazon SNS). Selain itu, Anda dapat memanfaatkan pay-as-you-go harga dan beragam layanan AWS yang Anda bayar hanya untuk apa yang Anda gunakan.

CQRS mencakup manfaat berikut:
+ Penskalaan independen — Setiap model dapat memiliki strategi penskalaan yang disesuaikan untuk memenuhi persyaratan dan permintaan layanan. Mirip dengan aplikasi berkinerja tinggi, memisahkan baca dan tulis memungkinkan model untuk menskalakan secara independen untuk memenuhi setiap permintaan. Anda juga dapat menambah atau mengurangi sumber daya komputasi untuk mengatasi permintaan skalabilitas dari satu model tanpa mempengaruhi yang lain.
+ Pemeliharaan independen - Pemisahan model kueri dan perintah meningkatkan pemeliharaan model. Anda dapat membuat perubahan kode dan penyempurnaan ke satu model tanpa mempengaruhi yang lain.
+ Keamanan — Lebih mudah menerapkan izin dan kebijakan untuk memisahkan model untuk dibaca dan ditulis.
+ Bacaan yang dioptimalkan - Anda dapat menentukan skema yang dioptimalkan untuk kueri. Misalnya, Anda dapat menentukan skema untuk data agregat dan skema terpisah untuk tabel fakta.
+ Integrasi — CQRS cocok dengan model pemrograman berbasis acara.
+ Kompleksitas terkelola - Pemisahan menjadi model kueri dan perintah cocok untuk domain yang kompleks.

Saat menggunakan CQRS, ingatlah peringatan berikut:
+ Pola CQRS hanya berlaku untuk bagian tertentu dari aplikasi dan bukan seluruh aplikasi. Jika diterapkan pada domain yang tidak sesuai dengan pola, dapat mengurangi produktivitas, meningkatkan risiko, dan menimbulkan kompleksitas.
+ Pola ini bekerja paling baik untuk model yang sering digunakan yang memiliki operasi baca dan tulis ketidakseimbangan.
+ Untuk aplikasi read-heavy, seperti laporan besar yang membutuhkan waktu untuk diproses, CQRS memberi Anda opsi untuk memilih database yang tepat dan membuat skema untuk menyimpan data agregat Anda. Ini meningkatkan waktu respons membaca dan melihat laporan dengan memproses data laporan hanya satu kali dan membuangnya dalam tabel agregat.
+ Untuk aplikasi berat tulis, Anda dapat mengonfigurasi database untuk operasi penulisan dan memungkinkan layanan mikro perintah untuk menskalakan secara independen ketika permintaan untuk menulis meningkat. Sebagai contoh, lihat `AWS.APG.CQRSES.CommandRedeemRewardLambda` dan `AWS.APG.CQRSES.CommandAddRewardLambda` layanan mikro.

*Sumber acara*

Langkah selanjutnya adalah menggunakan sumber acara untuk menyinkronkan database kueri saat perintah dijalankan. Misalnya, pertimbangkan peristiwa-peristiwa berikut:
+ Poin hadiah pelanggan ditambahkan yang mengharuskan total atau poin hadiah gabungan pelanggan dalam database kueri diperbarui.
+ Nama belakang pelanggan diperbarui dalam database perintah, yang mengharuskan informasi pelanggan pengganti dalam database kueri diperbarui.

Dalam model CRUD tradisional, Anda memastikan konsistensi data dengan mengunci data hingga menyelesaikan transaksi. Dalam sumber acara, data disinkronkan melalui penerbitan serangkaian acara yang akan dikonsumsi oleh pelanggan untuk memperbarui data masing-masing.

Pola sumber peristiwa memastikan dan mencatat serangkaian tindakan lengkap yang diambil pada data dan menerbitkannya melalui serangkaian peristiwa. Peristiwa ini mewakili serangkaian perubahan pada data yang harus diproses oleh pelanggan acara tersebut agar catatan mereka diperbarui. Peristiwa ini dikonsumsi oleh pelanggan, menyinkronkan data pada database pelanggan. Dalam hal ini, itulah database query.

Diagram berikut menunjukkan sumber peristiwa yang digunakan dengan CQRS di AWS.

![\[Arsitektur layanan mikro untuk CQRS dan pola sumber acara menggunakan layanan tanpa server AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/cc9bc84a-60b4-4459-9a5c-2334c69dbb4e.png)


1. Fungsi Command Lambda melakukan operasi tulis, seperti membuat, memperbarui, atau menghapus, pada database.

1. Fungsi Query Lambda melakukan operasi baca, seperti dapatkan atau pilih, pada database.

1. Fungsi Lambda ini memproses aliran DynamoDB dari database Command dan memperbarui database Query untuk perubahan. Anda juga dapat menggunakan fungsi ini juga untuk mempublikasikan pesan ke Amazon SNS sehingga pelanggannya dapat memproses data.

1. (Opsional) Pelanggan acara Lambda memproses pesan yang diterbitkan oleh Amazon SNS dan memperbarui database Kueri.

1. (Opsional) Amazon SNS mengirimkan pemberitahuan email tentang operasi tulis.

Di AWS, database kueri dapat disinkronkan oleh DynamoDB Streams. DynamoDB menangkap urutan modifikasi tingkat item yang diurutkan waktu dalam tabel DynamoBDB dalam waktu nyaris nyata dan tahan lama menyimpan informasi dalam waktu 24 jam.

Mengaktifkan DynamoDB Streams memungkinkan database untuk mempublikasikan urutan peristiwa yang memungkinkan pola sumber peristiwa. Pola sumber acara menambahkan pelanggan acara. Aplikasi pelanggan acara mengkonsumsi acara dan memprosesnya tergantung pada tanggung jawab pelanggan. Pada diagram sebelumnya, pelanggan acara mendorong perubahan ke database Query DynamoDB untuk menjaga data tetap disinkronkan. Penggunaan Amazon SNS, broker pesan, dan aplikasi pelanggan acara membuat arsitektur dipisahkan.

Sumber acara mencakup manfaat berikut:
+ Konsistensi untuk data transaksional
+ Jejak audit yang andal dan riwayat tindakan, yang dapat digunakan untuk memantau tindakan yang diambil dalam data
+ Memungkinkan aplikasi terdistribusi seperti microservices untuk menyinkronkan data mereka di seluruh lingkungan
+ Publikasi acara yang andal setiap kali negara berubah
+ Rekonstruksi atau pemutaran ulang keadaan masa lalu
+ Entitas yang digabungkan secara longgar yang bertukar peristiwa untuk migrasi dari aplikasi monolitik ke layanan mikro
+ Pengurangan konflik yang disebabkan oleh pembaruan bersamaan; sumber acara menghindari persyaratan untuk memperbarui objek secara langsung di penyimpanan data
+ Fleksibilitas dan ekstensibilitas dari memisahkan tugas dan acara
+ Pembaruan sistem eksternal
+ Manajemen beberapa tugas dalam satu acara

Saat menggunakan sumber acara, ingatlah peringatan berikut:
+ Karena ada beberapa keterlambatan dalam memperbarui data antara database pelanggan sumber, satu-satunya cara untuk membatalkan perubahan adalah dengan menambahkan acara kompensasi ke toko acara.
+ Menerapkan sumber acara memiliki kurva pembelajaran karena gaya pemrogramannya yang berbeda.

**Data uji**

Gunakan data pengujian berikut untuk menguji fungsi Lambda setelah penerapan berhasil.

**CommandCreate Pelanggan**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Done",  "CompanyName":"AnyCompany",  "Address": "USA",  "VIP":true }
```

**CommandUpdate Pelanggan**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Doe",  "CompanyName":"Example Corp.",  "Address": "Seattle, USA",  "VIP":true }
```

**CommandDelete Pelanggan**

Masukkan ID pelanggan sebagai data permintaan. Misalnya, jika ID pelanggan adalah 151, masukkan 151 sebagai data permintaan.

```
151
```

**QueryCustomerList**

Ini kosong. Ketika dipanggil, itu akan mengembalikan semua pelanggan.

**CommandAddReward**

Ini akan menambah 40 poin untuk pelanggan dengan ID 1 (Richard).

```
{
  "Id":10101,
  "CustomerId":1,
  "Points":40
}
```

**CommandRedeemReward**

Ini akan mengurangi 15 poin untuk pelanggan dengan ID 1 (Richard).

```
{
  "Id":10110,
  "CustomerId":1,
  "Points":15
}
```

**QueryReward**

Masukkan ID pelanggan. Misalnya, masukkan 1 untuk Richard, 2 untuk Arnav, dan 3 untuk Shirley.

```
2 
```

**Direktori kode sumber**

Gunakan tabel berikut sebagai panduan untuk struktur direktori solusi Visual Studio. 

*Direktori solusi Contoh Kode Lokal CQRS*

![\[Direktori solusi dengan layanan Command dan Query diperluas.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/4811c2c0-643b-410f-bb87-0b86ec5e194c.png)


**Model CRUD pelanggan**

Contoh Kode Lokal CQRS\$1 Model CRUD\$1 Proyek AWS.APG.CQRSES.DAL

**Versi CQRS dari model CRUD Pelanggan**
+ Perintah pelanggan: `CQRS On-Premises Code Sample\CQRS Model\Command Microservice\AWS.APG.CQRSES.Command` proyek
+ Permintaan pelanggan: `CQRS On-Premises Code Sample\CQRS Model\Query Microservice\AWS.APG.CQRSES.Query` proyek

**Layanan mikro Command dan Query**

Layanan mikro Command berada di bawah folder `CQRS On-Premises Code Sample\CQRS Model\Command Microservice` solusi:
+ `AWS.APG.CQRSES.CommandMicroservice`Proyek API ASP.NET Core bertindak sebagai titik masuk di mana konsumen berinteraksi dengan layanan.
+ `AWS.APG.CQRSES.Command`.NET Core adalah objek yang menampung objek dan antarmuka yang berhubungan dengan perintah.

Layanan mikro kueri ada di bawah folder `CQRS On-Premises Code Sample\CQRS Model\Query Microservice` solusi:
+ `AWS.APG.CQRSES.QueryMicroservice`Proyek API ASP.NET Core bertindak sebagai titik masuk di mana konsumen berinteraksi dengan layanan.
+ `AWS.APG.CQRSES.Query`.NET Core adalah objek yang menampung objek dan antarmuka terkait kueri.

*Direktori solusi kode tanpa server CQRS AWS*

![\[Direktori solusi yang menampilkan layanan mikro dan sumber acara diperluas.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/23f8655c-95ad-422c-b20a-e29dc145e995.png)


 

Kode ini adalah versi AWS dari kode lokal yang menggunakan layanan tanpa server AWS.

Dalam C\$1 .NET Core, setiap fungsi Lambda diwakili oleh satu proyek .NET Core. Dalam contoh kode pola ini, ada proyek terpisah untuk setiap antarmuka dalam model perintah dan kueri.

**CQRS menggunakan layanan AWS**

Anda dapat menemukan direktori solusi root untuk CQRS menggunakan layanan tanpa server AWS ada di folder. `CQRS AWS Serverless\CQRS` Contohnya mencakup dua model: Pelanggan dan Hadiah.

Perintah Lambda berfungsi untuk Pelanggan dan Hadiah berada di bawah `CQRS\Command Microservice\Customer` dan `CQRS\Command Microservice\Reward` folder. Mereka berisi proyek Lambda berikut:
+ Perintah pelanggan:`CommandCreateLambda`,`CommandDeleteLambda`, dan `CommandUpdateLambda`
+ Perintah hadiah: `CommandAddRewardLambda` dan `CommandRedeemRewardLambda`

Fungsi Lambda kueri untuk Pelanggan dan Hadiah ditemukan di bawah folder `CQRS\Query Microservice\Customer` dan`CQRS\QueryMicroservice\Reward`. Mereka berisi proyek `QueryCustomerListLambda` dan `QueryRewardLambda` Lambda.

**Proyek uji CQRS**

Proyek pengujian ada di bawah `CQRS\Tests` folder. Proyek ini berisi skrip pengujian untuk mengotomatiskan pengujian fungsi Lambda CQRS.

**Sumber acara menggunakan layanan AWS**

Penangan peristiwa Lambda berikut diprakarsai oleh aliran DynamoDB Pelanggan dan Reward untuk memproses dan menyinkronkan data dalam tabel kueri.
+ Fungsi `EventSourceCustomer` Lambda dipetakan ke aliran `cqrses-customer-cmd` DynamoDB tabel Pelanggan ().
+ Fungsi `EventSourceReward` Lambda dipetakan ke aliran `cqrses-reward-cmd` DynamoDB tabel Reward ().

## Lampiran
<a name="attachments-9f1bc700-def4-4201-bb2d-f1fa27404f15"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/9f1bc700-def4-4201-bb2d-f1fa27404f15/attachments/attachment.zip)

# Lebih banyak pola
<a name="modernization-more-patterns-pattern-list"></a>

**Topics**
+ [Akses aplikasi kontainer secara pribadi di Amazon EKS menggunakan AWS PrivateLink dan Network Load Balancer](access-container-applications-privately-on-amazon-eks-using-aws-privatelink-and-a-network-load-balancer.md)
+ [Otomatis menambahkan atau memperbarui entri registri Windows menggunakan AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.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 membangun dan menyebarkan aplikasi Java ke Amazon EKS menggunakan pipeline CI/CD](automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline.md)
+ [Membuat CI/CD pipeline dan kluster Amazon ECS secara otomatis untuk layanan mikro menggunakan AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.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)
+ [Bangun PAC Server Perusahaan Fokus Mikro dengan Amazon EC2 Auto Scaling dan Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.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 file data mainframe dengan layout rekaman yang kompleks menggunakan Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Buat portal untuk frontend mikro dengan menggunakan AWS Amplify, Angular, dan Federasi Modul](create-amplify-micro-frontend-portal.md)
+ [Menyebarkan wadah dengan menggunakan Elastic Beanstalk](deploy-containers-by-using-elastic-beanstalk.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)
+ [Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Hasilkan wawasan z/OS data Db2 dengan menggunakan dan AWS Mainframe Modernization Amazon Q di Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Identifikasi gambar kontainer duplikat secara otomatis saat bermigrasi ke repositori Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Menerapkan diagnostik Kubernetes yang didukung AI dan pemecahan masalah dengan integrasi K8SGPT dan Amazon Bedrock](implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.md)
+ [Menerapkan otentikasi berbasis Microsoft Entra ID dalam aplikasi mainframe modern AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Menerapkan versi API berbasis jalur dengan menggunakan domain kustom di Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.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)
+ [Integrasikan Stonebranch Universal Controller dengan AWS Mainframe Modernisasi](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Kelola produk AWS Service Catalog di beberapa akun AWS dan Wilayah AWS](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Migrasi akun AWS anggota dari ke AWS Organizations AWS Control Tower](migrate-an-aws-member-account-from-aws-organizations-to-aws-control-tower.md)
+ [Memigrasi dan mereplikasi file VSAM ke Amazon RDS atau Amazon MSK menggunakan Connect from Excently](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.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 tabel eksternal Oracle ke Amazon Aurora PostgreSQL yang kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Modernisasi aplikasi CardDemo mainframe dengan menggunakan AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Memodernisasi dan menyebarkan aplikasi mainframe menggunakan dan Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisasi beban kerja pencetakan batch mainframe dengan menggunakan Rocket Enterprise Server dan LRS AWS VPSX/LFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisasi beban kerja pencetakan online mainframe di AWS dengan menggunakan Micro Focus Enterprise Server dan LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisasi manajemen output mainframe AWS dengan menggunakan Rocket Enterprise Server dan LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Pindahkan file mainframe langsung ke Amazon S3 menggunakan Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimalkan penerapan tanpa server multi-akun dengan menggunakan alur kerja dan Tindakan AWS CDK GitHub](optimize-multi-account-serverless-deployments.md)
+ [Optimalkan kinerja aplikasi modern AWS Blu Age Anda](optimize-performance-aws-blu-age-modernized-application.md)
+ [Mengotomatiskan blue/green penyebaran database global Amazon Aurora dengan menggunakan prinsip IAc](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Replikasi database mainframe ke AWS dengan menggunakan Exactly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)
+ [Jalankan tugas Amazon ECS di Amazon WorkSpaces dengan Amazon ECS Anywhere](run-amazon-ecs-tasks-on-amazon-workspaces-with-amazon-ecs-anywhere.md)
+ [Kirim data telemetri dari AWS Lambda ke OpenSearch untuk analitik dan visualisasi waktu nyata](send-telemetry-data-from-lambda-to-opensearch-for-analytics-visualization.md)
+ [Mengatur deteksi CloudFormation drift di organisasi multi-wilayah dan multi-akun](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Struktur proyek Python dalam arsitektur heksagonal menggunakan AWS Lambda](structure-a-python-project-in-hexagonal-architecture-using-aws-lambda.md)
+ [Uji AWS infrastruktur dengan menggunakan LocalStack dan Tes Terraform](test-aws-infra-localstack-terraform.md)
+ [Ubah Easytrieve ke bahasa modern dengan menggunakan kustom AWS Transform](transform-easytrieve-modern-languages.md)
+ [Tingkatkan cluster SAP Pacemaker dari ke ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Gunakan Amazon Q Developer sebagai asisten pengkodean untuk meningkatkan produktivitas Anda](use-q-developer-as-coding-assistant-to-increase-productivity.md)
+ [Validasi Account Factory untuk kode Terraform (AFT) secara lokal](validate-account-factory-for-terraform-aft-code-locally.md)

# Mainframe
<a name="mainframe-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)
+ [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)
+ [Membangun program COBOL Db2 dengan menggunakan dan AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Bangun PAC Server Perusahaan Fokus Mikro dengan Amazon EC2 Auto Scaling dan Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Membangun penampil file mainframe tingkat lanjut di AWS Cloud](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.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)
+ [Konversi file mainframe dari format EBCDIC ke format ASCII yang dibatasi karakter di Amazon S3 menggunakan AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Mengkonversi file data mainframe dengan layout rekaman yang kompleks menggunakan Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Menerapkan lingkungan untuk aplikasi Blu Age kontainer dengan menggunakan Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Hasilkan wawasan z/OS data Db2 dengan menggunakan dan AWS Mainframe Modernization Amazon Q di Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Menerapkan otentikasi berbasis Microsoft Entra ID dalam aplikasi mainframe modern AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integrasikan Stonebranch Universal Controller dengan AWS Mainframe Modernisasi](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Memigrasi dan mereplikasi file VSAM ke Amazon RDS atau Amazon MSK menggunakan Connect from Excently](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernisasi aplikasi CardDemo mainframe dengan menggunakan AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Memodernisasi dan menyebarkan aplikasi mainframe menggunakan dan Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisasi manajemen output mainframe AWS dengan menggunakan Rocket Enterprise Server dan LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernisasi beban kerja pencetakan batch mainframe dengan menggunakan Rocket Enterprise Server dan LRS AWS VPSX/LFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisasi mainframe: aktif AWS dengan Rocket DevOps Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernisasi beban kerja pencetakan online mainframe di AWS dengan menggunakan Micro Focus Enterprise Server dan LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Pindahkan file mainframe langsung ke Amazon S3 menggunakan Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimalkan kinerja aplikasi modern AWS Blu Age Anda](optimize-performance-aws-blu-age-modernized-application.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)
+ [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)
+ [Ubah Easytrieve ke bahasa modern dengan menggunakan kustom AWS Transform](transform-easytrieve-modern-languages.md)
+ [Lebih banyak pola](mainframe-more-patterns-pattern-list.md)

# Akses Layanan AWS dari IBM z/OS dengan menginstal AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vitor Pereira, dan Phil de Valence, Amazon Web Services*

## Ringkasan
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

The [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) adalah alat open source untuk mengelola beberapa AWS layanan dengan menggunakan perintah dalam shell baris perintah. Dengan konfigurasi minimal, Anda dapat menjalankan perintah dari sesi baris perintah seperti command prompt, terminal, dan bash shell untuk mengimplementasikan fungsionalitas yang setara dengan yang disediakan oleh browser Konsol Manajemen AWS berbasis.

Semua AWS infrastruktur sebagai layanan (IaaS) administrasi, manajemen, dan fungsi akses dalam Konsol Manajemen AWS tersedia di AWS API dan. AWS CLI Anda dapat menginstal AWS CLI pada z/OS mainframe IBM untuk langsung mengakses, mengelola, dan berinteraksi dengan Layanan AWS dari z/OS. AWS CLI Ini memungkinkan pengguna dan aplikasi untuk melakukan berbagai tugas, seperti:
+ Mentransfer file atau kumpulan data antara penyimpanan objek z/OS Amazon Simple Storage Service (Amazon S3) dan melihat konten bucket
+ Memulai dan menghentikan AWS sumber daya yang berbeda; misalnya, memulai pekerjaan batch di AWS Mainframe Modernization lingkungan
+ Memanggil AWS Lambda fungsi untuk menerapkan logika bisnis umum
+ Mengintegrasikan dengan kecerdasan buatan dan pembelajaran mesin (AI/ML) dan layanan analitik

Pola ini menjelaskan cara menginstal, mengkonfigurasi, dan menggunakan AWS CLI pada z/OS. You can install it globally, so it's available to all z/OS pengguna, atau pada tingkat pengguna. Pola ini juga merinci cara menggunakan AWS CLI dalam sesi baris perintah interaktif dari z/OS Unix System Services (USS) atau sebagai pekerjaan batch.

## Prasyarat dan batasan
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Prasyarat**
+ **Komunikasi jaringan dari z/OS ke AWS**

  Secara default, AWS CLI mengirim permintaan ke Layanan AWS dengan menggunakan HTTPS pada port TCP 443. AWS CLI Agar berhasil menggunakan, Anda harus dapat membuat koneksi keluar pada port TCP 443. Anda dapat menggunakan salah satu perintah z/OS USS berikut (beberapa di antaranya mungkin tidak diinstal di lingkungan Anda) untuk menguji konektivitas jaringan dari z/OS ke AWS:

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS credentials**

  Untuk berkomunikasi dengan AWS Cloud layanan dari z/OS, Anda harus mengonfigurasi beberapa kredensil dengan hak istimewa untuk mengakses target. AWS CLI Akun AWS Untuk perintah terprogram ke AWS, Anda dapat menggunakan kunci akses, yang terdiri dari ID kunci akses dan kunci akses rahasia. Jika Anda tidak memiliki access key, Anda dapat membuatnya dari Konsol Manajemen AWS. Sebagai praktik terbaik, jangan gunakan kunci akses untuk pengguna Akun AWS root untuk tugas apa pun kecuali pengguna root diperlukan. Sebagai gantinya, [buat pengguna IAM administrator baru](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) dan [persiapkan izin hak istimewa paling](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) sedikit**** untuk mengatur pengguna dengan kunci akses. Setelah Anda membuat pengguna, Anda dapat [membuat ID kunci akses dan kunci akses rahasia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) untuk pengguna ini.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python untuk z/OS**

   AWS CLI Memerlukan Python 3.8 atau yang lebih baru. IBM telah mengaktifkan Python untuk berjalan z/OS [dengan IBM Open Enterprise Python](https://www.ibm.com/products/open-enterprise-python-zos) untuk z/OS. [IBM Open Enterprise Python tersedia tanpa biaya melalui Shopz SMP/E, atau Anda dapat mengunduh file PAX dari situs web IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Untuk petunjuk, lihat [dokumentasi instalasi dan konfigurasi](https://www.ibm.com/docs/en/python-zos) untuk IBM Open Enterprise Python untuk z/OS.

**Batasan**
+ Petunjuk penginstalan yang disediakan dalam pola ini **hanya berlaku untuk AWS CLI versi 1**. Versi terbaru dari versi AWS CLI ini adalah 2. Namun, pola ini menggunakan versi yang lebih lama karena metode instalasi berbeda untuk versi 2, dan executable biner yang tersedia untuk versi 2 tidak kompatibel dengan sistem. z/OS 

**Versi produk**
+ AWS CLI versi 1
+ Python 3.8 atau yang lebih baru

## Arsitektur
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**Tumpukan teknologi**
+ Mainframe berjalan z/OS
+ Layanan Sistem z/OS UNIX Mainframe (USS)
+ Mainframe Open MVS (OMVS) - Antarmuka perintah lingkungan z/OS shell UNIX
+ Disk mainframe, seperti perangkat penyimpanan akses langsung (DASD)
+ AWS CLI

**Arsitektur target**

Diagram berikut menunjukkan AWS CLI penyebaran pada IBM z/OS. Anda dapat memanggil AWS CLI dari sesi pengguna interaktif, seperti SSH, dan sesi telnet. Anda juga dapat memanggilnya dari pekerjaan batch dengan menggunakan bahasa kontrol pekerjaan (JCL), atau dari program apa pun yang dapat memanggil perintah shell z/OS Unix.

![\[AWS CLI pada z/OS mainframe IBM yang mengakses layanan AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


 AWS CLI Berkomunikasi dengan Layanan AWS titik akhir melalui jaringan. TCP/IP Koneksi jaringan ini dapat terjadi melalui internet atau melalui AWS Direct Connect koneksi pribadi dari pusat data pelanggan ke pusat AWS Cloud data. Komunikasi diautentikasi dengan AWS kredensil dan dienkripsi. 

**Otomatisasi dan skala**

Anda dapat menjelajahi kemampuan Layanan AWS dengan AWS CLI dan mengembangkan skrip shell USS untuk mengelola AWS sumber daya Anda dari z/OS. Anda juga dapat menjalankan AWS CLI perintah dan skrip shell dari lingkungan z/OS batch, dan Anda dapat mengotomatiskan pekerjaan batch untuk berjalan pada jadwal tertentu dengan mengintegrasikan dengan penjadwal mainframe. AWS CLI perintah atau skrip dapat dikodekan di dalam parameter (PARMs) dan prosedur (PROCs), dan dapat diskalakan dengan mengikuti pendekatan standar memanggil PARM atau PROC dari pekerjaan batch yang berbeda dengan parameter yang berbeda.

## Alat
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [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.

## Praktik terbaik
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Untuk alasan keamanan, batasi izin akses ke direktori USS tempat detail kunci AWS akses disimpan. Izinkan akses hanya ke pengguna atau program yang menggunakan AWS CLI.
+ Jangan gunakan kunci akses pengguna Akun AWS root untuk tugas apa pun. Sebagai gantinya, [buat pengguna IAM administrator baru](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) untuk Anda sendiri dan atur dengan kunci akses.


| 
| 
| Pengguna IAM memiliki kredensi 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. | 
| --- |

## Epik
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### Instal AWS CLI versi 1 di z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Python 3.8 atau yang lebih baru. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrator mainframe z/OS  | 
| Tetapkan variabel lingkungan USS. | Tambahkan variabel lingkungan ke profil. Anda dapat menambahkan ini ke `/u/cliuser/.profile` file untuk pengguna individu (`cliuser`) atau ke `/etc/profile` file untuk semua pengguna.Pola ini mengasumsikan bahwa Python telah diinstal di `/u/awscli/python` direktori. Jika direktori instalasi Anda berbeda, perbarui kode yang sesuai.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Administrator mainframe z/OS  | 
| Uji instalasi Python. | Jalankan perintah **python**:<pre>python --version</pre>Output harus mengkonfirmasi bahwa Anda memiliki Python 3.8 atau yang lebih baru diinstal dengan benar. | Administrator mainframe z/OS  | 
| Verifikasi atau instal **pip**. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrator mainframe z/OS  | 
| Instal AWS CLI versi 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrator mainframe z/OS  | 

### Konfigurasikan AWS CLI akses dari z/OS
<a name="configure-cli-access-from-z-os"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan tombol AWS akses, Wilayah default, dan output. | [AWS CLI Dokumentasi](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) menjelaskan berbagai opsi untuk mengatur AWS akses. Anda dapat memilih konfigurasi sesuai dengan standar organisasi Anda. Contoh ini menggunakan konfigurasi kredensi jangka pendek.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrator AWS, administrator Mainframe, z/OS pengembang z/OS Mainframe | 
| Uji AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Administrator mainframe, pengembang z/OS Mainframe | 

### Opsi 1 - Transfer data dari USS ke Amazon S3 secara interaktif dari sesi USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan transfer file CSV sampel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Pengembang aplikasi, pengembang Mainframe z/OS  | 
| Buat bucket S3 dan unggah file CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Pengembang aplikasi, pengembang Mainframe z/OS  | 
| Lihat bucket S3 dan file yang diunggah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Untuk informasi selengkapnya tentang mengunggah objek, lihat [Memulai Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3 di dokumentasi Amazon S3. | AWS Umum | 
| Jalankan kueri SQL pada tabel Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Output dari query SQL akan menampilkan isi file CSV Anda. | AWS Umum, Pengembang aplikasi | 

### Opsi 2 - Transfer data dari USS ke Amazon S3 dengan menggunakan batch JCL
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file sampel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Pengembang mainframe z/OS  | 
| Buat batch JCL. | Kodekan JCL batch sebagai berikut untuk membuat bucket S3 tujuan, mengunggah kumpulan data, dan mencantumkan konten bucket. Pastikan untuk mengganti nama direktori, nama file, dan nama bucket ke nilai Anda sendiri.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Pengembang mainframe z/OS  | 
| Kirimkan pekerjaan batch JCL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Pengembang mainframe z/OS  | 
| Lihat kumpulan data yang diunggah ke bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS Umum | 

## Sumber daya terkait
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI Dokumentasi versi 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization Referensi Perintah CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Informasi tambahan
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED dalam opsi ISPF 3.4 (utilitas daftar dataset)**

![\[Melihat isi kumpulan data di z/OS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT dari pekerjaan batch yang dikirimkan**

![\[Output standar dari log pekerjaan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Lampiran
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Cadangkan dan arsipkan data mainframe ke Amazon S3 menggunakan BMC AMI Cloud Data
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data"></a>

*Santosh Kumar Singh, Gilberto Biondo, dan Maggie Li, Amazon Web Services*

*Mikhael Liberman, Perangkat Lunak Mainframe Model9*

## Ringkasan
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-summary"></a>

Pola ini menunjukkan cara mencadangkan dan mengarsipkan data mainframe langsung ke Amazon Simple Storage Service (Amazon S3), lalu mengingat dan mengembalikan data tersebut ke mainframe dengan menggunakan BMC AMI Cloud Data (sebelumnya dikenal sebagai Model9 Manager). Jika Anda mencari cara untuk memodernisasi solusi cadangan dan arsip Anda sebagai bagian dari proyek modernisasi mainframe atau untuk memenuhi persyaratan kepatuhan, pola ini dapat membantu memenuhi tujuan tersebut.

Biasanya, organisasi yang menjalankan aplikasi bisnis inti pada mainframe menggunakan pustaka pita virtual (VTL) untuk mencadangkan penyimpanan data seperti file dan log. Metode ini bisa mahal karena mengkonsumsi MIPS yang dapat ditagih, dan data yang disimpan pada kaset di luar mainframe tidak dapat diakses. Untuk menghindari masalah ini, Anda dapat menggunakan BMC AMI Cloud Data untuk mentransfer data mainframe operasional dan historis secara cepat dan hemat biaya langsung ke Amazon S3. Anda dapat menggunakan BMC AMI Cloud Data untuk mencadangkan dan mengarsipkan data AWS sambil TCP/IP memanfaatkan mesin IBM z Integrated Information Processor (ZiIP) untuk mengurangi biaya, paralelisme, dan waktu transfer.

## Prasyarat dan batasan
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ BMC AMI Cloud Data dengan kunci lisensi yang valid
+ Konektivitas TCP/IP antara mainframe dan AWS
+ Peran AWS Identity and Access Management (IAM) untuk read/write akses ke bucket S3
+ Akses produk keamanan mainframe (RACF) untuk menjalankan proses BMC AMI Cloud
+  z/OS Agen BMC AMI Cloud (Java versi 8 64-bit SR5 FP16 atau lebih baru) yang memiliki port jaringan yang tersedia, aturan firewall yang mengizinkan akses ke bucket S3, dan sistem file khusus z/FS 
+ [Persyaratan](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) terpenuhi untuk server manajemen BMC AMI Cloud

**Batasan**
+ BMC AMI Cloud Data menyimpan data operasionalnya dalam database PostgreSQL yang berjalan sebagai wadah Docker pada instance Amazon Elastic Compute Cloud (Amazon) yang sama dengan server manajemen. EC2 Amazon Relational Database Service (Amazon RDS) saat ini tidak didukung sebagai backend untuk BMC AMI Cloud Data. Untuk informasi selengkapnya tentang pembaruan produk terbaru, lihat [Apa yang Baru?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) dalam dokumentasi BMC.
+ Pola ini mencadangkan dan mengarsipkan data z/OS mainframe saja. BMC AMI Cloud Data mencadangkan dan mengarsipkan hanya file mainframe.
+ Pola ini tidak mengubah data menjadi format terbuka standar seperti JSON atau CSV. Gunakan layanan transformasi tambahan seperti [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (sebelumnya dikenal sebagai Model9 Gravity) untuk mengonversi data menjadi format terbuka standar. Aplikasi cloud-native dan alat analisis data dapat mengakses data setelah ditulis ke cloud.

**Versi produk**
+ BMC AMI Cloud Data versi 2.x

## Arsitektur
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-architecture"></a>

**Tumpukan teknologi sumber**
+ Mainframe berjalan z/OS
+ File mainframe seperti kumpulan data dan file z/OS UNIX System Services (USS)
+ Disk mainframe, seperti perangkat penyimpanan akses langsung (DASD)
+ Mainframe tape (pustaka rekaman virtual atau fisik)

**Tumpukan teknologi target**
+ Amazon S3
+  EC2 Instans Amazon di cloud pribadi virtual (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Arsitektur target**

Diagram berikut menunjukkan arsitektur referensi di mana agen perangkat lunak BMC AMI Cloud Data pada mainframe mendorong proses pencadangan dan arsip data lama yang menyimpan data di Amazon S3.

![\[Agen perangkat lunak BMC AMI Cloud Data pada mainframe yang mendorong proses pencadangan dan arsip data lama\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


Diagram menunjukkan alur kerja berikut:

1. Agen perangkat lunak BMC AMI Cloud Data berjalan pada partisi logis mainframe (). LPARs Agen perangkat lunak membaca dan menulis data mainframe dari DASD atau merekam langsung ke Amazon S3 melalui TCP/IP.

1. AWS Direct Connect mengatur koneksi fisik dan terisolasi antara jaringan lokal dan AWS. Untuk keamanan yang ditingkatkan, jalankan site-to-site VPN di atas Direct Connect untuk mengenkripsi data dalam perjalanan.

1. Bucket S3 menyimpan file mainframe sebagai data penyimpanan objek, dan agen BMC AMI Cloud Data langsung berkomunikasi dengan bucket S3. Sertifikat digunakan untuk enkripsi HTTPS dari semua komunikasi antara agen dan Amazon S3. Enkripsi data Amazon S3 digunakan untuk mengenkripsi dan melindungi data saat istirahat.

1. Server manajemen BMC AMI Cloud Data berjalan sebagai kontainer Docker pada EC2 instance. Instans berkomunikasi dengan agen yang berjalan di bucket mainframe LPARs dan S3.

1. Amazon EFS dipasang pada EC2 instans aktif dan pasif untuk berbagi penyimpanan Network File System (NFS). Ini untuk memastikan bahwa metadata yang terkait dengan kebijakan yang dibuat di server manajemen tidak hilang jika terjadi failover. Jika terjadi failover oleh server aktif, server pasif dapat diakses tanpa kehilangan data. Jika server pasif gagal, server aktif dapat diakses tanpa kehilangan data.

## Alat
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-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 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.
+ [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 hampir semua jumlah 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
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)menghubungkan jaringan internal Anda ke AWS Direct Connect lokasi melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke AWS layanan publik sambil melewati penyedia layanan internet di jalur jaringan 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.

**Alat BMC**
+ [BMC AMI Cloud management server](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) adalah aplikasi GUI yang berjalan sebagai wadah Docker pada Amazon Linux Amazon Machine Image (AMI) untuk Amazon. EC2 Server manajemen menyediakan fungsionalitas untuk mengelola aktivitas BMC AMI Cloud seperti melaporkan, membuat dan mengelola kebijakan, menjalankan arsip, dan melakukan pencadangan, penarikan, dan pemulihan.
+ [Agen BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) berjalan pada LPAR mainframe lokal yang membaca dan menulis file langsung ke penyimpanan objek dengan menggunakan TCP/IP. Tugas yang dimulai berjalan pada LPAR mainframe dan bertanggung jawab untuk membaca dan menulis cadangan dan mengarsipkan data ke dan dari Amazon S3.
+ [BMC AMI Cloud Mainframe Command Line Interface (M9CLI)](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) memberi Anda serangkaian perintah untuk melakukan tindakan BMC AMI Cloud langsung dari TSO/E atau dalam operasi batch, tanpa ketergantungan pada server manajemen.

## Epik
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-epics"></a>

### Buat bucket S3 dan kebijakan IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | [Buat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) untuk menyimpan file dan volume yang ingin Anda cadangkan dan arsipkan dari lingkungan mainframe Anda. | AWS Umum | 
| Buat kebijakan IAM. | Semua server dan agen manajemen BMC AMI Cloud memerlukan akses ke bucket S3 yang Anda buat pada langkah sebelumnya.Untuk memberikan akses yang diperlukan, buat kebijakan IAM berikut:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Listfolder",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation",<br />                "s3:ListBucketVersions"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>"<br />            ]<br />        },<br />        {<br />            "Sid": "Objectaccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS Umum | 

### Dapatkan lisensi perangkat lunak BMC AMI Cloud dan unduh perangkat lunaknya
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan lisensi perangkat lunak BMC AMI Cloud. | Untuk mendapatkan kunci lisensi perangkat lunak, hubungi [tim BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). Output dari z/OS `D M=CPU` perintah diperlukan untuk menghasilkan lisensi. | Membangun memimpin | 
| Unduh perangkat lunak BMC AMI Cloud dan kunci lisensi. | Dapatkan file instalasi dan kunci lisensi dengan mengikuti instruksi dalam [dokumentasi BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Administrator infrastruktur mainframe | 

### Instal agen perangkat lunak BMC AMI Cloud di mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal agen perangkat lunak BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator infrastruktur mainframe | 

### Siapkan server manajemen BMC AMI Cloud pada sebuah instans EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon EC2 Linux 2. | Luncurkan dua instans Amazon EC2 Linux 2 di Availability Zone yang berbeda dengan mengikuti petunjuk dari [Langkah 1: Luncurkan instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) di EC2 dokumentasi Amazon.Instans harus memenuhi persyaratan perangkat keras dan perangkat lunak yang direkomendasikan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Untuk informasi lebih lanjut, lihat [dokumentasi BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Arsitek cloud, Administrator Cloud | 
| Buat sistem file Amazon EFS. | Buat sistem file Amazon EFS dengan mengikuti petunjuk dari [Langkah 1: Buat sistem file Amazon EFS Anda](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) di dokumentasi Amazon EFS.Saat membuat sistem file, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator cloud, arsitek Cloud | 
| Instal Docker dan konfigurasikan server manajemen. | **Connect ke EC2 instans Anda:**Connect ke EC2 instans Anda dengan mengikuti petunjuk dari [Connect ke instans Linux Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) dalam EC2 dokumentasi Amazon.**Konfigurasikan EC2 instans Anda:**Untuk setiap EC2 contoh, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Arsitek cloud, Administrator Cloud | 
| Instal perangkat lunak server manajemen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Untuk memecahkan masalah, buka log yang disimpan di folder. `/data/model9/logs/`**** Untuk informasi lebih lanjut, lihat [dokumentasi BMC](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Arsitek cloud, Administrator Cloud | 

### Tambahkan agen dan tentukan kebijakan cadangan atau arsip di server manajemen BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan agen baru. | Sebelum Anda menambahkan agen baru, konfirmasikan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Anda harus membuat agen di server manajemen sebelum menentukan kebijakan cadangan dan arsip apa pun. Untuk membuat agen, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Setelah agen dibuat, Anda akan melihat status **terhubung** terhadap penyimpanan objek dan agen mainframe di jendela baru yang muncul di tabel. | Administrator atau pengembang penyimpanan mainframe | 
| Buat kebijakan cadangan atau arsip. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator atau pengembang penyimpanan mainframe | 

### Jalankan kebijakan cadangan atau arsip dari server manajemen
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan kebijakan cadangan atau arsip. | Jalankan kebijakan pencadangan atau arsip data yang Anda buat sebelumnya dari server manajemen baik secara manual maupun otomatis (berdasarkan jadwal). Untuk menjalankan kebijakan secara manual:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator atau pengembang penyimpanan mainframe | 
| Kembalikan kebijakan cadangan atau arsip. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator atau pengembang penyimpanan mainframe | 

### Jalankan kebijakan cadangan atau arsip dari mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan kebijakan cadangan atau arsip dengan menggunakan M9CLI. | Gunakan M9CLI untuk melakukan proses pencadangan dan pemulihan dari TSO/E, REXX, atau melalui JCLs tanpa mengatur aturan di server manajemen BMC AMI Cloud.**Menggunakan TSO/E:**Jika Anda menggunakan TSO/E, pastikan `M9CLI REXX` itu digabungkan ke. `TSO` Untuk mencadangkan dataset melalui TSO/E, gunakan perintah. `TSO M9CLI BACKDSN <DSNAME>`Untuk informasi selengkapnya tentang perintah M9CLI, lihat [referensi CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) dalam dokumentasi BMC.**Menggunakan JCLs:**Untuk menjalankan kebijakan pencadangan dan arsip dengan menggunakan JCLs, jalankan `M9CLI` perintah.**Menggunakan operasi batch:**Contoh berikut menunjukkan cara mengarsipkan dataset dengan menjalankan `M9CLI` perintah dalam batch:<pre>//JOBNAME JOB …<br />//M9CLI EXEC PGM=IKJEFT01<br />//STEPLIB DD DISP=SHR,DSN=<MODEL9 LOADLIB><br />//SYSEXEC DD DISP=SHR,DSN=<MODEL9 EXEC LIB><br />//SYSTSPRT DD SYSOUT=*<br />//SYSPRINT DD SYSOUT=*<br />//SYSTSIN DD TSO M9CLI ARCHIVE <br /> M9CLI ARCHIVE <DSNNAME OR DSN PATTERN>   <br />/</pre> | Administrator atau pengembang penyimpanan mainframe | 
| Jalankan kebijakan pencadangan atau arsip dalam batch JCL. | **BMC AMI Cloud menyediakan sampel rutin JCL yang disebut M9SAPIJ.** Anda dapat menyesuaikan **M9SAPIJ** untuk menjalankan kebijakan tertentu yang dibuat di server manajemen dengan JCL. Pekerjaan ini juga dapat menjadi bagian dari penjadwal batch untuk menjalankan proses pencadangan dan pemulihan secara otomatis.Pekerjaan batch mengharapkan nilai wajib berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Anda juga dapat mengubah nilai lain dengan mengikuti instruksi pada pekerjaan sampel. | Administrator atau pengembang penyimpanan mainframe | 

## Sumber daya terkait
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernisasi Mainframe dengan AWS (dokumentasi AWS](https://aws.amazon.com/mainframe/))
+ [Bagaimana Cloud Backup untuk Mainframe Memotong Biaya dengan Model9 dan AWS (AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) Partner Network Blog)
+ [Cara Mengaktifkan Analisis Data Mainframe di AWS Menggunakan Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (AWS Partner Network Blog)
+ [Rekomendasi Ketahanan AWS Direct Connect (dokumentasi](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) AWS)
+ [Dokumentasi BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (situs BMC)

# Membangun program COBOL Db2 dengan menggunakan dan AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas dan Eduardo Zimelewicz, Amazon Web Services*

## Ringkasan
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**catatan**  
AWS Mainframe Modernization Layanan (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Pola ini menjelaskan cara membuat AWS CodeBuild proyek sederhana untuk mengkompilasi dan mengikat program COBOL Db2 dengan menggunakan alat Replatform. AWS Mainframe Modernization Ini memungkinkan penerapan dan eksekusi program-program ini di lingkungan runtime AWS Mainframe Modernization Replatform.

COBOL, bahasa pemrograman berorientasi bisnis, mendukung banyak aplikasi penting karena keandalan dan keterbacaannya. IBM Db2, sistem manajemen database relasional, mengelola volume data yang besar secara efisien dan terintegrasi dengan program COBOL melalui SQL. Bersama-sama, COBOL dan Db2 membentuk tulang punggung operasi misi kritis di industri seperti keuangan dan pemerintah, meskipun munculnya teknologi yang lebih baru.

Migrasi komponen COBOL dan Db2 dari lingkungan mainframe ke platform lain mengarah pada tantangan seperti kompatibilitas platform, kompleksitas integrasi, migrasi data, dan pengoptimalan kinerja. Memindahkan komponen penting ini membutuhkan perencanaan yang cermat, keahlian teknis, dan sumber daya untuk memastikan migrasi yang lancar sambil mempertahankan keandalan dan fungsionalitas.

 AWS Mainframe Modernization Layanan ini menyediakan alat dan sumber daya untuk memplatform ulang aplikasi mainframe dan database untuk berjalan pada AWS infrastruktur, seperti instans Amazon Elastic Compute Cloud (Amazon). EC2 Ini melibatkan pemindahan beban kerja mainframe ke cloud tanpa perubahan kode besar.

Proses precompile dan bind Db2 sangat penting untuk mengoptimalkan kinerja dan keandalan aplikasi database. Prakompilasi mengubah pernyataan SQL yang disematkan menjadi kode yang dapat dieksekusi, yang mengurangi overhead runtime dan meningkatkan efisiensi. Proses mengikat menghubungkan kode yang telah dikompilasi sebelumnya dengan struktur database, memfasilitasi jalur akses dan optimasi kueri. Proses ini memastikan integritas data, meningkatkan daya tanggap aplikasi, dan menjaga terhadap kerentanan keamanan. Aplikasi yang dikompilasi dan terikat dengan benar meminimalkan konsumsi sumber daya, meningkatkan skalabilitas, dan mengurangi risiko serangan injeksi SQL.

## Prasyarat dan batasan
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Prasyarat**
+ Akses konsol tingkat administratif Akun AWS dan administratif.
+ Sistem database IBM Db2, seperti IBM Db2 untuk z/OS atau Db2 untuk Linux, Unix, dan Windows (LUW).
+ Perangkat lunak IBM Data Server Client, yang tersedia untuk diunduh dari situs web [IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Untuk informasi selengkapnya, lihat [tipe IBM Data Server Client dan Data Server Driver](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Program COBOL Db2 yang akan dikompilasi dan diikat. Atau, pola ini menyediakan program sampel dasar yang dapat Anda gunakan.
+ Virtual Private Cloud (VPC) aktif AWS dengan jaringan pribadi. Untuk informasi tentang membuat VPC, lihat dokumentasi [Amazon Virtual Private Cloud (Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)).
+ Sebuah repositori kontrol sumber seperti GitHub atau. GitLab

**Keterbatasan**
+ Untuk AWS CodeBuild kuota, lihat [Kuota](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) untuk. AWS CodeBuild
+ 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="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Tumpukan teknologi sumber**

Tumpukan sumber meliputi:
+ Program COBOL yang menggunakan database Db2 untuk menyimpan data
+ Kompiler IBM COBOL dan Db2 untuk precompiler z/OS 
+ Bagian lain dari pengaturan mainframe, seperti sistem file, manajer transaksi, dan spool

**Tumpukan teknologi target**

Pendekatan pola ini berfungsi untuk dua opsi: memindahkan data dari Db2 ke Db2 z/OS untuk LUW, atau tetap menggunakan Db2 untuk z/OS. Arsitektur target meliputi:
+ Program COBOL yang menggunakan database Db2 untuk menyimpan data
+ AWS Mainframe Modernization Alat kompilasi replatform
+ AWS CodeBuild sebagai infrastruktur untuk membangun aplikasi
+  AWS Cloud Sumber daya lain seperti Amazon Linux

**Arsitektur target**

![\[Arsitektur untuk membangun program COBOL Db2 di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Diagram ini menggambarkan hal sebagai berikut:

1. Pengguna mengunggah kode mereka ke repositori kontrol sumber seperti atau. GitHub GitLab

1. AWS CodePipeline memperhatikan perubahan dan mendapatkan kode dari repositori.

1. CodePipeline Memulai AWS CodeBuild dan mengirimkan kode

1. CodeBuild mengikuti instruksi dalam `buildspec.yml` template (disediakan di bagian [Informasi tambahan](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) untuk:

   1. Dapatkan Klien Server Data IBM dari bucket Amazon Simple Storage Service (Amazon S3).

   1. Instal dan atur IBM Data Server Client.

   1. Ambil kredensi Db2 dari. AWS Secrets Manager

   1. Hubungi server Db2.

   1. Prakompilasi, kompilasi, dan ikat program COBOL.

   1. Simpan produk jadi dalam ember S3 AWS CodeDeploy untuk digunakan.

1. CodePipeline dimulai CodeDeploy.

1. CodeDeploy mengkoordinasikan agennya, yang sudah diinstal di lingkungan runtime. Agen mengambil aplikasi dari Amazon S3 dan menginstalnya berdasarkan instruksi di. `appspec.yml`

Untuk menjaga hal-hal sederhana dan fokus pada build, instruksi dalam pola ini mencakup langkah 1 hingga 4 tetapi tidak termasuk penerapan program COBOL Db2.

**Otomatisasi dan skala**

Untuk mempermudah, pola ini menjelaskan cara menyediakan sumber daya secara manual. Namun, ada banyak opsi otomatisasi yang tersedia, seperti,, dan HashiCorp Terraform CloudFormation AWS Cloud Development Kit (AWS CDK), yang mengotomatiskan tugas-tugas ini. Untuk informasi lebih lanjut, lihat [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)dan [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html)dokumentasi.

## Alat
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**Layanan AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)mengotomatiskan penerapan ke Amazon EC2 atau instans, fungsi AWS Lambda , atau layanan Amazon Elastic Container Service (Amazon ECS) lokal.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)membantu Anda dengan cepat memodelkan dan mengkonfigurasi berbagai tahapan rilis perangkat lunak dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)menyediakan alat dan sumber daya untuk membantu Anda merencanakan dan mengimplementasikan migrasi dan modernisasi dari mainframe ke lingkungan runtime AWS terkelola.

**Alat lainnya**
+ **Gambar Amazon ECR untuk alat AWS Mainframe Modernization Replatform**. Untuk mengkompilasi aplikasi COBOL, Anda harus memulai CodeBuild dengan menggunakan image Amazon Elastic Container Registry (Amazon ECR) Registry ECR) yang berisi alat Replatform: AWS Mainframe Modernization 

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  Untuk informasi lebih lanjut tentang gambar ECR yang tersedia, lihat [tutorial](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) di *Panduan AWS Mainframe Modernization Pengguna*.
+ Perangkat lunak [IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) sangat penting untuk pra-kompilasi dan pengikatan program COBOL Db2 di. CodeBuild Ini bertindak sebagai jembatan antara kompiler COBOL dan Db2.

## Praktik terbaik
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Tidak setiap program COBOL bergantung pada Db2 sebagai lapisan persistensi datanya. Pastikan bahwa arahan kompilasi untuk mengakses Db2 diterapkan hanya untuk program COBOL yang dirancang khusus untuk berinteraksi dengan Db2. Menerapkan logika untuk membedakan antara program COBOL Db2 dan program COBOL yang tidak menggunakan Db2.
+ Kami menyarankan Anda menghindari kompilasi program yang belum dimodifikasi. Menerapkan proses untuk mengidentifikasi program mana yang memerlukan kompilasi.

## Epik
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Buat infrastruktur cloud
<a name="create-the-cloud-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket S3 untuk meng-host IBM Data Server Client dan artefak pipeline. | Anda perlu menyiapkan bucket S3 untuk (a) mengunggah Klien Server Data IBM, (b) menyimpan kode Anda dari repositori, dan (c) menyimpan hasil proses pembuatan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Untuk cara membuat bucket S3, lihat dokumentasi [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | AWS Umum | 
| Unggah Klien Server Data IBM ke bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS Umum | 
| Buat AWS Secrets Manager rahasia untuk kredensi Db2 Anda. | Untuk membuat rahasia untuk menyimpan DB2 kredensil Anda dengan aman:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Untuk informasi selengkapnya tentang membuat rahasia, lihat [dokumentasi Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS Umum | 
| Verifikasi bahwa Db2 dapat diakses dari subnet VPC. | AWS CodeBuild membutuhkan koneksi ke server Db2 sehingga Klien Server Data dapat melakukan operasi prakompilasi dan mengikat. Pastikan itu CodeBuild dapat mencapai server Db2 melalui koneksi yang aman.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrator jaringan, AWS Umum | 

### Buat artefak aplikasi
<a name="create-the-application-artifacts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat aset COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Pengembang aplikasi | 
| Buat file `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect repositori Anda ke. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Anda akan memerlukan Nama Sumber Daya Amazon (ARN) untuk koneksi saat Anda membuat kebijakan AWS Identity and Access Management (IAM) untuk langkah CodePipeline selanjutnya. | AWS DevOps | 

### Mengatur Konfigurasi Izin
<a name="configure-permissions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan IAM untuk CodeBuild. |  CodeBuild Proyek ini memerlukan akses ke beberapa sumber daya, termasuk Secrets Manager dan Amazon S3.Untuk mengatur izin yang diperlukan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Untuk informasi selengkapnya tentang membuat kebijakan IAM, lihat dokumentasi [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS Umum | 
| Buat peran IAM untuk CodeBuild. | Agar kebijakan keamanan tersedia CodeBuild, Anda perlu mengonfigurasi peran IAM.Untuk membuat peran ini:1. Di [konsol IAM](https://console.aws.amazon.com/iam), di panel navigasi, pilih **Peran, **Buat** Peran**.3. Untuk **jenis entitas Tepercaya**, pertahankan **Layanan AWS**pengaturan default.4. Untuk **kasus penggunaan**, pilih CodeBuild layanan, dan kemudian pilih **Berikutnya**.4. Dalam daftar kebijakan IAM yang tersedia, cari kebijakan yang Anda buat CodeBuild, lalu pilih **Berikutnya** untuk melampirkannya ke peran.5. Tentukan nama untuk peran, dan pilih **Buat peran** untuk menyimpannya untuk referensi di masa mendatang CodeBuild.Untuk informasi selengkapnya tentang membuat peran IAM untuk sebuah Layanan AWS, lihat dokumentasi [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS Umum | 
| Buat kebijakan IAM untuk CodePipeline. |  AWS CodePipeline Pipeline memerlukan akses ke beberapa sumber daya, termasuk repositori kode Anda dan Amazon S3.Ulangi langkah-langkah yang diberikan sebelumnya CodeBuild untuk membuat kebijakan IAM CodePipeline (pada langkah 2, pilih **CodePipeline**sebagai ganti **CodeBuild**). | AWS DevOps | 
| Buat peran IAM untuk CodePipeline. | Agar kebijakan keamanan tersedia CodePipeline, Anda perlu mengonfigurasi peran IAM.Untuk membuat peran ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Kompilasi dan ikat program COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CodePipeline pipeline dan CodeBuild proyek. | Untuk membuat CodePipeline pipeline dan CodeBuild proyek yang mengkompilasi dan mengikat program COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Tinjau output. | Verifikasi keberhasilan build dengan meninjau log CodePipeline build. | AWS DevOps | 
| Periksa hasil di Db2. | Verifikasi versi paket pada tabel SYSPLAN.<pre>select CAST(NAME AS VARCHAR(10)) as name, VALIDATE, LAST_BIND_TIME, LASTUSED, CAST(PKGVERSION AS VARCHAR(10)) as PKGVERSION from SYSIBM.SYSPLAN where NAME = 'CDB2SMP' order by LAST_BIND_TIME desc<br /></pre>Versi harus cocok dengan ID CodeBuild build, yang ada `CDB2SMP` dalam contoh kita:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Pemecahan masalah
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Terkadang, AWS konsol beralih Wilayah saat Anda berpindah antar layanan. | Pastikan untuk memverifikasi yang dipilih Wilayah AWS setiap kali Anda beralih antar layanan. Wilayah AWS Pemilih berada di sudut kanan atas jendela konsol. | 
| Mungkin sulit untuk mengidentifikasi masalah konektivitas Db2 dari. CodeBuild | Untuk memecahkan masalah konektivitas, tambahkan perintah DB2 connect berikut ke file. `buildspec.yml` Penambahan ini membantu Anda men-debug dan menyelesaikan masalah konektivitas.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Terkadang, panel peran di konsol IAM tidak langsung menampilkan kebijakan IAM yang Anda buat. | Jika Anda mengalami penundaan, segarkan layar untuk menampilkan informasi terbaru. | 

## Sumber daya terkait
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**Dokumentasi IBM**
+ [IBM Data Server Client dan tipe driver](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Unduh IBM Data Server Client dan jenis driver](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS dokumentasi**
+ [Panduan Pengguna Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Panduan Pengguna](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Panduan Pengguna](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Panduan Pengguna](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Panduan Pengguna](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Panduan Pengguna****](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Informasi tambahan
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild kebijakan**

Ganti placeholder`<RegionID>`,,`<AccountID>`, `<SubnetARN>``<BucketARN>`, dan `<DB2CredSecretARN>` dengan nilai-nilai Anda.

```
{"Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*" },
        {"Action": ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", 
                    "ecr:BatchCheckLayerAvailability"],
         "Effect": "Allow", 
         "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"},
        {"Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::aws-m2-repo-*/*"},
        {"Action": ["logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup"],
         "Effect": "Allow", "Resource": "arn:aws:logs:<RegionId>:<AccountId>:*"},
        {"Action": ["ec2:DescribeVpcs", "ec2:DescribeSubnets", 
                    "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", 
                    "ec2:DescribeDhcpOptions", "ec2:DeleteNetworkInterface", 
                    "ec2:CreateNetworkInterface"],
         "Effect": "Allow", "Resource": "*"},
        {"Action": "ec2:CreateNetworkInterfacePermission", 
         "Effect": "Allow", "Resource": ["<SubnetARN>"]},
        {"Action": "s3:*", "Effect": "Allow", "Resource": ["<BucketARN>/*","<BucketARN>"]},
        {"Action": "secretsmanager:GetSecretValue", 
         "Effect": "Allow", "Resource": "<DB2CredSecretARN>"}
    ]
}
```

**CodePipeline kebijakan**

Ganti placeholder `<BucketARN>` dan `<ConnectionARN>` dengan nilai-nilai Anda.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": ["s3:List*", "s3:GetObjectVersion", "s3:GetObject", "s3:GetBucketVersioning" ], 
        "Effect": "Allow",
        "Resource": ["<BucketARN>/*", "<BucketARN>"]},
        {"Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds"], 
         "Effect": "Allow", "Resource": "*"},
        {"Action": ["codestar-connections:UseConnection"],
         "Effect": "Allow", "Resource": "<ConnectionARN>"}
        ]
}
```

**`buildspec.yml`**

Ganti `<your-bucket-name>` placeholder dengan nama bucket S3 Anda yang sebenarnya.

```
version: 0.2
phases:
  pre_build:
    commands:
      - /var/microfocuslicensing/bin/mfcesd -no > /var/microfocuslicensing/logs/mfcesd_startup.log 2>&1 &
      - |
        mkdir $CODEBUILD_SRC_DIR/db2client
        aws s3 cp s3://<your-bucket-name>/v11.5.8_linuxx64_client.tar.gz $CODEBUILD_SRC_DIR/db2client/ >> /dev/null 2>&1
        tar -xf $CODEBUILD_SRC_DIR/db2client/v11.5.8_linuxx64_client.tar.gz -C $CODEBUILD_SRC_DIR/db2client/
        cd $CODEBUILD_SRC_DIR/db2client/
        ./client/db2_install -f sysreq -y -b /opt/ibm/db2/V11.5 >> /dev/null 2>&1        
        useradd db2cli
        /opt/ibm/db2/V11.5/instance/db2icrt -s client -u db2cli db2cli
        DB2CRED=$(aws secretsmanager get-secret-value --secret-id dev-db2-cred | jq -r '.SecretString | fromjson')
        read -r DB2USER DB2PASS DB_NODE DB_HOST DB_PORT DB_NAME DB_QUAL <<<$(echo $DB2CRED | jq -r '.username, .password, .db2node, .db2host, .db2port, .db2name, .qualifier')
        . /home/db2cli/sqllib/db2profile
        db2 catalog tcpip node $DB_NODE remote $DB_HOST server $DB_PORT
        db2 catalog db $DB_NAME as $DB_NAME at node $DB_NODE authentication server
  build:
    commands:
      - |
        revision=$CODEBUILD_SRC_DIR/loadlib
        mkdir -p $revision; cd $revision
        . /opt/microfocus/EnterpriseDeveloper/bin/cobsetenv
        cob -zU $CODEBUILD_SRC_DIR/CDB2SMP.cbl -C "DB2(DB==${DB_NAME} PASS==${DB2USER}.${DB2PASS} VERSION==${CODEBUILD_BUILD_NUMBER} COLLECTION==DB2AWSDB"
artifacts:
  files:
    - "**/*"
  base-directory: $revision
```

# Bangun PAC Server Perusahaan Fokus Mikro dengan Amazon EC2 Auto Scaling dan Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

*Kevin Yung dan Krithika Palani Selvam, Amazon Web Services*

*Peter Woods, Tidak Ada*

*Abraham Rondon, Fokus Mikro*

## Ringkasan
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-summary"></a>

Pola ini memperkenalkan arsitektur skalabel untuk aplikasi mainframe menggunakan [Micro Focus Enterprise Server di Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) dan grup EC2 Auto Scaling Amazon Elastic Compute Cloud (Amazon) di Amazon Web Services ().AWS Solusinya sepenuhnya otomatis dengan AWS Systems Manager dan kait siklus hidup Amazon EC2 Auto Scaling. Dengan menggunakan pola ini, Anda dapat mengatur aplikasi online dan batch mainframe Anda untuk mencapai ketahanan tinggi dengan secara otomatis menskalakan masuk dan keluar berdasarkan permintaan kapasitas Anda. 

**catatan**  
Pola ini diuji dengan Micro Focus Enterprise Server versi 6.0. Untuk versi 8, lihat [Mengatur Waktu Proses Fokus Mikro (di Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Prasyarat dan batasan
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Perangkat lunak dan lisensi Micro Focus Enterprise Server. Untuk detailnya, hubungi [penjualan Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Pemahaman tentang konsep membangun kembali dan memberikan aplikasi mainframe untuk dijalankan di Micro Focus Enterprise Server. Untuk ikhtisar tingkat tinggi, lihat [Lembar Data Server Perusahaan Fokus Mikro](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Pemahaman tentang konsep-konsep dalam Kinerja dan Ketersediaan Cluster Kinerja dan Ketersediaan Server Micro Focus Enterprise. Untuk informasi selengkapnya, lihat [dokumentasi Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Pemahaman tentang konsep keseluruhan aplikasi mainframe DevOps dengan integrasi berkelanjutan (CI). Untuk pola AWS Prescriptive Guidance yang dikembangkan oleh AWS dan Micro Focus, lihat [Modernisasi mainframe: DevOps ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) dengan Micro Focus. AWS 

**catatan**  
Pola ini diuji dengan Micro Focus Enterprise Server versi 6. Untuk versi 8, lihat [Mengatur Waktu Proses Fokus Mikro (di Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Batasan**
+ Untuk daftar platform yang didukung oleh Micro Focus Enterprise Server, lihat [Lembar Data Server Perusahaan Fokus Mikro](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Skrip dan tes yang digunakan dalam pola ini didasarkan pada Amazon EC2 Windows Server 2019; versi Windows Server dan sistem operasi lainnya tidak diuji untuk pola ini.
+ Pola ini didasarkan pada Micro Focus Enterprise Server 6.0 untuk Windows; rilis sebelumnya atau yang lebih baru tidak diuji dalam pengembangan pola ini.

**Versi produk**
+ Server Perusahaan Fokus Mikro 6.0
+ Windows Server 2019

## Arsitektur
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-architecture"></a>

Dalam lingkungan mainframe konvensional, Anda harus menyediakan perangkat keras untuk meng-host aplikasi dan data perusahaan Anda. Untuk memenuhi dan memenuhi lonjakan permintaan musiman, bulanan, triwulanan, atau bahkan belum pernah terjadi sebelumnya atau tidak terduga, pengguna mainframe harus *meningkatkan skala* dengan membeli penyimpanan tambahan dan kapasitas komputasi. Meningkatkan jumlah penyimpanan dan sumber daya kapasitas komputasi meningkatkan kinerja secara keseluruhan, tetapi penskalaannya tidak linier.

Ini tidak terjadi ketika Anda mulai mengadopsi model konsumsi sesuai permintaan di AWS dengan menggunakan Amazon Auto EC2 Scaling dan Micro Focus Enterprise Server. Bagian berikut menjelaskan secara rinci cara membuat arsitektur aplikasi mainframe yang sepenuhnya otomatis dan dapat diskalakan menggunakan Micro Focus Enterprise Server Scale-Out Performance and Availability Cluster (PAC) dengan grup Amazon Auto Scaling. EC2  

**Arsitektur penskalaan otomatis Micro Focus Enterprise Server**

Pertama, penting untuk memahami konsep dasar Micro Focus Enterprise Server. Lingkungan ini menyediakan lingkungan penyebaran x86 yang kompatibel dengan mainframe untuk aplikasi yang secara tradisional berjalan di mainframe IBM. Ini memberikan proses online dan batch dan lingkungan transaksi yang mendukung hal-hal berikut:
+ IBM COBOL
+ IBM PL/I
+ Lowongan kerja batch IBM JCL
+ Transaksi IBM CICS dan IMS TM
+ Layanan web
+ Utilitas batch umum, termasuk SORT

Micro Focus Enterprise Server memungkinkan aplikasi mainframe berjalan dengan sedikit perubahan. Beban kerja mainframe yang ada dapat dipindahkan ke platform x86 dan dimodernisasi untuk memanfaatkan ekstensi asli AWS Cloud untuk ekspansi cepat ke pasar atau geografi baru. 

[Modernisasi Mainframe pola AWS Prescriptive Guidance: di DevOps AWS dengan Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) memperkenalkan arsitektur untuk mempercepat pengembangan dan pengujian aplikasi mainframe di AWS menggunakan Micro Focus Enterprise Developer dan Enterprise Test Server dengan AWS dan AWS. CodePipeline CodeBuild Pola ini berfokus pada penerapan aplikasi mainframe ke lingkungan produksi AWS untuk mencapai ketersediaan dan ketahanan yang tinggi.

Dalam lingkungan produksi mainframe, Anda mungkin telah menyiapkan IBM Parallel Sysplex di mainframe untuk mencapai kinerja tinggi dan ketersediaan tinggi. Untuk membuat arsitektur scale-out yang mirip dengan Sysplex, Micro Focus memperkenalkan Performance and Availability Cluster (PAC) ke Enterprise Server. PACs mendukung penerapan aplikasi mainframe ke beberapa wilayah Server Perusahaan yang dikelola sebagai satu gambar dan diskalakan dalam instance Amazon. EC2 PACs juga mendukung kinerja aplikasi yang dapat diprediksi dan throughput sistem sesuai permintaan. 

Dalam PAC, beberapa instance Enterprise Server bekerja sama sebagai entitas logis tunggal. Kegagalan satu instance Server Perusahaan, oleh karena itu, tidak akan mengganggu kelangsungan bisnis karena kapasitas dibagi dengan wilayah lain sementara instance baru secara otomatis dimulai menggunakan fungsionalitas standar industri seperti grup Amazon Auto Scaling EC2 . Ini menghilangkan satu titik kegagalan, meningkatkan ketahanan terhadap masalah perangkat keras, jaringan, dan aplikasi. Instans Enterprise Server yang diskalakan dapat dioperasikan dan dikelola dengan menggunakan Enterprise Server Common Web Administration (ESCWA) APIs, menyederhanakan pemeliharaan operasional dan kemudahan servis Server Perusahaan. 

**catatan**  
Micro Focus merekomendasikan bahwa [Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) harus terdiri dari setidaknya tiga wilayah Server Perusahaan sehingga ketersediaan tidak terganggu jika wilayah Server Perusahaan gagal atau memerlukan pemeliharaan.

Konfigurasi PAC memerlukan layanan manajemen basis data relasional yang didukung (RDBMS) untuk mengelola database wilayah, database lintas wilayah, dan database penyimpanan data opsional. Database penyimpanan data harus digunakan untuk mengelola file Metode Akses Penyimpanan Virtual (VSAM) menggunakan dukungan Micro Focus Database File Handler untuk meningkatkan ketersediaan dan skalabilitas. Didukung RDBMSs termasuk yang berikut:
+ Microsoft SQL Server 2009 R2 dan yang lebih baru
+ PostgreSQL 10.x, termasuk Amazon Aurora PostgreSQL Edisi yang kompatibel
+ DB2 10.4 dan kemudian

[Untuk detail persyaratan RDBMS dan PAC yang didukung, lihat [Server Perusahaan Fokus Mikro - Prasyarat dan Server Perusahaan Fokus Mikro -](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) Konfigurasi PAC yang Disarankan.](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html)

Diagram berikut menunjukkan pengaturan arsitektur AWS khas untuk Micro Focus PAC. 

![\[Arsitektur Tiga-Availability Zone dengan lima langkah yang dijelaskan dalam tabel setelah diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Komponen** | **Deskripsi** | 
| --- |--- |--- |
| 1 | Server Perusahaan melakukan grup penskalaan otomatis | Siapkan grup penskalaan otomatis yang digunakan dengan instance Enterprise Server di PAC. Jumlah instans dapat ditingkatkan atau diprakarsai oleh CloudWatch alarm Amazon menggunakan metrik. CloudWatch  | 
| 2 | Enterprise Server ESCWA instance grup penskalaan otomatis  | Siapkan grup penskalaan otomatis yang digunakan dengan Enterprise Server Common Web Administration (ESCWA). ESCWA menyediakan manajemen cluster. APIs   Server ESCWA bertindak sebagai bidang kontrol untuk menambah atau menghapus Server Perusahaan dan memulai atau menghentikan wilayah Server Perusahaan di PAC selama peristiwa penskalaan otomatis instance Server Perusahaan.   Karena instans ESCWA hanya digunakan untuk manajemen PAC, pola lalu lintasnya dapat diprediksi, dan persyaratan kapasitas penskalaan otomatis yang diinginkan dapat diatur ke 1.  | 
| 3 | Instans Amazon Aurora dalam pengaturan Multi-AZ | Siapkan sistem manajemen basis data relasional (RDBMS) untuk meng-host file data pengguna dan sistem untuk dibagikan di seluruh instance Server Perusahaan. | 
| 4 | Amazon ElastiCache (Redis OSS) contoh dan replika | Siapkan instance utama ElastiCache (Redis OSS) dan setidaknya satu replika untuk meng-host data pengguna dan bertindak sebagai repositori scale-out (SOR) untuk instance Server Perusahaan. Anda dapat mengonfigurasi satu atau beberapa [repositori scale-out](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) untuk menyimpan jenis data pengguna tertentu.   Enterprise Server menggunakan database Redis NoSQL sebagai SOR[, persyaratan untuk menjaga integritas PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html). | 
| 5 | Penyeimbang Beban Jaringan | Siapkan penyeimbang beban, berikan nama host untuk aplikasi untuk terhubung ke layanan yang disediakan oleh instance Enterprise Server (misalnya, mengakses aplikasi melalui emulator 3270). | 

Komponen-komponen ini membentuk persyaratan minimum untuk cluster PAC Server Micro Focus Enterprise. Bagian selanjutnya mencakup otomatisasi manajemen cluster.

**Menggunakan AWS Systems Manager Automation untuk penskalaan**

Setelah klaster PAC digunakan di AWS, PAC dikelola melalui Enterprise Server Common Web Administration (ESCWA). APIs 

Untuk mengotomatiskan tugas manajemen klaster selama peristiwa penskalaan otomatis, Anda dapat menggunakan runbook Otomasi Systems Manager dan Amazon Auto EC2 Scaling dengan Amazon. EventBridge Arsitektur otomatisasi ini ditunjukkan pada diagram berikut.

![\[AWS architecture diagram showing EventBridge, Systems Manager, and EC2 Auto Scaling integration.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)


 


| 
| 
|  | **Komponen** | **Deskripsi** | 
| --- |--- |--- |
| 1 | Kait siklus hidup penskalaan otomatis | Siapkan kait siklus hidup penskalaan otomatis dan kirim notifikasi ke Amazon EventBridge saat instans baru diluncurkan dan instans yang ada dihentikan di grup penskalaan otomatis. | 
| 2 | Amazon EventBridge | Siapkan EventBridge aturan Amazon untuk merutekan peristiwa penskalaan otomatis ke target runbook Automation Systems Manager. | 
| 3 | Runbook otomatisasi | Siapkan runbook Systems Manager Automation untuk menjalankan PowerShell skrip Windows dan memanggil ESCWA untuk mengelola PAC APIs . Sebagai contoh, lihat bagian *Informasi tambahan*. | 
| 4 | Instans Enterprise Server ESCWA dalam grup penskalaan otomatis | Siapkan instance Enterprise Server ESCWA dalam grup penskalaan otomatis. Instans ESCWA menyediakan APIs untuk mengelola PAC.  | 

## Alat
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-tools"></a>
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) — Micro Focus Enterprise Server menyediakan lingkungan run untuk aplikasi yang dibuat dengan varian lingkungan pengembangan terintegrasi (IDE) dari Enterprise Developer.
+ [ EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) Amazon — Amazon EC2 Auto Scaling membantu Anda memastikan bahwa Anda memiliki jumlah instans EC2 Amazon yang benar yang tersedia untuk menangani pemuatan aplikasi Anda. Anda membuat koleksi EC2 instance, yang disebut grup Auto Scaling, dan menentukan jumlah instans minimum dan maksimum.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html) — Amazon ElastiCache adalah layanan web untuk menyiapkan, mengelola, dan menskalakan penyimpanan data dalam memori terdistribusi atau lingkungan cache di cloud. Layanan ini menyediakan solusi caching beperforma tinggi, dapat diskalakan, dan hemat biaya.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) - Amazon Relational Database Service (Amazon RDS) adalah layanan web yang memudahkan pengaturan, pengoperasian, dan skala database relasional di AWS Cloud. Ini menyediakan efisiensi biaya, kapasitas resizable untuk database relasional dan mengelola tugas-tugas administrasi database umum. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) — AWS Systems Manager adalah layanan AWS yang dapat Anda gunakan untuk 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. Systems Manager membantu Anda menjaga keamanan dan kepatuhan dengan memindai instans terkelola Anda dan melaporkan (atau mengambil tindakan korektif) setiap pelanggaran kebijakan yang terdeteksi.

## Epik
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-epics"></a>

### Buat instans Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CloudFormation template AWS untuk instans Amazon Aurora. | Gunakan [cuplikan kode contoh AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) untuk membuat CloudFormation templat yang akan membuat instance Edisi yang kompatibel dengan Amazon Aurora PostgreSQL. | Arsitek awan | 
| Terapkan CloudFormation tumpukan untuk membuat instance Amazon Aurora. | Gunakan CloudFormation template untuk membuat instance yang kompatibel dengan Aurora PostgreSQL yang mengaktifkan replikasi Multi-AZ untuk beban kerja produksi. | Arsitek awan | 
| Konfigurasikan pengaturan koneksi database untuk Enterprise Server. | Ikuti petunjuk dalam [dokumentasi Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) untuk menyiapkan string koneksi dan konfigurasi database untuk Micro Focus Enterprise Server. | Insinyur data, DevOps insinyur | 

### Buat ElastiCache klaster Amazon untuk instans Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CloudFormation template untuk ElastiCache cluster Amazon untuk instance Redis. | Gunakan [cuplikan kode contoh AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) untuk membuat CloudFormation template yang akan membuat ElastiCache klaster Amazon untuk instance Redis. | Arsitek awan | 
| Terapkan CloudFormation tumpukan untuk membuat ElastiCache klaster Amazon untuk instance Redis. | Buat ElastiCache klaster Amazon untuk instans Redis yang mengaktifkan replikasi Multi-AZ untuk beban kerja produksi. | Arsitek awan | 
| Konfigurasikan pengaturan koneksi PSOR Server Perusahaan. | Ikuti petunjuk dalam [dokumentasi Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) untuk menyiapkan konfigurasi koneksi PAC Scale-Out Repository (PSOR) untuk Micro Focus Enterprise Server PAC. | DevOps insinyur | 

### Buat grup penskalaan otomatis Micro Focus Enterprise Server ESCWA
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat AMI Server Perusahaan Fokus Mikro. | Buat instance Amazon EC2 Windows Server dan instal biner Micro Focus Enterprise Server dalam EC2 instance. Buat Amazon Machine Image (AMI) dari EC2 instance. Untuk informasi selengkapnya, lihat [dokumentasi instalasi Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Arsitek awan | 
| Buat CloudFormation template untuk Enterprise Server ESCWA.  | Gunakan [cuplikan kode contoh AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) untuk membuat templat untuk membuat tumpukan khusus Enterprise Server ESCWA dalam grup penskalaan otomatis. | Arsitek awan | 
| Menerapkan CloudFormation tumpukan untuk membuat grup EC2 penskalaan Amazon untuk Enterprise Server ESCWA. | Gunakan CloudFormation template untuk menyebarkan grup penskalaan otomatis dengan Micro Focus Enterprise Server ESCWA AMI yang dibuat di cerita sebelumnya. | Arsitek awan | 

### Membuat runbook AWS Systems Manager Automation
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CloudFormation template untuk runbook Systems Manager Automation. | Gunakan contoh cuplikan kode di bagian *Informasi tambahan* untuk membuat CloudFormation template yang akan membuat runbook Systems Manager Automation untuk mengotomatisasi pembuatan PAC, skala Server Perusahaan, dan skala Server Perusahaan. | Arsitek awan | 
| Menerapkan CloudFormation tumpukan yang berisi runbook Systems Manager Automation. | Gunakan CloudFormation template untuk menyebarkan tumpukan yang berisi runbook Otomasi untuk pembuatan PAC, skala Server Perusahaan, dan skala Server Perusahaan. | Arsitek awan | 

### Buat grup penskalaan otomatis untuk Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CloudFormation template untuk menyiapkan grup penskalaan otomatis untuk Micro Focus Enterprise Server. | Gunakan [cuplikan kode contoh AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) untuk membuat CloudFormation template yang akan membuat grup penskalaan otomatis. Template ini akan menggunakan kembali AMI yang sama yang dibuat untuk instance Micro Focus Enterprise Server ESCWA. Kemudian gunakan [cuplikan kode contoh AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) untuk membuat peristiwa siklus hidup penskalaan otomatis dan siapkan Amazon EventBridge untuk memfilter peristiwa penskalaan dan penskalaan dalam templat yang sama. CloudFormation  | Arsitek awan | 
| Terapkan CloudFormation tumpukan untuk grup penskalaan otomatis untuk Server Perusahaan Fokus Mikro. | Terapkan CloudFormation tumpukan yang berisi grup penskalaan otomatis untuk Server Perusahaan Fokus Mikro. | Arsitek awan | 

## Sumber daya terkait
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Kluster Kinerja dan Ketersediaan Server Perusahaan Fokus Mikro (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Kait EC2 siklus hidup Auto Scaling Amazon](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Menjalankan otomatisasi dengan pemicu menggunakan EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Informasi tambahan
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Skenario berikut harus otomatis untuk penskalaan atau penskalaan cluster PAC.

**Otomatisasi untuk memulai atau membuat ulang PAC**

Pada awal cluster PAC, Enterprise Server memerlukan ESCWA untuk memanggil APIs untuk membuat konfigurasi PAC. Ini memulai dan menambahkan wilayah Server Perusahaan ke dalam PAC. Untuk membuat atau membuat ulang PAC, gunakan langkah-langkah berikut: 

1. Konfigurasikan [PAC Scale-Out Repository (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) di ESCWA dengan nama yang diberikan.

   ```
   POST /server/v1/config/groups/sors
   ```

1. Buat PAC dengan nama tertentu dan lampirkan PSOR ke sana.

   ```
   POST /server/v1/config/groups/pacs
   ```

1. Konfigurasikan database wilayah dan basis data lintas wilayah jika ini adalah pertama kalinya Anda menyiapkan PAC.
**catatan**  
Langkah ini menggunakan kueri SQL dan alat **dbhfhadmin baris perintah Micro Focus** Enterprise Suite untuk membuat database dan mengimpor data awal.

1. Instal definisi PAC ke wilayah Server Perusahaan.

   ```
   POST /server/v1/config/mfds 
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Mulai wilayah Server Perusahaan di PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

Langkah-langkah sebelumnya dapat diimplementasikan dengan menggunakan PowerShell skrip Windows. 

Langkah-langkah berikut menjelaskan cara membangun otomatisasi untuk membuat PAC dengan menggunakan kembali skrip Windows PowerShell .

1. Buat template EC2 peluncuran Amazon yang mengunduh atau membuat PowerShell skrip Windows sebagai bagian dari proses bootstrap. Misalnya, Anda dapat menggunakan data EC2 pengguna untuk mengunduh skrip dari bucket Amazon Simple Storage Service (Amazon S3).

1. Buat runbook AWS Systems Manager Automation untuk menjalankan skrip Windows PowerShell .

1. Kaitkan runbook ke instance ESCWA dengan menggunakan tag instance.

1. Buat grup penskalaan otomatis ESCWA dengan menggunakan template peluncuran. 

Anda dapat menggunakan contoh CloudFormation cuplikan AWS berikut untuk membuat runbook Otomasi.

*Contoh CloudFormation cuplikan untuk runbook Systems Manager Automation yang digunakan untuk pembuatan PAC*

```
  PACInitDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to create Enterprise Server PAC
         mainSteps:
         - action: aws:runPowerShellScript
           name: CreatePAC
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - | 
               C:\Scripts\PAC-Init.ps1
  PacInitAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         description: Prepare Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunPACInitDocument
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref PACInitDocument
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
   PacInitDocumentAssociation:
     Type: AWS::SSM::Association
     Properties:
       DocumentVersion: "$LATEST"
       Name: !Ref PACInitDocument
       Targets:
         - Key: tag:Enterprise Server - ESCWA
           Values:
             - "true"
```

Untuk informasi selengkapnya, lihat [Server Perusahaan Fokus Mikro - Mengkonfigurasi PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Otomatisasi untuk penskalaan dengan instance Server Perusahaan baru**

Ketika instance Enterprise Server diskalakan, wilayah Enterprise Server harus ditambahkan ke PAC. Langkah-langkah berikut menjelaskan cara memanggil ESCWA APIs dan menambahkan wilayah Server Perusahaan ke dalam PAC. 

1. Instal definisi PAC ke wilayah Server Perusahaan.

   ```
   POST '/server/v1/config/mfds'
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Hangat Mulai wilayah di PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

1. Tambahkan instance Enterprise Server ke penyeimbang beban dengan mengaitkan grup penskalaan otomatis ke penyeimbang beban.

Langkah-langkah sebelumnya dapat diimplementasikan dengan menggunakan PowerShell skrip Windows. Untuk informasi selengkapnya, lihat [Server Perusahaan Fokus Mikro - Mengkonfigurasi PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

Langkah-langkah berikut dapat digunakan untuk membangun otomatisasi berbasis peristiwa untuk menambahkan instance Enterprise Server yang baru diluncurkan ke PAC dengan menggunakan kembali skrip Windows PowerShell . 

1. Buat template EC2 peluncuran Amazon untuk instance Enterprise Server yang menyediakan Wilayah Server Perusahaan selama bootstrap. Misalnya, Anda dapat menggunakan perintah Micro Focus Enterprise Server mfds untuk mengimpor konfigurasi wilayah. Untuk detail lebih lanjut dan opsi yang tersedia untuk perintah ini, lihat [Referensi Server Perusahaan](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html).

1. Buat grup penskalaan otomatis Enterprise Server yang menggunakan template peluncuran yang dibuat pada langkah sebelumnya.

1. Buat runbook Systems Manager Automation untuk menjalankan skrip Windows PowerShell . 

1. Kaitkan runbook ke instance ESCWA dengan menggunakan tag instance.

1. Buat EventBridge aturan Amazon untuk memfilter peristiwa EC2 Instance Launch Successful untuk grup penskalaan otomatis Enterprise Server, dan buat target untuk menggunakan runbook Otomasi.

Anda dapat menggunakan contoh CloudFormation cuplikan berikut untuk membuat runbook Otomasi dan aturannya. EventBridge 

*Contoh CloudFormation cuplikan untuk Systems Manager yang digunakan untuk menskalakan instance Enterprise Server*

```
  ScaleOutDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Adding MFDS Server into an existing PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Add_MFDS
           inputs:
             onFailure: Abort
             timeoutSeconds: "300"
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleOutAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleOutCommand
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleOutDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 InstanceId: "{{InstanceId}}"
                 MfdsPort: "{{MfdsPort}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
```

**Otomatisasi untuk penskalaan dalam instance Server Perusahaan**

Mirip dengan scaling out, ketika instance Enterprise Server *diskalakan*, event EC2 Instance-terminate Lifecycle Action dimulai, dan proses serta panggilan API berikut diperlukan untuk menghapus instance Micro Focus Enterprise Server dari PAC. 

1. Hentikan wilayah dalam instance Enterprise Server yang mengakhiri.

   ```
   POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
   ```

1. Hapus Enterprise Server Instance dari PAC.

   ```
   DELETE "/server/v1/config/mfds/${uid}"
   ```

1. Kirim sinyal untuk melanjutkan penghentian instance Enterprise Server.

Langkah-langkah sebelumnya dapat diimplementasikan dalam PowerShell skrip Windows. Untuk detail tambahan dari proses ini, lihat [dokumen Micro Focus Enterprise Server - Mengelola PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

Langkah-langkah berikut menjelaskan cara membangun otomatisasi berbasis peristiwa untuk menghentikan instance Enterprise Server dari PAC dengan menggunakan kembali skrip Windows. PowerShell  

1. Buat runbook Systems Manager Automation untuk menjalankan skrip Windows PowerShell .

1. Kaitkan runbook ke instance ESCWA dengan menggunakan tag instance.

1. Buat hook siklus hidup grup penskalaan otomatis untuk EC2 penghentian misalnya.

1. Buat EventBridge aturan Amazon untuk memfilter peristiwa Tindakan Siklus Hidup EC2 Penghentian Instans untuk grup penskalaan otomatis Server Perusahaan, dan buat target untuk menggunakan runbook Otomasi. 

Anda dapat menggunakan contoh CloudFormation template berikut untuk membuat runbook, lifecycle hook, dan aturan Systems Manager Automation. EventBridge 

*Contoh CloudFormation cuplikan untuk runbook Systems Manager Automation yang digunakan untuk penskalaan dalam instance Server Perusahaan*

```
  ScaleInDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Remove MFDS Server from PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Remove_MFDS
           inputs:
             onFailure: Abort
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleInAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"            
           InstanceId:
             type: String
             default: "Not-Available"                
         description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleInCommand
             action: aws:runCommand
             timeoutSeconds: "600"
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleInDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 MfdsPort: "{{MfdsPort}}"
                 InstanceId: "{{InstanceId}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
           - name: TerminateTheInstance
             action: aws:executeAwsApi
             inputs:
               Service: autoscaling
               Api: CompleteLifecycleAction
               AutoScalingGroupName: !Ref AutoScalingGroup
               InstanceId: "{{ InstanceId }}"
               LifecycleActionResult: CONTINUE
               LifecycleHookName: !Ref ScaleInLifeCycleHook
```

**Otomatisasi untuk pemicu penskalaan EC2 otomatis Amazon**

Proses menyiapkan kebijakan penskalaan untuk instance Enterprise Server memerlukan pemahaman tentang perilaku aplikasi. Dalam kebanyakan kasus, Anda dapat mengatur kebijakan penskalaan pelacakan target. Misalnya, Anda dapat menggunakan pemanfaatan CPU rata-rata sebagai CloudWatch metrik Amazon untuk mengatur kebijakan penskalaan otomatis. Untuk informasi selengkapnya, lihat [Kebijakan penskalaan pelacakan target untuk EC2 Auto Scaling Amazon](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Untuk aplikasi yang memiliki pola lalu lintas reguler, pertimbangkan untuk menggunakan kebijakan penskalaan prediktif. Untuk informasi selengkapnya, lihat [Penskalaan prediktif untuk Auto EC2 Scaling Amazon.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html) 

# Membangun penampil file mainframe tingkat lanjut di AWS Cloud
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Boopathy GOPALSAMY dan Jeremiah O'Connor, Amazon Web Services*

## Ringkasan
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-summary"></a>

Pola ini menyediakan contoh kode dan langkah-langkah untuk membantu Anda membangun alat canggih untuk menjelajahi dan meninjau file format tetap mainframe Anda dengan menggunakan layanan tanpa server AWS. Pola ini memberikan contoh cara mengonversi file input mainframe ke dokumen OpenSearch Layanan Amazon untuk menjelajah dan mencari. Alat penampil file dapat membantu Anda mencapai hal berikut:
+ Pertahankan struktur dan tata letak file mainframe yang sama untuk konsistensi di lingkungan migrasi target AWS Anda (misalnya, Anda dapat mempertahankan tata letak yang sama untuk file dalam aplikasi batch yang mentransmisikan file ke pihak eksternal)
+ Mempercepat pengembangan dan pengujian selama migrasi mainframe
+ Mendukung kegiatan pemeliharaan setelah migrasi

## Prasyarat dan batasan
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Virtual Private Cloud (VPC) dengan subnet yang dapat dijangkau oleh platform lama Anda
+ 
**catatan**  
File input dan copybook bahasa berorientasi bisnis umum (COBOL) yang sesuai (: Untuk contoh file input dan copybook COBOL, lihat di repositori. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Untuk informasi selengkapnya tentang copybook COBOL, lihat Panduan Pemrograman [COBOL Enterprise untuk z/OS 6.3](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) di situs web IBM.)

**Batasan**
+ Penguraian copybook dibatasi tidak lebih dari dua level bersarang (TERJADI)

## Arsitektur
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-architecture"></a>

**Tumpukan teknologi sumber**
+ Masukan file dalam [format FB (Tetap Diblokir)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ Tata letak copybook COBOL

**Tumpukan teknologi target**
+ Amazon Athena
+  OpenSearch Layanan Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Arsitektur target**

Diagram berikut menunjukkan proses parsing dan konversi file input mainframe ke dokumen OpenSearch Service untuk browsing dan pencarian.

![\[Proses untuk mengurai dan mengonversi file input mainframe ke OpenSearch Layanan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna admin atau aplikasi mendorong file input ke satu bucket S3 dan copybook COBOL ke bucket S3 lainnya.

1. 
**catatan**  
Bucket S3 dengan file input memanggil fungsi Lambda yang memulai alur kerja Step Functions tanpa server. : Penggunaan pemicu peristiwa S3 dan fungsi Lambda untuk menggerakkan alur kerja Step Functions dalam pola ini adalah opsional. Contoh GitHub kode dalam pola ini tidak termasuk penggunaan layanan ini, tetapi Anda dapat menggunakan layanan ini berdasarkan kebutuhan Anda.

1. Alur kerja Step Functions mengkoordinasikan semua proses batch dari fungsi Lambda berikut:
   + `s3copybookparser.py`Fungsi mem-parsing tata letak copybook dan mengekstrak atribut bidang, tipe data, dan offset (diperlukan untuk pemrosesan data input).
   + `s3toathena.py`Fungsi ini menciptakan tata letak tabel Athena. Athena mem-parsing data input yang diproses oleh `s3toathena.py` fungsi dan mengonversi data ke file CSV.
   + `s3toelasticsearch.py`Fungsi ini menyerap file hasil dari bucket S3 dan mendorong file ke Service. OpenSearch 

1. Pengguna mengakses OpenSearch Dasbor dengan OpenSearch Layanan untuk mengambil data dalam berbagai format tabel dan kolom dan kemudian menjalankan kueri terhadap data yang diindeks.

## Alat
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) menggunakan SQL standar.
+ [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. Dalam pola ini, Anda menggunakan Lambda untuk mengimplementasikan logika inti, seperti mengurai file, mengonversi data, dan memuat data ke OpenSearch Layanan untuk akses file interaktif.
+ [Amazon OpenSearch Service adalah layanan](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) terkelola yang membantu Anda menerapkan, mengoperasikan, dan menskalakan kluster OpenSearch Layanan di AWS Cloud. Dalam pola ini, Anda menggunakan OpenSearch Layanan untuk mengindeks file yang dikonversi dan menyediakan kemampuan pencarian interaktif bagi pengguna.
+ [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 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 dengan 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 sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [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 layanan AWS lainnya untuk membangun aplikasi yang penting bagi bisnis. Dalam pola ini, Anda menggunakan Step Functions untuk mengatur fungsi Lambda.

**Alat-alat lainnya**
+ [GitHub](https://github.com/)adalah layanan hosting kode yang menyediakan alat kolaborasi dan kontrol versi.
+ [Python adalah bahasa](https://www.python.org/) pemrograman tingkat tinggi.

**Kode**

Kode untuk pola ini tersedia di GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositori.

## Epik
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-epics"></a>

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | [Buat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) untuk menyimpan copybook, file input, dan file output. Kami merekomendasikan struktur folder berikut untuk bucket S3 Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Buat fungsi s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Buat fungsi s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Buat fungsi s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Buat kluster OpenSearch Layanan. | **Buat cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Berikan akses ke peran IAM**Untuk memberikan akses berbutir halus ke peran IAM fungsi Lambda ()`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Buat Step Functions untuk orkestrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 

### Menyebarkan dan menjalankan
<a name="deploy-and-run"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file input dan copybook ke bucket S3. | Unduh file sampel dari folder sampel [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositori dan unggah file ke bucket S3 yang Anda buat sebelumnya.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 
| Memanggil Step Functions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)<pre>{<br />  "s3_copybook_bucket_name": "<BUCKET NAME>",<br />  "s3_copybook_bucket_key": "<COPYBOOK PATH>",<br />  "s3_source_bucket_name": "<BUCKET NAME",<br />  "s3_source_bucket_key": "INPUT FILE PATH"<br />}</pre>Contoh:<pre>{<br />  "s3_copybook_bucket_name": "fileaidtest",<br />  "s3_copybook_bucket_key": "copybook/acctix.cpy",<br />  "s3_source_bucket_name": "fileaidtest",<br />  "s3_source_bucket_key": "input/acctindex"<br />}</pre> | AWS Umum | 
| Validasi eksekusi alur kerja di Step Functions. | Di [konsol Step Functions](https://console.aws.amazon.com/states/home), tinjau eksekusi alur kerja di **inspektur Grafik**. Status eksekusi dijalankan diberi kode warna untuk mewakili status eksekusi. Misalnya, biru menunjukkan **Dalam Kemajuan**, hijau menunjukkan **Berhasil,** dan merah menunjukkan **Gagal**. Anda juga dapat meninjau tabel di bagian **Riwayat peristiwa eksekusi** untuk informasi lebih rinci tentang peristiwa eksekusi.Untuk contoh eksekusi alur kerja grafis, lihat *grafik Step Functions* di bagian *Informasi tambahan* dari pola ini. | AWS Umum | 
| Validasi log pengiriman di Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Untuk contoh log pengiriman yang berhasil, lihat *log CloudWatch pengiriman* di bagian *Informasi tambahan* dari pola ini. | AWS Umum | 
| Validasi file yang diformat di OpenSearch Dasbor dan lakukan operasi file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS Umum | 

## Sumber daya terkait
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-resources"></a>

**Referensi**
+ [Contoh Copybook COBOL (dokumentasi](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) IBM)
+ [BMC Compuware File-aid](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html) (dokumentasi BMC)

**Tutorial**
+ [Tutorial: Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda (dokumentasi AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))
+ [Bagaimana cara membuat alur kerja tanpa server dengan AWS Step Functions dan AWS Lambda](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/) (dokumentasi AWS)
+ [Menggunakan OpenSearch Dasbor dengan OpenSearch Layanan Amazon](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (dokumentasi AWS)

## Informasi tambahan
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Grafik Step Functions**

Contoh berikut menunjukkan grafik Step Functions. Grafik menunjukkan status eksekusi run untuk fungsi Lambda yang digunakan dalam pola ini.

![\[Grafik Step Functions menunjukkan status eksekusi run untuk fungsi Lambda yang digunakan dalam pola ini.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch log pengiriman**

Contoh berikut menunjukkan log pengiriman yang berhasil untuk eksekusi `s3toelasticsearch` eksekusi.


| 
| 
| 2022-08-10T 15:53:33.033-05:00 | Jumlah dokumen pemrosesan: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T 15:53:33.171-05:00 | [INFO] 2022-08-10T 20:53:33.171 Z a1b2c3d4-5678-90ab-cdef- Post:443/\$1Bulk [status: 200 permintaan: 0.100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T 15:53:33.172-05:00 | Penulisan massal berhasil: 100 dokumen | 

# Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Ringkasan
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

[Pola ini menyediakan lingkungan wadah sampel untuk menjalankan beban kerja mainframe yang telah dimodernisasi dengan menggunakan alat Blu Age.](https://www.bluage.com/) Blu Age mengubah beban kerja mainframe lama menjadi kode Java modern. Pola ini menyediakan pembungkus di sekitar aplikasi Java sehingga Anda dapat menjalankannya dengan menggunakan layanan orkestrasi kontainer seperti Amazon Elastic Container Service (Amazon ECS) [Service Elastic Container (Amazon ECS) atau Amazon Elastic [Kubernetes](https://aws.amazon.com/eks/) Service (Amazon](https://aws.amazon.com/ecs/) EKS).

Untuk informasi selengkapnya tentang memodernisasi beban kerja Anda dengan menggunakan layanan Blu Age dan AWS, lihat publikasi AWS Prescriptive Guidance ini:
+ [Menjalankan beban kerja mainframe Blu Age yang dimodernisasi pada infrastruktur AWS tanpa server](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer dengan menggunakan Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

[Untuk bantuan menggunakan Blu Age untuk memodernisasi beban kerja mainframe Anda, hubungi tim Blu Age dengan memilih **Hubungi pakar kami** di situs web Blu Age.](https://www.bluage.com/) Untuk bantuan dalam memigrasikan beban kerja modern Anda ke AWS, mengintegrasikannya dengan layanan AWS, dan memindahkannya ke produksi, hubungi manajer akun AWS Anda atau isi formulir AWS [Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Prasyarat dan batasan
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Prasyarat**
+ Aplikasi Java modern yang dibuat oleh Blu Age. Untuk tujuan pengujian, pola ini menyediakan contoh aplikasi Java yang dapat Anda gunakan sebagai bukti konsep.
+ Lingkungan [Docker](https://aws.amazon.com/docker/) yang dapat Anda gunakan untuk membangun wadah.

**Batasan**

Bergantung pada platform orkestrasi kontainer yang Anda gunakan, sumber daya yang dapat disediakan untuk wadah (seperti CPU, RAM, dan penyimpanan) mungkin terbatas. Misalnya, jika Anda menggunakan Amazon ECS dengan AWS Fargate, lihat dokumentasi [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) untuk batasan dan pertimbangan.

## Arsitektur
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Tumpukan teknologi sumber**
+ Usia Blu
+ Java

**Tumpukan teknologi target**
+ Docker

**Arsitektur target**

Diagram berikut menunjukkan arsitektur aplikasi Blu Age dalam wadah Docker.

![\[Aplikasi Blu Age dalam wadah Docker\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. Titik masuk untuk wadah adalah skrip pembungkus. Skrip bash ini bertanggung jawab untuk mempersiapkan lingkungan runtime untuk aplikasi Blu Age dan memproses output.

1. Variabel lingkungan dalam wadah digunakan untuk mengonfigurasi variabel dalam skrip pembungkus, seperti nama bucket Amazon Simple Storage Service (Amazon S3) dan kredenal database Simple Storage Service (Amazon S3). Variabel lingkungan disediakan oleh AWS Secrets Manager atau Parameter Store, kemampuan AWS Systems Manager. Jika Anda menggunakan Amazon ECS sebagai layanan orkestrasi kontainer, Anda juga dapat melakukan hardcode variabel lingkungan dalam definisi tugas Amazon ECS.

1. Skrip pembungkus bertanggung jawab untuk menarik file input apa pun dari bucket S3 ke dalam wadah sebelum Anda menjalankan aplikasi Blu Age. AWS Command Line Interface (AWS CLI) diinstal di dalam container. Ini menyediakan mekanisme untuk mengakses objek yang disimpan di Amazon S3 melalui titik akhir gateway virtual private cloud (VPC).

1. File Java Archive (JAR) untuk aplikasi Blu Age mungkin perlu berkomunikasi dengan sumber data lain, seperti Amazon Aurora.

1. Setelah selesai, skrip pembungkus mengirimkan file keluaran yang dihasilkan ke dalam bucket S3 untuk diproses lebih lanjut (misalnya, oleh layanan CloudWatch logging Amazon). Pola ini juga mendukung pengiriman file log zip ke Amazon S3, jika Anda menggunakan alternatif untuk CloudWatch logging standar.

## Alat
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
+ [Amazon Elastic Container Service (Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)) adalah layanan manajemen kontainer yang cepat dan dapat diskalakan yang membantu Anda menjalankan, menghentikan, dan mengelola kontainer di klaster.

**Alat**
+ [Docker](https://aws.amazon.com/docker/) adalah platform perangkat lunak untuk membangun, menguji, dan menyebarkan aplikasi. Docker mengemas perangkat lunak ke dalam unit standar yang disebut [kontainer](https://aws.amazon.com/containers/), yang memiliki semua yang dibutuhkan perangkat lunak untuk dijalankan, termasuk perpustakaan, alat sistem, kode, dan runtime. Anda dapat menggunakan Docker untuk menyebarkan dan menskalakan aplikasi ke lingkungan apa pun.
+ [Bash](https://www.gnu.org/software/bash/manual/) adalah antarmuka bahasa perintah (shell) untuk sistem operasi GNU.
+ [Java](https://www.java.com/) adalah bahasa pemrograman dan lingkungan pengembangan yang digunakan dalam pola ini.
+ [Blu Age](https://www.bluage.com/) adalah alat modernisasi mainframe AWS yang mengubah beban kerja mainframe lama, termasuk kode aplikasi, dependensi, dan infrastruktur, menjadi beban kerja modern untuk cloud.

**Repositori kode**

Kode untuk pola ini tersedia di [repositori wadah sampel GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Praktik terbaik
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Eksternalisasi variabel untuk mengubah perilaku aplikasi Anda dengan menggunakan variabel lingkungan. Variabel-variabel ini memungkinkan solusi orkestrasi kontainer untuk mengubah lingkungan runtime tanpa membangun kembali wadah. Pola ini mencakup contoh variabel lingkungan yang dapat berguna untuk aplikasi Blu Age.
+ Validasi dependensi aplikasi apa pun sebelum Anda menjalankan aplikasi Blu Age Anda. Misalnya, verifikasi bahwa database tersedia dan kredensialnya valid. Tulis tes dalam skrip pembungkus untuk memverifikasi dependensi, dan gagal lebih awal jika tidak terpenuhi.
+ Gunakan logging verbose dalam skrip pembungkus. Berinteraksi langsung dengan wadah yang sedang berjalan dapat menjadi tantangan, tergantung pada platform orkestrasi dan berapa lama pekerjaan itu berlangsung. Pastikan bahwa output yang berguna ditulis `STDOUT` untuk membantu mendiagnosis masalah apa pun. Misalnya, output mungkin termasuk isi direktori kerja aplikasi baik sebelum dan sesudah Anda menjalankan aplikasi.

## Epik
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Dapatkan file JAR aplikasi Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Opsi 1 - Bekerja dengan Blu Age untuk mendapatkan file JAR aplikasi Anda. | Wadah dalam pola ini membutuhkan aplikasi Blu Age. Atau, Anda dapat menggunakan contoh aplikasi Java yang disediakan dengan pola ini untuk prototipe.Bekerja dengan tim Blu Age untuk mendapatkan file JAR untuk aplikasi Anda yang dapat dipanggang ke dalam wadah. Jika file JAR tidak tersedia, lihat tugas berikutnya untuk menggunakan aplikasi sampel sebagai gantinya. | Arsitek awan | 
| Opsi 2 - Bangun atau gunakan file JAR aplikasi sampel yang disediakan. | Pola ini menyediakan file JAR sampel prebuilt. File ini mengeluarkan variabel lingkungan aplikasi `STDOUT` sebelum tidur selama 30 detik dan keluar.File ini diberi nama `bluAgeSample.jar` dan terletak di [folder docker repositori](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker). GitHub [Jika Anda ingin mengubah kode dan membangun versi file JAR Anda sendiri, gunakan kode sumber yang terletak di. /java\$1 sample/src/sample \$1java\$1app.java](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src) di repositori. GitHub Anda dapat menggunakan skrip build di[. ](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample)/java\$1sample/build.sh untuk mengkompilasi sumber Java dan membangun JAR fie baru. | Pengembang aplikasi | 

### Bangun wadah Blu Age
<a name="build-the-blu-age-container"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning GitHub repositori. | Kloning repositori kode sampel dengan menggunakan perintah:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Gunakan Docker untuk membangun wadah. | Gunakan Docker untuk membangun wadah sebelum Anda mendorongnya ke registri Docker seperti Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Uji wadah Blu Age. | (Opsional) Jika perlu, uji wadah secara lokal dengan menggunakan perintah:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Otentikasi ke repositori Docker Anda. | Jika Anda berencana untuk menggunakan Amazon ECR, ikuti petunjuk dalam [dokumentasi Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) untuk menginstal dan mengonfigurasi AWS CLI dan mengautentikasi CLI Docker ke registri default Anda.Kami menyarankan Anda menggunakan [get-login-password perintah](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) untuk otentikasi.  [Konsol Amazon ECR](https://console.aws.amazon.com/ecr/) menyediakan versi pra-isi dari perintah ini jika Anda menggunakan tombol perintah **tekan Lihat**. Untuk informasi selengkapnya, lihat [dokumentasi Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html).<pre>aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com</pre>Jika Anda tidak berencana untuk menggunakan Amazon ECR, ikuti petunjuk yang diberikan untuk sistem registri kontainer Anda. | AWS DevOps | 
| Buat repositori kontainer. | Buat repositori di Amazon ECR. Untuk petunjuknya, lihat pola [Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) menggunakan Terraform.Jika Anda menggunakan sistem registri kontainer lain, ikuti instruksi yang diberikan untuk sistem itu. | AWS DevOps | 
| Tandai dan dorong wadah Anda ke repositori target. | Jika Anda menggunakan Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Untuk informasi selengkapnya, lihat [Mendorong gambar Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) di *Panduan Pengguna Amazon ECR*. | AWS DevOps | 

## Sumber daya terkait
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**Sumber daya AWS**
+ [Repositori wadah sampel AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Menjalankan beban kerja mainframe Blu Age yang dimodernisasi pada infrastruktur AWS tanpa server](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer dengan menggunakan Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Menggunakan Amazon ECR dengan AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (Panduan Pengguna *Amazon ECR*)
+ [Otentikasi registri pribadi](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Panduan Pengguna Amazon ECR*)
+ [Dokumentasi Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Dokumentasi Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Sumber daya tambahan**
+ [Situs Blu Age](https://www.bluage.com/)
+ [Situs Docker](https://docker.com/)

# Mengonversi dan membongkar data EBCDIC ke ASCII di AWS dengan menggunakan Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Ringkasan
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-summary"></a>

Karena mainframe biasanya meng-host data bisnis penting, memodernisasi data adalah salah satu tugas terpenting saat memigrasikan data ke Amazon Web Services (AWS) Cloud atau lingkungan American Standard Code for Information Interchange (ASCII) lainnya. Pada mainframe, data biasanya dikodekan dalam format Extended Binary-Coded Decimal Interchange Code (EBCDIC). Mengekspor database, Metode Akses Penyimpanan Virtual (VSAM), atau file datar umumnya menghasilkan file EBCDIC biner yang dikemas, yang lebih kompleks untuk dimigrasi. Solusi migrasi database yang paling umum digunakan adalah change data capture (CDC), yang, dalam banyak kasus, secara otomatis mengubah pengkodean data. Namun, mekanisme CDC mungkin tidak tersedia untuk database, VSAM, atau file datar ini. Untuk file-file ini, pendekatan alternatif diperlukan untuk memodernisasi data.

Pola ini menjelaskan cara memodernisasi data EBCDIC dengan mengubahnya menjadi format ASCII. Setelah konversi, Anda dapat memuat data ke database terdistribusi atau memiliki aplikasi di cloud memproses data secara langsung. Pola menggunakan skrip konversi dan file sampel dalam [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositori.

## Prasyarat dan batasan
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ File input EBCDIC dan copybook bahasa berorientasi bisnis umum (COBOL) yang sesuai. Contoh file EBCDIC dan copybook COBOL disertakan dalam repositori. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Untuk informasi lebih lanjut tentang copybook COBOL, lihat [Enterprise COBOL untuk z/OS 6.4 Panduan Pemrograman](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) di situs web IBM.

**Batasan**
+ Layout file yang didefinisikan di dalam program COBOL tidak didukung. Mereka harus tersedia secara terpisah.

**Versi produk**
+ Python versi 3.8 atau yang lebih baru

## Arsitektur
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-architecture"></a>

**Tumpukan teknologi sumber**
+ Data EBCDIC pada mainframe
+ Copybook COBOL

**Tumpukan teknologi target**
+ Instans Amazon Elastic Compute Cloud (Amazon EC2) di cloud pribadi virtual (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python dan paket yang diperlukan, JavaScript Object Notation (JSON), sys, dan datetime
+ File datar ASCII siap dibaca oleh aplikasi modern atau dimuat dalam tabel database relasional

**Arsitektur target**

![\[Data EBCDIC dikonversi ke ASCII pada sebuah instance EC2 dengan menggunakan skrip Python dan copybook COBOL\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


Diagram arsitektur menunjukkan proses konversi file EBCDIC ke file ASCII pada sebuah instance: EC2 

1. Menggunakan skrip **parse\$1copybook\$1to\$1json.py**, Anda mengonversi copybook COBOL ke file JSON.

1. Menggunakan file JSON dan skrip **extract\$1ebcdic\$1to\$1ascii.py**, Anda mengonversi data EBCDIC ke file ASCII.

**Otomatisasi dan skala**

Setelah sumber daya yang diperlukan untuk konversi file manual pertama tersedia, Anda dapat mengotomatiskan konversi file. Pola ini tidak termasuk instruksi untuk otomatisasi. Ada beberapa cara untuk mengotomatiskan konversi. Berikut ini adalah ikhtisar dari satu pendekatan yang mungkin:

1. Merangkum perintah AWS Command Line Interface (AWS CLI) dan perintah skrip Python ke dalam skrip shell.

1. Buat fungsi AWS Lambda yang secara asinkron mengirimkan tugas skrip shell ke dalam sebuah instance. EC2 Untuk informasi selengkapnya, lihat [Menjadwalkan lowongan SSH menggunakan AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Buat pemicu Amazon Simple Storage Service (Amazon S3) yang memanggil fungsi Lambda setiap kali file lama diunggah. Untuk informasi selengkapnya, lihat [Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Alat
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) 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 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 (Amazon). EC2
+ [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 dengan 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 sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

**Alat lainnya**
+ [GitHub](https://github.com/)adalah layanan hosting kode yang menyediakan alat kolaborasi dan kontrol versi.
+ [Python adalah bahasa](https://www.python.org/) pemrograman tingkat tinggi.

**Repositori kode**

Kode untuk pola ini tersedia di [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositori.

## Epik
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-epics"></a>

### Siapkan EC2 instance
<a name="prepare-the-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan sebuah EC2 instance. |  EC2 Instans harus memiliki akses internet keluar. Hal ini memungkinkan instance untuk mengakses kode sumber Python yang tersedia di. GitHub Untuk membuat instance:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS Umum | 
| Instal Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS Umum, Linux | 
| Instal Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS Umum, Linux | 
| Kloning GitHub repositori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS Umum, GitHub | 

### Buat file ASCII dari data EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Parse copybook COBOL ke dalam file layout JSON. | Di dalam `mainframe-data-utilities` folder, jalankan skrip **parse\$1copybook\$1to\$1json.py**. Modul otomatisasi ini membaca tata letak file dari copybook COBOL dan membuat file JSON. File JSON berisi informasi yang diperlukan untuk menafsirkan dan mengekstrak data dari file sumber. Ini menciptakan metadata JSON dari copybook COBOL. Perintah berikut mengkonversi copybook COBOL ke file JSON.<pre>python3 parse_copybook_to_json.py \<br />-copybook LegacyReference/COBPACK2.cpy \<br />-output sample-data/cobpack2-list.json \<br />-dict sample-data/cobpack2-dict.json \<br />-ebcdic sample-data/COBPACK.OUTFILE.txt \<br />-ascii sample-data/COBPACK.ASCII.txt \<br />-print 10000</pre>Script mencetak argumen yang diterima.<pre>-----------------------------------------------------------------------<br />Copybook file...............| LegacyReference/COBPACK2.cpy<br />Parsed copybook (JSON List).| sample-data/cobpack2-list.json<br />JSON Dict (documentation)...| sample-data/cobpack2-dict.json<br />ASCII file..................| sample-data/COBPACK.ASCII.txt<br />EBCDIC file.................| sample-data/COBPACK.OUTFILE.txt<br />Print each..................| 10000<br />-----------------------------------------------------------------------</pre>Untuk informasi selengkapnya tentang argumen, lihat [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) di GitHub repositori. | AWS Umum, Linux | 
| Periksa file tata letak JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)<pre> "input": "extract-ebcdic-to-ascii/COBPACK.OUTFILE.txt",<br /> "output": "extract-ebcdic-to-ascii/COBPACK.ASCII.txt",<br /> "max": 0,<br /> "skip": 0,<br /> "print": 10000,<br /> "lrecl": 150,<br /> "rem-low-values": true,<br /> "separator": "|",<br /> "transf": [<br /> {<br /> "type": "ch",<br /> "bytes": 19,<br /> "name": "OUTFILE-TEXT"<br /> } </pre>Atribut yang paling penting dari file layout JSON adalah:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Untuk informasi selengkapnya tentang file tata letak JSON, lihat file [README di repositori](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). GitHub  | AWS Umum, JSON | 
| Buat file ASCII.  | Jalankan skrip **extract\$1ebcdic\$1to\$1ascii.py**, yang termasuk dalam GitHub repositori kloning. Skrip ini membaca file EBCDIC dan menulis file ASCII yang dikonversi dan dapat dibaca.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Saat skrip memproses data EBCDIC, ia mencetak pesan untuk setiap batch 10.000 catatan. Lihat contoh berikut ini.<pre>------------------------------------------------------------------<br />2023-05-15 21:21:46.322253 | Local Json file   | -local-json | sample-data/cobpack2-list.json<br />2023-05-15 21:21:47.034556 | Records processed | 10000<br />2023-05-15 21:21:47.736434 | Records processed | 20000<br />2023-05-15 21:21:48.441696 | Records processed | 30000<br />2023-05-15 21:21:49.173781 | Records processed | 40000<br />2023-05-15 21:21:49.874779 | Records processed | 50000<br />2023-05-15 21:21:50.705873 | Records processed | 60000<br />2023-05-15 21:21:51.609335 | Records processed | 70000<br />2023-05-15 21:21:52.292989 | Records processed | 80000<br />2023-05-15 21:21:52.938366 | Records processed | 89280<br />2023-05-15 21:21:52.938448 Seconds 6.616232</pre>Untuk informasi tentang cara mengubah frekuensi cetak, lihat [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) di GitHub repositori. | AWS Umum | 
| Periksa file ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Jika Anda menggunakan contoh file EBCDIC yang disediakan, berikut ini adalah catatan pertama dalam file ASCII.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | AWS Umum, Linux | 
| Evaluasi file EBCDIC. | Di EC2 konsol Amazon, masukkan perintah berikut. Ini membuka catatan pertama dari file EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Jika Anda menggunakan contoh file EBCDIC, berikut ini adalah hasilnya.<pre> 00000000: 60f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 f0f0 `...............<br /> 00000010: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 ................<br /> 00000020: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 ................<br /> 00000030: f0f0 f0f0 f0f0 d000 0000 0005 f5e1 00fa ................<br /> 00000040: 0a1f 0000 0000 0005 f5e1 00ff ffff fffa ................<br /> 00000050: 0a1f 0000 000f 0000 0c10 0000 000f 1000 ................<br /> 00000060: 0000 0d00 0000 0000 1000 0000 0f00 0000 ................<br /> 00000070: 0000 1000 0000 0dc1 c100 0000 0000 0000 ................<br /> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................<br /> 00000090: 0000 0000 0000 ......</pre>Untuk mengevaluasi kesetaraan antara sumber dan file target, diperlukan pengetahuan komprehensif tentang EBCDIC. Misalnya, karakter pertama dari contoh file EBCDIC adalah tanda hubung (). `-` Dalam notasi heksadesimal dari file EBCDIC, karakter ini diwakili oleh, dan dalam notasi heksadesimal dari file ASCII`60`, karakter ini diwakili oleh. `2D` Untuk tabel EBCDIC-to-ASCII konversi, lihat [EBCDIC ke ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) di situs web IBM. | AWS Umum, Linux, EBCDIC | 

## Sumber daya terkait
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-resources"></a>

**Referensi**
+ [Set karakter EBCDIC (dokumentasi](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) IBM)
+ [EBCDIC ke ASCII (dokumentasi IBM](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii))
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (dokumentasi IBM)
+ [Konsep dasar JCL](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (dokumentasi IBM)
+ [Connect ke instans Linux Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 dokumentasi Amazon)

**Tutorial**
+ [Menjadwalkan pekerjaan SSH menggunakan AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (postingan blog AWS)
+ [Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda (dokumentasi AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))

# Konversi file mainframe dari format EBCDIC ke format ASCII yang dibatasi karakter di Amazon S3 menggunakan AWS Lambda
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Ringkasan
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-summary"></a>

Pola ini menunjukkan kepada Anda cara meluncurkan AWS Lambda fungsi yang secara otomatis mengonversi file mainframe Extended Binary Coded Decimal Interchange Code (EBCDIC) ke file American Standard Code for Information Interchange (ASCII) yang dibatasi karakter. Fungsi Lambda berjalan setelah file ASCII diunggah ke bucket Amazon Simple Storage Service (Amazon S3). Setelah konversi file, Anda dapat membaca file ASCII pada beban kerja berbasis x86 atau memuat file ke dalam database modern.

Pendekatan konversi file yang ditunjukkan dalam pola ini dapat membantu Anda mengatasi tantangan bekerja dengan file EBCDIC di lingkungan modern. File yang dikodekan dalam EBCDIC sering berisi data yang direpresentasikan dalam format desimal biner atau dikemas, dan bidang memiliki panjang tetap. Karakteristik ini menciptakan hambatan karena beban kerja berbasis x86 modern atau lingkungan terdistribusi umumnya bekerja dengan data yang dikodekan ASCII dan tidak dapat memproses file EBCDIC.

## Prasyarat dan batasan
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Bucket Amazon S3
+ Pengguna AWS Identity and Access Management (IAM) dengan izin administratif
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) atau yang lebih baru
+ File datar yang dikodekan dalam EBCDIC dan struktur data yang sesuai dalam copybook bahasa berorientasi bisnis umum (COBOL)

**catatan**  
[Pola ini menggunakan contoh file EBCDIC ([Client.ebcdic.txt) dan copybook COBOL yang sesuai (COBKS05.cpy](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)).](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy) Kedua file tersedia di GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositori.

**Batasan**
+ Copybook COBOL biasanya memiliki beberapa definisi tata letak. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)Proyek ini dapat mengurai jenis copybook ini tetapi tidak dapat menyimpulkan tata letak mana yang harus dipertimbangkan pada konversi data. Ini karena copybook tidak memegang logika ini (yang tetap pada program COBOL sebagai gantinya). Akibatnya, Anda harus secara manual mengkonfigurasi aturan untuk memilih tata letak setelah Anda mengurai copybook.
+ Pola ini tunduk pada kuota [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

## Arsitektur
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-architecture"></a>

**Tumpukan teknologi sumber**
+ IBM z/OS, IBM i, dan sistem EBCDIC lainnya
+ File berurutan dengan data yang dikodekan dalam EBCDIC (seperti IBM Db2 unload)
+ Copybook COBOL

**Tumpukan teknologi target**
+ Amazon S3
+ Pemberitahuan acara Amazon S3
+ IAM
+ Fungsi Lambda
+ Python 3.8 atau yang lebih baru
+ Utilitas Data Mainframe
+ Metadata JSON
+ File ASCII yang dibatasi karakter

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk mengkonversi file mainframe EBCDIC ke file ASCII.

![\[Arsitektur untuk mengonversi file EBCDIC mainframe ke file ASCII\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna menjalankan skrip parser copybook, yang mengubah copybook COBOL menjadi file JSON.

1. Pengguna mengunggah metadata JSON ke bucket Amazon S3. Ini membuat metadata dapat dibaca oleh fungsi Lambda konversi data.

1. Pengguna atau proses otomatis mengunggah file EBCDIC ke bucket Amazon S3.

1. Peristiwa notifikasi Amazon S3 memicu fungsi Lambda konversi data.

1. AWS memverifikasi izin baca-tulis bucket Amazon S3 untuk fungsi Lambda.

1. Lambda membaca file dari bucket Amazon S3 dan mengonversi file secara lokal dari EBCDIC ke ASCII.

1. Lambda mencatat status proses di Amazon. CloudWatch

1. Lambda menulis file ASCII kembali ke Amazon S3.

**catatan**  
Skrip parser copybook berjalan satu kali untuk melakukan konversi metadata ke format JSON, yang kemudian disimpan dalam bucket Amazon S3. Setelah konversi awal, semua file EBCDIC berikutnya yang mereferensikan file JSON yang sama di bucket Amazon S3 akan menggunakan konfigurasi metadata yang ada.

## Alat
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-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.
+ [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 CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)adalah shell berbasis browser yang dapat Anda gunakan untuk mengelola Layanan AWS dengan menggunakan AWS Command Line Interface (AWS CLI) dan berbagai alat pengembangan yang sudah diinstal sebelumnya.
+ [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. Lambda menjalankan kode Anda hanya bila diperlukan dan menskalakan secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

**Alat-alat lainnya**
+ [GitHub](https://github.com/)adalah layanan hosting kode yang menyediakan alat kolaborasi dan kontrol versi.
+ [Python adalah bahasa](https://www.python.org/) pemrograman tingkat tinggi.

**Kode**

Kode untuk pola ini tersedia di GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositori.

## Praktik terbaik
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-best-practices"></a>

Pertimbangkan praktik terbaik berikut:
+ Tetapkan izin yang diperlukan di tingkat Amazon Resource Name (ARN).
+ Selalu berikan izin hak istimewa paling sedikit untuk kebijakan IAM. Untuk informasi selengkapnya, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam dokumentasi IAM.

## Epik
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-epics"></a>

### Buat variabel lingkungan dan folder kerja
<a name="create-environment-variables-and-a-working-folder"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat variabel lingkungan. | Salin variabel lingkungan berikut ke editor teks, lalu ganti `<placeholder>` nilai dalam contoh berikut dengan nilai sumber daya Anda:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Anda akan membuat referensi ke bucket Amazon S3 Anda, Akun AWS, dan Wilayah AWS yang lebih baru.Untuk menentukan variabel lingkungan, buka [CloudShell konsol](https://console.aws.amazon.com/cloudshell/), lalu salin dan tempel variabel lingkungan Anda yang diperbarui ke baris perintah.Anda harus mengulangi langkah ini setiap kali CloudShell sesi dimulai ulang. | AWS Umum | 
| Buat folder yang berfungsi. | Untuk menyederhanakan proses pembersihan sumber daya nanti, buat folder kerja CloudShell dengan menjalankan perintah berikut:<pre>mkdir workdir; cd workdir</pre>Anda harus mengubah direktori ke direktori kerja (`workdir`) setiap kali Anda kehilangan koneksi ke CloudShell sesi Anda. | AWS Umum | 

### Mendefinisikan peran dan kebijakan IAM
<a name="define-an-iam-role-and-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan kepercayaan untuk fungsi Lambda. | Konverter EBCDIC berjalan dalam fungsi Lambda. Fungsi tersebut harus memiliki peran IAM. Sebelum Anda membuat peran IAM, Anda harus menentukan dokumen kebijakan kepercayaan yang memungkinkan sumber daya untuk mengambil kebijakan tersebut.Dari folder CloudShell kerja, buat dokumen kebijakan dengan menjalankan perintah berikut:<pre>E2ATrustPol=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "Service": "lambda.amazonaws.com"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2ATrustPol" > E2ATrustPol.json</pre> | AWS Umum | 
| Buat peran IAM untuk konversi Lambda. | Untuk membuat peran IAM, jalankan AWS CLI perintah berikut dari folder CloudShell kerja:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | AWS Umum | 
| Buat dokumen kebijakan IAM untuk fungsi Lambda. | Fungsi Lambda harus memiliki akses baca-tulis ke bucket Amazon S3 dan izin tulis untuk Amazon Log. CloudWatch Untuk membuat kebijakan IAM, jalankan perintah berikut dari folder CloudShell kerja:<pre>E2APolicy=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Logs",<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:PutLogEvents",<br />                "logs:CreateLogStream",<br />                "logs:CreateLogGroup"<br />            ],<br />            "Resource": [<br />                "arn:aws:logs:*:*:log-group:*",<br />                "arn:aws:logs:*:*:log-group:*:log-stream:*"<br />            ]<br />        },<br />        {<br />            "Sid": "S3",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:PutObject",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::%s/*",<br />                "arn:aws:s3:::%s"<br />            ]<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json</pre> | AWS Umum | 
| Lampirkan dokumen kebijakan IAM ke peran IAM. | Untuk melampirkan kebijakan IAM ke peran IAM, masukkan perintah berikut dari folder CloudShell kerja Anda:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | AWS Umum | 

### Buat fungsi Lambda untuk konversi EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh kode sumber konversi EBCDIC. | Dari folder CloudShell kerja, jalankan perintah berikut untuk mengunduh kode mainframe-data-utilities sumber dari GitHub:<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | AWS Umum | 
| Buat paket ZIP. | Dari folder CloudShell kerja, masukkan perintah berikut untuk membuat paket ZIP yang membuat fungsi Lambda untuk konversi EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | AWS Umum | 
| Buat fungsi Lambda. | Dari folder CloudShell kerja, masukkan perintah berikut untuk membuat fungsi Lambda untuk konversi EBCDIC:<pre>aws lambda create-function \<br />--function-name E2A \<br />--runtime python3.9 \<br />--zip-file fileb://mdu.zip \<br />--handler extract_ebcdic_to_ascii.lambda_handler \<br />--role arn:aws:iam::$account:role/E2AConvLambdaRole \<br />--timeout 10 \<br />--environment "Variables={layout=$bucket/layout/}"</pre> Tata letak variabel lingkungan memberi tahu fungsi Lambda tempat metadata JSON berada. | AWS Umum | 
| Buat kebijakan berbasis sumber daya untuk fungsi Lambda. | Dari folder CloudShell kerja, masukkan perintah berikut untuk mengizinkan pemberitahuan peristiwa Amazon S3 Anda memicu fungsi Lambda untuk konversi EBCDIC:<pre>aws lambda add-permission \<br />--function-name E2A \<br />--action lambda:InvokeFunction \<br />--principal s3.amazonaws.com \<br />--source-arn arn:aws:s3:::$bucket \<br />--source-account $account \<br />--statement-id 1</pre> | AWS Umum | 

### Buat notifikasi acara Amazon S3
<a name="create-the-s3-event-notification"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dokumen konfigurasi untuk notifikasi acara Amazon S3. | Pemberitahuan peristiwa Amazon S3 memulai fungsi Lambda konversi EBCDIC saat file ditempatkan di folder input.Dari folder CloudShell kerja, jalankan perintah berikut untuk membuat dokumen JSON untuk pemberitahuan acara Amazon S3:<pre>S3E2AEvent=$(cat <<EOF<br />{<br />"LambdaFunctionConfigurations": [<br />    {<br />      "Id": "E2A",<br />      "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A",<br />      "Events": [ "s3:ObjectCreated:Put" ],<br />      "Filter": {<br />        "Key": {<br />          "FilterRules": [<br />            {<br />              "Name": "prefix",<br />              "Value": "input/"<br />            }<br />          ]<br />        }<br />      }<br />    }<br />  ]<br />}<br />EOF<br />)<br />printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json</pre> | AWS Umum | 
| Buat notifikasi acara Amazon S3. | Dari folder CloudShell kerja, masukkan perintah berikut untuk membuat pemberitahuan acara Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | AWS Umum | 

### Buat dan unggah metadata JSON
<a name="create-and-upload-the-json-metadata"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengurai copybook COBOL. | Dari folder CloudShell kerja, masukkan perintah berikut untuk mengurai contoh copybook COBOL ke dalam file JSON (yang mendefinisikan cara membaca dan mengiris file data dengan benar):<pre>python3       mdu/parse_copybook_to_json.py \<br />-copybook     mdu/LegacyReference/COBKS05.cpy \<br />-output       CLIENT.json \<br />-output-s3key CLIENT.ASCII.txt \<br />-output-s3bkt $bucket \<br />-output-type  s3 \<br />-print        25</pre> | AWS Umum | 
| Tambahkan aturan transformasi. | File data sampel dan copybook COBOL yang sesuai adalah file multi-tata letak. Ini berarti bahwa konversi harus mengiris data berdasarkan aturan tertentu. Dalam hal ini, byte pada posisi 3 dan 4 di setiap baris menentukan tata letak.Dari folder CloudShell kerja, edit `CLIENT.json` file dan ubah konten dari `"transf-rule": [],` yang berikut:<pre>"transf-rule": [<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0002",<br />"transf": "transf1"<br />},<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0000",<br />"transf": "transf2"<br />}<br />],</pre> | AWS Umum, IBM Mainframe, Cobol | 
| Unggah metadata JSON ke bucket Amazon S3. | Dari folder CloudShell kerja, masukkan AWS CLI perintah berikut untuk mengunggah metadata JSON ke bucket Amazon S3 Anda:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | AWS Umum | 

### Konversikan file EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim file EBCDIC ke bucket Amazon S3. | Dari folder CloudShell kerja, masukkan perintah berikut untuk mengirim file EBCDIC ke bucket Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Kami menyarankan Anda mengatur folder yang berbeda untuk file input (EBCDIC) dan output (ASCII) agar tidak memanggil fungsi konversi Lambda lagi saat file ASCII diunggah ke bucket Amazon S3. | AWS Umum | 
| Periksa outputnya. | Dari folder CloudShell kerja, masukkan perintah berikut untuk memeriksa apakah file ASCII dihasilkan di bucket Amazon S3 Anda:<pre>aws s3 ls s3://$bucket/</pre> Konversi data dapat memakan waktu beberapa detik untuk terjadi. Kami menyarankan Anda memeriksa file ASCII beberapa kali.Setelah file ASCII tersedia, masukkan perintah berikut untuk melihat konten file yang dikonversi di bucket Amazon S3. Sesuai kebutuhan, Anda dapat mengunduhnya atau menggunakannya langsung dari bucket Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Periksa konten file ASCII:<pre>0|0|220|<br />1|1|HERBERT MOHAMED|1958-08-31|BACHELOR|0010000.00|<br />1|2|36|THE ROE AVENUE|<br />2|1|JAYLEN GEORGE|1969-05-29|ELEMENTARY|0020000.00|<br />2|2|365|HEATHFIELD ESPLANADE|<br />3|1|MIKAEEL WEBER|1982-02-17|MASTER|0030000.00|<br />3|2|4555|MORRISON STRAND|<br />4|1|APRIL BARRERA|1967-01-12|DOCTOR|0030000.00|<br />4|2|1311|MARMION PARK|<br />5|1|ALEEZA PLANT|1985-03-01|BACHELOR|0008000.00|</pre> | AWS Umum | 

### Bersihkan lingkungan
<a name="clean-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| (Opsional) Siapkan variabel dan folder. | Jika Anda kehilangan koneksi dengan CloudShell, sambungkan kembali dan kemudian masukkan perintah berikut untuk mengubah direktori ke folder kerja:<pre>cd workdir</pre>Pastikan bahwa variabel lingkungan didefinisikan:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | AWS Umum | 
| Hapus konfigurasi notifikasi untuk bucket. | Dari folder CloudShell kerja, jalankan perintah berikut untuk menghapus konfigurasi pemberitahuan acara Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | AWS Umum | 
| Hapus fungsi Lambda. | Dari folder CloudShell kerja, masukkan perintah berikut untuk menghapus fungsi Lambda untuk konverter EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | AWS Umum | 
| Hapus peran dan kebijakan IAM. | Dari folder CloudShell kerja, masukkan perintah berikut untuk menghapus peran dan kebijakan konverter EBCDIC:<pre>aws iam delete-role-policy \<br />--role-name E2AConvLambdaRole \<br />--policy-name E2AConvLambdaPolicy<br /><br />aws iam delete-role \<br />--role-name E2AConvLambdaRole</pre> | AWS Umum | 
| Hapus file yang dihasilkan di bucket Amazon S3. | Dari folder CloudShell kerja, masukkan perintah berikut untuk menghapus file yang dihasilkan di bucket Amazon S3:<pre>aws s3 rm s3://$bucket/layout --recursive<br />aws s3 rm s3://$bucket/input --recursive<br />aws s3 rm s3://$bucket/CLIENT.ASCII.txt</pre> | AWS Umum | 
| Hapus folder kerja. | Dari folder CloudShell kerja, masukkan perintah berikut untuk menghapus `workdir` dan isinya:<pre>cd ..; rm -Rf workdir</pre> | AWS Umum | 

## Sumber daya terkait
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilitas Data Mainframe README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [Set karakter EBCDIC (dokumentasi](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) IBM)
+ [EBCDIC ke ASCII (dokumentasi IBM](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii))
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (dokumentasi IBM)
+ [Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (dokumentasi)AWS Lambda 

# Mengkonversi file data mainframe dengan layout rekaman yang kompleks menggunakan Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

## Ringkasan
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-summary"></a>

Catatan: AWS Mainframe Modernization Layanan (pengalaman Lingkungan Runtime Terkelola) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Pola ini menunjukkan kepada Anda cara mengonversi file data mainframe dengan data non-teks dan tata letak rekaman kompleks dari EBCDIC (Extended Binary Coded Decimal Interchange Code) pengkodean karakter ke pengkodean karakter ASCII (American Standard Code for Information Interchange) dengan menggunakan file struktur Fokus Mikro. Untuk menyelesaikan konversi file, Anda harus melakukan hal berikut:

1. Siapkan file sumber tunggal yang menjelaskan semua item data dan rekam tata letak di lingkungan mainframe Anda.

1. Buat file struktur yang berisi tata letak catatan data dengan menggunakan Editor File Data Fokus Mikro sebagai bagian dari Alat File Data Klasik Fokus Mikro atau Alat File Data. File struktur mengidentifikasi data non-teks sehingga Anda dapat mengonversi file mainframe dengan benar dari EBCDIC ke ASCII.

1. Uji file struktur dengan menggunakan Classic Data File Tools atau Data File Tools.

## Prasyarat dan batasan
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Micro Focus Enterprise Developer untuk Windows, tersedia melalui [AWS Mainframe Modernisasi](https://aws.amazon.com/mainframe-modernization/)

**Versi produk**
+ Micro Focus Enterprise Server 7.0 dan yang lebih baru

## Alat
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ [Micro Focus Enterprise Developer](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) menyediakan lingkungan berjalan untuk aplikasi yang dibuat dengan varian lingkungan pengembangan terintegrasi (IDE) dari Enterprise Developer.
+ [Alat File Data Micro Focus Classic](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) membantu Anda mengonversi, menavigasi, mengedit, dan membuat file data. Alat File Data Klasik termasuk [Data File Converter](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), [Record Layout Editor](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html), dan [Data File Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ [Alat File Data](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) Fokus Mikro membantu Anda membuat, mengedit, dan memindahkan file data. Alat File Data termasuk [Editor File Data](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html), [Utilitas Konversi File, dan Utilitas](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) [Baris Perintah Struktur File Data](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

## Epik
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-epics"></a>

### Siapkan file sumber
<a name="prepare-the-source-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi komponen sumber. | Identifikasi semua tata letak rekaman yang mungkin untuk file, termasuk definisi ulang yang berisi data non-teks.Jika Anda memiliki tata letak yang berisi definisi ulang, Anda harus memfaktorkan tata letak ini ke tata letak unik yang menggambarkan setiap kemungkinan permutasi struktur data. Biasanya, tata letak catatan file data dapat dijelaskan oleh arketipe berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Untuk informasi selengkapnya tentang membuat tata letak rekaman yang diratakan untuk file yang berisi tata letak rekaman kompleks, lihat [Menghosting ulang aplikasi EBCDIC](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html) di lingkungan ASCII untuk migrasi mainframe. | Pengembang aplikasi | 
| Identifikasi kondisi tata letak rekaman. | Untuk file dengan beberapa tata letak rekaman atau file yang berisi tata letak kompleks dengan klausa REDEFINES, identifikasi data dan kondisi dalam catatan yang dapat Anda gunakan untuk menentukan tata letak mana yang akan digunakan selama konversi. Kami menyarankan Anda mendiskusikan tugas ini dengan pakar materi pelajaran (UKM) yang memahami program yang memproses file-file ini.Misalnya, file mungkin berisi dua jenis rekaman yang berisi data non-teks. Anda dapat memeriksa sumbernya dan mungkin menemukan kode yang mirip dengan yang berikut ini:<pre>MOVE "M" TO PART-TYPE<br /> MOVE "MAIN ASSEMBLY" TO PART-NAME<br />MOVE "S" TO PART-TYPE<br /> MOVE "SUB ASSEMBLY 1" TO PART-NAME</pre>Kode ini membantu Anda mengidentifikasi hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Anda dapat mendokumentasikan nilai yang digunakan oleh bidang ini untuk mengaitkan tata letak rekaman dengan catatan data yang benar dalam file. | Pengembang aplikasi | 
| Membangun file sumber. | Jika file dijelaskan melalui beberapa file sumber atau jika tata letak rekaman berisi data non-teks yang berada di bawah klausa REDEFINES, maka buat file sumber baru yang berisi tata letak rekaman. Program baru tidak perlu mendeskripsikan file menggunakan pernyataan SELECT dan FD. Program ini hanya dapat berisi deskripsi catatan sebagai 01 tingkat dalam Working-Storage.Anda dapat membuat file sumber untuk setiap file data atau membuat file sumber master yang menjelaskan semua file data. | Pengembang aplikasi | 
| Kompilasi file sumber. | Kompilasi file sumber untuk membangun kamus data. Kami menyarankan Anda mengkompilasi file sumber dengan menggunakan set karakter EBCDIC. Jika direktif IBMCOMP atau arahan ODOSLIDE sedang digunakan, maka Anda harus menggunakan arahan ini dalam file sumber juga.IBMCOMP mempengaruhi penyimpanan byte bidang COMP dan ODOSLIDE mempengaruhi padding pada struktur YANG BERBEDA TERJADI. Jika arahan ini tidak disetel dengan benar, maka alat konversi tidak akan membaca catatan data dengan benar. Ini menghasilkan data yang buruk dalam file yang dikonversi. | Pengembang aplikasi | 

### (Opsi A) Buat file struktur menggunakan Alat File Data Klasik
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai alat dan muat kamus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 
| Buat tata letak catatan default. | Gunakan tata letak rekaman default untuk semua catatan yang tidak cocok dengan tata letak bersyarat apa pun.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Tata letak default muncul di panel **Layouts** dan dapat diidentifikasi oleh ikon folder merah. | Pengembang aplikasi | 
| Buat tata letak catatan bersyarat. | Gunakan tata letak catatan bersyarat bila ada lebih dari satu tata letak rekaman dalam sebuah file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 

### (Opsi B) Buat file struktur menggunakan Alat File Data
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai alat dan muat kamus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 
| Buat tata letak catatan default. | Gunakan tata letak catatan default untuk semua catatan yang tidak cocok dengan tata letak bersyarat apa pun.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Tata letak default muncul di panel **Layouts** dan dapat diidentifikasi dengan ikon “D” biru. | Pengembang aplikasi | 
| Buat tata letak catatan bersyarat. | Gunakan tata letak catatan bersyarat bila ada lebih dari satu tata letak rekaman dalam sebuah file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 

### (Opsi A) Uji file struktur menggunakan Alat File Data Klasik
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji file data EBCDIC. | Konfirmasikan bahwa Anda dapat menggunakan file struktur Anda untuk melihat file data uji EBCDIC dengan benar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 

### (Opsi B) Uji file struktur menggunakan Alat File Data
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji file data EBCDIC. | Konfirmasikan bahwa Anda dapat menggunakan file struktur Anda untuk melihat file data uji EBCDIC dengan benar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 

### Uji konversi file data
<a name="test-data-file-conversion"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji Konversi Berkas EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Pengembang aplikasi | 

## Sumber daya terkait
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Fokus Mikro](https://www.microfocus.com/en-us/products/enterprise-suite/overview) (dokumentasi Fokus Mikro)
+ [Mainframe dan kode lama](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (postingan Blog AWS)
+ [AWS Prescriptive Guidance (dokumentasi](https://docs.aws.amazon.com/prescriptive-guidance/) AWS)
+ [Dokumentasi AWS](https://docs.aws.amazon.com/index.html) (dokumentasi AWS)
+ [Referensi Umum AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (dokumentasi AWS)
+ [Glosarium AWS (dokumentasi](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) AWS)

# Menerapkan lingkungan untuk aplikasi Blu Age kontainer dengan menggunakan Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Ringkasan
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

Migrasi beban kerja mainframe lama ke arsitektur cloud modern dapat menghilangkan biaya pemeliharaan mainframe—biaya yang hanya meningkat seiring bertambahnya usia lingkungan. Namun, migrasi pekerjaan dari mainframe dapat menimbulkan tantangan unik. Sumber daya internal mungkin tidak akrab dengan logika pekerjaan, dan kinerja tinggi mainframe pada tugas-tugas khusus ini bisa sulit untuk ditiru jika dibandingkan dengan komoditas, digeneralisasi. CPUs Menulis ulang pekerjaan ini bisa menjadi usaha besar dan membutuhkan upaya yang signifikan.

Blu Age mengubah beban kerja mainframe lama menjadi kode Java modern, yang kemudian dapat Anda jalankan sebagai wadah.

Pola ini menyediakan contoh arsitektur tanpa server untuk menjalankan aplikasi kontainer yang telah dimodernisasi dengan alat Blu Age. File HashiCorp Terraform yang disertakan akan membangun arsitektur aman untuk orkestrasi kontainer Blu Age, mendukung tugas batch dan layanan waktu nyata.

Untuk informasi selengkapnya tentang memodernisasi beban kerja Anda dengan menggunakan layanan Blu Age dan AWS, lihat publikasi AWS Prescriptive Guidance ini:
+ [Menjalankan beban kerja mainframe yang telah dimodernisasi dengan Blu Age pada infrastruktur tanpa server AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

[Untuk bantuan menggunakan Blu Age untuk memodernisasi beban kerja mainframe Anda, hubungi tim Blu Age dengan memilih **Hubungi pakar kami** di situs web Blu Age.](https://www.bluage.com/) Untuk bantuan dalam memigrasikan beban kerja modern Anda ke AWS, mengintegrasikannya dengan layanan AWS, dan memindahkannya ke produksi, hubungi manajer akun AWS Anda atau isi formulir AWS [Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Prasyarat dan batasan
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Prasyarat**
+ Contoh aplikasi Blu Age dalam wadah yang disediakan oleh [beban kerja mainframe Containerize yang telah](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) dimodernisasi oleh pola Blu Age. Aplikasi sampel menyediakan logika untuk menangani pemrosesan input dan output untuk aplikasi modern, dan dapat berintegrasi dengan arsitektur ini.
+ Terraform diperlukan untuk menyebarkan sumber daya ini.

**Batasan**
+ Amazon Elastic Container Service (Amazon ECS) membatasi sumber daya tugas yang dapat disediakan untuk wadah. Sumber daya ini termasuk CPU, RAM, dan penyimpanan. Misalnya, saat menggunakan Amazon ECS dengan AWS Fargate, batas [sumber daya tugas berlaku](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versi produk**

Solusi ini diuji dengan versi berikut:
+ Terraform 1.3.6
+ Penyedia AWS Terraform 4.46.0

## Arsitektur
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Tumpukan teknologi sumber**
+ Usia Blu
+ Terraform

**Tumpukan teknologi target**
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ Server Manajemen Kunci AWS (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Arsitektur target**

Diagram berikut menunjukkan arsitektur solusi.

![\[Deskripsi mengikuti diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. Solusinya menerapkan peran IAM berikut:
   + Peran tugas batch
   + Peran eksekusi tugas Batch
   + Peran tugas layanan
   + Peran eksekusi tugas layanan
   + Peran Step Functions
   + Peran AWS Backup
   + Peran Pemantauan yang Ditingkatkan RDS.

   Peran tersebut sesuai dengan prinsip akses yang paling tidak diistimewakan.

1. Amazon ECR digunakan untuk menyimpan gambar kontainer yang diatur oleh pola ini.

1. AWS Systems Manager Parameter Store menyediakan data konfigurasi tentang setiap lingkungan ke definisi tugas Amazon ECS saat runtime.

1. AWS Secrets Manager menyediakan data konfigurasi sensitif tentang lingkungan ke definisi tugas Amazon ECS saat runtime. Data telah dienkripsi oleh AWS KMS.

1. Modul Terraform membuat definisi tugas Amazon ECS untuk semua tugas real-time dan batch.

1. Amazon ECS menjalankan tugas batch dengan menggunakan AWS Fargate sebagai mesin komputasi. Ini adalah tugas berumur pendek, dimulai seperti yang dipersyaratkan oleh AWS Step Functions.

1. Amazon Aurora PostgreSQL kompatibel menyediakan database untuk mendukung aplikasi modern. Ini menggantikan database mainframe seperti IBM Db2 atau IBM IMS DB.

1. Amazon ECS menjalankan layanan berumur panjang untuk memberikan beban kerja real-time yang dimodernisasi. Aplikasi stateless ini berjalan secara permanen dengan kontainer yang tersebar di Availability Zone.

1. Network Load Balancer digunakan untuk memberikan akses ke beban kerja real-time. Network Load Balancer mendukung protokol sebelumnya, seperti IBM CICS. Atau, Anda dapat menggunakan Application Load Balancer dengan beban kerja berbasis HTTP.

1. Amazon S3 menyediakan penyimpanan objek untuk input dan output pekerjaan. Wadah harus menangani operasi tarik dan dorong ke Amazon S3 untuk menyiapkan direktori kerja untuk aplikasi Blu Age.

1. Layanan AWS Step Functions digunakan untuk mengatur menjalankan tugas Amazon ECS untuk memproses beban kerja batch.

1. Topik SNS untuk setiap beban kerja batch digunakan untuk mengintegrasikan aplikasi modern dengan sistem lain, seperti email, atau untuk memulai tindakan tambahan, seperti mengirimkan objek keluaran dari Amazon S3 ke FTP.

**catatan**  
Secara default, solusinya tidak memiliki akses ke internet. Pola ini mengasumsikan bahwa virtual private cloud (VPC) akan terhubung ke jaringan lain menggunakan layanan [seperti AWS](https://aws.amazon.com/transit-gateway/) Transit Gateway. Dengan demikian, beberapa titik akhir VPC antarmuka digunakan untuk memberikan akses ke layanan AWS yang digunakan oleh solusi. Untuk mengaktifkan akses internet langsung, Anda dapat menggunakan sakelar di modul Terraform untuk mengganti titik akhir VPC dengan gateway internet dan sumber daya terkait.

**Otomatisasi dan skala**

Penggunaan sumber daya tanpa server di seluruh pola ini membantu memastikan bahwa, dengan memperkecil, ada beberapa batasan pada skala desain ini. Ini mengurangi *kekhawatiran tetangga yang bising*, seperti persaingan untuk sumber daya komputasi yang mungkin dialami pada mainframe asli. Batch task dapat dijadwalkan untuk berjalan secara bersamaan sesuai kebutuhan.

Wadah individu dibatasi oleh ukuran maksimum yang didukung oleh Fargate. Untuk informasi selengkapnya, lihat bagian [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size) di dokumentasi Amazon ECS.

Untuk [menskalakan beban kerja real-time secara horizontal](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), Anda dapat menambahkan kontainer.

## Alat
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-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.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) adalah layanan terkelola penuh yang membantu Anda memusatkan dan mengotomatiskan perlindungan data di seluruh Layanan AWS, di cloud, dan di tempat.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
+ [Amazon Elastic Container Service (Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)) adalah layanan manajemen kontainer yang cepat dan dapat diskalakan yang membantu Anda menjalankan, menghentikan, dan mengelola kontainer di klaster.
+ [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 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 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.
+ [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 Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi yang penting bagi bisnis.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia.

**Layanan lainnya**
+ [HashiCorp Terraform](https://www.terraform.io/docs) adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud. Pola ini menggunakan Terraform untuk membuat arsitektur sampel.

**Repositori kode**

Kode sumber untuk pola ini tersedia di repositori GitHub [Blu Age Sample ECS Infrastructure (Terraform)](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform).

## Praktik terbaik
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Untuk lingkungan pengujian, gunakan fitur seperti `forceDate` opsi untuk mengonfigurasi aplikasi modern untuk menghasilkan hasil pengujian yang konsisten dengan selalu berjalan selama periode waktu yang diketahui.
+ Sesuaikan setiap tugas satu per satu untuk mengkonsumsi jumlah sumber daya yang optimal. Anda dapat menggunakan [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) untuk mendapatkan panduan tentang potensi kemacetan.

## Epik
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Mempersiapkan lingkungan untuk penyebaran
<a name="prepare-the-environment-for-deployment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning kode sumber solusi. | Kloning kode solusi dari [GitHub proyek](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps insinyur | 
| Bootstrap lingkungan dengan menerapkan sumber daya untuk menyimpan status Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps insinyur | 

### Menyebarkan infrastruktur solusi
<a name="deploy-the-solution-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau dan perbarui konfigurasi Terraform. | Di direktori root, buka file `main.tf,` tinjau isinya, dan pertimbangkan untuk melakukan pembaruan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps insinyur | 
| Terapkan file Terraform. | Dari terminal Anda, jalankan `terraform apply` perintah untuk menyebarkan semua sumber daya. Tinjau perubahan yang dihasilkan oleh Terraform, dan masukkan **ya** untuk memulai build.Perhatikan bahwa dibutuhkan waktu lebih dari 15 menit untuk menyebarkan infrastruktur ini. | DevOps insinyur | 

### (Opsional) Menyebarkan aplikasi kontainer Blu Age yang valid
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dorong gambar wadah Blu Age ke Amazon ECR. | Dorong wadah ke repositori Amazon ECR yang Anda buat di epik sebelumnya. Untuk petunjuk, lihat [dokumentasi Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Buat catatan URI gambar kontainer. | DevOps insinyur | 
| Perbarui Terraform untuk mereferensikan gambar wadah Blu Age. | Perbarui file `main.tf`**** untuk mereferensikan gambar kontainer yang Anda unggah. | DevOps insinyur | 
| Menerapkan ulang file Terraform. | Dari terminal Anda, jalankan `terraform apply` untuk menyebarkan semua sumber daya. Tinjau pembaruan yang disarankan dari Terraform, lalu masukkan **ya** untuk melanjutkan penerapan. | DevOps insinyur | 

## Sumber daya terkait
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Usia Blu](https://www.bluage.com/)
+ [Menjalankan beban kerja mainframe yang telah dimodernisasi dengan Blu Age pada infrastruktur tanpa server AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Hasilkan wawasan z/OS data Db2 dengan menggunakan dan AWS Mainframe Modernization Amazon Q di Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack, dan Santosh Kumar Singh, Amazon Web Services*

## Ringkasan
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

Catatan: AWS Mainframe Modernization Layanan (pengalaman Lingkungan Runtime Terkelola) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Jika organisasi Anda menghosting data penting bisnis di lingkungan mainframe IBM Db2, mendapatkan wawasan dari data tersebut sangat penting untuk mendorong pertumbuhan dan inovasi. Dengan membuka kunci data mainframe, Anda dapat membangun intelijen bisnis yang lebih cepat, aman, dan terukur untuk mempercepat pengambilan keputusan, pertumbuhan, dan inovasi berbasis data di Amazon Web Services () Cloud.AWS

Pola ini menyajikan solusi untuk menghasilkan wawasan bisnis dan membuat narasi yang dapat dibagikan dari data mainframe di IBM Db2 untuk tabel. z/OS Perubahan data mainframe dialirkan ke topik [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK [AWS Mainframe Modernization )](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html) menggunakan Replikasi Data dengan Tepat. Menggunakan [konsumsi streaming Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), data topik MSK Amazon disimpan di tabel gudang data Amazon [Redshift Tanpa Server untuk analitik di Amazon](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) Quick Sight.

Setelah data tersedia di Quick Sight, Anda dapat menggunakan petunjuk bahasa alami dengan [Amazon Q di Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) untuk membuat ringkasan data, mengajukan pertanyaan, dan menghasilkan cerita data. Anda tidak perlu menulis kueri SQL atau mempelajari alat intelijen bisnis (BI).

**Konteks bisnis**

Pola ini menyajikan solusi untuk analisis data mainframe dan kasus penggunaan wawasan data. Dengan menggunakan pola, Anda membangun dasbor visual untuk data perusahaan Anda. Untuk mendemonstrasikan solusinya, pola ini menggunakan perusahaan perawatan kesehatan yang menyediakan rencana medis, gigi, dan penglihatan kepada anggotanya di AS. Dalam contoh ini, demografi anggota dan informasi rencana disimpan di IBM Db2 untuk tabel data. z/OS Dasbor visual menunjukkan hal berikut:
+ Distribusi anggota berdasarkan wilayah
+ Distribusi anggota berdasarkan jenis kelamin
+ Distribusi anggota berdasarkan usia
+ Distribusi anggota berdasarkan jenis rencana
+ Anggota yang belum menyelesaikan imunisasi preventif

Untuk contoh distribusi anggota menurut wilayah dan anggota yang belum menyelesaikan imunisasi preventif, lihat bagian Informasi tambahan.

Setelah membuat dasbor, Anda menghasilkan cerita data yang menjelaskan wawasan dari analisis sebelumnya. Cerita data memberikan rekomendasi untuk meningkatkan jumlah anggota yang telah menyelesaikan imunisasi preventif.

## Prasyarat dan batasan
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS. Solusi ini dibangun dan diuji di Amazon Linux 2 di Amazon Elastic Compute Cloud (Amazon EC2).
+ Virtual Private Cloud (VPC) dengan subnet yang dapat diakses oleh sistem mainframe Anda.
+ Database mainframe dengan data bisnis. Untuk contoh data yang digunakan untuk membangun dan menguji solusi ini, lihat bagian *Lampiran.*
+ Ubah pengambilan data (CDC) diaktifkan pada tabel Db2 z/OS . [Untuk mengaktifkan CDC pada Db2 z/OS, lihat dokumentasi IBM.](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes)
+ Tepatnya Connect CDC untuk z/OS diinstal pada z/OS sistem yang menghosting database sumber. CDC Tepat Connect untuk z/OS gambar disediakan sebagai file zip dalam [AWS Mainframe Modernization - Replikasi Data untuk IBM z/OS Amazon](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Machine Image (AMI). Untuk menginstal Connected Connect CDC z/OS di mainframe, lihat dokumentasi [Instalasi yang tepat](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS).

**Batasan**
+ Data Db2 mainframe Anda harus berada dalam tipe data yang didukung oleh Accepently Connect CDC. Untuk daftar tipe data yang didukung, lihat [dokumentasi CDC Connect dengan tepat](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types).
+ Data Anda di Amazon MSK harus dalam tipe data yang didukung oleh Amazon Redshift. Untuk daftar tipe data yang didukung, lihat dokumentasi [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift memiliki perilaku dan batas ukuran yang berbeda untuk tipe data yang berbeda. Untuk informasi selengkapnya, lihat [dokumentasi Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Data hampir real-time di Quick Sight bergantung pada interval penyegaran yang disetel untuk database Amazon Redshift.
+ 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/). Amazon Q in Quick Sight saat ini tidak tersedia di setiap Wilayah yang mendukung Quick Sight. 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**
+ AWS Mainframe Modernization Replikasi Data dengan Tepatnya versi 4.1.44
+ Python versi 3.6 atau yang lebih baru
+ Apache Kafka versi 3.5.1****

## Arsitektur
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk menghasilkan wawasan bisnis dari data mainframe dengan menggunakan [Replikasi AWS Mainframe Modernization Data dengan Tepatnya dan](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) Amazon Q di Quick Sight.

![\[Proses tujuh langkah dari z/OS mainframe ke Amazon. QuickSight\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


Diagram menunjukkan alur kerja berikut:

1. Agen Pembaca Log Tepatnya membaca data dari log Db2 dan menulis data ke penyimpanan sementara pada sistem file OMVS di mainframe.

1. Agen Penerbit membaca log Db2 mentah dari penyimpanan sementara.

1. Daemon pengontrol lokal mengautentikasi, mengotorisasi, memantau, dan mengelola operasi.

1. Agen Terapkan diterapkan di Amazon EC2 dengan menggunakan AMI yang telah dikonfigurasi sebelumnya. Ini terhubung dengan Agen Penerbit melalui daemon pengontrol dengan menggunakan TCP/IP. Agen Terapkan mendorong data ke MSK Amazon menggunakan beberapa pekerja untuk throughput tinggi.

1. Para pekerja menulis data ke topik MSK Amazon dalam format JSON. Sebagai target perantara untuk pesan yang direplikasi, Amazon MSK menyediakan kemampuan failover yang sangat tersedia dan otomatis.

1. Amazon Redshift streaming ingestion menyediakan latensi rendah, konsumsi data berkecepatan tinggi dari Amazon MSK ke database Amazon Redshift Serverless. Prosedur tersimpan di Amazon Redshift melakukan rekonsiliasi data perubahan mainframe (insert/update/deletes) ke dalam tabel Amazon Redshift. Tabel Amazon Redshift ini berfungsi sebagai sumber analisis data untuk Quick Sight.

1. Pengguna mengakses data di Quick Sight untuk analisis dan wawasan. Anda dapat menggunakan Amazon Q di Quick Sight untuk berinteraksi dengan data dengan menggunakan petunjuk bahasa alami.

## Alat
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-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 menskalakannya atau masuk.
+ [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.
+ [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 Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor. Pola ini menggunakan kemampuan BI generatif Amazon Q di Quick Sight.
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) adalah opsi tanpa server Amazon Redshift yang membuatnya lebih efisien untuk menjalankan dan menskalakan analitik dalam hitungan detik tanpa perlu menyiapkan dan mengelola infrastruktur gudang 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.

**Alat-alat lainnya**
+ [Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) mengumpulkan dan mengintegrasikan data dari sistem lama ke dalam platform cloud dan data.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition). Kode ini adalah prosedur yang disimpan di Amazon Redshift. Prosedur tersimpan ini merekonsiliasi perubahan data mainframe (menyisipkan, memperbarui, dan menghapus) dari Amazon MSK ke dalam tabel Amazon Redshift. Tabel Amazon Redshift ini berfungsi sebagai sumber analisis data untuk Quick Sight.

## Praktik terbaik
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Ikuti [praktik terbaik](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) saat menyiapkan kluster MSK Amazon Anda.
+ Ikuti [praktik terbaik penguraian data](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) Amazon Redshift untuk meningkatkan kinerja.
+ Saat Anda membuat peran AWS Identity and Access Management (IAM) untuk pengaturan Tepatnya, 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="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### Mengatur Replikasi AWS Mainframe Modernization Data dengan Tepat di Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan grup keamanan. | Untuk terhubung ke daemon pengontrol dan kluster MSK Amazon, [buat grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) untuk instance tersebut. EC2 Tambahkan aturan masuk dan keluar berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Perhatikan nama grup keamanan. Anda perlu mereferensikan nama saat meluncurkan EC2 instance dan mengonfigurasi cluster MSK Amazon. | DevOps insinyur, AWS DevOps | 
| Buat kebijakan IAM dan peran IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps insinyur, administrator sistem AWS | 
| Menyediakan sebuah EC2 instance. | Untuk menyediakan EC2 instans untuk menjalankan Excently CDC dan terhubung ke Amazon MSK, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator AWS, DevOps insinyur | 

### Siapkan Amazon MSK
<a name="set-up-msk"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cluster MSK Amazon. | Untuk membuat cluster MSK Amazon, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Cluster yang disediakan khas membutuhkan waktu hingga 15 menit untuk membuatnya. Setelah cluster dibuat, statusnya berubah dari **Creating** menjadi **Active**. | AWS DevOps, Administrator Cloud | 
| Mengatur SASL/SCRAM otentikasi. | Untuk menyiapkan SASL/SCRAM otentikasi untuk kluster MSK Amazon, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arsitek awan | 
| Buat topik MSK Amazon. | Untuk membuat topik MSK Amazon, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator awan | 

### Konfigurasikan Mesin Terapkan dengan Tepat di Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan skrip Tepat untuk mereplikasi perubahan data. | Untuk menyiapkan skrip CDC Connect yang tepat untuk mereplikasi data yang diubah dari mainframe ke topik MSK Amazon, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Misalnya file.ddl, lihat bagian [Informasi tambahan](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional). | Pengembang aplikasi, arsitek Cloud | 
| Hasilkan kunci ACL jaringan. | Untuk menghasilkan kunci network access control list (network ACL), lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arsitek cloud, AWS DevOps | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan default di layar ISPF. | Untuk mengonfigurasi pengaturan default di Fasilitas Produktivitas Sistem Interaktif (ISPF), ikuti petunjuk dalam dokumentasi [Tepatnya](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface). | Administrator sistem mainframe | 
| Konfigurasikan daemon pengontrol. | Untuk mengkonfigurasi daemon pengontrol, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Mengonfigurasi penerbit. | Untuk mengkonfigurasi penerbit, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Perbarui file konfigurasi daemon. | Untuk memperbarui detail penerbit di file konfigurasi daemon pengontrol, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Buat pekerjaan untuk memulai daemon controller. | Untuk membuat pekerjaan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Hasilkan file JCL penerbit tangkapan. | Untuk membuat file JCL penerbit tangkapan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Periksa dan perbarui CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrator sistem mainframe | 
| Kirim file JCL. | Kirimkan file JCL berikut yang Anda konfigurasikan pada langkah sebelumnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Setelah Anda mengirimkan file JCL, Anda dapat memulai Apply Engine di Tepat pada EC2 instance. | Administrator sistem mainframe | 

### Jalankan dan validasi CDC
<a name="run-and-validate-cdc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai Apply Engine dan validasi CDC. | Untuk memulai Apply Engine pada EC2 instance dan memvalidasi CDC, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arsitek cloud, Pengembang aplikasi | 
| Validasi catatan tentang topik MSK Amazon. | Untuk membaca pesan dari topik Kafka, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Pengembang aplikasi, arsitek Cloud | 

### Menyimpan data perubahan mainframe di gudang data Amazon Redshift Tanpa Server
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Amazon Redshift Tanpa Server. | [Untuk membuat gudang data Amazon Redshift Tanpa Server, ikuti petunjuk dalam dokumentasi.AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)Di dasbor Amazon Redshift Tanpa Server, validasi bahwa namespace dan workgroup telah dibuat dan tersedia. Untuk contoh pola ini, prosesnya mungkin memakan waktu 2-5 menit. | Insinyur data | 
| Siapkan peran IAM dan kebijakan kepercayaan yang diperlukan untuk streaming konsumsi. | Untuk mengatur konsumsi streaming Amazon Redshift Tanpa Server dari Amazon MSK, lakukan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Insinyur data | 
| Hubungkan Amazon Redshift Tanpa Server ke Amazon MSK. | Untuk terhubung ke topik MSK Amazon, buat skema eksternal di Amazon Redshift Tanpa Server. Di Amazon Redshift query editor v2, jalankan perintah SQL berikut, ganti `'iam_role_arn'` dengan peran yang Anda buat sebelumnya dan ganti `'MSK_cluster_arn` 'dengan ARN untuk cluster Anda.<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Insinyur migrasi | 
| Buat tampilan yang terwujud. | Untuk menggunakan data dari topik MSK Amazon di Amazon Redshift Tanpa Server, buat tampilan terwujud. Di Amazon Redshift query editor v2, jalankan perintah SQL berikut, ganti `<MSK_Topic_name>` dengan nama topik MSK Amazon Anda.<pre>CREATE MATERIALIZED VIEW member_view<br />AUTO REFRESH YES<br />AS SELECT<br />kafka_partition, <br />kafka_offset, <br />refresh_time, <br />json_parse(kafka_value) AS Data<br />FROM member_schema.<MSK_Topic_name><br />WHERE CAN_JSON_PARSE(kafka_value); <br /></pre> | Insinyur migrasi | 
| Buat tabel target di Amazon Redshift. | Tabel Amazon Redshift memberikan masukan untuk Quick Sight. Pola ini menggunakan tabel `member_dtls` dan`member_plans`, yang cocok dengan tabel sumber Db2 pada mainframe.Untuk membuat dua tabel di Amazon Redshift, jalankan perintah SQL berikut di editor kueri Amazon Redshift v2:<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Insinyur migrasi | 
| Buat prosedur tersimpan di Amazon Redshift. | Pola ini menggunakan prosedur tersimpan untuk menyinkronkan data perubahan (`INSERT`,`UPDATE`,`DELETE`) dari mainframe sumber ke tabel gudang data Amazon Redshift target untuk analitik di Quick Sight.Untuk membuat prosedur tersimpan di Amazon Redshift, gunakan editor kueri v2 untuk menjalankan kode prosedur tersimpan yang ada di repositori. GitHub  | Insinyur migrasi | 
| Baca dari tampilan terwujud streaming dan muat ke tabel target. | Prosedur tersimpan membaca perubahan data dari tampilan streaming yang terwujud dan memuat perubahan data ke tabel target. Untuk menjalankan prosedur yang disimpan, gunakan perintah berikut:<pre>call SP_Members_Load();</pre>Anda dapat menggunakan [Amazon EventBridge](https://aws.amazon.com/eventbridge/) untuk menjadwalkan pekerjaan di gudang data Amazon Redshift untuk memanggil prosedur tersimpan ini berdasarkan persyaratan latensi data Anda. EventBridge menjalankan pekerjaan pada interval tetap. Untuk memantau apakah panggilan sebelumnya ke prosedur selesai, Anda mungkin perlu menggunakan mekanisme seperti mesin [AWS Step Functions](https://aws.amazon.com/step-functions/)status. Untuk informasi selengkapnya, lihat sumber daya berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Pilihan lain adalah menggunakan editor kueri Amazon Redshift v2 untuk menjadwalkan penyegaran. Untuk informasi selengkapnya, lihat [Menjadwalkan kueri dengan editor kueri v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Insinyur migrasi | 

### Connect Quick Sight ke data di Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengatur Quick Sight. | Untuk mengatur Quick Sight, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Insinyur migrasi | 
| Siapkan koneksi aman antara Quick Sight dan Amazon Redshift. | Untuk mengatur koneksi yang aman antara Quick Sight dan Amazon Redshift, lakukan hal berikut[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Insinyur migrasi | 
| Buat kumpulan data untuk Quick Sight. | Untuk membuat kumpulan data Quick Sight dari Amazon Redshift, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Insinyur migrasi | 
| Bergabunglah dengan kumpulan data. | Untuk membuat analitik di Quick Sight, gabungkan dua tabel dengan mengikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).Di panel **Gabung Konfigurasi**, pilih **Left** for **Join type**. Di bawah **klausa Gabung, gunakan**. `memberid from member_plans = memberid from members_details` | Insinyur migrasi | 

### Dapatkan wawasan bisnis dari data mainframe dengan menggunakan Amazon Q di Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Amazon Q di Quick Sight. | Untuk menyiapkan Amazon Q dalam kemampuan BI generatif Quick Sight, ikuti petunjuk dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Insinyur migrasi | 
| Analisis data mainframe dan buat dasbor visual. | Untuk menganalisis dan memvisualisasikan data Anda di Quick Sight, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Setelah selesai, Anda dapat mempublikasikan dasbor untuk dibagikan dengan orang lain di organisasi Anda. Sebagai contoh, lihat *Dasbor visual Mainframe* di bagian [Informasi tambahan](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Insinyur migrasi | 

### Buat cerita data dengan Amazon Q di Quick Sight dari data mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cerita data. | Buat cerita data untuk menjelaskan wawasan dari analisis sebelumnya, dan buat rekomendasi untuk meningkatkan imunisasi preventif bagi anggota:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Insinyur migrasi | 
| Lihat cerita data yang dihasilkan. | Untuk melihat cerita data yang dihasilkan, pilih cerita itu di halaman **Cerita data**. | Insinyur migrasi | 
| Edit cerita data yang dihasilkan. | [Untuk mengubah format, tata letak, atau visual dalam cerita data, ikuti petunjuk dalam dokumentasi.AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Insinyur migrasi | 
| Bagikan cerita data. | Untuk berbagi cerita data, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Insinyur migrasi | 

## Pemecahan masalah
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Untuk pembuatan kumpulan data Quick Sight ke Amazon Redshift, `Validate Connection` telah salah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| Mencoba menyalakan mesin Apply pada EC2 instance mengembalikan kesalahan berikut:`-bash: sqdeng: command not found` | Ekspor jalur `sqdata` instalasi dengan menjalankan perintah berikut:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| Mencoba memulai Apply Engine mengembalikan salah satu kesalahan koneksi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Periksa spool mainframe untuk memastikan bahwa pekerjaan daemon controller berjalan. | 

## Sumber daya terkait
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Hasilkan wawasan dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html?did=pg_card&trk=pg_card) (pola)
+ [Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demo)
+ [AWS Mainframe Modernization - Replikasi Data untuk IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Konsumsi streaming Amazon Redshift ke tampilan yang terwujud](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Informasi tambahan
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Contoh file.ddl**

*members\$1details.ddl*

```
CREATE TABLE MEMBER_DTLS (
memberid INTEGER NOT NULL,
member_name VARCHAR(50),
member_type VARCHAR(20),
age INTEGER,
gender CHAR(1),
email VARCHAR(100),
region VARCHAR(20)
);
```

*member\$1plans.ddl*

```
CREATE TABLE MEMBER_PLANS (
memberid INTEGER NOT NULL,
medical_plan CHAR(1),
dental_plan CHAR(1),
vision_plan CHAR(1),
preventive_immunization VARCHAR(20)
);
```

**Contoh file.sqd**

Ganti **`<kafka topic name>`**dengan nama topik MSK Amazon Anda.

*script.sqd*

```
-- Name: DB2ZTOMSK: DB2z To MSK JOBNAME DB2ZTOMSK;REPORT EVERY 1;OPTIONS CDCOP('I','U','D');-- Source Descriptions
JOBNAME DB2ZTOMSK;
REPORT EVERY 1;
OPTIONS CDCOP('I','U','D');

-- Source Descriptions 
BEGIN GROUP DB2_SOURCE; 
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_details.ddl AS MEMBER_DTLS;
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_plans.ddl AS MEMBER_PLANS; 
END GROUP;
-- Source Datastore 
DATASTORE cdc://<zos_host_name>/DB2ZTOMSK/DB2ZTOMSK
OF UTSCDC 
AS CDCIN 
DESCRIBED BY GROUP DB2_SOURCE ;
-- Target Datastore(s)
DATASTORE 'kafka:///<kafka topic name>/key'
OF JSON
AS TARGET
DESCRIBED BY GROUP DB2_SOURCE;
PROCESS INTO TARGET
SELECT
{
REPLICATE(TARGET)
}
FROM CDCIN;
```

**Dasbor visual mainframe**

Data visual berikut dibuat oleh Amazon Q di Quick Sight untuk pertanyaan analisis `show member distribution by region`*.*

![\[Northeast dan Southwest memiliki 8 anggota, Southwest memiliki 5 anggota, Midwest memiliki 4 anggota.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


Data visual berikut dibuat oleh Amazon Q di Quick Sight untuk pertanyaan tersebut`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Pertunjukan Tenggara 6, Southwest menunjukkan 5, dan Midwest menunjukkan 4.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Keluaran cerita data**

Tangkapan layar berikut menunjukkan bagian dari cerita data yang dibuat oleh Amazon Q di Quick Sight untuk prompt`Build a data story about Region with most numbers of members. Also show the member distribution by age, member distribution by gender. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern`.

Dalam pendahuluan, cerita data merekomendasikan memilih wilayah dengan anggota terbanyak untuk mendapatkan dampak terbesar dari upaya imunisasi.

![\[Layar pengantar untuk analisis berdasarkan geografis, demografis, dan usia basis anggota.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


Cerita data memberikan analisis nomor anggota untuk empat wilayah. Wilayah Timur Laut, Barat Daya, dan Tenggara memiliki anggota terbanyak.

![\[Wilayah Timur Laut dan Barat Daya memiliki 8 anggota, Tenggara memiliki 6 anggota, dan Midwest memiliki 4 anggota.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


Kisah data menyajikan analisis anggota berdasarkan usia.

![\[Bagan yang menunjukkan bahwa basis anggota condong ke arah orang dewasa yang lebih muda dan setengah baya.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


Kisah data berfokus pada upaya imunisasi di Midwest.

![\[Rekomendasi untuk kampanye penjangkauan pribadi dan tantangan regional.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Kelanjutan analisis cerita data, dengan hasil dan kesimpulan yang diantisipasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Lampiran
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack, dan Santosh Kumar Singh, Amazon Web Services*

## Ringkasan
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-summary"></a>

Catatan: AWS Mainframe Modernization Layanan (pengalaman Lingkungan Runtime Terkelola) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Jika organisasi Anda menyimpan data penting bisnis di lingkungan mainframe, mendapatkan wawasan dari data tersebut sangat penting untuk mendorong pertumbuhan dan inovasi. Dengan membuka kunci data mainframe, Anda dapat membangun intelijen bisnis yang lebih cepat, aman, dan terukur untuk mempercepat pengambilan keputusan, pertumbuhan, dan inovasi berbasis data di Amazon Web Services () Cloud.AWS

[Pola ini menyajikan solusi untuk menghasilkan wawasan bisnis dan membuat narasi yang dapat dibagikan dari data mainframe dengan menggunakan transfer [AWS Mainframe Modernization file dengan](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) BMC dan Amazon Q di Quick Sight.](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) Kumpulan data mainframe ditransfer ke Amazon Simple Storage Service ([Amazon S3) Simple Storage Service (Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) S3) dengan menggunakan transfer file dengan BMC. AWS Mainframe Modernization AWS Lambda Fungsi memformat dan menyiapkan file data mainframe untuk dimuat ke Quick Sight.

Setelah data tersedia di Quick Sight, Anda dapat menggunakan petunjuk bahasa alami dengan [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) di Quick Sight untuk membuat ringkasan data, mengajukan pertanyaan, dan menghasilkan cerita data. Anda tidak perlu menulis kueri SQL atau mempelajari alat intelijen bisnis (BI).

**Konteks bisnis**

Pola ini menyajikan solusi untuk analisis data mainframe dan kasus penggunaan wawasan data. Dengan menggunakan pola, Anda membangun dasbor visual untuk data perusahaan Anda. Untuk mendemonstrasikan solusinya, pola ini menggunakan perusahaan perawatan kesehatan yang menyediakan rencana medis, gigi, dan penglihatan kepada anggotanya di AS. Dalam contoh ini, demografi anggota dan informasi rencana disimpan dalam kumpulan data mainframe. Dasbor visual menunjukkan hal berikut:
+ Distribusi anggota berdasarkan wilayah
+ Distribusi anggota berdasarkan jenis kelamin
+ Distribusi anggota berdasarkan usia
+ Distribusi anggota berdasarkan jenis rencana
+ Anggota yang belum menyelesaikan imunisasi preventif

Setelah membuat dasbor, Anda menghasilkan cerita data yang menjelaskan wawasan dari analisis sebelumnya. Cerita data memberikan rekomendasi untuk meningkatkan jumlah anggota yang telah menyelesaikan imunisasi preventif.

## Prasyarat dan batasan
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Kumpulan data mainframe dengan data bisnis
+ Akses untuk menginstal agen transfer file di mainframe

**Batasan**
+ File data mainframe Anda harus dalam salah satu format file yang didukung oleh Quick Sight. Untuk daftar format file yang didukung, lihat [Sumber data yang didukung](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Pola ini menggunakan fungsi Lambda untuk mengonversi file mainframe menjadi format yang didukung oleh Quick Sight.

## Arsitektur
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-architecture"></a>

Diagram berikut menunjukkan arsitektur untuk menghasilkan wawasan bisnis dari data mainframe dengan menggunakan transfer AWS Mainframe Modernization file dengan BMC dan Amazon Q di Quick Sight.

![\[Deskripsi diagram arsitektur mengikuti diagram.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


Diagram menunjukkan alur kerja berikut:

1. Dataset mainframe yang berisi data bisnis ditransfer ke Amazon S3 dengan AWS Mainframe Modernization menggunakan transfer file dengan BMC.

1. Fungsi Lambda mengonversi file yang ada di bucket S3 tujuan transfer file ke format nilai yang dipisahkan koma (CSV).

1. Fungsi Lambda mengirimkan file yang dikonversi ke bucket S3 kumpulan data sumber.

1. Data dalam file dicerna oleh Quick Sight.

1. Pengguna mengakses data di Quick Sight. Anda dapat menggunakan Amazon Q di Quick Sight untuk berinteraksi dengan data dengan menggunakan petunjuk bahasa alami.

## Alat
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-tools"></a>

**Layanan AWS**
+ [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 Mainframe Modernization transfer file dengan BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) mengonversi dan mentransfer kumpulan data mainframe ke Amazon S3 untuk kasus penggunaan modernisasi, migrasi, dan augmentasi mainframe.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan BI skala cloud yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor. Pola ini menggunakan kemampuan BI generatif [Amazon Q di Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ [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="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ [Saat Anda membuat peran AWS Identity and Access Management (IAM) untuk transfer AWS Mainframe Modernization file dengan BMC dan fungsi Lambda, ikuti prinsip hak istimewa paling sedikit.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)
+ Pastikan kumpulan data sumber Anda telah [mendukung tipe data](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) untuk Quick Sight. Jika kumpulan data sumber Anda berisi tipe data yang tidak didukung, konversikan ke tipe data yang didukung. Untuk informasi tentang tipe data mainframe yang tidak didukung dan cara mengonversinya menjadi tipe data yang didukung oleh Amazon Q di Quick Sight, lihat bagian [Sumber daya terkait](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

## Epik
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-epics"></a>

### Mengatur transfer AWS Mainframe Modernization file dengan BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal agen transfer file. | Untuk menginstal agen transfer AWS Mainframe Modernization file, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Administrator sistem mainframe | 
| Buat bucket S3 untuk transfer file mainframe. | [Buat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) untuk menyimpan file output dari transfer AWS Mainframe Modernization file dengan BMC. Dalam diagram arsitektur, ini adalah bucket tujuan transfer file. | Insinyur migrasi | 
| Buat titik akhir transfer data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Spesialis Modernisasi AWS Mainframe | 

### Konversi ekstensi nama file mainframe untuk integrasi Quick Sight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | [Buat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) untuk fungsi Lambda untuk menyalin file mainframe yang dikonversi dari sumber ke bucket tujuan akhir. | Insinyur migrasi | 
| Buat fungsi Lambda. | Untuk membuat fungsi Lambda yang mengubah ekstensi file dan menyalin file mainframe ke bucket tujuan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Insinyur migrasi | 
| Buat pemicu Amazon S3 untuk menjalankan fungsi Lambda. | Untuk mengonfigurasi pemicu yang memanggil fungsi Lambda, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Untuk informasi selengkapnya, lihat [Tutorial: Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Pimpin migrasi | 
| Berikan izin IAM untuk fungsi Lambda. | Izin IAM diperlukan untuk fungsi Lambda untuk mengakses tujuan transfer file dan bucket S3 kumpulan data sumber. Perbarui kebijakan yang terkait dengan peran eksekusi fungsi Lambda dengan mengizinkan `s3:GetObject` dan `s3:DeleteObject`**** izin**** untuk bucket S3 tujuan transfer file dan `s3:PutObject` akses untuk bucket S3 kumpulan data sumber.Untuk informasi selengkapnya, lihat**** bagian [Membuat kebijakan izin](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy) di *Tutorial: Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda*. | Pimpin migrasi | 

### Tentukan tugas transfer data mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas transfer untuk menyalin file mainframe ke bucket S3. | Untuk membuat tugas transfer file mainframe, ikuti instruksi dalam [AWS Mainframe Modernization dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html).**Tentukan pengkodean **halaman kode sumber** sebagai **IBM1047** dan pengkodean **halaman kode target** sebagai UTF-8.** | Insinyur migrasi | 
| Verifikasi tugas transfer. | Untuk memverifikasi bahwa transfer data berhasil, ikuti instruksi dalam [AWS Mainframe Modernization dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Konfirmasikan bahwa file mainframe ada di bucket S3 tujuan transfer file. | Pimpin migrasi | 
| Verifikasi fungsi salinan Lambda. | Verifikasi bahwa fungsi Lambda dimulai dan file tersebut disalin dengan ekstensi.csv ke bucket S3 kumpulan data sumber.File csv yang dibuat oleh fungsi Lambda adalah file data input untuk Quick Sight. Misalnya data, lihat `Sample-data-member-healthcare-APG` file di bagian [Lampiran.](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68) | Pimpin migrasi | 

### Connect Quick Sight ke data mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengatur Quick Sight. | Untuk mengatur Quick Sight, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Pimpin migrasi | 
| Buat kumpulan data untuk Quick Sight. | Untuk membuat kumpulan data untuk Quick Sight, ikuti petunjuk dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html). File data input adalah file mainframe yang dikonversi yang dibuat saat Anda menentukan tugas transfer data mainframe. | Pimpin migrasi | 

### Dapatkan wawasan bisnis dari data mainframe dengan menggunakan Amazon Q di Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Amazon Q di Quick Sight. | Kemampuan ini membutuhkan Enterprise Edition. Untuk mengatur Amazon Q di Quick Sight, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Pimpin migrasi | 
| Analisis data mainframe dan buat dasbor visual. | Untuk menganalisis dan memvisualisasikan data Anda di Quick Sight, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Setelah selesai, Anda dapat mempublikasikan dasbor untuk dibagikan dengan orang lain di organisasi Anda. Sebagai contoh, lihat *Dasbor visual Mainframe* di bagian [Informasi tambahan](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Insinyur migrasi | 

### Buat cerita data dengan Amazon Q di Quick Sight dari data mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cerita data. | Buat cerita data untuk menjelaskan wawasan dari analisis sebelumnya, dan buat rekomendasi untuk meningkatkan imunisasi preventif bagi anggota:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Insinyur migrasi | 
| Lihat cerita data yang dihasilkan. | Untuk melihat cerita data yang dihasilkan, ikuti petunjuk dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Pimpin migrasi | 
| Edit cerita data yang dihasilkan. | [Untuk mengubah format, tata letak, atau visual dalam cerita data, ikuti petunjuk dalam dokumentasi.AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Pimpin migrasi | 
| Bagikan cerita data. | Untuk berbagi cerita data, ikuti instruksi dalam [AWS dokumentasi](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Insinyur migrasi | 

## Pemecahan masalah
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Tidak dapat menemukan file mainframe atau kumpulan data yang dimasukkan dalam **Data menetapkan kriteria pencarian** untuk **Buat tugas transfer dalam transfer** AWS Mainframe Modernization file dengan BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

## Sumber daya terkait
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources"></a>

Untuk mengonversi tipe data mainframe seperti [PACKED-DECIMAL (COMP-3) atau [BINARY (COMP atau COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) ke tipe [data](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) yang didukung oleh Quick Sight, lihat pola berikut:
+ [Konversi dan bongkar data EBCDIC ke ASCII dengan menggunakan Python AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Konversi file mainframe dari format EBCDIC ke format ASCII yang dibatasi karakter di Amazon S3 menggunakan AWS Lambda](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.html)

## Informasi tambahan
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 CopyLambda .py**

Kode Python berikut dihasilkan dengan menggunakan prompt dengan Amazon Q di IDE:

```
#Create a lambda function triggered by S3. display the S3 bucket name and key
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
print(event)
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(bucket, key)
#If key starts with object_created, skip copy, print "copy skipped". Return lambda with key value.
if key.startswith('object_created'):
print("copy skipped")
return {
'statusCode': 200,
'body': key
}
# Copy the file from the source bucket to the destination bucket. Destination_bucket_name = 'm2-filetransfer-final-opt-bkt'. Destination_file_key = 'healthdata.csv'
copy_source = {'Bucket': bucket, 'Key': key}
s3.copy_object(Bucket='m2-filetransfer-final-opt-bkt', Key='healthdata.csv', CopySource=copy_source)
print("file copied")
#Delete the file from the source bucket.
s3.delete_object(Bucket=bucket, Key=key)
return {
'statusCode': 200,
'body': 'Copy Successful'
}
```

**Dasbor visual mainframe**

Data visual berikut dibuat oleh Amazon Q di Quick Sight untuk pertanyaan analisis `show member distribution by region`*.*

![\[Bagan yang menunjukkan jumlah anggota untuk barat daya, barat tengah, timur laut, dan tenggara.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


Data visual berikut dibuat oleh Amazon Q di Quick Sight untuk pertanyaan tersebut`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Pie chart showing preventive immunization incompletion by region: Southeast 40%, Southwest 33%, Midwest 27%.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Keluaran cerita data**

Tangkapan layar berikut menunjukkan bagian dari cerita data yang dibuat oleh Amazon Q di Quick Sight untuk prompt `Build a data story about Region with most numbers of members. Also show the member distribution by medical plan, vision plan, dental plan. Recommend how to motivate members to complete immunization. Include 4 points of supporting data.`

Dalam pendahuluan, cerita data merekomendasikan memilih wilayah dengan anggota terbanyak untuk mendapatkan dampak terbesar dari upaya imunisasi.

![\[Halaman pengantar untuk cerita data yang berfokus pada tingkat penyelesaian imunisasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


Kisah data memberikan analisis jumlah anggota untuk tiga wilayah teratas, dan menyebut Southwest sebagai wilayah terkemuka untuk berfokus pada upaya imunisasi.

![\[Pie chart showing member distribution by region, with Southwest and Northeast leading at 31% each.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/30d3b56b-3b92-4748-9cef-a73ff9339fee.png)


**catatan**  
Wilayah Barat Daya dan Timur Laut masing-masing memiliki delapan anggota. Namun, Southwest memiliki lebih banyak anggota yang tidak sepenuhnya divaksinasi, sehingga memiliki lebih banyak potensi untuk mendapatkan manfaat dari inisiatif untuk meningkatkan tingkat imunisasi.

## Lampiran
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Menerapkan otentikasi berbasis Microsoft Entra ID dalam aplikasi mainframe modern AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani dan Rimpy Tewani, Amazon Web Services*

## Ringkasan
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**catatan**  
AWS Mainframe Modernization Layanan (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Aplikasi mainframe yang dimodernisasi dengan menggunakan pola refactoring, seperti yang oleh [AWS Mainframe Modernization Refactor with AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), memerlukan integrasi mekanisme otentikasi yang cermat ke dalam arsitektur aplikasi baru. Integrasi ini biasanya ditujukan sebagai kegiatan pasca-modernisasi. Tugas dapat menjadi kompleks dan sering melibatkan migrasi atau eksternalisasi sistem otentikasi yang ada untuk menyelaraskan dengan standar keamanan modern dan praktik cloud-native. Pengembang perlu mempertimbangkan cara menerapkan otentikasi secara efektif saat mereka bekerja dalam batasan lingkungan runtime dan pustaka aplikasi yang dimodernisasi. Setelah modernisasi, AWS menyediakan cara untuk memudahkan Anda mengintegrasikan kode modern AWS Blu Age Anda dengan identitas dan sistem manajemen akses seperti Amazon [Cognito dan](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (sebelumnya dikenal sebagai Azure AD).

Pola ini menjelaskan cara menerapkan mekanisme otentikasi dalam aplikasi modern Anda ketika penyedia otentikasi adalah Microsoft Entra ID, tanpa menghabiskan waktu untuk penelitian dan uji coba. Pola ini menyediakan:
+ Pustaka Angular yang teruji lapangan dan relevan dari Microsoft Authentication Library (MSAL) dan dokumentasi Microsoft Entra ID lainnya yang penting untuk implementasi otentikasi. 
+ Konfigurasi yang diperlukan pada AWS Blu Age Runtime untuk mengaktifkan Spring Security dengan menggunakan 2.0. OAuth 
+ Pustaka yang menangkap identitas pengguna yang diautentikasi dan meneruskannya ke Blu Age AWS Runtime.
+ Langkah-langkah keamanan yang kami rekomendasikan untuk diterapkan.
+ Kiat pemecahan masalah untuk masalah yang umum ditemui dengan pengaturan Microsoft Entra ID.

**catatan**  
Pola ini menggunakan pustaka OAuth ekstensi AWS Blu Age, yang disediakan untuk pelanggan sebagai bagian dari keterlibatan [Layanan AWS Profesional](https://aws.amazon.com/professional-services/) mereka. Perpustakaan ini bukan bagian dari AWS Blu Age Runtime.

## Prasyarat dan batasan
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Prasyarat**
+ Aplikasi modern yang diproduksi oleh alat refactoring modernisasi mainframe AWS Blu Age. Pola ini digunakan [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)sebagai contoh aplikasi mainframe open source.
+ Perpustakaan OAuth ekstensi AWS Blu Age, yang disediakan oleh tim AWS Blu Age selama keterlibatan Anda dengan Layanan [AWS Profesional](https://aws.amazon.com/professional-services/).
+ Aktif Akun AWS untuk menyebarkan dan menguji aplikasi modern.
+ Keakraban dengan file konfigurasi AWS Blu Age dan dasar-dasar Microsoft Entra ID.

**Batasan**
+ Pola ini mencakup otentikasi OAuth 2.0 dan alur otorisasi berbasis token dasar. Skenario otorisasi lanjutan dan mekanisme kontrol akses berbutir halus tidak dalam cakupan.
+ 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 [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 dikembangkan dengan menggunakan:
+ AWS Blu Age Runtime versi 4.1.0 (polanya juga berfungsi dengan versi yang lebih baru yang kompatibel ke belakang)
+ Pustaka MSAL versi 3.0.23
+ Kit Pengembangan Java (JDK) versi 17
+ Versi sudut 16.1

## Arsitektur
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Tumpukan teknologi sumber**

Dalam lingkungan mainframe yang khas, otentikasi diimplementasikan melalui profil pengguna. Profil ini mengidentifikasi pengguna ke sistem, menentukan siapa yang dapat masuk, dan menentukan fungsi mana yang dapat dilakukan pengguna pada sumber daya sistem. Profil pengguna dikelola oleh petugas keamanan atau administrator keamanan.

**Tumpukan teknologi target**
+ ID Microsoft Entra
+ Backend berbasis Java Spring Boot yang dimodernisasi
+ AWS Blu Age Runtime
+ Keamanan Musim Semi dengan OAuth 2.0
+ Aplikasi satu halaman sudut (SPA)

**Arsitektur target**

AWS Blu Age runtime mendukung otentikasi OAuth berbasis 2.0 secara default, sehingga pola menggunakan standar itu untuk melindungi backend. APIs

Diagram berikut menggambarkan aliran proses.

**catatan**  
Diagram mencakup Amazon Aurora sebagai contoh modernisasi basis data meskipun Aurora tidak termasuk dalam langkah-langkah untuk pola ini.

![\[Alur proses untuk otentikasi berbasis Entra ID untuk aplikasi AWS Blu Age.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


di mana:

1. Pengguna mencoba mengautentikasi dengan Microsoft Entra ID.

1. Microsoft Entra ID mengembalikan token refresh, akses, dan ID yang digunakan aplikasi dalam panggilan berikutnya.

1. Pencegat MSAL menyertakan token akses di `Authorization` header permintaan HTTPS untuk memanggil AWS Blu Age Runtime.

1. `extension-oauth`Pustaka AWS Blu Age mengekstrak informasi pengguna dari header dengan menggunakan file konfigurasi AWS Blu Age Runtime (`application-main.yml`) dan menempatkan informasi ini dalam `SharedContext` objek sehingga logika bisnis dapat menggunakannya.
**catatan**  
`SharedContext`adalah komponen runtime yang disediakan oleh AWS Blu Age yang mengelola konteks aplikasi dan informasi status di seluruh aplikasi modern. Untuk informasi selengkapnya tentang komponen dan pembaruan AWS Blu Age Runtime, lihat [catatan rilis AWS Blu Age di dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html). AWS Mainframe Modernization Untuk informasi selengkapnya tentang `application-main.yml` file, lihat [Mengatur konfigurasi untuk AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) dalam dokumentasi. AWS Mainframe Modernization 

1.  AWS Blu Age Runtime memeriksa apakah token ada. 

   1. Jika token ada, ia memeriksa validitas token dengan berkomunikasi dengan Microsoft Entra ID. 

   1. Jika token tidak ada, AWS Blu Age Runtime mengembalikan kesalahan dengan kode status HTTP 403.

1. Jika token valid, AWS Blue Age Runtime memungkinkan logika bisnis untuk melanjutkan. Jika token tidak valid, AWS Blu Age Runtime mengembalikan kesalahan dengan kode status HTTP 403.

**OAuth Alur kerja 2.0**

Untuk diagram tingkat tinggi alur kerja OAuth 2.0, lihat dokumentasi [Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Alat
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Layanan AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)menyediakan alat dan sumber daya untuk membantu Anda merencanakan dan mengimplementasikan migrasi dan modernisasi dari mainframe ke lingkungan runtime AWS terkelola. Anda dapat menggunakan fitur refactoring layanan ini, yang disediakan oleh AWS Blu Age, untuk mengonversi dan memodernisasi aplikasi mainframe lama Anda.

**catatan**  
AWS Mainframe Modernization Layanan (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositori kode**

 CardDemo Aplikasi telah diperbarui untuk menunjukkan integrasi dengan Microsoft Entra ID. Anda dapat mengakses kode dari [GitHub repositori untuk pola ini](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Konfigurasi backend**

Pola ini memerlukan perubahan pada file `application-main.yml`**** konfigurasi untuk mengaktifkan Spring Security dengan menggunakan OAuth 2.0 pada aplikasi backend.  `.yml`File terlihat seperti ini:

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Pustaka filter OAuth ekstensi Blu Age**

Perpustakaan OAuth ekstensi AWS Blu Age disediakan oleh tim AWS Blu Age selama keterlibatan Anda dengan Layanan [AWS Profesional](https://aws.amazon.com/professional-services/).

Pustaka ini membaca `claim.claims` konfigurasi dalam `application-main.yml` fie yang ditampilkan di blok kode sebelumnya. Konfigurasi ini adalah daftar. Setiap item dalam daftar memberikan dua nilai: `claimName` dan`claimMapValue`. `claimName`merupakan nama kunci dalam JSON Web Token (JWT) yang dikirim oleh frontend, dan `claimMapValue` merupakan nama kunci dalam. `SharedContext` Misalnya, jika Anda ingin menangkap ID pengguna di backend, atur `claimName` ke nama kunci di JWT yang menyimpan `userId` yang disediakan oleh Microsoft Entra ID, dan atur `claimMapValue` ke nama kunci untuk mengambil ID pengguna dalam kode backend.

Misalnya, jika Anda mengatur `UserId``claimMapValue`, Anda dapat menggunakan kode berikut untuk mengekstrak ID pengguna:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Praktik terbaik
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Dalam penerapan pola ini, pertimbangkan pertimbangan keamanan penting berikut.

**penting**  
Pola ini memberikan dasar untuk integrasi otentikasi. Kami menyarankan Anda menerapkan langkah-langkah keamanan selain yang dibahas di bagian ini berdasarkan persyaratan bisnis Anda sebelum Anda menyebarkannya ke produksi.
+ **AWS keamanan konfigurasi.**Pindahkan nilai konfigurasi sensitif dari `application-main.yml` ke AWS Secrets Manager. Misalnya, konfigurasikan properti berikut dengan menggunakan Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Untuk informasi selengkapnya tentang cara menggunakan Secrets Manager untuk mengonfigurasi parameter AWS Blu Age, lihat [Rahasia AWS Blu Age Runtime di dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html). AWS Mainframe Modernization 
+ **Perlindungan lingkungan runtime.** Konfigurasikan lingkungan aplikasi modern dengan kontrol AWS keamanan yang tepat:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Pencatatan Amazon.** Pertimbangkan untuk menambahkan file`logback-spring.xml to src/main/resources`:

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Untuk informasi tentang mengaktifkan penelusuran dengan CloudWatch, lihat [Mengaktifkan jejak untuk mencatat korelasi dalam dokumentasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html). CloudWatch 
+ **Konfigurasi dan penanganan token.** Konfigurasikan masa pakai token di Microsoft Entra ID agar selaras dengan persyaratan keamanan Anda. Tetapkan token akses untuk kedaluwarsa dalam 1 jam dan refresh token untuk kedaluwarsa dalam 24 jam. Dalam konfigurasi AWS Blu Age Runtime (`application-main.yml`), pastikan validasi JWT dikonfigurasi dengan benar dengan URI penerbit dan nilai audiens yang tepat dari pendaftaran aplikasi Entra ID Anda.

  Saat token kedaluwarsa dan di-refresh:

  1. Pencegat kesalahan aplikasi Angular menangani respons 401 dengan mendapatkan token baru melalui MSAL.

  1. Token baru dikirim dengan permintaan berikutnya.

  1.  OAuth Filter AWS Blu Age Runtime memvalidasi token baru dan secara otomatis memperbarui `SharedContext` dengan informasi pengguna saat ini. Ini memastikan bahwa logika bisnis terus memiliki akses ke konteks pengguna yang valid melalui `SharedContext.get().getValue()` panggilan.

  Untuk informasi selengkapnya tentang komponen AWS Blu Age Runtime dan pembaruannya, lihat catatan rilis [AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Keamanan Runtime AWS Blu Age.** `oauth2-ext`Pustaka yang disediakan oleh AWS Blu Age harus ditempatkan di lokasi direktori bersama yang benar (`{app-server-home}/shared/`) dengan izin file yang tepat. Verifikasi bahwa pustaka berhasil mengekstrak informasi pengguna JWTs dengan memeriksa populasi `SharedContext` objek di log Anda.
+ **Konfigurasi klaim khusus.** Dalam`application-main.yml`, tentukan klaim yang Anda butuhkan dari Microsoft Entra ID secara eksplisit. Misalnya, untuk menangkap email dan peran pengguna, tentukan:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Penanganan kesalahan.** Tambahkan penanganan kesalahan untuk mengatasi kegagalan otentikasi di aplikasi Angular Anda; misalnya:

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Konfigurasi batas waktu sesi.** Konfigurasikan pengaturan batas waktu sesi di AWS Blu Age Runtime dan Microsoft Entra ID. Misalnya, tambahkan kode berikut ke `application-main.yml` file Anda:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Anda harus menerapkan MsalGuard fitur untuk semua rute yang dilindungi untuk mencegah akses yang tidak sah. Contoh:

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  Rute yang tidak memiliki MsalGuard perlindungan akan dapat diakses tanpa otentikasi, berpotensi mengekspos fungsionalitas sensitif. Pastikan bahwa semua rute yang memerlukan otentikasi menyertakan penjaga dalam konfigurasinya.

## Epik
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Mengatur ID Microsoft Entra
<a name="set-up-a-microsoft-entra-id"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan akun Microsoft Azure untuk membuat ID Entra. | Untuk opsi dan instruksi, lihat [situs web Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Pengembang aplikasi | 
| Siapkan ID Microsoft Entra di aplikasi Anda. | [Untuk mempelajari cara menambahkan otentikasi Microsoft Entra ID B2C (Azure AD B2C) ke Angular SPA Anda, lihat dokumentasi Microsoft.](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components) Secara khusus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 

### Kloning repositori dan terapkan kode Blu Age Anda AWS
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning GitHub repositori untuk mendapatkan kode Angular yang diperlukan untuk otentikasi. | Jalankan perintah berikut untuk mengkloning [GitHub repositori](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) yang disediakan dengan pola ini ke direktori kerja lokal Anda saat ini:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Pengembang aplikasi | 
| Terapkan kode modern AWS Blu Age di server Tomcat untuk mengimplementasikan otentikasi. | Untuk mengatur lingkungan lokal yang mencakup Tomcat dan server pengembangan Angular, ikuti langkah-langkah instalasi yang disediakan oleh tim AWS Blu Age sebagai bagian dari keterlibatan pelanggan Anda dengan Layanan AWS Profesional. | Pengembang aplikasi | 

### Bangun solusi otentikasi
<a name="build-the-authentication-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan keamanan AWS Blu Age Runtime untuk melindungi titik akhir AWS Blu Age REST API. | Konfigurasikan `application-main.yml` file yang digunakan AWS Blu Age Runtime sebagai berikut. Untuk contoh file ini, lihat bagian [Repositori kode](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) sebelumnya dalam pola ini.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 
| Masukkan kode contoh dari lingkungan lokal Anda ke dalam basis kode Angular modern Blu Age Anda. | Untuk informasi tentang cara memasukkan contoh ke dalam basis kode Angular modern AWS Blu Age Anda, lihat bagian [repositori Kode sebelumnya](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) dalam pola ini. | Pengembang aplikasi | 
| Tempatkan `oauth2-ext` perpustakaan di direktori bersama. | **Tempatkan `oauth2-ext` perpustakaan di direktori**** bersama server aplikasi sehingga aplikasi modern **AWS **Blu Age Anda dapat menggunakannya.**Jalankan perintah berikut:<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Pengembang aplikasi | 

### Menyebarkan solusi otentikasi
<a name="deploy-the-authentication-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan aplikasi frontend. | Jalankan perintah berikut untuk memulai aplikasi frontend secara lokal:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Menambahkan `--ssl` flag ke `ng serve` perintah memastikan bahwa server pengembangan menggunakan HTTPS, yang lebih aman daripada protokol lain dan memberikan simulasi lingkungan produksi yang lebih baik. | Pengembang aplikasi | 
| Mulai aplikasi backend. | Mulai server Tomcat di Eclipse. | Pengembang aplikasi | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji fungsionalitas login. | Akses aplikasi yang digunakan secara lokal di `http://localhost:4200` untuk memverifikasi bahwa pengguna diminta untuk mengonfirmasi identitas mereka.HTTP digunakan di sini untuk tujuan demonstrasi. Dalam produksi atau lingkungan lain yang dapat diakses publik, Anda harus menggunakan HTTPS untuk keamanan. Bahkan untuk pengembangan lokal, kami menyarankan Anda mengatur HTTPS jika memungkinkan.Prompt login Microsoft akan muncul, dan pengguna yang dikonfigurasi di Microsoft Entra ID harus diizinkan untuk mengakses aplikasi. | Pengembang aplikasi | 
| Uji header otorisasi dalam permintaan. | Langkah-langkah berikut menggunakan [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplikasi sebagai contoh. Langkah-langkah pengujian untuk aplikasi modern lainnya akan bervariasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 
| Uji fungsionalitas logout. | Pilih **Keluar** untuk keluar, dan coba akses aplikasi lagi. Ini harus menyajikan prompt login baru. | Pengembang aplikasi | 

## Pemecahan masalah
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Token yang dikeluarkan oleh Microsoft Entra ID tidak kompatibel dengan keamanan Spring Boot OAuth 2.0. | Untuk penyelesaian masalah ini, lihat [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) di OAuth blog. | 
| Pertanyaan umum terkait token. | [Untuk memecahkan kode dan melihat konten token JWT, gunakan situs web https://jwt.io/.](https://jwt.io/) | 

## Sumber daya terkait
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Untuk informasi tentang refactoring aplikasi Anda dengan menggunakan AWS Blu Age, lihat dokumentasi.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Untuk memahami cara kerja OAuth 2.0, lihat situs [web OAuth 2.0](https://oauth.net/2/).
+ Untuk gambaran umum tentang Microsoft Authentication Library (MSAL), lihat dokumentasi [Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Untuk informasi tentang profil pengguna pada sistem AS/400, lihat [IBM i (AS400) tutorial](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Untuk alur otentikasi OAuth 2.0 dan OpenID Connect (OIDC) di platform identitas Microsoft, lihat dokumentasi Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integrasikan Stonebranch Universal Controller dengan AWS Mainframe Modernisasi
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

*Vaidy Sankaran dan Pablo Alonso Prieto, Amazon Web Services*

*Robert Lemieux dan Huseyin Gomleksizoglu, Cabang Batu*

## Ringkasan
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-summary"></a>

Catatan: AWS Mainframe Modernization Layanan (pengalaman Lingkungan Runtime Terkelola) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Pola ini menjelaskan cara mengintegrasikan [orkestrasi beban kerja Stonebranch Universal Automation Center (UAC) dengan layanan Modernisasi Mainframe](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) [Amazon Web Services (](https://aws.amazon.com/mainframe-modernization/)AWS). Layanan AWS Mainframe Modernisasi memigrasikan dan memodernisasi aplikasi mainframe ke AWS Cloud. Ini menawarkan dua pola: [AWS Mainframe Modernization Replatform](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) dengan teknologi Micro Focus Enterprise dan AWS [Mainframe Modernization Automated Refactor dengan AWS](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) Blu Age.  

Stonebranch UAC adalah platform otomatisasi dan orkestrasi TI real-time. UAC dirancang untuk mengotomatiskan dan mengatur pekerjaan, aktivitas, dan alur kerja di seluruh sistem TI hybrid, dari lokal hingga AWS. Klien perusahaan yang menggunakan sistem mainframe beralih ke infrastruktur dan aplikasi modern yang berpusat pada cloud. Alat dan layanan profesional Stonebranch memfasilitasi migrasi penjadwal yang ada dan kemampuan otomatisasi ke AWS Cloud.

Saat memigrasikan atau memodernisasi program mainframe Anda ke AWS Cloud menggunakan layanan AWS Mainframe Modernization, Anda dapat menggunakan integrasi ini untuk mengotomatiskan penjadwalan batch, meningkatkan kelincahan, meningkatkan pemeliharaan, dan mengurangi biaya.

Pola ini memberikan instruksi untuk mengintegrasikan [penjadwal Stonebranch](https://www.stonebranch.com/) dengan aplikasi mainframe yang dimigrasikan ke runtime layanan Modernisasi AWS Mainframe Micro Focus Enterprise. Pola ini untuk arsitek solusi, pengembang, konsultan, spesialis migrasi, dan lainnya yang bekerja dalam migrasi, modernisasi, operasi, atau. DevOps

**Hasil yang ditargetkan**

Pola ini berfokus pada penyediaan hasil target berikut:
+ Kemampuan untuk menjadwalkan, mengotomatiskan, dan menjalankan pekerjaan batch mainframe yang berjalan di layanan AWS Mainframe Modernization (Microfocus runtime) dari Stonebranch Universal Controller.
+ Pantau proses batch aplikasi dari Stonebranch Universal Controller.
+ Start/Restart/Rerun/Stopproses batch secara otomatis atau manual dari Stonebranch Universal Controller.
+ Ambil hasil proses batch AWS Mainframe Modernization.
+ Tangkap CloudWatch log [AWS](https://aws.amazon.com/cloudwatch/) dari pekerjaan batch di Stonebranch Universal Controller.

## Prasyarat dan batasan
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Aplikasi Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) dengan file job control language (JCL), dan proses batch yang diterapkan di lingkungan AWS Mainframe Modernization service (Micro Focus runtime)
+ [Pengetahuan dasar tentang cara membangun dan menyebarkan aplikasi mainframe yang berjalan di Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Pengetahuan dasar tentang Stonebranch Universal Controller
+ [Lisensi uji coba Stonebranch (hubungi Stonebranch)](https://www.stonebranch.com/)
+ Instans Windows atau Linux Amazon Elastic Compute Cloud (Amazon EC2) (misalnya, xlarge) dengan minimal empat core, memori 8 GB, dan ruang disk 2 GB
+ Apache Tomcat versi 8.5.x atau 9.0.x
+ Oracle Java Runtime Environment (JRE) atau OpenJDK versi 8 atau 11
+ [Amazon Aurora MySQL — Edisi yang Kompatibel](https://aws.amazon.com/rds/aurora/)
+ [Bucket Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) untuk repositori ekspor
+ [Amazon Elastic File System (Amaon EFS)](https://aws.amazon.com/efs/) untuk koneksi agen Stonebranch Universal Message Service (OMS) untuk ketersediaan tinggi (HA)
+ Stonebranch Universal Controller 7.2 Agen Universal 7.2 File Instalasi
+ [Templat penjadwalan tugas](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) Modernisasi AWS Mainframe (versi rilis terbaru dari file.zip)

**Batasan**
+ Produk dan solusi telah diuji dan kompatibilitas divalidasi hanya dengan OpenJDK 8 dan 11.
+ Template penjadwalan tugas [aws-mainframe-modernization-stonebranch-integrasi](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) hanya akan berfungsi dengan layanan AWS Mainframe Modernization.
+ Template penjadwalan tugas ini hanya akan bekerja pada agen Stonebranch edisi Unix, Linux, atau Windows.
+ Beberapa layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [layanan AWS menurut 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="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-architecture"></a>

**Arsitektur negara sasaran**

Diagram berikut menunjukkan contoh lingkungan AWS yang diperlukan untuk pilot ini.

![\[Stonebranch UAC berinteraksi dengan lingkungan AWS Mainframe Modernisasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. Stonebranch Universal Automation Center (UAC) mencakup dua komponen utama: Universal Controller dan Universal Agents. Stonebranch OMS digunakan sebagai bus pesan antara pengontrol dan agen individu.

1. Stonebranch UAC Database digunakan oleh Universal Controller. Database dapat MySQL, Microsoft SQL Server, Oracle, atau Aurora MySQL — kompatibel.

1. [Layanan Modernisasi AWS Mainframe — Lingkungan runtime Micro Focus dengan aplikasi yang diterapkan. BankDemo ](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/) File BankDemo aplikasi akan disimpan dalam ember S3. Bucket ini juga berisi file JCL mainframe.

1. Stonebranch UAC dapat menjalankan fungsi-fungsi berikut untuk batch run:

   1. Mulai pekerjaan batch menggunakan nama file JCL yang ada di bucket S3 yang ditautkan ke layanan modernisasi mainframe AWS.

   1. Dapatkan status pekerjaan batch yang dijalankan.

   1. Tunggu hingga batch job run selesai.

   1. Ambil log dari pekerjaan batch yang dijalankan.

   1. Jalankan kembali pekerjaan batch yang gagal.

   1. Batalkan pekerjaan batch saat pekerjaan sedang berjalan.

1. Stonebranch UAC dapat menjalankan fungsi-fungsi berikut untuk aplikasi:

   1. Mulai Aplikasi

   1. Dapatkan Status Aplikasi

   1. Tunggu hingga Aplikasi dimulai atau dihentikan

   1. Hentikan Aplikasi

   1. Ambil Log operasi Aplikasi

**Konversi pekerjaan Stonebranch**

Diagram berikut mewakili proses konversi pekerjaan Stonebranch selama perjalanan modernisasi. Ini menjelaskan bagaimana jadwal pekerjaan dan definisi tugas diubah menjadi format yang kompatibel yang dapat menjalankan tugas batch AWS Mainframe Modernization.

![\[Proses dari mainframe ke konversi ke penjadwal pekerjaan di Amazon EC2 dengan file JCL di Amazon S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Untuk proses konversi, definisi pekerjaan diekspor dari sistem mainframe yang ada.

1. File JCL dapat diunggah ke bucket S3 untuk aplikasi Modernisasi Mainframe sehingga file JCL ini dapat digunakan oleh layanan AWS Mainframe Modernization.

1. Alat konversi mengonversi definisi pekerjaan yang diekspor ke tugas UAC.

1. Setelah semua definisi tugas dan jadwal pekerjaan dibuat, objek ini akan diimpor ke Universal Controller. Tugas yang dikonversi kemudian menjalankan proses di layanan AWS Mainframe Modernization alih-alih menjalankannya di mainframe.

**Arsitektur UAC Stonebranch**

Diagram arsitektur berikut merupakan active-active-passive model ketersediaan tinggi (HA) Universal Controller. Stonebranch UAC digunakan di beberapa Availability Zone untuk menyediakan ketersediaan tinggi dan mendukung pemulihan bencana (DR).

![\[Lingkungan multi-AZ dengan DR dan pengontrol, Amazon EFS, Aurora, dan bucket S3 untuk pencadangan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Pengontrol Universal*

Dua server Linux disediakan sebagai Universal Controller. Keduanya terhubung ke endpoint database yang sama. Setiap server memiliki aplikasi Universal Controller dan OMS. Versi terbaru dari Universal Controller digunakan pada saat itu disediakan.

Pengontrol Universal digunakan di webapp Tomcat sebagai ROOT dokumen dan disajikan pada port 80. Penerapan ini memudahkan konfigurasi penyeimbang beban frontend.

HTTP melalui TLS atau HTTPS diaktifkan menggunakan sertifikat wildcard Stonebranch (misalnya,). `https://customer.stonebranch.cloud` Ini mengamankan komunikasi antara browser dan aplikasi.

*OMS*

Agen Universal dan OMS (Layanan Pesan Opswise) berada di setiap server Universal Controller. Semua Agen Universal yang dikerahkan dari ujung pelanggan diatur untuk terhubung ke kedua layanan OMS. OMS bertindak sebagai layanan pesan umum antara Universal Agents dan Universal Controller.

Amazon EFS memasang direktori spool di setiap server. OMS menggunakan direktori spool bersama ini untuk menjaga koneksi dan informasi tugas dari pengontrol dan agen. OMS bekerja dalam mode ketersediaan tinggi. Jika OMS aktif turun, OMS pasif memiliki akses ke semua data, dan melanjutkan operasi aktif secara otomatis. Agen Universal mendeteksi perubahan ini dan secara otomatis terhubung ke OMS aktif baru.

*Basis Data*

Amazon Relational Database Service (Amazon RDS) menampung database UAC, dengan Amazon Aurora MySQL yang kompatibel dengan mesinnya. Amazon RDS membantu dalam mengelola dan menawarkan cadangan terjadwal secara berkala. Kedua instans Universal Controller terhubung ke endpoint database yang sama.

*Penyeimbang beban*

Application Load Balancer diatur untuk setiap instance. Penyeimbang beban mengarahkan lalu lintas ke pengontrol aktif pada saat tertentu. Nama domain instance Anda mengarah ke titik akhir penyeimbang beban masing-masing.

*URLs*

Setiap instance Anda memiliki URL, seperti yang ditunjukkan pada contoh berikut.


| 
| 
| Lingkungan | Instans | 
| --- |--- |
| **Produksi** | `customer.stonebranch.cloud` | 
| **Pengembangan (non-produksi)** | `customerdev.stonebranch.cloud` | 
| **Pengujian (non-produksi)** | `customertest.stonebranch.cloud` | 

**catatan**  
  Nama instans non-produksi dapat diatur berdasarkan kebutuhan Anda.

*Ketersediaan tinggi*

Ketersediaan tinggi (HA) adalah kemampuan sistem untuk beroperasi terus menerus tanpa kegagalan untuk jangka waktu yang ditentukan. Kegagalan tersebut termasuk, namun tidak terbatas pada, penyimpanan, penundaan respons komunikasi server yang disebabkan oleh masalah CPU atau memori, dan konektivitas jaringan.

Untuk memenuhi persyaratan HA:
+ Semua instans EC2, database, dan konfigurasi lainnya dicerminkan di dua Availability Zone terpisah dalam Wilayah AWS yang sama.
+ Pengontrol disediakan melalui Amazon Machine Image (AMI) pada dua server Linux di dua Availability Zones. Misalnya, jika Anda disediakan di Wilayah eu-west-1 Eropa, Anda memiliki Pengontrol Universal di Availability Zone eu-west-1a dan Availability Zone eu-west-1c.
+ Tidak ada pekerjaan yang diizinkan untuk berjalan langsung di server aplikasi dan tidak ada data yang diizinkan untuk disimpan di server ini.
+ Application Load Balancer menjalankan pemeriksaan kesehatan pada setiap Universal Controller untuk mengidentifikasi yang aktif dan mengarahkan lalu lintas ke sana. Jika satu server mengalami masalah, penyeimbang beban secara otomatis mempromosikan Universal Controller pasif ke status aktif. Load balancer kemudian mengidentifikasi instans Universal Controller aktif baru dari pemeriksaan kesehatan dan mulai mengarahkan lalu lintas. Failover terjadi dalam waktu empat menit tanpa kehilangan pekerjaan, dan URL frontend tetap sama.
+ Layanan database yang kompatibel dengan Aurora MySQL menyimpan data Universal Controller. Untuk lingkungan produksi, kluster database dibangun dengan dua instance database di dua Availability Zone yang berbeda dalam satu Wilayah AWS. Kedua Pengontrol Universal menggunakan antarmuka Java Database Connectivity (JDBC) yang menunjuk ke titik akhir cluster database tunggal. Jika satu instance database menimbulkan masalah, titik akhir cluster database secara dinamis menunjuk ke instance sehat. Tidak diperlukan intervensi manual.

*Backup dan bersihkan*

Stonebranch Universal Controller diatur untuk mencadangkan dan membersihkan data lama mengikuti jadwal yang ditunjukkan pada tabel.


| 
| 
| Tipe | Jadwal | 
| --- |--- |
| **Aktivitas** | 7 hari | 
| **Audit** | 90 hari | 
| **Sejarah** | 60 hari | 

Backup data yang lebih lama dari tanggal yang ditampilkan diekspor ke format.xml. dan disimpan dalam sistem file. Setelah proses pencadangan selesai, data lama akan dihapus dari database dan diarsipkan dalam bucket S3 hingga satu tahun untuk instance produksi.

Anda dapat menyesuaikan jadwal ini di antarmuka Universal Controller Anda. Namun, peningkatan kerangka waktu ini dapat menyebabkan waktu henti yang lebih lama selama pemeliharaan.

## Alat
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**Layanan AWS**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) adalah platform cloud-native AWS yang membantu Anda memodernisasi aplikasi mainframe ke lingkungan runtime yang dikelola AWS. Ini menyediakan alat dan sumber daya untuk membantu Anda merencanakan dan menerapkan migrasi dan modernisasi.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) menyediakan volume penyimpanan tingkat blok untuk digunakan bersama dengan instans Amazon EC2 Anda.
+ [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 AWS Cloud.
+ [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 Aurora MySQL-Compatible Edition.
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh instans, kontainer, dan alamat IP Amazon EC2 di satu atau beberapa Availability Zone. Pola ini menggunakan Application Load Balancer.

**Stonebranch**
+ [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) adalah sistem produk otomatisasi beban kerja perusahaan. Pola ini menggunakan komponen UAC berikut:
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), aplikasi web Java yang berjalan di wadah web Tomcat, adalah penjadwal pekerjaan perusahaan dan solusi broker otomatisasi beban kerja dari Universal Automation Center. Controller menyajikan antarmuka pengguna untuk membuat, memantau, dan mengkonfigurasi informasi Controller; menangani logika penjadwalan; memproses semua pesan ke dan dari Agen Universal; dan menyinkronkan banyak operasi ketersediaan tinggi Universal Automation Center.
  + [Universal Agent adalah agen](https://www.stonebranch.com/documentation-universal-agent) penjadwalan independen vendor yang berkolaborasi dengan penjadwal pekerjaan yang ada di semua platform komputasi utama, baik warisan maupun terdistribusi. Semua penjadwal yang berjalan diz/Series, i/Series, Unix, Linux, atau Windows didukung.
+ [Universal Agent adalah agen](https://www.stonebranch.com/documentation-universal-agent) penjadwalan independen vendor yang berkolaborasi dengan penjadwal pekerjaan yang ada di semua platform komputasi utama, baik warisan maupun terdistribusi. Semua penjadwal yang berjalan diz/Series, i/Series, Unix, Linux, atau Windows didukung.
+ [Stonebranch aws-mainframe-modernization-stonebranch -integration AWS Mainframe Modernization Universal](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) Extension adalah template integrasi untuk menjalankan, memantau, dan menjalankan kembali pekerjaan batch di platform AWS Mainframe Modernization.

**Kode**

Kode untuk pola ini tersedia di GitHub repositori [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/).

## Epik
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-epics"></a>

### Instal Pengontrol Universal dan Agen Universal di Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh file instalasi. | Unduh instalasi dari server Stonebranch. Untuk mendapatkan file instalasi, kontak dengan Stonebranch. | Arsitek awan | 
| Luncurkan instans EC2. | Anda akan membutuhkan sekitar 3 GB ruang ekstra untuk instalasi Universal Controller dan Universal Agent. Jadi sediakan setidaknya 30 GB ruang disk untuk instance.Tambahkan port 8080 ke grup keamanan sehingga dapat diakses. | Arsitek awan | 
| Periksa prasyarat. | Sebelum instalasi, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator cloud, administrator Linux | 
| Instal Pengontrol Universal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Arsitek cloud, administrator Linux | 
| Instal Agen Universal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator cloud, administrator Linux | 
| Tambahkan OMS ke Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 

### Impor AWS Mainframe Modernization Universal Extension dan buat tugas
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Templat Integrasi Impor. | Untuk langkah ini, Anda memerlukan [AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) Universal Extension. Pastikan versi rilis terbaru dari file.zip diunduh.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)**Setelah Template Integrasi diimpor, Anda akan melihat **Tugas Modernisasi AWS Mainframe** di bawah Layanan yang Tersedia.** | Administrator Pengontrol Universal | 
| Aktifkan kredenal yang dapat diselesaikan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 
| Luncurkan tugas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 

### Uji memulai pekerjaan batch
<a name="test-starting-a-batch-job"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tugas untuk pekerjaan batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 
| Luncurkan tugas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 

### Buat alur kerja untuk beberapa tugas
<a name="create-a-workflow-for-multiple-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Salin tugas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 
| Perbarui tugas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 
| Buat alur kerja. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 
| Periksa status alur kerja. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Univeral | 

### Memecahkan masalah pekerjaan batch yang gagal dan jalankan kembali
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbaiki tugas yang gagal dan jalankan kembali. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 

### Buat Mulai Aplikasi dan Hentikan tugas Aplikasi
<a name="create-start-application-and-stop-application-tasks"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tindakan Mulai Aplikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrator Pengontrol Universal | 

### Membuat tugas Batalkan Eksekusi Batch
<a name="create-a-cancel-batch-execution-task"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tindakan Batch Batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Sumber daya terkait
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Pengontrol Universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Agen Universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Pengaturan LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [SALL Single Sign-On](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Alat Konversi Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Informasi tambahan
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Ikon di Editor Alur Kerja**

![\[RUNHELLO tugas di atas, FOOBAR di tengah, dan tugas yang tersisa di tingkat ketiga.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Semua tugas terhubung**

![\[RUNHELLO terhubung ke FOOBAR, yang terhubung ke tiga tugas yang tersisa.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Status alur kerja**

![\[Tugas FOOBAR gagal dan tiga tugas lainnya sedang menunggu.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Memigrasi dan mereplikasi file VSAM ke Amazon RDS atau Amazon MSK menggunakan Connect from Excently
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna dan Boopathy GOPALSAMY, Amazon Web Services*

## Ringkasan
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-summary"></a>

[Pola ini menunjukkan kepada Anda cara memigrasi dan mereplikasi file Metode Akses Penyimpanan Virtual (VSAM) dari mainframe ke lingkungan target di AWS Cloud dengan menggunakan Connect from Accurly.](https://www.precisely.com/product/precisely-connect/connect) Lingkungan target yang tercakup dalam pola ini termasuk Amazon Relational Database Service (Amazon RDS) dan Amazon Managed Streaming for Apache Kafka (Amazon MSK). Connect menggunakan [change data capture (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) untuk terus memantau pembaruan ke file VSAM sumber Anda dan kemudian mentransfer pembaruan ini ke satu atau beberapa lingkungan target AWS Anda. Anda dapat menggunakan pola ini untuk memenuhi tujuan modernisasi aplikasi atau analisis data Anda. Misalnya, Anda dapat menggunakan Connect untuk memigrasikan file aplikasi VSAM Anda ke AWS Cloud dengan latensi rendah, atau memigrasikan data VSAM Anda ke gudang data AWS atau data lake untuk analitik yang dapat mentolerir latensi sinkronisasi yang lebih tinggi dari yang diperlukan untuk modernisasi aplikasi.

## Prasyarat dan batasan
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Prasyarat**
+ [IBM z/OS V2R1](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument) atau yang lebih baru
+ [Server Transaksi CICS untuk z/OS (CICS TS) V5.1 atau yang lebih baru (pengambilan data CICS/VSAM](https://www.ibm.com/support/pages/cics-transaction-server-zos-51-detailed-system-requirements))
+ [IBM MQ 8.0](https://www.ibm.com/support/pages/downloading-ibm-mq-80) atau yang lebih baru
+ Kepatuhan dengan [persyaratan keamanan z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS) (misalnya, otorisasi APF untuk pustaka pemuatan) SQData 
+ Log pemulihan VSAM dihidupkan
+ (Opsional) [Versi Pemulihan CICS VSAM (CICS VR) untuk secara otomatis menangkap log CDC](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr)
+ Akun AWS yang aktif
+ [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) dengan subnet yang dapat dijangkau oleh platform lama Anda
+ Lisensi VSAM Connect dari Tepatnya

**Batasan**
+ Connect tidak mendukung pembuatan tabel target otomatis berdasarkan skema atau copybook sumber VSAM. Anda harus menentukan struktur tabel target untuk pertama kalinya.
+ Untuk target non-streaming seperti Amazon RDS, Anda harus menentukan sumber konversi ke pemetaan target dalam skrip konfigurasi Apply Engine.
+ Fungsi pencatatan, pemantauan, dan peringatan diimplementasikan melalui APIs dan memerlukan komponen eksternal (seperti Amazon CloudWatch) untuk beroperasi penuh.

**Versi produk**
+ SQData 40134 untuk z/OS
+ SQData 4.0.43 untuk Amazon Linux Amazon Machine Image (AMI) di Amazon Elastic Compute Cloud (Amazon) EC2

## Arsitektur
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-architecture"></a>

**Tumpukan teknologi sumber**
+ Bahasa Kontrol Pekerjaan (JCL)
+ z/OS Unix shell dan Fasilitas Produktivitas Sistem Interaktif (ISPF)
+ Utilitas VSAM (IDCAMS)

**Tumpukan teknologi target**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Arsitektur target**

*Memigrasi file VSAM ke Amazon RDS*

Diagram berikut menunjukkan cara memigrasikan file VSAM ke database relasional, seperti Amazon RDS, secara real time atau mendekati waktu nyata dengan menggunakan CDC agent/publisher di lingkungan sumber (mainframe lokal) dan [Apply Engine di](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) lingkungan target (AWS Cloud).

![\[Diagram showing VSAM file migration from on-premises mainframe to AWS Cloud using CDC and Apply Engine.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)


Diagram menunjukkan alur kerja batch berikut:

1. Connect menangkap perubahan ke file dengan membandingkan file VSAM dari file cadangan untuk mengidentifikasi perubahan dan kemudian mengirimkan perubahan ke logstream.

1. Penerbit mengkonsumsi data dari logstream sistem.

1. Publisher mengkomunikasikan perubahan data yang ditangkap ke mesin target melalui TCP/IP. Controller Daemon mengotentikasi komunikasi antara sumber dan lingkungan target.

1. Apply Engine di lingkungan target menerima perubahan dari agen Publisher dan menerapkannya ke database relasional atau non-relasional.

Diagram menunjukkan alur kerja online berikut:

1. Connect menangkap perubahan dalam file online dengan menggunakan replika log dan kemudian mengalirkan perubahan yang ditangkap ke logstream.

1. Penerbit mengkonsumsi data dari logstream sistem.

1. Publisher mengkomunikasikan perubahan data yang ditangkap ke mesin target melalui TCP/IP. Controller Daemon mengotentikasi komunikasi antara sumber dan lingkungan target.

1. Apply Engine di lingkungan target menerima perubahan dari agen Publisher dan kemudian menerapkannya ke database relasional atau non-relasional.

*Migrasi file VSAM ke Amazon MSK*

Diagram berikut menunjukkan cara mengalirkan struktur data VSAM dari mainframe ke Amazon MSK dalam mode kinerja tinggi dan secara otomatis menghasilkan konversi skema JSON atau AVRO yang terintegrasi dengan Amazon MSK.

![\[Diagram showing data flow from on-premises mainframe to AWS Cloud services via Amazon VPC.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)


Diagram menunjukkan alur kerja batch berikut:

1. Connect menangkap perubahan ke file dengan menggunakan CICS VR atau dengan membandingkan file VSAM dari file cadangan untuk mengidentifikasi perubahan. Perubahan yang diambil dikirim ke logstream.

1. Penerbit mengkonsumsi data dari logstream sistem.

1. Publisher mengkomunikasikan perubahan data yang ditangkap ke mesin target melalui TCP/IP. Controller Daemon mengotentikasi komunikasi antara sumber dan lingkungan target.

1. Mesin Replicator yang beroperasi dalam mode pemrosesan paralel membagi data ke unit cache kerja.

1. Thread pekerja menangkap data dari cache.

1. Data dipublikasikan ke topik MSK Amazon dari utas pekerja.

1. [Pengguna menerapkan perubahan dari Amazon MSK ke target seperti Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) OpenSearch , atau Amazon Service dengan menggunakan konektor.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

Diagram menunjukkan alur kerja online berikut:

1. Perubahan dalam file online ditangkap dengan menggunakan replika log. Perubahan yang ditangkap dialirkan ke logstream.

1. Penerbit mengkonsumsi data dari logstream sistem.

1. Publisher mengkomunikasikan perubahan data yang ditangkap ke mesin target melalui TCP/IP. Controller Daemon mengotentikasi komunikasi antara sumber dan lingkungan target.

1. Mesin Replicator yang beroperasi dalam mode pemrosesan paralel membagi data ke unit cache kerja.

1. Thread pekerja menangkap data dari cache.

1. Data dipublikasikan ke topik MSK Amazon dari utas pekerja.

1. [Pengguna menerapkan perubahan dari Amazon MSK ke target seperti DynamoDB, Amazon S3, atau Layanan dengan menggunakan konektor OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Alat
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [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 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.

## Epik
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-epics"></a>

### Siapkan lingkungan sumber (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang/Admin Mainframe IBM | 
| Siapkan direktori ZFs. | Untuk menyiapkan direktori ZFs, ikuti instruksi dari [direktori variabel ZFs](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS/zFS-variable-directories) di dokumentasi Tepat.Konfigurasi Daemon dan Capture/Publisher agen pengontrol disimpan dalam sistem file z/OS UNIX Systems Services (disebut sebagai ZFs). Agen Controller Daemon, Capture, Storage, dan Publisher memerlukan struktur direktori ZFs yang telah ditentukan untuk menyimpan sejumlah kecil file. | Pengembang/Admin Mainframe IBM | 
| Konfigurasikan TCP/IP port. | Untuk mengkonfigurasi TCP/IP port, ikuti instruksi dari [port TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX/Prerequisites-for-UNIX/Security-authorization-requirements-for-UNIX/TCP/IP-ports) di dokumentasi Tepat.Daemon Controller membutuhkan TCP/IP port pada sistem sumber. Port direferensikan oleh mesin pada sistem target (di mana data perubahan yang ditangkap diproses). | Pengembang/Admin Mainframe IBM | 
| Buat z/OS logstream. | Untuk membuat [logstream z/OS](https://www.ibm.com/docs/en/was/8.5.5?topic=SSEQTP_8.5.5/com.ibm.websphere.installation.zseries.doc/ae/cins_logstrm.html), ikuti instruksi dari [Buat LogStreams z/OS sistem di dokumentasi](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) Tepatnya.Connect menggunakan logstream untuk menangkap dan mengalirkan data antara lingkungan sumber dan lingkungan target selama migrasi.Untuk contoh JCL yang membuat z/OS LogStream, lihat [Membuat z/OS sistem LogStreams](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) dalam dokumentasi Tepatnya. | Pengembang Mainframe IBM | 
| Identifikasi dan otorisasi IDs untuk pengguna ZF dan mulai tugas. | Gunakan RACF untuk memberikan akses ke sistem file OMVS ZFS. Untuk contoh JCL, lihat [Mengidentifikasi dan mengotorisasi pengguna ZFs dan memulai tugas IDs dalam dokumentasi Tepatnya](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-log-reader-capture/Prepare-environment/Identify-and-authorize-zFS-user-and-started-task-IDs?tocId=MrBXpFu~N0iAy~8VTrH0tQ). | Pengembang/Admin Mainframe IBM | 
| Hasilkan kunci z/OS publik/pribadi dan file kunci resmi. | Jalankan JCL untuk menghasilkan key pair. Sebagai contoh, lihat *Contoh pasangan kunci* di bagian *Informasi tambahan* dari pola ini.Untuk petunjuk, lihat [Menghasilkan kunci z/OS publik dan pribadi serta file kunci resmi](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Db2-z/OS/Prepare-the-environment/Generate-z/OS-public-and-private-keys-and-authorized-key-file?tocId=fceE77dWT8smZsSaE~FeMQ) dalam dokumentasi Tepatnya. | Pengembang/Admin Mainframe IBM | 
| Aktifkan Replikasi Log CICS VSAM dan lampirkan ke logstream. | Jalankan skrip JCL berikut:<pre> //STEP1 EXEC PGM=IDCAMS<br /> //SYSPRINT DD SYSOUT=*<br /> //SYSIN DD *<br />   ALTER SQDATA.CICS.FILEA -<br />   LOGSTREAMID(SQDATA.VSAMCDC.LOG1) -<br />   LOGREPLICATE</pre> | Pengembang/Admin Mainframe IBM | 
| Aktifkan Log Pemulihan File VSAM melalui FCT. | Ubah File Control Table (FCT) untuk mencerminkan perubahan parameter berikut:<pre> Configure FCT Parms<br />   CEDA ALT FILE(name) GROUP(groupname)<br />   DSNAME(data set name)<br />   RECOVERY(NONE|BACKOUTONLY|ALL)<br />   FWDRECOVLOG(NO|1–99)<br />   BACKUPTYPE(STATIC|DYNAMIC)<br />   RECOVERY PARAMETERS<br />   RECOVery : None | Backoutonly | All<br />   Fwdrecovlog : No | 1-99<br />   BAckuptype : Static | Dynamic</pre> | Pengembang/Admin Mainframe IBM | 
| Siapkan CDCz Log untuk agen Penerbit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang/Admin Mainframe IBM | 
| Aktifkan Daemon Pengontrol. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang/Admin Mainframe IBM | 
| Aktifkan penerbit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang/Admin Mainframe IBM | 
| Aktifkan logstream. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang/Admin Mainframe IBM | 

### Siapkan lingkungan target (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Tepat pada sebuah EC2 instance. | Untuk menginstal Connect from Tepat di Amazon Linux AMI untuk Amazon EC2, ikuti petunjuk dari [Install Connect CDC (SQData) pada UNIX dalam dokumentasi](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) Tepat. | AWS Umum | 
| Buka TCP/IP port. | Untuk memodifikasi grup keamanan untuk menyertakan port Daemon Pengontrol untuk akses masuk dan keluar, ikuti instruksi dari [TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Change-data-capture/Transient-storage-and-publishing/TCP/IP) dalam dokumentasi Tepatnya. | AWS Umum | 
| Buat direktori file. | Untuk membuat direktori file, ikuti petunjuk dari [Siapkan lingkungan penerapan target](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-targets/Kafka/Prepare-target-apply-environment) dalam dokumentasi Tepat. | AWS Umum | 
| Buat file konfigurasi Apply Engine. | Buat file konfigurasi Apply Engine di direktori kerja Apply Engine. Contoh file konfigurasi berikut menunjukkan Apache Kafka sebagai target:<pre>builtin.features=SASL_SCRAM<br />  security.protocol=SASL_SSL<br />  sasl.mechanism=SCRAM-SHA-512<br />  sasl.username=<br />  sasl.password=<br />  metadata.broker.list=</pre>Untuk informasi selengkapnya, lihat [Keamanan](https://kafka.apache.org/documentation/#security) dalam dokumentasi Apache Kafka. | AWS Umum | 
| Buat skrip untuk pemrosesan Apply Engine. | Buat skrip untuk Apply Engine untuk memproses data sumber dan mereplikasi data sumber ke target. Untuk informasi selengkapnya, lihat [Membuat skrip mesin terapkan](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Create-an-apply-engine-script) di dokumentasi Tepatnya. | AWS Umum | 
| Jalankan skrip. | Gunakan `SQDENG` perintah `SQDPARSE` dan untuk menjalankan skrip. Untuk informasi selengkapnya, lihat [Mengurai skrip untuk ZoS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Parse-a-script/Parse-a-script-for-zOS) di dokumentasi Tepatnya. | AWS Umum | 

### Validasi lingkungan
<a name="validate-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi daftar file VSAM dan tabel target untuk pemrosesan CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS Umum, Mainframe | 
| Verifikasi bahwa SQData produk Connect CDC ditautkan. | Jalankan pekerjaan pengujian dan verifikasi bahwa kode pengembalian dari pekerjaan ini adalah 0 (Berhasil).Connect CDC SQData Apply Engine pesan status harus menampilkan pesan koneksi aktif. | AWS Umum, Mainframe | 

### Jalankan dan validasi kasus uji (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan pekerjaan batch di mainframe. | Jalankan pekerjaan aplikasi batch menggunakan JCL yang dimodifikasi. Sertakan langkah-langkah dalam JCL yang dimodifikasi yang melakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS Umum, Mainframe | 
| Periksa logstream. | Periksa logstream untuk mengonfirmasi bahwa Anda dapat melihat data perubahan untuk pekerjaan batch mainframe yang telah selesai. | AWS Umum, Mainframe | 
| Validasi jumlah untuk perubahan delta sumber dan tabel target. | Untuk mengonfirmasi bahwa catatan dihitung, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS Umum, Mainframe | 

### Jalankan dan validasi kasus uji (Online)
<a name="run-and-validate-test-cases-online"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan transaksi online di wilayah CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Pengembang Mainframe IBM | 
| Periksa logstream. | Konfirmasikan bahwa logstream diisi dengan perubahan tingkat catatan tertentu. | Pengembang AWS Mainframe | 
| Validasi hitungan dalam database target. | Pantau Apply Engine untuk mencatat jumlah level. | Tepatnya, Linux | 
| Validasi jumlah catatan dan catatan data dalam database target. | Kueri database target untuk memvalidasi jumlah catatan dan catatan data. | AWS Umum | 

## Sumber daya terkait
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS (Dokumentasi tepatnya](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/VSAM-z/OS))
+ [Terapkan mesin](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (Tepatnya dokumentasi)
+ [Mesin replikator](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (Dokumentasi tepatnya)
+ [Aliran log](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (dokumentasi IBM)

## Informasi tambahan
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Contoh file konfigurasi**

Ini adalah contoh file konfigurasi untuk logstream di mana lingkungan sumber adalah mainframe dan lingkungan target adalah Amazon MSK:

```
 
  -- JOBNAME -- PASS THE SUBSCRIBER NAME
  -- REPORT  progress report will be produced after "n" (number) of Source records processed.
  
  JOBNAME VSMTOKFK;
  --REPORT EVERY 100;
  -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update
  -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252
  OPTIONS
  CDCOP('I', 'U', 'D'),
  PSEUDO NULL = NO,
  USE AVRO COMPATIBLE NAMES,
  APPLICATION ENCODING SCHEME = 1208;
  
  --       SOURCE DESCRIPTIONS
  
  BEGIN GROUP VSAM_SRC;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       TARGET DESCRIPTIONS
  
  BEGIN GROUP VSAM_TGT;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       SOURCE DATASTORE (IP & Publisher name)
  
  DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK
  OF VSAMCDC
  AS CDCIN
  DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL;
  
  --       TARGET DATASTORE(s) - Kafka and topic name
  
  DATASTORE 'kafka:///MSKTutorialTopic/key'
  OF JSON
  AS CDCOUT
  DESCRIBED BY GROUP VSAM_TGT FOR INSERT;
  
  --       MAIN SECTION
  
  PROCESS INTO
  CDCOUT
  SELECT
  {
  SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key')
  REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE))
  REPLICATE(CDCOUT, account_file)
  }
  FROM CDCIN;
```

**Contoh pasangan kunci**

Ini adalah contoh bagaimana menjalankan JCL untuk menghasilkan key pair:

```
//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD  keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY
```

# Modernisasi aplikasi CardDemo mainframe dengan menggunakan AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

*Santosh Kumar Singh dan Cheryl du Preez, Amazon Web Services*

## Ringkasan
<a name="modernize-carddemo-mainframe-app-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)dirancang untuk mempercepat modernisasi aplikasi mainframe. Ini menggunakan AI generatif untuk merampingkan proses modernisasi mainframe. Ini mengotomatiskan tugas-tugas kompleks, seperti: analisis kode warisan, dokumentasi mainframe, ekstraksi aturan bisnis, dekomposisi aplikasi monolitik ke dalam domain bisnis, dan refactoring kode. Ini mempercepat proyek modernisasi dengan mengotomatiskan tugas-tugas kompleks, seperti analisis aplikasi dan perencanaan urutan migrasi. Saat menguraikan aplikasi monolitik, urutkan transformasi aplikasi mainframe AWS Transform secara cerdas, yang membantu Anda mengubah fungsi bisnis secara paralel. AWS Transform dapat mempercepat pengambilan keputusan dan meningkatkan kelincahan operasional dan efisiensi migrasi.

Pola ini menawarkan step-by-step instruksi untuk membantu Anda menguji kemampuan modernisasi mainframe AWS Transform dengan menggunakan [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), yang merupakan contoh aplikasi mainframe open source.

## Prasyarat dan batasan
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ AWS IAM Identity Center, [diaktifkan](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Izin](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) yang memungkinkan administrator mengaktifkan AWS Transform
+ [Izin](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) yang memungkinkan administrator menerima permintaan koneksi Amazon Simple Storage Service (Amazon S3) untuk aplikasi web AWS Transform 

**Batasan**
+ AWS Transform hanya tersedia di beberapa Wilayah AWS. Untuk daftar lengkap Wilayah yang didukung, lihat Wilayah yang [Didukung untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform mendukung analisis kode, pembuatan dokumen, ekstraksi aturan bisnis, dekomposisi, dan refactoring dari Common Business-Oriented Language (COBOL) ke Jawa. Untuk informasi selengkapnya, lihat [Kemampuan dan fitur utama](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) serta [Jenis file yang didukung untuk transformasi aplikasi mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files).
+ Ada kuota layanan untuk kapabilitas transformasi mainframe di. AWS Transform Untuk informasi lebih lanjut, lihat [Kuota untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Untuk berkolaborasi di ruang kerja bersama, semua pengguna harus menjadi pengguna terdaftar dari contoh yang sama AWS IAM Identity Center yang terkait dengan instance AWS Transform aplikasi web Anda.
+ Bucket Amazon S3 dan AWS Transform harus berada di tempat yang sama Akun AWS dan Wilayah.

## Arsitektur
<a name="modernize-carddemo-mainframe-app-architecture"></a>

Diagram berikut menunjukkan arsitektur yang Anda atur dalam pola ini.

![\[Menggunakan AWS Transform untuk memodernisasi aplikasi mainframe yang disimpan dalam bucket Amazon S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


Diagram menunjukkan alur kerja berikut:

1. AWS Transform menggunakan konektor untuk mengakses aplikasi CardDemo mainframe, yang disimpan dalam bucket Amazon S3.

1. AWS Transform digunakan AWS IAM Identity Center untuk mengelola akses pengguna dan otentikasi. Sistem ini menerapkan beberapa lapisan kontrol keamanan untuk otentikasi, otorisasi, enkripsi, dan manajemen akses untuk membantu melindungi kode dan artefak selama pemrosesan. Pengguna berinteraksi dengan AWS Transform agen melalui antarmuka obrolan. Anda dapat memberikan instruksi kepada agen AI untuk tugas-tugas tertentu dalam bahasa Inggris. Untuk informasi lebih lanjut, lihat [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) dalam AWS Transform dokumentasi.

1. Agen AI menafsirkan instruksi pengguna, membuat rencana kerja, membagi pekerjaan menjadi tugas yang dapat dieksekusi, dan bertindak secara mandiri. Pengguna dapat meninjau dan menyetujui transformasi. Tugas transformasi meliputi:
   + **Analisis kode** — AWS Transform menganalisis kode di setiap file untuk detail seperti nama file, jenis file, baris kode, dan jalurnya. Agen menganalisis kode sumber, menjalankan klasifikasi, membuat pemetaan ketergantungan, dan mengidentifikasi artefak yang hilang. Ini juga mengidentifikasi komponen duplikat.
   + **Pembuatan dokumen** — AWS Transform menghasilkan dokumentasi untuk aplikasi mainframe. Dengan menganalisis kode, secara otomatis dapat membuat dokumentasi terperinci dari program aplikasi, termasuk deskripsi logika bisnis, alur, integrasi, dan dependensi yang ada dalam sistem lama Anda.
   + **Ekstraksi logika bisnis** — AWS Transform menganalisis program COBOL untuk mendokumentasikan logika bisnis inti mereka, untuk membantu Anda memahami logika bisnis mendasar.
   + **Dekomposisi kode** — AWS Transform menguraikan kode menjadi domain yang memperhitungkan dependensi antara program dan komponen. Mengelompokkan file dan program terkait dalam domain yang sama meningkatkan organisasi dan membantu melestarikan struktur logis aplikasi saat memecahnya menjadi komponen yang lebih kecil.
   + **Perencanaan gelombang migrasi** — Berdasarkan domain yang Anda buat selama fase dekomposisi, buat rencana gelombang AWS Transform migrasi dengan urutan modernisasi yang direkomendasikan.
   + **Code refactoring — AWS Transform memfaktorkan** ulang kode di semua atau file domain yang dipilih ke dalam kode Java. Tujuan dari langkah ini adalah untuk melestarikan logika bisnis kritis aplikasi sambil memfaktorkannya ke aplikasi Java yang dimodernisasi dan dioptimalkan di cloud.

1. AWS Transform menyimpan kode refactored, dokumen yang dihasilkan, artefak terkait, dan pustaka runtime di bucket Amazon S3 Anda. Anda dapat melakukan tindakan berikut:
   + Akses folder runtime di bucket Amazon S3 Anda.
   + Buat dan terapkan aplikasi dengan mengikuti [Build dan deploy aplikasi modern pasca-refactoring Anda](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) dalam dokumentasi. AWS Transform 
   + Melalui antarmuka obrolan, minta dan unduh sampel AWS CloudFormation, AWS Cloud Development Kit (AWS CDK), atau template Hashicorp Terraform. Template ini dapat membantu Anda menyebarkan AWS sumber daya yang diperlukan untuk mendukung aplikasi refactored.
   + Gunakan [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) untuk meningkatkan kualitas kode refactored dengan menggunakan model bahasa besar (). LLMs Mesin refactoring mempertahankan kesetaraan fungsional COBOL sambil mengubahnya menjadi kode Java. Reforge adalah langkah opsional yang tersedia setelah transformasi. Langkah ini digunakan LLMs untuk merestrukturisasi kode agar sangat mirip dengan Java asli, yang dapat meningkatkan keterbacaan dan pemeliharaan. Reforge juga menambahkan komentar yang dapat dibaca manusia untuk membantu Anda memahami kode, dan menerapkan pola pengkodean modern dan praktik terbaik.

## Alat
<a name="modernize-carddemo-mainframe-app-tools"></a>

**Layanan AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)menggunakan AI agen untuk membantu Anda mempercepat modernisasi beban kerja lama, seperti .NET, mainframe, dan beban kerja. VMware 
+ [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 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.

**Repositori kode**

Anda dapat menggunakan aplikasi AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source sebagai contoh aplikasi untuk memulai modernisasi mainframe.

## Praktik terbaik
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Mulai dari yang kecil** — Mulailah dengan kode kecil yang kurang kompleks (15.000-20.000 baris kode) untuk mendapatkan pemahaman tentang bagaimana AWS Transform menganalisis dan mengubah aplikasi mainframe.
+ **Kombinasikan dengan keahlian manusia** — Gunakan AWS Transform sebagai akselerator sambil menerapkan keahlian manusia untuk hasil yang optimal.
+ **Tinjau dan uji secara menyeluruh** — Selalu tinjau kode yang diubah dengan hati-hati dan jalankan tes komprehensif untuk memvalidasi kesetaraan fungsional setelah transformasi.
+ **Berikan umpan balik** — Untuk memberikan umpan balik dan saran untuk perbaikan, gunakan tombol **Kirim umpan balik** di Konsol Manajemen AWS atau buat kasus dengan [AWS Dukungan](https://support.console.aws.amazon.com/). Untuk informasi selengkapnya, lihat [Membuat kasus dukungan](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Masukan Anda sangat berharga untuk peningkatan layanan dan pengembangan masa depan.

## Epik
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Siapkan aplikasi mainframe
<a name="prepare-the-mainframe-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket. | Buat bucket Amazon S3 di tempat yang sama Akun AWS dan Wilayah yang AWS Transform diaktifkan. Anda menggunakan bucket ini untuk menyimpan kode aplikasi mainframe, dan AWS Transform menggunakan bucket ini untuk menyimpan dokumen yang dihasilkan, kode refactored, dan file lain yang terkait dengan transformasi. Untuk petunjuknya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3. | AWS Umum | 
| Siapkan contoh aplikasi mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Pengembang aplikasi, DevOps insinyur | 

### Konfigurasikan Pusat Identitas IAM dan AWS Transform
<a name="configure-sso-and-trn"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tambahkan pengguna ke Pusat Identitas IAM. | Tambahkan calon pengguna Anda ke IAM Identity Center. Ikuti petunjuk di [Menambahkan pengguna di Pusat Identitas IAM](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) dalam AWS Transform dokumentasi. | Administrator AWS | 
| Aktifkan AWS Transform dan tambahkan pengguna. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Administrator AWS | 
| Konfigurasikan akses pengguna ke aplikasi AWS Transform web. | Setiap pengguna harus menerima undangan untuk mengakses aplikasi AWS Transform web. Ikuti instruksi dalam [Menerima undangan](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) dalam AWS Transform dokumentasi. | Pengembang aplikasi, Pemilik aplikasi | 
| Masuk ke aplikasi AWS Transform web. | Ikuti instruksi di [Masuk ke AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Pengembang aplikasi, Pemilik aplikasi | 
| Siapkan ruang kerja. | Siapkan ruang kerja tempat pengguna dapat berkolaborasi dalam AWS Transform aplikasi web. Ikuti petunjuk di [Mulai proyek Anda](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) dalam AWS Transform dokumentasi. | Administrator AWS | 

### Ubah aplikasi mainframe
<a name="transform-the-mainframe-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pekerjaan transformasi. | Buat pekerjaan transformasi untuk memodernisasi aplikasi CardDemo mainframe. Untuk petunjuk, lihat [Membuat dan memulai pekerjaan](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) di AWS Transform dokumentasi. Ketika Anda diminta untuk menetapkan tujuan dalam antarmuka AWS Transform obrolan, pilih **Lakukan modernisasi mainframe (IBM z/OS ke AWS)** dan kemudian pilih **Analyze code, Generate technical documentation, Business logic, Decompose code, Plan Migration sequence dan Transform code** to Java. | Pengembang aplikasi, Pemilik aplikasi | 
| Siapkan konektornya. | Buat konektor ke bucket Amazon S3 yang berisi aplikasi CardDemo mainframe. Konektor ini memungkinkan AWS Transform untuk mengakses sumber daya dalam bucket dan melakukan fungsi transformasi berturut-turut. Untuk petunjuk, lihat [Mengatur konektor](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) dalam AWS Transform dokumentasi. | Administrator AWS | 
| Lakukan analisis kode. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi selengkapnya, lihat [Analisis kode](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) dalam AWS Transform dokumentasi. | Pengembang aplikasi, Pemilik aplikasi | 
| Hasilkan dokumentasi teknis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi selengkapnya, lihat [Menghasilkan dokumentasi teknis](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) dalam AWS Transform dokumentasi. | Pengembang aplikasi, Pemilik aplikasi | 
| Ekstrak logika bisnis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi selengkapnya, lihat [Mengekstrak logika bisnis](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) dalam AWS Transform dokumentasi. | Pengembang aplikasi, Pemilik aplikasi | 
| Menguraikan kode. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi lebih lanjut tentang dekomposisi dan benih, lihat [Dekomposisi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition) dalam dokumentasi. AWS Transform  | Pengembang aplikasi, Pemilik aplikasi | 
| Rencanakan gelombang migrasi. | Rencanakan gelombang migrasi untuk CardDemo aplikasi. Ikuti petunjuk dalam [perencanaan gelombang Migrasi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) dalam AWS Transform dokumentasi untuk meninjau dan mengedit rencana gelombang. | Pengembang aplikasi, Pemilik aplikasi | 
| Memfaktorkan ulang kode. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Pengembang aplikasi, Pemilik aplikasi | 
| (Opsional) Gunakan Reforge untuk meningkatkan kode Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi selengkapnya, lihat [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) di dokumentasi. AWS Transform  | Pengembang aplikasi, Pemilik aplikasi | 
| Merampingkan penyebaran. | AWS Transform dapat menyediakan infrastruktur sebagai templat kode (IAc) untuk CloudFormation, AWS CDK, atau Terraform. Template ini membantu Anda menerapkan komponen inti, termasuk komputasi, database, penyimpanan, dan sumber daya keamanan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Untuk informasi selengkapnya, lihat [Kemampuan penerapan](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) dalam AWS Transform dokumentasi. | Pengembang aplikasi, Pemilik aplikasi | 

## Pemecahan masalah
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Anda tidak dapat melihat kode sumber atau dokumen yang dihasilkan dalam aplikasi AWS Transform web. | Tambahkan kebijakan ke izin CORS untuk bucket Amazon S3 untuk AWS Transform mengizinkan sebagai asal. Untuk informasi selengkapnya, lihat [izin CORS bucket S3 dalam dokumentasi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3). AWS Transform  | 

## Sumber daya terkait
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS dokumentasi**
+ [Transformasi aplikasi mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform dokumentasi)

** AWS Sumber daya lainnya**
+ [Percepat Perjalanan Modernisasi Mainframe Anda menggunakan Agen AI dengan AWS Transform(posting blog](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/))AWS 
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Video dan tutorial**
+ [Pengantar Pengembang Amazon Q: Transform](https://explore.skillbuilder.aws/learn/courses/21893/aws-flash-introduction-to-amazon-q-developer-transform) (Pembuat AWS Keterampilan)
+ [AWS re:invent 2024 - Modernisasi aplikasi mainframe lebih cepat](https://www.youtube.com/watch?v=pSi0XtYfY4o) menggunakan Amazon Q Developer () YouTube
+ [AWS re:invent 2024 - Mengotomatiskan migrasi dan modernisasi](https://www.youtube.com/watch?v=9FjxnEoH5wg) untuk mempercepat transformasi () YouTube
+ [AWS re:invent 2024 - Toyota mendorong inovasi & meningkatkan efisiensi operasional](https://www.youtube.com/watch?v=_NXc1MJenw4) dengan gen AI () YouTube

**catatan**  
AWS Transform Sebelumnya dikenal sebagai *Amazon Q Developer transform untuk mainframe*.

# Memodernisasi dan menyebarkan aplikasi mainframe menggunakan dan Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Ramani Sivasubrama, dan Santosh Kumar Singh, Amazon Web Services*

## Ringkasan
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)dapat mempercepat modernisasi skala besar .NET, mainframe, dan beban kerja. VMware Ini menyebarkan agen AI khusus yang mengotomatiskan tugas-tugas kompleks seperti penilaian, analisis kode, refactoring, dekomposisi, pemetaan ketergantungan, validasi, dan perencanaan transformasi. [Pola ini menunjukkan cara menggunakan AWS Transform untuk memodernisasi aplikasi mainframe dan kemudian menerapkannya ke AWS infrastruktur dengan menggunakan Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) step-by-stepInstruksi ini membantu Anda mengubah [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), yang merupakan contoh aplikasi mainframe open source, dari COBOL ke aplikasi Java modern.

## Prasyarat dan batasan
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Izin administratif untuk membuat AWS sumber daya dan menyebarkan aplikasi
+ [Terraform versi 1.5.7 atau lebih tinggi, dikonfigurasi](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Penyedia untuk Terraform, dikonfigurasi](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center, [diaktifkan](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [diaktifkan](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Pengguna, yang [terhubung ke AWS Transform ruang](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) kerja dengan peran kontributor yang dapat menjalankan pekerjaan transformasi

**Batasan**
+ AWS Transform hanya tersedia di beberapa Wilayah AWS. Untuk daftar lengkap Wilayah yang didukung, lihat Wilayah yang [Didukung untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Ada kuota layanan untuk kapabilitas transformasi mainframe di. AWS Transform Untuk informasi lebih lanjut, lihat [Kuota untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Untuk berkolaborasi di ruang kerja bersama, semua pengguna harus menjadi pengguna terdaftar dari contoh yang sama AWS IAM Identity Center yang terkait dengan instance AWS Transform aplikasi web Anda.
+ Bucket Amazon Simple Storage Service (Amazon S3) AWS Transform dan harus berada di tempat yang sama dan Wilayah. Akun AWS 

## Arsitektur
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

Diagram berikut menunjukkan end-to-end modernisasi aplikasi warisan dan penyebaran ke. AWS Cloud Kredensi aplikasi dan database disimpan AWS Secrets Manager, dan Amazon CloudWatch menyediakan kemampuan pemantauan dan pencatatan.

![\[AWS Transform memodernisasi aplikasi mainframe dan penerapan melalui Terraform.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Diagram menunjukkan alur kerja berikut:

1. Melalui AWS IAM Identity Center, pengguna mengautentikasi dan mengakses AWS Transform di. Akun AWS

1. Pengguna mengunggah kode mainframe COBOL ke bucket Amazon S3 dan memulai transformasi di. AWS Transform

1. AWS Transform memodernisasi kode COBOL menjadi kode Java cloud-native dan menyimpan kode modern di bucket Amazon S3.

1. Terraform membuat AWS infrastruktur untuk menerapkan aplikasi modern, termasuk Application Load Balancer, instans Amazon Elastic Compute Cloud (Amazon EC2), dan database Amazon Relational Database Service (Amazon RDS). Terraform menerapkan kode modern ke instans Amazon EC2.

1. File VSAM diunggah ke Amazon EC2 dan dimigrasikan dari Amazon EC2 ke database Amazon RDS.

## Alat
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 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.
+ [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 aplikasi Anda Akun AWS dan cloud.
+ [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 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.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)menggunakan AI agen untuk membantu Anda mempercepat modernisasi beban kerja lama, seperti .NET, mainframe, dan beban kerja. VMware 

**Alat-alat lainnya**
+ [Apache Maven](https://maven.apache.org/) adalah manajemen proyek perangkat lunak open source dan membangun alat otomatisasi untuk proyek Java.
+ [Apache Tomcat](https://tomcat.apache.org/) adalah wadah Servlet open source dan server web untuk kode Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud.
+ [Spring Boot](https://spring.io/projects/spring-boot) adalah kerangka kerja open source yang dibangun di atas Spring Framework di Jawa.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Pola ini menggunakan aplikasi AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source sebagai contoh aplikasi.

## Praktik terbaik
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Tetapkan kepemilikan penuh kode dan sumber daya yang ditargetkan untuk migrasi.
+ Kembangkan dan uji bukti konsep sebelum melakukan penskalaan ke migrasi penuh.
+ Menjamin komitmen dari semua pemangku kepentingan.
+ Membangun saluran komunikasi yang jelas.
+ Menentukan dan mendokumentasikan persyaratan produk minimum yang layak (MVP).
+ Tetapkan kriteria keberhasilan yang jelas.

## Epik
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Siapkan dan unggah kode aplikasi mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket. | Buat bucket Amazon S3 di tempat yang sama Akun AWS dan Wilayah yang AWS Transform diaktifkan. Anda menggunakan bucket ini untuk menyimpan kode aplikasi mainframe, data, dan skrip tambahan yang diperlukan untuk membangun dan menjalankan aplikasi. AWS Transform menggunakan bucket ini untuk menyimpan kode refactored dan file lain yang terkait dengan transformasi. Untuk petunjuknya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3. | AWS umum, administrator AWS | 
| Setel izin CORS untuk bucket. | Saat menyiapkan bucket untuk AWS Transform akses, Anda perlu mengonfigurasi berbagi sumber daya lintas asal (CORS) untuk bucket. Jika ini tidak diatur dengan benar, Anda mungkin tidak dapat menggunakan fungsi tampilan sebaris atau perbandingan file. AWS Transform Untuk petunjuk tentang cara mengonfigurasi CORS untuk bucket, lihat [Menggunakan berbagi sumber daya lintas asal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) di bucket Amazon S3. Untuk kebijakan ini, lihat [izin CORS bucket S3 di dokumentasi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3). AWS Transform  | AWS umum, administrator AWS | 
| Siapkan contoh kode aplikasi mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS Umum, Pengembang aplikasi | 

### Ubah aplikasi mainframe
<a name="transform-the-mainframe-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS Transform pekerjaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, Pemilik aplikasi | 
| Siapkan konektor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, Pemilik aplikasi | 
| Ubah kode. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, Pemilik aplikasi | 

### Menyebarkan infrastruktur melalui Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui template. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Untuk lingkungan produksi atau seperti produksi, konfigurasikan komponen keamanan tambahan. Misalnya, aktifkan [AWS WAF perlindungan untuk Application Load Balancer Anda](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS umum, administrator AWS | 
| Menyebarkan infrastruktur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Instal dan konfigurasikan Apache Tomcat di instans Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal perangkat lunak yang diperlukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 
| Verifikasi instalasi perangkat lunak. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 

### Kompilasi dan paket kode aplikasi modern
<a name="compile-and-package-the-modernized-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan ekstrak kode yang dihasilkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 
| Bangun aplikasi yang dimodernisasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 

### Migrasi database
<a name="migrate-the-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database dan skema JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 
| Validasi pembuatan database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 
| Migrasikan data ke database JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 

### Instal aplikasi modern
<a name="install-the-modernized-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal aplikasi modern pada instans Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, arsitek Cloud | 
| Mulai ulang server Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, arsitek Cloud | 
| Migrasikan kumpulan data VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, insinyur Migrasi | 
| Perbarui parameter dalam skrip Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji aplikasi yang dimodernisasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, Insinyur uji | 
| Verifikasi skrip batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Pengembang aplikasi, Insinyur uji | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersiaplah untuk menghapus infrastruktur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS Umum | 
| Hapus infrastruktur. | Langkah-langkah ini akan menghapus sumber daya Anda secara permanen. Pastikan Anda telah mencadangkan data penting apa pun sebelum melanjutkan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS Umum | 

## Pemecahan masalah
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Otentikasi Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Kesalahan terkait Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Nama URL tidak dimuat | Pastikan bahwa grup keamanan Application Load Balancer memiliki alamat IP Anda dalam aturan masuk sebagai sumber. | 
| Masalah otentikasi di log Tomcat | Konfirmasikan bahwa kata sandi rahasia database masuk AWS Secrets Manager dan kata sandi di **server.xml** cocok. | 

## Sumber daya terkait
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Panduan Preskriptif**
+ [Modernisasi aplikasi CardDemo mainframe dengan menggunakan AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS dokumentasi layanan**
+ [AWS Konsol Administrasi Blu Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Persyaratan penyiapan infrastruktur untuk AWS Blu Age Runtime (tidak dikelola)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Orientasi AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernisasi aplikasi mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Siapkan konfigurasi untuk AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS posting blog**
+ [Percepat Perjalanan Modernisasi Mainframe Anda menggunakan Agen AI AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernisasi manajemen output mainframe AWS dengan menggunakan Rocket Enterprise Server dan LRS X PageCenter
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx"></a>

*Shubham Roy, Amazon Web Services*

*Abraham Rondon, Fokus Mikro*

*Guy Tucker, Levi, Ray dan Shoup Inc*

## Ringkasan
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Dengan memodernisasi manajemen output mainframe Anda, Anda dapat mencapai penghematan biaya, mengurangi utang teknis pemeliharaan sistem lama, dan meningkatkan ketahanan dan kelincahan melalui serta teknologi cloud-native Amazon Web DevOps Services (AWS). Pola ini menunjukkan kepada Anda cara memodernisasi beban kerja manajemen keluaran mainframe utama bisnis Anda di AWS Cloud. Pola ini menggunakan [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) sebagai runtime untuk aplikasi mainframe modern, dengan Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) sebagai server cetak dan LRS X sebagai server arsip. PageCenter LRS PageCenter X menyediakan solusi manajemen keluaran untuk melihat, mengindeks, mencari, mengarsipkan, dan mengamankan akses ke output bisnis.

Pola ini didasarkan pada pendekatan modernisasi mainframe [replatform](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Aplikasi mainframe dimigrasikan oleh [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) di Amazon Elastic Compute Cloud (Amazon). EC2 Beban kerja manajemen output mainframe dimigrasikan ke Amazon EC2, dan database mainframe, seperti IBM Db2 for) bekerja z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS dengan AWS Directory Service untuk Microsoft Active Directory untuk otentikasi dan otorisasi alur kerja manajemen output.

## Prasyarat dan batasan
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Beban kerja manajemen keluaran mainframe.
+ Pengetahuan dasar tentang cara membangun kembali dan mengirimkan aplikasi mainframe yang berjalan di Rocket Enterprise Server. Untuk informasi selengkapnya, lihat lembar data [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) di dokumentasi Perangkat Lunak Roket.
+ Pengetahuan dasar tentang solusi dan konsep pencetakan cloud LRS. Untuk informasi selengkapnya, lihat *Modernisasi Keluaran dalam dokumentasi* LRS.
+ Perangkat lunak dan lisensi Rocket Enterprise Server. Untuk informasi lebih lanjut, hubungi [Perangkat Lunak Roket](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISPerangkat lunak dan lisensi LRS. Untuk informasi lebih lanjut, [hubungi LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Anda harus memberikan nama host dari EC2 contoh di mana produk LRS akan diinstal.


| 
| 
| [Catatan: Untuk informasi selengkapnya tentang pertimbangan konfigurasi untuk beban kerja manajemen keluaran mainframe, lihat *Pertimbangan* di bagian Informasi tambahan dari pola ini.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) | 
| --- |

**Versi produk**
+ [Server Perusahaan Roket 10.0](https://www.rocketsoftware.com/products/enterprise-suite/enterprise-test-server)
+ [LRS VPSX/LKM](https://www.lrsoutputmanagement.com/products/modernization-products/)
+ [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) V1R3 atau yang lebih baru

## Arsitektur
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Tumpukan teknologi sumber**
+ Sistem operasi — IBM z/OS
+ Bahasa pemrograman — Bahasa berorientasi bisnis umum (COBOL), bahasa kontrol pekerjaan (JCL), dan Sistem Kontrol Informasi Pelanggan (CICS)
+ Database — IBM Db2 untuk z/OS, database Sistem Manajemen Informasi IBM (IMS), dan Metode Akses Penyimpanan Virtual (VSAM)
+ Keamanan — Fasilitas Kontrol Akses Sumber Daya (RACF), CA Top Secret untuk z/OS, dan Fasilitas Kontrol Akses 2 () ACF2
+ Solusi cetak dan arsip - Produk z/OS keluaran dan pencetakan mainframe IBM (IBM Infoprint Server untuk z/OS, LRS, dan CA Deliver) dan solusi pengarsipan (CA Deliver, ASG Mobius, atau CA Bundle)

**Arsitektur sumber**

Diagram berikut menunjukkan arsitektur keadaan saat ini yang khas untuk beban kerja manajemen output mainframe.

![\[Proses output mainframe dalam tujuh langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna melakukan transaksi bisnis pada sistem keterlibatan (SoE) yang dibangun di atas aplikasi IBM CICS yang ditulis dalam COBOL.

1. SoE memanggil layanan mainframe, yang mencatat data transaksi bisnis dalam database system-of-records (SoR) seperti IBM Db2 untuk z/OS.

1. SoR mempertahankan data bisnis dari BUMN.

1. Penjadwal pekerjaan batch memulai pekerjaan batch untuk menghasilkan output cetak.

1. Pekerjaan batch mengekstrak data dari database. Ini memformat data sesuai dengan kebutuhan bisnis, dan kemudian menghasilkan output bisnis seperti laporan penagihan, kartu identitas, atau laporan pinjaman. Akhirnya, pekerjaan batch merutekan output ke manajemen output untuk format, publikasi, dan penyimpanan output berdasarkan persyaratan bisnis.

1. Manajemen output menerima output dari pekerjaan batch. Manajemen output mengindeks, mengatur, dan menerbitkan output ke tujuan tertentu dalam sistem manajemen output, seperti solusi LRS PageCenter X (seperti yang ditunjukkan dalam pola ini) atau CA View.

1. Pengguna dapat melihat, mencari, dan mengambil output.

**Tumpukan teknologi target**
+ Sistem operasi - Windows Server berjalan di Amazon EC2
+ Hitung - Amazon EC2
+ Penyimpanan - Amazon Elastic Block Store (Amazon EBS) dan FSx Amazon untuk Windows File Server
+ Bahasa pemrograman — COBOL, JCL, dan CICS
+ Basis Data - Amazon RDS
+ Keamanan — AWS Managed Microsoft AD
+ Pencetakan dan pengarsipan — Solusi pencetakan LRS (VPSX) dan pengarsipan (PageCenterX) di AWS
+ Lingkungan runtime mainframe - Rocket Enterprise Server

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk beban kerja manajemen keluaran mainframe yang diterapkan di AWS Cloud.

![\[Arsitektur target untuk aplikasi batch dan manajemen output dalam tujuh langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


Diagram menunjukkan alur kerja berikut:

1. Penjadwal pekerjaan batch memulai pekerjaan batch untuk membuat output, seperti laporan penagihan, kartu identitas, atau laporan pinjaman.

1. Pekerjaan batch mainframe ([direplatformed ke Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) menggunakan runtime Rocket Enterprise Server untuk mengekstrak data dari database aplikasi, menerapkan logika bisnis ke data, dan memformat data. Kemudian mengirimkan data ke tujuan output dengan menggunakan [modul keluar printer Rocket Software](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) (dokumentasi OpenText Micro Focus).

1. Database aplikasi (SoR yang berjalan di Amazon RDS) menyimpan data untuk output cetak.

1. Solusi VPSX/MFI pencetakan LRS digunakan di Amazon EC2, dan data operasionalnya disimpan di Amazon EBS. LRS VPSX/MFI menggunakan agen TCP/IP-based LRS/Queue transmisi untuk mengumpulkan data output melalui Rocket Software JES Print Exit API.

   LRS VPSX/MFI melakukan preprocessing data, seperti terjemahan EBCDIC ke ASCII. Ini juga melakukan tugas yang lebih kompleks, termasuk mengubah aliran data eksklusif mainframe seperti IBM Advanced Function Presentation (AFP) dan Xerox Line Conditioned Data Stream (LCDS) menjadi aliran data tampilan dan pencetakan yang lebih umum seperti Printer Command Language (PCL) dan PDF.

   Selama jendela pemeliharaan LRS PageCenter X, VPSX/MFI LRS mempertahankan antrian output dan berfungsi sebagai cadangan untuk antrian output. LRS VPSX/MFI menghubungkan dan mengirimkan output ke LRS PageCenter X dengan menggunakan protokol. LRS/Queue LRS/Queue melakukan pertukaran kesiapan dan penyelesaian untuk pekerjaan untuk membantu memastikan bahwa transfer data terjadi.

   **Catatan:**

   Untuk informasi selengkapnya tentang data cetak yang diteruskan dari Rocket Software Print Exit ke LRS/Queue dan mekanisme batch mainframe yang VPSX/MFI didukung LRS, lihat *Mencetak pengambilan data* di bagian [Informasi tambahan](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   LRS VPSX/MFI dapat melakukan pemeriksaan kesehatan di tingkat armada printer. Untuk informasi lebih lanjut, lihat *Pemeriksaan kesehatan armada printer* di bagian [Informasi tambahan](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) dari pola ini.

1. Solusi manajemen keluaran LRS PageCenter X digunakan di Amazon EC2, dan data operasionalnya disimpan di Amazon FSx untuk Windows File Server. LRS PageCenter X menyediakan sistem manajemen laporan pusat dari semua file yang diimpor ke LRS PageCenter X bersama dengan semua pengguna dapat mengakses file. Pengguna dapat melihat konten file tertentu atau melakukan pencarian di beberapa file untuk kriteria pencocokan.

    LRS/NetX Komponen ini adalah server aplikasi web multi-threaded yang menyediakan lingkungan runtime umum untuk aplikasi LRS PageCenter X dan aplikasi LRS lainnya. Komponen LRS/Web Connect diinstal pada server web Anda dan menyediakan konektor dari server web ke server aplikasi LRS/NetX web.

1. LRS PageCenter X menyediakan penyimpanan untuk objek sistem file. Data operasional LRS PageCenter X disimpan di Amazon FSx untuk Windows File Server.

1. Otentikasi dan otorisasi manajemen keluaran dilakukan oleh AWS Managed Microsoft AD dengan LRS/DIS.

**catatan**  
Solusi target biasanya tidak memerlukan perubahan aplikasi untuk mengakomodasi bahasa pemformatan mainframe, seperti IBM AFP atau Xerox LCD.

**Arsitektur infrastruktur AWS**

Diagram berikut menunjukkan arsitektur infrastruktur AWS yang sangat tersedia dan aman untuk beban kerja manajemen output mainframe.

![\[Infrastruktur AWS multi-AZ dengan alur kerja dalam tujuh langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


Diagram menunjukkan alur kerja berikut:

1. Penjadwal batch memulai proses batch dan diterapkan di Amazon EC2 di beberapa [Availability Zone for high availability](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA).
**catatan**  
Pola ini tidak mencakup implementasi penjadwal batch. Untuk informasi selengkapnya tentang implementasi, lihat dokumentasi vendor perangkat lunak untuk penjadwal Anda.

1. Pekerjaan batch mainframe (ditulis dalam bahasa pemrograman seperti JCL atau COBOL) menggunakan logika bisnis inti untuk memproses dan menghasilkan output cetak, seperti laporan penagihan, kartu ID, dan laporan pinjaman. Pekerjaan batch diterapkan di Amazon EC2 di dua Availability Zone untuk HA. Ini menggunakan Rocket Software Print Exit API untuk merutekan output cetak ke LRS VPSX/MFI untuk preprocessing data.

1. Server VPSX/MFI cetak LRS digunakan EC2 di Amazon di dua Availability Zone untuk HA (active-standby redundant pair). Ini menggunakan [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) sebagai penyimpanan data operasional. Network Load Balancer melakukan pemeriksaan kesehatan pada instans VPSX/MFI EC2 LRS. Jika instans aktif dalam keadaan tidak sehat, penyeimbang beban merutekan lalu lintas ke instans siaga panas di Availability Zone lainnya. Permintaan cetak disimpan dalam Antrian Job LRS secara lokal di setiap instance. EC2 Jika terjadi kegagalan, instance yang gagal harus dimulai ulang sebelum layanan LRS dapat melanjutkan pemrosesan permintaan cetak.
**catatan**  
LRS juga VPSX/MFI dapat melakukan pemeriksaan kesehatan di tingkat armada printer. Untuk informasi lebih lanjut, lihat *Pemeriksaan kesehatan armada printer* di bagian [Informasi tambahan](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) dari pola ini.

1. Manajemen keluaran LRS PageCenter X diterapkan EC2 di Amazon di dua Availability Zone untuk HA (active-standby redundant pair). Ini menggunakan [Amazon FSx untuk Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) sebagai penyimpanan data operasional. Jika instans aktif dalam keadaan tidak sehat, penyeimbang beban melakukan pemeriksaan kesehatan pada instans LRS PageCenter X dan mengarahkan lalu lintas ke EC2 instans siaga di Availability Zone lainnya.

1. [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) menyediakan nama DNS untuk mengintegrasikan Server LRS dengan LRS X VPSX/MFI . PageCenter
**catatan**  
LRS PageCenter X mendukung penyeimbang beban Layer 4.

1. LRS PageCenter X menggunakan Amazon FSx untuk Windows File Server sebagai penyimpanan data operasional yang digunakan di dua Availability Zone untuk HA. LRS PageCenter X hanya memahami file yang ada di berbagi file, bukan dalam database eksternal.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) digunakan LRS/DIS untuk melakukan autentikasi dan otorisasi alur kerja manajemen keluaran. Untuk informasi selengkapnya, lihat *Mencetak otentikasi dan otorisasi keluaran* di bagian [Informasi tambahan](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Alat
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-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 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 (Amazon). EC2
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh EC2 instans Amazon, kontainer, dan alamat IP di satu atau beberapa Availability Zone. Pola ini menggunakan Network Load Balancer.
+ [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. Pola ini menggunakan Amazon FSx untuk Windows File Server.
+ [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**
+ Perangkat lunak [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) menyediakan dokumen yang dapat diskalakan dan solusi manajemen konten laporan yang membantu pengguna memperoleh nilai maksimum dari informasi melalui pengindeksan otomatis, enkripsi, dan fitur pencarian lanjutan.
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), dikembangkan bersama oleh LRS dan Rocket Software, menangkap output dari spool JES Perangkat Lunak Rocket dan dengan andal mengirimkannya ke tujuan cetak tertentu.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queueuntuk mengumpulkan atau menangkap data cetak melalui antarmuka pemrograman Rocket Software JES Print Exit.
+ LRS Directory Integration Server (LRS/DIS) digunakan untuk otentikasi dan otorisasi selama alur kerja cetak.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) adalah lingkungan penyebaran aplikasi untuk aplikasi mainframe. Ini menyediakan lingkungan runtime untuk aplikasi mainframe yang dimigrasikan atau dibuat dengan menggunakan versi Pengembang Rocket Enterprise apa pun.

## Epik
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Siapkan runtime Rocket dan gunakan aplikasi batch mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan runtime dan terapkan aplikasi demo. | [Untuk menyiapkan Rocket Enterprise Server di Amazon EC2 dan menerapkan aplikasi BankDemo demonstrasi Perangkat Lunak Rocket, ikuti petunjuk dalam panduan pengguna Modernisasi AWS Mainframe.](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html) BankDemo Aplikasi ini adalah aplikasi batch mainframe yang membuat dan kemudian memulai output cetak. | Arsitek awan | 

### Siapkan server cetak LRS di Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance Amazon EC2 Windows. | Untuk meluncurkan instans Amazon EC2 Windows, ikuti petunjuk di [Luncurkan EC2 instans Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) di EC2 dokumentasi Amazon. Gunakan nama host yang sama yang Anda gunakan untuk lisensi produk LRS Anda.Instans Anda harus memenuhi persyaratan perangkat keras dan perangkat lunak berikut untuk LRS VPSX/LKM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Persyaratan perangkat keras dan perangkat lunak sebelumnya ditujukan untuk armada printer kecil (sekitar 500-1000). Untuk mendapatkan persyaratan lengkap, konsultasikan dengan kontak LRS dan AWS Anda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Instal LRS VPSX/MFI pada EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Instal LRS/antrian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Instal LRS/DIS. |  LRS/DIS Produk ini sering disertakan dalam instalasi LRS VPSX. Namun, jika LRS/DIS tidak diinstal bersama dengan LRS VPSX, gunakan langkah-langkah berikut untuk menginstalnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat grup target. | Buat grup target dengan mengikuti petunjuk di [Buat grup target untuk Network Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Saat Anda membuat grup target, daftarkan VPSX/MFI EC2 instance LRS sebagai target:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat Network Load Balancer. | Untuk membuat Network Load Balancer, ikuti instruksi dalam dokumentasi [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Network Load Balancer Anda merutekan lalu lintas dari Rocket Enterprise Server ke instans LRS VPSX/MFI EC2 .Saat Anda membuat Network Load Balancer, pilih nilai berikut pada halaman **Listeners** dan Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Integrasikan Rocket Enterprise Server dengan LRS/Queue dan LRS VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan Rocket Enterprise Server untuk LRS/Queue integrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Konfigurasikan Rocket Enterprise Server untuk VPSX/MFI integrasi LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Mengatur antrian cetak dan pengguna cetak
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kaitkan modul Keluar Cetak Perangkat Lunak Roket dengan Proses Eksekusi Server printer batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat antrian keluaran cetak di LRS VPSX/MFI dan integrasikan dengan LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat pengguna cetak di LRS VPSX/LKM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Siapkan server LRS PageCenter X di Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance Amazon EC2 Windows. | Luncurkan instans Amazon EC2 Windows dengan mengikuti petunjuk dari [Langkah 1: Luncurkan instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) di EC2 dokumentasi Amazon. Gunakan nama host yang sama yang Anda gunakan untuk lisensi produk LRS Anda.Instans Anda harus memenuhi persyaratan perangkat keras dan perangkat lunak berikut untuk LRS PageCenter X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Persyaratan perangkat keras dan perangkat lunak sebelumnya ditujukan untuk armada printer kecil (sekitar 500-1000). Untuk mendapatkan persyaratan lengkap, konsultasikan dengan kontak LRS dan AWS Anda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Instal LRS PageCenter X pada EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Instal LRS/DIS. |  LRS/DIS Produk ini sering disertakan dalam instalasi LRS VPSX. Namun, jika LRS/DIS tidak diinstal bersama dengan LRS VPSX, gunakan langkah-langkah berikut untuk menginstalnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat grup target. | Buat grup target dengan mengikuti petunjuk di [Buat grup target untuk Network Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Saat Anda membuat grup target, daftarkan EC2 instance LRS PageCenter X sebagai target:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat Network Load Balancer. | Untuk membuat Network Load Balancer, ikuti instruksi dalam dokumentasi [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Network Load Balancer Anda merutekan lalu lintas dari LRS VPSX/MFI ke instans LRS X. PageCenter EC2 Saat Anda membuat Network Load Balancer, pilih nilai berikut pada halaman **Listeners** dan Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Siapkan fitur manajemen keluaran di LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan fungsi Impor di LRS X PageCenter. | Anda dapat menggunakan fungsi Impor LRS PageCenter X untuk mengenali output yang mendarat di LRS PageCenter X dengan kriteria seperti nama Job atau ID Formulir. Anda kemudian dapat merutekan output ke folder tertentu di PageCenter LRS X.Untuk mengaktifkan fungsi Impor, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Konfigurasikan kebijakan penyimpanan dokumen. | LRS PageCenter X menggunakan kebijakan penyimpanan dokumen untuk memutuskan berapa lama menyimpan dokumen di PageCenter LRS X.Untuk mengonfigurasi kebijakan penyimpanan dokumen, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat aturan untuk merutekan dokumen output ke folder tertentu di LRS X PageCenter. | Di LRS PageCenter X, **Tujuan** menentukan jalur folder di mana output akan dikirim ketika tujuan ini dipanggil oleh Definisi **Laporan**. Untuk contoh ini, buat folder berdasarkan folder **ID Formulir** dalam definisi laporan, dan simpan output ke folder itu.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat definisi laporan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Mengatur otentikasi dan otorisasi untuk manajemen output
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat domain AWS Managed Microsoft AD dengan pengguna dan grup. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Bergabunglah dengan EC2 instans ke domain AWS Managed Microsoft AD. | Bergabunglah dengan EC2 instans LRS VPSX/MFI dan LRS PageCenter X ke domain AWS Managed Microsoft AD Anda secara otomatis [(](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/)dokumentasi AWS Knowledge Center) atau [secara manual](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (dokumentasi AWS Directory Service). | Arsitek awan | 
| Konfigurasikan dan integrasikan LRS/DIS dengan AWS Managed Microsoft AD untuk EC2 instans LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Konfigurasikan grup Impor untuk mengimpor output dari LRS VPSX ke LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Tambahkan aturan keamanan ke grup Impor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Buat pengguna di LRS PageCenter X untuk melakukan impor output dari LRS VPSX/MFI.  | Saat Anda membuat pengguna di LRS PageCenter X untuk melakukan impor output, nama pengguna harus sama dengan **ID VPSX dari antrian keluaran cetak di LRS VPSX/MFI**. Dalam contoh ini, ID VPSX adalah. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Tambahkan pengguna LRS PageCenter X Impor ke grup Impor saja. | Untuk memberikan izin yang diperlukan untuk impor dokumen dari LRS VPSX ke LRS PageCenter X, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 
| Konfigurasikan LRS/DIS dengan AWS Managed Microsoft AD untuk VPSX/MFI EC2 instans LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Konfigurasikan Amazon FSx untuk Windows File Server sebagai penyimpanan data operasional untuk LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sistem file untuk LRS X PageCenter. | Untuk menggunakan Amazon FSx untuk Windows File Server sebagai penyimpanan data operasional untuk LRS PageCenter X di lingkungan Multi-AZ, ikuti petunjuk di [Langkah 1: Buat sistem file Anda](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Arsitek awan | 
| Petakan berbagi file ke EC2 instance LRS PageCenter X. | Untuk memetakan file share yang dibuat pada langkah sebelumnya ke EC2 instance LRS PageCenter X, ikuti petunjuk di [Langkah 2: Petakan berbagi file Anda ke EC2 instance yang menjalankan Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Arsitek awan | 
| Petakan Direktori Kontrol LRS PageCenter X dan Direktori Folder Master ke drive berbagi FSx jaringan Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arsitek awan | 

### Uji alur kerja manajemen keluaran
<a name="test-an-output-management-workflow"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memulai permintaan cetak batch dari BankDemo aplikasi Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Insinyur uji | 
| Periksa output cetak di LRS X PageCenter. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Insinyur uji | 

## Sumber daya terkait
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-resources"></a>
+ [LRS](https://www.lrsoutputmanagement.com/products/modernization-products)
+ [Aliran data Presentasi Fungsi Lanjutan](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (dokumentasi IBM)
+ [Aliran Data Terkondisi Jalur (LCD) (Dokumentasi Compart)](https://www.compart.com/en/lcds)
+ [Memberdayakan Beban Kerja Mainframe Perusahaan di AWS dengan Micro](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) Focus (posting blog)
+ [Modernisasi beban kerja pencetakan online mainframe Anda di AWS (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Prescriptive Guidance)
+ [Modernisasi beban kerja pencetakan batch mainframe Anda di AWS (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Prescriptive Guidance)

## Informasi tambahan
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Pertimbangan-pertimbangan**

Selama perjalanan modernisasi Anda, Anda dapat mempertimbangkan berbagai konfigurasi untuk batch mainframe dan proses online dan output yang dihasilkannya. Platform mainframe telah disesuaikan oleh setiap pelanggan dan vendor yang menggunakannya dengan persyaratan khusus yang secara langsung memengaruhi pencetakan. Misalnya, platform Anda saat ini mungkin menggabungkan aliran data IBM AFP atau Xerox LCD ke dalam alur kerja saat ini. Selain itu, [karakter kontrol carriage mainframe](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) dan [kata-kata perintah saluran](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) dapat memengaruhi tampilan halaman yang dicetak dan mungkin memerlukan penanganan khusus. Sebagai bagian dari proses perencanaan modernisasi, kami menyarankan Anda menilai dan memahami konfigurasi di lingkungan cetak spesifik Anda.  

**Cetak pengambilan data**

Rocket Software Print Exit meneruskan informasi yang diperlukan untuk LRS VPSX/MFI untuk memproses file spool secara efektif. Informasi terdiri dari bidang yang dilewatkan di blok kontrol yang relevan, seperti berikut ini:
+ NAMA KERJA
+ PEMILIK (USERID)
+ TUJUAN
+ BENTUK
+ NAMA BERKAS
+ PENULIS

LRS VPSX/MFI mendukung mekanisme batch mainframe berikut untuk menangkap data dari Rocket Enterprise Server:
+  print/spool Pemrosesan BATCH COBOL menggunakan pernyataan z/OS JCL DD/OUTPUT SYSOUT standar.
+  print/spool Pemrosesan BATCH COBOL menggunakan pernyataan z/OS JCL CA-SPOOL SUBSYS DD standar.
+ IMS/COBOL print/spoolpemrosesan menggunakan antarmuka CBLTDLI. Untuk daftar lengkap metode dan contoh pemrograman yang didukung, lihat dokumentasi LRS yang disertakan dengan lisensi produk Anda.

**Pemeriksaan kesehatan armada printer**

LRS VPSX/MFI (LRS LoadX) dapat melakukan pemeriksaan kesehatan deep dive, termasuk manajemen perangkat dan optimalisasi operasional. Manajemen perangkat dapat mendeteksi kegagalan pada perangkat printer dan merutekan permintaan cetak ke printer yang sehat. Untuk informasi selengkapnya tentang pemeriksaan kesehatan mendalam untuk armada printer, lihat dokumentasi LRS yang disertakan dengan lisensi produk Anda.

**Cetak otentikasi dan otorisasi**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or a Lightweight Directory Access Protocol (LDAP) server. In addition to basic print authorization, LRS/DISjuga dapat menerapkan kontrol keamanan cetak tingkat butiran dalam kasus penggunaan berikut:
+ Kelola siapa yang dapat menelusuri pekerjaan printer.
+ Kelola tingkat penelusuran pekerjaan pengguna lain.
+ Kelola tugas operasional—misalnya, keamanan tingkat perintah seperti menahan atau melepaskan, membersihkan, memodifikasi, menyalin, dan mengubah rute. Keamanan dapat diatur oleh User-ID atau grup, mirip dengan grup keamanan Active Directory atau grup LDAP.

## Lampiran
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernisasi beban kerja pencetakan batch mainframe dengan menggunakan Rocket Enterprise Server dan LRS AWS VPSX/LFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy dan Kevin Yung, Amazon Web Services*

*Abraham Rondon, Fokus Mikro*

*Guy Tucker, Levi, Ray dan Shoup Inc*

## Ringkasan
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Pola ini menunjukkan kepada Anda cara memodernisasi beban kerja pencetakan batch mainframe penting bisnis Anda di Amazon Web Services (AWS) Cloud dengan menggunakan Rocket Enterprise Server sebagai runtime untuk aplikasi mainframe modern dan VPSX/MFI LRS (Micro Focus Interface) sebagai server cetak. Pola ini didasarkan pada pendekatan modernisasi mainframe [replatform](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Dalam pendekatan ini, Anda memigrasikan pekerjaan batch mainframe Anda ke Amazon Elastic Compute Cloud (Amazon EC2) dan memigrasikan database mainframe Anda, seperti IBM for DB2 ) terintegrasi dengan AWS z/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS Managed Microsoft AD. Dengan memodernisasi beban kerja pencetakan batch Anda, Anda dapat mengurangi biaya infrastruktur TI, mengurangi utang teknis pemeliharaan sistem lama, menghapus silo data, meningkatkan kelincahan dan efisiensi dengan DevOps model, dan memanfaatkan sumber daya sesuai permintaan dan otomatisasi di AWS Cloud.

## Prasyarat dan batasan
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Beban kerja pencetakan mainframe atau manajemen output
+ Pengetahuan dasar tentang cara membangun kembali dan mengirimkan aplikasi mainframe yang berjalan di Rocket Enterprise Server (Untuk informasi lebih lanjut, lihat lembar data [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) dalam dokumentasi Rocket.)
+ Pengetahuan dasar tentang solusi dan konsep [pencetakan cloud LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Perangkat lunak dan lisensi Rocket Enterprise Server (Untuk informasi lebih lanjut, hubungi [penjualan Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact).)
+ VPSX/MFI, LRS/Queue, and LRS/DISPerangkat lunak dan lisensi LRS (Untuk informasi lebih lanjut, hubungi penjualan [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**catatan**  
Untuk informasi selengkapnya tentang pertimbangan konfigurasi untuk beban kerja pencetakan batch mainframe, lihat *Pertimbangan* di bagian [Informasi tambahan dari pola](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) ini.

**Versi produk**
+ [Rocket Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 6.0 (pembaruan produk 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) atau lebih tinggi

## Arsitektur
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Tumpukan teknologi sumber**
+ Sistem operasi — IBM z/OS
+ Bahasa pemrograman — Common Business-Oriented Language (COBOL), job control language (JCL), dan Customer Information Control System (CICS)
+ Database — IBM DB2 untuk z/OS dan Metode Akses Penyimpanan Virtual (VSAM)
+ Keamanan — Fasilitas Kontrol Akses Sumber Daya (RACF), CA Top Secret untuk z/OS, dan Fasilitas Kontrol Akses 2 () ACF2
+ Manajemen pencetakan dan output - Produk z/OS pencetakan mainframe IBM (IBM Tivoli Output Manager untuk z/OS, LRS, dan CA View)

**Tumpukan teknologi target**
+ Sistem operasi - Microsoft Windows Server berjalan di Amazon EC2
+ Hitung - Amazon EC2
+ Bahasa pemrograman — COBOL, JCL, dan CICS
+ Basis Data - Amazon RDS
+ Keamanan — AWS Managed Microsoft AD
+ Manajemen pencetakan dan output — Solusi pencetakan LRS di AWS
+ Lingkungan runtime mainframe - Rocket Enterprise Server

**Arsitektur sumber**

Diagram berikut menunjukkan arsitektur keadaan saat ini yang khas untuk beban kerja pencetakan batch mainframe:

![\[Dari pengguna ke layanan mainframe, Db2 untuk z/OS, penjadwal pekerjaan, pekerjaan batch, dan output dalam enam langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna melakukan transaksi bisnis pada sistem keterlibatan (SoE) yang dibangun di atas aplikasi IBM CICS yang ditulis dalam COBOL.

1. SoE memanggil layanan mainframe, yang mencatat data transaksi bisnis dalam database system-of-records (SoR) seperti IBM DB2 untuk z/OS.

1. SoR mempertahankan data bisnis dari BUMN.

1. Penjadwal pekerjaan batch memulai pekerjaan batch untuk menghasilkan output cetak.

1. Pekerjaan batch mengekstrak data dari database, memformat data sesuai dengan kebutuhan bisnis, dan kemudian menghasilkan output bisnis seperti laporan penagihan, kartu identitas, atau laporan pinjaman. Akhirnya, pekerjaan batch merutekan output ke manajemen keluaran pencetakan untuk pemrosesan dan pengiriman output, berdasarkan persyaratan bisnis. 

1. Manajemen keluaran pencetakan menerima output cetak dari pekerjaan batch, dan kemudian mengirimkan output itu ke tujuan tertentu, seperti email, berbagi file yang menggunakan FTP aman, printer fisik yang menggunakan solusi pencetakan LRS (seperti yang ditunjukkan dalam pola ini), atau IBM Tivoli.

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk beban kerja pencetakan batch mainframe yang diterapkan di AWS Cloud:

![\[Aplikasi Batch di AWS dengan scheduler, Rocket Enterprise Server, dan database dalam empat langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


Diagram menunjukkan alur kerja berikut:

1. Penjadwal pekerjaan batch memulai pekerjaan batch untuk membuat hasil cetak, seperti laporan penagihan, kartu identitas, atau laporan pinjaman.

1. Pekerjaan batch mainframe ([direplatformed ke Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) menggunakan runtime Rocket Enterprise Server untuk mengekstrak data dari database aplikasi, menerapkan logika bisnis ke data, memformat data, dan kemudian mengirim data ke tujuan cetak dengan menggunakan [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (dokumentasi Micro Focus).

1. Database aplikasi (SoR yang berjalan di Amazon RDS) menyimpan data untuk output cetak.

1. Solusi VPSX/MFI pencetakan LRS digunakan di Amazon EC2 dan data operasionalnya disimpan di Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI menggunakan agen TCP/IP-based LRS/Queue transmisi untuk mengumpulkan data cetak melalui Rocket Software JES Print Exit API dan mengirimkan data ke tujuan printer tertentu.

**catatan**  
Solusi target biasanya tidak memerlukan perubahan aplikasi untuk mengakomodasi bahasa pemformatan mainframe, seperti IBM Advanced Function Presentation (AFP) atau Xerox Line Condition Data Stream (LCDS). Untuk informasi selengkapnya tentang penggunaan Perangkat Lunak Rocket untuk migrasi dan modernisasi aplikasi mainframe di AWS, lihat [Memberdayakan Beban Kerja Mainframe Perusahaan di AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) dengan posting blog Micro Focus.

**Arsitektur infrastruktur AWS**

Diagram berikut menunjukkan arsitektur infrastruktur AWS yang sangat tersedia dan aman untuk beban kerja pencetakan batch mainframe:

![\[Penerapan multi-AZ di AWS dengan Rocket Software dan komponen LRS dalam tujuh langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


Diagram menunjukkan alur kerja berikut:

1. Penjadwal batch memulai proses batch dan diterapkan di Amazon EC2 di beberapa [Availability Zone for high availability](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA). 
**catatan**  
Pola ini tidak mencakup implementasi penjadwal batch. Untuk informasi selengkapnya tentang implementasi, lihat dokumentasi vendor perangkat lunak untuk penjadwal Anda.

1. Pekerjaan batch mainframe (ditulis pada bahasa pemrograman seperti JCL atau COBOL) menggunakan logika bisnis inti untuk memproses dan menghasilkan output cetak, seperti laporan penagihan, kartu ID, dan laporan pinjaman. Pekerjaan ini diterapkan di Amazon EC2 di dua Availability Zone untuk HA dan menggunakan Rocket Software Print Exit untuk merutekan output cetak ke LRS VPSX/MFI untuk pencetakan pengguna akhir.

1. LRS VPSX/MFI menggunakan TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Rocket Software JES Print Exit programming interface. Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the spool file and dynamically build LRS/Queue perintah. Perintah kemudian dijalankan menggunakan fungsi bawaan standar dari Rocket Software. 
**catatan**  
Untuk informasi selengkapnya tentang data cetak yang diteruskan dari Rocket Software Print Exit ke LRS/Queue dan mekanisme batch mainframe yang VPSX/MFI didukung LRS, lihat *Mencetak pengambilan data* di bagian [Informasi tambahan](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dari pola ini.

1. 
**catatan**  
[Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) menyediakan nama DNS untuk mengintegrasikan Rocket Enterprise Server dengan LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI dan mengarahkan lalu lintas ke target terdaftar yang sehat.

1. 
**catatan**  
Server VPSX/MFI cetak LRS digunakan EC2 di Amazon di dua Availability Zone untuk HA dan menggunakan [Amazon EBS sebagai penyimpanan](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) data operasional. LRS VPSX/MFI mendukung mode layanan aktif-aktif dan aktif-pasif. Arsitektur ini menggunakan multiple AZs dalam pasangan aktif-pasif sebagai siaga aktif dan panas. Network Load Balancer melakukan pemeriksaan kesehatan pada instans LRS dan mengarahkan lalu lintas ke VPSX/MFI EC2 instans siaga panas di AZ lain jika instans aktif dalam keadaan tidak sehat. Permintaan cetak disimpan dalam Antrian Pekerjaan LRS secara lokal di setiap instance. EC2 Jika terjadi pemulihan, instance yang gagal harus dimulai ulang agar layanan LRS dapat melanjutkan pemrosesan permintaan cetak. : LRS juga VPSX/MFI dapat melakukan pemeriksaan kesehatan di tingkat armada printer. Untuk informasi selengkapnya, lihat *Pemeriksaan kesehatan armada printer* di bagian [Informasi tambahan](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dari pola ini.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) terintegrasi dengan LRS/DIS untuk melakukan autentikasi dan otorisasi alur kerja cetak. Untuk informasi selengkapnya, lihat *Mencetak otentikasi dan otorisasi* di bagian [Informasi tambahan](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dari pola ini.

1. LRS VPSX/MFI menggunakan Amazon EBS untuk penyimpanan blok. Anda dapat mencadangkan data Amazon EBS dari EC2 instans aktif ke Amazon S3 point-in-time sebagai snapshot dan mengembalikannya ke volume EBS siaga panas. [Untuk mengotomatiskan pembuatan, penyimpanan, dan penghapusan snapshot volume Amazon EBS, Anda dapat menggunakan [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) untuk mengatur frekuensi snapshot otomatis dan memulihkannya berdasarkan persyaratan RTO/RPO Anda.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Alat
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-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. EC2 Volume EBS berfungsi seperti perangkat blok mentah yang tidak terformat. Anda dapat memasang volume ini sebagai perangkat di instans 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 menggunakan Amazon EC2 untuk meluncurkan server virtual sebanyak atau sesedikit yang Anda butuhkan, dan Anda dapat meningkatkan skala atau meningkatkan skala.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) adalah layanan web yang memudahkan penyiapan, pengoperasian, dan skala database relasional di AWS Cloud. Ini menyediakan efisiensi biaya, kapasitas resizable untuk database relasional dan mengelola tugas-tugas administrasi database umum.
+ [AWS Directory Service untuk Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), juga dikenal sebagai AWS Managed Microsoft AD, memungkinkan beban kerja sadar direktori dan sumber daya AWS Anda untuk menggunakan Microsoft Active Directory di AWS Cloud.

**Alat lainnya**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), dikembangkan bersama oleh LRS dan Rocket Software, menangkap output dari spool JES Rocket Enterprise Server dan andal mengirimkannya ke tujuan cetak tertentu.
+ LRS Directory Information Server (LRS/DIS) digunakan untuk otentikasi dan otorisasi selama alur kerja cetak.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIuntuk mengumpulkan atau menangkap data cetak melalui antarmuka pemrograman Rocket Software JES Print Exit.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) adalah lingkungan penyebaran aplikasi untuk aplikasi mainframe. Ini menyediakan lingkungan eksekusi untuk aplikasi mainframe yang dimigrasikan atau dibuat dengan menggunakan versi Rocket Software Enterprise Developer.

## Epik
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Siapkan Rocket Enterprise Server di Amazon EC2 dan gunakan aplikasi batch mainframe
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Rocket Enterprise Server dan gunakan aplikasi demo. | Siapkan Rocket Enterprise Server di Amazon EC2, lalu gunakan aplikasi BankDemo demonstrasi Perangkat Lunak Rocket di Amazon. EC2 BankDemo Aplikasi ini adalah aplikasi batch mainframe yang membuat dan kemudian memulai output cetak. | Arsitek awan | 

### Siapkan server cetak LRS di Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan lisensi produk LRS untuk pencetakan. | Untuk mendapatkan lisensi produk LRS untuk LRSVPSX/MFI, LRS/Queue, and LRS/DIS, hubungi tim Manajemen [Output LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Anda harus memberikan nama host dari EC2 contoh di mana produk LRS akan diinstal. | Membangun memimpin | 
| Buat instance Amazon EC2 Windows untuk menginstal LRS VPSX/MFI. | Luncurkan instans Amazon EC2 Windows dengan mengikuti petunjuk dari [Luncurkan EC2 instans Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) di EC2 dokumentasi Amazon. Instans Anda harus memenuhi persyaratan perangkat keras dan perangkat lunak berikut untuk LRS VPSX/LKM:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Persyaratan perangkat keras dan perangkat lunak sebelumnya ditujukan untuk armada printer kecil (sekitar 500-1000). Untuk mendapatkan persyaratan lengkap, konsultasikan dengan kontak LRS dan AWS Anda.Saat Anda membuat instance Windows, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS VPSX/MFI pada EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS/antrian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Buat grup target dan daftarkan LRS VPSX/MFI EC2 sebagai target. | Buat grup target dengan mengikuti petunjuk dari [Buat grup target untuk Network Load Balancer Anda dalam dokumentasi Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html).Saat Anda membuat grup target, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Buat Network Load Balancer. | Ikuti instruksi dari [Buat Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) dalam dokumentasi Elastic Load Balancing. Network Load Balancer Anda merutekan lalu lintas dari Rocket Enterprise Server ke LRS. VPSX/MFI EC2Saat Anda membuat Network Load Balancer, lakukan hal berikut pada halaman **Listeners** dan Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Integrasikan Rocket Enterprise Server dengan LRS VPSX/MFI dan LRS/Antrian
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan Rocket Enterprise Server untuk LRS/Queue integrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)LRS saat ini mendukung batas karakter maksimum 50 untuk nama DNS, tetapi ini dapat berubah di masa mendatang. Jika nama DNS Anda lebih besar dari 50, maka Anda dapat menggunakan alamat IP Network Load Balancer sebagai alternatif. | Arsitek awan | 
| Konfigurasikan Rocket Enterprise Server untuk VPSX/MFI integrasi LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Siapkan printer dan cetak pengguna di Rocket Enterprise Server dan LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kaitkan modul Keluar Cetak Perangkat Lunak Roket ke Proses Eksekusi Server printer batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Untuk informasi selengkapnya tentang konfigurasi, lihat [Menggunakan Keluar](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) di dokumentasi Fokus Mikro. | Arsitek awan | 
| Tambahkan printer di LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Buat pengguna cetak di LRS VPSX/LKM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Mengatur otentikasi cetak dan otorisasi
<a name="set-up-print-authentication-and-authorization"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat domain AWS Managed Microsoft AD dengan pengguna dan grup. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Bergabunglah dengan LRS VPSX/MFI EC2 ke domain AWS Managed Microsoft AD. | Bergabunglah dengan LRS VPSX/MFI EC2 ke domain AWS Managed Microsoft AD Anda [secara otomatis](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (dokumentasi AWS Knowledge Center) atau [secara manual](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (dokumentasi AWS Directory Service). | Arsitek awan | 
| Konfigurasikan dan integrasikan LRS/DIS dengan AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Uji alur kerja cetak
<a name="test-a-print-workflow"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memulai permintaan cetak batch dari BankDemo aplikasi Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Insinyur uji | 
| Periksa output cetak di LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Anda sekarang dapat melihat hasil cetak dari laporan akun dengan kolom untuk **Akun No.** , **Deskripsi**, **Tanggal**, **Jumlah**, dan **Saldo**. Sebagai contoh, lihat lampiran **batch\$1print\$1output** untuk pola ini. | Insinyur uji | 

## Sumber daya terkait
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisasi Output LRS](https://www.lrsoutputmanagement.com/) (dokumentasi LRS)
+ [ANSI dan kontrol kereta mesin](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (dokumentasi IBM)
+ [Kata-kata perintah saluran](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) (dokumentasi IBM)
+ [Memberdayakan Beban Kerja Mainframe Perusahaan di AWS dengan Fokus Mikro (AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) Partner Network Blog)
+ [Membangun PAC Server Perusahaan Fokus Mikro dengan Amazon EC2 Auto Scaling dan Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) (dokumentasi AWS Prescriptive Guidance)
+ [Aliran data Presentasi Fungsi Lanjutan (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (dokumentasi IBM)
+ [Aliran Data Terkondisi Jalur (LCD) (Dokumentasi Compart)](https://www.compart.com/en/lcds)

## Informasi tambahan
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Pertimbangan-pertimbangan**

Selama perjalanan modernisasi Anda, Anda dapat mempertimbangkan berbagai konfigurasi untuk proses batch mainframe dan output yang dihasilkannya. Platform mainframe telah disesuaikan oleh setiap pelanggan dan vendor yang menggunakannya dengan persyaratan khusus yang secara langsung memengaruhi pencetakan. Misalnya, platform Anda saat ini dapat menggabungkan IBM Advanced Function Presentation (AFP) atau Xerox Line Condition Data Stream (LCDS) ke dalam alur kerja saat ini. Selain itu, [karakter kontrol carriage mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) dan [kata-kata perintah saluran](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) dapat memengaruhi tampilan halaman yang dicetak dan mungkin memerlukan penanganan khusus. Sebagai bagian dari proses perencanaan modernisasi, kami menyarankan Anda menilai dan memahami konfigurasi di lingkungan cetak spesifik Anda.

**Cetak pengambilan data**

Rocket Software Print Exit meneruskan informasi yang diperlukan untuk memungkinkan LRS VPSX/MFI memproses file spool secara efektif. Informasi terdiri dari bidang yang dilewatkan di blok kontrol yang relevan, seperti:
+ NAMA KERJA
+ PEMILIK (USERID)
+ TUJUAN
+ BENTUK
+ NAMA BERKAS
+ PENULIS

LRS VPSX/MFI mendukung mekanisme batch mainframe berikut untuk menangkap data dari Rocket Enterprise Server.
+  print/spool Pemrosesan BATCH COBOL menggunakan pernyataan z/OS JCL SYSOUT standar DD/OUTPUT 
+  print/spool Pemrosesan BATCH COBOL menggunakan pernyataan z/OS JCL CA-SPOOL SUBSYS DD standar
+ IMS/COBOL print/spoolpemrosesan menggunakan antarmuka CBLTDLI (Untuk daftar lengkap metode dan contoh pemrograman yang didukung, lihat dokumentasi LRS yang disertakan dengan lisensi produk Anda.)

**Pemeriksaan kesehatan armada printer**

LRS VPSX/MFI (LRS LoadX) dapat melakukan pemeriksaan kesehatan deep dive, termasuk manajemen perangkat dan optimalisasi operasional. Manajemen perangkat dapat mendeteksi kegagalan pada perangkat printer dan merutekan permintaan cetak ke printer yang sehat. Untuk informasi selengkapnya tentang pemeriksaan kesehatan deep dive untuk armada printer, lihat dokumentasi LRS yang disertakan dengan lisensi produk Anda.

**Cetak otentikasi dan otorisasi**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISjuga dapat menerapkan kontrol keamanan cetak tingkat butiran dalam kasus penggunaan berikut:
+ Kelola siapa yang dapat menelusuri pekerjaan printer.
+ Kelola tingkat penelusuran pekerjaan pengguna lain.
+ Kelola tugas operasional. Misalnya, keamanan tingkat perintah seperti hold/release, purge, modify, copy, dan reroute. Keamanan dapat diatur oleh User-ID atau Grup (mirip dengan grup AD atau grup LDAP). ****

## Lampiran
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernisasi mainframe: aktif AWS dengan Rocket DevOps Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Ringkasan
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Tantangan pelanggan**

Organizations yang menjalankan aplikasi inti pada perangkat keras mainframe biasanya menghadapi beberapa tantangan ketika perangkat keras perlu ditingkatkan untuk memenuhi tuntutan inovasi digital. Tantangan-tantangan ini termasuk kendala berikut. 
+ Pengembangan mainframe dan lingkungan pengujian tidak dapat diskalakan karena ketidakfleksibelan komponen perangkat keras mainframe dan tingginya biaya perubahan.
+ Pengembangan mainframe menghadapi kekurangan keterampilan, karena pengembang baru tidak akrab dan tidak tertarik dengan alat pengembangan mainframe tradisional. Teknologi modern seperti kontainer, pipa integration/continuous pengiriman berkelanjutan (CI/CD), dan kerangka kerja pengujian modern tidak tersedia dalam pengembangan mainframe.

**Hasil pola**

Untuk mengatasi tantangan ini, Amazon Web Services (AWS) dan Rocket Software Micro Focus, Mitra AWS Partner Network (APN), telah berkolaborasi untuk membuat pola ini. Solusi ini dirancang untuk membantu Anda mencapai hasil berikut.
+ Peningkatan produktivitas pengembang. Pengembang dapat diberikan instance pengembangan mainframe baru dalam beberapa menit.
+ Penggunaan AWS Cloud untuk membuat lingkungan pengujian mainframe baru dengan kapasitas hampir tidak terbatas.
+ Penyediaan cepat infrastruktur CI/CD mainframe baru. Penyediaan pada AWS dapat diselesaikan dalam waktu satu jam dengan menggunakan AWS CloudFormation dan. AWS Systems Manager
+ Penggunaan asli AWS DevOps alat untuk pengembangan mainframe, termasuk,,, AWS CodeBuild AWS CodeCommit AWS CodePipeline AWS CodeDeploy, dan Amazon Elastic Container Registry (Amazon ECR).
+ Mengubah pengembangan air terjun tradisional menjadi pengembangan tangkas dalam proyek mainframe.

**Ringkasan teknologi**

Dalam pola ini, tumpukan target berisi komponen-komponen berikut.


| 
| 
| Komponen logis | Solusi implementasi | Deskripsi | 
| --- |--- |--- |
| Repositori kode sumber |  AccuRev Server Perangkat Lunak Roket CodeCommit, Amazon ECR  | Manajemen kode sumber — Solusinya menggunakan dua jenis kode sumber: Kode sumber mainframe, misalnya, COBOL dan JCL. AWS templat infrastruktur dan skrip otomatisasi Kedua jenis kode sumber memerlukan kontrol versi, tetapi mereka dikelola dengan cara yang berbeda SCMs. Kode sumber yang digunakan ke mainframe atau Rocket Software Enterprise Server dikelola di Rocket Software Micro Focus AccuRev Server. AWS template dan skrip otomatisasi dikelola di CodeCommit. Amazon ECR digunakan untuk repositori gambar Docker.  | 
| Contoh pengembang perusahaan | Amazon Elastic Compute Cloud (Amazon EC2), Pengembang Perusahaan Perangkat Lunak Roket untuk Eclipse | Pengembang mainframe dapat mengembangkan kode di Amazon EC2 dengan menggunakan Pengembang Perusahaan Perangkat Lunak Rocket untuk Eclipse. Ini menghilangkan kebutuhan untuk mengandalkan perangkat keras mainframe untuk menulis dan menguji kode.  | 
| Manajemen lisensi Rocket Software Enterprise Suite | License Manager Software Enterprise Suite Rocket | Untuk manajemen lisensi dan tata kelola Rocket Software Enterprise Suite terpusat, solusinya menggunakan Rocket Software Enterprise Suite License Manager untuk meng-host lisensi yang diperlukan. | 
| Pipa CI/CD | CodePipeline, CodeBuild, CodeDeploy, Pengembang Perusahaan Perangkat Lunak Roket dalam wadah, Server Uji Perusahaan Perangkat Lunak Roket dalam wadah, Server Perusahaan Fokus Mikro Perangkat Lunak Roket | Tim pengembangan mainframe memerlukan CI/CD pipeline untuk melakukan kompilasi kode, pengujian integrasi, dan pengujian regresi. Di AWS, CodePipeline dan CodeBuild dapat bekerja dengan Pengembang Perusahaan Perangkat Lunak Rocket dan Server Uji Perusahaan dalam wadah secara asli. | 

## Prasyarat dan batasan
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Prasyarat**


| 
| 
| Nama | Deskripsi | 
| --- |--- |
| py3270 | py3270 adalah antarmuka Python ke x3270, emulator terminal IBM 3270. Ini menyediakan API ke subproses x3270 atau s3270. | 
| x3270 | x3270 adalah emulator terminal IBM 3270 untuk X Window System dan Windows.  Ini dapat digunakan oleh pengembang untuk pengujian unit secara lokal. | 
| Robot-Kerangka-Mainframe-3270-Perpustakaan | Mainframe3270 adalah perpustakaan untuk Robot Framework berdasarkan proyek py3270. | 
| Perangkat Lunak Roket Verastream | Rocket Software Verastream adalah platform integrasi yang memungkinkan pengujian aset mainframe seperti aplikasi seluler, aplikasi web, dan layanan web SOA diuji. | 
| Penginstal dan lisensi Pengujian Fungsional Terpadu Perangkat Lunak Roket (UFT) | Rocket Software Unified Functional Testing adalah perangkat lunak yang menyediakan otomatisasi uji fungsional dan regresi untuk aplikasi dan lingkungan perangkat lunak. | 
| Pemasang dan lisensi Server Perusahaan Perangkat Lunak Rocket | Enterprise Server menyediakan lingkungan runtime untuk aplikasi mainframe. | 
| Penginstal dan lisensi Server Uji Perusahaan Perangkat Lunak Rocket | Rocket Software Enterprise Test Server adalah lingkungan pengujian aplikasi mainframe IBM. | 
|  AccuRev Penginstal dan lisensi Rocket Software untuk Server, dan Rocket Software Micro Focus AccuRev installer dan lisensi untuk sistem operasi Windows dan Linux  | AccuRev menyediakan manajemen kode sumber (SCM). AccuRev Sistem ini dirancang untuk digunakan oleh tim orang yang sedang mengembangkan satu set file. | 
| Pengembang Perusahaan Perangkat Lunak Roket untuk penginstal, tambalan, dan lisensi Eclipse | Enterprise Developer menyediakan pengembang mainframe platform untuk mengembangkan dan memelihara mainframe inti aplikasi online dan batch. | 

**Batasan**
+ Membangun gambar Windows Docker tidak didukung di CodeBuild. [Masalah yang dilaporkan](https://github.com/docker-library/docker/issues/49) ini membutuhkan dukungan dari tim Windows Kernel/HCS dan Docker. Solusinya adalah membuat runbook build image Docker dengan menggunakan Systems Manager. Pola ini menggunakan solusi untuk membangun Rocket Software Enterpise Developer untuk gambar Eclipse dan Rocket Software Micro Focus Enterprise Test Server Container. 
+ Konektivitas virtual private cloud (VPC) dari belum CodeBuild didukung di Windows, sehingga polanya tidak menggunakan Rocket Software License Manager untuk mengelola lisensi di Rocket Software Enterprise Developer dan OpenText Rocket Software Enterprise Test Server container.

**Versi produk**
+ Pengembang Perusahaan Perangkat Lunak Rocket 5.5 atau yang lebih baru
+ Server Uji Perusahaan Perangkat Lunak Rocket 5.5 atau yang lebih baru
+ Rocket Software Enterprise Server 5.5 atau yang lebih baru
+ Rocket Software AccuRev 7.x atau yang lebih baru
+ **Gambar dasar Windows Docker untuk Pengembang Perusahaan Perangkat Lunak Roket dan Server Uji Perusahaan: microsoft/dotnet-framework-4.7.2-runtime**
+ **Gambar dasar Linux Docker untuk AccuRev klien: amazonlinux: 2**

## Arsitektur
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Lingkungan mainframe**

Dalam pengembangan mainframe konvensional, pengembang perlu menggunakan perangkat keras mainframe untuk mengembangkan dan menguji program. Mereka menghadapi keterbatasan kapasitas, misalnya terbatas juta instruksi per detik (MIPS) untuk dev/test lingkungan, dan mereka harus bergantung pada alat yang tersedia di komputer mainframe.

Di banyak organisasi, pengembangan mainframe mengikuti metodologi pengembangan air terjun, dengan tim mengandalkan siklus panjang untuk merilis perubahan. Siklus rilis ini biasanya lebih lama dari pengembangan produk digital.   

Diagram berikut menunjukkan beberapa proyek mainframe berbagi perangkat keras mainframe untuk pengembangannya. Dalam perangkat keras mainframe, mahal untuk meningkatkan pengembangan dan pengujian lingkungan untuk lebih banyak proyek.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*AWS***arsitektur**

Pola ini memperluas pengembangan mainframe ke. AWS Cloud Pertama, ia menggunakan AccuRev SCM untuk meng-host kode sumber mainframe. AWS Kemudian itu membuat Enterprise Developer dan Enterprise Test Server tersedia untuk membangun dan menguji kode mainframe. AWS 

Bagian berikut menjelaskan tiga komponen utama pola.

**1. SCM**

Dalam AWS, pola digunakan AccuRev untuk membuat satu set ruang kerja SCM dan kontrol versi untuk kode sumber mainframe. Arsitektur berbasis streamingnya memungkinkan pengembangan mainframe paralel untuk beberapa tim. Untuk menggabungkan perubahan, AccuRev gunakan konsep promosi. Untuk menambahkan perubahan itu ke ruang kerja lain, AccuRev gunakan konsep pembaruan.

Pada tingkat proyek, setiap tim dapat membuat satu atau lebih aliran AccuRev untuk melacak perubahan tingkat proyek. Ini disebut aliran proyek. Aliran proyek ini diwarisi dari aliran induk yang sama. Aliran induk digunakan untuk menggabungkan perubahan dari aliran proyek yang berbeda.

Setiap aliran proyek dapat mempromosikan kode ke AccuRev, dan pemicu pos promosi disiapkan untuk memulai pipa AWS CI/CD. Build yang berhasil untuk perubahan aliran proyek dapat dipromosikan ke aliran induknya untuk pengujian regresi lainnya.  

Biasanya, aliran induk disebut aliran integrasi sistem. Ketika ada promosi dari aliran proyek ke aliran integrasi sistem, pemicu pasca promosi memulai CI/CD pipeline lain untuk menjalankan pengujian regresi.

Selain kode mainframe, pola ini mencakup AWS CloudFormation template, dokumen Otomasi Systems Manager, dan skrip. Mengikuti praktik infrastructure-as-code terbaik, mereka dikendalikan versi. CodeCommit 

Jika Anda perlu menyinkronkan kode mainframe kembali ke lingkungan mainframe untuk penyebaran, Rocket Software menyediakan solusi Enterprise Sync, yang menyinkronkan kode dari SCM kembali ke AccuRev SCM mainframe.

**2. Lingkungan pengembang dan pengujian**

Dalam organisasi besar, penskalaan lebih dari seratus atau bahkan lebih dari seribu pengembang mainframe sangat menantang. Untuk mengatasi kendala ini, pola menggunakan instance Amazon EC2 Windows untuk pengembangan. Pada instance, Enterprise Developer untuk alat Eclipse diinstal. Pengembang dapat melakukan semua pengujian kode mainframe dan debugging secara lokal pada instance. 

AWS Systems Manager Dokumen State Manager dan Automation digunakan untuk mengotomatiskan penyediaan instans pengembang. Waktu rata-rata untuk membuat instance pengembang adalah dalam 15 menit. Perangkat lunak dan konfigurasi berikut disiapkan:
+ AccuRev Klien Windows untuk memeriksa dan memasukkan kode sumber ke AccuRev
+ Pengembang Perusahaan untuk alat Eclipse, untuk menulis, menguji, dan men-debug kode mainframe secara lokal
+ Kerangka pengujian open source Kerangka pengujian pengembangan berbasis perilaku Python (BDD) Behavie, py3270, dan emulator x3270 untuk membuat skrip untuk menguji aplikasi
+ Alat pengembang Docker untuk membangun image Enterprise Test Server Docker dan menguji aplikasi dalam wadah Enterprise Test Server Docker 

Dalam siklus pengembangan, pengembang menggunakan EC2 instance untuk mengembangkan dan menguji kode mainframe secara lokal. Ketika perubahan lokal berhasil diuji, pengembang mempromosikan perubahan ke AccuRev server.  

**3. CI/CD jaringan pipa**

Dalam polanya, CI/CD pipeline digunakan untuk pengujian integrasi dan uji regresi sebelum penerapan ke lingkungan produksi. 

Seperti yang dijelaskan di bagian SCM, AccuRev menggunakan dua jenis aliran: aliran proyek dan aliran integrasi. Setiap aliran dihubungkan dengan CI/CD jaringan pipa. Untuk melakukan integrasi antara AccuRev server dan AWS CodePipeline, pola menggunakan skrip promosi AccuRev pos untuk membuat acara untuk memulai CI/CD.

Misalnya, ketika pengembang mempromosikan perubahan ke aliran proyek di AccuRev, ia memulai skrip promosi posting untuk dijalankan di AccuRev Server. Kemudian skrip mengunggah metadata perubahan ke bucket Amazon Simple Storage Service (Amazon S3) untuk membuat acara Amazon S3. Acara ini akan memulai pipeline yang CodePipeline dikonfigurasi untuk dijalankan. 

Mekanisme memulai peristiwa yang sama digunakan untuk aliran integrasi dan jaringan pipa terkaitnya. 

Dalam CI/CD pipeline, CodePipeline gunakan CodeBuild dengan wadah klien AccuRev Linux untuk memeriksa kode terbaru dari AccuRev aliran. Kemudian pipeline CodeBuild mulai menggunakan wadah Enterprise Developer Windows untuk mengkompilasi kode sumber, dan menggunakan wadah Enterprise Test Server Windows CodeBuild untuk menguji aplikasi mainframe.

 CI/CD Pipa dibangun menggunakan CloudFormation templat, dan cetak biru akan digunakan untuk proyek baru. Dengan menggunakan template, dibutuhkan waktu kurang dari satu jam bagi sebuah proyek untuk membuat CI/CD pipeline baru AWS.

Untuk meningkatkan kemampuan pengujian mainframe Anda AWS, pola tersebut membangun rangkaian DevOps pengujian Perangkat Lunak Rocket, Verastream, dan server UFT. Dengan menggunakan DevOps alat modern, Anda dapat menjalankan tes AWS sebanyak yang Anda butuhkan.

Contoh lingkungan pengembangan mainframe dengan Rocket Software on AWS ditunjukkan pada diagram berikut.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Tumpukan teknologi target*

Bagian ini memberikan pandangan lebih dekat pada arsitektur masing-masing komponen dalam pola.

**1. Repositori kode sumber - SCM AccuRev **

AccuRev SCM diatur untuk mengelola versi kode sumber mainframe. Untuk ketersediaan tinggi, AccuRev mendukung mode primer dan replika. Operator dapat gagal ke replika saat melakukan pemeliharaan pada node utama. 

Untuk mempercepat respons CI/CD pipeline, pola menggunakan Amazon CloudWatch Events untuk mendeteksi perubahan kode sumber dan memulai awal pipeline.

1. Pipeline diatur untuk menggunakan sumber Amazon S3.

1. Aturan CloudWatch Peristiwa diatur untuk menangkap peristiwa S3 dari bucket S3 sumber.

1. Aturan CloudWatch Events menetapkan target ke pipeline.

1. AccuRev SCM dikonfigurasi untuk menjalankan skrip promosi pos secara lokal setelah promosi selesai.

1. AccuRev SCM menghasilkan file XMLyang berisi metadata promosi, dan skrip mengunggah file XMLnya ke bucket S3 sumber.

1. Setelah upload, bucket S3 sumber mengirimkan event agar sesuai dengan aturan CloudWatch Events, dan aturan CloudWatch Events memulai pipeline untuk dijalankan. 

Ketika pipeline berjalan, ia memulai CodeBuild proyek untuk menggunakan wadah klien AccuRev Linux untuk memeriksa kode mainframe terbaru dari aliran terkait AccuRev .   

Diagram berikut menunjukkan setup AccuRev Server.

![\[AWS Cloud diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Templat Pengembang Perusahaan** 

Pola menggunakan EC2 template Amazon untuk menyederhanakan pembuatan instance pengembang. Dengan menggunakan State Manager, ia dapat menerapkan pengaturan perangkat lunak dan lisensi ke EC2 instance secara konsisten.

 EC2 Template Amazon dibangun dalam pengaturan konteks VPC dan pengaturan instans default, dan mengikuti persyaratan penandaan perusahaan. Dengan menggunakan template, tim dapat membuat instance pengembangan baru mereka sendiri. 

Ketika instans pengembang dimulai, dengan mengaitkan dengan tag, Systems Manager menggunakan State Manager untuk menerapkan otomatisasi. Otomatisasi mencakup langkah-langkah umum berikut.

1. Instal perangkat lunak Enterprise Developer dan instal tambalan.

1. Instal AccuRev klien untuk Windows.

1. Instal skrip yang telah dikonfigurasi sebelumnya bagi pengembang untuk bergabung dengan AccuRev aliran. Inisialisasi ruang kerja Eclipse.

1. Instal alat pengembangan, termasuk x3270, py3270, dan Docker.

1. Konfigurasikan pengaturan lisensi untuk menunjuk ke penyeimbang beban License Manager.

Diagram berikut menunjukkan instance pengembang Enterprise yang dibuat oleh EC2 template Amazon, dengan perangkat lunak dan konfigurasi yang diterapkan ke instance oleh State Manager. Instans pengembang perusahaan terhubung AWS License Manager untuk mengaktifkan lisensi mereka.

![\[AWS Cloud diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Pipa CI/CD**

Seperti yang dijelaskan di bagian AWS arsitektur, dalam polanya, ada CI/CD jaringan pipa tingkat proyek dan jaringan pipa integrasi sistem. Setiap tim proyek mainframe membuat pipa atau beberapa CI/CD saluran pipa untuk membangun program yang mereka kembangkan dalam sebuah proyek. CI/CD Pipeline proyek ini memeriksa kode sumber dari AccuRev aliran terkait. 

Dalam tim proyek, pengembang mempromosikan kode mereka di AccuRev aliran terkait. Kemudian promosi memulai pipeline proyek untuk membangun kode dan menjalankan tes integrasi. 

Setiap CI/CD pipeline proyek menggunakan CodeBuild proyek dengan alat Pengembang Perusahaan gambar Amazon ECR dan alat Enterprise Test Server image Amazon ECR. 

CodePipeline dan CodeBuild digunakan untuk membuat jaringan CI/CD pipa. Karena CodeBuild dan tidak CodePipeline memiliki biaya atau komitmen di muka, Anda hanya membayar untuk apa yang Anda gunakan. Dibandingkan dengan perangkat keras mainframe, AWS solusinya sangat mengurangi lead time penyediaan perangkat keras dan menurunkan biaya lingkungan pengujian Anda.

Dalam perkembangan modern, beberapa metodologi pengujian digunakan. Misalnya, pengembangan berbasis tes (TDD), BDD, dan Robot Framework. Dengan pola ini, pengembang dapat menggunakan alat modern ini untuk pengujian mainframe. Misalnya, dengan menggunakan x3270, py3270 dan alat uji Behaw python, Anda dapat menentukan perilaku aplikasi online. Anda juga dapat menggunakan kerangka kerja robot build mainframe 3270 di pipeline ini CI/CD .

Diagram berikut menunjukkan CI/CD pipa aliran tim. 

![\[AWS Cloud CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


Diagram berikut menunjukkan laporan CI/CD uji proyek yang dihasilkan oleh CodePipeline dalam Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


Diagram berikut menunjukkan laporan CI/CD uji proyek yang dihasilkan oleh CodePipeline di Py3270 dan Behaw BDD.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Setelah pengujian tingkat proyek berhasil dilewati, kode yang diuji secara manual dipromosikan ke aliran integrasi di AccuRev SCM. Anda dapat mengotomatiskan langkah ini setelah tim memiliki kepercayaan diri pada cakupan pengujian dari pipa proyek mereka.

Saat kode dipromosikan, CI/CD pipeline integrasi sistem memeriksa kode gabungan dan melakukan tes regresi. Kode gabungan dipromosikan dari semua aliran proyek paralel.

Bergantung pada seberapa halus lingkungan pengujian diperlukan, pelanggan dapat memiliki lebih banyak CI/CD jaringan pipa integrasi sistem di lingkungan yang berbeda, misalnya UAT, Pra-Produksi. 

Dalam polanya, alat yang digunakan dalam pipeline integrasi sistem adalah Enterprise Test Server, UFT Server, dan Verastream. Semua alat ini dapat digunakan ke dalam wadah Docker dan digunakan dengan. CodeBuild

Setelah berhasil menguji program mainframe, artefak disimpan, dengan kontrol versi, dalam ember S3. 

Diagram berikut menunjukkan CI/CD pipa integrasi sistem.

![\[CI/CD pipeline showing Layanan AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Setelah artefak berhasil diuji dalam CI/CD jaringan pipa integrasi sistem, artefak dapat dipromosikan untuk penyebaran produksi. 

Jika Anda perlu menyebarkan kode sumber kembali ke mainframe, Rocket Software menawarkan solusi Enterprise Sync untuk menyinkronkan kode sumber dari AccuRev kembali ke Mainframe Endeavour.

Diagram berikut menunjukkan CI/CD pipa produksi yang menyebarkan artefak ke Server Perusahaan. Dalam contoh ini, CodeDeploy mengatur penyebaran artefak mainframe yang diuji ke Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Selain panduan arsitektur CI/CD pipeline, lihat posting AWS DevOps blog [Otomatiskan ribuan pengujian mainframe AWS dengan Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) untuk informasi lebih lanjut tentang pengujian aplikasi mainframe di dan. CodeBuild CodePipeline (Fokus Mikro sekarang adalah Perangkat Lunak Roket.) Lihat posting blog untuk praktik terbaik dan detail melakukan tes mainframe. AWS

## Alat
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS alat otomatisasi**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Acara Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

**Alat Perangkat Lunak Roket**
+ [Pengembang Perusahaan Roket untuk Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Server Uji Perusahaan Roket](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Server Perusahaan Roket](https://www.microfocus.com/documentation/enterprise-developer/es_60/) (penyebaran produksi)
+ [Perangkat Lunak Roket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [License Manager Software Enterprise Suite Rocket](https://www.microfocus.com/documentation/slm/)
+ [Perangkat Lunak Roket Verastream Host Integrator](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Perangkat Lunak Roket UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Alat-alat lainnya**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Kerangka-Mainframe-3270-Perpustakaan](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Epik
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Buat infrastruktur AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan server AccuRev SCM utama dengan menggunakan. CloudFormation |  | AWS CloudFormation | 
| Buat pengguna AccuRev Administrator. | Masuk ke AccuRev SCM Server, dan jalankan perintah CLI untuk membuat pengguna Administrator. | AccuRev Administrator Server SCM | 
| Buat AccuRev aliran. | Buat AccuRev aliran yang mewarisi dari aliran atas secara berurutan: Produksi, Integrasi Sistem, Aliran tim. | AccuRev Administrator SCM | 
| Buat akun AccuRev login pengembang. | Gunakan perintah AccuRev SCM CLI untuk AccuRev membuat akun login pengguna untuk pengembang mainframe. | AccuRev Administrator SCM | 

### Buat template EC2 peluncuran Enterprise Developer Amazon
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Terapkan template EC2 peluncuran Amazon dengan menggunakan CloudFormation. | Gunakan CloudFormation untuk menerapkan template EC2 peluncuran Amazon untuk instans Enterprise Developer. Template termasuk dokumen Automation Systems Manager untuk instance Pengembang Rocket Enterprise. | AWS CloudFormation | 
| Buat instance Enterprise Developer dari EC2 template Amazon. |  | Login Konsol AWS dan Keterampilan Pengembang Mainframe | 

### Buat gambar Docker alat Pengembang Perusahaan
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat gambar Docker alat Pengembang Perusahaan. | Gunakan perintah Docker dan alat Enterprise Developer Dockerfile untuk membuat image Docker. | Docker | 
| Buat repositori Docker di Amazon ECR. | Di konsol Amazon ECR, buat repositori untuk image Enterprise Developer Docker. | Amazon ECR | 
| Dorong gambar Docker alat Pengembang Perusahaan ke Amazon ECR. | Jalankan perintah push Docker untuk mendorong image alat Docker Enterprise Developer untuk menyimpannya di repositori Docker di Amazon ECR. | Docker | 

### Buat gambar Enterprise Test Server Docker
<a name="create-the-enterprise-test-server-docker-image"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat image Enterprise Test Server Docker. | Gunakan perintah Docker dan Enterprise Test Server Dockerfile untuk membuat image Docker. | Docker | 
| Buat repositori Docker di Amazon ECR. | Di konsol Amazon ECR, buat repositori Amazon ECR untuk image Enterprise Test Server Docker. | Amazon ECR | 
| Dorong image Enterprise Test Server Docker ke Amazon ECR. | Jalankan perintah push Docker untuk mendorong dan menyimpan image Enterprise Test Server Docker di Amazon ECR. | Docker | 

### Buat CI/CD pipeline aliran tim
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CodeCommit repositori. | Di CodeCommit konsol, buat repositori berbasis Git untuk infrastruktur dan kode. CloudFormation  | AWS CodeCommit | 
| Unggah CloudFormation template dan kode otomatisasi ke dalam CodeCommit repositori. | Jalankan perintah Git push untuk mengunggah CloudFormation template dan kode otomatisasi ke dalam repositori. | Git | 
| Terapkan CI/CD pipa aliran tim dengan menggunakan CloudFormation. | Gunakan CloudFormation template yang disiapkan untuk menerapkan CI/CD pipeline aliran tim. | AWS CloudFormation | 

### Buat CI/CD pipa integrasi sistem
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat gambar UFT Docker. | Gunakan perintah Docker dan UFT Dockerfile untuk membuat image Docker. | Docker | 
| Buat repositori Docker di Amazon ECR untuk gambar UFT. | Di konsol Amazon ECR, buat repositori Docker untuk gambar UFT. | Amazon ECR | 
| Dorong gambar UFT Docker ke Amazon ECR. | Jalankan perintah push Docker untuk mendorong dan menyimpan image Enterprise Test Server Docker di Amazon ECR. | Docker | 
| Buat gambar Verastream Docker. | Gunakan perintah Docker dan Verastream Dockerfile untuk membuat image Docker. | Docker | 
| Buat repositori Docker di Amazon ECR untuk gambar Verastream. | Di konsol Amazon ECR, buat repositori Docker untuk gambar Verastream. | Amazon ECR | 
| Menyebarkan CI/CD pipa integrasi sistem dengan menggunakan CloudFormation. | Gunakan CloudFormation template yang disiapkan untuk menyebarkan CI/CD pipeline integrasi sistem. | AWS CloudFormation | 

### Buat pipa penyebaran CI/CD produksi
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan Enterprise Server dengan menggunakan AWS Quick Start. | Untuk menggunakan Enterprise Server dengan menggunakan CloudFormation, luncurkan Enterprise Server pada AWS Quick Start. | AWS CloudFormation | 
| Menyebarkan pipa penyebaran CI/CD produksi. | Di CloudFormation konsol, gunakan CloudFormation template untuk menerapkan pipeline penerapan CI/CD produksi. | AWS CloudFormation | 

## Sumber daya terkait
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Referensi**
+ [AWS DevOps Blog - Otomatiskan ribuan tes mainframe AWS dengan Micro Focus Enterprise Suite (Micro](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) Focus sekarang adalah Rocket Software.)
+ [repositori py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [ GitHub Altran-PT-GDC/Robot-Framework-Mainframe-3270-repositori perpustakaan](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Selamat datang untuk berperilaku\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog Mitra APN - Tag: Fokus Mikro (Fokus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) Mikro sekarang adalah Perangkat Lunak Roket.)
+ [Meluncurkan instance dari template peluncuran](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Perangkat Lunak Roket UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Mulai Cepat**
+ [Server Perusahaan Roket di AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernisasi beban kerja pencetakan online mainframe di AWS dengan menggunakan Micro Focus Enterprise Server dan LRS VPSX/MFI
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy dan Kevin Yung, Amazon Web Services*

*Abraham Rondon, Fokus Mikro*

*Guy Tucker, Levi, Ray dan Shoup Inc*

## Ringkasan
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Pola ini menunjukkan kepada Anda cara memodernisasi beban kerja pencetakan online mainframe bisnis penting Anda di Amazon Web Services (AWS) Cloud dengan menggunakan Micro Focus Enterprise Server sebagai runtime untuk aplikasi mainframe modern dan VPSX/MFI LRS (Micro Focus Interface) sebagai server cetak. Pola ini didasarkan pada pendekatan modernisasi mainframe [replatform](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Dalam pendekatan ini, Anda memigrasikan aplikasi online mainframe Anda ke Amazon Elastic Compute Cloud (Amazon EC2) dan memigrasikan database mainframe Anda, seperti IBM for DB2 ) z/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS terintegrasi dengan AWS Managed Microsoft AD untuk autentikasi dan otorisasi alur kerja cetak. Dengan memodernisasi beban kerja pencetakan online Anda, Anda dapat mengurangi biaya infrastruktur TI, mengurangi utang teknis pemeliharaan sistem lama, menghapus silo data, meningkatkan kelincahan dan efisiensi dengan DevOps model, dan memanfaatkan sumber daya dan otomatisasi sesuai permintaan di AWS Cloud.

## Prasyarat dan batasan
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Beban kerja pencetakan online mainframe atau manajemen output
+ Pengetahuan dasar tentang cara membangun kembali dan mengirimkan aplikasi mainframe yang berjalan di Micro Focus Enterprise Server (Untuk informasi selengkapnya, lihat lembar data [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) dalam dokumentasi Micro Focus.)
+ Pengetahuan dasar tentang solusi dan konsep pencetakan cloud LRS (Untuk informasi lebih lanjut, lihat [Modernisasi Keluaran](https://www.lrsoutputmanagement.com/products/modernization-products) dalam dokumentasi LRS.)
+ Perangkat lunak dan lisensi Micro Focus Enterprise Server (Untuk informasi lebih lanjut, hubungi [penjualan Micro Focus](https://www.microfocus.com/en-us/contact/contactme).)
+ VPSX/MFI, LRS/Queue, and LRS/DISPerangkat lunak dan lisensi LRS (Untuk informasi lebih lanjut, hubungi penjualan [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**catatan**  
Untuk informasi selengkapnya tentang pertimbangan konfigurasi untuk beban kerja pencetakan online mainframe, lihat *Pertimbangan* di bagian *Informasi tambahan dari pola* ini.

**Versi produk**
+ [Micro Focus Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 8.0 atau yang lebih baru
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/modernization-products/) atau yang lebih baru

## Arsitektur
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Tumpukan teknologi sumber**
+ Sistem operasi — IBM z/OS
+ Bahasa pemrograman — Common Business Oriented Language (COBOL) dan Customer Information Control System (CICS) 
+ Database — IBM DB2 untuk Sistem Manajemen Informasi z/OS IBM (IMS) dan Metode Akses Penyimpanan Virtual (VSAM)
+ Keamanan — Fasilitas Kontrol Akses Sumber Daya (RACF), CA Top Secret untuk z/OS, dan Fasilitas Kontrol Akses 2 () ACF2
+ Manajemen pencetakan dan output - Produk z/OS pencetakan mainframe IBM (IBM Infoprint Server untuk z/OS, LRS, dan CA View)

**Tumpukan teknologi target**
+ Sistem operasi - Microsoft Windows Server berjalan di Amazon EC2
+ Hitung - Amazon EC2
+ Bahasa pemrograman — COBOL dan CICS
+ Basis Data - Amazon RDS
+ Keamanan — AWS Managed Microsoft AD
+ Manajemen pencetakan dan output — Solusi pencetakan LRS di AWS
+ Lingkungan runtime mainframe - Server Perusahaan Fokus Mikro

**Arsitektur sumber**

Diagram berikut menunjukkan arsitektur keadaan saat ini yang khas untuk beban kerja pencetakan online mainframe.

![\[Proses enam langkah untuk menghasilkan output yang dapat dilihat.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna melakukan transaksi bisnis pada sistem keterlibatan (SoE) yang dibangun di atas aplikasi IBM CICS yang ditulis dalam COBOL.

1. SoE memanggil layanan mainframe, yang mencatat data transaksi bisnis dalam database system-of-records (SoR) seperti IBM DB2 untuk z/OS.

1. SoR mempertahankan data bisnis dari BUMN.

1. Seorang pengguna memulai permintaan untuk menghasilkan output cetak dari CICS SoE, yang memulai aplikasi transaksi cetak untuk memproses permintaan cetak. 

1. Aplikasi transaksi cetak (seperti program CICS dan COBOL) mengekstrak data dari database, memformat data sesuai dengan kebutuhan bisnis, dan menghasilkan output bisnis (data cetak) seperti laporan penagihan, kartu identitas, atau laporan pinjaman. Kemudian, aplikasi mengirimkan permintaan cetak dengan menggunakan Virtual Telecommunications Access Method (VTAM). Server z/OS cetak (seperti IBM Infoprint Server) menggunakan NetSpool atau komponen VTAM serupa untuk mencegat permintaan cetak, dan kemudian membuat set data keluaran cetak pada spool JES dengan menggunakan parameter keluaran JES. Parameter keluaran JES menentukan informasi routing yang digunakan server cetak untuk mengirimkan output ke printer jaringan tertentu. Istilah *VTAM* mengacu pada z/OS Communications Server dan System Network Architecture (SNA) elemen layanan z/OS.

1. Komponen transmisi keluaran pencetakan mentransmisikan dataset cetak keluaran dari spool JES ke printer jarak jauh atau server cetak, seperti LRS (seperti yang ditunjukkan dalam pola ini), IBM Infoprint Server, atau tujuan email.

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk beban kerja pencetakan online mainframe yang diterapkan di AWS Cloud:

![\[Proses empat langkah dari memulai permintaan cetak hingga pemrosesan di AWS hingga pencetakan LRS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna memulai permintaan cetak dari antarmuka pengguna online (CICS) untuk membuat hasil cetak, seperti laporan penagihan, kartu ID, atau laporan pinjaman.

1. Aplikasi online mainframe ([direplatformed ke Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) menggunakan runtime Micro Focus Enterprise Server untuk mengekstrak data dari database aplikasi, menerapkan logika bisnis ke data, memformat data, dan kemudian mengirim data ke tujuan cetak dengan menggunakan [Micro Focus CICS Print Exit (DFHUPRNT](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html)). 

1. Database aplikasi (SoR yang berjalan di Amazon RDS) menyimpan data untuk output cetak.

1. Solusi VPSX/MFI pencetakan LRS digunakan di Amazon EC2, dan data operasionalnya disimpan di Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI menggunakan nama TCP/IP-based LRS/Queue transmission agent to collect print data through the Micro Focus CICS Print Exit API (DFHUPRNT) and deliver the data to a specified printer destination. The original TERMID (TERM) that’s used in the modernized CICS application is used as the VPSX/MFI Antrian. 

**catatan**  
Solusi target biasanya tidak memerlukan perubahan aplikasi untuk mengakomodasi bahasa pemformatan mainframe, seperti IBM Advanced Function Presentation (AFP) atau Xerox Line Condition Data Stream (LCDS). Untuk informasi selengkapnya tentang penggunaan Micro Focus untuk migrasi dan modernisasi aplikasi mainframe di AWS, lihat [Memberdayakan Beban Kerja Mainframe Perusahaan di AWS dengan Fokus Mikro dalam dokumentasi AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Arsitektur infrastruktur AWS**

Diagram berikut menunjukkan arsitektur infrastruktur AWS yang sangat tersedia dan aman untuk beban kerja pencetakan online mainframe:

![\[Dua Availability Zone dengan server Micro Focus Enterprise EC2 aktif, Amazon RDS, dan pencetakan LRS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


Diagram menunjukkan alur kerja berikut:

1. Aplikasi online mainframe (ditulis pada bahasa pemrograman seperti CICS atau COBOL) menggunakan logika bisnis inti untuk memproses dan menghasilkan hasil cetak, seperti laporan penagihan, kartu identitas, dan laporan pinjaman. Aplikasi online ini digunakan di Amazon EC2 di dua [Availability Zones (AZ) untuk ketersediaan](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) tinggi (HA) dan menggunakan Micro Focus CICS Print Exit untuk merutekan output cetak ke LRS VPSX/MFI untuk pencetakan pengguna akhir.

1. LRS VPSX/MFI menggunakan TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Micro Focus online Print Exit programming interface. Online Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the print file and dynamically build LRS/Queue perintah. 
**catatan**  
*Untuk informasi lebih lanjut tentang berbagai metode pemrograman aplikasi CICS untuk pencetakan dan bagaimana mereka didukung di server Micro Focus Enterprise dan LRS VPSX/MFI, lihat *Mencetak pengambilan data* di bagian Informasi tambahan dari pola ini.*

1. 
**catatan**  
[Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) menyediakan nama DNS untuk mengintegrasikan Micro Focus Enterprise Server dengan LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI dan mengarahkan lalu lintas ke target terdaftar yang sehat.

1. Server VPSX/MFI cetak LRS digunakan EC2 di Amazon di dua Availability Zone untuk HA dan menggunakan [Amazon EBS sebagai penyimpanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) data operasional. LRS VPSX/MFI mendukung mode layanan aktif-aktif dan aktif-pasif. Arsitektur ini menggunakan beberapa Availability Zone dalam pasangan aktif-pasif sebagai siaga aktif dan panas. Network Load Balancer melakukan pemeriksaan kesehatan pada instans LRS dan mengarahkan lalu lintas ke VPSX/MFI EC2 instans siaga panas di Availability Zone lain jika instans aktif dalam keadaan tidak sehat. Permintaan cetak disimpan dalam Antrian Job LRS secara lokal di setiap instance. EC2 Jika terjadi pemulihan, instance yang gagal harus dimulai ulang agar layanan LRS dapat melanjutkan pemrosesan permintaan cetak. 
**catatan**  
LRS juga VPSX/MFI dapat melakukan pemeriksaan kesehatan di tingkat armada printer. Untuk informasi selengkapnya, lihat *Pemeriksaan kesehatan armada printer* di bagian *Informasi tambahan* dari pola ini.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) terintegrasi dengan LRS/DIS untuk melakukan autentikasi dan otorisasi alur kerja cetak. Untuk informasi selengkapnya, lihat *Mencetak otentikasi dan otorisasi* di bagian *Informasi tambahan* dari pola ini.

1. LRS VPSX/MFI menggunakan Amazon EBS untuk penyimpanan blok. Anda dapat mencadangkan data Amazon EBS dari EC2 instans aktif ke Amazon S3 point-in-time sebagai snapshot dan mengembalikannya ke volume EBS siaga panas. [Untuk mengotomatiskan pembuatan, penyimpanan, dan penghapusan snapshot volume Amazon EBS, Anda dapat menggunakan [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) untuk mengatur frekuensi snapshot otomatis dan memulihkannya berdasarkan persyaratan RTO/RPO Anda.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Alat
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Layanan AWS**
+ [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 Volume EBS berfungsi seperti perangkat blok mentah yang tidak terformat. Anda dapat memasang volume ini sebagai perangkat di instans Anda.
+ [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 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 Directory Service untuk Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), juga dikenal sebagai AWS Managed Microsoft Active Directory, memungkinkan beban kerja sadar direktori dan sumber daya AWS Anda untuk menggunakan Active Directory terkelola di AWS.

**Alat-alat lainnya**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), dikembangkan bersama oleh LRS dan Micro Focus, menangkap output dari spool Micro Focus Enterprise Server JES dan andal mengirimkannya ke tujuan cetak tertentu.
+ LRS Directory Information Server (LRS/DIS) digunakan untuk otentikasi dan otorisasi selama alur kerja cetak.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, untuk mengumpulkan atau menangkap data cetak melalui antarmuka pemrograman Cetak Exit online Micro Focus.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) adalah lingkungan penyebaran aplikasi untuk aplikasi mainframe. Ini menyediakan lingkungan eksekusi untuk aplikasi mainframe yang dimigrasikan atau dibuat dengan menggunakan versi Micro Focus Enterprise Developer.

## Epik
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Siapkan Micro Focus Enterprise Server di Amazon EC2 dan gunakan aplikasi online mainframe
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Server Perusahaan Fokus Mikro dan gunakan aplikasi online demo. | Siapkan Server Perusahaan Fokus Mikro di Amazon EC2, lalu gunakan aplikasi Demo Akun Fokus Mikro (Demo ACCT) di Amazon EC2 dengan mengikuti petunjuk dari [Tutorial: Dukungan CICS](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) dalam dokumentasi Fokus Mikro.Aplikasi ACCT Demo adalah aplikasi mainframe online (CICS) yang membuat dan kemudian memulai output cetak. | Arsitek awan | 

### Siapkan server cetak LRS di Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan lisensi produk LRS untuk pencetakan. | Untuk mendapatkan lisensi produk LRS untuk LRSVPSX/MFI, LRS/Queue, and LRS/DIS, hubungi tim Manajemen [Output LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Anda harus memberikan nama host dari EC2 contoh di mana produk LRS akan diinstal. | Membangun memimpin | 
| Buat instance Amazon EC2 Windows untuk menginstal LRS VPSX/MFI. | Luncurkan instans Amazon EC2 Windows dengan mengikuti petunjuk dari [Langkah 1: Luncurkan instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) di EC2 dokumentasi Amazon. Instans Anda harus memenuhi persyaratan perangkat keras dan perangkat lunak berikut untuk LRS VPSX/LKM:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Persyaratan perangkat keras dan perangkat lunak sebelumnya ditujukan untuk armada printer kecil (sekitar 500-1000). Untuk mendapatkan persyaratan lengkap, konsultasikan dengan kontak LRS dan AWS Anda.Saat Anda membuat instance Windows Anda, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS VPSX/MFI pada EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS/antrian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Instal LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Buat grup target dan daftarkan LRS VPSX/MFI EC2 sebagai target. | Buat grup target dengan mengikuti petunjuk dari [Buat grup target untuk Network Load Balancer Anda dalam dokumentasi Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html).Saat Anda membuat grup target, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Buat Network Load Balancer. | Ikuti instruksi dari [Buat Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) dalam dokumentasi Elastic Load Balancing. Network Load Balancer Anda merutekan lalu lintas dari Micro Focus Enterprise Server ke LRS. VPSX/MFI EC2Saat Anda membuat Network Load Balancer, lakukan hal berikut pada halaman **Listeners** dan Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Integrasikan Micro Focus Enterprise Server dengan LRS VPSX/MFI dan LRS/Antrian
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan Server Perusahaan Fokus Mikro untuk LRS/Queue integrasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Jadikan CICS Print Exit (DFHUPRNT) tersedia untuk inisialisasi Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Validasi bahwa Micro Focus Enterprise Server telah mendeteksi CICS Print Exit (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Tentukan ID terminal printer CICS (TERMIDs) sebagai Server Perusahaan Fokus Mikro. | **Aktifkan pencetakan 3270 di Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Tentukan terminal printer CICS di Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Siapkan printer dan cetak pengguna di Micro Focus Enterprise Server dan LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat antrian cetak di LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Antrian cetak harus setara dengan Cetak yang TERMIDs dibuat di Micro Focus Enterprise Server. | Arsitek awan | 
| Buat pengguna cetak di LRS VPSX/LKM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Mengatur otentikasi cetak dan otorisasi
<a name="set-up-print-authentication-and-authorization"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat domain AWS Managed Microsoft AD dengan pengguna dan grup. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 
| Bergabunglah dengan LRS VPSX/MFI EC2 ke domain AWS Managed Microsoft AD. | Bergabunglah dengan LRS VPSX/MFI EC2 ke domain AWS Managed Microsoft AD Anda [secara otomatis](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (dokumentasi AWS Knowledge Center) atau [secara manual](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (dokumentasi AWS Directory Service). | Arsitek awan | 
| Konfigurasikan dan integrasikan LRS/DIS dengan AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arsitek awan | 

### Uji alur kerja cetak online
<a name="test-an-online-print-workflow"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memulai permintaan cetak online dari aplikasi Demo Micro Focus ACCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Pesan “Permintaan Cetak Terjadwal” muncul di bagian bawah layar. Ini menegaskan bahwa permintaan cetak online dihasilkan dari aplikasi Demo ACCT dan dikirim ke LRS VPS/MFI untuk pemrosesan cetak.  | Arsitek awan | 
| Periksa output cetak di LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Anda sekarang dapat melihat hasil cetak dari laporan akun dengan kolom untuk Nomor Akun, NAMA KELUARGA, PERTAMA, ALAMAT, TELEPON, No. Kartu yang Diterbitkan, Tanggal dikeluarkan, Jumlah, dan Saldo.Sebagai contoh, lihat lampiran **online\$1print\$1output** untuk pola ini. | Insinyur uji | 

## Sumber daya terkait
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisasi Output LRS](https://www.lrsoutputmanagement.com/products/modernization-products) (dokumentasi LRS)
+ [Konsep jaringan VTAM](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (dokumentasi IBM)
+ [Ringkasan tipe unit logis (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (dokumentasi IBM)
+ [ANSI dan kontrol kereta mesin](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (dokumentasi IBM)
+ [Memberdayakan Beban Kerja Mainframe Perusahaan di AWS dengan Fokus Mikro (AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) Partner Network Blog)
+ [Membangun PAC Server Perusahaan Fokus Mikro dengan Amazon EC2 Auto Scaling dan Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) (dokumentasi AWS Prescriptive Guidance)
+ [Aliran data Presentasi Fungsi Lanjutan (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (dokumentasi IBM)
+ [Aliran Data Terkondisi Jalur (LCD) (Dokumentasi Compart)](https://www.compart.com/en/lcds)

## Informasi tambahan
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Pertimbangan-pertimbangan**

Selama perjalanan modernisasi Anda, Anda dapat mempertimbangkan berbagai konfigurasi untuk proses online mainframe dan output yang dihasilkannya. Platform mainframe telah disesuaikan oleh setiap pelanggan dan vendor yang menggunakannya dengan persyaratan khusus yang secara langsung memengaruhi pencetakan. Misalnya, platform Anda saat ini dapat menggabungkan IBM Advanced Function Presentation (AFP) atau Xerox Line Condition Data Stream (LCDS) ke dalam alur kerja saat ini. Selain itu, [karakter kontrol carriage mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) dan [kata-kata perintah saluran](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) dapat memengaruhi tampilan halaman yang dicetak dan mungkin memerlukan penanganan khusus. Sebagai bagian dari proses perencanaan modernisasi, kami menyarankan Anda menilai dan memahami konfigurasi di lingkungan cetak spesifik Anda.

**Cetak pengambilan data**

Bagian ini merangkum metode pemrograman aplikasi CICS yang dapat Anda gunakan dalam lingkungan mainframe IBM untuk pencetakan. VPSX/MFI Komponen LRS menyediakan teknik untuk memungkinkan program aplikasi yang sama untuk membuat data dengan cara yang sama. Tabel berikut menjelaskan bagaimana setiap metode pemrograman aplikasi didukung dalam aplikasi CICS modern yang berjalan di AWS dan Micro Focus Enterprise Server dengan server cetak VPSX/MFI LRS.


| 
| 
| Metode | Deskripsi | Support untuk metode dalam lingkungan modern | 
| --- |--- |--- |
| EXEC CICS MENGIRIM TEKS.. atau EXEC CICS KIRIM PETA..  | Metode CICS dan VTAM ini bertanggung jawab untuk membuat dan mengirimkan aliran data cetak 3270/SCS ke LUTYPE0,, dan perangkat cetak. LUTYPE1 LUTYPE3  | Antarmuka program aplikasi (API) Micro Focus online Print Exit (DFHUPRNT) memungkinkan data cetak diproses VPSX/MFI ketika aliran data cetak 3270/SCS dibuat dengan menggunakan salah satu metode ini.  | 
| EXEC CICS MENGIRIM TEKS.. atau EXEC CICS KIRIM PETA.. (dengan perangkat lunak mainframe IBM pihak ketiga) | Metode CICS dan VTAM bertanggung jawab untuk membuat dan mengirimkan aliran data cetak 3270/SCS ke LUTYPE0,, dan perangkat cetak. LUTYPE1 LUTYPE3 Produk perangkat lunak pihak ketiga mencegat data cetak, mengonversi data menjadi data format cetak standar dengan karakter ASA/MCH kontrol, dan menempatkan data pada spool JES untuk diproses oleh sistem pencetakan berbasis mainframe yang menggunakan JES.  | API Micro Focus online Print Exit (DFHUPRNT) memungkinkan data cetak diproses VPSX/MFI ketika aliran data cetak 3270/SCS dibuat dengan menggunakan salah satu metode ini.  | 
| EXEC CICS SPOOLOPEN  | Metode ini digunakan oleh program aplikasi CICS untuk menulis data langsung ke spool JES. Data kemudian menjadi tersedia untuk diproses oleh sistem pencetakan berbasis mainframe yang menggunakan JES.  | Micro Focus Enterprise Server menggulung data ke spool Enterprise Server di mana ia dapat diproses oleh VPSX/MFI Batch Print Exit (LRSPRTE6) yang menggulung data ke VPSX.  | 
| DRS/API | Antarmuka program yang disediakan LRS digunakan untuk menulis data cetak ke JES.  | VPSX/MFI menyediakan antarmuka pengganti yang menggulung data cetak langsung ke VPSX.  | 

**Pemeriksaan kesehatan armada printer**

LRS VPSX/MFI (LRS LoadX) dapat melakukan pemeriksaan kesehatan deep dive, termasuk manajemen perangkat dan optimalisasi operasional. Manajemen perangkat dapat mendeteksi kegagalan pada perangkat printer dan merutekan permintaan cetak ke printer yang sehat. Untuk informasi selengkapnya tentang pemeriksaan kesehatan deep dive untuk armada printer, lihat dokumentasi LRS yang disertakan dengan lisensi produk Anda.

**Cetak otentikasi dan otorisasi**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISjuga dapat menerapkan kontrol keamanan cetak tingkat butiran dalam kasus penggunaan berikut:
+ Kelola siapa yang dapat menelusuri pekerjaan printer.
+ Kelola tingkat penelusuran pekerjaan pengguna lain.
+ Kelola tugas operasional. Misalnya, keamanan tingkat perintah seperti hold/release, purge, modify, copy, dan reroute. Keamanan dapat diatur oleh User-ID atau Grup (mirip dengan grup AD atau grup LDAP).

## Lampiran
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Pindahkan file mainframe langsung ke Amazon S3 menggunakan Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Ringkasan
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Sebagai bagian dari perjalanan modernisasi, Anda dapat menghadapi tantangan untuk mentransfer file antara server lokal dan Amazon Web Services (AWS) Cloud. Mentransfer data dari mainframe dapat menjadi tantangan yang signifikan karena mainframe biasanya tidak dapat mengakses penyimpanan data modern seperti Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS), atau Amazon Elastic File System (Amazon EFS).

Banyak pelanggan menggunakan sumber daya pementasan menengah, seperti server Linux, Unix, atau Windows lokal, untuk mentransfer file ke AWS Cloud. Anda dapat menghindari metode tidak langsung ini dengan menggunakan AWS Transfer Family dengan Secure Shell (SSH) File Transfer Protocol (SFTP) untuk mengunggah file mainframe langsung ke Amazon S3.

## Prasyarat dan batasan
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Virtual Private Cloud (VPC) dengan subnet yang dapat dijangkau oleh platform lama Anda
+ Endpoint Transfer Family untuk VPC Anda
+ File Metode Akses Penyimpanan Virtual Mainframe (VSAM) yang dikonversi ke file berurutan dengan [panjang tetap](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (dokumentasi IBM)

**Batasan**
+ SFTP mentransfer file dalam mode biner secara default, yang berarti bahwa file diunggah ke Amazon S3 dengan encoding EBCDIC dipertahankan. Jika file Anda tidak berisi data biner atau dikemas, maka Anda dapat menggunakan [subperintah **sftp** ascii](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (dokumentasi IBM) untuk mengonversi file Anda menjadi teks selama transfer.
+ Anda harus [membongkar file mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (AWS Prescriptive Guidance) yang berisi konten yang dikemas dan biner untuk menggunakan file-file ini di lingkungan target Anda.
+ Objek Amazon S3 dapat berkisar dalam ukuran dari minimal 0 byte hingga maksimum 5 TB. Untuk informasi selengkapnya tentang kemampuan Amazon S3, lihat Amazon [S3](https://aws.amazon.com/s3/faqs/?nc1=h_ls). FAQs

## Arsitektur
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Tumpukan teknologi sumber**
+ Bahasa kontrol pekerjaan (JCL)
+ z/OS Unix shell dan ISPF
+ SFTP
+ VSAM dan file datar

**Tumpukan teknologi target**
+ Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Arsitektur target**

Diagram berikut menunjukkan arsitektur referensi untuk menggunakan Transfer Family dengan SFTP untuk mengunggah file mainframe langsung ke bucket S3.

![\[Menggunakan Transfer Family dengan SFTP untuk mengunggah file mainframe langsung ke bucket S3\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


Diagram menunjukkan alur kerja berikut:

1. Anda menggunakan pekerjaan JCL untuk mentransfer file mainframe Anda dari mainframe lama ke AWS Cloud melalui Direct Connect.

1. Direct Connect memungkinkan lalu lintas jaringan Anda tetap berada di jaringan global AWS dan melewati internet publik. Direct Connect juga meningkatkan kecepatan jaringan, mulai dari 50 Mbps dan skala hingga 100 Gbps.

1. Titik akhir VPC memungkinkan koneksi antara sumber daya VPC Anda dan layanan yang didukung tanpa menggunakan internet publik. Akses ke Transfer Family dan Amazon S3 mencapai ketersediaan tinggi dengan berlangsung melalui antarmuka jaringan elastis yang terletak di dua subnet pribadi dan Availability Zone.

1. Transfer Family mengautentikasi pengguna dan menggunakan SFTP untuk menerima file Anda dari lingkungan lama dan memindahkannya ke bucket S3.

**Otomatisasi dan skala**

Setelah layanan Transfer Family tersedia, Anda dapat mentransfer file dalam jumlah tak terbatas dari mainframe ke Amazon S3 dengan menggunakan pekerjaan JCL sebagai klien SFTP. Anda juga dapat mengotomatiskan transfer file dengan menggunakan penjadwal pekerjaan batch mainframe untuk menjalankan pekerjaan SFTP ketika Anda siap untuk mentransfer file mainframe.

## Alat
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ [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.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) memungkinkan Anda menskalakan transfer business-to-business file berulang dengan aman ke Amazon S3 dan Amazon EFS dengan menggunakan protokol SFTP, FTPS, dan FTP.

## Epik
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Buat bucket S3 dan kebijakan akses
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | [Buat bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) untuk meng-host file yang Anda transfer dari lingkungan lama Anda. | AWS Umum | 
| Buat peran dan kebijakan IAM. | Transfer Family menggunakan peran AWS Identity and Access Management (IAM) untuk memberikan akses ke bucket S3 yang Anda buat sebelumnya.[Buat peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) yang mencakup kebijakan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) berikut:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "UserFolderListing",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<your-bucket-name>"<br />            ]<br />        },<br />        {<br />            "Sid": "HomeDirObjectAccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": "arn:aws:s3:::<your-bucket-name>/*"<br />        }<br />    ]<br />}</pre>Anda harus memilih kasus penggunaan Transfer saat Anda membuat peran IAM. | AWS Umum | 

### Tentukan layanan transfer
<a name="define-the-transfer-service"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Untuk informasi selengkapnya tentang cara menyiapkan server SFTP, lihat [Membuat server berkemampuan SFTP (Panduan Pengguna AWS Transfer](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) Family). | AWS Umum | 
| Dapatkan alamat server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS Umum | 
| Buat key pair klien SFTP. | Buat key pair SSH untuk [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) atau [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS Umum, SSH | 
| Buat pengguna SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS Umum | 

### Transfer file mainframe
<a name="transfer-the-mainframe-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim kunci pribadi SSH ke mainframe. | Gunakan SFTP atau SCP untuk mengirim kunci pribadi SSH ke lingkungan lama.Contoh SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Contoh SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Selanjutnya, simpan kunci SSH dalam sistem file z/OS Unix di bawah nama pengguna yang nantinya akan menjalankan tugas batch transfer file (misalnya,`/u/CONTROLM`). Untuk informasi selengkapnya tentang z/OS Unix shell, lihat [Pengantar z/OS shell](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (dokumentasi IBM). | Mainframe, shell z/OS Unix, FTP, SCP | 
| Buat klien JCL SFTP. | Karena mainframe tidak memiliki klien SFTP asli, Anda harus menggunakan utilitas BPXBATCH untuk menjalankan klien SFTP dari shell Unix. z/OS Di editor ISPF, buat klien JCL SFTP. Contoh:<pre>//JOBNAM JOB ...<br />//**********************************************************************<br />//SFTP EXEC PGM=BPXBATCH,REGION=0M <br />//STDPARM DD * <br />SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; <br />echo 'put filename.txt' > uplcmd; <br />sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; <br />//SYSPRINT DD SYSOUT=* <br />//STDOUT DD SYSOUT=* <br />//STDENV DD * <br />//STDERR DD SYSOUT=*</pre>Untuk informasi selengkapnya tentang cara menjalankan perintah di shell z/OS Unix, lihat [Utilitas BPXBATCH](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) (dokumentasi IBM). Untuk informasi selengkapnya tentang cara membuat atau mengedit pekerjaan JCL di z/OS, lihat [Apa](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) itu ISPF? dan [Editor ISPF (dokumentasi](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) IBM). | JCL, Mainframe, z/OS cangkang Unix | 
| Jalankan klien JCL SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Untuk informasi selengkapnya tentang cara memeriksa aktivitas pekerjaan batch, lihat [Panduan Pengguna z/OS SDSF (dokumentasi IBM](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide)). | Mainframe, JCL, ISPF | 
| Validasi transfer file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS Umum | 
| Otomatiskan klien JCL SFTP. | Gunakan penjadwal pekerjaan untuk secara otomatis memicu klien JCL SFTP.Anda dapat menggunakan penjadwal pekerjaan mainframe, seperti [BMC Control-M](https://www.bmcsoftware.pt/it-solutions/control-m.html) atau [CA Workload Automation, untuk mengotomatiskan](https://www.broadcom.com/products/mainframe/workload-automation/ca7) pekerjaan batch untuk transfer file berdasarkan waktu dan dependensi pekerjaan batch lainnya. | Job scheduler | 

## Sumber daya terkait
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Cara kerja AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Optimalkan kinerja aplikasi modern AWS Blu Age Anda
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy, dan Himanshu Sah, Amazon Web Services*

## Ringkasan
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Aplikasi mainframe yang dimodernisasi dengan AWS Blu Age memerlukan pengujian fungsional dan kesetaraan kinerja sebelum diterapkan ke produksi. Dalam pengujian kinerja, aplikasi modern dapat bekerja lebih lambat daripada sistem lama, terutama dalam pekerjaan batch yang kompleks. Perbedaan ini ada karena aplikasi mainframe bersifat monolitik, sedangkan aplikasi modern menggunakan arsitektur multitier. Pola ini menyajikan teknik pengoptimalan untuk mengatasi kesenjangan kinerja ini untuk aplikasi yang dimodernisasi dengan menggunakan [refactoring otomatis](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) dengan Blu Age. AWS 

Pola ini menggunakan kerangka modernisasi AWS Blu Age dengan Java asli dan kemampuan penyetelan basis data untuk mengidentifikasi dan mengatasi kemacetan kinerja. Pola ini menjelaskan bagaimana Anda dapat menggunakan profil dan pemantauan untuk mengidentifikasi masalah kinerja dengan metrik seperti waktu eksekusi SQL, pemanfaatan memori, dan pola. I/O Kemudian menjelaskan bagaimana Anda dapat menerapkan pengoptimalan yang ditargetkan, termasuk restrukturisasi kueri database, caching, dan penyempurnaan logika bisnis.

Peningkatan waktu pemrosesan batch dan pemanfaatan sumber daya sistem membantu Anda mencocokkan tingkat kinerja mainframe dalam sistem modern Anda. Pendekatan ini mempertahankan kesetaraan fungsional selama transisi ke arsitektur berbasis cloud modern.

Untuk menggunakan pola ini, atur sistem Anda dan identifikasi hotspot kinerja dengan mengikuti instruksi di bagian [Epics](#optimize-performance-aws-blu-age-modernized-application-epics), dan terapkan teknik pengoptimalan yang dibahas secara rinci di bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture).

## Prasyarat dan batasan
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Prasyarat**
+ Aplikasi modern AWS Blu Age
+ [JProfiler Lisensi](https://www.ej-technologies.com/store/jprofiler)
+ Hak istimewa administratif untuk menginstal klien database dan alat profil
+ AWS Sertifikasi Blu Age [Level 3](https://bluinsights.aws/certification/)
+ Pemahaman tingkat menengah tentang kerangka AWS Blu Age, struktur kode yang dihasilkan, dan pemrograman Java

**Batasan**

Kemampuan dan fitur pengoptimalan berikut berada di luar cakupan pola ini:
+ Optimalisasi latensi jaringan antara tingkatan aplikasi
+ Pengoptimalan tingkat infrastruktur melalui jenis instans Amazon Elastic Compute Cloud ( EC2Amazon) dan pengoptimalan penyimpanan
+ Pengujian beban pengguna bersamaan dan pengujian stres

**Versi produk**
+ JProfiler versi 13.0 atau yang lebih baru (kami sarankan versi terbaru)
+ pgAdmin versi 8.14 atau yang lebih baru

## Arsitektur
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Pola ini mengatur lingkungan pembuatan profil untuk aplikasi AWS Blu Age dengan menggunakan alat seperti dan JProfiler pgAdmin. Ini mendukung optimasi melalui DAOManager dan SQLExecution Builder yang APIs disediakan oleh AWS Blu Age.

Sisa bagian ini memberikan informasi terperinci dan contoh untuk mengidentifikasi hotspot kinerja dan strategi pengoptimalan untuk aplikasi modern Anda. Langkah-langkah di bagian [Epik](#optimize-performance-aws-blu-age-modernized-application-epics) merujuk kembali ke informasi ini untuk panduan lebih lanjut.

**Mengidentifikasi hotspot kinerja dalam aplikasi mainframe modern**

Dalam aplikasi mainframe modern, *hotspot kinerja* adalah area spesifik dalam kode yang menyebabkan perlambatan atau inefisiensi yang signifikan. Hotspot ini sering disebabkan oleh perbedaan arsitektur antara mainframe dan aplikasi modern. Untuk mengidentifikasi kemacetan kinerja ini dan mengoptimalkan kinerja aplikasi modern Anda, Anda dapat menggunakan tiga teknik: SQL logging, rencana kueri, dan analisis. `EXPLAIN` JProfiler 

*Teknik identifikasi hotspot: pencatatan SQL*

Aplikasi Java modern, termasuk yang telah dimodernisasi dengan menggunakan AWS Blu Age, memiliki kemampuan bawaan untuk mencatat kueri SQL. Anda dapat mengaktifkan logger tertentu dalam proyek AWS Blu Age untuk melacak dan menganalisis pernyataan SQL yang dijalankan oleh aplikasi Anda. Teknik ini sangat berguna untuk mengidentifikasi pola akses database yang tidak efisien, seperti permintaan individu yang berlebihan atau panggilan database yang tidak terstruktur dengan baik, yang dapat dioptimalkan melalui batching atau penyempurnaan kueri.

Untuk mengimplementasikan logging SQL di aplikasi modern AWS Blu Age Anda, atur level log ke untuk pernyataan SQL dalam `application.properties` file `DEBUG` untuk menangkap detail eksekusi kueri:

```
level.org.springframework.beans.factory.support.DefaultListableBeanFactory : WARN
level.com.netfective.bluage.gapwalk.runtime.sort.internal: WARN
level.org.springframework.jdbc.core.StatementCreatorUtils: DEBUG
level.com.netfective.bluage.gapwalk.rt.blu4iv.dao: DEBUG
level.com.fiserv.signature: DEBUG
level.com.netfective.bluage.gapwalk.database.support.central: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.configuration.DatabaseConfiguration: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.DatabaseInteractionLoggerUtils: DEBUG
level.com.netfective.bluage.gapwalk.database.support.AbstractDatabaseSupport: DEBUG
level.com.netfective.bluage.gapwalk.rt: DEBUG
```

Pantau kueri frekuensi tinggi dan berkinerja lambat dengan menggunakan data yang dicatat untuk mengidentifikasi target pengoptimalan. Fokus pada kueri dalam proses batch karena biasanya memiliki dampak kinerja tertinggi.

*Teknik identifikasi hotspot: Kueri JELASKAN rencana*

Metode ini menggunakan kemampuan perencanaan kueri sistem manajemen database relasional. Anda dapat menggunakan perintah seperti `EXPLAIN` di PostgreSQL atau MySQL, atau di Oracle`EXPLAIN PLAN`, untuk memeriksa bagaimana database Anda bermaksud menjalankan kueri yang diberikan. Output dari perintah ini memberikan wawasan berharga ke dalam strategi eksekusi kueri, termasuk apakah indeks akan digunakan atau pemindaian tabel lengkap akan dilakukan. Informasi ini sangat penting untuk mengoptimalkan kinerja kueri, terutama dalam kasus di mana pengindeksan yang tepat dapat secara signifikan mengurangi waktu eksekusi.

Ekstrak kueri SQL yang paling berulang dari log aplikasi dan analisis jalur eksekusi kueri berkinerja lambat dengan menggunakan `EXPLAIN` perintah yang khusus untuk database Anda. Berikut adalah contoh untuk database PostgreSQL.

Kueri:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

`EXPLAIN`perintah:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Output:

```
Bitmap Heap Scan on tenk1 (cost=5.06..224.98 rows=100 width=244) 
Recheck Cond: (unique1 < 100) 
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=100 width=0)
Index Cond: (unique1 < 100)
```

Anda dapat menafsirkan `EXPLAIN` output sebagai berikut:
+ Baca `EXPLAIN` rencana dari operasi terdalam ke terluar (bawah ke atas).
+ Carilah istilah-istilah kunci. Misalnya, `Seq Scan` menunjukkan pemindaian tabel lengkap dan `Index Scan` menunjukkan penggunaan indeks.
+ Periksa nilai biaya: Angka pertama adalah biaya awal, dan angka kedua adalah total biaya.
+ Lihat `rows` nilai untuk perkiraan jumlah baris output.

Dalam contoh ini, mesin kueri menggunakan pemindaian indeks untuk menemukan baris yang cocok, dan kemudian hanya mengambil baris tersebut (`Bitmap Heap Scan`). Ini lebih efisien daripada memindai seluruh tabel, meskipun biaya akses baris individu lebih tinggi.

Operasi pemindaian tabel dalam output `EXPLAIN` rencana menunjukkan indeks yang hilang. Optimalisasi membutuhkan pembuatan indeks yang sesuai.

*Teknik identifikasi hotspot: analisis JProfiler *

JProfiler adalah alat profil Java komprehensif yang membantu Anda mengatasi kemacetan kinerja dengan mengidentifikasi panggilan database yang lambat dan panggilan intensif CPU. Alat ini sangat efektif dalam mengidentifikasi kueri SQL yang lambat dan penggunaan memori yang tidak efisien.

Contoh analisis untuk kueri:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

Tampilan JProfiler Hot Spots memberikan informasi berikut:
+ Kolom **waktu**
  + Menunjukkan total durasi eksekusi (misalnya, 329 detik)
  + Menampilkan persentase total waktu aplikasi (misalnya, 58,7%)
  + Membantu mengidentifikasi operasi yang paling memakan waktu
+ Kolom **Waktu Rata-rata**
  + Menunjukkan durasi per eksekusi (misalnya, 2.692 mikrodetik)
  + Menunjukkan kinerja operasi individu
  + Membantu mendeteksi operasi individu yang lambat
+ Kolom **acara**
  + Menunjukkan jumlah eksekusi (misalnya, 122,387 kali)
  + Menunjukkan frekuensi operasi
  + Membantu mengidentifikasi metode yang sering disebut

Untuk hasil contoh:
+ Frekuensi tinggi: 122.387 eksekusi menunjukkan potensi pengoptimalan
+ Masalah kinerja: 2.692 mikrodetik untuk waktu rata-rata menunjukkan inefisiensi
+ Dampak kritis: 58,7% dari total waktu menunjukkan kemacetan utama

JProfiler dapat menganalisis perilaku runtime aplikasi Anda untuk mengungkapkan hotspot yang mungkin tidak terlihat melalui analisis kode statis atau pencatatan SQL. Metrik ini membantu Anda mengidentifikasi operasi yang memerlukan pengoptimalan dan menentukan strategi pengoptimalan yang paling efektif. Untuk informasi selengkapnya tentang JProfiler fitur, lihat [JProfiler dokumentasi](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Bila Anda menggunakan ketiga teknik ini (SQL logging, query `EXPLAIN` plan, dan JProfiler) dalam kombinasi, Anda bisa mendapatkan tampilan holistik dari karakteristik kinerja aplikasi Anda. Dengan mengidentifikasi dan menangani hotspot kinerja yang paling penting, Anda dapat menjembatani kesenjangan kinerja antara aplikasi mainframe asli Anda dan sistem berbasis cloud modern Anda.

Setelah Anda mengidentifikasi hotspot kinerja aplikasi Anda, Anda dapat menerapkan strategi pengoptimalan, yang dijelaskan di bagian berikutnya.

**Strategi optimasi untuk modernisasi mainframe**

Bagian ini menguraikan strategi utama untuk mengoptimalkan aplikasi yang telah dimodernisasi dari sistem mainframe. Ini berfokus pada tiga strategi: menggunakan yang ada APIs, menerapkan caching yang efektif, dan mengoptimalkan logika bisnis.

*Strategi optimasi: Menggunakan yang ada APIs*

AWS Blu Age menyediakan beberapa antarmuka DAO yang kuat APIs yang dapat Anda gunakan untuk mengoptimalkan kinerja. Dua antarmuka utama — DAOManager dan SQLExecution Builder — menawarkan kemampuan untuk meningkatkan kinerja aplikasi.

**DAOManager**

DAOManager berfungsi sebagai antarmuka utama untuk operasi database dalam aplikasi modern. Ini menawarkan beberapa metode untuk meningkatkan operasi database dan meningkatkan kinerja aplikasi, terutama untuk membuat, membaca, memperbarui, dan menghapus (CRUD) operasi langsung dan pemrosesan batch.
+ **Gunakan SetMaxResults.** Di DAOManager API, Anda dapat menggunakan **SetMaxResults**metode ini untuk menentukan jumlah maksimum catatan yang akan diambil dalam satu operasi database. Secara default, hanya DAOManager mengambil 10 catatan sekaligus, yang dapat menyebabkan beberapa panggilan database saat memproses kumpulan data besar. Gunakan pengoptimalan ini ketika aplikasi Anda perlu memproses sejumlah besar catatan dan saat ini membuat beberapa panggilan database untuk mengambilnya. Ini sangat berguna dalam skenario pemrosesan batch di mana Anda melakukan iterasi melalui kumpulan data besar. Dalam contoh berikut, kode di sebelah kiri (sebelum optimasi) menggunakan nilai pengambilan data default dari 10 catatan. Kode di sebelah kanan (setelah optimasi) ditetapkan **setMaxResults**untuk mengambil 100.000 catatan sekaligus.  
![\[Contoh penggunaan SetMaxResults untuk menghindari beberapa panggilan database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**catatan**  
Pilih ukuran batch yang lebih besar dengan hati-hati dan periksa ukuran objek, karena pengoptimalan ini meningkatkan jejak memori.
+ **Ganti SetOnGreatorOrEqual dengan SetOnEqual.** Optimasi ini melibatkan perubahan metode yang Anda gunakan untuk mengatur kondisi untuk mengambil catatan. **SetOnGreatorOrEqual**Metode ini mengambil catatan yang lebih besar dari atau sama dengan nilai yang ditentukan, sedangkan hanya **SetOnEqual**mengambil catatan yang sama persis dengan nilai yang ditentukan.

  Gunakan **SetOnEqual**seperti yang diilustrasikan dalam contoh kode berikut, ketika Anda tahu bahwa Anda memerlukan pencocokan yang tepat dan saat ini Anda menggunakan **SetOnGreatorOrEqual**metode diikuti oleh **readNextEqual()**. Optimalisasi ini mengurangi pengambilan data yang tidak perlu.  
![\[Contoh penggunaan SetOnEqual untuk mengambil catatan berdasarkan kecocokan persis.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Gunakan operasi batch write dan update.** Anda dapat menggunakan operasi batch untuk mengelompokkan beberapa operasi tulis atau pembaruan ke dalam satu transaksi database. Ini mengurangi jumlah panggilan database dan secara signifikan dapat meningkatkan kinerja untuk operasi yang melibatkan beberapa catatan.

  Dalam contoh berikut, kode di sebelah kiri melakukan operasi tulis dalam satu lingkaran, yang memperlambat kinerja aplikasi. Anda dapat mengoptimalkan kode ini dengan menggunakan operasi penulisan batch: Selama setiap iterasi `WHILE` loop, Anda menambahkan catatan ke batch hingga ukuran batch mencapai ukuran 100 yang telah ditentukan sebelumnya. Anda kemudian dapat menyiram batch ketika mencapai ukuran batch yang telah ditentukan, dan kemudian flush semua catatan yang tersisa ke database. Ini sangat berguna dalam skenario di mana Anda memproses kumpulan data besar yang memerlukan pembaruan.  
![\[Contoh pengelompokan beberapa operasi ke dalam satu transaksi database.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Tambahkan indeks.** Menambahkan indeks adalah optimasi tingkat database yang dapat secara signifikan meningkatkan kinerja kueri. Indeks memungkinkan database untuk dengan cepat menemukan baris dengan nilai kolom tertentu tanpa memindai seluruh tabel. Gunakan pengindeksan pada kolom yang sering digunakan dalam `WHERE` klausa, `JOIN` kondisi, atau pernyataan. `ORDER BY` Ini sangat penting untuk tabel besar atau ketika pengambilan data cepat sangat penting.

**SQLExecutionPembangun**

SQLExecutionBuilder adalah API fleksibel yang dapat Anda gunakan untuk mengendalikan kueri SQL yang akan dieksekusi, mengambil kolom tertentu saja, `INSERT` dengan menggunakan`SELECT`, dan menggunakan nama tabel dinamis. Dalam contoh berikut, SQLExecutor Builder menggunakan kueri kustom yang Anda tentukan. 

![\[Contoh menggunakan SQLExecutor Builder dengan kueri kustom.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Memilih antara DAOManager dan SQLExecution Builder**

Pilihan antara ini APIs tergantung pada kasus penggunaan spesifik Anda:
+ Gunakan DAOManager saat Anda ingin AWS Blu Age Runtime untuk menghasilkan kueri SQL alih-alih menulisnya sendiri.
+ Pilih SQLExecution Builder saat Anda perlu menulis kueri SQL untuk memanfaatkan fitur khusus database atau menulis kueri SQL yang optimal.

*Strategi pengoptimalan: Caching*

Dalam aplikasi modern, menerapkan strategi caching yang efektif dapat secara signifikan mengurangi panggilan database dan meningkatkan waktu respons. Ini membantu menjembatani kesenjangan kinerja antara mainframe dan lingkungan cloud.

Dalam aplikasi AWS Blu Age, implementasi caching sederhana menggunakan struktur data internal seperti peta hash atau daftar array, sehingga Anda tidak perlu menyiapkan solusi caching eksternal yang memerlukan biaya dan restrukturisasi kode. Pendekatan ini sangat efektif untuk data yang sering diakses tetapi jarang berubah. Saat Anda menerapkan caching, pertimbangkan batasan memori dan pola pembaruan untuk memastikan bahwa data yang di-cache tetap konsisten dan memberikan manfaat kinerja aktual.

Kunci keberhasilan caching adalah mengidentifikasi data yang tepat untuk cache. Dalam contoh berikut, kode di sebelah kiri selalu membaca data dari tabel, sedangkan kode di sebelah kanan membaca data dari tabel ketika peta hash lokal tidak memiliki nilai untuk kunci yang diberikan. `cacheMap`adalah objek peta hash yang dibuat dalam konteks program dan dihapus dalam metode pembersihan konteks program.

Caching dengan DAOManager:

![\[Contoh optimasi caching dengan. DAOManager\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Caching dengan SQLExecution Builder:

![\[Contoh pengoptimalan caching dengan Builder. SQLExecution\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Strategi optimasi: Optimalisasi logika bisnis*

Optimalisasi logika bisnis berfokus pada restrukturisasi kode yang dihasilkan secara otomatis dari AWS Blu Age agar lebih selaras dengan kemampuan arsitektur modern. Ini menjadi perlu ketika kode yang dihasilkan mempertahankan struktur logika yang sama dengan kode mainframe lama, yang mungkin tidak optimal untuk sistem modern. Tujuannya adalah untuk meningkatkan kinerja sambil mempertahankan kesetaraan fungsional dengan aplikasi asli.

Pendekatan pengoptimalan ini melampaui tweak API sederhana dan strategi caching. Ini melibatkan perubahan bagaimana aplikasi memproses data dan berinteraksi dengan database. Pengoptimalan umum termasuk menghindari operasi baca yang tidak perlu untuk pembaruan sederhana, menghapus panggilan database yang berlebihan, dan merestrukturisasi pola akses data agar lebih selaras dengan arsitektur aplikasi modern. Berikut adalah beberapa contoh:
+ **Memperbarui data secara langsung di database.**Merestrukturisasi logika bisnis Anda dengan menggunakan pembaruan SQL langsung alih-alih beberapa DAOManager operasi dengan loop. Misalnya, kode berikut (sisi kiri) membuat beberapa panggilan database dan menggunakan memori yang berlebihan. Secara khusus, ia menggunakan beberapa operasi baca dan tulis database dalam loop, pembaruan individual alih-alih pemrosesan batch, dan pembuatan objek yang tidak perlu untuk setiap iterasi.

  Kode dioptimalkan berikut (sisi kanan) menggunakan operasi pembaruan SQL Langsung tunggal. Secara khusus, ia menggunakan panggilan database tunggal alih-alih beberapa panggilan dan tidak memerlukan loop karena semua pembaruan ditangani dalam satu pernyataan. Optimalisasi ini memberikan kinerja dan pemanfaatan sumber daya yang lebih baik, dan mengurangi kompleksitas. Ini mencegah injeksi SQL, menyediakan caching rencana kueri yang lebih baik, dan membantu meningkatkan keamanan.  
![\[Restrukturisasi kode dengan menggunakan pembaruan SQL langsung alih-alih DAOManager operasi dengan loop.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**catatan**  
Selalu gunakan kueri berparameter untuk mencegah injeksi SQL dan memastikan manajemen transaksi yang tepat.
+ **Mengurangi panggilan database yang berlebihan.** Panggilan database redundan dapat secara signifikan mempengaruhi kinerja aplikasi, terutama ketika mereka terjadi dalam loop. Teknik optimasi yang sederhana namun efektif adalah menghindari pengulangan kueri database yang sama beberapa kali. Perbandingan kode berikut menunjukkan bagaimana memindahkan panggilan `retrieve()` database di luar loop mencegah eksekusi berlebihan dari kueri identik, yang meningkatkan efisiensi.  
![\[alt text not found\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Mengurangi panggilan database dengan menggunakan `JOIN` **klausa** SQL**. Implementasikan SQLExecution Builder untuk meminimalkan panggilan ke database. SQLExecutionBuilder memberikan kontrol lebih besar atas pembuatan SQL dan sangat berguna untuk kueri kompleks yang DAOManager tidak dapat ditangani secara efisien. Misalnya, kode berikut menggunakan beberapa DAOManager panggilan:

  ```
  List<Employee> employees = daoManager.readAll();
  for(Employee emp : employees) {
      Department dept = deptManager.readById(emp.getDeptId());  // Additional call for each employee
      Project proj = projManager.readById(emp.getProjId());     // Another call for each employee
      processEmployeeData(emp, dept, proj);
  }
  ```

  Kode yang dioptimalkan menggunakan satu panggilan database di SQLExecution Builder:

  ```
  SQLExecutionBuilder builder = new SQLExecutionBuilder();
  builder.append("SELECT e.*, d.name as dept_name, p.name as proj_name");
  builder.append("FROM employee e");
  builder.append("JOIN department d ON e.dept_id = d.id");
  builder.append("JOIN project p ON e.proj_id = p.id");
  builder.append("WHERE e.status = ?", "ACTIVE");
  
  List<Map<String, Object>> results = builder.execute();  // Single database call
  for(Map<String, Object> result : results) {
      processComplexData(result);
  }
  ```

*Menggunakan strategi optimasi bersama*

Ketiga strategi ini bekerja secara sinergis: APIs menyediakan alat untuk akses data yang efisien, caching mengurangi kebutuhan untuk pengambilan data berulang, dan optimasi logika bisnis memastikan bahwa ini APIs digunakan dengan cara yang paling efektif. Pemantauan dan penyesuaian reguler dari pengoptimalan ini memastikan peningkatan kinerja berkelanjutan sambil mempertahankan keandalan dan fungsionalitas aplikasi yang dimodernisasi. Kunci sukses terletak pada pemahaman kapan dan bagaimana menerapkan setiap strategi berdasarkan karakteristik aplikasi dan tujuan kinerja Anda.

## Alat
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)adalah alat profil Java yang dirancang untuk pengembang dan insinyur kinerja. Ini menganalisis aplikasi Java dan membantu mengidentifikasi kemacetan kinerja, kebocoran memori, dan masalah threading. JProfiler menawarkan CPU, memori, dan thread profiling serta database dan Java virtual machine (JVM) monitoring untuk memberikan wawasan tentang perilaku aplikasi.
**catatan**  
Sebagai alternatif JProfiler, Anda dapat menggunakan [Java VisualVM](https://visualvm.github.io/). Ini adalah alat profil dan pemantauan kinerja open source gratis untuk aplikasi Java yang menawarkan pemantauan real-time penggunaan CPU, konsumsi memori, manajemen thread, dan statistik pengumpulan sampah. Karena Java VisualVM adalah alat JDK bawaan, ini lebih hemat biaya daripada untuk kebutuhan profil dasar. JProfiler 
+ [pgAdmin](https://www.pgadmin.org/) adalah alat administrasi dan pengembangan open source untuk PostgreSQL. Ini menyediakan antarmuka grafis yang membantu Anda membuat, memelihara, dan menggunakan objek database. Anda dapat menggunakan pgAdmin untuk melakukan berbagai tugas, mulai dari menulis kueri SQL sederhana hingga mengembangkan basis data yang kompleks. Fitur-fiturnya termasuk sintaks yang menyoroti editor SQL, editor kode sisi server, agen penjadwalan untuk SQL, shell, dan tugas batch, dan dukungan untuk semua fitur PostgreSQL untuk pengguna PostgreSQL pemula dan berpengalaman.

## Praktik terbaik
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Mengidentifikasi hotspot kinerja:
+ Dokumentasikan metrik kinerja dasar sebelum Anda memulai pengoptimalan.
+ Tetapkan target peningkatan kinerja yang jelas berdasarkan persyaratan bisnis.
+ Saat melakukan benchmarking, nonaktifkan logging verbose, karena dapat memengaruhi kinerja.
+ Siapkan rangkaian uji kinerja dan jalankan secara berkala.
+ Gunakan pgAdmin versi terbaru. (Versi lama tidak mendukung paket `EXPLAIN` kueri.)
+ Untuk benchmarking, lepaskan JProfiler setelah pengoptimalan Anda selesai karena menambah latensi.
+ Untuk benchmarking, pastikan untuk menjalankan server dalam mode mulai alih-alih mode debug, karena mode debug menambah latensi.

Strategi optimasi:
+ Konfigurasikan **SetMaxResults**nilai dalam `application.yaml` file, untuk menentukan batch berukuran tepat sesuai dengan spesifikasi sistem Anda.
+ Konfigurasikan **SetMaxResults**nilai berdasarkan volume data dan kendala memori.
+ Ubah **SetOnGreatorOrEqual**menjadi **SetOnEqual**hanya ketika panggilan berikutnya`.readNextEqual()`.
+ Dalam operasi penulisan atau pembaruan batch, tangani batch terakhir secara terpisah, karena mungkin lebih kecil dari ukuran batch yang dikonfigurasi dan dapat dilewatkan oleh operasi tulis atau pembaruan.

Caching:
+ Bidang yang diperkenalkan untuk caching di`processImpl`, yang bermutasi dengan setiap eksekusi, harus selalu didefinisikan dalam konteks itu. `processImpl` Bidang juga harus dibersihkan dengan menggunakan `cleanUp()` metode `doReset()` or.
+ Saat Anda menerapkan cache dalam memori, ukuran cache yang tepat. Cache yang sangat besar yang disimpan dalam memori dapat mengambil semua sumber daya, yang dapat memengaruhi kinerja keseluruhan aplikasi Anda.

SQLExecutionPembangun:
+ Untuk kueri yang Anda rencanakan untuk digunakan di SQLExecution Builder, gunakan nama kunci seperti`PROGRAMNAME_STATEMENTNUMBER`.
+ Saat Anda menggunakan SQLExecution Builder, selalu periksa `Sqlcod` bidangnya. Bidang ini berisi nilai yang menentukan apakah kueri dijalankan dengan benar atau mengalami kesalahan apa pun.
+ Gunakan kueri berparameter untuk mencegah injeksi SQL.

Optimalisasi logika bisnis:
+ Pertahankan kesetaraan fungsional saat merestrukturisasi kode, dan jalankan pengujian regresi dan perbandingan basis data untuk subset program yang relevan.
+ Pertahankan snapshot profil untuk perbandingan.

## Epik
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Instal JProfiler dan pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dan konfigurasikan JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Pengembang aplikasi | 
| Instal dan konfigurasikan pgAdmin. | Pada langkah ini, Anda menginstal dan mengkonfigurasi klien DB untuk menanyakan database Anda. Pola ini menggunakan database PostgreSQL dan pgAdmin sebagai klien database. Jika Anda menggunakan mesin database lain, ikuti dokumentasi untuk klien DB yang sesuai.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Pengembang aplikasi | 

### Identifikasi hotspot
<a name="identify-hotspots"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan pencatatan kueri SQL di aplikasi AWS Blu Age Anda. | [Aktifkan logger untuk pencatatan kueri SQL di `application.properties` file aplikasi AWS Blu Age Anda, seperti yang dijelaskan di bagian Arsitektur.](#optimize-performance-aws-blu-age-modernized-application-architecture) | Pengembang aplikasi | 
| Menghasilkan dan menganalisis `EXPLAIN` rencana kueri untuk mengidentifikasi hotspot kinerja database. | Untuk detailnya, lihat bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | Pengembang aplikasi | 
| Buat JProfiler snapshot untuk menganalisis kasus uji berkinerja lambat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Pengembang aplikasi | 
| Analisis JProfiler snapshot untuk mengidentifikasi kemacetan kinerja. | Ikuti langkah-langkah ini untuk menganalisis JProfiler snapshot.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Untuk informasi selengkapnya tentang penggunaan JProfiler, lihat bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture) dan [JProfiler dokumentasi](https://www.ej-technologies.com/jprofiler/docs). | Pengembang aplikasi | 

### Tetapkan garis dasar
<a name="establish-a-baseline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tetapkan garis dasar kinerja sebelum Anda menerapkan pengoptimalan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Pengembang aplikasi | 

### Terapkan strategi pengoptimalan
<a name="apply-optimization-strategies"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Optimalkan panggilan baca. | Optimalkan pengambilan data dengan menggunakan DAOManager **SetMaxResults**metode. Untuk informasi lebih lanjut tentang pendekatan ini, lihat bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | Pengembang aplikasi, DAOManager | 
| Refactor logika bisnis untuk menghindari beberapa panggilan ke database. | Kurangi panggilan database dengan menggunakan `JOIN` klausa SQL. Untuk detail dan contoh, lihat *Optimasi logika bisnis* di bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | Pengembang aplikasi, SQLExecution Pembangun | 
| Refactor kode untuk menggunakan caching untuk mengurangi latensi panggilan baca. | Untuk informasi tentang teknik ini, lihat *Caching* di bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | Pengembang aplikasi | 
| Tulis ulang kode yang tidak efisien yang menggunakan beberapa DAOManager operasi untuk operasi pembaruan sederhana. | Untuk informasi selengkapnya tentang memperbarui data secara langsung di database, lihat *Optimasi logika bisnis* di bagian [Arsitektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | Pengembang aplikasi | 

### Strategi pengoptimalan uji
<a name="test-optimization-strategies"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi setiap perubahan optimasi secara iteratif sambil mempertahankan kesetaraan fungsional. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Menggunakan metrik dasar sebagai referensi memastikan pengukuran yang akurat dari setiap dampak pengoptimalan sambil mempertahankan keandalan sistem. | Pengembang aplikasi | 

## Pemecahan masalah
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Ketika Anda menjalankan aplikasi modern, Anda melihat pengecualian dengan kesalahan`Query_ID not found`. | Untuk menyelesaikan masalah ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Anda telah menambahkan indeks, tetapi Anda tidak melihat peningkatan kinerja apa pun. | Ikuti langkah-langkah ini untuk memastikan bahwa mesin kueri menggunakan indeks:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Anda menemukan out-of-memory pengecualian. | Verifikasi bahwa kode melepaskan memori yang dipegang oleh struktur data. | 
| Operasi penulisan batch menghasilkan catatan yang hilang dalam tabel | Tinjau kode untuk memastikan bahwa operasi penulisan tambahan dilakukan ketika jumlah batch tidak nol. | 
| Pencatatan SQL tidak muncul di log aplikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Sumber daya terkait
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Aplikasi refactoring secara otomatis dengan AWS Blu Age (Panduan Pengguna](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)*)AWS Mainframe Modernization *
+ [Dokumentasi pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler dokumentasi](https://www.ej-technologies.com/jprofiler/docs)

# Mengamankan dan merampingkan akses pengguna dalam database federasi Db2 di AWS dengan menggunakan konteks tepercaya
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Ringkasan
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Banyak perusahaan yang memigrasikan beban kerja mainframe lama mereka ke Amazon Web Services (AWS). Migrasi ini mencakup pemindahan IBM Db2 untuk z/OS database ke Db2 untuk Linux, Unix, dan Windows (LUW) di Amazon Elastic Compute Cloud (Amazon). EC2 Selama migrasi bertahap dari lokasi ke AWS, pengguna mungkin perlu mengakses data di IBM Db2 z/OS dan di Db2 LUW di EC2 Amazon hingga semua aplikasi dan database sepenuhnya dimigrasikan ke Db2 LUW. Dalam skenario akses data jarak jauh seperti itu, otentikasi pengguna dapat menjadi tantangan karena platform yang berbeda menggunakan mekanisme otentikasi yang berbeda.

Pola ini mencakup cara mengatur server federasi pada Db2 untuk LUW dengan Db2 untuk z/OS sebagai database jarak jauh. Pola ini menggunakan konteks tepercaya untuk menyebarkan identitas pengguna dari Db2 LUW ke Db2 z/OS tanpa mengautentikasi ulang pada database jarak jauh. Untuk informasi selengkapnya tentang konteks tepercaya, lihat bagian [Informasi tambahan](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional).

## Prasyarat dan batasan
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instans Db2 yang berjalan pada instans Amazon EC2 
+ Db2 jarak jauh untuk z/OS database yang berjalan di tempat
+ Jaringan lokal yang terhubung ke AWS melalui AWS [ Site-to-SiteVPN atau AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

## Arsitektur
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Arsitektur target**

![\[Mainframe lokal terhubung melalui server Db2 lokal dan VPN ke Db2 DB aktif. EC2\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Alat
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-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.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) membantu Anda meneruskan lalu lintas antar instans yang Anda luncurkan di AWS dan jaringan jarak jauh Anda sendiri.

**Alat-alat lainnya**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) adalah perintah antarmuka baris perintah interaktif Db2 (CLI).

## Epik
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Aktifkan federasi pada database Db2 LUW yang berjalan di AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan federasi pada DB2 LUW DB. | Untuk mengaktifkan federasi pada DB2 LUW, jalankan perintah berikut.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Mulai ulang database. | Untuk me-restart database, jalankan perintah berikut.<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Katalog database jarak jauh
<a name="catalog-the-remote-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Katalog subsistem Db2 z/OS jarak jauh. | Untuk membuat katalog z/OS database Db2 jarak jauh di Db2 LUW yang berjalan di AWS, gunakan perintah contoh berikut.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Katalog database jarak jauh. | Untuk membuat katalog database jarak jauh, gunakan perintah contoh berikut.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Buat definisi server jarak jauh
<a name="create-the-remote-server-definition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kumpulkan kredensi pengguna untuk database z/OS Db2 jarak jauh. | Sebelum melanjutkan dengan langkah selanjutnya, kumpulkan informasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Buat pembungkus DRDA. | Untuk membuat pembungkus DRDA, jalankan perintah berikut.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Buat definisi server. | Untuk membuat definisi server, jalankan perintah contoh berikut.<pre>CREATE SERVER ndbserver<br />TYPE DB2/ZOS VERSION 12<br />WRAPPER DRDA<br />AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );</pre>Dalam definisi ini, `FED_PROXY_USER` menentukan pengguna proxy yang akan digunakan untuk membangun koneksi tepercaya ke database Db2 z/OS . ID pengguna otorisasi dan kata sandi diperlukan hanya untuk membuat objek server jarak jauh di database Db2 LUW. Mereka tidak akan digunakan nanti selama runtime. | DBA | 

### Buat pemetaan pengguna
<a name="create-user-mappings"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pemetaan pengguna untuk pengguna proxy. | Untuk membuat pemetaan pengguna untuk pengguna proxy, jalankan perintah berikut.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Buat pemetaan pengguna untuk setiap pengguna di Db2 LUW. | Buat pemetaan pengguna untuk semua pengguna di database Db2 LUW di AWS yang perlu mengakses data jarak jauh melalui pengguna proxy. Untuk membuat pemetaan pengguna, jalankan perintah berikut.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>Pernyataan tersebut menetapkan bahwa pengguna di Db2 LUW (`PERSON1`) dapat membuat koneksi tepercaya ke database z/OS Db2 jarak jauh (). `USE_TRUSTED_CONTEXT 'Y'` Setelah koneksi dibuat melalui pengguna proxy, pengguna dapat mengakses data dengan menggunakan ID z/OS pengguna Db2 ()`REMOTE_AUTHID 'USERZID'`. | DBA | 

### Buat objek konteks tepercaya
<a name="create-the-trusted-context-object"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat objek konteks tepercaya. | Untuk membuat objek konteks tepercaya pada z/OS database Db2 jarak jauh, gunakan perintah contoh berikut.<pre>CREATE TRUSTED CONTEXT CTX_LUW_ZOS<br />BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY<br />ATTRIBUTES (<br />ADDRESS '10.10.10.10'<br />)<br />NO DEFAULT ROLE<br />ENABLE<br />WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;</pre>Dalam definisi ini, `CTX_LUW_ZOS` adalah nama arbitrer untuk objek konteks tepercaya. Objek berisi ID pengguna proxy dan alamat IP server dari mana koneksi tepercaya harus berasal. Dalam contoh ini, server database Db2 LUW di AWS. Anda dapat menggunakan nama domain alih-alih alamat IP. Klausul `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` ini menunjukkan bahwa mengalihkan ID pengguna pada koneksi tepercaya diperbolehkan untuk setiap ID pengguna. Password tidak perlu disediakan. | DBA | 

## Sumber daya terkait
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [Fasilitas Kontrol Akses Sumber Daya IBM (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federasi IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Konteks tepercaya](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Informasi tambahan
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Konteks tepercaya Db2**

Konteks tepercaya adalah objek database Db2 yang mendefinisikan hubungan kepercayaan antara server federasi dan server database jarak jauh. Untuk menentukan hubungan tepercaya, konteks tepercaya menentukan atribut kepercayaan. Ada tiga jenis atribut kepercayaan:
+ ID otorisasi sistem yang membuat permintaan koneksi database awal
+ Alamat IP atau nama domain dari mana koneksi dibuat
+ Pengaturan enkripsi untuk komunikasi data antara server database dan klien database

Koneksi tepercaya dibuat ketika semua atribut permintaan koneksi cocok dengan atribut yang ditentukan dalam objek konteks tepercaya apa pun yang ditentukan di server. Ada dua jenis koneksi tepercaya: implisit dan eksplisit. Setelah koneksi terpercaya implisit dibuat, pengguna mewarisi peran yang tidak tersedia bagi mereka di luar cakupan definisi koneksi tepercaya tersebut. Setelah koneksi tepercaya eksplisit dibuat, pengguna dapat diaktifkan pada koneksi fisik yang sama, dengan atau tanpa otentikasi. Selain itu, pengguna Db2 dapat diberikan peran yang menentukan hak istimewa yang hanya untuk digunakan dalam koneksi tepercaya. Pola ini menggunakan koneksi tepercaya eksplisit.

*Konteks tepercaya dalam pola ini*

Setelah pola selesai, PERSON1 pada Db2 LUW mengakses data jarak jauh dari Db2 z/OS dengan menggunakan konteks tepercaya federasi. Koneksi untuk PERSON1 dibuat melalui pengguna proxy jika koneksi berasal dari alamat IP atau nama domain yang ditentukan dalam definisi konteks tepercaya. Setelah koneksi dibuat, PERSON1 ID z/OS pengguna Db2 yang sesuai diaktifkan tanpa autentikasi ulang, dan pengguna dapat mengakses data atau objek berdasarkan hak istimewa Db2 yang disiapkan untuk pengguna tersebut.

*Manfaat konteks tepercaya federasi*
+ Pendekatan ini mempertahankan prinsip hak istimewa terkecil dengan menghilangkan penggunaan ID pengguna umum atau ID aplikasi yang membutuhkan superset dari semua hak istimewa yang diperlukan oleh semua pengguna.
+ Identitas sebenarnya dari pengguna yang melakukan transaksi pada database federasi dan jarak jauh selalu diketahui dan dapat diaudit.
+ Kinerja meningkat karena koneksi fisik digunakan kembali di seluruh pengguna tanpa perlu server federasi untuk mengautentikasi ulang.

# Transfer z/OS data Db2 skala besar ke Amazon S3 dalam file CSV
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar, dan Ivan Schuster, Amazon Web Services*

## Ringkasan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Mainframe masih merupakan sistem catatan di banyak perusahaan, yang berisi sejumlah besar data termasuk entitas data induk dengan catatan transaksi bisnis saat ini serta historis. Hal ini sering tersilo dan tidak mudah diakses oleh sistem terdistribusi dalam perusahaan yang sama. Dengan munculnya teknologi cloud dan demokratisasi big data, perusahaan tertarik untuk menggunakan wawasan yang tersembunyi dalam data mainframe untuk mengembangkan kemampuan bisnis baru.

Dengan tujuan itu, perusahaan ingin membuka data Db2 mainframe mereka ke lingkungan Amazon Web Services (AWS) Cloud mereka. Alasan bisnisnya banyak dan metode transfer berbeda dari kasus ke kasus. Anda mungkin lebih suka menghubungkan aplikasi Anda langsung ke mainframe, atau Anda mungkin lebih suka mereplikasi data Anda dalam waktu dekat. Jika kasus penggunaannya adalah untuk memberi makan gudang data atau data lake, memiliki up-to-date salinan tidak lagi menjadi perhatian, dan prosedur yang dijelaskan dalam pola ini mungkin cukup, terutama jika Anda ingin menghindari biaya lisensi produk pihak ketiga. Kasus penggunaan lain mungkin transfer data mainframe untuk proyek migrasi. Dalam skenario migrasi, data diperlukan untuk melakukan pengujian kesetaraan fungsional. Pendekatan yang dijelaskan dalam posting ini adalah cara yang hemat biaya untuk mentransfer data Db2 ke lingkungan AWS Cloud.

Karena Amazon Simple Storage Service (Amazon S3) adalah salah satu layanan AWS yang paling terintegrasi, Anda dapat mengakses data dari sana dan mengumpulkan wawasan secara langsung dengan menggunakan layanan AWS lainnya seperti Amazon Athena, fungsi AWS Lambda, atau Amazon. QuickSight Anda juga dapat memuat data ke Amazon Aurora atau Amazon DynamoDB dengan menggunakan AWS Glue atau AWS Database Migration Service (AWS DMS). Dengan tujuan itu, ini menjelaskan cara membongkar data Db2 dalam file CSV dalam format ASCII pada mainframe dan mentransfer file ke Amazon S3.

Untuk tujuan ini, [skrip mainframe](https://github.com/aws-samples/unloaddb2-samples) telah dikembangkan untuk membantu menghasilkan bahasa kontrol pekerjaan (JCLs) untuk membongkar dan mentransfer tabel Db2 sebanyak yang Anda butuhkan.

## Prasyarat dan batasan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Prasyarat**
+ Pengguna sistem z/OS operasi IBM dengan otorisasi untuk menjalankan restrukturisasi Extended Execuutor (REXX) dan skrip JCL.
+ Akses ke z/OS Unix System Services (USS) untuk menghasilkan kunci pribadi dan publik SSH (Secure Shell).
+ Bucket S3 yang bisa ditulis. Untuk informasi selengkapnya, lihat [Membuat bucket S3 pertama Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) di dokumentasi Amazon S3.
+ Server berkemampuan AWS Transfer Family SSH File Transfer Protocol (SFTP) menggunakan **Layanan yang dikelola** sebagai penyedia identitas dan Amazon S3 sebagai layanan penyimpanan AWS. Untuk informasi selengkapnya, lihat [Membuat server berkemampuan SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) dalam dokumentasi AWS Transfer Family.

**Batasan**
+ Pendekatan ini tidak cocok untuk sinkronisasi data hampir real-time atau real-time.
+ Data hanya dapat dipindahkan dari Db2 z/OS ke Amazon S3, bukan sebaliknya.

## Arsitektur
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Tumpukan teknologi sumber**
+ Mainframe menjalankan Db2 pada z/OS

**Tumpukan teknologi target**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Arsitektur sumber dan target**

Diagram berikut menunjukkan proses untuk menghasilkan, mengekstraksi, dan mentransfer z/OS data Db2 dalam format ASCII CSV ke bucket S3.

![\[Data flow from corporate data center to AWS Cloud, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Daftar tabel dipilih untuk migrasi data dari katalog Db2.

1. Daftar ini digunakan untuk mendorong pembuatan pekerjaan bongkar dengan kolom numerik dan data dalam format eksternal.

1. Data kemudian ditransfer ke Amazon S3 dengan menggunakan AWS Transfer Family.

1. Pekerjaan AWS Glue extract, transform, and load (ETL) dapat mengubah data dan memuatnya ke bucket yang diproses dalam format yang ditentukan, atau AWS Glue dapat memasukkan data langsung ke database.

1. Amazon Athena dan Amazon QuickSight dapat digunakan untuk menanyakan dan merender data untuk mendorong analitik.

Diagram berikut menunjukkan aliran logis dari seluruh proses.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. JCL pertama, yang disebut TABNAME, akan menggunakan utilitas Db2 DSNTIAUL untuk mengekstrak dan menghasilkan daftar tabel yang Anda rencanakan untuk dibongkar dari Db2. Untuk memilih tabel Anda, Anda harus secara manual menyesuaikan input SQL untuk memilih dan menambahkan kriteria filter untuk menyertakan satu atau lebih skema Db2.

1. JCL kedua, yang disebut REXXEXEC, akan menggunakan kerangka JCL dan program REXX yang disediakan untuk memproses daftar Tabel yang dibuat oleh JCL TABNAME dan menghasilkan satu JCL per nama tabel. Setiap JCL akan berisi satu langkah untuk membongkar tabel dan langkah lain untuk mengirim file ke bucket S3 dengan menggunakan protokol SFTP.

1. Langkah terakhir terdiri dari menjalankan JCL untuk membongkar tabel dan mentransfer file ke AWS. Seluruh proses dapat diotomatisasi menggunakan penjadwal di tempat atau di AWS.

## Alat
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan 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.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.
+ [Amazon Redshift adalah layanan](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) gudang data skala petabyte terkelola di AWS Cloud.
+ [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 Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) adalah layanan transfer aman yang memungkinkan Anda mentransfer file masuk dan keluar dari layanan penyimpanan AWS.

**Alat mainframe**
+ [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) adalah protokol transfer file aman yang memungkinkan login jarak jauh ke dan transfer file antar server. SSH menyediakan keamanan dengan mengenkripsi semua lalu lintas.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) adalah program sampel yang disediakan oleh IBM untuk membongkar data.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) adalah program batch utilitas yang disediakan oleh IBM untuk membongkar data dengan opsi berbeda dari DSNTIAUL.
+ [z/OS OpenSSH adalah port dari Open Source](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) Software SSH yang berjalan pada Unix System Service di bawah jaringan sistem operasi IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Ini menyediakan beberapa utilitas, termasuk ssh-keygen.
+ Skrip [REXX (Restructured Extended Execuutor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) digunakan untuk mengotomatiskan pembuatan JCL dengan langkah-langkah Db2 Unload dan SFTP.

**Kode**

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

## Praktik terbaik
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Untuk pembongkaran pertama, yang dihasilkan JCLs harus membongkar seluruh data tabel.

Setelah pembongkaran penuh pertama, lakukan pembongkaran tambahan untuk kinerja dan penghematan biaya yang lebih baik. pdate kueri SQL di dek JCL template untuk mengakomodasi perubahan apa pun pada proses pembongkaran.

Anda dapat mengonversi skema secara manual atau dengan menggunakan skrip di Lambda dengan Db2 SYSBUNCH sebagai masukan. Untuk proses industri, [AWS Schema Conversion Tool (SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)) adalah opsi yang lebih disukai.

Terakhir, gunakan penjadwal berbasis mainframe atau penjadwal di AWS dengan agen di mainframe untuk membantu mengelola dan mengotomatiskan seluruh proses.

## Epik
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Siapkan ember S3
<a name="set-up-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Untuk petunjuk, lihat [Membuat bucket S3 pertama Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS Umum | 

### Mengatur server Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server berkemampuan SFTP. | Untuk membuka dan membuat server SFTP di [konsol AWS Transfer Family](https://console.aws.amazon.com/transfer/), lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | AWS Umum | 
| Buat peran IAM untuk Transfer Family. | Untuk membuat peran AWS Identity and Access Management (IAM) bagi Transfer Family untuk mengakses Amazon S3, ikuti petunjuk [di Membuat peran dan kebijakan IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrator AWS | 
| Tambahkan pengguna yang dikelola layanan Amazon S3. | Untuk menambahkan pengguna yang dikelola layanan Amazon S3, ikuti petunjuk dalam [dokumentasi AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user), dan gunakan ID pengguna mainframe Anda. | AWS Umum | 

### Amankan protokol komunikasi
<a name="secure-the-communication-protocol"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kunci SSH. | Di bawah lingkungan USS mainframe Anda, jalankan perintah berikut.<pre>ssh-keygen -t rsa</pre>Saat diminta untuk frasa sandi, biarkan kosong. | Pengembang mainframe | 
| Berikan tingkat otorisasi yang tepat ke folder SSH dan file kunci. | Secara default, kunci publik dan pribadi akan disimpan di direktori pengguna`/u/home/username/.ssh`.Anda harus memberikan otorisasi 644 ke file kunci dan 700 ke folder.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Pengembang mainframe | 
| Salin konten kunci publik ke pengguna yang dikelola layanan Amazon S3 Anda. | Untuk menyalin konten kunci publik buatan AS, buka konsol [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Pengembang mainframe | 

### Menghasilkan JCLs
<a name="generate-the-jcls"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan daftar tabel Db2 dalam lingkup. | Berikan masukan SQL untuk membuat daftar tabel yang dicakup untuk migrasi data. Langkah ini mengharuskan Anda untuk menentukan kriteria pemilihan quering tabel katalog Db2 SYSIBM.SYSTABLES menggunakan klausa SQL where. Filter dapat disesuaikan untuk menyertakan skema atau nama tabel tertentu yang dimulai dengan awalan tertentu atau berdasarkan stempel waktu untuk pembongkaran tambahan. Output ditangkap dalam kumpulan data sekuensial fisik (PS) pada mainframe. Dataset ini akan bertindak sebagai input untuk fase berikutnya dari generasi JCL.Sebelum Anda menggunakan JCL TABNAME (Anda dapat mengganti namanya jika perlu), buat perubahan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Pekerjaan ekstraksi daftar tabel Db2**<pre><Jobcard><br />//* <br />//* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA<br />//* <br />//STEP01  EXEC PGM=IEFBR14<br />//* <br />//DD1      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.TABLIST<br />//* <br />//DD2      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//UNLOAD  EXEC PGM=IKJEFT01,DYNAMNBR=20 <br />//SYSTSPRT DD  SYSOUT=* <br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//         DD  DISP=SHR,DSN=CEE.SCEERUN <br />//         DD  DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD <br />//SYSTSIN  DD  *<br />  DSN SYSTEM(DBCG) <br />  RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - <br />       LIB('DSNC10.DBCG.RUNLIB.LOAD')<br />  END<br />//SYSPRINT DD SYSOUT=*<br />//* <br />//SYSUDUMP DD SYSOUT=*<br />//* <br />//SYSREC00 DD DISP=(NEW,CATLG,DELETE),<br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            DSN=<HLQ1>.DSN81210.TABLIST <br />//* <br />//SYSPUNCH DD DISP=(NEW,CATLG,DELETE), <br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 <br />//            DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//SYSIN    DD * <br />   SELECT CHAR(CREATOR), CHAR(NAME)<br />     FROM SYSIBM.SYSTABLES <br />    WHERE OWNER = '<Schema>' <br />      AND NAME LIKE '<Prefix>%' <br />      AND TYPE = 'T'; <br />/* </pre> | Pengembang mainframe | 
| Ubah template JCL. | Template JCL yang disediakan dengan pola ini berisi kartu pekerjaan generik dan nama perpustakaan. Namun, sebagian besar situs mainframe akan memiliki standar penamaan sendiri untuk nama dataset, nama perpustakaan, dan kartu pekerjaan. Misalnya, kelas pekerjaan tertentu mungkin diperlukan untuk menjalankan pekerjaan Db2. Implementasi Job Entry Subsytem JES2 dan JES3 dapat memaksakan perubahan tambahan. Pustaka beban standar mungkin memiliki kualifikasi pertama yang berbeda dari`SYS1`, yang merupakan default IBM. Oleh karena itu, sesuaikan template untuk memperhitungkan standar spesifik situs Anda sebelum Anda menjalankannya.Buat perubahan berikut pada kerangka JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Bongkar dan kerangka SFTP JCL**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | Pengembang mainframe | 
| Hasilkan Mass Unload JCL. | Langkah ini melibatkan menjalankan skrip REXX di bawah lingkungan ISPF dengan menggunakan JCL. Berikan daftar tabel dalam lingkup yang dibuat pada langkah pertama sebagai masukan untuk pembuatan JCL massal terhadap nama`TABLIST DD`. JCL akan menghasilkan satu JCL baru per nama tabel dalam kumpulan data partisi yang ditentukan pengguna yang ditentukan terhadap nama tersebut. `ISPFILE DD` Alokasikan perpustakaan ini sebelumnya. Setiap JCL baru akan memiliki dua langkah: satu langkah untuk membongkar tabel Db2 ke dalam file, dan satu langkah untuk mengirim file ke ember S3.Buat perubahan berikut di JCL REXXEXEC (Anda dapat mengubah nama):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Pekerjaan generasi JCL massal**<pre>//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A,      <br />//         TIME=1440,NOTIFY=&SYSUID<br />//* Most of the values required can be updated to your site specific<br />//* values using the command 'TSO ISRDDN' in your ISPF session. <br />//* Update all the lines tagged with //update marker to desired<br />//* site specific values. <br />//ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25<br />//SYSPROC   DD DISP=SHR,DSN=USER.Z23D.CLIST<br />//SYSEXEC   DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB<br />//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU<br />//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSENU<br />//          DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB<br />//ISPMLIB   DD DSN=ISP.SISPMENU,DISP=SHR<br />//ISPTLIB   DD DDNAME=ISPTABL<br />//          DD DSN=ISP.SISPTENU,DISP=SHR<br />//ISPTABL   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPPROF   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPLOG    DD SYSOUT=*,RECFM=VA,LRECL=125<br />//SYSPRINT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSHELP   DD DSN=SYS1.HELP,DISP=SHR <br />//SYSOUT    DD SYSOUT=*<br />//* Input list of tablenames<br />//TABLIST   DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST<br />//* Output pds<br />//ISPFILE   DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN<br />//SYSTSIN   DD *<br />ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>)<br />/*</pre>Sebelum Anda menggunakan skrip REXX, buat perubahan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Skrip ZSTEPS REXX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Pengembang mainframe | 

### Jalankan JCLs
<a name="run-the-jcls"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan langkah Bongkar Db2. | Setelah pembuatan JCL, Anda akan memiliki JCLs sebanyak mungkin tabel yang perlu dibongkar.Cerita ini menggunakan contoh yang dihasilkan JCL untuk menjelaskan struktur dan langkah-langkah terpenting.Tidak ada tindakan yang diperlukan di pihak Anda. Informasi berikut hanya untuk referensi. Jika niat Anda adalah mengirimkan JCLs yang telah Anda hasilkan pada langkah sebelumnya, lewati ke *Kirim LODnnnnn JCLs* tugas.Saat membongkar data Db2 menggunakan JCL dengan utilitas DSNUTILB Db2 yang disediakan IBM, Anda harus memastikan bahwa data yang dibongkar tidak mengandung data numerik terkompresi. Untuk mencapai ini, gunakan parameter DSNUTILB`DELIMITED`.`DELIMITED`Parameter mendukung pembongkaran data dalam format CSV dengan menambahkan karakter sebagai pembatas dan tanda kutip ganda untuk bidang teks, menghapus padding di kolom VARCHAR, dan mengubah semua bidang numerik menjadi FORMAT EKSTERNAL, termasuk bidang DATE.Contoh berikut menunjukkan seperti apa langkah pembongkaran dalam JCL yang dihasilkan, menggunakan karakter koma sebagai pembatas.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Pengembang mainframe, Insinyur sistem | 
| Lakukan langkah SFTP. | Untuk menggunakan protokol SFTP dari JCL, gunakan utilitas BPXBATCH. Utilitas SFTP tidak dapat mengakses kumpulan data MVS secara langsung. Anda dapat menggunakan perintah copy (`cp`) untuk menyalin file sekuensial `&USRPFX..DB2.UNLOAD.&JOBNAME` ke direktori USS, di mana ia menjadi`&TABNAME..csv`.Jalankan `sftp` perintah menggunakan kunci pribadi (`id_rsa`) dan gunakan ID pengguna RACF sebagai nama pengguna untuk terhubung ke alamat IP AWS Transfer Family.<pre>SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE;<br /> rm &TABNAME..csv; </pre> | Pengembang mainframe, Insinyur sistem | 
| Kirim LODnnnnn JCLs. | JCL sebelumnya telah menghasilkan semua tabel LODnnnnn JCL yang perlu dibongkar, diubah menjadi CSV, dan ditransfer ke bucket S3.Jalankan `submit` perintah pada semua JCLs yang telah dihasilkan. | Pengembang mainframe, Insinyur sistem | 

## Sumber daya terkait
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Untuk informasi selengkapnya tentang berbagai alat dan solusi yang digunakan dalam dokumen ini, lihat berikut ini:
+ [Panduan Pengguna z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS - Contoh pernyataan kontrol UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS - Membongkar file yang dibatasi](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family - Buat server berkemampuan SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family — Bekerja dengan pengguna yang dikelola layanan](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Informasi tambahan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Setelah Anda memiliki data Db2 di Amazon S3, Anda memiliki banyak cara untuk mengembangkan wawasan baru. Karena Amazon S3 terintegrasi dengan layanan analitik data AWS, Anda dapat dengan bebas mengkonsumsi atau mengekspos data ini di sisi terdistribusi. Misalnya, Anda dapat melakukan hal berikut:
+ Bangun [data lake di Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/), dan ekstrak wawasan berharga dengan menggunakan query-in-place, analitik, dan alat pembelajaran mesin tanpa memindahkan data.
+ Memulai fungsi [Lambda](https://aws.amazon.com/lambda/) dengan menyiapkan alur kerja pemrosesan pasca-unggah yang terintegrasi dengan AWS Transfer Family.
+ Kembangkan layanan mikro baru untuk mengakses data di Amazon S3 atau [dalam database yang dikelola sepenuhnya dengan](https://aws.amazon.com/free/database/?trk=ps_a134p000007CdNEAA0&trkCampaign=acq_paid_search_brand&sc_channel=PS&sc_campaign=acquisition_FR&sc_publisher=Google&sc_category=Database&sc_country=FR&sc_geo=EMEA&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content=Relational%20Database_e&sc_matchtype=e&sc_segment=548727697660&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Database|Solution|FR|EN|Text&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service&ef_id=CjwKCAjwzt6LBhBeEiwAbPGOgcGbQIl1-QsbHfWTgMZSSHEXzSG377R9ZyK3tCcbnHuT45L230FufxoCeEkQAvD_BwE:G:s&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service) menggunakan AWS [Glue](https://aws.amazon.com/glue/), yang merupakan layanan integrasi data tanpa server yang memudahkan untuk menemukan, menyiapkan, dan menggabungkan data untuk analitik, pembelajaran mesin, dan pengembangan aplikasi.

Dalam kasus penggunaan migrasi, karena Anda dapat mentransfer data apa pun dari mainframe ke S3, Anda dapat melakukan hal berikut:
+ Pensiun infrastruktur fisik, dan buat strategi pengarsipan data yang hemat biaya dengan Amazon S3 Glacier dan S3 Glacier Deep Archive. 
+ Buat solusi pencadangan dan pemulihan yang dapat diskalakan, tahan lama, dan aman dengan Amazon S3 dan layanan AWS lainnya, seperti S3 Glacier dan Amazon Elastic File System (Amazon EFS), untuk menambah atau mengganti kemampuan lokal yang ada.

# Ubah Easytrieve ke bahasa modern dengan menggunakan kustom AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

*Shubham Roy, Subramanyam Malisetty, dan Harshitha Shashidhar, Amazon Web Services*

## Ringkasan
<a name="transform-easytrieve-modern-languages-summary"></a>

[Pola ini memberikan panduan preskriptif untuk transformasi beban kerja mainframe Broadcom [Easytrieve Report Generator](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) (EZT) yang lebih cepat dan berisiko rendah menggunakan transformasi khusus.AWS Transform](https://aws.amazon.com/transform/custom/) language-to-language Ini mengatasi tantangan memodernisasi beban kerja EZT mainframe niche dan proprietary yang biasa digunakan untuk pemrosesan data batch dan pembuatan laporan. Pola ini menggantikan pendekatan migrasi yang mahal, panjang, dan rawan kesalahan yang mengandalkan perkakas eksklusif dan keahlian mainframe langka dengan solusi otomatis AI agen yang Anda buat. AWS Transform

Pola ini memberikan definisi transformasi kustom siap pakai untuk transformasi EZT. Definisi ini menggunakan beberapa input transformasi:
+ [Aturan bisnis EZT diekstraksi menggunakan mainframe AWS Transform](https://aws.amazon.com/transform/mainframe/)
+ Dokumentasi referensi pemrograman EZT
+ Kode sumber EZT
+ Kumpulan data input dan output mainframe

AWS Transform custom menggunakan input ini untuk menghasilkan aplikasi yang setara secara fungsional dalam bahasa target modern, seperti Java atau Python.

Proses transformasi menggunakan eksekusi pengujian cerdas, debugging otomatis, dan kemampuan perbaikan berulang untuk memvalidasi kesetaraan fungsional terhadap output yang diharapkan. Ini juga mendukung pembelajaran berkelanjutan, memungkinkan definisi transformasi khusus untuk meningkatkan akurasi dan konsistensi di seluruh transformasi berturut-turut. Dengan menggunakan pola ini, organisasi dapat mengurangi upaya dan risiko migrasi, mengatasi utang teknis mainframe khusus, dan memodernisasi beban kerja EZT AWS untuk meningkatkan kelincahan, keandalan, keamanan, dan inovasi.

## Prasyarat dan batasan
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Prasyarat**
+  AWS Akun aktif 
+ Beban kerja EZT mainframe dengan data input dan output 

**Batasan**

*Keterbatasan ruang lingkup*
+ **Dukungan bahasa** - Hanya transformasi EZT-ke-Java yang didukung untuk pola transformasi khusus ini. 
+ Di **luar ruang lingkup** - Transformasi bahasa pemrograman mainframe lainnya memerlukan definisi transformasi kustom baru dalam AWS Transform kustom.

*Keterbatasan proses*
+ **Ketergantungan validasi** - Tanpa data keluaran dasar transformasi tidak dapat divalidasi. 
+ **Logika kepemilikan** - Utilitas yang sangat spesifik dan dikembangkan khusus memerlukan dokumentasi pengguna tambahan dan bahan referensi agar dapat ditafsirkan dengan benar oleh agen AI.

*Keterbatasan teknis*
+ **Batas layanan** — Untuk batas layanan AWS Transform kustom dan kuota lihat [Panduan AWS Transform Pengguna - Kuota](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) dan [Referensi AWS Umum - Mengubah](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) Kuota.

**Versi produk**
+ AWS Transform CLI - Versi terbaru
+ Node.js - versi 20 atau yang lebih baru
+ Git - Versi terbaru
+ Lingkungan target
  + Java — versi 17 atau yang lebih baru
  + Spring Boot — versi 3.x adalah target utama untuk aplikasi refactored
  + Maven - versi 3.6 atau yang lebih baru

## Arsitektur
<a name="transform-easytrieve-modern-languages-architecture"></a>

**Tumpukan teknologi sumber**
+ **Sistem operasi** — IBM z/OS
+ **Bahasa pemrograman** - Easytrieve, Job control language (JCL)
+ **Database** - IBM DB2 untuk z/OS, Metode Akses Penyimpanan Virtual (VSAM), file datar Mainframe

**Tumpukan teknologi target**
+ **Sistem operasi** - Amazon Linux
+ **Komputasi** - Amazon Elastic Compute Cloud (Amazon EC2)
+ **Bahasa pemrograman** - Java
+ **Database** Amazon Relational Database Service (Amazon RDS)

**Arsitektur target**

![\[diagram arsitektur target untuk menggunakan AWS Transform custom untuk mengubah EZT menjadi kode modern.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Alur kerja**

Solusi ini menggunakan pola transformasi language-to-language migrasi AWS Transform kustom untuk memodernisasi aplikasi Easytrieve (EZT) mainframe ke Java melalui alur kerja otomatis empat langkah.

*Langkah 1 - Berikan kode lama Anda AWS Transform untuk Mainframe, yang:*
+ Menganalisis kode
+ Mengekstrak logika bisnis tingkat tinggi
+ Mengekstrak logika bisnis terperinci.

*Langkah 2 - Buat folder dengan input yang diperlukan:*
+ Aturan bisnis EZT diekstraksi menggunakan mainframe AWS Transform  
+ Dokumentasi referensi pemrograman EZT 
+ Kode sumber EZT
+ Kumpulan data input dan output mainframe

*Langkah 3 - Buat dan jalankan definisi transformasi kustom*

1. Gunakan AWS Transform CLI untuk menggambarkan tujuan transformasi dalam bahasa alami. AWS Transform kustom menganalisis panduan pemrograman BRE, kode sumber, dan EZT untuk menghasilkan definisi transformasi khusus untuk tinjauan dan persetujuan pengembang.

1. Kemudian, panggil AWS Transform CLI dengan kode sumber proyek. AWS Transform kustom membuat rencana transformasi, mengonversi EZT ke Java setelah disetujui, menghasilkan file pendukung, membangun JAR yang dapat dieksekusi, dan memvalidasi kriteria keluar.

1. Gunakan agen validasi untuk menguji kesetaraan fungsional terhadap output mainframe. Agen Self-Debugger secara otonom memperbaiki masalah. Hasil akhir termasuk kode Java yang divalidasi dan laporan validasi HTML.

**Otomatisasi dan skala**
+ Arsitektur eksekusi multi-mode AI Agentic — AWS Transform kustom memanfaatkan AI agen dengan 3 mode eksekusi (percakapan, interaktif, otomatisasi penuh) untuk mengotomatiskan tugas transformasi kompleks termasuk analisis kode, refactoring, perencanaan transformasi, dan pengujian.
+ Sistem umpan balik pembelajaran adaptif — Platform ini menerapkan mekanisme pembelajaran berkelanjutan melalui analisis sampel kode, penguraian dokumentasi, dan integrasi umpan balik pengembang dengan definisi transformasi berversi.
+ Arsitektur pemrosesan aplikasi bersamaan — Sistem ini memungkinkan eksekusi paralel terdistribusi dari beberapa operasi transformasi aplikasi secara bersamaan di seluruh infrastruktur yang dapat diskalakan.

## Alat
<a name="transform-easytrieve-modern-languages-tools"></a>

**Layanan AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) adalah layanan AI agen yang digunakan untuk mengubah aplikasi EZT lama menjadi bahasa pemrograman modern. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)menggunakan AI agen untuk membantu Anda mempercepat modernisasi beban kerja lama, seperti .NET, mainframe, dan beban kerja. VMware 
+ [AWS Transform untuk mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) digunakan untuk menganalisis aplikasi EZT lama untuk mengekstrak logika bisnis tertanam dan menghasilkan dokumentasi aturan bisnis yang komprehensif, termasuk ringkasan logika, definisi akronim, dan basis pengetahuan terstruktur. Ini berfungsi sebagai data input untuk AWS Transform kustom. 
+ [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 S3 berfungsi sebagai layanan penyimpanan utama untuk AWS Transform kustom untuk menyimpan definisi transformasi, repositori kode, dan hasil pemrosesan. 
+ [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. IAM menyediakan kerangka kerja keamanan untuk AWS Transform kustom, mengelola izin dan kontrol akses untuk operasi transformasi.

**Alat-alat lainnya**
+ [AWS Transform CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) adalah antarmuka baris perintah untuk AWS Transform kustom, memungkinkan pengembang untuk mendefinisikan, mengeksekusi, dan mengelola transformasi kode kustom melalui percakapan bahasa alami dan mode eksekusi otomatis. AWS Transform kustom mendukung sesi interaktif (atx custom def exec) dan transformasi otonom untuk modernisasi basis kode yang dapat diskalakan.
+ Sistem kontrol versi [Git](https://git-scm.com/doc) digunakan untuk perlindungan cabang, pelacakan perubahan, dan kemampuan rollback selama aplikasi perbaikan otomatis. 
+ [Java](https://www.java.com/en/) adalah bahasa pemrograman dan lingkungan pengembangan yang digunakan dalam pola ini. 

**Repositori kode**

Kode untuk pola ini tersedia di [Easytrieve to Modern Languages Transformation with AWS Transform Custom](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) on. GitHub

## Praktik terbaik
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Menetapkan struktur proyek standar - Buat struktur empat folder (kode sumber, bre-doc, input-data, output-data), validasi kelengkapan, dan isi dokumen sebelum transformasi.
+ Gunakan file dasar untuk validasi - Gunakan file input dasar produksi, lakukan byte-by-byte perbandingan dengan output dasar, terima toleransi nol untuk penyimpangan.
+ Gunakan semua dokumen referensi yang tersedia — Untuk meningkatkan akurasi transformasi, sediakan semua dokumen referensi yang tersedia seperti persyaratan bisnis dan daftar periksa pengkodean.
+ Berikan masukan untuk peningkatan kualitas - AWS Transform kustom secara otomatis mengekstrak pembelajaran dari eksekusi transformasi (umpan balik pengembang, masalah kode) dan membuat item pengetahuan untuk mereka. setelah setiap transformasi berhasil meninjau item pengetahuan dan menyetujui salah satu yang ingin Anda gunakan dalam eksekusi masa depan. Ini meningkatkan kualitas transformasi masa depan.

## Epik
<a name="transform-easytrieve-modern-languages-epics"></a>

### Hasilkan ekstrak aturan bisnis (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS Transform untuk mainframe. | Siapkan izin lingkungan dan diperlukan AWS Identity and Access Management (IAM) untuk mendukung alur kerja modernisasi mainframe. Untuk informasi selengkapnya lihat [Transformasi aplikasi mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) dalam AWS dokumentasi. | Pengembang aplikasi | 
| Hasilkan dokumentasi Business Rule Extract (BRE). | Ekstrak logika bisnis dari sumber EZT atau kode COBOL untuk menghasilkan dokumentasi fungsional. Untuk petunjuk tentang cara memulai proses ekstraksi dan meninjau hasilnya, lihat [Mengekstrak logika bisnis](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) dalam AWS Transform dokumentasi. | Pengembang aplikasi | 

### Siapkan AWS Transform kustom
<a name="set-up-trn-custom"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyediakan infrastruktur untuk AWS Transform kustom. | Menyebarkan infrastruktur siap produksi yang diperlukan untuk menampung lingkungan transformasi yang aman. Ini termasuk instans Amazon EC2 pribadi yang dikonfigurasi dengan alat yang diperlukan, izin IAM, dan pengaturan jaringan untuk mengonversi kode Easytrieve. Untuk menyediakan lingkungan menggunakan infrastruktur sebagai kode (IAc), ikuti petunjuk penerapan di [Easytrieve to Modern Languages Transformation](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) with Custom repository. AWS Transform GitHub  | Pengembang aplikasi, administrator AWS | 
| Siapkan bahan masukan untuk transformasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Pengembang aplikasi | 

###  Buat definisi transformasi kustom
<a name="create-a-custom-transformation-definition"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat definisi transformasi. | Ikuti langkah-langkah ini untuk membuat definisi transformasi khusus untuk transformasi EZT ke Java dengan validasi fungsional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Pengembang aplikasi | 
| Publikasikan definisi transformasi. | Setelah meninjau dan memvalidasi definisi transformasi, Anda dapat mempublikasikannya ke registri AWS Transform kustom dengan prompt bahasa alami, memberikan nama definisi seperti *EasyTrieve-to-Java-migrasi*. | Pengembang aplikasi | 

### Siapkan data dasar untuk validasi.
<a name="prepare-baseline-data-for-validation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau ringkasan validasi transformasi. | Sebelum menjalankan transformasi AWS Transform kustom, validasi bahwa `input-data` folder berisi file data yang diperlukan diambil sebelum eksekusi pekerjaan batch mainframe. Setelah eksekusi pekerjaan batch mainframe, pastikan `output-data` folder menangkap file yang dihasilkan. Semua file dalam format Sequential/Text/DB 2 menggunakan pengkodean EBCDIC berdasarkan persyaratan eksekusi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Pengembang aplikasi | 
| Jalankan pekerjaan transformasi kustom. | Jalankan perintah AWS Transform CLI, pilih opsi non-interaktif atau interaktif:<pre>:# Non-interactive execution (fully autonomous):<br />atx custom def exec \<br />  --transformation-name "Easytrieve-to-Java-Migration" \<br />  --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \<br />  --build-command "mvn clean install" \<br />  --non-interactive \<br />  --trust-all-tools \<br /><br /># Interactive execution (with human oversight):<br />atx custom def exec \<br />  -n "Easytrieve-to-Java-Migration" \<br />  -p ~/root/transform-workspace/mainframe-source/source-code \<br />  -c "mvn clean install"<br /><br /># Resume interrupted execution:<br />atx -resume<br /># OR<br />atx --conversation-id <conversation-id><br /></pre>AWS Transform secara otomatis memvalidasi melalui build/test perintah selama eksekusi transformasi. | Pengembang aplikasi | 

### Validasi dan kirimkan kode yang diuji
<a name="validate-and-deliver-tested-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau ringkasan validasi transformasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Pengembang aplikasi | 
| Akses laporan validasi. | Masukkan perintah ini untuk meninjau artefak validasi terperinci:<pre># Full validation report<br />cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html<br /><br /># Generated code location<br />ls ~/.aws/atx/custom/$LATEST_SESSION/generated/<br /><br /># Execution logs<br />cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log</pre> | Pengembang aplikasi | 
| Aktifkan item pengetahuan untuk pembelajaran berkelanjutan. | Tingkatkan akurasi transformasi future dengan mempromosikan item pengetahuan yang disarankan ke konfigurasi persisten Anda. Setelah transformasi, agen menyimpan pola yang diidentifikasi dan aturan pemetaan di direktori sesi lokal Anda. Untuk meninjau dan menerapkan item yang dipelajari ini, jalankan perintah ini di instans Amazon EC2 Anda:<pre># List all knowledge items for a specific transformation definition<br />atx custom def list-ki -n <transformation-name><br /><br /># Retrieve the details of a specific knowledge item<br />atx custom def get-ki -n <transformation-name> --id <id><br /><br /># Update the status of a knowledge item (ENABLED or DISABLED)<br />atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED<br /><br /># Update the knowledge item configuration to enable auto-approval<br />atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE</pre> | Pengembang aplikasi | 

## Pemecahan masalah
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| *Konfigurasi jalur input dan output*File input tidak dibaca, atau file output tidak ditulis dengan benar.  | Tentukan jalur direktori lengkap tempat file input disimpan dan tunjukkan dengan jelas lokasi di mana output harus ditulis. Pastikan izin akses yang tepat dikonfigurasi untuk direktori ini. Praktik terbaik termasuk menggunakan jalur absolut daripada jalur relatif untuk menghindari ambiguitas dan memverifikasi bahwa semua jalur yang ditentukan ada dengan read/write izin yang sesuai.  | 
| *Melanjutkan eksekusi yang terputus*Eksekusi terputus atau perlu dilanjutkan dari tempat berhenti | Anda dapat melanjutkan eksekusi dari tempat Anda tinggalkan dengan memberikan ID percakapan di perintah CLI.Temukan ID percakapan di log upaya eksekusi Anda sebelumnya.   | 
| *Menyelesaikan kendala memori*Kesalahan kehabisan memori terjadi selama eksekusi. | Anda dapat meminta AWS Transform untuk membagikan ukuran JVM dalam memori saat ini dan kemudian meningkatkan alokasi memori berdasarkan informasi ini. Penyesuaian ini membantu mengakomodasi persyaratan pemrosesan yang lebih besar.Pertimbangkan untuk memecah pekerjaan besar menjadi batch yang lebih kecil jika kendala memori tetap ada setelah penyesuaian.  | 
| *Mengatasi perbedaan file keluaran*File keluaran tidak sesuai dengan harapan, dan AWS Transform menunjukkan tidak ada perubahan lebih lanjut yang mungkin. | Berikan umpan balik spesifik dan alasan teknis yang menjelaskan mengapa output saat ini salah. Sertakan dokumentasi teknis atau bisnis tambahan untuk mendukung kebutuhan Anda. Konteks rinci ini membantu AWS Transform memperbaiki kode untuk menghasilkan file output yang tepat. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Sumber daya terkait
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform dokumentasi kustom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Generator Laporan Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

## Lampiran
<a name="attachments-71f15422-42cb-4c7e-94fa-051a4f130445"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Lebih banyak pola
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Terapkan Otomatisasi Keamanan untuk AWS WAF solusi dengan menggunakan Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replikasi database mainframe ke AWS dengan menggunakan Exactly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)