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 des groupes EC2 de sécurité et des types d'instances Amazon à l'aide du AWS CLI
Vous pouvez utiliser l'interface de ligne de AWS commande (AWS CLI) pour configurer les EC2 instances Amazon dans vos environnements Elastic Beanstalk.
Configuration des groupes EC2 de sécurité à l'aide du AWS CLI
Cette rubrique fournit des exemples de différentes configurations EC2 de groupes de sécurité pour les environnements à instance unique et à charge équilibrée (multi-instances). Pour plus d'informations sur les options de ces exemples, consultez aws:autoscaling:launchconfiguration.
Remarques
L'opération de création d'environnement fournit un groupe EC2 de sécurité par défaut. Il crée également un environnement avec un équilibreur de charge d'application par défaut.
L'opération de mise à jour de l'environnement peut être utilisée pour désactiver ou activer le groupe de EC2 sécurité par défaut pour votre environnement à l'aide de l'option booléenne. DisableDefaultEC2SecurityGroup
L'exemple 5 montre comment rétablir la configuration de sécurité par défaut de votre environnement si vous l'avez déjà modifiée.
Les exemples suivants montrent une commande create-environment désactivant le groupe de EC2 sécurité par défaut et fournissant des groupes de sécurité personnalisés à la place. L'DisableDefaultEC2SecurityGroup
option étant définie surtrue
, le groupe de EC2 sécurité par défaut qu'Elastic Beanstalk associe normalement EC2 aux instances n'est pas créé. Par conséquent, vous devez fournir SecurityGroups
cette option à d'autres groupes de sécurité.
Notez que l'aws:elasticbeanstalk:environmentEnvironmentType
option est définie surSingleInstance
. Pour créer un environnement à instance unique, vous devez spécifier cette option, car il s'LoadBalanced
agit de la valeur par défautEnvironmentType
. Comme cet environnement n'inclut pas d'équilibreur de charge, il n'est pas nécessaire de spécifier un groupe de sécurité d'équilibreur de charge.
Exemple 1 — Nouvel environnement à instance unique avec groupes de EC2 sécurité personnalisés (options d'espace de noms intégrées)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v6.5.0 applrunning Node.js 22"
\ --option-settings \ Namespace=aws:elasticbeanstalk:environment,OptionName=EnvironmentType,Value=SingleInstance
\ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
\ Namespace=aws:autoscaling:launchconfiguration,OptionName=DisableDefaultEC2SecurityGroup,Value=true
\ Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=sg-abcdef01, sg-abcdef02
\ Namespace=aws:autoscaling:launchconfiguration,OptionName=EC2KeyName,Value=my-keypair
À titre de solution de rechange, utilisez un fichier options.json
pour spécifier les options de l'espace de noms au lieu de les inclure en ligne.
Exemple 2 — Nouvel environnement à instance unique avec groupes de EC2 sécurité personnalisés (options d'espace de noms dans le options.json
fichier)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v6.5.0 running Node.js 22"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "EnvironmentType", "Value" : "SingleInstance" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "my-keypair" } ]
L'exemple suivant crée un environnement d'équilibrage de charge. Elle spécifie l'option d'aws:elasticbeanstalk:environmentespace de noms LoadBalancerType
définie sur. application
Comme nous désactivons le groupe de EC2 sécurité par défaut avec DisableDefaultEC2SecurityGroup
cette option, nous devons à nouveau fournir nos propres groupes de sécurité personnalisés pour les EC2 instances, avec aws:autoscaling:launchconfiguration SecurityGroups
cette option, comme dans l'exemple précédent. Étant donné que cet environnement dispose d'un équilibreur de charge pour acheminer le trafic, nous devons également fournir des groupes de sécurité pour l'équilibreur de charge.
Pour créer un environnement avec un équilibreur de charge classique, mais avec la même configuration, mettez à jour la configuration de l'option LoadBalancerType
d'espace de aws:elasticbeanstalk:environment noms sur. classic
Les différents types d'équilibreurs de charge ont des espaces de noms différents qui contiennent les options permettant de spécifier les groupes de sécurité :
-
équilibreur de charge d'application — option aws:elbv2:loadbalancer
SecurityGroups
-
équilibreur de charge classique — option aws:elb:loadbalancer
SecurityGroups
-
équilibreur de charge réseau : les équilibreurs de charge réseau n'ayant pas de groupes de sécurité, configurez les groupes de EC2 sécurité avec des identifiants VPC. Pour plus d'informations, voir Mettre à jour les groupes de sécurité pour votre Network Load Balancer dans le Guide de l'utilisateur pour les Network Load Balancers.
Exemple 3 — Nouvel environnement multi-instance avec groupes de EC2 sécurité personnalisés (options d'espace de noms dans le options.json
fichier)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v6.5.0 running Node.js 22"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "EnvironmentType", "Value" : "LoadBalanced" }, { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "LoadBalancerType", "Value" : "application" }, { "Namespace" : "aws:elbv2:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "my-keypair" } ]
Vous pouvez désactiver le groupe de EC2 sécurité par défaut pour un environnement existant à l'aide de la commande update-environment. L'exemple de commande suivant désactive le groupe de EC2 sécurité par défaut et attribue des groupes de EC2 sécurité personnalisés aux EC2 instances de l'environnement.
Utilisez les options.jason
fichiers d'exemple des exemples 4 (a), 4 (b) ou 4 (c), selon que l'environnement est équilibré en charge et selon le type d'équilibreur de charge. Le fichier de configuration 4 (a) spécifie les groupes de sécurité pour un environnement à instance unique. Comme il ne nécessite pas d'équilibreur de charge, nous fournissons uniquement le groupe de sécurité pour les EC2 instances. Les fichiers de configuration 4 (b) et 4 (c) spécifient les groupes de sécurité pour un équilibreur de charge d'application et un équilibreur de charge classique. Dans ces cas, nous devons également spécifier des groupes de sécurité pour l'équilibreur de charge.
Exemple 4 — Mettre à jour un environnement existant pour désactiver le groupe de EC2 sécurité par défaut (options d'espace de noms dans options.json
le fichier)
aws elasticbeanstalk update-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v6.5.0 running Node.js 22"
\ --option-settingsfile://options.json
Exemple 4 (a) — Fichier de configuration pour un environnement à instance unique (sans équilibreur de charge)
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]
Pour mettre à jour un environnement qui utilise un équilibreur de charge d'application, utilisez l'espace de aws:elbv2:loadbalancer
noms pour spécifier les groupes de sécurité pour l'équilibreur de charge.
Exemple 4 (b) — Fichier de configuration pour un environnement doté d'un équilibreur de charge d'application
### example options.json ### [ { "Namespace" : "aws:elbv2:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]
Pour mettre à jour un environnement qui utilise un équilibreur de charge classique, utilisez l'espace de aws:elb:loadbalancer
noms pour spécifier les groupes de sécurité pour l'équilibreur de charge.
Exemple 4 (c) — Fichier de configuration pour un environnement avec un équilibreur de charge classique
### example options.json ### [ { "Namespace" : "aws:elb:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration",n "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]
Pour rétablir le comportement et la configuration par défaut de votre environnement avec le groupe de sécurité par défaut attribué par Elastic Beanstalk, utilisez la commande update-environment pour définir le sur. DisableDefaultEC2SecurityGroup
false
Pour un environnement multi-instances, Elastic Beanstalk gère également les groupes de sécurité et les règles de trafic réseau pour l'équilibreur de charge de votre environnement.
L'exemple suivant s'applique à un environnement à instance unique ou à instances multiples (équilibrage de charge) :
Exemple 5 — Mettre à jour un environnement pour qu'il utilise à nouveau le groupe de sécurité par défaut (options d'espace de noms dans options.json
le fichier)
aws elasticbeanstalk update-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v6.5.0 running Node.js 22"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "false" } ]
Configuration EC2 avec des types d'instances à l'aide du AWS CLI
Cette rubrique fournit des exemples de configuration des types d' EC2 instances de votre environnement.
Les deux premiers exemples créent un environnement. La commande spécifie un type d' EC2 instance Amazon, t4g.small, basé sur l'architecture du processeur arm64. Elastic Beanstalk définit l'ID d'image (AMI EC2 ) par défaut pour les instances en fonction de la région, de la version de plateforme et du type d'instance. Le type d'instance correspond à une architecture de processeur. Le paramètre solution-stack-name
s'applique à la version de la plateforme.
Exemple 1 : créer un environnement basé sur arm64 (options d'espace de noms en ligne)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
\ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small
À titre de solution de rechange, utilisez un fichier options.json
pour spécifier les options de l'espace de noms au lieu de les inclure en ligne.
Exemple 2 : créer un environnement basé sur arm64 (options d'espace de noms en ligne dans le fichier options.json
)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small" } ]
Les deux exemples suivants mettent à jour la configuration d'un environnement existant avec la commande update-environment. Dans cet exemple, nous ajoutons un autre type d'instance basé également sur l'architecture du processeur arm64. Pour les environnements existants, tous les types d'instance ajoutés doivent avoir la même architecture de processeur. Si vous souhaitez remplacer les types d'instance existants par ceux issus d'une architecture différente, vous pouvez le faire. Mais assurez-vous que tous les types d'instances de la commande ont le même type d'architecture.
Exemple 3 : mettre à jour un environnement basé sur arm64 existant (options d'espace de noms en ligne)
aws elasticbeanstalk update-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
\ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small,t4g.micro
À titre de solution de rechange, utilisez un fichier options.json
pour spécifier les options de l'espace de noms au lieu de les inclure en ligne.
Exemple 4 : mettre à jour un environnement basé sur arm64 existant (options d'espace de noms dans le fichier options.json
)
aws elasticbeanstalk update-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small, t4g.micro" } ]
Les deux exemples suivants montrent des commandes create-environment supplémentaires. Ces exemples ne fournissent pas de valeurs pour InstanceTypes
. Quand les valeurs InstanceTypes
ne sont pas spécifiées, Elastic Beanstalk utilise par défaut une architecture de processeur basée sur x86. L'ID d'image (AMI) pour les EC2 instances de l'environnement sera défini par défaut en fonction de la région, de la version de la plateforme et du type d'instance par défaut. Le type d'instance correspond à une architecture de processeur.
Exemple 5 : créer un environnement basé sur x86 (options d'espace de noms en ligne)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
À titre de solution de rechange, utilisez un fichier options.json
pour spécifier les options de l'espace de noms au lieu de les inclure en ligne.
Exemple 6 : créer un environnement basé sur x86 (options d'espace de noms en ligne dans le fichier options.json
)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"
\ --option-settingsfile://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" } ]