eb migrate - AWS Elastic Beanstalk

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.

eb migrate

Descripción

Migra sitios y aplicaciones de Internet Information Services (IIS) de un servidor Windows a Elastic Beanstalk. El comando empaqueta las aplicaciones, conserva sus configuraciones y las implementa en un nuevo entorno de Elastic Beanstalk.

Para obtener más información sobre la migración de sus sitios y aplicaciones de IIS, consulte. Migración de aplicaciones de IIS a Elastic Beanstalk

nota

Antes de usar este comando, asegúrese de que el sistema cumpla los siguientes requisitos:

  • Internet Information Services (IIS) versión 7.0 o posterior

  • Web Deploy 3.6 o una versión posterior instalada

  • Privilegios administrativos en el servidor Windows

  • AWS credenciales configuradas con los permisos adecuados

  • El servidor de origen tiene acceso saliente a los AWS servicios de Internet.

Los siguientes pasos resumen el proceso de migración:

  1. Descubra los sitios de IIS y sus configuraciones.

  2. Package el contenido y la configuración de la aplicación.

  3. Cree el entorno y la aplicación de Elastic Beanstalk.

  4. Implemente la aplicación con la configuración preservada.

El comando crea artefactos de migración en un directorio estructurado, como se muestra en la siguiente lista:

C:\migration_workspace\ └── .\migrations\latest\ ├── upload_target.zip └── upload_target\ ├── [SiteName].zip # One ZIP per default application of IIS site ├── [SiteName-ApplicationName].zip # One ZIP per additional application ├── aws-windows-deployment-manifest.json └── ebmigrateScripts\ ├── site_installer.ps1 # Site installation scripts ├── permission_handler.ps1 # Permission management └── other helper scripts

Se utiliza eb migrate cleanup para gestionar estos artefactos.

Sintaxis

eb migrate [options]

eb migrate explore [options]

eb migrate cleanup [options]

Cuando se ejecuta sin argumentos, eb migrate funciona en modo no interactivo. Para ejecutarlo en modo interactivo, ejecuteeb migrate --interactive.

El comando del modo interactivo solicita la siguiente información:

  • Selección de sitios de IIS para migrar

  • Nombres de entornos y aplicaciones

  • Selección de la versión de la plataforma

  • Tipo de instancia y otras opciones de configuración

Subcomandos

explore

El eb migrate explore subcomando examina el servidor IIS y muestra los sitios disponibles.

Utilice este comando para mostrar la siguiente información:

  • Vea todos los sitios de IIS del servidor

  • Con--verbose, inspeccione la configuración detallada, que incluye:

    • Puertos y enlaces de sitios

    • Grupos de aplicaciones

    • Directorios virtuales y sus rutas físicas

    • Configuración de autenticación

PS C:\migrations_workspace > eb migrate explore Default Web Site Site2 site3 router
PS C:\migrations_workspace > eb migrate explore --verbose 1: Default Web Site: - Bindings: - *:8083: - Application '/': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\wwwroot - Logon Method: ClearText - Application '/dotnet-6-0': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\AspNetCoreWebApps\CoreWebApp-6-0 - Logon Method: ClearText - Application '/dotnet-8-0': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\AspNetCoreWebApps\CoreWebApp-8-0 - Logon Method: ClearText 2: Site2: - Bindings: - *:8081: ...

eliminación

El eb migrate cleanup subcomando administra los artefactos de migración con las siguientes acciones:

  • Preservar la migración exitosa más reciente en ./migrations/latest

  • Eliminar los directorios de migración más antiguos

  • Mantenimiento de los archivos de configuración críticos

PS C:\migrations_workspace > eb migrate cleanup Are you sure you would like to cleanup older artifacts within `./migrations/`? (y/N):

Se utiliza --force para omitir las solicitudes de confirmación durante la limpieza.

PS C:\migrations_workspace > eb migrate cleanup --force

Opciones

Ninguna de estas opciones es obligatoria. Si se ejecuta eb migrate sin ninguna opción, la CLI de EB se ejecutará en el modo no interactivo. Coneb migrate --interactive, la CLI de EB le pide que introduzca o seleccione un valor para la configuración requerida.

Nombre

Descripción

-a application-name

o bien

--application-name application-name

Nombre de la nueva aplicación de Elastic Beanstalk.

Tipo: cadena

Predeterminado: aplicación EBMigrated

--archive directory-or-zip

El directorio o archivo ZIP que contiene el código fuente generado previamente poreb migrate --archive-only.

Use esta opción para implementar un paquete de migración creado anteriormente.

Ejemplo: --archive .\migrations\latest\upload_target o --archive .\migrations\latest\upload_target.zip

-ao

o

--archive-only

Cree solo el directorio de archivos de destino sin despliegue.

El directorio resultante se puede implementar manualmente eb migrate con la archive opción, oeb deploy.

-c subdomain-name

o

--cname subdomain-name

El nombre del subdominio como prefijo a la entrada DNS de CNAME de la aplicación migrada.

Tipo: cadena

Valor predeterminado: nombre del entorno.

-cf

o

--copy-firewall-config

Copie la configuración del firewall del servidor de origen en el destino para todos los puertos HTTP con enlaces activos.

Crea las reglas del grupo de seguridad correspondientes en AWS.

-es snapshot-id [snapshot-id ...]

o

--ebs-snapshots snapshot-id [snapshot-id ...]

Lista separada por comas de instantáneas de Amazon EBS IDs para asociarlas al entorno.

Ejemplo: --ebs-snapshots snap-1234567890abcdef0, snap-0987654321fedcba1

--encrypt-ebs-volumes

Aplique el cifrado a todos los volúmenes nuevos de Amazon EBS.

importante

Se trata de una configuración que afecta a toda la cuenta y que afecta a toda la creación futura de volúmenes de Amazon EBS.

-e environment-name

o

--environment-name environment-name

Nombre del nuevo entorno de Elastic Beanstalk.

Tipo: cadena

Predeterminado: Env EBMigrated

Restricciones: Debe tener una longitud de entre 4 y 40 caracteres. Solo puede contener letras, números y guiones. No puede empezar ni terminar con un guion.

--force

Omita las solicitudes de confirmación durante las operaciones.

Cuando se usa con un cleanup subcomando, elimina los artefactos de migración sin confirmación.

-ip profile-name

o

--instance-profile profile-name

Perfil de instancia para asociarlo a las EC2 instancias de Amazon del entorno.

Si no se especifica, crea un perfil de instancia predeterminado con permisos para acceder a los recursos de Elastic Beanstalk. Para obtener más información, consulte Perfil de instancia de Elastic Beanstalk.

-i instance-type

o

--instance-type instance-type

El tipo de EC2 instancia de Amazon para el entorno de Elastic Beanstalk.

Tipo: cadena

Predeterminado: c5.2xlarge

Para ver los tipos de instancias disponibles, consulta los tipos de EC2 instancias de Amazon en la Guía del EC2 usuario de Amazon.

-in

o

--interactive

Impulse el modo interactivo para el proceso de migración.

Solicita los valores de configuración incluso cuando los valores predeterminados están disponibles.

-k key-name

o

--keyname key-name

Amazon EC2 key pair para permitir el acceso RDP a las instancias del entorno.

Útil para investigar problemas a nivel de instancia que no están visibles en los registros.

Valores válidos: un nombre de key pair existente registrado en Amazon EC2

-p platform-version

o

--platform platform-version

Tiempo de ejecución de la plataforma Elastic Beanstalk para el entorno. Si no se especifica, se detecta automáticamente desde la versión host de Windows Server.

Ejemplo: "64bit Windows Server 2016 v2.16.2 running IIS 10.0"

Para obtener una lista de las versiones de plataforma disponibles, utilice la lista de plataformas web.

--remote

Indica que se debe ejecutar la migración en modo remoto. Esta opción permite la ejecución desde un host bastión, que se conecta al servidor de destino que contiene la aplicación y las configuraciones que se van a migrar a Elastic Beanstalk. Si se ejecuta desde el servidor bastión, eb migrate descubre las configuraciones, organiza la lógica de migración en el host bastión y, a continuación, implementa la aplicación en un nuevo entorno de Elastic Beanstalk.

Esta opción elimina la necesidad de instalar la CLI de EB y Python en el servidor Windows que necesita migrar. En su lugar, instale Python y la CLI de EB en un host bastión, donde ejecute el eb migrate comando con la --remote opción. Utilice la --target-ip opción para especificar el host con las configuraciones de IIS que desea migrar.

Debe usarse con --target-ip--username, y--password.

--target-ip ip-address

Dirección IP pública de la máquina Windows remota que contiene los servidores IIS que se van a migrar.

Se requiere cuando se usa--remote. Solo se puede especificar cuando se usa--remote.

--username username

Nombre de usuario del perfil de usuario para acceder a la máquina Windows remota que contiene los servidores IIS que se van a migrar.

Se requiere cuando se usa--remote. Solo se puede especificar cuando se usa--remote.

--password password

Contraseña del perfil de usuario para acceder a la máquina Windows remota que contiene los servidores IIS que se van a migrar.

Se requiere cuando se usa--remote. Solo se puede especificar cuando se usa--remote.

-sr role-name

o

--service-role role-name

Función de servicio de IAM para Elastic Beanstalk a fin de gestionar los servicios relacionados. AWS

Si no se especifica, crea un rol de servicio predeterminado con los permisos necesarios. Para obtener más información, consulte Rol de servicio de Elastic Beanstalk.

nota

Especifique solo el nombre del rol, no el ARN completo. Elastic Beanstalk crea automáticamente el ARN completo.

-s site-names

o

--sites site-names

Lista separada por comas de los sitios de IIS que se van a migrar. Si no se especifica, migra todos los sitios disponibles en el servidor.

Ejemplo: --sites "Default Web Site,Intranet,API"

--ssl-certificates certificate-arn[,certificate-arn ...]

Lista separada por comas del certificado SSL de ACM ARNs para asociarlo al Application Load Balancer.

Se requiere al migrar sitios con enlaces HTTPS.

Ejemplo: --ssl-certificates arn:aws:acm:region:account:certificate/certificate-id

-t key1=value1[,key2=value2 ...]

o

--tags key1=value1[,key2=value2 ...]

Lista de key=value pares separados por comas para etiquetar los nuevos recursos de su entorno: entorno, aplicación de Elastic Beanstalk, versión de la aplicación.

Para obtener más información, consulte Etiquetado de entornos.

--verbose

Muestre información detallada durante el proceso de migración.

Cuando se usa con un explore subcomando, muestra detalles completos de la configuración del sitio.

-vpc config-file-or-string

o

--vpc-config config-file-or-string

Configuración de VPC para el entorno, especificada como una ruta de archivo JSON o una cadena JSON.

La configuración debe incluir:

{ "id": "vpc-1234567890abcdef0", "publicip": "true|false", "elbscheme": "public|private", "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"], "securitygroups": "sg-123456,sg-789012", "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"] }
  • id: identificador de VPC (obligatorio)

  • publicip: Si se debe asignar el público IPs a las instancias

  • elbscheme: esquema de equilibrio de carga (público o privado)

  • ec2subnets: Lista de subredes IDs para instancias EC2

  • securitygroups: grupo de seguridad separado por comas IDs

  • elbsubnets: Lista de subredes IDs para el balanceador de cargas

importante

La migración ignorará cualquier configuración de VPC existente en el entorno de origen cuando especifique 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.

Opciones comunes

Output

El comando proporciona actualizaciones de estado durante todo el proceso de migración:

  1. Detección de configuración de VPC (cuando se ejecuta en una EC2 instancia)

  2. Progreso de la generación del paquete fuente para cada sitio

  3. Estado de creación del entorno

  4. Implementación en curso

Si se realiza correctamente, muestra los detalles del nuevo entorno, que incluyen:

  • Nombre e ID del entorno

  • Nombre de la aplicación

  • Región

  • Versión de la plataforma

  • CNAME del entorno

Si hay problemas durante la migración, usa los eb healthcomandos eb eventsy para obtener información detallada.

Ejemplos

Uso básico

Migración básica en modo interactivo:

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 Using .\migrations\latest to contain artifacts for this migration run. Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip Creating application version Creating environment Environment details for: EBMigratedEnv Application name: EBMigratedApp Region: us-west-2 Deployed Version: app-230320_153045 Environment ID: e-abcdef1234 Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0 Tier: WebServer-Standard-1.0 CNAME: ebmigratedenv.us-west-2.elasticbeanstalk.com Updated: 2023-03-20 15:30:45

Migración de sitios específicos con una configuración personalizada:

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site,InternalAPI" ` --application-name "CorporateApp" ` --environment-name "Production" ` --instance-type "c5.xlarge" ` --tags "Environment=Production,Team=WebOps" ` --copy-firewall-config

Crear un archivo de migración sin despliegue:

PS C:\migrations_workspace > eb migrate --archive-only Using .\migrations\latest to contain artifacts for this migration run. Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip Generated destination archive directory at .\migrations\latest\upload_target You can execute `eb init` and `eb create` from this directory to deploy to EB.

Ejemplos de configuración avanzada

Migración con configuración de VPC personalizada mediante un archivo JSON:

PS C:\migrations_workspace > cat vpc-config.json { "id": "vpc-1234567890abcdef0", "publicip": "false", "elbscheme": "internal", "ec2subnets": [ "subnet-private1", "subnet-private2" ], "securitygroups": [ "sg-app", "sg-database", "sg-monitoring" ], "elbsubnets": [ "subnet-private1", "subnet-private2" ] } PS C:\migrations_workspace eb migrate ` --sites "InternalAPI" ` --vpc-config vpc-config.json ` --instance-type "r5.xlarge" ` --tags "Environment=Internal,Security=High"

Migración de sitios con certificados SSL y encabezados de host:

PS C:\migrations_workspace > eb migrate ` --sites "SecurePortal" ` --ssl-certificates "arn:aws:acm:region:account:certificate/cert1,arn:aws:acm:region:account:certificate/cert2" ` --verbose INFO: Detected HTTPS bindings: - www.example.com:443 - api.example.com:443 INFO: Configuring Application Load Balancer with SSL certificates INFO: Creating host-based routing rules: - www.example.com -> target group 1 - api.example.com -> target group 2

Migración con configuración instantánea de EBS:fo

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site" ` --ebs-snapshots "snap-1234567890abcdef0" "snap-0987654321fedcba1" ` --encrypt-ebs-volumes Using .\migrations\latest to contain artifacts for this migration run. INFO: Enabling EBS encryption for all new volumes in us-west-2 INFO: Configuring environment with specified EBS snapshots

Ejemplos de configuración de seguridad

Manejo de sitios con reglas de firewall complejas:

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site,ReportingService" ` --copy-firewall-config ` --verbose INFO: Detected the following Windows Firewall rules: - Allow Web Traffic (TCP 80, 443) - Allow Reporting Traffic (TCP 8081) INFO: Creating corresponding security group rules

Migración con funciones de IAM personalizadas:

PS C:\migrations_workspace > eb migrate ` --sites "SecureApp" ` --instance-profile "CustomInstanceProfile" ` --service-role "CustomServiceRole"

Ejemplos de ejecución remota

Migración de aplicaciones IIS desde un servidor Windows remoto:

PS C:\migrations_workspace > eb migrate ` --remote ` --target-ip "192.0.2.10" ` --username "administrator" ` --password "YourPassword123" ` --application-name "RemoteApp" ` --environment-name "RemoteEnv" INFO: Establishing SSH connection to remote host 192.0.2.10... INFO: Connection established INFO: Discovering IIS sites on remote host... INFO: Found 2 sites: Default Web Site, API INFO: Extracting site configurations... INFO: Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip API/ -> .\migrations\latest\upload_target\API.zip Creating application version Creating environment Environment details for: RemoteEnv Application name: RemoteAppstage mi Region: us-west-2 Deployed Version: app-230320_153045 Environment ID: e-abcdef1234 Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0 Tier: WebServer-Standard-1.0 CNAME: remoteenv.us-west-2.elasticbeanstalk.com Updated: 2023-03-20 15:30:45

Migración remota con selección de sitios específicos:

PS C:\migrations_workspace > eb migrate ` --remote ` --target-ip "192.0.2.10" ` --username "administrator" ` --password "YourPassword123" ` --sites "API" ` --instance-type "c5.large"