Als je een AWS Virtual Private Cloud (VPC) wilt instellen, kun je dat doen via de AWS Management Console, maar het automatiseren ervan is veel leuker! In een DevOps-scenario is het opbouwen van AWS-services met tools zoals Terraform een schaalbaardere en geautomatiseerde benadering van het voorzien van cloudresources.
In deze tutorial leer je hoe je een Terraform-configuratie kunt maken en uitvoeren om een Terraform VPC helemaal opnieuw op te bouwen!
Vereisten
Deze post zal een stapsgewijze handleiding zijn. Als je wilt meedoen, zorg er dan voor dat je het volgende hebt:
- Een AWS-account
- Terraform – Deze tutorial zal Terraform v0.14.9 gebruiken op Ubuntu 18.04.5 LTS, maar elk besturingssysteem met Terraform zou moeten werken.
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should have one that understands the HCL Terraform language. Try out Visual Studio (VS) Code.
Begrip van AWS VPCs
De AWS-cloud heeft tientallen verschillende services op het gebied van rekenkracht, opslag, netwerken en meer. Elk van deze services kan met elkaar communiceren, net als de services van een on-premises datacenter. Maar elk van deze services is onafhankelijk van elkaar en ze zijn niet per se geïsoleerd van andere services. De AWS VPC verandert dat.
Een AWS VPC is een enkel netwerk waarmee je AWS-services kunt starten binnen een enkel geïsoleerd netwerk. Technisch gezien is een AWS VPC bijna hetzelfde als het bezitten van een datacenter, maar dan met ingebouwde extra voordelen van schaalbaarheid, fouttolerantie, onbeperkte opslag, enzovoort.

AWS VPC’s zijn beperkt per regio. Je kunt geen VPC hebben die zich uitstrekt over regio’s, met maximaal vijf ondersteunde VPC’s per regio.
Het opbouwen van de Terraform-configuratie voor een AWS VPC
Genoeg gepraat, laten we aan de slag gaan met bouwen!
1. Om te beginnen, maak een map aan om je Terraform-configuratiebestanden in op te slaan. Deze tutorial zal een map genaamd terraform-vpc-demo aanmaken in je home-directory.
2. Open je favoriete code-editor en kopieer/plak de volgende configuratie die al voor je is gemaakt, en sla het bestand op als main.tf binnen de map ~/terraform-vpc-demo. Informatie over elk te maken resource staat inline.
Het bestand main.tf bevat alle resources die moeten worden voorzien.
Terraform gebruikt verschillende soorten configuratiebestanden. Elk bestand is geschreven in ofwel platte tekstformaat of JSON-formaat. Ze hebben een specifieke benamingconventie van hetzij .tf of .tfjson-formaat.
De onderstaande Terraform-configuratie:
- Maakt een VPC
- Maakt een Internet Gateway en koppelt deze aan de VPC om verkeer binnen de VPC bereikbaar te maken voor de buitenwereld.
- Maakt een openbaar en privé subnet
Subnetten zijn netwerken binnen netwerken. Ze zijn ontworpen om het netwerkverkeer efficiënter te laten verlopen en kleinere, beheersbare ‘brokken’ IP-adressen te bieden
- Maakt een routeringstabel voor de openbare en privé-subnetten en koppelt de tabel aan beide subnetten
- Maakt een NAT Gateway om privé-subnetten in staat te stellen verbinding te maken met internet zonder dat elk resource een extern routeerbaar IP-adres nodig heeft.
3. Maak nu een ander bestand aan binnen de ~/terraform-vpc-demo directory, noem het vars.tf en plak de onderstaande inhoud.
Vars.tf is een Terraform-variabelenbestand dat alle variabelen bevat waarnaar het configuratiebestand verwijst.
Je kunt variabelenverwijzingen in het configuratiebestand zien door:
var.region
var.main_vpc_cidr
var.public_subnets
var.private_subnets
Het is mogelijk om alle configuratiewaarden in één configuratiebestand op te nemen. Om dingen duidelijk te houden en het gemakkelijker te maken voor ontwikkelaars en beheerders, is het belangrijk om zaken op te splitsen.
4. Maak nog een bestand aan binnen de map ~/terraform-vpc-demo, plak de volgende code in en noem het provider.tf om de AWS-provider te definiëren. De tutorial zal bronnen creëren in de regio us-east-2
.
Het providersbestand definieert providers zoals AWS, Oracle of Azure, etc., zodat Terraform kan verbinden met de juiste cloudservices.
provider "aws" { region = "us-east-2" }
5. Maak tot slot nog een bestand aan binnen de map ~/terraform-vpc-demo, noem het terraform.tfvars, en plak de onderstaande code. Dit variabelenbestand bevat de waarden die Terraform zal gebruiken om de variabelen in het configuratiebestand te vervangen.
Open nu je favoriete terminal (Bash in dit geval) en controleer of alle benodigde bestanden in de map staan door het tree
-commando uit te voeren.

Uitvoeren van Terraform om de AWS VPC te creëren
Nu je het Terraform-configuratiebestand en de variabelenbestanden klaar hebt staan, is het tijd om Terraform te starten en de VPC te maken! Voor het inrichten van een Terraform-configuratie gebruikt Terraform typisch een driestappenbenadering terraform init → terraform plan → terraform apply. Laten we nu elke stap doorlopen.
1. Open een terminal en navigeer naar de ~\terraform-vpc-demo map.
2. Voer het terraform init
commando uit in dezelfde map. Het terraform init
commando initialiseert de plugins en providers die nodig zijn om met resources te werken.
Als alles goed gaat, zou je de melding Terraform is succesvol geïnitialiseerd
in de uitvoer moeten zien, zoals hieronder getoond.

3. Voer nu het terraform plan
commando uit. Dit is een optionele, maar aanbevolen stap om te controleren of de syntaxis van je configuratie correct is en je een overzicht te geven van welke resources zullen worden ingericht in je infrastructuur. terraform plan
Als het succesvol is, zou je een bericht moeten zien zoals Plan: "X" toe te voegen, "Y" te wijzigen, of "Z" te vernietigen
in de uitvoer om aan te geven dat het commando succesvol was. Je zult ook elke AWS-resource zien die Terraform van plan is te creëren.

4. Vertel vervolgens aan Terraform om daadwerkelijk de AWS VPC en resources te voorzien met behulp van terraform apply
. Wanneer je terraform apply
aanroept, zal Terraform de configuratie lezen (main.tf) en de andere bestanden om een configuratie samen te stellen. Het zal die configuratie vervolgens naar AWS sturen als instructies om de VPC en andere componenten te bouwen.

Merk de IDs op die zijn gedefinieerd in de Terraform-uitvoer. Je hebt deze IDs nodig om de resources die in de volgende sectie zijn gemaakt te correleren.
De Terraform-opdracht is succesvol uitgevoerd, dus laten we overschakelen naar de AWS Management Console om te bevestigen dat de VPC en componenten succesvol zijn aangemaakt.
Het verifiëren van de AWS Terraform VPC
Tegen die tijd zou je de VPC met Terraform moeten hebben gecreëerd. Laten we dit controleren door handmatig te kijken of de VPC in de AWS Management Console is aangemaakt.
1. Open je favoriete webbrowser en ga naar de AWS Management Console en log in.
2. Terwijl je in de Console bent, klik op de zoekbalk bovenaan, zoek naar ‘vpc’ en klik op het VPC-menu-item.

3. Eenmaal op de VPC-pagina, klik op Jouw VPC’s. Je zou de VPC moeten zien die is aangemaakt met dezelfde ID die Terraform eerder heeft geretourneerd.

4. Aangezien Terraform niet alleen de VPC-bron heeft gemaakt, maar alle bronnen die nodig zijn voor de VPC, moet je ook elke bron op deze pagina vinden.




Met alle componenten succesvol gemaakt, met behulp van Terraform, is deze VPC klaar voor gebruik!
Conclusie
In deze tutorial heb je geleerd hoe je Terraform kunt gebruiken om een AWS VPC en de bijbehorende componenten te implementeren.
Het bouwen van een Amazon Virtual Private Cloud met Terraform stelt je in staat om snel, eenvoudig en voorspelbaar resources te maken. Je bent nu klaar om deze kennis te gebruiken met andere AWS-services en krachtige services erbovenop te bouwen.