Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de red y ajustes de puerto
En esta sección, se describen las opciones de configuración de red para las migraciones de IIS, incluidas las configuraciones de VPC, las configuraciones de puertos y las implementaciones en varios sitios.
Configuración de la VPC
El eb migrate comando proporciona opciones de configuración de VPC flexibles para su entorno de Elastic Beanstalk. La herramienta puede detectar la configuración de VPC de una EC2 instancia de origen o aceptar configuraciones de VPC personalizadas mediante parámetros de línea de comandos. Revise Uso de Elastic Beanstalk con Amazon VPC para entender cómo configurar Elastic Beanstalk con VPC.
Detección automática de VPC
Cuando eb migrate se ejecuta en una EC2 instancia, descubre y usa automáticamente la configuración de VPC de las instancias del entorno de EC2 origen. El siguiente ejemplo de resultado ilustra la información de configuración que detecta:
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 configuración detectada incluye:
-
Identificador de VPC
-
Configuración de asignación de IP pública
-
Esquema de equilibrio de carga (público/privado)
-
EC2 asignaciones de subredes de instancias
-
Asociaciones de grupos de seguridad
-
Asignaciones de subredes del balanceador de carga
Hosts locales o no en la nube AWS
Cuando eb migrate se ejecuta desde un servidor local o un host que no sea de AWS nube, el servicio Elastic Beanstalk utilizará la VPC predeterminada de su cuenta. AWS La siguiente lista muestra un ejemplo de comando y resultado:
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.
...
Uso de Elastic Beanstalk con Amazon VPCRevíselo para comprender cómo Elastic Beanstalk configura la VPC predeterminada para su entorno.
Configuración de VPC personalizada
Para cualquier entorno de origen (EC2local o no en la AWS nube) en el que necesite una configuración de VPC específica, proporcione un archivo de configuración de VPC como el que se muestra en el siguiente ejemplo:
{ "id": "vpc-12345678", "publicip": "true", "elbscheme": "public", "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"], "securitygroups": "sg-123456,sg-789012", "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"] }
Aplica esta configuración mediante el siguiente comando:
PS C:\migrations_workspace>
eb migrate --vpc-config vpc-config.json
nota
El archivo de configuración de la VPC requiere el id
campo que especifica el ID de la VPC. Todos los demás campos son opcionales y Elastic Beanstalk utilizará los valores predeterminados para los campos que no especifique.
importante
La migración ignorará cualquier configuración de VPC existente en el entorno de origen cuando especifiques el --vpc-config
parámetro. Al usar este parámetro, la migración solo usará la configuración de VPC especificada en el archivo de configuración que está transfiriendo. El uso de este parámetro anula el comportamiento predeterminado de descubrir la configuración de VPC de la instancia de origen o usar la VPC predeterminada.
Utilice el --vpc-config
parámetro en los siguientes escenarios:
-
Al migrar entornos que no son EC2 entornos que no tienen una configuración de VPC detectable
-
Al migrar a una VPC diferente de la utilizada por el entorno de origen
-
Cuando necesite personalizar las selecciones de subredes o las configuraciones de los grupos de seguridad
-
Cuando la detección automática no identifica correctamente la configuración de VPC deseada
-
Cuando migras desde un entorno local y no quieres usar la VPC predeterminada
Configuración de seguridad de red
De forma predeterminada, eb migrate abre el puerto 80 en las instancias de destino, pero no copia otras reglas de Firewall de Windows del equipo de origen. Para incluir todas las configuraciones de firewall, utilice el siguiente comando:
PS C:\migrations_workspace>
eb migrate --copy-firewall-config
Este comando realiza las siguientes acciones:
-
Identifica los puertos utilizados por los enlaces de sitios de IIS
-
Recupera las reglas de firewall correspondientes
-
Genera PowerShell scripts para recrear las reglas en las instancias de destino
-
Conserva todas las reglas de DENY para el puerto 80 de la máquina de origen (de lo contrario, el puerto 80 está permitido de forma predeterminada)
Considere un caso de uso en el que la máquina de origen tenga las reglas de firewall especificadas en el siguiente ejemplo:
# 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 migración crea un script (modify_firewall_config.ps1
) que contiene la siguiente configuración:
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
La herramienta de migración realiza automáticamente las siguientes acciones:
-
Extrae los puertos HTTP/HTTPS de todos los enlaces de sitios de IIS
-
Utiliza la interfaz Firewall INetFwPolicy2
de Windows para enumerar las reglas del firewall -
Filtra las reglas para incluir únicamente aquellas que hacen referencia explícita a los puertos especificados
-
Procesa únicamente los enlaces de sitios HTTP y HTTPS y sus reglas de firewall asociadas
-
Conserva las propiedades de las reglas, incluidos el nombre para mostrar, la acción, el protocolo y el estado de activación
-
Gestiona tanto los puertos individuales como los rangos de puertos en las reglas del firewall
-
Agrega el script de configuración del firewall al manifiesto de implementación
Configuración del equilibrador de carga
Puede especificar la configuración del Load Balancer mediante el --vpc-config
argumento. En los ejemplos siguientes se muestran los parámetros.
- Selección del esquema
-
Elige entre esquemas de balanceador de cargas públicos y privados:
{ "id": "vpc-12345678", "elbscheme": "private", "elbsubnets": ["subnet-private1", "subnet-private2"] }
- Distribución por subredes
-
Para obtener una alta disponibilidad, distribuya las subredes del balanceador de carga entre las zonas de disponibilidad:
{ "elbsubnets": [ "subnet-az1", // Availability Zone 1 "subnet-az2", // Availability Zone 2 "subnet-az3" // Availability Zone 3 ] }
nota
Si bien Elastic Beanstalk admite la creación de entornos con balanceadores de carga de aplicaciones, balanceadores de carga de red y balanceadores de carga clásicos, el comando solo admite balanceadores de carga de aplicaciones. eb migrate Para obtener más información acerca de los tipos de balanceador de carga, consulte Balanceador de carga del entorno de Elastic Beanstalk.
Implementaciones en varios sitios con configuraciones de puertos
El eb migrate comando gestiona despliegues complejos de IIS en varios sitios en los que las aplicaciones pueden compartir dependencias o utilizar puertos no estándar. Considere el siguiente ejemplo de una configuración empresarial típica con varios sitios:
<!-- 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 esta configuración, utilice el siguiente comando y parámetros de ejemplo:
PS C:\migrations_workspace>
eb migrate ` --sites "Default Web Site,InternalAPI,ReportingPortal" ` --copy-firewall-config ` --instance-type "c5.large"
El eb migrate comando crea un paquete de implementación que preserva la identidad y la configuración de cada sitio. El comando genera un comando aws-windows-deployment-manifest.json
que define cómo se deben implementar estos sitios. El siguiente ejemplo muestra un archivo json generado:
{ "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" } } } ] } }
El proceso de migración crea las siguientes reglas de escucha de Application Load Balancer que mantienen la lógica de enrutamiento original:
-
El tráfico del puerto 80 se enruta al sitio web predeterminado
-
El tráfico del puerto 8081 se dirige a la API interna
-
El tráfico del puerto 8082 se dirige a ReportingPortal
Configuración y dependencias compartidas
Cuando los sitios comparten configuraciones o dependencias, eb migrate gestiona estas relaciones de forma adecuada. Consulte el siguiente ejemplo en el que varios sitios comparten una configuración común:
<!-- Shared configuration in applicationHost.config --> <location path="Default Web Site"> <system.webServer> <asp enableSessionState="true" /> <caching enabled="true" enableKernelCache="true" /> </system.webServer> </location>
El proceso de migración completa las siguientes tareas:
-
Identifica las configuraciones compartidas en todos los sitios
-
Genera PowerShell los scripts adecuados para aplicar estos ajustes
-
Mantiene la jerarquía y la herencia de la configuración
Prácticas recomendadas
Le recomendamos que siga las prácticas recomendadas para la configuración de red de la aplicación migrada. Las siguientes agrupaciones proporcionan un resumen de las directrices.
- Diseño de VPC
-
-
Siga las AWS prácticas recomendadas de diseño de VPC
-
Usa subredes independientes para los balanceadores de carga y las instancias EC2
-
Implemente tablas de enrutamiento adecuadas y NACLs
-
Considere los puntos finales de VPC para los servicios AWS
-
- Alta disponibilidad
-
-
Implemente en varias zonas de disponibilidad
-
Usa al menos dos subredes para los balanceadores de carga
-
Configura el autoscaling entre AZs
-
Implemente los controles de estado adecuados
-
- Seguridad
-
-
Siga las mejores prácticas de seguridad
-
Utilice los grupos de seguridad como control de acceso principal
-
Implemente listas de control de acceso a la red (ACLs) para mayor seguridad
-
Supervise los registros de flujo de VPC
-
Solución de problemas
Los problemas comunes de configuración de red incluyen las siguientes áreas. Después de cada tema, hay comandos de ejemplo para obtener más información sobre la configuración de la red y el estado de su entorno.
- Configuración de subred
-
# 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'
- Acceso a grupos de seguridad
-
# 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
- Estado del equilibrador 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