Configuration des groupes EC2 de sécurité et des types d'instances Amazon à l'aide du AWS CLI - 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.

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'DisableDefaultEC2SecurityGroupoption é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:environmentEnvironmentTypeoption est définie surSingleInstance. Pour créer un environnement à instance unique, vous devez spécifier cette option, car il s'LoadBalancedagit 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-name my-app \ --environment-name my-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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://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é :

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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://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-name my-app \ --environment-name my-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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://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-name my-app \ --environment-name my-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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://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-name my-app \ --environment-name my-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-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" } ]