

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
<a name="dotnet-migrating-applications-network"></a>

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
<a name="dotnet-migrating-applications-network-vpc"></a>

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](vpc.md) para entender como configurar o Elastic Beanstalk com a VPC.

### Detecção automática de VPC
<a name="dotnet-migrating-applications-network-vpc-auto"></a>

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 locais ou fora AWS da nuvem
<a name="dotnet-migrating-applications-network-vpc-onprem"></a>

Quando **eb migrate** executado a partir de um servidor local ou de um host fora da AWS nuvem, o serviço Elastic Beanstalk usará a VPC padrão em sua conta. 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](vpc.md) para entender como o Elastic Beanstalk configura a VPC padrão para um ambiente.

### Configuração personalizada da VPC
<a name="dotnet-migrating-applications-network-vpc-custom"></a>

Para qualquer ambiente de origem (EC2, local ou fora da AWS nuvem) 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
<a name="dotnet-migrating-applications-network-vpc-security"></a>

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 PowerShell scripts 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 HTTP/HTTPS portas de todas as ligações de sites do IIS
+ Usa a interface do Windows Firewall [INetFwPolicy2](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nn-netfw-inetfwpolicy2) 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
<a name="dotnet-migrating-applications-network-vpc-lb"></a>

É 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](using-features.managing.elb.md).

## Implantações em vários locais com configurações de portas
<a name="dotnet-migrating-applications-network-multi"></a>

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
<a name="dotnet-migrating-applications-network-shared"></a>

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:

1. Identifica configurações compartilhadas entre sites

1. Gera PowerShell scripts apropriados para aplicar essas configurações

1. Mantém a hierarquia e a herança da configuração

## Práticas recomendadas
<a name="dotnet-migrating-applications-network-best"></a>

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  
+ Siga as AWS melhores práticas de design de VPC
+ Usar sub-redes separadas para balanceadores de carga e instâncias do EC2
+ Implemente tabelas de rotas adequadas e NACLs
+ Considere os endpoints de VPC para serviços AWS 

Alta disponibilidade  
+ Implantar em diversas zonas de disponibilidade
+ Usar pelo menos duas sub-redes para balanceadores de carga
+ Configure o auto-scaling em 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
+ Implemente listas de controle de acesso à rede (ACLs) para segurança adicional
+ Monitorar logs de fluxo da VPC

## Solução de problemas
<a name="dotnet-migrating-applications-network-troubleshooting"></a>

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

Acesso ao grupo de segurança₢  

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

Integridade do balanceador de carga  

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