Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de grupos EC2 de seguridad y tipos de instancias de Amazon mediante AWS CLI
Puede utilizar la interfaz de línea de AWS comandos (AWS CLI) para configurar las EC2 instancias de Amazon en sus entornos de Elastic Beanstalk.
Configuración de grupos de EC2 seguridad mediante el AWS CLI
En este tema se proporcionan ejemplos de diferentes configuraciones EC2 de grupos de seguridad para entornos de instancia única y con carga equilibrada (varias instancias). Para obtener más información sobre las opciones de estos ejemplos, consulte aws:autoscaling:launchconfiguration.
Notas
La operación de creación de un entorno proporciona un grupo EC2 de seguridad de forma predeterminada. También crea un entorno con un Equilibrador de carga de aplicación de forma predeterminada.
La operación de actualización del entorno se puede utilizar para deshabilitar o habilitar el grupo de EC2 seguridad predeterminado para su entorno con la opción booleana. DisableDefaultEC2SecurityGroup El ejemplo 5 muestra cómo volver a configurar su entorno con la configuración de seguridad predeterminada si la había modificado anteriormente.
En los siguientes ejemplos, se muestra un comando create-environment que permite excluirse del grupo de EC2 seguridad predeterminado y, en su lugar, proporciona grupos de seguridad personalizados. Como la DisableDefaultEC2SecurityGroup opción está establecida entrue, no se crea el grupo de EC2 seguridad predeterminado que Elastic Beanstalk suele asociar EC2 a las instancias. Por lo tanto, debe proporcionar la opción de SecurityGroups a otros grupos de seguridad.
Tenga en cuenta que la opción EnvironmentType de aws:elasticbeanstalk:environment está establecida en SingleInstance. Para crear un entorno de instancia única, debe especificar esta opción, ya que LoadBalanced es el EnvironmentType predeterminado. Como este entorno no incluye un equilibrador de carga, no es necesario especificar un grupo de seguridad del equilibrador de carga.
ejemplo 1: Nuevo entorno de instancia única con grupos de EC2 seguridad personalizados (opciones de espacio de nombres integradas)
aws elasticbeanstalk create-environment \ --regionus-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
Como alternativa, utilice un archivo options.json para especificar las opciones del espacio de nombres en lugar de incluirlas en línea.
ejemplo 2 — Nuevo entorno de instancia única con grupos de EC2 seguridad personalizados (opciones de espacio de nombres en el archivo) options.json
aws elasticbeanstalk create-environment \ --regionus-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
ejemplo
### 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" } ]
El siguiente ejemplo crea un entorno con equilibrio de carga. Especifica la opción LoadBalancerType del espacio de nombres aws:elasticbeanstalk:environment establecida como application. Como vamos a deshabilitar el grupo de EC2 seguridad predeterminado con DisableDefaultEC2SecurityGroup esta opción, debemos volver a proporcionar nuestros propios grupos de seguridad personalizados para las EC2 instancias, con la aws:autoscaling:launchconfiguration SecurityGroups opción, como en el ejemplo anterior. Dado que este entorno tiene un equilibrador de carga para enrutar el tráfico, también debemos proporcionar grupos de seguridad para el equilibrador de carga.
Para crear un entorno con un Equilibrador de carga clásico, pero con la misma configuración, actualice la configuración de la opción LoadBalancerType del espacio de nombres aws:elasticbeanstalk:environment como classic.
Los distintos tipos de equilibrador de carga tienen diferentes espacios de nombres que contienen las opciones para especificar los grupos de seguridad:
-
Equilibrador de carga de aplicaciones: aws:elbv2:loadbalancer, opción
SecurityGroups -
Equilibrador de carga clásico: aws:elb:loadbalancer, opción
SecurityGroups -
balanceador de carga de red: dado que los balanceadores de carga de red no tienen grupos de seguridad, configure los grupos de EC2 seguridad con identificadores de VPC. Para obtener más información, consulte Actualización de los grupos de seguridad del Equilibrador de carga de red en la Guía del usuario de Equilibradores de carga de red.
ejemplo 3 — Nuevo entorno de varias instancias con grupos de EC2 seguridad personalizados (opciones de espacio de nombres en el archivo) options.json
aws elasticbeanstalk create-environment \ --regionus-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
ejemplo
### 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" } ]
Puede deshabilitar el grupo de EC2 seguridad predeterminado para un entorno existente con el comando update-environment. El siguiente comando de ejemplo deshabilita el grupo de EC2 seguridad predeterminado y asigna a las EC2 instancias del entorno grupos de seguridad personalizados. EC2
Utilice los archivos options.jason de ejemplo de los ejemplos 4(a), 4(b) o 4(c), en función de si el entorno tiene un equilibrio de carga y del tipo de equilibrador de carga. El archivo de configuración 4(a) especifica los grupos de seguridad para un entorno de instancia única. Como no requiere un balanceador de carga, solo proporcionamos el grupo de seguridad para las instancias. EC2 Los archivos de configuración 4(b) y 4(c) especifican los grupos de seguridad para un Equilibrador de carga de aplicación y un Equilibrador de carga clásico. En estos casos, también debemos especificar los grupos de seguridad para el equilibrador de carga.
ejemplo 4 — Actualiza un entorno existente para deshabilitar el grupo de EC2 seguridad predeterminado (opciones de espacio de nombres en el archivo) options.json
aws elasticbeanstalk update-environment \ --regionus-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
ejemplo 4(a): archivo de configuración para un entorno de instancia única (sin equilibrador de carga)
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]
Para actualizar un entorno que utiliza un Equilibrador de carga de aplicación, use el espacio de nombres aws:elbv2:loadbalancer para especificar los grupos de seguridad del equilibrador de carga.
ejemplo 4(b): archivo de configuración para un entorno con un Equilibrador de carga de aplicación
### 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" } ]
Para actualizar un entorno que utiliza un Equilibrador de carga clásico, use el espacio de nombres aws:elb:loadbalancer para especificar los grupos de seguridad del equilibrador de carga.
ejemplo 4(c): archivo de configuración para un entorno con un Equilibrador de carga clásico
### 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" } ]
Para devolver el entorno al comportamiento y la configuración predeterminados con el grupo de seguridad predeterminado que asigna Elastic Beanstalk, utilice el comando update-environment para establecer el DisableDefaultEC2SecurityGroup como false. Para un entorno de instancias múltiples, Elastic Beanstalk también gestiona los grupos de seguridad y las reglas de tráfico de red del equilibrador de carga del entorno.
El siguiente ejemplo se aplica a un entorno de instancia única o de instancias múltiples (con equilibrio de carga):
ejemplo 5: actualización de un entorno para que vuelva a utilizar el grupo de seguridad predeterminado (opciones de espacio de nombres en el archivo options.json)
aws elasticbeanstalk update-environment \ --regionus-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
ejemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "false" } ]
Configuración EC2 con tipos de instancias mediante el AWS CLI
En este tema se proporcionan ejemplos para configurar los tipos de instancia de las EC2 instancias de su entorno.
En los dos primeros ejemplos se crea un nuevo entorno. El comando especifica un tipo de EC2 instancias de Amazon, t4g.small, que se basa en la arquitectura del procesador arm64. Elastic Beanstalk establece de forma predeterminada el ID de imagen (AMI EC2 ) de las instancias en función de la región, la versión de la plataforma y el tipo de instancia. El tipo de instancia corresponde a una arquitectura del procesador. El parámetro solution-stack-name se aplica a la versión de la plataforma.
ejemplo 1 — crear un nuevo entorno basado en arm64 (opciones de espacio de nombres en línea)
aws elasticbeanstalk create-environment \ --regionus-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
Como alternativa, utilice un archivo options.json para especificar las opciones del espacio de nombres en lugar de incluirlas en línea.
ejemplo 2 — crear un nuevo entorno basado en arm64 (opciones de espacio de nombres en el archivo options.json)
aws elasticbeanstalk create-environment \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-env\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"\ --option-settingsfile://options.json
ejemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small" } ]
En los siguientes dos ejemplos se actualiza la configuración de un entorno existente con el comando update-environment. En este ejemplo se agrega otro tipo de instancia que también se basa en la arquitectura del procesador arm64. En el caso de los entornos existentes, todos los tipos de instancia que se agreguen deben contar con la misma arquitectura del procesador. Si quiere reemplazar los tipos de instancia existentes por otros de una arquitectura diferente, puede hacerlo. Sin embargo, asegúrese de que todos los tipos de instancia del comando tengan el mismo tipo de arquitectura.
ejemplo 3 — actualizar un entorno basado en arm64 existente (opciones de espacio de nombres en línea)
aws elasticbeanstalk update-environment \ --regionus-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
Como alternativa, utilice un archivo options.json para especificar las opciones del espacio de nombres en lugar de incluirlas en línea.
ejemplo 4 — actualizar un entorno basado en arm64 existente (opciones de espacio de nombres en el archivo options.json)
aws elasticbeanstalk update-environment \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-env\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"\ --option-settingsfile://options.json
ejemplo
### 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" } ]
En los siguientes dos ejemplos se muestran más comandos create-environment. En estos ejemplos no se proporcionan valores para InstanceTypes. Cuando no se especifican los valores InstanceTypes, Elastic Beanstalk utiliza la arquitectura del procesador basada en x86 de forma predeterminada. El ID de imagen (AMI) de las EC2 instancias del entorno se establecerá de forma predeterminada según la región, la versión de la plataforma y el tipo de instancia predeterminado. El tipo de instancia corresponde a una arquitectura del procesador.
ejemplo 5 — crear un nuevo entorno basado en x86 (opciones de espacio de nombres en línea)
aws elasticbeanstalk create-environment \ --regionus-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
Como alternativa, utilice un archivo options.json para especificar las opciones del espacio de nombres en lugar de incluirlas en línea.
ejemplo 6 — crear un nuevo entorno basado en x86 (opciones de espacio de nombres en el archivo options.json)
aws elasticbeanstalk create-environment \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-env\ --solution-stack-name"64bit Amazon Linux 2 v3.4.7 running Docker"\ --option-settingsfile://options.json
ejemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" } ]