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
Bagian ini mencakup opsi konfigurasi jaringan untuk migrasi IIS, termasuk pengaturan VPC, konfigurasi port, dan penerapan multi-situs.
Konfigurasi VPC
eb migratePerintah ini menyediakan opsi konfigurasi VPC yang fleksibel untuk lingkungan Elastic Beanstalk Anda. Alat ini dapat mendeteksi pengaturan VPC dari EC2 instance sumber atau menerima konfigurasi VPC khusus melalui parameter baris perintah. Tinjau Menggunakan Elastic Beanstalk dengan Amazon VPC untuk memahami cara mengkonfigurasi Elastic Beanstalk dengan VPC.
Deteksi VPC otomatis
Ketika eb migrate berjalan pada sebuah EC2 instance, secara otomatis menemukan dan menggunakan konfigurasi VPC dari instance lingkungan EC2 sumber. Contoh output berikut menggambarkan informasi konfigurasi yang dideteksi:
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)
-
EC2 penugasan subnet contoh
-
Asosiasi kelompok keamanan
-
Tugas subnet penyeimbang beban
Host lokal atau AWS non-cloud
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 untuk memahami bagaimana Elastic Beanstalk mengonfigurasi VPC default untuk lingkungan Anda.
Konfigurasi VPC kustom
Untuk lingkungan sumber apa pun (EC2, lokal, atau AWS non-cloud) yang memerlukan pengaturan 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 EC2 lingkungan non-lingkungan 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
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:
-
Mengekstrak port HTTP/HTTPS dari semua binding situs IIS
-
Menggunakan antarmuka Windows Firewall 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 diaktifkan
-
Menangani port individu dan rentang port dalam aturan firewall
-
Menambahkan skrip konfigurasi firewall ke manifes penerapan
Konfigurasi penyeimbang beban
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.
Penerapan multi-situs dengan konfigurasi port
eb migratePerintah menangani penyebaran IIS multi-situs yang kompleks di mana aplikasi mungkin berbagi dependensi atau menggunakan port non-standar. Pertimbangkan contoh berikut dari pengaturan perusahaan tipikal 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 migratePerintah 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
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:
-
Mengidentifikasi konfigurasi bersama di seluruh situs
-
Menghasilkan PowerShell skrip yang sesuai untuk menerapkan pengaturan ini
-
Mempertahankan hierarki konfigurasi dan pewarisan
Praktik terbaik
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 instance 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 Jaringan Access Control Lists (ACLs) untuk keamanan tambahan
-
Pantau Log Aliran VPC
-
Pemecahan Masalah
Masalah konfigurasi jaringan yang 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