As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurando grupos de EC2 segurança e tipos de instância da Amazon usando o AWS CLI
Você pode usar a interface de linha de AWS comando (AWS CLI) para configurar as EC2 instâncias da Amazon em seus ambientes do Elastic Beanstalk.
Configurando grupos EC2 de segurança usando o AWS CLI
Este tópico fornece exemplos de diferentes configurações de grupos EC2 de segurança para ambientes de instância única e com carga balanceada (várias instâncias). Para obter mais informações sobre as opções nesses exemplos, consulte aws:autoscaling:launchconfiguration.
Observações
A operação de criação de ambiente fornece um grupo EC2 de segurança por padrão. Também cria um ambiente com um Application Load Balancer por padrão.
A operação de atualização do ambiente pode ser usada para desativar ou ativar o grupo de EC2 segurança padrão para seu ambiente com a opção DisableDefaultEC2SecurityGroup booleana. O Exemplo 5 mostra como redefinir seu ambiente para a configuração de segurança padrão, caso você a tenha modificado anteriormente.
Os exemplos a seguir mostram um comando create-environment optando por não participar do grupo de EC2 segurança padrão e fornecendo grupos de segurança personalizados. Como a DisableDefaultEC2SecurityGroup opção está definida comotrue, o grupo de EC2 segurança padrão que o Elastic Beanstalk normalmente EC2 associa às instâncias não é criado. Portanto, você deve fornecer a opção SecurityGroups a outros grupos de segurança.
Observe que a opção aws:elasticbeanstalk:environment EnvironmentType está definida como SingleInstance. Para criar um ambiente de instância única, você deve especificar essa opção, porque LoadBalanced é o EnvironmentType padrão. Como esse ambiente não inclui um balanceador de carga, não precisamos especificar um grupo de segurança de balanceador de carga.
exemplo 1 — Novo ambiente de instância única com grupos de EC2 segurança personalizados (opções de namespace embutidas)
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
Outra opção é usar um arquivo options.json para especificar as opções de namespace em vez de incluí-las inline.
exemplo 2 — Novo ambiente de instância única com grupos de EC2 segurança personalizados (opções de namespace no arquivo) 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
exemplo
### 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" } ]
O exemplo a seguir cria um ambiente com balanceamento de carga. Ele especifica a opção LoadBalancerType de namespace aws:elasticbeanstalk:environment definida como application. Como estamos desativando o grupo de EC2 segurança padrão com a DisableDefaultEC2SecurityGroup opção, precisamos fornecer nossos próprios grupos de segurança personalizados para as EC2 instâncias novamente, com a aws:autoscaling:launchconfiguration SecurityGroups opção, como no exemplo anterior. Como esse ambiente tem um balanceador de carga para rotear o tráfego, também devemos fornecer grupos de segurança para o balanceador de carga.
Para criar um ambiente com um balanceador de carga clássico, mas com a mesma configuração, atualize a configuração da opção LoadBalancerType de namespace aws:elasticbeanstalk:environment para classic.
Os diferentes tipos de balanceador de carga têm namespaces diferentes que contêm as opções para especificar os grupos de segurança:
-
application load balancer: opção aws:elbv2:loadbalancer
SecurityGroups -
classic load balancer: opção aws:elb:loadbalancer
SecurityGroups -
balanceador de carga de rede — como os balanceadores de carga de rede não têm grupos de segurança, configure os grupos de EC2 segurança com identificadores de VPC. Para ter mais informações, consulte Atualizar os grupos de segurança para o Network Load Balancer no Guia do usuário dos Network Load Balancers.
exemplo 3 — Novo ambiente de várias instâncias com grupos de EC2 segurança personalizados (opções de namespace no arquivo) 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
exemplo
### 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" } ]
Você pode desativar o grupo EC2 de segurança padrão para um ambiente existente com o comando update-environment. O comando de exemplo a seguir desativa o grupo EC2 de segurança padrão e atribui grupos de EC2 segurança personalizados às EC2 instâncias do ambiente.
Use os arquivos options.jason de exemplo nos exemplos 4(a), 4(b) ou 4(c), dependendo de se o ambiente tem balanceamento de carga e do tipo de balanceador de carga. O arquivo de configuração 4(a) especifica os grupos de segurança para um ambiente de instância única. Como ele não exige um balanceador de carga, fornecemos apenas o grupo de segurança para as EC2 instâncias. Os arquivos de configuração 4(b) e 4(c) especificam os grupos de segurança para um application load balancer e um classic load balancer. Nesses casos, também precisamos especificar grupos de segurança para o balanceador de carga.
exemplo 4 — Atualize um ambiente existente para desativar o grupo de EC2 segurança padrão (opções de namespace no options.json arquivo)
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
exemplo 4(a): arquivo de configuração para ambiente de instância única (sem balanceador 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 atualizar um ambiente que usa um application load balancer, use o namespace aws:elbv2:loadbalancer para especificar os grupos de segurança do balanceador de carga.
exemplo 4(b:) arquivo de configuração para ambiente com um application load balancer
### 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 atualizar um ambiente que usa um classic load balancer, use o namespace aws:elb:loadbalancer para especificar os grupos de segurança do balanceador de carga.
exemplo 4(c:) arquivo de configuração para ambiente com um classic load balancer
### 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 retornar seu ambiente ao comportamento e à configuração padrão com o grupo de segurança padrão que o Elastic Beanstalk atribui, use o comando update-environment para definir DisableDefaultEC2SecurityGroup como false. Para um ambiente de várias instâncias, o Elastic Beanstalk também gerencia os grupos de segurança e as regras de tráfego de rede do balanceador de carga do seu ambiente.
O exemplo a seguir se aplica a um ambiente de instância única ou de várias instâncias (balanceamento de carga):
exemplo 5: atualize um ambiente de volta para usar o grupo de segurança padrão (opções de namespace no arquivo 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
exemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "false" } ]
Configuração EC2 com tipos de instância usando o AWS CLI
Este tópico fornece exemplos para configurar os tipos de instância das EC2 instâncias em seu ambiente.
Os dois primeiros exemplos criam um novo ambiente. O comando especifica um tipo de EC2 instância da Amazon, t4g.small, baseado na arquitetura do processador arm64. O Elastic Beanstalk usa como padrão o Image ID (AMI EC2 ) para as instâncias com base na região, na versão da plataforma e no tipo de instância. O tipo de instância corresponde a uma arquitetura de processador. O parâmetro solution-stack-name se aplica à versão da plataforma.
exemplo 1 – criar um novo ambiente baseado em arm64 (opções de namespace inline)
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
Outra opção é usar um arquivo options.json para especificar as opções de namespace em vez de incluí-las inline.
exemplo 2 – criar um novo ambiente baseado em arm64 (opções de namespace no arquivo 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
exemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small" } ]
Os próximos dois exemplos atualizam a configuração de um ambiente existente com o comando update-environment. Neste exemplo, estamos adicionando outro tipo de instância que também se baseia na arquitetura do processador arm64. Para ambientes existentes, todos os tipos de instância adicionados devem ter a mesma arquitetura de processador. Se quiser substituir os tipos de instância existentes pelos de uma arquitetura diferente, você pode fazer isso. Mas certifique-se de que todos os tipos de instância no comando tenham o mesmo tipo de arquitetura.
exemplo 3 – atualize um ambiente baseado em arm64 existente (opções de namespace inline)
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
Outra opção é usar um arquivo options.json para especificar as opções de namespace em vez de incluí-las inline.
exemplo 4 – atualize um ambiente baseado em arm64 existente (opções de namespace no arquivo 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
exemplo
### 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" } ]
Os próximos dois exemplos mostram mais comandos de create-environment Esses exemplos não fornecem valores para InstanceTypes. Quando valores InstanceTypes não são especificados, o Elastic Beanstalk usa como padrão a arquitetura de processador baseada em x86. A ID da imagem (AMI) das EC2 instâncias do ambiente será padronizada de acordo com a região, a versão da plataforma e o tipo de instância padrão. O tipo de instância corresponde a uma arquitetura de processador.
exemplo 5 – criar um novo ambiente baseado em x86 (opções de namespace inline)
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
Outra opção é usar um arquivo options.json para especificar as opções de namespace em vez de incluí-las inline.
exemplo 6 – criar um novo ambiente baseado em x86 (opções de namespace no arquivo 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
exemplo
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" } ]