Como defino as propriedades de um volume raiz para uma instância do Amazon EC2 que criei usando um modelo do AWS CloudFormation?
Quero definir as propriedades do volume raiz para uma instância do Amazon Elastic Compute Cloud (Amazon EC2) que criei usando um modelo do AWS CloudFormation. Por exemplo, quero alterar o tamanho do volume raiz ou habilitar a criptografia do volume raiz.
Breve descrição
Para definir as propriedades do volume raiz para uma instância do EC2, você deve identificar o nome do dispositivo do volume raiz para sua imagem de máquina da Amazon (AMI). Em seguida, você pode usar a propriedade BlockDeviceMapping de um recurso AWS::EC2::Instance para definir as propriedades do volume raiz.
Observação: por padrão, os dispositivos de bloco especificados no mapeamento de dispositivos de bloco para a AMI são usados pela instância do EC2. Para substituir o mapeamento de dispositivos de bloco da AMI, use o mapeamento de dispositivos de bloco de instâncias. Para o volume raiz, você pode substituir somente o tamanho do volume, o tipo de volume e a configuração DeleteOnTermination. Depois que a instância estiver em execução, você poderá modificar somente a configuração DeleteOnTermination dos volumes anexados do Amazon Elastic Block Store (Amazon EBS).
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está utilizando a versão mais recente da AWS CLI.
Resolução
Identificar o nome do dispositivo do volume raiz da sua AMI
Para encontrar o nome do dispositivo, conclua as etapas a seguir no console do Amazon EC2 ou na CLI da AWS.
Como usar o console do Amazon EC2:
1. Abra o console do Amazon EC2.
2. Na barra de navegação, selecione a região da AWS em que você deseja iniciar suas instâncias.
3. No painel de navegação, selecione AMIs.
4. Use a opção Filtrar para encontrar sua AMI e, em seguida, selecione sua AMI.
5. Na guia Detalhes, localize o Nome do dispositivo raiz. É aqui que o nome do seu dispositivo raiz está listado.
Como usar o comando da AWS CLI:
Na AWS CLI, execute o seguinte comando:
aws ec2 describe-images \ --region us-east-1 \ --image-ids ami-1234567890AWSEXAMPLE
Observação: substitua us-east-1 pela sua região. Substitua ami-1234567890AWSEXAMPLE pela sua AMI.
A saída do comando anterior retorna o campo RootDeviceName, que mostra o nome do dispositivo do volume raiz.
Definir as propriedades do volume raiz para sua instância do EC2
Use a propriedade BlockDeviceMapping de um recurso AWS::EC2::Instance para definir as propriedades do volume raiz de sua instância do EC2.
Nos exemplos JSON e YAML a seguir, o AWS CloudFormation cria uma instância do EC2 com o tamanho do volume raiz definido como 30 GB.
Nos modelos JSON e YAML, a propriedade DeleteOnTermination do volume raiz é definida como verdadeira. O DeviceName está definido como /dev/xvda porque a AMI especificada é uma AMI do Amazon Linux 2. Finalmente, a propriedade Encrypted é definida como verdadeira, o que habilita a criptografia padrão no volume raiz.
Importante: em seu modelo, substitua /dev/xvda pelo valor da propriedade Root Device Name que você identificou anteriormente. Em seguida, modifique a propriedade Ebs no modelo com base em seus requisitos.
Modelo JSON:
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS CloudFormation Sample Template that shows how to increase the size of the root volume. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resource used if you create a stack from this template.", "Parameters": { "KeyName": { "Type": "AWS::EC2::KeyPair::KeyName", "Description": "Name of an existing EC2 KeyPair to enable SSH access to the EC2 instance." }, "InstanceType": { "Description": "EC2 instance type", "Type": "String", "Default": "t2.micro", "ConstraintDescription": "Please choose a valid instance type." }, "AMIID": { "Description": "The Latest Amazon Linux 2 AMI taken from the public AWS Systems Manager Parameter Store", "Type": "AWS::SSM::Parameter::Value<String>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" } }, "Resources": { "LinuxInstance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "AMIID" }, "InstanceType": { "Ref": "InstanceType" }, "KeyName": { "Ref": "KeyName" }, "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeType": "gp2", "VolumeSize": "30", "DeleteOnTermination":"false", "Encrypted": "true" } } ] } } } }
Modelo YAML:
AWSTemplateFormatVersion: 2010-09-09 Description: >- AWS CloudFormation Sample Template that shows how to increase the size of the root volume. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resource used if you create a stack from this template. Parameters: KeyName: Type: 'AWS::EC2::KeyPair::KeyName' Description: Name of an existing EC2 KeyPair to enable SSH access to the EC2 instance. InstanceType: Description: EC2 instance type Type: String Default: t2.micro ConstraintDescription: Please choose a valid instance type. AMIID: Description: >- The Latest Amazon Linux 2 AMI taken from the public Systems Manager Parameter Store Type: 'AWS::SSM::Parameter::Value<String>' Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 Resources: LinuxInstance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref AMIID InstanceType: !Ref InstanceType KeyName: !Ref KeyName BlockDeviceMappings: - DeviceName: /dev/xvda Ebs: VolumeType: gp2 VolumeSize: '30' DeleteOnTermination: 'false' Encrypted: 'true'
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos