So erstellen Sie mit Cloudformation eine EC2-Instanz

Bevor wir fortfahren, gehe ich davon aus, dass Sie den EC2-Service auf AWS kennen und mit seinen grundlegenden Komponenten vertraut sind. Ich empfehle Ihnen, meinen Artikel zum Erstellen einer EC2-Instanz mit der AWS-Konsole zu lesen und die Grundlagen der EC2-Instanz zu verstehen. Klicken Sie hier, um zu dem Artikel zu gelangen. In diesem Artikel werden wir eine EC2-Instanz mit dem neuesten Linux-AMI unter Verwendung von Cloudformation erstellen, daher ist es erforderlich, die Grundlagen von Cloudformation zu kennen. Auch wenn Sie Cloudformation nicht kennen und nur eine Instanz damit erstellen möchten, machen Sie sich keine Sorgen und fahren Sie mit dem Artikel fort.

In diesem Artikel werden wir nicht alle Optionen behandeln, die in Cloudformation für EC2 verfügbar sind. Wenn Sie wissen möchten, welche Optionen im Cloudformation for EC2-Service verfügbar sind, besuchen Sie die offizielle AWS-Dokumentation hier.

Vorraussetzungen

  1. AWS-Konto (Erstellen Sie es, wenn Sie noch keines haben).
  2. Grundlegendes Verständnis von Cloudformation Templates.
  3. Grundlegendes Verständnis von EC2-Instanzen.

Was werden wir tun?

  1. Anmeldung bei AWS.
  2. Erstellen Sie eine Vorlage.
  3. Erstellen Sie einen Cloudformation Stack
  4. Löschen Sie den Cloudformation Stack

Anmeldung bei AWS

Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen. Geben Sie Ihre Benutzeranmeldedaten ein, um sich in Ihr AWS-Konto einzuloggen.

Login-Seite

Sobald Sie sich erfolgreich in Ihr AWS-Konto eingeloggt haben, sehen Sie die Hauptverwaltungskonsole von AWS wie folgt.

AWS Management-Konsole

Erstellen Sie eine Vorlage

Erstellen Sie eine Vorlage, create-ec2-instance.template, auf Ihrem lokalen Rechner mit dem folgenden Inhalt.

Sie können die Vorlage auch aus meinem Github-Repository herunterladen, der Link zur Vorlage ist unten angegeben.

https://github.com/shivalkarrahul/DevOps/blob/master/aws/cloudformation/create-ec2-instance/create-ec2-instance.template

AWSTemplateFormatVersion: '2010-09-09'
Metadata:
  License: Apache-2.0
Description: 'Create an AWS EC2 instance running the AWS Linux AMI.'
Parameters:
  KeyName:
    Description: Name of an existing EC2 KeyPair
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: must be the name of an existing EC2 KeyPair.
  InstanceType:
    Description: AWS EC2 instance type
    Type: String
    Default: t3.small
    AllowedValues: [t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge,
      t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge,
      m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge,
      m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge,
      c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge,
      g3.8xlarge,
      r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r3.12xlarge,
      i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge,
      d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge]
    ConstraintDescription: must be a valid EC2 instance type.
  SSHLocation:
    Description: The IP address range allowed to SSH to the EC2 instances
    Type: String
    MinLength: 9
    MaxLength: 18
    Default: 0.0.0.0/0
    AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2})
    ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.
  LatestAmiId:
    Type:  'AWS::SSM::Parameter::Value'
    Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref 'InstanceType'
      SecurityGroups: [!Ref 'InstanceSecurityGroup']
      KeyName: !Ref 'KeyName'
      ImageId: !Ref 'LatestAmiId'
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access on port 22
      SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: !Ref 'SSHLocation'
Outputs:
  InstanceId:
    Description: Id of the newly created AWS EC2 instance
    Value: !Ref 'EC2Instance'
  AZ:
    Description: AZ of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, AvailabilityZone]
  PublicDNS:
    Description: Public DNS Name of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, PublicDnsName]
  PublicIP:
    Description: Public IP address of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, PublicIp]

Erstellen eines Cloudformation-Stacks

Um zum Dashboard von Cloudformation zu gelangen, klicken Sie oben links im Bildschirm auf Dienste und suchen Sie nach Cloudformation.

Suche nach Cloudformation

Hier ist das Haupt-Dashboard von Cloudformation. Ich habe bereits einen Stack in meinem Konto in der ausgewählten Region erstellt.

Cloudformation Dashboard

Um einen neuen Stack zu erstellen, klicken Sie auf Stack erstellen –> Mit neuen Ressourcen (Standard).

Erstellen eines Stapels mit neuen Ressourcen

Wählen Sie hier „Upload a template file“ und wählen Sie die Vorlage, die Sie im vorherigen Schritt auf Ihrem lokalen Rechner erstellt haben. Um fortzufahren, klicken Sie auf die Schaltfläche „Weiter“.

Hochladen der Vorlage

Geben Sie einen Namen für den Stack an, wählen Sie den Instanztyp und den vorhandenen Schlüssel von Ihrem Konto. Sie können eine bestimmte IP angeben, die für SH auf dem Server zugelassen werden soll, ansonsten behalten Sie 0.0.0.0/0, um eingehenden Datenverkehr auf Port 22 zuzulassen. Klicken Sie auf die Schaltfläche „Weiter“, um fortzufahren.

Stack-Details angeben

Tags sind optional, Sie können in diesem Schritt Tags hinzufügen oder nicht. Klicken Sie auf die Schaltfläche „Weiter“.Tags hinzufügen, falls erforderlich

Blättern Sie am Ende der Seite und klicken Sie auf die Schaltfläche „Stack erstellen“.

Stapel erstellen

Die Erstellung wird einige Minuten dauern. Sobald die Erstellung abgeschlossen ist, können Sie den Status als „CREATE_COMPLETE“ sehen.

Stapelerstellung abgeschlossen

Um zu überprüfen, ob die Instanz erstellt wurde, gehen Sie zum EC2-Dashboard. Um zum EC2-Dashboard zu gelangen, klicken Sie oben links im Bildschirm auf Dienste und suchen Sie nach EC2.

EC2 suchen

Im EC2-Dashboard klicken Sie im linken Bereich auf „Instances“.

EC2-Dashboard

Hier können Sie sehen, dass eine neue Instanz erstellt wurde. Sie können ihre Details überprüfen und bestätigen.

Instanz verifizieren

Löschen des Cloudformation-Stacks

Wenn Sie die Instanz nicht mehr benötigen, können Sie sie löschen, indem Sie den Cloudformation-Stack löschen. Durch das Löschen des Cloudformation-Stacks werden die von ihm erstellten Ressourcen gelöscht. Um den Stack zu löschen, klicken Sie auf die Schaltfläche „Löschen“.

Löschen Sie den Stapel

Bestätigen Sie die Löschaktion in dem Pop-up, das Sie erhalten.

Bestätigung der Löschung

Sobald der Löschvorgang erfolgreich war, sehen Sie den Status „DELETE_COMPLETE“.

Löschung komplett

Um zu überprüfen, ob die Löschung erfolgreich war, gehen Sie zum EC2-Dashboard und sehen Sie den Status der Instanz. Im folgenden Screenshot sehen Sie, dass der Zustand der Instanz „terminated“ ist, Sie sehen den gleichen Status.

Status der Instanz überprüfen

Fazit

In diesem Artikel haben wir gesehen, wie einfach es ist, eine EC2-Instanz mit dem Cloudformation-Stack zu erstellen. Wir können die gleiche Vorlage verwenden, um mehrere Stacks zu erstellen. Wir haben auch gesehen, dass die Ressourcen, die mit dem Cloudformation-Stack erstellt wurden, auch gelöscht werden können, indem der Stack selbst gelöscht wird.

Das könnte dich auch interessieren …