eb migrate - AWS Elastic Beanstalk

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

eb migrate

Description

Fait migrer les sites et applications Internet Information Services (IIS) d'un serveur Windows vers Elastic Beanstalk. La commande empaquète vos applications, préserve leurs configurations et les déploie dans un nouvel environnement Elastic Beanstalk.

Pour plus d'informations sur la migration de vos sites et applications IIS, consultezMigration des applications IIS vers Elastic Beanstalk.

Note

Avant d'utiliser cette commande, assurez-vous que votre système répond aux exigences suivantes :

  • Internet Information Services (IIS) version 7.0 ou ultérieure

  • Web Deploy 3.6 ou version ultérieure installé

  • Privilèges administratifs sur le serveur Windows

  • AWS informations d'identification configurées avec les autorisations appropriées

  • Votre serveur source dispose d'un accès Internet sortant aux AWS services.

Les étapes suivantes résument le processus de migration :

  1. Découvrez les sites IIS et leurs configurations.

  2. Package du contenu et de la configuration de l'application.

  3. Créez l'environnement et l'application Elastic Beanstalk.

  4. Déployez l'application avec des paramètres préservés.

La commande crée des artefacts de migration dans un répertoire structuré, comme indiqué dans la liste suivante :

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

eb migrate cleanupÀ utiliser pour gérer ces artefacts.

Syntaxe

eb migrate [options]

eb migrate explore [options]

eb migrate cleanup [options]

Lorsqu'il est exécuté sans arguments, eb migrate fonctionne en mode non interactif. Pour l'exécuter en mode interactif, exécutezeb migrate --interactive.

La commande du mode interactif demande les informations suivantes :

  • Sélection des sites IIS à migrer

  • Noms de l'environnement et des applications

  • Sélection de la version de la plateforme

  • Type d'instance et autres options de configuration

Sous-commandes

explorer

La eb migrate explore sous-commande examine votre serveur IIS et répertorie les sites disponibles.

Utilisez cette commande pour afficher les informations suivantes :

  • Afficher tous les sites IIS sur le serveur

  • Avec--verbose, inspectez la configuration détaillée, y compris :

    • Liaisons et ports du site

    • Pools d'applications

    • Répertoires virtuels et leurs chemins physiques

    • Paramètres d'authentification

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

nettoyage

La eb migrate cleanup sous-commande gère les artefacts de migration à l'aide des actions suivantes :

  • Préserver la dernière migration réussie dans ./migrations/latest

  • Suppression des anciens répertoires de migration

  • Gestion des fichiers de configuration critiques

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

--forceÀ utiliser pour ignorer les instructions de confirmation pendant le nettoyage.

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

Options

Aucune de ces options n'est obligatoire. Si vous exécutez eb migrate sans aucune option, l'interface de ligne de commande EB s'exécutera en mode non interactif. Aveceb migrate --interactive, l'EB CLI vous invite à saisir ou à sélectionner une valeur pour les paramètres requis.

Name (Nom)

Description

-a application-name

or

--application-name application-name

Nom de la nouvelle application Elastic Beanstalk.

Type : String

Par défaut : EBMigrated App

--archive directory-or-zip

Le répertoire ou le fichier ZIP contenant le code source précédemment généré pareb migrate --archive-only.

Utilisez cette option pour déployer un package de migration créé précédemment.

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

-ao

or

--archive-only

Créez uniquement le répertoire d'archives de destination sans déploiement.

Le répertoire obtenu peut être déployé manuellement à l'eb migrateaide de l'archiveoption, oueb deploy.

-c subdomain-name

or

--cname subdomain-name

Le nom du sous-domaine devant préfixer l'entrée DNS CNAME de votre application migrée.

Type : String

Par défaut : le nom de l'environnement

-cf

or

--copy-firewall-config

Copiez la configuration du pare-feu du serveur source vers la destination pour tous les ports HTTP dotés de liaisons actives.

Crée les règles de groupe de sécurité correspondantes dans AWS.

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

or

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

Liste séparée par des virgules des instantanés Amazon EBS IDs à associer à l'environnement.

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

--encrypt-ebs-volumes

Appliquez le chiffrement à tous les nouveaux volumes Amazon EBS.

Important

Il s'agit d'un paramètre à l'échelle du compte qui affecte toutes les futures créations de volumes Amazon EBS.

-e environment-name

or

--environment-name environment-name

Nom du nouvel environnement Elastic Beanstalk.

Type : String

Par défaut : EBMigrated Env

Contraintes : Doit comporter entre 4 et 40 caractères. Ne peut contenir que des lettres, des chiffres et des traits d'union. Il ne peut pas commencer ni se terminer par un trait d'union.

--force

Ignorez les instructions de confirmation pendant les opérations.

Lorsqu'il est utilisé avec une cleanup sous-commande, supprime les artefacts de migration sans confirmation.

-ip profile-name

or

--instance-profile profile-name

Profil d'instance à associer aux EC2 instances Amazon de l'environnement.

S'il n'est pas spécifié, crée un profil d'instance par défaut avec les autorisations d'accès aux ressources Elastic Beanstalk. Pour de plus amples informations, veuillez consulter Profil d'instance Elastic Beanstalk.

-i instance-type

or

--instance-type instance-type

Type d' EC2 instance Amazon pour votre environnement Elastic Beanstalk.

Type : String

Par défaut : c5.2xlarge

Pour connaître les types d'instances disponibles, consultez les types d' EC2 instances Amazon dans le guide de EC2 l'utilisateur Amazon.

-in

or

--interactive

Forcer le mode interactif pour le processus de migration.

Vous invite à saisir les valeurs de configuration même lorsque des valeurs par défaut sont disponibles.

-k key-name

or

--keyname key-name

Paire de EC2 clés Amazon pour permettre l'accès RDP aux instances de l'environnement.

Utile pour étudier les problèmes au niveau de l'instance qui ne sont pas visibles dans les journaux.

Valeurs valides : nom de paire de clés existant enregistré auprès d'Amazon EC2

-p platform-version

or

--platform platform-version

Runtime de la plateforme Elastic Beanstalk pour l'environnement. Si ce n'est pas spécifié, détecté automatiquement à partir de la version hôte de Windows Server.

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

Pour obtenir la liste des versions de plate-forme disponibles, utilisez la liste des plateformes Web.

--remote

Indique d'exécuter la migration en mode distant. Cette option permet l'exécution à partir d'un hôte bastion, qui se connecte au serveur cible qui contient l'application et les configurations à migrer vers Elastic Beanstalk. Exécuté depuis le serveur Bastion, eb migrate découvre les configurations, met en place la logique de migration sur l'hôte du bastion, puis déploie votre application dans un nouvel environnement Elastic Beanstalk.

Cette option élimine le besoin d'installer l'interface de ligne de commande EB et Python sur le serveur Windows que vous devez migrer. Vous installez plutôt Python et l'EB CLI sur un hôte bastion, où vous exécutez la eb migrate commande avec l'--remoteoption. Utilisez l'--target-ipoption pour spécifier l'hôte avec les configurations IIS à migrer.

Doit être utilisé avec --target-ip--username, et--password.

--target-ip ip-address

Adresse IP publique de la machine Windows distante qui contient les serveurs IIS à migrer.

Nécessaire lors de l'utilisation--remote. Ne peut être spécifié que lors de l'utilisation--remote.

--username username

Nom d'utilisateur du profil utilisateur permettant d'accéder à la machine Windows distante qui contient les serveurs IIS à migrer.

Nécessaire lors de l'utilisation--remote. Ne peut être spécifié que lors de l'utilisation--remote.

--password password

Mot de passe du profil utilisateur permettant d'accéder à la machine Windows distante qui contient les serveurs IIS à migrer.

Nécessaire lors de l'utilisation--remote. Ne peut être spécifié que lors de l'utilisation--remote.

-sr role-name

or

--service-role role-name

Rôle de service IAM pour Elastic Beanstalk afin de gérer les services associés. AWS

S'il n'est pas spécifié, crée un rôle de service par défaut avec les autorisations nécessaires. Pour de plus amples informations, veuillez consulter Rôle de service Elastic Beanstalk.

Note

Spécifiez uniquement le nom du rôle, pas l'ARN complet. Elastic Beanstalk crée automatiquement l'ARN complet.

-s site-names

or

--sites site-names

Liste des sites IIS à migrer séparés par des virgules. Si ce n'est pas spécifié, migre tous les sites disponibles sur le serveur.

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

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

Liste séparée par des virgules des certificats SSL ACM ARNs à associer à l'Application Load Balancer.

Nécessaire lors de la migration de sites avec des liaisons HTTPS.

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

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

or

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

Liste de key=value paires séparées par des virgules pour baliser les nouvelles ressources de votre environnement : environnement, application Elastic Beanstalk, version de l'application.

Pour de plus amples informations, veuillez consulter Balisage des environnements.

--verbose

Afficher des informations détaillées pendant le processus de migration.

Lorsqu'il est utilisé avec une explore sous-commande, affiche les détails complets de la configuration du site.

-vpc config-file-or-string

or

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

Configuration VPC pour l'environnement, spécifiée sous forme de chemin de fichier JSON ou de chaîne JSON.

La configuration doit inclure :

{ "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: (Obligatoire) Identifiant VPC

  • publicip: s'il faut attribuer du public IPs aux instances

  • elbscheme: schéma d'équilibrage de charge (public ou privé)

  • ec2subnets: liste des sous-réseaux IDs pour les instances EC2

  • securitygroups: groupe de sécurité séparé par des virgules IDs

  • elbsubnets: liste des sous-réseaux IDs pour l'équilibreur de charge

Important

La migration ignorera tous les paramètres VPC existants de l'environnement source lorsque vous spécifiez le --vpc-config paramètre. Lorsque vous utilisez ce paramètre, la migration utilise uniquement les paramètres VPC spécifiés dans le fichier de configuration que vous transmettez. L'utilisation de ce paramètre remplace le comportement par défaut qui consiste à découvrir la configuration VPC de l'instance source ou à utiliser le VPC par défaut.

Options courantes

Sortie

La commande fournit des mises à jour de statut tout au long du processus de migration :

  1. Détection de configuration VPC (lors de l'exécution sur une EC2 instance)

  2. Progression de la génération du bundle source pour chaque site

  3. État de création de l'environnement

  4. Progression du déploiement

En cas de succès, affiche les détails du nouvel environnement, notamment :

  • Nom et ID de l'environnement

  • Nom de l'application

  • Région

  • Version de plateforme

  • Environnement CNAME

En cas de problème lors de la migration, utilisez les eb healthcommandes eb eventset pour obtenir des informations détaillées.

Exemples

Utilisation de base

Migration de base en mode interactif :

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

Migration de sites spécifiques avec une configuration personnalisée :

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

Création d'une archive de migration sans déploiement :

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.

Exemples de configuration avancée

Migration avec configuration VPC personnalisée à l'aide d'un fichier 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"

Migration de sites avec des certificats SSL et des en-têtes d'hôte :

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

Migration avec configuration instantanée 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

Exemples de configuration de sécurité

Gestion des sites soumis à des règles de pare-feu complexes :

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

Migration avec des rôles IAM personnalisés :

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

Exemples d'exécution à distance

Migration des applications IIS depuis un serveur Windows distant :

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

Migration à distance avec sélection de sites spécifiques :

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