

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

# Migrasi aplikasi IIS ke Elastic Beanstalk
<a name="dotnet-migrating-applications"></a>

AWS Elastic Beanstalk menyediakan jalur migrasi yang efisien untuk aplikasi Windows Anda yang berjalan di Internet Information Services (IIS). Kemampuan migrasi yang dijelaskan dalam Bab ini secara signifikan mengurangi waktu dan kompleksitas yang biasanya terkait dengan migrasi cloud, membantu Anda mempertahankan fungsionalitas aplikasi dan integritas konfigurasi selama transisi ke AWS.

****eb migrate**Operasi**  
Gunakan **eb migrate** perintah di Elastic Beanstalk Command Line Interface (EB CLI), untuk secara otomatis menemukan, mengemas, dan menyebarkan aplikasi IIS Anda ke file. AWS Cloud Proses ini mempertahankan fungsionalitas aplikasi dan mempertahankan konfigurasi Anda, termasuk binding, kumpulan aplikasi, dan pengaturan otentikasi.

Langkah-langkah berikut merangkum proses yang dilakukan `eb migrate` operasi untuk mentransisikan aplikasi Anda ke AWS Cloud:

1. Temukan situs IIS dan konfigurasinya.

1. Konten dan konfigurasi aplikasi Package.

1. Buat lingkungan dan aplikasi Elastic Beanstalk.

1. Menyebarkan aplikasi dengan pengaturan yang diawetkan.

**Alur kerja dan opsi eksekusi lokasi**  
**eb migrate**Perintah ini menyediakan opsi untuk alur kerja migrasi yang fleksibel dan lokasi eksekusi. Secara default, jalankan perintah di server target yang berisi aplikasi yang ingin Anda migrasikan ke Elastic Beanstalk. Jika Anda tidak dapat menjalankan perintah secara langsung di server aplikasi, gunakan `remote` opsi untuk menjalankan perintah dari host bastion yang terhubung ke server target yang berisi aplikasi dan konfigurasi Anda. Untuk menyelesaikan migrasi dalam dua langkah, Anda juga dapat membuat paket migrasi tanpa menerapkannya menggunakan `archive-only` opsi dan kemudian menerapkannya nanti sesuai keinginan Anda menggunakan opsi. `archive`

Untuk informasi referensi tentang **eb migrate** perintah, lihat[**eb migrate**](eb3-migrate.md).

**Topik**  
Topik berikut memberikan informasi rinci tentang migrasi aplikasi IIS ke Elastic Beanstalk:
+ [Prasyarat](dotnet-migrating-applications-prerequisites.md)- Memahami perangkat lunak, akses, dan izin yang diperlukan untuk memigrasikan aplikasi Windows Anda ke AWS Elastic Beanstalk lingkungan.
+ [Glosarium migrasi](dotnet-migrating-applications-glossary.md)- Memahami bagaimana komponen IIS memetakan ke sumber daya Elastic Beanstalk
+ [Memahami IIS ke pemetaan migrasi Elastic Beanstalk](dotnet-migrating-applications-mapping.md)- Memahami bagaimana komponen IIS memetakan ke sumber daya Elastic Beanstalk
+ [Melakukan migrasi IIS dasar](dotnet-migrating-applications-basic-migration.md)- Pelajari cara melakukan migrasi dasar
+ [Skenario migrasi lanjutan](dotnet-migrating-applications-advanced-scenarios.md)- Menangani skenario migrasi yang kompleks
+ [Konfigurasi keamanan dan peran IAM](dotnet-migrating-applications-security.md)- Konfigurasikan pengaturan keamanan selama migrasi
+ [Konfigurasi jaringan dan pengaturan port](dotnet-migrating-applications-network.md)- Mengelola konfigurasi jaringan dan port
+ [Pemecahan masalah dan diagnostik](dotnet-migrating-applications-troubleshooting.md)- Memecahkan masalah migrasi umum
+ [Membandingkan opsi migrasi: EB CLI vs. AWS Application Migration Service](dotnet-migrating-applications-comparison.md)- Bandingkan dua opsi migrasi utama.

# Prasyarat
<a name="dotnet-migrating-applications-prerequisites"></a>

Sebelum menggunakan **eb migrate** perintah, pastikan lingkungan Anda memenuhi persyaratan ini:

**Instalasi dan versi IIS**  
Server tempat Anda bermigrasi harus menjalankan Internet Information Services (IIS) versi 7.0 atau yang lebih baru. IIS 10.0 pada Windows Server 2016 atau yang lebih baru menyediakan lingkungan yang paling kompatibel untuk migrasi.  
Untuk memverifikasi versi IIS Anda, jalankan perintah berikut:  

```
PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\InetStp\"
...
SetupString             : IIS 10.0
VersionString           : Version 10.0
...
```

**Persyaratan Windows Server**  
Lingkungan sumber Anda harus menjalankan Windows Server 2016 atau yang lebih baru untuk kompatibilitas optimal. Elastic Beanstalk mendukung versi Windows Server ini sebagai platform target:  
+ Windows Server 2025
+ Windows Server 2022
+ Windows Server 2019
+ Windows Server 2016

**Instalasi EB CLI**  
+ *Alur kerja default (tanpa `--remote` opsi)*:
  + Python dan Elastic Beanstalk Command Line Interface (EB CLI) harus diinstal pada server yang berisi aplikasi yang ingin Anda migrasikan ke Elastic Beanstalk. Meskipun tidak diperlukan, kami sarankan menginstal EB CLI di dalam kotak pasir `virtualenv` seperti yang dijelaskan dalam. [Pasang EB CLI di lingkungan virtual](eb-cli3.md#eb-cli3-install-virtualenv)
+ *Menggunakan `--remote` opsi*:
  + Python dan Elastic Beanstalk Command Line Interface (EB CLI) harus diinstal pada host bastion Anda. Meskipun tidak diperlukan, kami sarankan menginstal EB CLI di dalam kotak pasir `virtualenv` seperti yang dijelaskan dalam. [Pasang EB CLI di lingkungan virtual](eb-cli3.md#eb-cli3-install-virtualenv)

**Izin yang diperlukan**  
Anda memerlukan kredensi dan izin berikut:  
+ Hak istimewa administrator di server IIS sumber atau di host bastion (jika menggunakan opsi). `--remote`
+ AWS kredensil dengan izin untuk membuat dan mengelola sumber daya Elastic Beanstalk

**Penyebaran Web 3.6**  
Alat Microsoft Web Deploy (versi 3.6 atau yang lebih baru) harus diinstal pada server sumber Anda atau pada host bastion (jika menggunakan opsi). `--remote` Alat ini digunakan oleh **eb migrate** untuk mengemas aplikasi Anda.  
Untuk memverifikasi instalasi, jalankan perintah berikut:  
:  

```
PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3" -Name InstallPath

InstallPath  : C:\Program Files\IIS\Microsoft Web Deploy V3\
...
```
Untuk petunjuk penginstalan, lihat [Menginstal dan Mengonfigurasi Penerapan Web di IIS 8.0 atau Nanti di](https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later) situs web dokumentasi produk Microsoft Windows.

**Persyaratan jaringan**  
+ *Alur kerja default (tanpa `--remote` opsi)*:
  + Server sumber Anda harus memiliki akses internet keluar ke AWS layanan.
+ *Menggunakan `--remote` opsi*:
  + Server sumber Anda harus memiliki akses internet keluar ke AWS layanan.
  + Konfigurasikan aturan masuk grup keamanan yang tepat yang memungkinkan koneksi jaringan keluar dari host bastion Anda dan koneksi masuk ke mesin jarak jauh. Pastikan IP host bastion terdaftar melalui TCP pada port 22 untuk mengakses mesin jarak jauh.
  + Pastikan klien SSH Anda diinstal dan berjalan di mesin jarak jauh Anda serta host bastion Anda.
  + Pastikan konfigurasi firewall Anda berisi aturan yang sesuai yang membuka port 22 atau mengizinkan koneksi ke klien.
  + Uji koneksi Anda dengan melakukan SSH secara manual ke host jarak jauh dari host bastion sebelum mencoba migrasi.

# Glosarium migrasi
<a name="dotnet-migrating-applications-glossary"></a>

Glosarium ini memberikan definisi untuk istilah dan konsep kunci yang terkait dengan IIS, Elastic Beanstalk, dan migrasi aplikasi IIS ke Elastic Beanstalk.

## Istilah Windows, IIS, dan .NET
<a name="dotnet-migrating-applications-glossary-windows"></a>

****IIS****  
Internet Information Services, perangkat lunak server web yang dikembangkan oleh Microsoft untuk digunakan dengan Windows Server. IIS menghosting situs web, aplikasi web, dan layanan web, menyediakan platform untuk menjalankan ASP.NET dan teknologi web lainnya. Selama migrasi ke Elastic Beanstalk, situs IIS dan konfigurasinya dikemas dan digunakan ke instance Windows Server di Cloud. AWS   
IIS versi 7.0 dan yang lebih baru didukung untuk migrasi, dengan IIS 10.0 pada Windows Server 2016 atau yang lebih baru menyediakan lingkungan yang paling kompatibel.

****.NET Kerangka****  
Platform pengembangan perangkat lunak yang dikembangkan oleh Microsoft untuk membangun dan menjalankan aplikasi Windows. Ini menyediakan perpustakaan kelas besar yang disebut Framework Class Library (FCL) dan mendukung interoperabilitas bahasa di beberapa bahasa pemrograman.  
Saat bermigrasi ke Elastic Beanstalk, aplikasi yang dibangun di atas .NET Framework terus berjalan pada versi framework yang sama di lingkungan cloud. Elastic Beanstalk mendukung beberapa versi.NET Framework (4.x) pada platform Windows Server-nya.

****.NET Inti****  
Sebuah cross-platform, penerus open-source untuk .NET Framework, dirancang agar lebih modular dan ringan. .NET Core (sekarang hanya disebut .NET 5 dan yang lebih baru) memungkinkan pengembang untuk membangun aplikasi yang berjalan di Windows, Linux, dan macOS.  
Saat memigrasikan aplikasi yang dibangun di.NET Core ke Elastic Beanstalk, Anda dapat memilih antara platform Windows Server atau platform berbasis Linux, tergantung pada persyaratan dan dependensi aplikasi Anda.

****Runtime Bahasa Umum (CLR)****  
Komponen mesin virtual dari .NET Framework yang mengelola eksekusi program.NET. CLR menyediakan layanan seperti manajemen memori, keamanan tipe, penanganan pengecualian, pengumpulan sampah, dan manajemen benang.  
Saat bermigrasi ke Elastic Beanstalk, versi CLR yang sesuai secara otomatis tersedia di platform Windows Server yang Anda pilih, memastikan kompatibilitas dengan persyaratan aplikasi Anda.

****Situs****  
Sebuah wadah logis dalam IIS yang mewakili aplikasi web atau layanan, diidentifikasi oleh pengikatan unik alamat IP, port, dan header host. Setiap situs IIS memiliki kumpulan aplikasi, binding, dan pengaturan konfigurasi sendiri, dan dapat berisi satu atau lebih aplikasi.

****Aplikasi****  
Pengelompokan file konten dan kode dalam situs IIS yang menangani permintaan untuk ruang URL tertentu. Aplikasi di IIS dapat memiliki pengaturan konfigurasi sendiri, yang biasanya disimpan dalam `web.config` file.  
Saat bermigrasi ke Elastic Beanstalk, aplikasi dipertahankan dengan struktur jalur dan pengaturan konfigurasinya. Proses migrasi memastikan bahwa aplikasi bersarang mempertahankan hierarki dan jalur URL-nya di lingkungan cloud.

****ApplicationPool****  
Fitur IIS yang mengisolasi aplikasi web untuk keamanan, keandalan, dan manajemen kinerja yang lebih baik. Kumpulan aplikasi menentukan lingkungan runtime untuk aplikasi, termasuk versi.NET Framework, mode pipeline, dan pengaturan identitas.

****VirtualDirectory****  
Pemetaan direktori di IIS yang memungkinkan konten dilayani dari lokasi di luar direktori root situs. Direktori virtual memungkinkan Anda untuk mengatur konten di berbagai lokasi fisik sambil menyajikan struktur URL terpadu kepada pengguna.  
Saat bermigrasi ke Elastic Beanstalk, direktori virtual dipertahankan dengan pemetaan jalurnya. **eb migrate**Perintah membuat struktur direktori dan konfigurasi yang diperlukan di lingkungan cloud untuk mempertahankan jalur URL yang sama.

****ARR****  
Application Request Routing, ekstensi IIS yang menyediakan load balancing dan kemampuan proxy untuk server web. ARR memungkinkan routing berbasis URL, penerusan permintaan HTTP, dan distribusi beban di beberapa server.  
Selama migrasi ke Elastic Beanstalk, konfigurasi ARR dipertahankan melalui instalasi fitur ARR pada instans EC2 dan konfigurasi aturan perutean yang sesuai. Untuk skenario perutean yang kompleks, proses migrasi juga dapat memanfaatkan aturan Application Load Balancer untuk mengimplementasikan fungsionalitas serupa.

****Tulis Ulang URL****  
Modul IIS yang memodifikasi permintaan URLs berdasarkan aturan yang ditetapkan sebelum mencapai aplikasi web. URL Rewrite memungkinkan manipulasi URL, pengalihan, dan pengiriman konten berdasarkan pola dan kondisi.  
Saat bermigrasi ke Elastic Beanstalk, aturan penulisan ulang URL `web.config` dari file Anda diterjemahkan ke dalam aturan perutean ALB jika memungkinkan, atau dipertahankan dalam konfigurasi IIS pada instans EC2. Ini memastikan bahwa pola URL dan pengalihan terus berfungsi seperti yang diharapkan di lingkungan cloud.

****msdeploy.exe****  
Alat baris perintah yang digunakan untuk menyebarkan aplikasi web dan situs web ke server IIS. Juga dikenal sebagai Web Deploy, ini menyediakan cara untuk mengemas, menyinkronkan, dan menyebarkan aplikasi web, situs web, dan konfigurasi server.  
**eb migrate**Perintah menggunakan Web Deploy (versi 3.6 atau yang lebih baru) untuk mengemas aplikasi Anda selama migrasi ke Elastic Beanstalk. Alat ini harus diinstal di server sumber Anda agar proses migrasi berfungsi dengan benar.

****Jalur Fisik****  
Lokasi sistem file yang sebenarnya di mana situs IIS atau file konten aplikasi disimpan. Jalur fisik dapat menunjuk ke direktori lokal, berbagi jaringan, atau lokasi penyimpanan lain yang dapat diakses oleh server IIS.  
Selama migrasi ke Elastic Beanstalk, jalur fisik dipetakan ke lokasi yang sesuai pada instans EC2 di lingkungan Anda. Proses migrasi mempertahankan struktur konten sambil memastikan bahwa semua file disebarkan dengan benar ke lingkungan cloud.

****ApplicationHost.config****  
File konfigurasi root untuk IIS yang mendefinisikan pengaturan server-wide dan berisi konfigurasi untuk semua situs, aplikasi, dan direktori virtual. File ini terletak di `%windir%\System32\inetsrv\config` direktori dan mengontrol perilaku keseluruhan server IIS.  
Saat bermigrasi ke Elastic Beanstalk, `applicationHost.config` pengaturan yang relevan dari diekstraksi dan diterapkan ke konfigurasi IIS pada instans EC2 di lingkungan Anda. Ini memastikan bahwa pengaturan seluruh server dipertahankan selama migrasi.

****web.config****  
File konfigurasi berbasis XML yang digunakan dalam aplikasi ASP.NET untuk mengontrol pengaturan aplikasi, keamanan, dan perilaku di tingkat aplikasi atau direktori. `web.config`file dapat berisi pengaturan untuk otentikasi, otorisasi, status sesi, kompilasi, dan parameter aplikasi khusus.  
Selama migrasi ke Elastic `web.config` Beanstalk, file disimpan dan digunakan dengan aplikasi Anda. Proses migrasi memastikan bahwa konfigurasi khusus aplikasi terus berfungsi seperti yang diharapkan di lingkungan cloud.

****DefaultDocument****  
Fitur IIS yang menentukan file default untuk melayani ketika pengguna meminta direktori tanpa menentukan nama file. Dokumen default diaktifkan secara default, dan IIS 7 mendefinisikan file dokumen default berikut dalam `applicationHost.config` file sebagai default server-wide: Default.htm, Default.asp, Index.htm, Index.html, Iisstart.htm.  
Saat bermigrasi ke Elastic Beanstalk, pengaturan dokumen default dipertahankan dalam konfigurasi IIS pada instans EC2, memastikan bahwa permintaan direktori ditangani secara konsisten di lingkungan cloud.

****Sistem.webserver****  
Bagian konfigurasi di `web.config` atau `applicationHost.config` yang berisi pengaturan khusus IIS untuk modul, penangan, dan perilaku server lainnya. Bagian ini mengontrol bagaimana IIS memproses permintaan, mengelola modul, dan mengkonfigurasi fitur server.  
Selama migrasi ke Elastic Beanstalk, konfigurasi System.WebServer dipertahankan dalam file `web.config` aplikasi Anda dan diterapkan ke instalasi IIS pada instans EC2 di lingkungan Anda. Ini memastikan bahwa perilaku khusus IIS dipertahankan di lingkungan cloud.

## Istilah Elastic Beanstalk
<a name="dotnet-migrating-applications-glossary-eb"></a>

****Platform****  
Kombinasi sistem operasi, runtime bahasa pemrograman, server web, server aplikasi, dan komponen Elastic Beanstalk yang menentukan tumpukan perangkat lunak untuk menjalankan aplikasi.  
Untuk migrasi Windows, Elastic Beanstalk menyediakan platform berbasis Windows Server 2016, 2019, dan 2022 dengan IIS dan berbagai versi.NET Framework untuk memastikan kompatibilitas dengan lingkungan sumber Anda.

****SolutionStack****  
Konfigurasi platform yang telah ditentukan sebelumnya di Elastic Beanstalk yang menentukan sistem operasi, runtime, dan komponen lain yang diperlukan untuk menjalankan aplikasi. Secara konseptual identik dengan platform dan digunakan secara bergantian untuk mengoperasikan lingkungan.  
Selama migrasi, **eb migrate** perintah memilih tumpukan solusi yang sesuai berdasarkan konfigurasi lingkungan sumber Anda, memastikan kompatibilitas dengan aplikasi IIS Anda.

****CreateEnvironment****  
Tindakan API Elastic Beanstalk yang menciptakan lingkungan baru untuk meng-host versi aplikasi. API ini digunakan oleh **eb migrate** perintah untuk menyediakan AWS sumber daya yang diperlukan untuk aplikasi yang dimigrasi.  
Proses migrasi mengonfigurasi parameter lingkungan yang sesuai berdasarkan lingkungan IIS sumber Anda, termasuk jenis instans, variabel lingkungan, dan pengaturan opsi.

****CreateApplicationVersion****  
Tindakan API Elastic Beanstalk yang membuat versi aplikasi baru dari bundel sumber yang disimpan di Amazon S3. **eb migrate**Perintah menggunakan API ini untuk mendaftarkan aplikasi IIS paket Anda sebagai versi di Elastic Beanstalk.  
Selama migrasi, file dan konfigurasi aplikasi Anda dikemas, diunggah ke Amazon S3, dan didaftarkan sebagai versi aplikasi sebelum penerapan.

****DescribeEvents****  
Tindakan API Elastic Beanstalk yang mengambil daftar peristiwa untuk lingkungan, termasuk penerapan, perubahan konfigurasi, dan masalah operasional. **eb migrate**Perintah menggunakan API ini untuk memantau kemajuan migrasi Anda.  
Anda juga dapat menggunakan **eb events** perintah setelah migrasi untuk melihat riwayat peristiwa untuk lingkungan Anda.

****DescribeEnvironmentHealth****  
Tindakan API Elastic Beanstalk yang memberikan informasi kesehatan terperinci tentang instance dan komponen lingkungan lainnya. API ini digunakan untuk memverifikasi kesehatan aplikasi yang dimigrasi setelah penerapan.  
Setelah migrasi, Anda dapat menggunakan **eb health** perintah untuk memeriksa status lingkungan Anda dan mengidentifikasi masalah apa pun yang perlu diperhatikan.

****HealthD****  
Agen pemantauan di Elastic Beanstalk yang mengumpulkan metrik, memantau log, dan melaporkan status kesehatan untuk instans EC2 di suatu lingkungan. HealthD menyediakan pelaporan kesehatan yang disempurnakan untuk aplikasi yang dimigrasi.  
Setelah migrasi, HealthD memantau kinerja aplikasi Anda, pemanfaatan sumber daya, dan tingkat keberhasilan permintaan, memberikan pandangan komprehensif tentang kesehatan lingkungan Anda.

****Log Bundel****  
Fitur di Elastic Beanstalk yang mengompres dan mengunggah log dari instans EC2 ke Amazon S3 untuk penyimpanan dan analisis terpusat. Fitur ini membantu Anda memecahkan masalah dengan aplikasi yang dimigrasi.  
Setelah migrasi, Anda dapat menggunakan **eb logs** perintah untuk mengambil dan melihat log dari lingkungan Anda.

****aws-windows-deployment-manifest.json****  
File yang menjelaskan isi, dependensi, dan konfigurasi paket perangkat lunak atau aplikasi. Manifes ini dihasilkan selama proses migrasi untuk menentukan bagaimana aplikasi IIS Anda harus diterapkan di Elastic Beanstalk.

****bagian manifes kustom****  
Bagian di dalamnya `aws-windows-deployment-manifest.json` menyediakan kontrol khusus atas penerapan aplikasi. Bagian ini berisi PowerShell skrip dan perintah yang dijalankan selama proses penyebaran.  
Selama migrasi, bagian manifes kustom dibuat untuk menangani aspek tertentu dari konfigurasi IIS Anda, seperti penyiapan direktori virtual, manajemen izin, dan konfigurasi kumpulan aplikasi.

****CLI EB****  
Alat baris perintah yang menyediakan perintah untuk membuat, mengonfigurasi, dan mengelola aplikasi dan lingkungan Elastic Beanstalk. EB CLI menyertakan perintah khusus untuk memigrasikan **eb migrate** aplikasi IIS ke Elastic Beanstalk.  
Setelah migrasi, Anda dapat terus menggunakan CLI EB untuk mengelola lingkungan Anda, menyebarkan pembaruan, memantau kesehatan, dan melakukan tugas administratif lainnya.

****Pengaturan opsi****  
Nilai konfigurasi yang menentukan cara Elastic Beanstalk menyediakan AWS dan mengonfigurasi sumber daya di lingkungan Anda. Pengaturan opsi diatur ke dalam ruang nama yang mewakili berbagai komponen lingkungan Anda, seperti penyeimbang beban, instance, dan proses lingkungan.  
Selama migrasi, **eb migrate** perintah menghasilkan pengaturan opsi yang sesuai berdasarkan konfigurasi IIS Anda untuk memastikan bahwa lingkungan cloud Anda sesuai dengan kemampuan lingkungan sumber Anda. Untuk informasi selengkapnya, lihat [Opsi konfigurasi di Panduan](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html) Pengembang Elastic Beanstalk.

****aws:elbv2:listener:default****  
Namespace konfigurasi Elastic Beanstalk untuk pendengar default pada Application Load Balancer. Selama migrasi, namespace ini dikonfigurasi berdasarkan binding situs IIS Anda untuk memastikan perutean lalu lintas yang tepat.  
Pendengar default biasanya menangani lalu lintas HTTP pada port 80, yang kemudian diteruskan ke instance aplikasi Anda sesuai dengan aturan perutean.

****aws:elbv2:listener:listener\$1port****  
Namespace konfigurasi Elastic Beanstalk untuk port listener tertentu pada Application Load Balancer. Namespace ini digunakan untuk mengonfigurasi pendengar tambahan untuk aplikasi yang dimigrasi, seperti HTTPS pada port 443.  
Selama migrasi, pendengar dibuat berdasarkan pengikatan port situs IIS Anda, memastikan bahwa aplikasi Anda tetap dapat diakses di port yang sama seperti di lingkungan sumber Anda.

****aws:elbv2:listenerrule:rule\$1name****  
Namespace konfigurasi Elastic Beanstalk untuk mendefinisikan aturan routing untuk pendengar Application Load Balancer. Aturan ini menentukan bagaimana permintaan masuk dirutekan ke grup target yang berbeda berdasarkan pola jalur atau header host.  
Selama migrasi, aturan listener dibuat agar sesuai dengan struktur URL aplikasi IIS Anda, memastikan bahwa permintaan dirutekan ke jalur aplikasi yang benar.

****aws:elasticbeanstalk:lingkungan: proses:default****  
Namespace konfigurasi Elastic Beanstalk untuk proses default di lingkungan. Namespace ini mendefinisikan bagaimana proses aplikasi web default dikonfigurasi, termasuk pengaturan pemeriksaan kesehatan, pemetaan port, dan pengaturan proxy.  
Selama migrasi, proses default dikonfigurasi berdasarkan pengaturan situs IIS utama Anda, memastikan pemantauan kesehatan yang tepat dan penanganan permintaan.

****aws:elasticbeanstalk: lingkungan: proses: process\$1name****  
Namespace konfigurasi Elastic Beanstalk untuk proses bernama tertentu di lingkungan. Namespace ini memungkinkan Anda untuk menentukan beberapa proses dengan konfigurasi yang berbeda, mirip dengan memiliki beberapa kumpulan aplikasi di IIS.  
Selama migrasi, proses tambahan dapat dibuat untuk mewakili binding situs yang berbeda dari lingkungan sumber Anda.

**catatan**  
Untuk informasi selengkapnya tentang beberapa istilah yang dijelaskan dalam topik ini, lihat sumber daya berikut:  
[Tindakan API Elastic Beanstalk - Referensi API AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/)
*Platform Elastic Beanstalk, termasuk [versi platform yang didukung - Platform yang Didukung dalam panduan](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) Platform AWS Elastic Beanstalk *
Ruang nama konfigurasi Elastic Beanstalk - dalam panduan ini [Opsi umum untuk semua lingkungan](command-options-general.md)
EB CLI atau perintah EB CLI tertentu - dalam panduan ini [Menyiapkan antarmuka baris perintah EB (EB CLI) untuk mengelola Elastic Beanstalk](eb-cli3.md)

## Istilah Python
<a name="dotnet-migrating-applications-glossary-python"></a>

****pip****  
Penginstal paket untuk Python, digunakan untuk menginstal dan mengelola paket perangkat lunak yang ditulis dengan Python. CLI EB diinstal dan diperbarui menggunakan pip.  
Selama proses migrasi, pip digunakan untuk menginstal paket EB CLI dan dependensinya di server sumber Anda, menyediakan alat yang diperlukan untuk migrasi.

****PyPI****  
Python Package Index, repositori resmi untuk paket perangkat lunak Python pihak ketiga, dari mana pip mengambil dan menginstal paket. CLI EB dan dependensinya di-host di PyPI.  
Saat menginstal CLI EB untuk migrasi, pip terhubung ke PyPI untuk mengunduh dan menginstal paket yang diperlukan.

****virtualenv****  
Alat untuk membuat lingkungan Python yang terisolasi, memungkinkan proyek yang berbeda untuk memiliki dependensi dan paket mereka sendiri tanpa konflik. Menggunakan virtualenv dianjurkan ketika menginstal EB CLI untuk menghindari konflik dengan aplikasi Python lainnya.  
Membuat lingkungan virtual sebelum menginstal EB CLI memastikan bahwa alat migrasi memiliki lingkungan yang bersih dan terisolasi dengan dependensi yang benar.

****pywin32****  
Satu set ekstensi Python yang menyediakan akses ke banyak Windows APIs, memungkinkan interaksi dengan sistem operasi Windows dan komponennya. CLI EB menggunakan pywin32 untuk berinteraksi dengan fitur khusus Windows selama migrasi.  
Selama proses migrasi, pywin32 digunakan untuk mengakses konfigurasi IIS, pengaturan registri Windows, dan informasi sistem lain yang diperlukan untuk mengemas dan memigrasi aplikasi Anda dengan benar.

****pythonnet****  
Sebuah paket yang memungkinkan kode Python untuk berinteraksi dengan aplikasi.NET Framework dan .NET Core. Integrasi ini memungkinkan CLI EB untuk bekerja dengan komponen.NET selama proses migrasi.  
Proses migrasi dapat menggunakan pythonnet untuk berinteraksi dengan rakitan dan komponen .NET saat menganalisis dan mengemas aplikasi Anda untuk penyebaran ke Elastic Beanstalk.

# Melakukan migrasi IIS dasar
<a name="dotnet-migrating-applications-basic-migration"></a>

Bagian ini memandu Anda melalui proses migrasi aplikasi IIS Anda ke Elastic Beanstalk menggunakan perintah. **eb migrate**

## Menjelajahi lingkungan IIS Anda
<a name="dotnet-migrating-applications-basic-migration-exploring"></a>

Sebelum membuat perubahan apa pun, Anda harus memahami sumber daya apa yang ada di server Anda. Mulailah dengan menjelajahi situs IIS Anda dengan menjalankan**eb migrate explore**, seperti yang ditunjukkan pada contoh berikut:

```
PS C:\migrations_workspace> eb migrate explore
```

Perintah ini mengungkapkan situs IIS Anda. Lihat daftar berikut:

```
Default Web Site
Intranet
API.Internal
Reports
```

Untuk tampilan terperinci dari setiap konfigurasi situs, termasuk binding, aplikasi, dan direktori virtual, tambahkan `--verbose` opsi, seperti yang ditunjukkan dalam contoh ini:

```
PS C:\migrations_workspace> eb migrate explore --verbose
```

Daftar berikut menunjukkan informasi komprehensif tentang lingkungan Anda yang disediakan perintah:

```
1: Default Web Site:
  - Bindings:
    - *:80:www.example.com
    - *:443:www.example.com
  - Application '/':
    - Application Pool: DefaultAppPool
    - Enabled Protocols: http
    - Virtual Directories:
      - /:
        - Physical Path: C:\inetpub\wwwroot
        - Logon Method: ClearText
  - Application '/api':
    - Application Pool: ApiPool
    - Enabled Protocols: http
    - Virtual Directories:
      - /:
        - Physical Path: C:\websites\api
        - Logon Method: ClearText
2: Intranet:
...
3. API.Internal:
...
4. Reports:
...
```

### Memahami output penemuan
<a name="dotnet-migrating-applications-basic-migration-exploring-output"></a>

Output verbose memberikan informasi penting berikut untuk perencanaan migrasi:

Situs  
Output penemuan mencantumkan semua situs IIS di server Anda. Setiap situs diidentifikasi dengan namanya (misalnya, “Situs Web Default”, “Intranet”, “API.internal”) dan diberi nomor secara berurutan. Ketika beberapa situs ada di server, `eb migrate` perintah dapat mengemas dan menyebarkan masing-masing secara terpisah atau bersama-sama, tergantung pada strategi migrasi Anda.

Binding  
Pengikatan protokol mengungkapkan protokol mana (HTTP/HTTPS) yang digunakan situs Anda dan port mana yang mereka operasikan. Informasi yang mengikat mencakup persyaratan header host yang menentukan konfigurasi perutean berbasis domain.

Aplikasi  
Jalur aplikasi menunjukkan struktur aplikasi root dan bersarang dalam konfigurasi IIS Anda. Penugasan kumpulan aplikasi menunjukkan bagaimana aplikasi Anda diisolasi satu sama lain untuk keamanan dan manajemen sumber daya.

Direktori virtual  
Pemetaan jalur fisik menunjukkan di mana konten Anda berada di sistem file. Pengaturan otentikasi menunjukkan persyaratan akses khusus yang perlu dipertahankan setelah migrasi.

## Mempersiapkan migrasi
<a name="dotnet-migrating-applications-basic-migration-preparing"></a>

Dengan pemahaman tentang lingkungan Anda, pastikan bahwa server Anda memenuhi prasyarat. Pertama, verifikasi versi IIS Anda dengan PowerShell perintah berikut:

```
PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\InetStp\" -Name MajorVersion
```

Anda membutuhkan IIS 7.0 atau yang lebih baru. Alat migrasi menggunakan Web Deploy 3.6 untuk mengemas aplikasi Anda. Verifikasi instalasinya dengan perintah berikut:



```
PS C:\migrations_workspace> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3" -Name InstallPath
```

Jika Web Deploy tidak diinstal di server Anda, Anda dapat mengunduhnya dari halaman unduhan [Microsoft Web Platform Installer](https://www.iis.net/downloads/microsoft/web-deploy).

## Migrasi pertama Anda
<a name="dotnet-migrating-applications-basic-migration-first"></a>

Mari kita mulai dengan migrasi dasar dari Situs Web Default. Contoh berikut menunjukkan perintah yang paling sederhana,**eb migrate**.

```
PS C:\migrations_workspace> eb migrate
```

Perintah ini memulai serangkaian langkah otomatis, yang ditunjukkan dalam contoh output berikut:

```
Identifying VPC configuration of this EC2 instance (i-0123456789abcdef0)
  id: vpc-1234567890abcdef0
  publicip: true
  elbscheme: public
  ec2subnets: subnet-123,subnet-456,subnet-789
  securitygroups: sg-123,sg-456
  elbsubnets: subnet-123,subnet-456,subnet-789

Using .\migrations\latest to contain artifacts for this migration run.
Generating source bundle for sites, applications, and virtual directories...
  Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip
```

Alat migrasi membuat direktori terstruktur yang berisi artefak penerapan Anda. Daftar berikut menunjukkan struktur direktori:

```
C:\migration_workspace\
└── .\migrations\latest\
    └── upload_target\
        ├── DefaultWebSite.zip
        ├── aws-windows-deployment-manifest.json
        └── ebmigrateScripts\
            ├── site_installer.ps1
            ├── permission_handler.ps1
            └── >other helper scripts<
```

## Mengontrol migrasi
<a name="dotnet-migrating-applications-basic-migration-controlling"></a>

Untuk kontrol lebih lanjut atas proses migrasi, Anda dapat menentukan dengan tepat situs mana yang akan dimigrasi dengan perintah berikut:

```
PS C:\migrations_workspace> eb migrate --sites "Default Web Site,Intranet"
```

Anda juga dapat menyesuaikan nama lingkungan dan nama aplikasi, seperti yang ditunjukkan pada contoh perintah berikut:

```
PS C:\migrations_workspace> eb migrate `
    --sites "Default Web Site" `
    --application-name "CorporateApp" `
    --environment-name "Production"
```

Untuk daftar lengkap opsi, lihat[**eb migrate**](eb3-migrate.md).

## Memantau progres
<a name="dotnet-migrating-applications-basic-migration-monitoring"></a>

Selama migrasi, **eb migrate** menyediakan pembaruan status waktu nyata. Lihat contoh keluaran berikut:

```
...
Creating application version
Creating environment... This may take a few minutes

2024-03-18 18:12:15    INFO    Environment details for: Production
  Application name: CorporateApp
  Region: us-west-2
  Deployed Version: app-230320_153045
  Environment ID: e-abcdef1234
  Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0
  Tier: WebServer-Standard-1.0
  CNAME: production.us-west-2.elasticbeanstalk.com
  Updated: 2024-03-20 15:30:45
2025-03-18 18:12:17    INFO    createEnvironment is starting.
2025-03-18 18:12:19    INFO    Using elasticbeanstalk-us-east-1-180301529717 as Amazon S3 storage bucket for environment data.
2025-03-18 18:12:40    INFO    Created security group named: sg-0fdd4d696a26b086a
2025-03-18 18:12:48    INFO    Environment health has transitioned to Pending. Initialization in progress (running for 7 seconds). There are no instances.
...
2025-03-18 18:23:59    INFO    Application available at EBMigratedEnv-arrreal3.us-east-1.elasticbeanstalk.com.
2025-03-18 18:24:00    INFO    Successfully launched environment: EBMigratedEnv-arrreal3
```

## Memverifikasi migrasi
<a name="dotnet-migrating-applications-basic-migration-verifying"></a>

Setelah lingkungan siap, Elastic Beanstalk menyediakan beberapa cara untuk memverifikasi penerapan Anda.

Akses aplikasi Anda  
Buka URL aplikasi Anda (CNAME) di browser web untuk memverifikasi itu berfungsi dengan benar.

Periksa kesehatan lingkungan  
Gunakan **eb health** perintah untuk melihat kesehatan lingkungan Anda.  

```
PS C:\migrations_workspace> eb health
```
Gambar layar berikut menunjukkan kesehatan instance, metrik respons aplikasi, dan pemanfaatan sumber daya sistem.  

![\[Output dari perintah eb health menunjukkan kesehatan instance, metrik respons aplikasi, dan pemanfaatan sumber daya sistem.\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/eb-health-after-migration.png)


Gunakan **eb logs** perintah untuk mengakses log untuk memecahkan masalah apa pun:  

```
PS C:\migrations_workspace> eb logs --zip
```
**eb logs**Perintah mengunduh log ke `.elasticbeanstalk/logs` direktori. Untuk informasi selengkapnya, lihat [Menggunakan Elastic Beanstalk dengan Amazon Logs CloudWatch](AWSHowTo.cloudwatchlogs.md).

Connect ke instance  
Jika Anda menetapkan key pair selama migrasi, Anda dapat menyambung ke instans menggunakan RDP untuk pemecahan masalah langsung.

Akses konsol Elastic Beanstalk  
Anda dapat melihat kesehatan lingkungan, log, dan properti konfigurasi melalui [konsol manajemen lingkungan](environments-console.md) untuk lingkungan tersebut. 

## Mengelola artefak migrasi
<a name="dotnet-migrating-applications-basic-migration-cleanup"></a>

**eb migrate**Perintah membuat artefak lokal selama proses migrasi. Artefak ini berisi informasi sensitif dan dapat menghabiskan ruang disk yang signifikan dari waktu ke waktu. Gunakan **cleanup** subperintah untuk mengelola artefak ini, seperti yang ditunjukkan pada contoh berikut:

```
PS C:\migrations_workspace> eb migrate cleanup
Are you sure you would like to cleanup older artifacts within ./migrations/? (Y/N):
```

Untuk memaksa pembersihan tanpa konfirmasi gunakan **--force** opsi:

```
PS C:\migrations_workspace> eb migrate cleanup --force
```

Proses pembersihan mempertahankan migrasi sukses terbaru di `./migrations/latest` direktori dan menghapus direktori migrasi yang lebih lama

# Konfigurasi jaringan dan pengaturan port
<a name="dotnet-migrating-applications-network"></a>

Bagian ini mencakup opsi konfigurasi jaringan untuk migrasi IIS, termasuk pengaturan VPC, konfigurasi port, dan penerapan multi-situs.

## Konfigurasi VPC
<a name="dotnet-migrating-applications-network-vpc"></a>

**eb migrate**Perintah ini menyediakan opsi konfigurasi VPC yang fleksibel untuk lingkungan Elastic Beanstalk Anda. Alat ini dapat mendeteksi pengaturan VPC dari instans EC2 sumber atau menerima konfigurasi VPC khusus melalui parameter baris perintah. Tinjau [Menggunakan Elastic Beanstalk dengan Amazon VPC](vpc.md) untuk memahami cara mengkonfigurasi Elastic Beanstalk dengan VPC.

### Deteksi VPC otomatis
<a name="dotnet-migrating-applications-network-vpc-auto"></a>

Ketika **eb migrate** berjalan pada instans EC2, secara otomatis menemukan dan menggunakan konfigurasi VPC dari instans EC2 lingkungan sumber. Contoh output berikut mengilustrasikan informasi konfigurasi yang dideteksinya:

```
PS C:\migrations_workspace > eb migrate
Identifying VPC configuration of this EC2 instance (i-0123456789abcdef0):
  id: vpc-1234567890abcdef0
  publicip: true
  elbscheme: public
  ec2subnets: subnet-123,subnet-456,subnet-789
  securitygroups: sg-123,sg-456
  elbsubnets: subnet-123,subnet-456,subnet-789
...
```

Konfigurasi yang terdeteksi meliputi:
+ Pengidentifikasi VPC
+ Pengaturan penetapan IP publik
+ Skema penyeimbang beban (publik/swasta)
+ Tugas subnet instans EC2
+ Asosiasi kelompok keamanan
+ Tugas subnet penyeimbang beban

### Host lokal atau AWS non-cloud
<a name="dotnet-migrating-applications-network-vpc-onprem"></a>

Saat **eb migrate** dijalankan dari server lokal atau host AWS non-cloud, layanan Elastic Beanstalk akan menggunakan VPC default di akun Anda. AWS Daftar berikut menunjukkan contoh perintah dan output:

```
PS C:\migrations_worspace> eb migrate `
      -k windows-test-pem `
      --region us-east-1 `
      -a EBMigratedEnv `
      -e EBMigratedEnv-test2 `
      --copy-firewall-config
Determining EB platform based on host machine properties
Using .\migrations\latest to contain artifacts for this migration run.
...
```

Tinjau [Menggunakan Elastic Beanstalk dengan Amazon VPC](vpc.md) untuk memahami bagaimana Elastic Beanstalk mengonfigurasi VPC default untuk lingkungan Anda.

### Konfigurasi VPC kustom
<a name="dotnet-migrating-applications-network-vpc-custom"></a>

Untuk lingkungan sumber apa pun (EC2, lokal, atau AWS non-cloud) yang memerlukan setelan VPC tertentu, sediakan file konfigurasi VPC seperti yang ada di contoh berikut:

```
{
    "id": "vpc-12345678",
    "publicip": "true",
    "elbscheme": "public",
    "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"],
    "securitygroups": "sg-123456,sg-789012",
    "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"]
}
```

Terapkan konfigurasi ini menggunakan perintah berikut:

```
PS C:\migrations_workspace> eb migrate --vpc-config vpc-config.json
```

**catatan**  
File konfigurasi VPC memerlukan `id` bidang yang menentukan ID VPC. Semua bidang lainnya bersifat opsional, dan Elastic Beanstalk akan menggunakan nilai default untuk bidang apa pun yang tidak Anda tentukan.

**penting**  
**Migrasi akan mengabaikan pengaturan VPC yang ada dari lingkungan sumber saat Anda menentukan parameter. `--vpc-config`** Saat Anda menggunakan parameter ini, migrasi hanya akan menggunakan pengaturan VPC yang ditentukan dalam file konfigurasi yang Anda lewati. Menggunakan parameter ini mengesampingkan perilaku default untuk menemukan konfigurasi VPC instance sumber atau menggunakan VPC default.

Gunakan `--vpc-config` parameter dalam skenario ini:
+ Saat Anda memigrasikan lingkungan non-EC2 yang tidak memiliki pengaturan VPC yang dapat ditemukan
+ Saat Anda bermigrasi ke VPC yang berbeda dari yang digunakan oleh lingkungan sumber
+ Saat Anda perlu menyesuaikan pilihan subnet atau konfigurasi grup keamanan
+ Ketika penemuan otomatis tidak mengidentifikasi pengaturan VPC yang diinginkan dengan benar
+ Saat Anda bermigrasi dari lokal, dan Anda tidak ingin menggunakan VPC default

### Konfigurasi keamanan jaringan
<a name="dotnet-migrating-applications-network-vpc-security"></a>

Secara default, **eb migrate** membuka port 80 pada instance target tetapi tidak menyalin aturan Windows Firewall lainnya dari mesin sumber. Untuk menyertakan semua konfigurasi firewall gunakan perintah berikut:

```
PS C:\migrations_workspace> eb migrate --copy-firewall-config
```

Perintah ini melakukan tindakan berikut:
+ Mengidentifikasi port yang digunakan oleh binding situs IIS
+ Mengambil aturan firewall yang sesuai
+ Menghasilkan PowerShell skrip untuk membuat ulang aturan pada instance target
+ Mempertahankan aturan DENY untuk port 80 dari mesin sumber (jika tidak port 80 diizinkan secara default)

Pertimbangkan kasus penggunaan, di mana mesin sumber Anda memiliki aturan firewall yang ditentukan dalam contoh berikut:

```
# Source machine firewall configuration
Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True'} | Get-NetFirewallPortFilter | Where-Object {$_.LocalPort -eq 80 -or $_.LocalPort -eq 443 -or $_.LocalPort -eq 8081}
# Output shows rules for ports 80, 443, and 8081
```

Migrasi membuat script (`modify_firewall_config.ps1`) yang berisi konfigurasi berikut:

```
New-NetFirewallRule -DisplayName "Allow Web Traffic" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443
New-NetFirewallRule -DisplayName "Allow API Traffic" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8081
```

Alat migrasi secara otomatis melakukan tindakan berikut:
+ Ekstrak HTTP/HTTPS port dari semua binding situs IIS
+ Menggunakan antarmuka Windows Firewall [INetFwPolicy2](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nn-netfw-inetfwpolicy2) untuk menghitung aturan firewall
+ Menyaring aturan untuk hanya menyertakan aturan yang secara eksplisit mereferensikan port yang ditentukan
+ Hanya memproses binding situs HTTP dan HTTPS dan aturan firewall yang terkait
+ Mempertahankan properti aturan termasuk nama tampilan, tindakan, protokol, dan status yang diaktifkan
+ Menangani port individu dan rentang port dalam aturan firewall
+ Menambahkan skrip konfigurasi firewall ke manifes penerapan

### Konfigurasi penyeimbang beban
<a name="dotnet-migrating-applications-network-vpc-lb"></a>

Anda dapat menentukan konfigurasi Load Balancer melalui argumen. `--vpc-config` Contoh-contoh berikut menunjukkan parameter.

Pemilihan skema  
Pilih antara skema penyeimbang beban publik dan pribadi:  

```
{
    "id": "vpc-12345678",
    "elbscheme": "private",
    "elbsubnets": ["subnet-private1", "subnet-private2"]
}
```

Distribusi subnet  
Untuk ketersediaan tinggi, distribusikan subnet penyeimbang beban di seluruh Availability Zone:  

```
{
    "elbsubnets": [
        "subnet-az1", // Availability Zone 1
        "subnet-az2", // Availability Zone 2
        "subnet-az3"  // Availability Zone 3
    ]
}
```

**catatan**  
Sementara Elastic Beanstalk mendukung pembuatan lingkungan dengan Application Load Balancers, Network Load Balancers, dan Classic Load Balancers, perintah ini hanya mendukung Application Load Balancers. **eb migrate** Untuk informasi selengkapnya tentang tipe penyeimbang beban, lihat [Penyeimbang beban untuk lingkungan Elastic Beanstalk Anda](using-features.managing.elb.md).

## Penerapan multi-situs dengan konfigurasi port
<a name="dotnet-migrating-applications-network-multi"></a>

**eb migrate**Perintah menangani penyebaran IIS multi-situs yang kompleks di mana aplikasi mungkin berbagi dependensi atau menggunakan port non-standar. Pertimbangkan contoh berikut dari pengaturan perusahaan yang khas dengan beberapa situs:

```
<!-- IIS Configuration -->
<sites>
    <site name="Default Web Site" id="1">
        <bindings>
            <binding protocol="http" bindingInformation="*:80:www.example.com" />
        </bindings>
    </site>
    <site name="InternalAPI" id="2">
        <bindings>
            <binding protocol="http" bindingInformation="*:8081:api.internal" />
        </bindings>
    </site>
    <site name="ReportingPortal" id="3">
        <bindings>
            <binding protocol="http" bindingInformation="*:8082:reports.internal" />
        </bindings>
    </site>
</sites>
```

Untuk memigrasikan konfigurasi ini, gunakan contoh perintah dan parameter berikut:

```
PS C:\migrations_workspace> eb migrate `
    --sites "Default Web Site,InternalAPI,ReportingPortal" `
    --copy-firewall-config `
    --instance-type "c5.large"
```

**eb migrate**Perintah membuat paket penyebaran yang mempertahankan identitas dan konfigurasi setiap situs. Perintah menghasilkan sebuah `aws-windows-deployment-manifest.json` yang mendefinisikan bagaimana situs-situs ini harus digunakan. Contoh berikut menunjukkan file json dihasilkan:

```
{
    "manifestVersion": 1,
    "deployments": {
        "msDeploy": [
            {
                "name": "DefaultWebSite",
                "parameters": {
                    "appBundle": "DefaultWebSite.zip",
                    "iisPath": "/",
                    "iisWebSite": "Default Web Site"
                }
            }
        ],
        "custom": [
            {
                "name": "InternalAPI",
                "scripts": {
                    "install": {
                        "file": "ebmigrateScripts\\install_site_InternalAPI.ps1"
                    },
                    "restart": {
                        "file": "ebmigrateScripts\\restart_site_InternalAPI.ps1"
                    },
                    "uninstall": {
                        "file": "ebmigrateScripts\\uninstall_site_InternalAPI.ps1"
                    }
                }
            },
            {
                "name": "ReportingPortal",
                "scripts": {
                    "install": {
                        "file": "ebmigrateScripts\\install_site_ReportingPortal.ps1"
                    },
                    "restart": {
                        "file": "ebmigrateScripts\\restart_site_ReportingPortal.ps1"
                    },
                    "uninstall": {
                        "file": "ebmigrateScripts\\uninstall_site_ReportingPortal.ps1"
                    }
                }
            }
        ]
    }
}
```

Proses migrasi membuat aturan pendengar Application Load Balancer berikut yang mempertahankan logika perutean asli Anda:
+ Port 80 rute lalu lintas ke Situs Web Default
+ Rute lalu lintas Port 8081 ke InternalAPI
+ Rute lalu lintas Port 8082 ke ReportingPortal

## Konfigurasi dan dependensi bersama
<a name="dotnet-migrating-applications-network-shared"></a>

Ketika situs berbagi konfigurasi atau dependensi, **eb migrate** menangani hubungan ini dengan tepat. Referensi contoh berikut di mana beberapa situs berbagi konfigurasi umum:

```
<!-- Shared configuration in applicationHost.config -->
<location path="Default Web Site">
    <system.webServer>
        <asp enableSessionState="true" />
        <caching enabled="true" enableKernelCache="true" />
    </system.webServer>
</location>
```

Proses migrasi menyelesaikan tugas-tugas berikut:

1. Mengidentifikasi konfigurasi bersama di seluruh situs

1. Menghasilkan PowerShell skrip yang sesuai untuk menerapkan pengaturan ini

1. Mempertahankan hierarki konfigurasi dan pewarisan

## Praktik terbaik
<a name="dotnet-migrating-applications-network-best"></a>

Kami menyarankan Anda mengikuti praktik terbaik untuk konfigurasi jaringan aplikasi yang dimigrasi. Pengelompokan berikut memberikan panduan ringkasan.

Desain VPC  
+ Ikuti AWS Praktik Terbaik Desain VPC
+ Gunakan subnet terpisah untuk penyeimbang beban dan instans EC2
+ Menerapkan tabel rute yang tepat dan NACLs
+ Pertimbangkan titik akhir VPC untuk layanan AWS 

Ketersediaan tinggi  
+ Terapkan di beberapa Availability Zone
+ Gunakan setidaknya dua subnet untuk penyeimbang beban
+ Konfigurasikan auto-scaling di seluruh AZs
+ Menerapkan pemeriksaan kesehatan yang tepat

Keamanan  
+ Ikuti Praktik Terbaik Keamanan
+ Gunakan grup keamanan sebagai kontrol akses utama
+ Menerapkan Daftar Kontrol Akses jaringan (ACLs) untuk keamanan tambahan
+ Pantau Log Aliran VPC

## Pemecahan masalah
<a name="dotnet-migrating-applications-network-troubleshooting"></a>

Masalah konfigurasi jaringan umum termasuk area berikut. Mengikuti setiap subjek adalah contoh perintah untuk mendapatkan informasi lebih lanjut tentang konfigurasi jaringan dan kesehatan lingkungan Anda.

Konfigurasi subnet  

```
# Verify subnet availability
PS C:\migrations_workspace> aws ec2 describe-subnets --subnet-ids subnet-id

# Check available IP addresses
PS C:\migrations_workspace>aws ec2 describe-subnets --subnet-ids subnet-id --query 'Subnets[].AvailableIpAddressCount'
```

Akses grup keamanan  

```
# Verify security group rules
PS C:\migrations_workspace> aws ec2 describe-security-groups --group-ids sg-id

# Test network connectivity
PS C:\migrations_workspace> aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-id
```

Kesehatan penyeimbang beban  

```
# Check load balancer health
PS C:\migrations_workspace> aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account-id:targetgroup/group-name/group-id
```

# Konfigurasi keamanan dan peran IAM
<a name="dotnet-migrating-applications-security"></a>

**eb migrate**Perintah mengelola konfigurasi AWS keamanan melalui peran IAM, profil instance, dan peran layanan. Memahami komponen-komponen ini memastikan kontrol akses yang tepat dan kepatuhan keamanan selama migrasi.

## Konfigurasi profil instance
<a name="dotnet-migrating-applications-security-instance"></a>

Profil instans berfungsi sebagai wadah untuk peran IAM yang dilampirkan Elastic Beanstalk ke instans EC2 di lingkungan Anda. Saat mengeksekusi**eb migrate**, Anda dapat menentukan profil instance khusus:

```
PS C:\migrations_workspace> eb migrate --instance-profile "CustomInstanceProfile"
```

Jika Anda tidak menentukan profil **eb migrate** instance, buat profil default dengan izin berikut:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-*",
                "arn:aws:s3:::elasticbeanstalk-*/*"
            ]
        }
    ]
}
```

------

## Manajemen peran layanan
<a name="dotnet-migrating-applications-security-service"></a>

Peran layanan memungkinkan Elastic Beanstalk mengelola sumber daya atas nama AWS Anda. Tentukan peran layanan kustom selama migrasi dengan perintah berikut:

```
PS C:\migrations_workspace> eb migrate --service-role "CustomServiceRole"
```

Jika tidak ditentukan, **eb migrate** buat peran layanan default yang diberi nama `aws-elasticbeanstalk-service-role` dengan kebijakan kepercayaan yang memungkinkan Elastic Beanstalk untuk mengambil peran tersebut. Peran layanan ini sangat penting bagi Elastic Beanstalk untuk memantau kesehatan lingkungan Anda dan melakukan pembaruan platform terkelola. Peran layanan memerlukan dua kebijakan terkelola:
+ `AWSElasticBeanstalkEnhancedHealth`- Memungkinkan Elastic Beanstalk untuk memantau instans dan kesehatan lingkungan menggunakan sistem pelaporan kesehatan yang ditingkatkan
+ `AWSElasticBeanstalkManagedUpdates`- Memungkinkan Elastic Beanstalk untuk melakukan pembaruan platform terkelola, termasuk memperbarui sumber daya lingkungan saat versi platform baru tersedia

Dengan kebijakan ini, peran layanan memiliki izin untuk:
+ Membuat dan mengelola grup Auto Scaling
+ Membuat dan mengelola Application Load Balancers
+ Unggah log ke Amazon CloudWatch
+ Kelola instans EC2

Untuk informasi selengkapnya tentang peran layanan, lihat [Peran layanan Elastic Beanstalk](concepts-roles-service.md) di Panduan Pengembang Elastic Beanstalk.

## Konfigurasi grup keamanan
<a name="dotnet-migrating-applications-security-sg"></a>

**eb migrate**Perintah secara otomatis mengkonfigurasi grup keamanan berdasarkan binding situs IIS Anda. Misalnya, jika lingkungan sumber Anda memiliki situs yang menggunakan port 80, 443, dan 8081 hasil konfigurasi berikut:

```
<site name="Default Web Site">
    <bindings>
        <binding protocol="http" bindingInformation="*:80:" />
        <binding protocol="https" bindingInformation="*:443:" />
    </bindings>
</site>
<site name="InternalAPI">
    <bindings>
        <binding protocol="http" bindingInformation="*:8081:" />
    </bindings>
</site>
```

Proses migrasi menyelesaikan tindakan berikut:
+ Membuat grup keamanan penyeimbang beban yang memungkinkan lalu lintas masuk pada port 80 dan 443 dari internet (0.0.0.0/0)
+ Membuat grup keamanan EC2 yang memungkinkan lalu lintas dari penyeimbang beban
+ Mengkonfigurasi port tambahan (seperti 8081) jika ditentukan `--copy-firewall-config`

Secara default, Application Load Balancer dikonfigurasi dengan akses publik dari internet. Jika Anda perlu menyesuaikan perilaku ini, seperti membatasi akses ke rentang IP tertentu atau menggunakan penyeimbang beban pribadi, Anda dapat mengganti konfigurasi VPC dan grup keamanan default menggunakan parameter: `--vpc-config`

```
PS C:\migrations_workspace> eb migrate --vpc-config vpc-config.json
```

Misalnya, `vpc-config.json` konfigurasi berikut membuat penyeimbang beban pribadi di subnet pribadi:

```
{
    "id": "vpc-12345678",
    "publicip": "false",
    "elbscheme": "internal",
    "ec2subnets": ["subnet-private1", "subnet-private2"],
    "elbsubnets": ["subnet-private1", "subnet-private2"]
}
```

Untuk informasi selengkapnya tentang opsi konfigurasi VPC, lihat. [Konfigurasi VPC](dotnet-migrating-applications-network.md#dotnet-migrating-applications-network-vpc)

## Integrasi sertifikat SSL
<a name="dotnet-migrating-applications-security-ssl"></a>

Saat memigrasi situs dengan binding HTTPS, integrasikan sertifikat SSL melalui AWS Certificate Manager (ACM):

```
PS C:\migrations_workspace> eb migrate --ssl-certificates "arn:aws:acm:region:account:certificate/certificate-id"
```

Konfigurasi ini melengkapi tindakan berikut:
+ Mengaitkan sertifikat dengan Application Load Balancer
+ Mempertahankan penghentian HTTPS di penyeimbang beban
+ Mempertahankan komunikasi HTTP internal antara load balancer dan instans EC2

## Otentikasi Windows
<a name="dotnet-migrating-applications-security-windows"></a>

Untuk aplikasi yang menggunakan Windows Authentication, **eb migrate** mempertahankan pengaturan otentikasi dalam aplikasi sebagai berikut: `web.config`

```
<configuration>
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true">
                    <providers>
                        <add value="Negotiate" />
                        <add value="NTLM" />
                    </providers>
                </windowsAuthentication>
            </authentication>
        </security>
    </system.webServer>
</configuration>
```

**penting**  
**eb migrate**Perintah tidak menyalin profil pengguna atau akun dari lingkungan sumber Anda ke instance Elastic Beanstalk target. Akun atau grup pengguna kustom apa pun yang telah Anda buat di server sumber Anda perlu dibuat ulang di lingkungan target setelah migrasi.

Akun Windows bawaan seperti `IUSR` dan grup seperti`IIS_IUSRS`, serta semua akun dan grup bawaan lainnya, disertakan secara default pada instance Windows Server target. Untuk informasi selengkapnya tentang akun dan grup IIS [bawaan, lihat Memahami Akun Pengguna dan Grup Bawaan di IIS](https://learn.microsoft.com/en-us/iis/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis) dalam dokumentasi Microsoft.

Jika aplikasi Anda bergantung pada akun pengguna Windows kustom atau integrasi Active Directory, Anda perlu mengonfigurasi aspek-aspek ini secara terpisah setelah migrasi selesai.

## Praktik terbaik dan pemecahan masalah
<a name="dotnet-migrating-applications-security-best"></a>

### Manajemen peran
<a name="dotnet-migrating-applications-security-best-role"></a>

Terapkan praktik terbaik AWS IAM saat mengelola peran untuk lingkungan Elastic Beanstalk Anda:

Pembuatan dan manajemen peran  
+ Buat peran menggunakan kebijakan AWS terkelola jika memungkinkan
+ Ikuti [Praktik Terbaik Keamanan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
+ Gunakan [AWS Policy Generator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) untuk kebijakan kustom
+ Menerapkan [batas izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) untuk keamanan tambahan

Pemantauan dan audit  
Aktifkan AWS CloudTrail untuk memantau penggunaan peran:  
+ Ikuti [Panduan AWS CloudTrail Pengguna](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ Konfigurasikan integrasi CloudWatch Log untuk pemantauan waktu nyata
+ Menyiapkan peringatan untuk panggilan API yang tidak sah

Proses peninjauan rutin  
Tetapkan siklus tinjauan triwulanan untuk melakukan tugas-tugas berikut:  
+ Audit izin yang tidak digunakan menggunakan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) Access Analyzer
+ Hapus izin yang sudah ketinggalan zaman
+ Perbarui peran berdasarkan prinsip hak istimewa paling sedikit

### Manajemen sertifikat
<a name="dotnet-migrating-applications-security-best-cert"></a>

Terapkan praktik ini untuk SSL/TLS sertifikat di lingkungan Elastic Beanstalk Anda:

Siklus hidup sertifikat  
+ Gunakan [AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)untuk manajemen sertifikat
+ Aktifkan [perpanjangan otomatis untuk sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/check-certificate-renewal-status.html) yang dikeluarkan ACM
+ Siapkan pemberitahuan [kedaluwarsa](https://docs.aws.amazon.com/acm/latest/userguide/notifications-for-ACM.html)

Standar keamanan  
+ Gunakan TLS 1.2 atau yang lebih baru
+ Ikuti [kebijakan AWS keamanan](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) untuk pendengar HTTPS
+ Menerapkan HTTP Strict Transport Security (HSTS) jika diperlukan

### Manajemen kelompok keamanan
<a name="dotnet-migrating-applications-security-best-sg"></a>

Terapkan praktik terbaik grup keamanan ini:

Manajemen aturan  
+ Dokumentasikan semua persyaratan port khusus
+ Gunakan [VPC Flow Logs untuk memantau lalu](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) lintas
+ Gunakan [aturan referensi Grup Keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) alih-alih rentang IP jika memungkinkan

Audit reguler  
Tetapkan ulasan bulanan untuk melakukan tugas-tugas berikut:  
+ Mengidentifikasi dan menghapus aturan yang tidak digunakan
+ Validasi persyaratan source/destination 
+ Periksa aturan yang tumpang tindih

### Pencatatan log dan pemantauan
<a name="dotnet-migrating-applications-security-best-logging"></a>

Untuk pemantauan keamanan yang efektif, konfigurasikan log berikut:

Log peristiwa Windows pada instans EC2  

```
# Review Security event log
PS C:\migrations_workspace> Get-EventLog -LogName Security -Newest 50

# Check Application event log
PS C:\migrations_workspace> Get-EventLog -LogName Application -Source "IIS*"
```

CloudWatch Integrasi log  
Konfigurasikan agen CloudWatch Log untuk mengalirkan log peristiwa Windows CloudWatch untuk pemantauan dan peringatan terpusat.

Untuk masalah yang terus-menerus, kumpulkan log ini dan kontak AWS Dukungan dengan informasi berikut:
+ ID Lingkungan
+ ID Deployment (jika ada)
+ Pesan kesalahan yang relevan
+ Garis waktu perubahan keamanan

# Memahami IIS ke pemetaan migrasi Elastic Beanstalk
<a name="dotnet-migrating-applications-mapping"></a>

Migrasi dari IIS ke Elastic Beanstalk melibatkan pemetaan konfigurasi server Windows lokal Anda ke sumber daya cloud. AWS Memahami pemetaan ini sangat penting untuk keberhasilan migrasi dan manajemen pasca-migrasi.

## Situs dan aplikasi IIS di Elastic Beanstalk
<a name="dotnet-migrating-applications-mapping-sites"></a>

Dalam IIS, situs web mewakili kumpulan aplikasi web dan direktori virtual, masing-masing dengan konfigurasi dan kontennya sendiri. Saat bermigrasi ke Elastic Beanstalk, komponen-komponen ini diubah sebagai berikut:

**Situs web IIS**  
Situs web IIS Anda menjadi aplikasi dalam Elastic Beanstalk. Setiap konfigurasi situs web, termasuk binding, kumpulan aplikasi, dan pengaturan otentikasi, dipertahankan melalui manifes penyebaran () Elastic Beanstalk. `aws-windows-deployment-manifest.json`  
Misalnya, jika Anda memiliki beberapa situs seperti *Situs Web Default* dan *IntranetSite*, **eb migrate** paket konten dan konfigurasi setiap situs sambil mempertahankan isolasi mereka.  
Perintah ini membuat aturan pendengar Application Load Balancer (ALB) yang sesuai untuk menangani permintaan perutean ke aplikasi Anda. Ini juga mengkonfigurasi grup keamanan untuk memastikan akses port yang tepat berdasarkan binding IIS asli Anda.

**Kolam aplikasi**  
Kumpulan aplikasi IIS menyediakan isolasi proses pekerja, manajemen runtime, dan kemampuan daur ulang untuk aplikasi Anda. Dalam Elastic Beanstalk, ini dipetakan ke proses lingkungan yang ditentukan `aws:elasticbeanstalk:environment:process` melalui namespace dan dikonfigurasi melalui IIS pada instance. EC2   
Migrasi mempertahankan setelan kumpulan aplikasi penting termasuk yang berikut ini:  
+ Konfigurasi model proses - Identitas (ApplicationPoolIdentity, NetworkService, atau akun khusus), pengaturan batas waktu idle, dan interval daur ulang proses
+ Pengaturan versi.NET CLR - Mempertahankan versi.NET Framework yang ditentukan (v2.0, v4.0, atau No Managed Code) untuk memastikan kompatibilitas aplikasi
+ Mode pipeline terkelola - Mempertahankan pengaturan mode pipeline Terintegrasi atau Klasik untuk mempertahankan arsitektur pemrosesan permintaan HTTP Anda
+ Pengaturan lanjutan - Panjang antrian, batas CPU, ambang batas perlindungan yang cepat gagal, dan batas waktu startup
**eb migrate**Perintah mempertahankan pemetaan antara situs dan kumpulan aplikasi selama migrasi ke lingkungan Elastic Beanstalk Anda.  
Jika kumpulan aplikasi Anda menggunakan jadwal daur ulang kustom (waktu tertentu atau ambang batas memori), ini diimplementasikan melalui PowerShell skrip dalam paket penerapan yang mengonfigurasi pengaturan IIS yang sesuai pada instance. EC2 

**Binding situs web**  
Binding situs web IIS, yang menentukan bagaimana klien mengakses aplikasi Anda, diubah menjadi konfigurasi Application Load Balancer (ALB) berikut:  
+ Binding port dipetakan ke aturan pendengar ALB yang sesuai
+ Konfigurasi header host diterjemahkan ke dalam aturan perutean ALB
+ Situs berkemampuan SSL menggunakan AWS Certificate Manager (ACM) untuk manajemen sertifikat

## Direktori virtual dan manajemen jalur aplikasi
<a name="dotnet-migrating-applications-mapping-virtual-dirs"></a>

Direktori dan aplikasi virtual IIS menyediakan pemetaan jalur URL ke direktori fisik. Elastic Beanstalk mempertahankan hubungan ini melalui konstruksi berikut:

**Direktori virtual**  
Proses migrasi mempertahankan jalur fisik direktori virtual Anda dalam paket penyebaran.  
Pemetaan jalur dikonfigurasi dalam konfigurasi IIS pada EC2 instance, memastikan bahwa struktur URL Anda tetap utuh setelah migrasi.

**Jalur fisik penggerak non-sistem**  
Secara default, lingkungan Elastic Beanstalk Windows hanya menyediakan drive C:\$1 (volume root). Dalam versi saat ini, aplikasi dengan konten pada drive non-sistem (D:\$1, E:\$1, dll.) Tidak didukung untuk migrasi.
**eb migrate**Perintah secara otomatis mendeteksi jalur fisik yang terletak di drive non-sistem dan memperingatkan Anda tentang potensi masalah seperti contoh berikut:  

```
ERROR: Detected physical paths on drive D:\ which are not supported in the current version:
  - D:\websites\intranet
  - D:\shared\images

Migration of content from non-system drives is not supported. Please relocate this content to the C:\ drive before migration. Otherwise, select only those sites that are on C:\.
```
Jika aplikasi Anda memiliki dependensi pada drive non-sistem, Anda perlu memodifikasi aplikasi Anda untuk menyimpan semua konten di drive C:\$1 sebelum migrasi.

**Aplikasi bersarang**  
Aplikasi yang bersarang di bawah situs web digunakan dengan konfigurasi jalur yang benar dan penugasan kumpulan aplikasi yang sesuai. Proses migrasi mempertahankan semua ` web.config` pengaturan, memastikan bahwa konfigurasi khusus aplikasi terus berfungsi seperti yang diharapkan di lingkungan cloud.

## Penulisan ulang URL dan perutean permintaan aplikasi (ARR)
<a name="dotnet-migrating-applications-mapping-url-rewrite"></a>

Jika penyebaran IIS Anda menggunakan URL Rewrite atau Application Request Routing (ARR), **eb migrate** menangani konfigurasi ini melalui aturan dan konfigurasi berikut:

**Aturan penulisan ulang URL**  
Aturan penulisan ulang URL dari `web.config` file Anda diterjemahkan ke dalam aturan perutean ALB jika memungkinkan. Misalnya, entri berikut menjadi aturan pendengar ALB yang mengarahkan lalu lintas berdasarkan header host dan pola jalur. :  

```
<!-- Original IIS URL Rewrite Rule -->
<rule name="Redirect to WWW" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^example.com$" />
    </conditions>
    <action type="Redirect" url="http://www.example.com/{R:1}" />
</rule>
```


**Perutean permintaan aplikasi**  
Konfigurasi ARR dipertahankan melalui instalasi fitur ARR pada instance. EC2 Proses migrasi menyelesaikan tugas-tugas berikut:  
+ Mengonfigurasi pengaturan proxy agar sesuai dengan lingkungan sumber Anda
+ Mempertahankan aturan penulisan ulang URL yang terkait dengan ARR

## Struktur artefak migrasi
<a name="dotnet-migrating-applications-mapping-artifacts"></a>

Ketika Anda menjalankan**eb migrate**, itu membuat direktori terstruktur yang berisi semua komponen penyebaran yang diperlukan. Daftar berikut menjelaskan struktur direktori:

```
C:\migration_workspace\
└── .\migrations\latest\
    └── upload_target\
        ├── [SiteName].zip                 # One ZIP per IIS site
        ├── aws-windows-deployment-manifest.json
        └── ebmigrateScripts\
            ├── site_installer.ps1         # Site installation scripts
            ├── arr_configuration.ps1      # ARR configuration scripts
            ├── permission_handler.ps1     # Permission management
            └── firewall_config.ps1        # Windows Firewall rules
```

`aws-windows-deployment-manifest.json`File ini adalah file konfigurasi inti yang menginstruksikan Elastic Beanstalk cara menerapkan aplikasi Anda. Lihat contoh struktur berikut:

```
{
    "manifestVersion": 1,
    "deployments": {
        "msDeploy": [
            {
                "name": "Primary Site",
                "parameters": {
                    "appBundle": "DefaultWebSite.zip",
                    "iisPath": "/",
                    "iisWebSite": "Default Web Site"
                }
            }
        ],
        "custom": [
            {
                "name": "ConfigureARR",
                "scripts": {
                    "install": {
                        "file": "ebmigrateScripts\\arr_configuration.ps1"
                    },
                    "uninstall": {
                        "file": "ebmigrateScripts\\noop.ps1"
                    },
                    "restart": {
                        "file": "ebmigrateScripts\\noop.ps1"
                    }
                }
            }
        ]
    }
}
```

Manifes ini memastikan hasil ini untuk migrasi Anda:
+ Aplikasi digunakan untuk memperbaiki jalur IIS
+ Konfigurasi kustom diterapkan
+ Pengaturan khusus situs dipertahankan
+ Urutan penyebaran dipertahankan

# Skenario migrasi lanjutan
<a name="dotnet-migrating-applications-advanced-scenarios"></a>

Bagian ini mencakup skenario migrasi lanjutan untuk penerapan IIS yang kompleks.

## Migrasi multi-situs dengan Application Request Routing (ARR)
<a name="dotnet-migrating-applications-advanced-scenarios-arr"></a>

**eb migrate**Perintah secara otomatis mendeteksi dan mempertahankan konfigurasi ARR selama migrasi. Ketika mengidentifikasi pengaturan ARR di IIS Anda`applicationHost.config`, itu menghasilkan PowerShell skrip yang diperlukan untuk menginstal ulang dan mengkonfigurasi ARR pada instance target. EC2 

### Deteksi konfigurasi ARR
<a name="dotnet-migrating-applications-advanced-scenarios-arr-detection"></a>

Proses migrasi memeriksa tiga bagian konfigurasi utama di IIS:
+ `system.webServer/proxy`: Pengaturan proxy ARR inti
+ `system.webServer/rewrite`: Aturan penulisan ulang URL
+ `system.webServer/caching`: Konfigurasi caching

Misalnya, pertimbangkan konfigurasi ARR umum di mana proxy port 80 yang `RouterSite` berjalan meminta `APIService` dan `AdminPortal` berjalan pada port 8081 dan 8082 masing-masing:

```
<!-- Original IIS ARR Configuration -->
<rewrite>
    <rules>
        <rule name="Route to API" stopProcessing="true">
            <match url="^api/(.*)$" />
            <action type="Rewrite" url="http://backend:8081/api/{R:1}" />
        </rule>
        <rule name="Route to Admin" stopProcessing="true">
            <match url="^admin/(.*)$" />
            <action type="Rewrite" url="http://backend:8082/admin/{R:1}" />
        </rule>
    </rules>
</rewrite>
```

Diagram berikut menggambarkan bagaimana aturan ini tersembunyi di balik port 80 di server IIS dan tidak diekspos melalui Grup EC2 Keamanan. Hanya port 80 yang dapat diakses oleh Application Load Balancer dan semua lalu lintas darinya dialihkan ke grup target di port 80.

![\[Arsitektur Elastic Beanstalk dengan Application Request Routing (ARR)\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/architecture-diagram-with-arr.png)


Perintah berikut dapat memigrasikan konfigurasi ini:

```
PS C:\migrations_workspace> eb migrate --sites "RouterSite,APIService,AdminPortal" `
    --copy-firewall-config
```

### Proses migrasi ARR
<a name="dotnet-migrating-applications-advanced-scenarios-arr-process"></a>

Proses migrasi mempertahankan konfigurasi ARR Anda melalui beberapa langkah.

Ekspor konfigurasi  
Alat ini mengekspor pengaturan ARR Anda yang ada dari tiga bagian konfigurasi kunci ke dalam file XHTML terpisah yang disimpan dalam direktori: `ebmigrateScripts`  

```
ebmigrateScripts\
├── arr_config_proxy.xml
├── arr_config_rewrite.xml
└── arr_config_caching.xml
```

Skrip instalasi  
Dua PowerShell skrip dihasilkan untuk menangani penyiapan ARR:  

1. `arr_msi_installer.ps1`: Mengunduh dan menginstal modul ARR

1. `arr_configuration_importer_script.ps1`: Mengimpor konfigurasi ARR Anda yang diekspor

Integrasi manifes penerapan  
Skrip diintegrasikan ke dalam proses penyebaran melalui entri di: `aws-windows-deployment-manifest.json`  

```
{
    "manifestVersion": 1,
    "deployments": {
        "custom": [
            {
                "name": "WindowsProxyFeatureEnabler",
                "scripts": {
                    "install": {
                        "file": "ebmigrateScripts\\windows_proxy_feature_enabler.ps1"
                    }
                }
            },
            {
                "name": "ArrConfigurationImporterScript",
                "scripts": {
                    "install": {
                        "file": "ebmigrateScripts\\arr_configuration_importer_script.ps1"
                    }
                }
            }
        ]
    }
}
```

### Integrasi penyeimbang beban
<a name="dotnet-migrating-applications-advanced-scenarios-arr-lb"></a>

Proses migrasi menerjemahkan aturan ARR Anda ke dalam aturan pendengar Application Load Balancer (ALB) jika memungkinkan. Misalnya, konfigurasi ARR di atas menghasilkan aturan ALB yang merutekan lalu lintas berdasarkan pola jalur URL sambil mempertahankan perutean internal pada instance. EC2 

Lingkungan yang dihasilkan mempertahankan logika perutean ARR Anda sambil memanfaatkan infrastruktur elastis. AWS Aplikasi Anda terus berfungsi seperti sebelumnya, dengan ARR menangani perutean internal sementara Application Load Balancer mengelola distribusi lalu lintas eksternal.

## Migrasi multi-situs tanpa ARR menggunakan perutean berbasis host
<a name="dotnet-migrating-applications-advanced-scenarios-no-arr"></a>

Sementara Application Request Routing (ARR) adalah pendekatan umum untuk mengelola beberapa situs di IIS, Anda juga dapat memigrasikan penyebaran multi-situs langsung ke Elastic Beanstalk tanpa ARR dengan memanfaatkan kemampuan routing berbasis host Application Load Balancer. Pendekatan ini dapat mengurangi kompleksitas dan meningkatkan kinerja dengan menghilangkan lapisan routing tambahan.

### Ikhtisar perutean berbasis host
<a name="dotnet-migrating-applications-advanced-scenarios-no-arr-overview"></a>

Dalam pendekatan ini, setiap situs IIS diekspos di luar EC2 instance, dan Application Load Balancer mengarahkan lalu lintas langsung ke port yang sesuai berdasarkan header host. Ini menghilangkan kebutuhan akan ARR sambil mempertahankan pemisahan antara aplikasi Anda.

Pertimbangkan konfigurasi IIS multi-situs dengan tiga situs, masing-masing dengan pengikatan nama hostnya sendiri:

```
<sites>
    <site name="Default Web Site" id="1">
        <bindings>
            <binding protocol="http" bindingInformation="*:8081:www.example.com" />
        </bindings>
    </site>
    <site name="InternalAPI" id="2">
        <bindings>
            <binding protocol="http" bindingInformation="*:8082:api.internal" />
        </bindings>
    </site>
    <site name="ReportingPortal" id="3">
        <bindings>
            <binding protocol="http" bindingInformation="*:8083:reports.internal" />
        </bindings>
    </site>
</sites>
```

Situs-situs ini diekspos di port 8081, 8082, dan 8083 melalui Grup Keamanan. EC2 Application Load Balancer merutekan ke mereka berdasarkan konfigurasi aturan pendengar Load Balancer.

![\[Arsitektur Elastic Beanstalk tanpa Application Request Routing (ARR)\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/architecture-diagram-without-arr.png)


### Proses migrasi
<a name="dotnet-migrating-applications-advanced-scenarios-no-arr-migration"></a>

Untuk memigrasikan konfigurasi ini ke Elastic Beanstalk tanpa menggunakan ARR **eb migrate** gunakan perintah dalam contoh berikut:

```
PS C:\migrations_workspace> eb migrate --sites "Default Web Site,InternalAPI,ReportingPortal"
```

Proses migrasi secara otomatis mengonfigurasi Application Load Balancer dengan aturan perutean berbasis host yang mengarahkan lalu lintas ke grup target yang sesuai berdasarkan header host. Setiap grup target meneruskan lalu lintas ke port yang sesuai pada EC2 instans Anda:

1. Header host www.example.com → Grup Sasaran di port 8081

1. Header host api.internal → Grup Sasaran pada port 8082

1. Host header reports.internal → Grup Sasaran di port 8083

### Konfigurasi SSL/TLS
<a name="dotnet-migrating-applications-advanced-scenarios-no-arr-ssl"></a>

Untuk mengamankan aplikasi Anda dengan SSL/TLS lakukan langkah-langkah berikut:

1. Minta sertifikat untuk domain Anda melalui AWS Certificate Manager(ACM).

1. Konfigurasikan listener HTTPS pada Application Load Balancer Anda menggunakan sertifikat ini.

1. Perbarui konfigurasi lingkungan Anda untuk menyertakan pendengar HTTPS dengan pengaturan opsi konfigurasi berikut.

   ```
   option_settings:
     aws:elb:listener:443:
       ListenerProtocol: HTTPS
       SSLCertificateId: arn:aws:acm:region:account-id:certificate/certificate-id
       InstancePort: 80
       InstanceProtocol: HTTP
   ```

Dengan konfigurasi ini, penghentian SSL terjadi di penyeimbang beban, dan lalu lintas diteruskan ke instance Anda melalui HTTP. Ini menyederhanakan manajemen sertifikat sambil mempertahankan koneksi aman dengan klien.

### Praktik terbaik
<a name="dotnet-migrating-applications-advanced-scenarios-no-arr-best"></a>

Grup keamanan  
Konfigurasikan grup keamanan untuk mengizinkan lalu lintas masuk hanya pada port yang digunakan oleh situs IIS Anda (8081, 8082, 8083 dalam contoh ini) dari grup keamanan Application Load Balancer.

Pemeriksaan kondisi  
Konfigurasikan pemeriksaan kesehatan untuk setiap grup sasaran untuk memastikan lalu lintas hanya diarahkan ke instance yang sehat. Buat titik akhir pemeriksaan kesehatan untuk setiap aplikasi jika belum ada.

Memantau  
Siapkan CloudWatch alarm untuk memantau kesehatan dan kinerja masing-masing kelompok sasaran secara terpisah. Ini memungkinkan Anda mengidentifikasi masalah khusus untuk aplikasi individual.

Penskalaan  
Pertimbangkan persyaratan sumber daya dari semua aplikasi saat mengonfigurasi kebijakan penskalaan otomatis. Jika satu aplikasi memiliki kebutuhan sumber daya yang berbeda secara signifikan, pertimbangkan untuk memigrasikannya ke lingkungan yang terpisah.

## Manajemen direktori virtual
<a name="dotnet-migrating-applications-advanced-scenarios-vdir"></a>

**eb migrate**Perintah mempertahankan struktur direktori virtual saat memigrasikan aplikasi IIS Anda ke Elastic Beanstalk.

### Konfigurasi izin default
<a name="dotnet-migrating-applications-advanced-scenarios-vdir-default"></a>

Saat memigrasi direktori virtual, **eb migrate** tetapkan sekumpulan izin dasar dengan memberikan akses ke: ReadAndExecute 
+ IIS\$1IUSRS
+ IUSR
+ Pengguna yang Diautentikasi

Misalnya, pertimbangkan struktur direktori virtual yang khas:

```
<site name="CorporatePortal">
    <application path="/" applicationPool="CorporatePortalPool">
        <virtualDirectory path="/" physicalPath="C:\sites\portal" />
        <virtualDirectory path="/shared" physicalPath="C:\shared\content" />
        <virtualDirectory path="/reports" physicalPath="D:\reports" />
    </application>
</site>
```

### Direktori virtual yang dilindungi kata sandi
<a name="dotnet-migrating-applications-advanced-scenarios-vdir-password"></a>

Ketika **eb migrate** menemukan direktori virtual yang dilindungi kata sandi, itu mengeluarkan peringatan dan memerlukan intervensi manual. 

Contoh konfigurasi berikut akan menyebabkan respons peringatan yang mengikuti contoh.

```
<virtualDirectory path="/secure" 
                 physicalPath="C:\secure\content"
                 userName="DOMAIN\User"
                 password="[encrypted]" />
```

```
[WARNING] CorporatePortal/secure is hosted at C:\secure\content which is password-protected and won't be copied.
```

Untuk mempertahankan perlindungan kata sandi, buat skrip penerapan kustom seperti berikut ini:

```
# PS C:\migrations_workspace> cat secure_vdir_config.ps1

$vdirPath = "C:\secure\content"
$siteName = "CorporatePortal"
$vdirName = "secure"
$username = "DOMAIN\User"
$password = "SecurePassword"

# Ensure directory exists
if (-not (Test-Path $vdirPath)) {
    Write-Host "Creating directory: $vdirPath"
    New-Item -Path $vdirPath -ItemType Directory -Force
}

# Configure virtual directory with credentials
Write-Host "Configuring protected virtual directory: $vdirName"
New-WebVirtualDirectory -Site $siteName -Name $vdirName `
    -PhysicalPath $vdirPath -UserName $username -Password $password

# Set additional permissions as needed
$acl = Get-Acl $vdirPath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    $username, "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl $vdirPath $acl
```

Tambahkan skrip ini ke penerapan Anda dengan memasukkannya ke dalam manifes:

```
{
    "manifestVersion": 1,
    "deployments": {
        "custom": [
            {
                "name": "SecureVirtualDirectory",
                "scripts": {
                    "install": {
                        "file": "secure_vdir_config.ps1"
                    }
                }
            }
        ]
    }
}
```

### Manajemen izin khusus
<a name="dotnet-migrating-applications-advanced-scenarios-vdir-custom"></a>

**eb migrate**Perintah ini menyediakan kerangka kerja untuk skrip izin khusus untuk mengakomodasi aplikasi yang memerlukan izin selain default. 



```
$paths = @(
    "C:\sites\portal\uploads",
    "C:\shared\content"
)

foreach ($path in $paths) {
    if (-not (Test-Path $path)) {
        Write-Host "Creating directory: $path"
        New-Item -Path $path -ItemType Directory -Force
    }

    $acl = Get-Acl $path

    # Add custom permissions
    $customRules = @(
        # Application Pool Identity - Full Control
        [System.Security.AccessControl.FileSystemAccessRule]::new(
            "IIS AppPool\CorporatePortalPool", 
            "FullControl", 
            "ContainerInherit,ObjectInherit", 
            "None", 
            "Allow"
        ),
        # Custom Service Account
        [System.Security.AccessControl.FileSystemAccessRule]::new(
            "NT SERVICE\CustomService", 
            "Modify", 
            "ContainerInherit,ObjectInherit", 
            "None", 
            "Allow"
        )
    )

    foreach ($rule in $customRules) {
        $acl.AddAccessRule($rule)
    }
    
    Set-Acl $path $acl
    Write-Host "Custom permissions applied to: $path"
}
```

### Praktik terbaik
<a name="dotnet-migrating-applications-advanced-scenarios-vdir-best"></a>

Ikuti praktik terbaik ini untuk merencanakan, menjalankan, memantau, dan memverifikasi migrasi Anda.

Perencanaan pra-migrasi  
Dokumentasikan izin dan persyaratan otentikasi yang ada sebelum migrasi. Uji skrip izin khusus di lingkungan pengembangan sebelum menerapkan ke produksi.

Manajemen konten bersama  
Untuk direktori konten bersama, pastikan semua izin sistem file yang diperlukan dikonfigurasi dengan benar melalui skrip khusus. Pertimbangkan untuk menggunakan [Amazon FSx untuk Windows File Server](https://aws.amazon.com/fsx/windows/) untuk persyaratan penyimpanan bersama.

Pemantauan dan verifikasi  
Pantau log aplikasi setelah migrasi untuk memverifikasi akses yang tepat ke direktori virtual. Berikan perhatian khusus pada bidang-bidang berikut:  
+ Akses identitas kumpulan aplikasi
+ Izin akun layanan kustom
+ Konektivitas berbagi jaringan
+ Kegagalan otentikasi

## Pengaturan kolam aplikasi kustom
<a name="dotnet-migrating-applications-advanced-scenarios-apppool"></a>

**eb migrate**Perintah tidak menyalin pengaturan kumpulan aplikasi kustom secara default. Untuk mempertahankan konfigurasi kumpulan aplikasi kustom, ikuti prosedur ini untuk membuat dan menerapkan bagian manifes kustom.

1. Buat arsip artefak migrasi Anda.

   ```
   PS C:\migrations_workspace> eb migrate --archive
   ```

1. Buat PowerShell skrip kustom untuk mengkonfigurasi kumpulan aplikasi.

   ```
   # PS C:\migrations_workspace> cat .\migrations\latest\upload_target\customize_application_pool_config.ps1
   
   $configPath = "$env:windir\System32\inetsrv\config\applicationHost.config"
   
   [xml]$config = Get-Content -Path $configPath
   
   $newPoolXml = @"
   <!-- Original IIS Configuration -->
   <applicationPools>
       <add name="CustomPool" 
            managedRuntimeVersion="v4.0" 
            managedPipelineMode="Integrated">
           <processModel identityType="SpecificUser" 
                        userName="AppPoolUser" 
                        password="[encrypted]" />
           <recycling>
               <periodicRestart time="00:00:00">
                   <schedule>
                       <add value="02:00:00" />
                       <add value="14:00:00" />
                   </schedule>
               </periodicRestart>
           </recycling>
       </add>
   </applicationPools>
   "@
   $newPoolXmlNode = [xml]$newPoolXml
   
   # Find the applicationPools section
   $applicationPools = $config.SelectSingleNode("//configuration/system.applicationHost/applicationPools")
   
   # Import the new node into the document
   $importedNode = $config.ImportNode($newPoolXmlNode.DocumentElement, $true)
   $applicationPools.AppendChild($importedNode)
   
   # Save the changes
   $config.Save($configPath)
   
   Write-Host "ApplicationHost.config has been updated successfully."
   ```

1. Perbarui `aws-windows-deployment-manifest.json` file untuk menyertakan skrip kustom Anda.

   ```
   {
       "manifestVersion": 1,
       "deployments": {
           ...
           "custom": [
               ...,
               {
                   "name": "ModifyApplicationPoolConfig",
                   "description": "Modify application pool configuration from source machine to remove",
                   "scripts": {
                       "install": {
                           "file": "customize_application_pool_config.ps1"
                       },
                       "restart": {
                           "file": "ebmigrateScripts\\noop.ps1"
                       },
                       "uninstall": {
                           "file": "ebmigrateScripts\\noop.ps1"
                       }
                   }
               }
           ]
       }
   }
   ```

1. Buat lingkungan dengan direktori arsip yang diperbarui.

   ```
   PS C:\migrations_workspace> eb migrate `
       --archive-dir '.\migrations\latest\upload_target\'
   ```

`--archive-dir`Argumen mengatakan **eb migrate** untuk menggunakan kode sumber yang sebelumnya dibuat, menghindari pembuatan arsip baru.

## Menerapkan versi sebelumnya
<a name="dotnet-migrating-applications-advanced-scenarios-previous"></a>

The **eb migrate** mempertahankan riwayat migrasi Anda melalui direktori stempel waktu dan versi aplikasi di Elastic Beanstalk. Setiap migrasi membuat file zip unik yang dapat digunakan jika diperlukan.

```
PS C:\migrations_workspace> ls .\migrations\

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d----l        3/18/2025  10:34 PM                latest
d-----        3/16/2025   5:47 AM                migration_1742104049.479849
d-----        3/17/2025   9:18 PM                migration_1742246303.18056
d-----        3/17/2025   9:22 PM                migration_1742246546.565739
...
d-----        3/18/2025  10:34 PM                migration_1742337258.30742
```

Tautan `latest` simbolis selalu menunjuk ke direktori artefak migrasi yang paling baru dibuat. Selain log aplikasi dan kesalahan yang relevan, setiap direktori artefak migrasi juga berisi `upload_target.zip` file yang dapat Anda gunakan ke Elastic Beanstalk.

```
PS C:\migrations_workspace> ls .\migrations\latest\

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        3/18/2025  10:34 PM                upload_target
-a----        3/18/2025  10:34 PM          13137 application.log
-a----        3/18/2025  10:34 PM              0 error.log
-a----        3/18/2025  10:34 PM        1650642 upload_target.zip
```

Anda dapat menyebarkan `upload_target.zip` file menggunakan**eb migrate**:

```
PS C:\migrations_workspace> eb migrate --zip .\migrations\latest\upload_target.zip
```

# Pemecahan masalah dan diagnostik
<a name="dotnet-migrating-applications-troubleshooting"></a>

**Coba Amazon Q Developer CLI untuk pemecahan masalah yang dibantu AI**  
 Amazon Q Developer CLI dapat membantu Anda memecahkan masalah lingkungan dengan cepat. Q CLI memberikan solusi dengan memeriksa status lingkungan, meninjau peristiwa, menganalisis log, dan mengajukan pertanyaan klarifikasi. Untuk informasi selengkapnya dan penelusuran terperinci, lihat [Memecahkan Masalah Lingkungan Elastic Beanstalk dengan CLI](https://aws.amazon.com/blogs/devops/troubleshooting-elastic-beanstalk-environments-with-amazon-q-developer-cli/) Pengembang Amazon Q di blog. AWS 

Bagian ini memberikan panduan untuk memecahkan masalah umum yang mungkin timbul selama migrasi aplikasi IIS ke Elastic Beanstalk.

## Mengaitkan EC2 keypair dengan lingkungan Anda
<a name="dotnet-migrating-applications-troubleshooting-keypair"></a>

Anda dapat masuk dengan aman ke instans Amazon Elastic Compute Cloud EC2 (Amazon) yang disediakan untuk aplikasi Elastic Beanstalk Anda dengan key pair Amazon. EC2 Untuk petunjuk cara membuat key pair, lihat [Membuat Pasangan Kunci Menggunakan Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair) di *Panduan EC2 Pengguna Amazon*.

Menentukan nama kunci untuk **eb migrate** memiliki efek mengaitkan lingkungan Elastic Beanstalk Anda dengan keypair. Untuk tujuan keamanan, ini tidak akan membuka port 3389 pada grup keamanan EC2 instans Anda. Anda dapat mengaitkan grup EC2 keamanan tambahan yang memungkinkan lalu lintas di port 3389 **eb config** setelah migrasi awal.

```
PS C:\migrations_workspace> eb migrate  `
    --keyname "my-keypair"  `
    --verbose
```

Saat Anda membuat key pair, Amazon EC2 menyimpan salinan kunci publik Anda. Jika Anda tidak perlu lagi menggunakannya untuk terhubung ke instance lingkungan apa pun, Anda dapat menghapusnya dari Amazon EC2. Untuk detailnya, lihat [Menghapus Pasangan Kunci Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair) di *Panduan EC2 Pengguna Amazon*.

Untuk informasi selengkapnya tentang menghubungkan ke EC2 instans Windows Amazon, lihat [Menghubungkan ke Instans Windows](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html).

## Mengakses log
<a name="dotnet-migrating-applications-troubleshooting-logs"></a>

EB CLI menyediakan fasilitas **eb logs** yang dapat Anda gunakan untuk mengambil log dari lingkungan Elastic Beanstalk tanpa masuk ke instance-nya. EC2 Setelah eksekusi**eb migrate**, Anda dapat mengeluarkan **eb logs --zip** perintah yang akan mengunduh dan menyimpan log ke `.elasticbeanstalk\logs` direktori.

Atau, Anda dapat melihat log melalui konsol AWS Elastic Beanstalk. Untuk informasi selengkapnya, lihat [Melihat log dari instans Amazon EC2 di lingkungan Elastic Beanstalk Anda](using-features.logging.md).

## Mengakses artefak sisi klien
<a name="dotnet-migrating-applications-troubleshooting-artifacts"></a>

**eb migrate**Perintah menyimpan log aplikasi dan kesalahan yang dihasilkan oleh direktori artefak migrasi **msdeploy** di dalam.

```
./migrations/
├── latest -> migration_20240308_123456/
└── migration_20240308_123456/
    ├── application.log
    ├── error.log
    └── upload_target\
```

## Memantau kesehatan lingkungan
<a name="dotnet-migrating-applications-troubleshooting-health"></a>

Elastic Beanstalk membantu Anda memantau kesehatan menggunakan kemampuan pemantauan kesehatan yang ditingkatkan. Ini adalah sistem pemantauan kesehatan otomatis yang terus melacak status operasional instance aplikasi, memanfaatkan metrik bawaan seperti pemanfaatan CPU, latensi, jumlah permintaan, dan kode respons.

Sistem pemantauan kesehatan menggunakan pendekatan berbasis agen untuk mengumpulkan data tingkat instans dan terintegrasi dengan pencatatan dan peringatan waktu nyata. Elastic Load Balancing (ELB) dan Auto Scaling merespons perubahan status kesehatan secara dinamis, memastikan ketersediaan tinggi dan toleransi kesalahan. Mode pemantauan lanjutan, termasuk pelaporan kesehatan yang ditingkatkan, memberikan visibilitas terperinci ke dalam perilaku aplikasi, memungkinkan pemecahan masalah proaktif dan mekanisme pemulihan otomatis.

Jalankan perintah EB **eb health** CLI untuk menampilkan kesehatan lingkungan. Informasi berikut menampilkan:
+ Status kesehatan instance
+ Metrik respons aplikasi
+ Pemanfaatan sumber daya sistem
+ Acara penyebaran terbaru

## EC2 optimasi kinerja
<a name="dotnet-migrating-applications-troubleshooting-performance"></a>

Secara default, **eb migrate** pilih jenis instans [c5.2xlarge](https://aws.amazon.com/ec2/instance-types/c5/) untuk memberikan pengalaman pertama kali yang optimal dengan Elastic Beanstalk. Anda dapat mengganti perilaku ini dengan **--instance-type** argumen:

```
PS C:\migrations_workspace> eb migrate `
    --instance-type "t3.large"
```

Untuk lingkungan produksi, pertimbangkan faktor-faktor ini saat memilih jenis instans:
+ Persyaratan memori aplikasi Anda
+ Persyaratan CPU untuk memproses beban kerja
+ Kebutuhan kinerja jaringan
+ Sasaran pengoptimalan biaya

## Konfigurasi volume EBS
<a name="dotnet-migrating-applications-troubleshooting-ebs"></a>

Secara default, Elastic Beanstalk hanya akan membuat root `C:\` block-device volume () untuk lingkungan Anda. Anda dapat meneruskan volume snapshot Amazon Elastic Block Store tambahan dengan **--ebs-snapshots** opsi:

```
PS C:\migrations_workspace> eb migrate `
    --ebs-snapshots "snap-123456789abc"
```

[Untuk contoh bagaimana Anda dapat mengonfigurasi pemetaan blok-perangkat dengan Elastic Beanstalk, lihat artikel blog Sesuaikan Volume Ephemeral dan EBS di Lingkungan Elastic Beanstalk.](https://aws.amazon.com/blogs/devops/customize-ephemeral-and-ebs-volumes-in-elastic-beanstalk-environments/)

Untuk aplikasi dengan persyaratan penyimpanan tinggi, pertimbangkan opsi berikut:
+ Menggunakan volume EBS untuk data persisten
+ Menerapkan Amazon S3 untuk konten statis
+ Menggunakan Amazon FSx untuk Windows File Server untuk sistem file bersama

## Masalah dan solusi umum
<a name="dotnet-migrating-applications-troubleshooting-common"></a>

**Acara: Instalasi** *Deploy Web Hilang*

Jika Anda menemukan kesalahan terkait Web Deploy tidak ditemukan, maka instal Web Deploy 3.6 atau yang lebih baru dari [Microsoft Web](https://www.iis.net/downloads/microsoft/web-deploy) Platform Installer. Contoh berikut menampilkan pesan kesalahan yang mungkin.

```
Couldn't find msdeploy.exe. Follow instructions here: https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy
```

**Acara:** *Masalah izin selama migrasi*

Jika Anda mengalami kesalahan terkait izin, pastikan Anda menjalankan CLI EB dengan hak administratif. Contoh berikut menampilkan pesan kesalahan yang mungkin.

```
[ERROR] Access to the path 'C:\inetpub\wwwroot\web.config' is denied.
```

**Acara:** *Masalah identitas kumpulan aplikasi*

Jika aplikasi Anda gagal dimulai karena masalah identitas kumpulan aplikasi, buat skrip kustom untuk mengonfigurasi identitas kumpulan aplikasi seperti yang ditunjukkan pada[Pengaturan kolam aplikasi kustom](dotnet-migrating-applications-advanced-scenarios.md#dotnet-migrating-applications-advanced-scenarios-apppool).

**Acara:** *Kesalahan konfigurasi sertifikat SSL*

Jika binding HTTPS gagal berfungsi, pastikan Anda telah menetapkan ARN sertifikat ACM yang valid menggunakan parameter opsi. **eb mibrate** `--ssl-certificates`

**Acara: Batas** *waktu pembuatan lingkungan*

Jika waktu pembuatan lingkungan habis, periksa CloudFormation peristiwa di Konsol AWS Manajemen untuk mengetahui kegagalan pembuatan sumber daya tertentu. Penyebab umum termasuk masalah konfigurasi VPC atau batas layanan.

## Mendapatkan Dukungan
<a name="dotnet-migrating-applications-troubleshooting-support"></a>

Jika Anda mengalami masalah yang tidak dapat Anda selesaikan, sebelum menghubungi, AWS Dukungan kumpulkan informasi berikut:
+ ID Lingkungan (`eb status`)
+ Log aplikasi (`eb logs --zip`)
+ Artefak migrasi dari `.\migrations\latest\`
+ Konfigurasi sumber IIS (output dari`eb migrate explore --verbose`)
+ Pesan kesalahan terperinci

Untuk informasi selengkapnya tentang pemecahan masalah Elastic Beanstalk, lihat. [Memecahkan masalah lingkungan Elastic Beanstalk Anda](troubleshooting.md)

# Membandingkan opsi migrasi: EB CLI vs. AWS Application Migration Service
<a name="dotnet-migrating-applications-comparison"></a>

AWS menawarkan beberapa jalur untuk memigrasikan aplikasi Windows ke cloud. Bagian ini membandingkan dua opsi utama: **eb migrate** perintah di EB CLI dan AWS Application Migration Service (MGN). Memahami perbedaan antara pendekatan ini akan membantu Anda memilih strategi migrasi yang paling tepat untuk kebutuhan spesifik Anda.


**Perbandingan opsi migrasi**  

| Fitur | **eb migrate**CLI EB () | AWS Application Migration Service (MGN) | 
| --- | --- | --- | 
| Fokus utama | Migrasi tingkat aplikasi situs web dan aplikasi IIS | Rehosting tingkat server dari seluruh mesin (server fisik, virtual, atau cloud) | 
| Paling cocok untuk | Aplikasi IIS yang ingin Anda migrasikan langsung ke Elastic Beanstalk dengan konfigurasi ulang minimal | Migrasi skala besar yang melibatkan banyak server atau infrastruktur kompleks | 
| Pendekatan penemuan | Penemuan tingkat aplikasi situs, aplikasi, dan konfigurasi IIS | Replikasi tingkat server dari seluruh mesin, termasuk sistem operasi dan aplikasi | 
| Lingkungan target | Langsung membuat dan mengkonfigurasi lingkungan Elastic Beanstalk yang dioptimalkan untuk aplikasi Windows | Membuat EC2 instance yang memerlukan konfigurasi tambahan untuk bekerja dengan Elastic Beanstalk | 
| Konfigurasi pelestarian | Secara otomatis mempertahankan konfigurasi khusus IIS (situs, kumpulan aplikasi, binding) | Mempertahankan seluruh konfigurasi server, yang mungkin termasuk komponen yang tidak perlu | 
| Model penyebaran | Menciptakan lingkungan Elastic Beanstalk yang bersih dengan aplikasi Anda yang digunakan menggunakan praktik terbaik Elastic Beanstalk | Membuat replika server sumber Anda yang mungkin memerlukan pengoptimalan untuk operasi cloud | 
| Skala migrasi | Ideal untuk migrasi yang ditargetkan dari aplikasi tertentu | Dirancang untuk migrasi skala besar dari banyak server | 
| Langkah-langkah pasca-migrasi | Minimal; lingkungan siap digunakan dengan alat manajemen Elastic Beanstalk | Memerlukan langkah-langkah tambahan untuk berintegrasi dengan Elastic Beanstalk, seperti menjalankan tindakan pasca-peluncuran SSM | 

## Kapan menggunakan setiap opsi migrasi
<a name="dotnet-migrating-applications-comparison-when"></a>

**Pilih **eb migrate** kapan Anda memiliki persyaratan berikut:**  
+ Anda ingin memigrasikan aplikasi IIS tertentu daripada seluruh server
+ Tujuan Anda adalah mengadopsi Elastic Beanstalk sebagai platform manajemen aplikasi Anda
+ Anda ingin memanfaatkan fitur platform terkelola Elastic Beanstalk seperti penskalaan, penerapan, dan pemantauan yang mudah
+ Anda lebih memilih penerapan bersih yang mengikuti praktik AWS terbaik untuk operasi cloud-native
+ Anda ingin meminimalkan pekerjaan konfigurasi pasca-migrasi

**Pilih AWS Application Migration Service kapan Anda memiliki persyaratan berikut:**  
+ Anda perlu memigrasi sejumlah besar server
+ Anda memiliki konfigurasi server yang kompleks yang harus dipertahankan dengan tepat
+ Aplikasi Anda memiliki masalah kompatibilitas yang memerlukan pemeliharaan lingkungan server yang tepat
+ Anda ingin “mengangkat dan menggeser” dengan sedikit perubahan pada aplikasi Anda
+ Anda berencana untuk memfaktorkan ulang atau mengoptimalkan aplikasi Anda setelah migrasi

## Perbandingan alur kerja migrasi
<a name="dotnet-migrating-applications-comparison-workflow"></a>

**Alur kerja EB CLI **eb migrate** ():**

1. Instal CLI EB di server IIS sumber Anda atau host bastion.

1. Jalankan **eb migrate** untuk menemukan aplikasi IIS.

1. Perintah ini mengemas aplikasi dan konfigurasi Anda.

1. Lingkungan Elastic Beanstalk dibuat dengan sumber daya yang sesuai.

1. Aplikasi Anda dikerahkan ke lingkungan baru.

1. Anda dapat langsung mengelola aplikasi Anda menggunakan alat Elastic Beanstalk.

**AWS Application Migration Service alur kerja:**

1. Instal Agen AWS Replikasi di server sumber.

1. Konfigurasikan dan uji replikasi data.

1. Luncurkan contoh pengujian untuk memverifikasi fungsionalitas.

1. Jadwalkan cutover ke AWS.

1. Luncurkan instance produksi.

1. Jalankan tindakan pasca-peluncuran untuk mengoptimalkan cloud.

1. Jika Elastic Beanstalk adalah platform target, konfigurasi tambahan diperlukan untuk mengintegrasikan dengan Elastic Beanstalk.

## Kesimpulan
<a name="dotnet-migrating-applications-comparison-conclusion"></a>

Elastic Beanstalk adalah tujuan pilihan untuk AWS aplikasi platform Windows, menawarkan lingkungan terkelola yang menyederhanakan penerapan, penskalaan, dan manajemen. **eb migrate**Perintah ini menyediakan jalur langsung ke Elastic Beanstalk untuk aplikasi IIS, dengan penemuan dan konfigurasi otomatis yang mempertahankan pengaturan aplikasi Anda.

Meskipun AWS Application Migration Service menawarkan kemampuan yang kuat untuk migrasi server skala besar, diperlukan langkah-langkah tambahan untuk berintegrasi dengan Elastic Beanstalk. Untuk sebagian besar migrasi aplikasi IIS di mana Elastic Beanstalk adalah platform **eb migrate** target, menawarkan pendekatan yang lebih efisien yang selaras dengan model layanan terkelola Elastic Beanstalk.

Pilih pendekatan migrasi yang paling sesuai dengan kebutuhan spesifik Anda, dengan mempertimbangkan faktor-faktor seperti skala, kompleksitas, dan arsitektur status akhir yang Anda inginkan. AWS

Untuk informasi lebih lanjut tentang AWS Application Migration Service, lihat [Apa itu AWS Application Migration Service?](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) dalam AWS Application Migration Service User Guide.