Hvordan lage en AWS RDS DB -forekomst ved hjelp av Terraform

Hvordan lage en AWS RDS DB -forekomst ved hjelp av Terraform
Terraform støtter flere leverandører av skytjenester siden den er bygget for infrastrukturkode IAC -løsning. Ved hjelp av IAC kan vi administrere infrastrukturoppsett med konfigurasjonsfiler (e.g. distribuere, oppdatere og administrere infrastrukturen vår ved å definere de nødvendige ressursene.) Det er da etablert at AWS RDS gir enkel å administrere relasjonsdatabasetjeneste. Imidlertid kan vi ved å bruke Terraformen forenkle RDS -styringsoppgaven ytterligere.

Hva vil vi dekke?

I denne guiden vil vi se hvordan vi kan tilby en AWS RDS DB -forekomst ved hjelp av Terraform. La oss først starte med installasjonen av Terraform på Ubuntu 20.04.

Installere terraform

Hashicorp tilbyr den offisielle Terraform -pakken for Ubuntu/Debian, Centos/RHEL, Fedora og Amazon Linux. Ved siden av dette opprettholder den også forhåndskompilert binær og kan også settes fra kilden. For denne guiden bruker vi standardpakken levert av Debian Package Repository for å installere Terraform på Ubuntu 20.04.

Trinn 1. Først installasjon Gnupg, Programvareforekomster-vanlige og krøllpakker for å bekrefte Hashicorps GPG-signatur og installere det nødvendige depotet:

$ sudo apt-get update && sudo apt-get install -y gnupg programvare-Properties-vanlig krøll

Steg 2. Legg nå til Hashicorp GPG Nøkkel ved hjelp av kommandoen:

$ curl -fssl https: // apt.utgivelser.Hashicorp.com/gpg | sudo apt-key add -

Trinn 3. Fortsett med å legge til det nødvendige depotet:

$ sudo apt-add-repository "Deb [arch = amd64] https: // appt.utgivelser.Hashicorp.com $ (lsb_release -cs) hoved "

Trinn 4. Til slutt, kjør oppdateringskommandoen for å legge til depotet og installere Terraform:

$ sudo apt-get update && sudo apt-get installer terraform

Trinn 5. Kontroller om Terraform er installert ved å kjøre kommandoen:

$ Terraform -version

Bygge AWS RDS -infrastruktur ved hjelp av Terraform

Nå som vi har installert terraform på vår lokale maskin, kan vi fortsette oppgaven med å jobbe med AWS. Som nevnt tidligere bruker Terraform flere konfigurasjonsfiler for bestemmelsesressurser, og hver av disse filene må plasseres i sin respektive arbeidsmappe/katalog. La oss lage en katalog for dette formålet:

Trinn 1. Lag en mappe for å inneholde konfigurasjonsfilene og endre katalog til denne mappen:

$ mkdir linuxhint-terraForm && cd linuxhint-terraformform

Steg 2. Lage en 'hoved-.tf'Fil som vil inneholde definisjonen for infrastrukturen vår:

$ nano main.tf

Sett nå følgende konfigurasjon inni den:

terraform
krevde_providers
aws =
Source = "Hashicorp/AWS"
versjon = "~> 3.27 "


krevde_versjon = "> = 0.14.9 "

leverandør "aws"
Region = "US-West-2"
Access_key = "din-access-key"
Secret_key = "Din-Secret-Key"

ressurs "aws_db_instance" "rds_instance"
Allokert_storage = 20
Identifier = "RDS-Terraform"
lagring_type = "gp2"
motor = "mysql"
motor_versjon = "8.0.27 "
Instance_class = "DB.T2.mikro "
name = "Ditt-db-navn"
brukernavn = "Ditt-db-brukernavn"
Password = "Ditt passord"
public_accessible = true
Skip_Final_SnapShot = True
tags =
Name = "ExplerdsserverInstance"

Denne filen inneholder hele konfigurasjonen som skal distribueres ved hjelp av Terraform, bare erstatt den foldede teksten med dine egne konfigurasjonsdetaljer. La oss utforske hver av seksjonene som brukes i filen ovenfor:

1. Terraform: Den definerer Terraform -innstillingene. De "nødvendige leverandørene" definerer leverandøren som skal brukes med terraformen og "kilden" er en valgfri parameter for vertsnavn, et navneområde og leverandørtypen. I ovennevnte kode er kilden definert som 'Hashicorp/AWS' som i likhet med alle leverandører er installert fra Terraform Registry. Ovennevnte leverandør peker på 'Register.terraform.io/hashicorp/aws '.

Versjonsattributtet definerer versjonen av leverandøren du vil bruke.

2. Tilbyder: Dette spesifiserer hvilken skyplattform du skal samhandle med (AWS, Azure, GCP osv.). Dette kontrollerer også regionen du distribuerer ressursene dine og sikkerhetsopplysningene for brukeren din.

3. Ressurs: Den består av komponenter som bygger en infrastruktur som databaser, lagring, nettverk osv. Den første strengen, her "aws_instance“, Definerer ressurstypen og den andre definerer et tilpasset navn du vil bruke. Disse to er kombinert for å danne en unik ID for denne ressursen, her er den 'aws_instance.Rds_instance'. På samme måte kan vi også inkludere maskinstørrelser, diskbilder eller VPC -ID -er.

For å validere eller bekrefte konfigurasjonen, bruk kommandoen:

$ Terraform Valider

Initialisere terraformkatalogen

For å laste ned og installere leverandøren vi definerte i konfigurasjonen og andre filer, må vi initialisere katalogen som inneholder denne filen:

$ terraform init

Fra bildet over, vårt i det Kommandoen er vellykket, og det er noen nye filer også opprettet her. Det er også en kommando til 'Terraform Plan', selv om det ikke er obligatorisk å bruke den, men det har noen fordeler, for eksempel.:

  1. Du kan se handlingene Terraform kommer til å utføre.
  2. Det kan påpeke syntaktiske feil i konfigurasjonsfilene dine.

Terraform nevner ikke denne kommandoen i sin dokumentasjon, for når du kjører 'Terraform Apply' -kommandoen, vil den samme planen bli presentert igjen.

Bygge infrastrukturen

For å bygge vår infrastruktur, bruk kommandoen:

$ Terraform Søk

Dette vil først sende ut utførelsesplanen som beskriver oppgavene Terraform vil utføre for å bringe tilstanden til infrastrukturen din til den som er definert i konfigurasjonsfilen din. Etter dette vil det pause og be deg om å bekrefte planen om å fortsette. Hvis alt er satt som du har ønsket deg, skriver du 'ja' for å fortsette:

Hvis du er klar til å fortsette, skriver du 'ja'.

Det vil ta litt tid å fullføre prosessen. Når denne prosessen er fullført, vises meldingen nedenfor:

På AWS -styringskonsollen din vil RDS -forekomsten bli oppført:

Ødelegger ressursene

Når du er ferdig og ikke lenger trenger AWS -ressursene du opprettet, kan du ganske enkelt slette dem ved å bruke kommandoen:

$ terraform ødelegger

Konklusjon

I denne guiden har vi lært om å levere en RDS -forekomst på AWS ved hjelp av Terraform. Du kan også prøve å konfigurere en EC2 -forekomst på samme måte.