Configurazione di rete e impostazioni delle porte - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di rete e impostazioni delle porte

Questa sezione descrive le opzioni di configurazione di rete per le migrazioni IIS, incluse le impostazioni VPC, le configurazioni delle porte e le distribuzioni multisito.

Configurazione VPC

Il eb migrate comando fornisce opzioni di configurazione VPC flessibili per l'ambiente Elastic Beanstalk. Lo strumento può rilevare le impostazioni VPC da un' EC2 istanza di origine o accettare configurazioni VPC personalizzate tramite parametri della riga di comando. Leggi Utilizzo di Elastic Beanstalk con Amazon VPC questo articolo per capire come configurare Elastic Beanstalk con VPC.

Rilevamento automatico del VPC

Quando eb migrate viene eseguito su un' EC2 istanza, rileva e utilizza automaticamente la configurazione VPC dalle istanze dell'ambiente EC2 di origine. L'output di esempio seguente illustra le informazioni di configurazione rilevate:

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

La configurazione rilevata include:

  • Identificatore VPC

  • Impostazioni di assegnazione IP pubblico

  • Schema di bilanciamento del carico (pubblico/privato)

  • EC2 assegnazioni di sottoreti di istanze

  • associazioni di gruppi di sicurezza

  • Assegnazioni delle sottoreti di bilanciamento del carico

Host locali o non cloud AWS

Quando eb migrate viene eseguito da un server locale o da un host non AWS cloud, il servizio Elastic Beanstalk utilizzerà il VPC predefinito nel tuo account. AWS L'elenco seguente mostra un esempio di comando e 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. ...

Esamina Utilizzo di Elastic Beanstalk con Amazon VPC per capire come Elastic Beanstalk configura il VPC predefinito per il tuo ambiente.

Configurazione VPC personalizzata

Per qualsiasi ambiente di origine (EC2locale o non AWS cloud) in cui sono necessarie impostazioni VPC specifiche, fornisci un file di configurazione VPC come quello nell'esempio seguente:

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

Applica questa configurazione utilizzando il seguente comando:

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

Il file di configurazione VPC richiede il id campo che specifica l'ID VPC. Tutti gli altri campi sono facoltativi ed Elastic Beanstalk utilizzerà valori predefiniti per tutti i campi che non specifichi.

Importante

La migrazione ignorerà tutte le impostazioni VPC esistenti dall'ambiente di origine quando si specifica il --vpc-config parametro. Quando utilizzi questo parametro, la migrazione utilizzerà solo le impostazioni VPC specificate nel file di configurazione che stai trasmettendo. L'utilizzo di questo parametro sostituisce il comportamento predefinito di rilevamento della configurazione VPC dell'istanza di origine o dell'utilizzo del VPC predefinito.

Utilizzate il --vpc-config parametro in questi scenari:

  • Quando esegui la migrazione di EC2 ambienti diversi da quelli che non dispongono di impostazioni VPC rilevabili

  • Quando si esegue la migrazione a un VPC diverso da quello utilizzato dall'ambiente di origine

  • Quando è necessario personalizzare le selezioni delle sottoreti o le configurazioni dei gruppi di sicurezza

  • Quando il rilevamento automatico non identifica correttamente le impostazioni VPC desiderate

  • Quando esegui la migrazione da un ambiente locale e non desideri utilizzare il VPC predefinito

Configurazione della sicurezza di rete

Per impostazione predefinita, eb migrate apre la porta 80 sulle istanze di destinazione ma non copia altre regole di Windows Firewall dal computer di origine. Per includere tutte le configurazioni del firewall, utilizzare il seguente comando:

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

Questo comando esegue le seguenti azioni:

  • Identifica le porte utilizzate dai collegamenti ai siti IIS

  • Recupera le regole del firewall corrispondenti

  • Genera PowerShell script per ricreare le regole sulle istanze di destinazione

  • Conserva tutte le regole DENY per la porta 80 dal computer di origine (altrimenti la porta 80 è consentita per impostazione predefinita)

Considerate un caso d'uso, in cui il computer di origine ha le regole del firewall specificate nell'esempio seguente:

# 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

La migrazione crea uno script (modify_firewall_config.ps1) che contiene la seguente configurazione:

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

Lo strumento di migrazione esegue automaticamente le seguenti azioni:

  • Estrae le porte HTTP/HTTPS da tutte le associazioni del sito IIS

  • Utilizza l'interfaccia Windows Firewall INetFwPolicy2 per enumerare le regole del firewall

  • Filtra le regole per includere solo quelle che fanno riferimento esplicitamente alle porte specificate

  • Elabora solo le associazioni di siti HTTP e HTTPS e le relative regole firewall associate

  • Conserva le proprietà delle regole, tra cui nome visualizzato, azione, protocollo e stato abilitato

  • Gestisce sia le singole porte che gli intervalli di porte nelle regole del firewall

  • Aggiunge lo script di configurazione del firewall al manifesto di distribuzione

Configurazione del bilanciamento del carico

È possibile specificare la configurazione di Load Balancer tramite l'--vpc-configargomento. Gli esempi che seguono illustrano i parametri.

Selezione dello schema

Scegli tra schemi di bilanciamento del carico pubblici e privati:

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

Per un'elevata disponibilità, distribuisci le sottoreti di bilanciamento del carico tra le zone di disponibilità:

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

Sebbene Elastic Beanstalk supporti la creazione di ambienti con Application Load Balancer, Network Load Balancer e Classic Load Balancer, il comando supporta solo Application Load Balancer. eb migrate Per ulteriori informazioni sui tipi di bilanciamento del carico, consulta Sistema di bilanciamento del carico per l'ambiente Elastic Beanstalk.

Implementazioni multisito con configurazioni di porte

Il eb migrate comando gestisce distribuzioni IIS multisito complesse in cui le applicazioni possono condividere dipendenze o utilizzare porte non standard. Considerate il seguente esempio di una tipica configurazione aziendale con più siti:

<!-- 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>

Per migrare questa configurazione, utilizzate il comando e i parametri di esempio seguenti:

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

Il eb migrate comando crea un pacchetto di distribuzione che conserva l'identità e la configurazione di ogni sito. Il comando genera un file aws-windows-deployment-manifest.json che definisce come questi siti devono essere distribuiti. L'esempio seguente mostra un file json generato:

{ "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" } } } ] } }

Il processo di migrazione crea le seguenti regole del listener Application Load Balancer che mantengono la logica di routing originale:

  • Porta 80 rotte di traffico al sito Web predefinito

  • Porta il traffico 8081 verso InternalAPI

  • Le rotte di traffico della porta 8082 verso ReportingPortal

Configurazione e dipendenze condivise

Quando i siti condividono configurazioni o dipendenze, eb migrate gestisce queste relazioni in modo appropriato. Fai riferimento al seguente esempio in cui più siti condividono una configurazione comune:

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

Il processo di migrazione completa le seguenti attività:

  1. Identifica le configurazioni condivise tra i siti

  2. Genera PowerShell script appropriati per applicare queste impostazioni

  3. Mantiene la gerarchia e l'ereditarietà della configurazione

Best practice

Ti consigliamo di seguire le migliori pratiche per la configurazione di rete dell'applicazione migrata. I seguenti raggruppamenti forniscono linee guida riassuntive.

Progettazione VPC
  • Segui le AWS best practice di progettazione VPC

  • Utilizza sottoreti separate per i sistemi di bilanciamento del carico e le istanze EC2

  • Implementa tabelle di routing adeguate e NACLs

  • Prendi in considerazione gli endpoint VPC per i servizi AWS

Elevata disponibilità
  • Esecuzione dell'implementazione in più zone di disponibilità

  • Utilizza almeno due sottoreti per i sistemi di bilanciamento del carico

  • Configura l'auto-scaling su AZs

  • Implementa controlli sanitari adeguati

Sicurezza
  • Segui le migliori pratiche di sicurezza

  • Utilizza i gruppi di sicurezza come controllo di accesso principale

  • Implementa gli elenchi di controllo degli accessi alla rete (ACLs) per una maggiore sicurezza

  • Monitora i log di flusso VPC

Risoluzione dei problemi

I problemi più comuni di configurazione della rete includono le seguenti aree. Dopo ogni argomento sono riportati alcuni comandi di esempio per ottenere ulteriori informazioni sulla configurazione di rete e sullo stato dell'ambiente.

Configurazione della sottorete
# 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'
Accesso ai gruppi di sicurezza
# 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
Stato del sistema di bilanciamento del carico
# 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