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.
Configuration réseau et paramètres des ports
Cette section décrit les options de configuration réseau pour les migrations IIS, notamment les paramètres VPC, les configurations de port et les déploiements multisites.
Configuration VPC
La eb migrate commande fournit des options de configuration VPC flexibles pour votre environnement Elastic Beanstalk. L'outil peut soit détecter les paramètres VPC à partir d'une EC2 instance source, soit accepter des configurations VPC personnalisées via des paramètres de ligne de commande. Passez Utilisation d'Elastic Beanstalk avec Amazon VPC en revue pour comprendre comment configurer Elastic Beanstalk avec VPC.
Détection automatique des VPC
Lorsqu'il est eb migrate exécuté sur une EC2 instance, il découvre et utilise automatiquement la configuration VPC à partir des instances de l'environnement source. EC2 L'exemple de sortie suivant illustre les informations de configuration détectées :
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 configuration détectée inclut :
-
Identifiant VPC
-
Paramètres d'attribution d'adresses IP publiques
-
Schéma d'équilibrage de charge (public/privé)
-
EC2 assignations de sous-réseaux d'instance
-
Associations de groupes de sécurité
-
Attributions de sous-réseaux d'équilibreur de charge
Hôtes sur site ou hors AWS cloud
Lorsqu'il est eb migrate exécuté à partir d'un serveur sur site ou d'un hôte non AWS cloud, le service Elastic Beanstalk utilise le VPC par défaut de votre compte. AWS La liste suivante présente un exemple de commande et de sortie :
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.
...
Passez Utilisation d'Elastic Beanstalk avec Amazon VPC en revue pour comprendre comment Elastic Beanstalk configure le VPC par défaut pour votre environnement.
Configuration VPC personnalisée
Pour tout environnement source (EC2sur site ou hors AWS cloud) dans lequel vous avez besoin de paramètres VPC spécifiques, fournissez un fichier de configuration VPC tel que celui présenté dans l'exemple suivant :
{ "id": "vpc-12345678", "publicip": "true", "elbscheme": "public", "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"], "securitygroups": "sg-123456,sg-789012", "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"] }
Appliquez cette configuration à l'aide de la commande suivante :
PS C:\migrations_workspace>
eb migrate --vpc-config vpc-config.json
Note
Le fichier de configuration du VPC nécessite le id
champ qui spécifie l'ID du VPC. Tous les autres champs sont facultatifs, et Elastic Beanstalk utilisera des valeurs par défaut pour tous les champs que vous ne spécifiez pas.
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.
Utilisez le --vpc-config
paramètre dans les scénarios suivants :
-
Lorsque vous migrez des EC2 environnements non dotés de paramètres VPC détectables
-
Lorsque vous migrez vers un VPC différent de celui utilisé par l'environnement source
-
Lorsque vous devez personnaliser les sélections de sous-réseaux ou les configurations de groupes de sécurité
-
Lorsque la découverte automatique n'identifie pas correctement les paramètres VPC souhaités
-
Lorsque vous effectuez une migration depuis un environnement local et que vous ne souhaitez pas utiliser le VPC par défaut
Configuration de la sécurité du réseau
Par défaut, eb migrate ouvre le port 80 sur les instances cibles mais ne copie pas les autres règles du pare-feu Windows depuis la machine source. Pour inclure toutes les configurations de pare-feu, utilisez la commande suivante :
PS C:\migrations_workspace>
eb migrate --copy-firewall-config
Cette commande effectue les actions suivantes :
-
Identifie les ports utilisés par les liaisons de sites IIS
-
Récupère les règles de pare-feu correspondantes
-
Génère PowerShell des scripts pour recréer des règles sur les instances cibles
-
Préserve toutes les règles DENY pour le port 80 depuis la machine source (sinon le port 80 est autorisé par défaut)
Prenons un cas d'utilisation où votre machine source possède les règles de pare-feu spécifiées dans l'exemple suivant :
# 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 migration crée un script (modify_firewall_config.ps1
) qui contient la configuration suivante :
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
L'outil de migration effectue automatiquement les actions suivantes :
-
Extrait les ports HTTP/HTTPS de toutes les liaisons de sites IIS
-
Utilise l'interface Windows Firewall INetFwPolicy2
pour énumérer les règles de pare-feu -
Filtre les règles pour n'inclure que celles qui font explicitement référence aux ports spécifiés
-
Traite uniquement les liaisons de sites HTTP et HTTPS et leurs règles de pare-feu associées
-
Préserve les propriétés des règles, notamment le nom d'affichage, l'action, le protocole et l'état activé
-
Gère à la fois les ports individuels et les plages de ports dans les règles de pare-feu
-
Ajoute le script de configuration du pare-feu au manifeste de déploiement
Configuration de l'équilibreur de charge
Vous pouvez spécifier la configuration du Load Balancer via l'--vpc-config
argument. Les exemples suivants illustrent les paramètres.
- Sélection du schéma
-
Choisissez entre des schémas d'équilibreur de charge publics et privés :
{ "id": "vpc-12345678", "elbscheme": "private", "elbsubnets": ["subnet-private1", "subnet-private2"] }
- Distribution de sous-réseaux
-
Pour une haute disponibilité, répartissez les sous-réseaux d'équilibrage de charge entre les zones de disponibilité :
{ "elbsubnets": [ "subnet-az1", // Availability Zone 1 "subnet-az2", // Availability Zone 2 "subnet-az3" // Availability Zone 3 ] }
Note
Alors qu'Elastic Beanstalk prend en charge la création d'environnements avec des équilibreurs de charge d'application, des équilibreurs de charge réseau et des équilibreurs de charge classiques, la commande prend uniquement en charge les eb migrate équilibreurs de charge d'application. Pour plus d'informations sur les types d'équilibreurs de charge, consultez la section Équilibreur de charge pour votre environnement Elastic Beanstalk.
Déploiements multisites avec configurations de ports
La eb migrate commande gère les déploiements IIS multisites complexes dans lesquels les applications peuvent partager des dépendances ou utiliser des ports non standard. Prenons l'exemple suivant d'une configuration d'entreprise typique avec plusieurs sites :
<!-- 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>
Pour migrer cette configuration, utilisez les exemples de commande et de paramètres suivants :
PS C:\migrations_workspace>
eb migrate ` --sites "Default Web Site,InternalAPI,ReportingPortal" ` --copy-firewall-config ` --instance-type "c5.large"
La eb migrate commande crée un package de déploiement qui préserve l'identité et la configuration de chaque site. La commande génère un aws-windows-deployment-manifest.json
qui définit la manière dont ces sites doivent être déployés. L'exemple suivant illustre un fichier json généré :
{ "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" } } } ] } }
Le processus de migration crée les règles d'écoute Application Load Balancer suivantes qui conservent votre logique de routage d'origine :
-
Le trafic du port 80 est acheminé vers le site Web par défaut
-
Le trafic du port 8081 est acheminé vers l'API interne
-
Le trafic du port 8082 est acheminé vers ReportingPortal
Configuration et dépendances partagées
Lorsque les sites partagent des configurations ou des dépendances, eb migrate gère ces relations de manière appropriée. Reportez-vous à l'exemple suivant où plusieurs sites partagent une configuration commune :
<!-- Shared configuration in applicationHost.config --> <location path="Default Web Site"> <system.webServer> <asp enableSessionState="true" /> <caching enabled="true" enableKernelCache="true" /> </system.webServer> </location>
Le processus de migration exécute les tâches suivantes :
-
Identifie les configurations partagées entre les sites
-
Génère PowerShell des scripts appropriés pour appliquer ces paramètres
-
Maintient la hiérarchie de configuration et l'héritage
Bonnes pratiques
Nous vous recommandons de suivre les meilleures pratiques pour la configuration réseau de votre application migrée. Les groupes suivants fournissent des directives récapitulatives.
- Conception en VPC
-
-
Suivez les meilleures AWS pratiques en matière de conception de VPC
-
Utiliser des sous-réseaux distincts pour les équilibreurs de charge et les instances EC2
-
Implémenter des tables de routage appropriées et NACLs
-
Envisagez les points de terminaison VPC pour les services AWS
-
- Haute disponibilité
-
-
Déployer sur plusieurs zones de disponibilité
-
Utiliser au moins deux sous-réseaux pour les équilibreurs de charge
-
Configurer l'auto-scaling sur AZs
-
Mettre en œuvre des bilans de santé appropriés
-
- Sécurité
-
-
Suivez les meilleures pratiques en matière de sécurité
-
Utiliser les groupes de sécurité comme contrôle d'accès principal
-
Implémenter des listes de contrôle d'accès au réseau (ACLs) pour une sécurité accrue
-
Surveiller les journaux de flux VPC
-
Résolution des problèmes
Les problèmes courants de configuration réseau concernent les domaines suivants. Chaque sujet est suivi d'exemples de commandes permettant d'obtenir plus d'informations sur la configuration du réseau et l'état de santé de votre environnement.
- Configuration du sous-réseau
-
# 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'
- Accès aux groupes de sécurité
-
# 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
- État de l'équilibreur de charge
-
# 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