eb migrate - AWS Elastic Beanstalk

eb migrate

Descrição

Migra sites e aplicações do Internet Information Services (IIS) de um servidor Windows para o Elastic Beanstalk. O comando empacota suas aplicações, preserva suas configurações e as implanta em um novo ambiente do Elastic Beanstalk.

Para obter mais informações sobre como migrar seus sites e aplicações do IIS, consulte Migrar aplicações do IIS para o Elastic Beanstalk.

nota

Antes de usar este comando, certifique-se de que seu sistema atenda aos seguintes requisitos necessários:

  • Serviços de Informação da Internet (IIS) versão 7.0 ou posterior

  • Web Deploy 3.6 ou posterior instalado

  • Privilégios administrativos no Windows Server

  • Credenciais da AWS configuradas com as permissões apropriadas

  • Seu servidor de origem tem acesso externo à Internet para serviços da AWS.

As etapas a seguir resumem o processo de migração:

  1. Descubra sites do IIS e suas configurações.

  2. Empacote o conteúdo e a configuração da aplicação.

  3. Crie um ambiente e uma aplicação do Elastic Beanstalk.

  4. Implante a aplicação com configurações preservadas.

O comando cria artefatos de migração em um diretório estruturado, como mostra a lista a seguir:

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

Use eb migrate cleanup para gerenciar esses artefatos.

Sintaxe

eb migrate [options]

eb migrate explore [options]

eb migrate cleanup [options]

Quando executado sem argumentos, eb migrate opera no modo não interativo. Para executá-lo no modo interativo, execute eb migrate --interactive.

O comando do modo interativo solicita as seguintes informações:

  • Seleção de sites do IIS para migrar

  • Nomes do ambiente e da aplicação

  • Seleção da versão da plataforma

  • Tipo de instância e outras opções de configuração

Subcomandos

explore

O subcomando eb migrate explore examina seu servidor IIS e lista os sites disponíveis.

Use esse comando para exibir as seguintes informações:

  • Exibir todos os sites do IIS no servidor

  • Com --verbose, inspecione a configuração detalhada, incluindo:

    • Ligações e portas do site

    • Grupos de aplicações

    • Diretórios virtuais e seus caminhos físicos

    • Configurações de Autenticação

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: ...

Limpeza

O subcomando eb migrate cleanup gerencia os artefatos de migração com as seguintes ações:

  • Preservar a migração bem-sucedida mais recente em ./migrations/latest

  • Remover diretórios de migração mais antigos

  • Manutenção de arquivos de configuração críticos

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

Use --force para ignorar as solicitações de confirmação durante a limpeza.

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

Opções

Nenhuma dessas opções é obrigatória. Se você executar eb migrate sem opção, a EB CLI será executada no modo não interativo. Com eb migrate --interactive, a EB CLI solicita que você insira ou selecione um valor para as configurações necessárias.

Nome

Descrição

-a application-name

ou

--application-name application-name

Nome para a nova aplicação Elastic Beanstalk.

Tipo: String

Padrão: EBMigratedApp

--archivediretório-ou-zip

O diretório ou arquivo ZIP contendo o código-fonte gerado anteriormente por eb migrate --archive-only.

Use essa opção para implantar um pacote de migração criado anteriormente.

Exemplo: --archive .\migrations\latest\upload_target ou --archive .\migrations\latest\upload_target.zip

-ao

ou

--archive-only

Crie somente o diretório de arquivamento de destino sem implantação.

O diretório resultante pode ser implantado manualmente usando eb migrate com a opção archive ou eb deploy.

-c subdomain-name

ou

--cname subdomain-name

O nome do subdomínio para prefixar a entrada de CNAME DNS para seu aplicação migrado.

Tipo: String

Padrão: o nome do ambiente

-cf

ou

--copy-firewall-config

Copie a configuração do firewall do servidor de origem para o destino de todas as portas HTTP com associações ativas.

Cria regras de grupo de segurança correspondentes em AWS.

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

ou

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

Lista separada por vírgulas dos IDs de snapshots do Amazon EBS para associar ao ambiente.

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

--encrypt-ebs-volumes

Aplique criptografia para todos os volumes do Amazon EBS.

Importante

Essa é uma configuração de toda a conta que afeta toda a criação futura de volumes do Amazon EBS.

-e environment-name

ou

--environment-name environment-name

Nome para o novo ambiente do Elastic Beanstalk.

Tipo: String

Padrão: EBMigratedEnv

Restrições: deve ter entre 4 e 40 caracteres. Pode pode conter somente letras, números e hifens. Não pode começar ou terminar com um hífen (-).

--force

Ignore os prompts de confirmação durante as operações.

Quando usado com o subcomando cleanup, remove artefatos de migração sem confirmação.

-ip profile-name

ou

--instance-profile profile-name

Perfil da instância para associar às instâncias do Amazon EC2.

Se não for especificado, cria um perfil de instância padrão com permissões para acessar os recursos do Elastic Beanstalk. Para obter mais informações, consulte Perfil de instância do Elastic Beanstalk.

-i instance-type

ou

--instance-type instance-type

O tipo de instância do Amazon EC2 para o seu ambiente Elastic Beanstalk.

Tipo: String

Padrão: c5.2xlarge

Para obter informações sobre os tipos de instância disponíveis, consulte Tipos de instância do Amazon EC2, no Guia do usuário do Amazon EC2.

-in

ou

--interactive

Forçar o modo interativo para o processo de migração.

Solicita valores de configuração mesmo quando padrões estão disponíveis.

-k key-name

ou

--keyname key-name

O par de chaves do Amazon EC2 para permitir o acesso RDP às instâncias do ambiente.

Útil para investigar problemas no nível da instância que não são visíveis nos logs.

Valores válidos: um nome de par de chaves existente registrado no Amazon EC2

-p platform-version

ou

--platform platform-version

Runtime da plataforma Elastic Beanstalk para o ambiente. Se não for especificado, detectado automaticamente a partir da versão host do Windows Server.

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

Para obter uma lista das versões disponíveis da plataforma, use a lista de plataformas eb.

--remote

Indica a execução da migração no modo remoto. Essa opção permite a execução a partir de um bastion host, que se conecta ao servidor de destino que contém o aplicação e as configurações a serem migradas para o Elastic Beanstalk. Em execução a partir do servidor bastion, eb migrate descobre configurações, organiza a lógica de migração no bastion host e, em seguida, implanta sua aplicação em um novo ambiente do Elastic Beanstalk.

Essa opção dispensa a necessidade de instalar a EB CLI e o Python no servidor Windows que você precisa migrar. Em vez disso, você instala o Python e a EB CLI em um bastion host, onde executa o comando eb migrate com a opção --remote. Use a opção --target-ip para especificar o host com as configurações do IIS a serem migradas.

Deve ser usado com --target-ip, --username e --password.

--target-ip ip-address

Endereço IP público da máquina Windows remota que contém os servidores IIS a serem migrados.

Necessário ao usar --remote. Só pode ser especificado ao usar --remote.

--username Nome de usuário do

Nome de usuário do perfil de usuário para acessar a máquina Windows remota que contém os servidores IIS a serem migrados.

Necessário ao usar --remote. Só pode ser especificado ao usar --remote.

--password senha do

Senha do perfil do usuário para acessar a máquina Windows remota que contém os servidores IIS a serem migrados.

Necessário ao usar --remote. Só pode ser especificado ao usar --remote.

-srNome do perfil

ou

--service-roleNome do perfil

Perfil de serviço do IAM para o Elastic Beanstalk gerenciar serviços da AWS relacionados.

Se não for especificado, cria um perfil de serviço padrão com as permissões necessárias. Para obter mais informações, consulte Função de serviço do Elastic Beanstalk.

nota

Especifique somente o nome do perfil, não o ARN completo. O Elastic Beanstalk cria automaticamente o ARN completo.

-s site-names

ou

--sites site-names

Lista separada por vírgulas dos sites do IIS para migrar. Se não for especificado, migra todos os sites disponíveis no servidor.

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

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

Lista separada por vírgula de ARNs do certificado SSL do ACM para associar ao Application Load Balancer.

Obrigatória ao migrar sites com associações HTTPS.

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

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

ou

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

Lista de pares de key=value separados por vírgulas para marcar novos recursos no seu ambiente: ambiente, aplicação do Elastic Beanstalk, versão da aplicação.

Para obter mais informações, consulte Marcação em ambientes.

--verbose

Mostre informações detalhadas durante o processo de migração.

Quando usado com o subcomando explore, exibe detalhes abrangentes da configuração do site.

-vpc config-file-or-string

ou

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

Configuração de VPC para o ambiente, especificada como um caminho de arquivo JSON ou uma string JSON.

A configuração deve 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: (Obrigatório) Identificador de VPC

  • publicip: se devem atribuir IPs públicos às instâncias

  • elbscheme: esquema de balanceamento de carga (público ou privado)

  • ec2subnets: lista de IDs de sub-rede para instâncias do EC2

  • securitygroups: IDs de grupos de segurança separados por vírgulas

  • elbsubnets: lista de IDs de sub-rede para o balanceador de carga

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.

Opções comuns

Resultado

O comando fornece atualizações de status durante todo o processo de migração:

  1. Detecção da configuração da VPC (ao executar em uma instância do EC2)

  2. Progresso da geração do pacote de origem para cada site

  3. Status de criação do ambiente

  4. Progresso da implantação

Se for bem-sucedido, exibe os detalhes do novo ambiente, incluindo:

  • Nome e ID da do ambiente

  • Nome da aplicação

  • Região

  • Versão da plataforma

  • CNAME do ambiente

Para problemas durante a migração, use os comandos eb health e eb events para obter informações detalhadas.

Exemplos

Uso básico

Migração básica no modo interativo:

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

Migração de sites específicos com configuração 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

Criar um arquivo de migração sem implantação:

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.

Exemplos de configuração avançados

Migração com configuração de VPC personalizada usando um arquivo 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"

Migrar sites com certificados SSL e cabeçalhos 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

Migração com configuração de snapshot do 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

Exemplos de configuração de segurança

Lidar com sites com regras de firewall complexas:

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

Migração com perfis do IAM personalizados:

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

Exemplos de execução remota

Migrar aplicações do IIS de um Windows Server 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

Migração remota com seleção de site específico:

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