

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

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