Cloudformation · 6 min read · Feb 04, 2026

Verwenden Sie Cloudformation, um eine RDS MySql-Instanz auf AWS zu erstellen

Der AWS Relational Database Service (RDS AWS) ist ein Webdienst, der es einfacher macht, eine relationale Datenbank in der Cloud einzurichten und zu betreiben. Um mehr über RDS zu erfahren, suchen Sie nach dem Artikel “Wie man eine RDS MySql (Relation Database MySql) Instanz auf AWS einrichtet”.

AWS CloudFormation ermöglicht es uns, Programmiersprachen (yaml/json) oder eine einfache Textdatei zu verwenden, um alle Ressourcen zu modellieren und bereitzustellen, die für unsere Anwendungen benötigt werden. Dies gibt uns eine einzige Quelle der Wahrheit für unsere AWS-Ressourcen.

In diesem Artikel werden wir die Schritte sehen, um eine RDS MySql-Instanz mit Cloudformation Stack zu erstellen.

Voraussetzungen

  1. AWS-Konto (erstellen, wenn Sie noch keines haben).
  2. Grundlegendes Verständnis von Cloudformation Stack.
  3. Grundlegendes Verständnis von RDS MySql (Relation Database MySql) Instanz auf AWS.

Was werden wir tun?

  1. Anmeldung bei AWS.
  2. Erstellen Sie eine RDS MySql-Instanz mit Cloudformation Stack

Anmeldung bei AWS

  1. Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen.

Wenn wir den obigen Link aufrufen, sehen wir eine Webseite, auf der wir uns mit unseren Anmeldedaten anmelden müssen.

In AWS einloggen

Sobald wir uns erfolgreich bei AWS angemeldet haben, sehen wir die Hauptkonsole mit allen aufgelisteten Diensten.

AWS Management Console

Erstellen einer RDS MySql-Instanz mit Cloudformation.

Bevor wir eine Instanz mit Cloudformation Stack erstellen, kopieren Sie den Code aus dem folgenden Block oder laden Sie die Vorlage von hier herunter und speichern Sie sie auf Ihrem lokalen Computer.

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Diese Stack erstellt eine RDS MySql 5.7 Instanz
Parameters:
  Owner:
    Description: Geben Sie den Namen des Eigentümers für diesen Stack ein.
    Type: String
    Default: Name
  VPC:
    Description: Wählen Sie VPC aus den verfügbaren VPCs in Ihrem Konto aus.
    Type: AWS::EC2::VPC::Id
  PrivateSubnet1:
    Description: Wählen Sie Private Subnet 1 aus.
    Type: AWS::EC2::Subnet::Id
  PrivateSubnet2:
    Description: Wählen Sie Private Subnet 2 aus.
    Type: AWS::EC2::Subnet::Id
  PrivateSubnet3:
    Description: Wählen Sie Private Subnet 3 aus.
    Type: AWS::EC2::Subnet::Id
  MasterUsername:
    Description: Datenbankadministrationsname.
    Type: String
    Default: rdsroot
  MasterUserPassword:
    NoEcho: 'true'
    Description: Datenbankadministrationspasswort.
    Type: String
    MinLength: '8'
    AllowedPattern: "[a-zA-Z0-9!?]*"
    ConstraintDescription: Muss nur Groß- und Kleinbuchstaben sowie Zahlen enthalten
  BackupRetentionPeriod:
    Description: Geben Sie den Backup-Aufbewahrungszeitraum in Tagen ein.
    Type: Number
    Default: '5'
  MultiAvailabilityZone:
    Description: Möchten Sie mehrere Verfügbarkeitszonen aktivieren?
    Type: String
    Default: 'true'
    AllowedValues:
    - 'true'
    - 'false'
  TcpPort:
    Description: Geben Sie die RDS hörende TCP-Portnummer ein.
    Type: Number
    Default: '3306'
  PreferredBackupWindow:
    Description: Geben Sie die bevorzugte Backup-Zeit ein.
    Type: String
    Default: 15:00-17:00
  PreferredMaintenanceWindow:
    Description: Geben Sie das bevorzugte Wartungsfenster ein.
    Type: String
    Default: Sun:18:00-Sun:22:00
  AllocatedStorage:
    Default: '15'
    Description: Geben Sie die Größe der Datenbank (Gb) ein
    Type: Number
    MinValue: '5'
    MaxValue: '6144'
    ConstraintDescription: Muss zwischen 5-6144 liegen
  SnapshotOnDelete:
    Description: Möchten Sie einen Snapshot beim Löschen der Instanz erstellen?
    Type: String
    Default: 'true'
    AllowedValues:
    - 'true'
    - 'false'
  AutoMinorVersionUpgrade:
    Description: Möchten Sie automatische kleinere Versionsupdates zulassen?
    Type: String
    Default: 'true'
    AllowedValues:
    - 'true'
    - 'false'
  InstanceType:
    Description: Wählen Sie den Instanztyp aus.
    Type: String
    Default: db.t2.micro
    ConstraintDescription: Muss ein gültiger EC2-Instanztyp sein.
Mappings:
  Settings:
    MySQL:
      Engine: MySQL
      Version: '5.7'
Conditions:
  ConfigureSnapshotOnDelete:
    Fn::Equals:
    - Ref: SnapshotOnDelete
    - 'true'

Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
    - Label:
        default: Eigentum
      Parameters:
      - Owner
    - Label:
        default: Netzwerkkonfiguration
      Parameters:
      - VPC
      - PrivateSubnet1
      - PrivateSubnet2
      - PrivateSubnet3
    - Label:
        default: RDS-Konfiguration
      Parameters:
      - InstanceType
      - MasterUsername
      - MasterUserPassword
      - BackupRetentionPeriod
      - PreferredBackupWindow
      - PreferredMaintenanceWindow
      - SnapshotOnDelete
      - AllocatedStorage
      - AutoMinorVersionUpgrade
      - TcpPort
      - MultiAvailabilityZone
    ParameterLabels:
      Owner:
        default: Team oder individueller Eigentümer
      InstanceType:
        default: Instanztyp
      PrivateSubnet1:
        default: Private Subnet 1
      PrivateSubnet2:
        default: Private Subnet 2
      PrivateSubnet3:
        default: Private Subnet 3
      MasterUsername:
        default: Master-Benutzername
      MasterUserPassword:
        default: Master-Benutzerpasswort
      BackupRetentionPeriod:
        default: Backup-Aufbewahrungszeitraum
      PreferredBackupWindow:
        default: Bevorzugtes Backup-Fenster
      PreferredMaintenanceWindow:
        default: Bevorzugtes Wartungsfenster
      AllocatedStorage:
        default: Zuweisungsspeicher
      AutoMinorVersionUpgrade:
        default: Automatische kleinere Versionsaktualisierung
      TcpPort:
        default: TCP-Port
      MultiAvailabilityZone:
        default: Mehrere Verfügbarkeitszonen?
      SnapshotOnDelete:
        default: Snapshot beim Löschen?

Resources:
  RDSAccessSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Instanz zu RDS-Zugriff
      VpcId:
        Ref: VPC
      Tags:
      - Key: Name
        Value:
          Fn::Join:
          - ''
          - - Ref: AWS::StackName
            - "-rds"
      - Key: Owner
        Value:
          Ref: Owner
  AccessSecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    DependsOn: RDSAccessSecurityGroup
    Properties:
      GroupId:
        Ref: RDSAccessSecurityGroup
      IpProtocol: tcp
      FromPort:
        Ref: TcpPort
      ToPort:
        Ref: TcpPort
      SourceSecurityGroupId:
        Ref: RDSAccessSecurityGroup
  DbSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription:
        Fn::Join:
        - ''
        - - 'RDS Subnet-Gruppe für '
          - Ref: AWS::StackName
      SubnetIds:
      - Ref: PrivateSubnet1
      - Ref: PrivateSubnet2
      - Ref: PrivateSubnet3
      Tags:
      - Key: Name
        Value:
          Ref: AWS::StackName
      - Key: Owner
        Value:
          Ref: Owner
  DbInstance:
    Type: AWS::RDS::DBInstance
    DeletionPolicy: Snapshot
    DependsOn:
    - DbSubnetGroup
    - RDSAccessSecurityGroup
    Properties:
      AllocatedStorage:
        Ref: AllocatedStorage
      AllowMajorVersionUpgrade: 'false'
      AutoMinorVersionUpgrade:
        Ref: AutoMinorVersionUpgrade
      BackupRetentionPeriod:
        Ref: BackupRetentionPeriod
      DBInstanceClass:
        Ref: InstanceType
      DBInstanceIdentifier:
        Ref: AWS::StackName
      DBSubnetGroupName:
        Ref: DbSubnetGroup
      Engine:
        Fn::FindInMap:
        - Settings
        - MySQL
        - Engine
      EngineVersion:
        Fn::FindInMap:
        - Settings
        - MySQL
        - Version
      MasterUsername:
        Ref: MasterUsername
      MasterUserPassword:
        Ref: MasterUserPassword
      MultiAZ:
        Ref: MultiAvailabilityZone
      Port:
        Ref: TcpPort
      PreferredBackupWindow:
        Ref: PreferredBackupWindow
      PreferredMaintenanceWindow:
        Ref: PreferredMaintenanceWindow
      PubliclyAccessible: 'false'
      StorageEncrypted: 'false'
      StorageType: gp2
      VPCSecurityGroups:
      - Ref: RDSAccessSecurityGroup
      Tags:
      - Key: Name
        Value:
          Ref: AWS::StackName
      - Key: Owner
        Value:
          Ref: Owner

Outputs:
  Owner:
    Description: Team oder Einzelperson, die diese Formation besitzt.
    Value:
      Ref: Owner
  VPC:
    Description: Verwendete VPC
    Value:
      Ref: VPC
  RDSHostname:
    Description: RDS-Hostname
    Value:
      Fn::GetAtt:
      - DbInstance
      - Endpoint.Address
  RDSPort:
    Description: RDS-Port
    Value:
      Fn::GetAtt:
      - DbInstance
      - Endpoint.Port
  DbSubnetGroup:
    Description: DB-Subnetzgruppe erstellt.
    Value:
      Ref: DbSubnetGroup
  RDSAccessSecurityGroup:
    Description: RDS-Zugriffs-Sicherheitsgruppe erstellt.
    Value:
      Ref: RDSAccessSecurityGroup
  PrivateSubnet1:
    Description: Private Subnet 1 Bereitstellung
    Value:
      Ref: PrivateSubnet1
  PrivateSubnet2:
    Description: Private Subnet 2 Bereitstellung
    Value:
      Ref: PrivateSubnet2
  PrivateSubnet3:
    Description: Private Subnet 3 Bereitstellung
    Value:
      Ref: PrivateSubnet3
  BackupRetentionPeriod:
    Description: Backup-Aufbewahrungszeitraum in Tagen
    Value:
      Ref: BackupRetentionPeriod
  MultiAvailabilityZone:
    Description: Mehrere Verfügbarkeitszonen aktivieren?
    Value:
      Ref: MultiAvailabilityZone
  SnapshotOnDelete:
    Description: Snapshot beim Löschen erstellen?
    Value:
      Ref: SnapshotOnDelete
  PreferredBackupWindow:
    Description: Bevorzugtes Backup-Fenster
    Value:
      Ref: PreferredBackupWindow
  PreferredMaintenanceWindow:
    Description: Bevorzugtes Wartungsfenster
    Value:
      Ref: PreferredMaintenanceWindow
  AllocatedStorage:
    Description: Zuweisungsspeicher in GB
    Value:
      Ref: AllocatedStorage

Sobald Sie die Vorlage auf Ihrem lokalen Computer haben, gehen Sie zur AWS-Konsole und klicken Sie im oberen Menü auf “Dienste” und suchen Sie nach “Cloudformation”.

Cloudformation

Sie sehen das Hauptdashboard von Cloudformation wie folgt. Klicken Sie auf die Schaltfläche “Stack erstellen”, um einen Stack zu erstellen, um eine RDS MySql-Instanz zu erstellen.

Stacks

Klicken Sie auf die Radiotaste “Eine Vorlagendatei hochladen” und wählen Sie die Vorlage aus, die Sie von Ihrem lokalen Computer gespeichert haben, und klicken Sie auf die Schaltfläche “Weiter”.

Cloudformation-Stack erstellen

Geben Sie einen Namen Ihrer Wahl für den Stack an und füllen Sie die erforderlichen Details aus und klicken Sie auf “Weiter”, um fortzufahren.

Stackdetails angeben

Master-Benutzerpasswort

Sie können Tags für den Cloudformation-Stack angeben, die auf die RDS MySql-Instanz angewendet werden können, die durch den Stack erstellt wird. Klicken Sie auf “Weiter”, um fortzufahren.

Tags

Scrollen Sie nach unten und klicken Sie auf “Stack erstellen”, um den Stack zu erstellen.

Stack erstellen

Die Erstellung wird einige Zeit in Anspruch nehmen. Sie können die durchgeführten Aktionen unter Ereignisse sehen.

RDS MySQL

Um den Status der erstellten RDS MySql-Instanz zu sehen, klicken Sie auf “Dienste” und suchen Sie nach “RDS”.

RDS

Klicken Sie im Hauptdashboard auf “DB-Instanzen”.

Datenbank erstellen

Hier können Sie sehen, dass der Status der Instanz “Modifizieren” ist. Dies wird einige Zeit in Anspruch nehmen, um erstellt zu werden und bereit für die Nutzung zu sein.

RDS-Datenbankliste

In den Cloudformation-Stack-Ereignissen können Sie sehen, dass nach einiger Zeit, sobald die RDS MySql-Instanz erstellt wird, der Status “CREATE_COMPLETE” ist.

RDS-Aktionsprotokoll

In der RDS-Konsole können Sie jetzt sehen, dass der Status “Verfügbar” ist.

MySQL-Datenbank auf AWS

Um weitere Details zur RDS MySql-Instanz zu sehen, klicken Sie auf die RDS MySql-Instanz –> Konnektivität & Sicherheit.

Um sich mit der RDS MySql-Instanz zu verbinden, können Sie den von der Instanz bereitgestellten Endpunkt verwenden.

Datenbankdetails

Sobald die Instanz nicht mehr benötigt wird, löschen Sie den Cloudformation-Stack vom Hauptdashboard von Cloudformation, um Kosten zu sparen.

Fazit


In diesem Artikel haben wir die Schritte gesehen, um eine RDS MySql-Instanz mit Cloudformation Stack zu erstellen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.