As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configuração de rede e de porta
Esta seção aborda as opções de configuração de rede para migrações do IIS, incluindo configurações de VPC, configurações de portas e implantações em vários sites.
Configuração de VPC
O comando eb migrate oferece opções de configuração de VPC flexíveis para o ambiente do Elastic Beanstalk. A ferramenta pode detectar configurações de VPC de uma instância do EC2 de origem ou aceitar configurações personalizadas de VPC por meio de parâmetros de linha de comando. Analise Usar o Elastic Beanstalk com Amazon VPC para entender como configurar o Elastic Beanstalk com a VPC.
Detecção automática de VPC
Quando eb migrate é executado em uma instância do EC2, ele descobre e usa automaticamente a configuração de VPC das instâncias do EC2 do ambiente de origem. O exemplo de saída a seguir ilustra as informações de configuração detectadas:
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
...
A configuração detectada inclui:
-
Identificador de VPC
-
Configurações de atribuição de IP público
-
Esquema de balanceamento de carga (público/privado)
-
Atribuições de sub-rede de instâncias do EC2
-
Associações de grupos de segurança
-
Atribuições de sub-rede do balanceador de carga
Hosts on-premises ou não AWS na nuvem
Quando eb migrate é executado a partir de um servidor on-premises ou de um host fora da nuvem AWS, o serviço Elastic Beanstalk usará a VPC padrão na sua conta da AWS. A lista a seguir mostra um exemplo de comando e saída:
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.
...
Analise Usar o Elastic Beanstalk com Amazon VPC para entender como o Elastic Beanstalk configura a VPC padrão para um ambiente.
Configuração personalizada da VPC
Para qualquer ambiente de origem (EC2, on-premises ou fora da nuvem AWS) em que você precise de configurações específicas de VPC, forneça um arquivo de configuração de VPC como o mostrado no exemplo a seguir:
{ "id": "vpc-12345678", "publicip": "true", "elbscheme": "public", "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"], "securitygroups": "sg-123456,sg-789012", "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"] }
Aplique esta configuração usando o seguinte comando:
PS C:\migrations_workspace>eb migrate --vpc-config vpc-config.json
nota
O arquivo de configuração da VPC exige o campo id que especifica a ID da VPC. Todos os outros campos são opcionais, e o Elastic Beanstalk usará valores padrão para qualquer campo que você não especificar.
Importante
A migração ignorará todas as configurações de VPC existentes do ambiente de origem quando você especificar o parâmetro --vpc-config. Quando você usa esse parâmetro, a migração usará apenas as configurações de VPC especificadas no arquivo de configuração que você está passando. O uso desse parâmetro substitui o comportamento padrão de descobrir a configuração da VPC da instância de origem ou usar a VPC padrão.
Use o parâmetro --vpc-config nesses cenários:
-
Ao migrar ambientes não EC2 que não têm configurações de VPC detectáveis
-
Quando você migra para uma VPC diferente daquela usada pelo ambiente de origem
-
Quando você precisa personalizar seleções de sub-rede ou configurações de grupos de segurança
-
Quando a descoberta automática não identifica corretamente as configurações de VPC desejadas
-
Quando você migra do ambiente on-premises e não quer usar a VPC padrão
Configuração de segurança de rede
Por padrão, eb migrate abre a porta 80 nas instâncias de destino, mas não copia outras regras do Firewall do Windows da máquina de origem. Para incluir todas as configurações de firewall, use o seguinte comando:
PS C:\migrations_workspace>eb migrate --copy-firewall-config
Esse comando faz as seguintes ações:
-
Identifica as portas usadas pelas associações de sites do IIS
-
Recupera regras de firewall correspondentes
-
Gera scripts PowerShell para recriar regras nas instâncias de destino
-
Preserva todas as regras DENY para a porta 80 da máquina de origem (caso contrário, a porta 80 é permitida por padrão)
Considere um caso de uso em que sua máquina de origem tem as regras de firewall especificadas no exemplo a seguir:
# 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
A migração cria um script (modify_firewall_config.ps1) que contém a seguinte configuração:
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
A ferramenta de migração executa automaticamente as seguintes ações:
-
Extrai portas HTTP/HTTPS de todas as associações de sites do IIS
-
Usa a interface INetFwPolicy2
do Firewall do Windows para enumerar as regras de firewall -
Filtra as regras para incluir somente aquelas que fazem referência explícita às portas especificadas
-
Processa somente associações de sites HTTP e HTTPS e suas regras de firewall associadas
-
Preserva as propriedades da regra, incluindo nome de exibição, ação, protocolo e estado habilitado
-
Lida com portas individuais e intervalos de portas nas regras de firewall
-
Adiciona o script de configuração do firewall ao manifesto de implantação
Configuração do balanceador de carga
É possível especificar a configuração do balanceador de carga por meio do argumento --vpc-config. Os exemplos a seguir demonstram os parâmetros.
- Seleção de esquema
-
Escolha entre esquemas de balanceador de carga públicos e privados:
{ "id": "vpc-12345678", "elbscheme": "private", "elbsubnets": ["subnet-private1", "subnet-private2"] } - Distribuição de sub-rede
-
Para obter alta disponibilidade, distribua sub-redes do balanceador de carga entre as zonas de disponibilidade:
{ "elbsubnets": [ "subnet-az1", // Availability Zone 1 "subnet-az2", // Availability Zone 2 "subnet-az3" // Availability Zone 3 ] }
nota
Embora o Elastic Beanstalk seja compatível com a criação de ambientes com Application Load Balancers, Network Load Balancers e Classic Load Balancers, o comando eb migrate apenas aceita Application Load Balancers. Para obter mais informações sobre os tipos de balanceador de carga, consulte Balanceador de carga do ambiente do Elastic Beanstalk.
Implantações em vários locais com configurações de portas
O comando eb migrate manipula implantações complexas do IIS em vários sites, onde as aplicações podem compartilhar dependências ou usar portas não padrão. Considere o exemplo a seguir de uma configuração corporativa típica com vários sites:
<!-- 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>
Para migrar essa configuração, use o seguinte comando e parâmetros de exemplo:
PS C:\migrations_workspace>eb migrate ` --sites "Default Web Site,InternalAPI,ReportingPortal" ` --copy-firewall-config ` --instance-type "c5.large"
O comando eb migrate cria um pacote de implantação que preserva a identidade e a configuração de cada site. O comando gera um aws-windows-deployment-manifest.json que define como esses sites devem ser implantados. O exemplo a seguir ilustra um arquivo json gerado:
{ "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" } } } ] } }
O processo de migração cria as seguintes regras de ouvinte do Application Load Balancer que mantêm sua lógica de roteamento original:
-
Rotas de tráfego da porta 80 para o site padrão
-
Rotas de tráfego da porta 8081 para InternalAPI
-
Rotas de tráfego da porta 8082 para ReportingPortal
Configuração e dependências compartilhadas
Quando os sites compartilham configurações ou dependências, eb migrate gerencia esses relacionamentos adequadamente. Consulte o exemplo a seguir em que vários sites compartilham uma configuração comum:
<!-- Shared configuration in applicationHost.config --> <location path="Default Web Site"> <system.webServer> <asp enableSessionState="true" /> <caching enabled="true" enableKernelCache="true" /> </system.webServer> </location>
O processo de migração conclui as seguintes tarefas:
-
Identifica configurações compartilhadas entre sites
-
Gera scripts PowerShell apropriados para aplicar essas configurações
-
Mantém a hierarquia e a herança da configuração
Práticas recomendadas
Recomendamos que você siga as práticas recomendadas da configuração de rede da aplicação migrado. Os agrupamentos a seguir fornecem diretrizes resumidas.
- Design em VPC
-
-
Seguir as práticas recomendadas de design da AWS VPC
-
Usar sub-redes separadas para balanceadores de carga e instâncias do EC2
-
Implementar tabelas de rotas e NACLs adequadas
-
Considerar endpoints de VPC para serviços da AWS
-
- Alta disponibilidade
-
-
Implantar em diversas zonas de disponibilidade
-
Usar pelo menos duas sub-redes para balanceadores de carga
-
Configurar o ajuste de escala automático em todas as AZs
-
Implementar verificações de integridade adequadas
-
- Segurança
-
-
Seguir práticas recomendadas de segurança
-
Usar grupos de segurança como controle de acesso primário
-
Implementar listas de controle de acesso (ACLs) da rede para obter segurança adicional
-
Monitorar logs de fluxo da VPC
-
Solução de problemas
Os problemas comuns de configuração de rede incluem as seguintes áreas. Depois de cada assunto, há exemplos de comandos para obter mais informações sobre a configuração da rede e a integridade do seu ambiente.
- Configuração de sub-rede
-
# Verify subnet availabilityPS C:\migrations_workspace>aws ec2 describe-subnets --subnet-ids subnet-id# Check available IP addressesPS C:\migrations_workspace>aws ec2 describe-subnets --subnet-ids subnet-id --query 'Subnets[].AvailableIpAddressCount' - Acesso ao grupo de segurança₢
-
# Verify security group rulesPS C:\migrations_workspace>aws ec2 describe-security-groups --group-ids sg-id# Test network connectivityPS C:\migrations_workspace>aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-id - Integridade do balanceador de carga
-
# Check load balancer healthPS C:\migrations_workspace>aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account-id:targetgroup/group-name/group-id