

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 segurança e tipos de instância do Amazon EC2 usando o AWS CLI
<a name="using-features.managing.ec2.aws-cli"></a>

Você pode usar a interface de linha de AWS comando (AWS CLI) para configurar as instâncias do Amazon EC2 em seus ambientes do Elastic Beanstalk.

## Configurando grupos de segurança do EC2 usando o AWS CLI
<a name="using-features.managing.ec2.aws-cli.security-groups"></a>

Este tópico fornece exemplos de diferentes configurações de grupos de segurança do EC2 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](command-options-general.md#command-options-general-autoscalinglaunchconfiguration).

**Observações**  
A operação de criação de ambiente fornece um grupo de segurança EC2 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 desabilitar ou habilita o grupo de segurança do EC2 padrão para seu ambiente com a opção booleana `DisableDefaultEC2SecurityGroup`. 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](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) optando por não participar do grupo de segurança padrão do EC2 e fornecendo, em vez disso, grupos de segurança personalizados. Como a opção `DisableDefaultEC2SecurityGroup` está definida como `true`, o grupo de segurança padrão do EC2 que o Elastic Beanstalk normalmente associa às instâncias do EC2 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](command-options-general.md#command-options-general-elasticbeanstalkenvironment) `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. 

**Example 1— Novo ambiente de instância única com grupos de segurança do EC2 personalizados (opções de namespace embutidas)**  

```
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
```





Outra opção é usar um arquivo `options.json` para especificar as opções de namespace em vez de incluí-las inline.

**Example 2— Novo ambiente de instância única com grupos de segurança do EC2 personalizados (opções de namespace no arquivo `options.json`)**  

```
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**  

```
### 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](command-options-general.md#command-options-general-elasticbeanstalkenvironment) definida como `application`. Como estamos desabilitando o grupo de segurança padrão do EC2 com a opção `DisableDefaultEC2SecurityGroup`, precisamos fornecer nossos próprios grupos de segurança personalizados para as instâncias do EC2 novamente, com a opção [aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) `SecurityGroups`, 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](command-options-general.md#command-options-general-elasticbeanstalkenvironment) 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](command-options-general.md#command-options-general-elbv2) `SecurityGroups`
+ classic load balancer: opção [aws:elb:loadbalancer](command-options-general.md#command-options-general-elbloadbalancer) `SecurityGroups`
+ network load balancer: como os balanceadores de carga de rede não possuem grupos de segurança, configure os grupos de segurança do EC2 com identificadores de VPC. Para ter mais informações, consulte [Atualizar os grupos de segurança para o Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-security-groups.html) no *Guia do usuário dos Network Load Balancers*.

**Example 3: novo ambiente multi-instância com grupos de segurança do EC2 personalizados (opções de namespace no arquivo `options.json`)**  

```
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**  

```
### 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 desabilitar o grupo de segurança padrão do EC2 para um ambiente existente com o comando [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html). O comando de exemplo a seguir desabilita o grupo de segurança padrão do EC2 e atribui grupos de segurança EC2 personalizados às instâncias do EC2 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 instâncias do EC2. 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.

**Example 4: atualize um ambiente existente para desabilitar o grupo de segurança padrão do EC2 (opções de namespace no arquivo `options.json`)**  

```
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 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.

**Example 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.

**Example 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](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 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):

**Example 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 \
--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**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "false"
  }
]
```

## Configurando o EC2 com tipos de instância usando o AWS CLI
<a name="using-features.managing.ec2.aws-cli.instance-types"></a>

Este tópico fornece exemplos para configurar os tipos de instância do EC2 no seu ambiente.

Os dois primeiros exemplos criam um novo ambiente. O comando especifica um tipo de instâncias do Amazon EC2, t4g.small, baseado na arquitetura do processador arm64. O Elastic Beanstalk usa como padrão a ID de imagem (AMI) para as instâncias do EC2 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.

**Example 1 – criar um novo ambiente baseado em arm64 (opções de namespace inline)**  

```
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
```



Outra opção é usar um arquivo `options.json` para especificar as opções de namespace em vez de incluí-las inline.

**Example 2 – criar um novo ambiente baseado em arm64 (opções de namespace no arquivo `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**  

```
### 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](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html). 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.

**Example 3 – atualize um ambiente baseado em arm64 existente (opções de namespace inline)**  

```
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
```



Outra opção é usar um arquivo `options.json` para especificar as opções de namespace em vez de incluí-las inline.

**Example 4 – atualize um ambiente baseado em arm64 existente (opções de namespace no arquivo `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**  

```
### 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](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) 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 de imagem (AMI) para as instâncias do EC2 do ambiente será padrão 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. 

**Example 5 – criar um novo ambiente baseado em x86 (opções de namespace inline)**  

```
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
```



Outra opção é usar um arquivo `options.json` para especificar as opções de namespace em vez de incluí-las inline.

**Example 6 – criar um novo ambiente baseado em x86 (opções de namespace no arquivo `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**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  }
]
```