„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Erstellen einer AWS MySQL RDS-Instanz mit Terraform

Erstellen einer AWS MySQL RDS-Instanz mit Terraform

Veröffentlicht am 02.09.2024
Durchsuche:445

Creating an AWS MySQL RDS Instance with Terraform

Erstellen einer AWS MySQL RDS-Instanz mit Terraform

Amazon RDS (Relational Database Service) vereinfacht die Einrichtung, den Betrieb und die Skalierung relationaler Datenbanken in der Cloud. Durch die Verwendung von Terraform können Sie Ihre MySQL-RDS-Instanzen als Code verwalten und so Konsistenz und einfache Bereitstellung gewährleisten. In diesem Artikel gehen wir durch den Prozess der Erstellung einer MySQL RDS-Instanz auf AWS mithilfe von Terraform.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • AWS-Konto: Ein aktives AWS-Konto mit den erforderlichen Berechtigungen zum Erstellen von RDS-Instanzen.
  • Terraform installiert: Terraform sollte auf Ihrem lokalen Computer installiert sein.
  • AWS-Zugriffsschlüssel und geheimer Schlüssel: Sie benötigen diese Anmeldeinformationen, um Terraform bei AWS zu authentifizieren.

Schritte zum Erstellen einer MySQL RDS-Instanz

1. Definieren Sie den AWS-Anbieter

Beginnen Sie mit der Definition des AWS-Anbieters in Ihrer Terraform-Konfigurationsdatei. Dadurch wird Terraform angewiesen, unter Verwendung Ihrer Anmeldeinformationen mit AWS-Diensten in der angegebenen Region zu interagieren.

provider "aws" {
  region     = "ap-southeast-2"
  access_key = "your-access-key"  # Replace with your AWS access key
  secret_key = "your-secret-key"  # Replace with your AWS secret key
}

2. Erstellen Sie eine Sicherheitsgruppe

Als nächstes definieren Sie eine Sicherheitsgruppe, die den Zugriff auf Ihre MySQL RDS-Instanz steuert. Diese Sicherheitsgruppe lässt eingehenden Datenverkehr auf Port 3306 zu, dem Standardport für MySQL.

resource "aws_security_group" "mysql_rds_sg" {
  name        = "rds-sg"
  description = "Security group for MySQL RDS instance"

  ingress {
    from_port   = 3306
    to_port     = 3306
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]  # Open to all; consider restricting this to specific IPs for better security
  }
}

3. Erstellen Sie die MySQL RDS-Instanz

Definieren Sie nun die MySQL RDS-Instanz selbst. Diese Konfiguration gibt den Instanztyp, den Speicher, die Engine-Version und andere Details an.

resource "aws_db_instance" "awsdevrds" {
   allocated_storage      = 20
   max_allocated_storage  = 150
   storage_type           = "gp2"  # General Purpose SSD storage
   identifier             = "myrdsdev"
   engine                 = "mysql"
   engine_version         = "8.0.33"
   instance_class         = "db.t2.micro"  # Choose an instance class based on your workload
   username               = "admin"  # Replace with your desired username
   password               = "Passw!123"  # Replace with a strong password
   db_name                = "test_mysql_db"  # Name of the database
   backup_retention_period = 7  # Number of days to retain backups
   publicly_accessible    = true  # Make the instance publicly accessible (consider the security implications)
   skip_final_snapshot    = true  # Skip final snapshot when destroying the instance
   vpc_security_group_ids = [aws_security_group.mysql_rds_sg.id]  # Associate with the security group

   tags = {
     Name = "devrds"  # Tag your instance for easy identification
   }
}

4. Initialisieren Sie die Terraform-Konfiguration und wenden Sie sie an

Wenn die Terraform-Konfiguration bereit ist, befolgen Sie diese Schritte, um die MySQL RDS-Instanz bereitzustellen:

  • Terraform initialisieren:
  terraform init
  • Erstellen Sie einen Ausführungsplan:
  terraform plan 
  • Plan anwenden:
  terraform apply

Dieser Prozess erstellt eine MySQL-RDS-Instanz auf AWS, wie in Ihrer Konfiguration definiert. Die Instanz wird mit der benutzerdefinierten Sicherheitsgruppe gesichert, die den Zugriff auf die Datenbank steuert.

5. Zugriff auf die MySQL RDS-Instanz

Sobald die Instanz betriebsbereit ist, können Sie über den in der AWS-Managementkonsole bereitgestellten Endpunkt oder über die Terraform-Ausgabe (falls konfiguriert) darauf zugreifen. Stellen Sie sicher, dass Ihre Sicherheitsgruppe ordnungsgemäß konfiguriert ist, um den Zugriff nur von vertrauenswürdigen Quellen zuzulassen.

6. Ressourcen bereinigen

Wenn Sie die MySQL-RDS-Instanz nicht mehr benötigen, können Sie die von Terraform erstellten Ressourcen zerstören, um Kosten zu vermeiden:

terraform destroy

Dieser Befehl löscht die RDS-Instanz und die zugehörige Sicherheitsgruppe aus Ihrem AWS-Konto.

Abschluss

Das Erstellen einer AWS MySQL RDS-Instanz mit Terraform ist ein optimierter Prozess, der es Ihnen ermöglicht, Ihre Datenbankinfrastruktur als Code zu verwalten. Indem Sie Ihre RDS-Instanz und ihre Sicherheitseinstellungen in einer Terraform-Konfigurationsdatei definieren, können Sie Ihre Datenbankressourcen einfach und konsistent und effizient bereitstellen, ändern und zerstören.

Erwägen Sie für Produktionsumgebungen zusätzliche Konfigurationen wie Multi-AZ-Bereitstellungen, Verschlüsselung und erweiterte Überwachung. Die Flexibilität und Leistungsfähigkeit von Terraform machen es zu einem idealen Tool für die Verwaltung der Cloud-Infrastruktur und stellen sicher, dass Ihre Ressourcen gemäß Best Practices bereitgestellt und verwaltet werden.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/giasuddin90/creating-an-aws-mysql-rds-instance-with-terraform-4h8g?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3