Wie lege ich die Eigenschaften eines Root-Volumes für eine Amazon EC2-Instance fest, die ich mithilfe einer AWS CloudFormation-Vorlage erstellt habe?

Lesedauer: 4 Minute
0

Ich möchte die Eigenschaften des Root-Volumes für eine Amazon Elastic Compute Cloud (Amazon EC2) -Instance festlegen, die ich mithilfe einer AWS CloudFormation-Vorlage erstellt habe. Ich möchte zum Beispiel die Größe des Root-Volumes ändern oder die Verschlüsselung des Root-Volumes aktivieren.

Kurzbeschreibung

Um die Eigenschaften des Root-Volumes für eine EC2-Instance festzulegen, müssen Sie den Gerätenamen des Root-Volumes für Ihr Amazon Machine Image (AMI) identifizieren. Anschließend können Sie die BlockDeviceMapping-Eigenschaft einer AWS::EC2::Instance-Ressource verwenden, um die Eigenschaften des Root-Volumes festzulegen.

Hinweis: Standardmäßig werden die in der Blockgerätezuordnung für das AMI angegebenen Blockgeräte von der EC2-Instance verwendet. Um die AMI-Blockgerätezuordnung zu überschreiben, verwenden Sie die Instance-Blockgerät-Zuweisung. Für das Root-Volume können Sie nur die Volume-Größe, den Datenträgertyp und die Einstellung deleteOnTermination überschreiben. Nachdem die Instance ausgeführt wurde, können Sie nur die DeleteOnTermination-Einstellung der angehängten Amazon Elastic Block Store (Amazon EBS) -Volumes ändern.

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.

Behebung

Identifizieren Sie den Gerätenamen des Root-Volumes Ihres AMI

Um den Gerätenamen zu finden, führen Sie die folgenden Schritte entweder in der Amazon EC2-Konsole oder in der AWS-CLI.

Verwendung der Amazon EC2-Konsole:

1.    Öffnen Sie die Amazon EC2-Konsole.

2.    Wählen Sie in der Navigationsleiste die AWS-Region aus, in der Sie Ihre Instances starten möchten.

3.    Wählen Sie im Navigationsbereich AMIs.

4.    Verwenden Sie die Option Filter, um Ihr AMI zu finden, und wählen Sie dann Ihr AMI.

5.    Suchen Sie auf der Registerkarte Details nach dem Namen des Root-Geräts. Hier wird der Name Ihres Root-Geräts aufgeführt.

Verwenden Sie den AWS-CLI-Befehl:

Führen Sie in der AWS-CLI den folgenden Befehl aus:

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

Hinweis: Ersetzen Sie us-east-1 durch Ihre Region. Ersetzen Sie ami-1234567890AWSEXAMPLE durch Ihr AMI.

Die Ausgabe des vorherigen Befehls gibt das Feld rootDeviceName zurück, das den Gerätenamen des Root-Volumes anzeigt.

Legen Sie die Eigenschaften des Root-Volumes für Ihre EC2-Instance fest

Verwenden Sie die BlockDeviceMapping-Eigenschaft einer AWS::EC2::Instance-Ressource, um die Eigenschaften des Root-Volumes für Ihre EC2-Instance festzulegen.

In den folgenden JSON- und YAML-Beispielen erstellt AWS CloudFormation eine EC2-Instance, deren Größe des Root-Volumes auf 30 GB festgelegt ist.

In den JSON- und YAML-Vorlagen ist die Eigenschaft deleteOnTermination des Root-Volumes auf True gesetzt. Der Gerätename ist auf /dev/xvda festgelegt, da es sich bei dem angegebenen AMI um ein Amazon Linux 2-AMI handelt. Schließlich wird die Eigenschaft Encrypted auf True gesetzt, wodurch die Standardverschlüsselung auf dem Root-Volume aktiviert wird.

Wichtig: Ersetzen Sie in Ihrer Vorlage /dev/xvda durch den Wert der Eigenschaft Root Device Name, den Sie zuvor identifiziert haben. Ändern Sie dann die Ebs-Eigenschaft in der Vorlage entsprechend Ihren Anforderungen.

JSON-Vorlage:

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

YAML-Vorlage:

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'

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren