Come faccio a impostare le proprietà del volume root di un'istanza Amazon EC2 che ho creato con un modello CloudFormation?

4 minuti di lettura
0

Ho utilizzato un modello AWS CloudFormation per creare un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Voglio impostare le proprietà del volume root per l'istanza.

Risoluzione

Nota: per impostazione predefinita, l'istanza EC2 utilizza i dispositivi a blocchi specificati nella mappatura dei dispositivi a blocchi per Amazon Machine Image (AMI). Per sostituire la mappatura dei dispositivi a blocchi AMI, usa la mappatura dei dispositivi a blocchi dell’istanza. Per il volume root, puoi sostituire solo la dimensione del volume, il tipo di volume e l'impostazione DeleteOnTermination. Quando l'istanza è in esecuzione, puoi modificare solo l'impostazione DeleteOnTermination dei volumi Amazon Elastic Block Store (Amazon EBS) collegati.

Individua il nome del dispositivo del volume root di AMI

Per trovare il nome del dispositivo, usa la console Amazon EC2 o l'interfaccia della linea di comando AWS (AWS CLI).

Nota: se visualizzi dei messaggi di errore quando esegui i comandi dell'interfaccia della linea di comando AWS, consulta la sezione Risolvere gli errori AWS CLI. Assicurati inoltre di utilizzare la versione più recente di AWS CLI.

Console Amazon EC2

Per individuare il nome del dispositivo, completa i passaggi seguenti:

  1. Apri la console Amazon EC2.
  2. Nella barra di navigazione seleziona la Regione AWS in cui desideri avviare le istanze.
  3. Nel pannello di navigazione scegli AMI.
  4. Usa Filtra per trovare l'AMI, quindi selezionala.
  5. Nella scheda Dettagli copia il valore di Nome dispositivo root.

AWS CLI

Per individuare il nome del dispositivo, esegui il comando describe-images:

aws ec2 describe-images \    --region us-east-1 \
    --image-ids ami-1234567890AWSEXAMPLE

Nota: sostituisci us-east-1 con la tua regione e ami-1234567890AWSEXAMPLE con la tua AMI.

L'output del comando restituisce il nome del dispositivo come valore di RootDeviceName.

Imposta le proprietà del volume root per l'istanza EC2

Usa la proprietà BlockDeviceMapping di una risorsa AWS::EC2::Instance per impostare le proprietà del volume root per la tua istanza EC2.

Negli esempi JSON e YAML che seguono, CloudFormation crea un'istanza EC2 con le configurazioni seguenti:

  • La dimensione del volume root è impostata su 30 GB.
  • La proprietà DeleteOnTermination del volume root è true.
  • DeviceName è /dev/xvda perché l'AMI specificata è un'AMI Amazon Linux 2.
  • La proprietà Encrypted è true. Questa configurazione consente la crittografia predefinita sul volume root.

Nota: nel modello sostituisci /dev/xvda con il valore di Nome dispositivo root. Se necessario, modifica la proprietà Ebs nel modello.

Modello JSON di esempio:

{  "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"
            }
          }
        ]
      }
    }
  }
}

Modello YAML di esempio:

AWSTemplateFormatVersion: 2010-09-09Description: >-
  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'
AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa