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 la configuración de la VPC, la configuración de los puertos y las implementaciones en sitios múltiples.
Configuración de la VPC
El comando eb migrate proporciona opciones de configuración de la VPC flexibles para el entorno de Elastic Beanstalk. La herramienta puede detectar la configuración de la VPC de una instancia de EC2 de origen o aceptar la configuración de la VPC personalizada mediante parámetros de la línea de comandos. Revise Uso de Elastic Beanstalk con Amazon VPC para entender cómo configurar Elastic Beanstalk con la VPC.
Detección automática de VPC
Cuando eb migrate se ejecuta en una instancia de EC2, detecta y utiliza automáticamente la configuración de la VPC de las instancias de EC2 del entorno de 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 del equilibrador de carga (público/privado)
-
Asignaciones de subredes de instancias de EC2
-
Asociaciones de grupos de seguridad
-
Asignaciones de subredes del equilibrador de carga
Hosts en las instalaciones o que no estén en la nube de AWS
Cuando eb migrate se ejecuta desde un servidor en las instalaciones o un host que no sea de la nube de AWS, el servicio Elastic Beanstalk utilizará la VPC predeterminada de su cuenta de AWS. La siguiente lista muestra un ejemplo de comando y salida:
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.
...
Revise Uso de Elastic Beanstalk con Amazon VPC para comprender cómo Elastic Beanstalk configura la VPC predeterminada para su entorno.
Configuración personalizada de la VPC
Para cualquier entorno de origen (EC2, en las instalaciones o fuera de la nube de AWS) en el que necesite una configuración específica de la VPC, 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"] }
Aplique esta configuración con 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 campo id 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 la VPC existente en el entorno de origen cuando especifiques el parámetro --vpc-config. Cuando usa este parámetro, la migración usará solamente la configuración de la VPC especificada en el archivo de configuración que está transfiriendo. El uso de este parámetro anula el comportamiento predeterminado de detección de la configuración de VPC de la instancia de origen o de uso de la VPC predeterminada.
Utilice el parámetro --vpc-config en los siguientes escenarios:
-
Cuando migre entornos que no son de EC2 y que no tienen configuraciones de VPC detectables.
-
Cuando migre 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 deseada de la VPC.
-
Cuando realiza una migración desde una configuración en las instalaciones y no desea utilizar la VPC predeterminada.
Configuración de seguridad de la red
De forma predeterminada, eb migrate abre el puerto 80 en las instancias de destino, pero no copia otras reglas de Firewall de Windows de la máquina 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 scripts de PowerShell para recrear reglas en las instancias de destino.
-
Conserva todas las reglas de DENEGACIÓN para el puerto 80 de la máquina de origen (de lo contrario, el puerto 80 está habilitado 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 INetFwPolicy2
del firewall 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 equilibrador de carga mediante el argumento --vpc-config. El siguiente ejemplo muestra los parámetros.
- Selección de esquemas
-
Elige entre esquemas públicos y privados del equilibrador de carga:
{ "id": "vpc-12345678", "elbscheme": "private", "elbsubnets": ["subnet-private1", "subnet-private2"] } - Distribución de subredes
-
Para obtener una alta disponibilidad, distribuya las subredes del equilibrador 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 Equilibradores de carga de aplicación, Equilibradores de carga de red y Equilibradores de carga clásicos, el comando eb migrate admite solamente Equilibradores de carga de aplicación. 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 sitios múltiples con configuraciones de puertos
El comando eb migrate gestiona implementaciones complejas de IIS en sitios múltiples 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 sitios múltiples:
<!-- 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 ejemplo de comandos y parámetros:
PS C:\migrations_workspace>eb migrate ` --sites "Default Web Site,InternalAPI,ReportingPortal" ` --copy-firewall-config ` --instance-type "c5.large"
El comando eb migrate 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. En el siguiente ejemplo se 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 oyente del Equilibrador de carga de aplicación 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 enruta a la API interna.
-
El tráfico del puerto 8082 se enruta 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 sitios múltiples 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>
Durante el proceso de migración se completan las siguientes tareas:
-
Identifica las configuraciones compartidas en todos los sitios.
-
Genera los scripts de PowerShell adecuados para aplicar esta configuración.
-
Mantiene la jerarquía y la herencia de la configuración.
Prácticas recomendadas
Recomendamos que siga estas 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 estas prácticas recomendadas de diseño para la VPC de AWS.
-
Utilice subredes independientes para los equilibradores de carga y las instancias de EC2.
-
Implemente las tablas de enrutamiento y las NACL adecuadas.
-
Considere los puntos de conexión de VPC para los servicios de AWS.
-
- Alta disponibilidad
-
-
Implemente en varias zonas de disponibilidad
-
Use al menos dos subredes para los equilibradores de carga.
-
Configure el escalado automático en todas las zonas de disponibilidad.
-
Implemente una comprobación de estado adecuada.
-
- Seguridad
-
-
Seguimiento de las prácticas de seguridad recomendadas
-
Utilice los grupos de seguridad como control de acceso principal.
-
Implemente listas de control de acceso (ACL) de red para una seguridad adicional.
-
Supervise los registros de flujo de la 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 subredes
-
# 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' - Acceso al grupo de seguridad
-
# 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 - Estado del equilibrador 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