Een AWS EC2-server instellen met Terraform op Mac [Stapsgewijze handleiding]
Inleiding: De slimmere manier om AWS-servers te starten vanuit Mac
Als u al eens handmatig een EC2-instantie via de AWS-console heeft aangemaakt, weet u hoe gemakkelijk het is om fouten te maken — verkeerde regio selecteren, beveiligingsgroepen vergeten, of de SSH-sleutelinstelling missen.
Stel u nu voor dat u uw volledige cloudinfrastructuur automatisch start met slechts één opdracht. Dat is precies waar Terraform voor dient.
Terraform is een krachtig Infrastructure as Code (IaC)-tool waarmee u cloudimplementaties op AWS, Azure, Google Cloud en meer kunt definiëren, versienieren en automatiseren. Voor ontwikkelaars op een Mac biedt het een efficiënte en herhaalbare manier om servers te beheren — zonder de AWS-console te hoeven openen.
In deze handleiding leert u precies:
- Terraform configureren op uw Mac
- Verbinding maken met AWS-inloggegevens
- Een Terraform-configuratiebestand schrijven om een EC2-instantie te starten
- Uw implementatie met vertrouwen toepassen, verifiëren en beheren
Aan het einde heeft u een volledig functionele AWS EC2-server geïmplementeerd met Terraform — op elk moment opnieuw uitrolbaar.
Stap 1: Wat u nodig heeft voordat u begint
Zorg dat u het volgende gereed heeft:
🧰 Systeemvereisten
- macOS 12+
- Homebrew (voor eenvoudige pakketinstallatie)
- Een AWS-account met toegangssleutels
- Basiskennis van AWS EC2
☁️ AWS-accountinstellingen
-
Log in op uw AWS-console.
-
Ga naar IAM → Gebruikers → Beveiligingsreferenties.
-
Genereer een Access Key ID en Secret Access Key.
- Bewaar deze veilig — Terraform heeft ze nodig voor authenticatie bij AWS.
Stap 2: Terraform installeren op Mac
De eenvoudigste manier om Terraform op macOS te installeren is via Homebrew:
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Installatie verifiëren:
terraform -version
✅ Voorbeelduitvoer:
Terraform v1.9.0
on darwin_amd64
Terraform is nu wereldwijd op uw systeem geïnstalleerd.
Stap 3: AWS CLI configureren
Terraform communiceert met AWS via de AWS CLI. Laten we hem installeren en configureren:
brew install awscli
Na installatie, configureer met uw inloggegevens:
aws configure
Voer in:
AWS Access Key ID: <your-access-key>
AWS Secret Access Key: <your-secret-key>
Default region name: us-east-1
Default output format: json
Dit maakt een configuratiebestand aan in ~/.aws/credentials, dat Terraform gebruikt voor authenticatie.
Stap 4: Een nieuw Terraform-project opzetten
Maak een projectmap aan voor uw Terraform-bestanden:
mkdir terraform-ec2-setup
cd terraform-ec2-setup
Maak een nieuw bestand aan genaamd main.tf:
touch main.tf
Hier komen al uw Terraform-configuraties.
Stap 5: Uw Terraform-configuratiebestand schrijven
Definieer alles wat Terraform nodig heeft om een EC2-instantie aan te maken — provider, regio, AMI, instantietype en beveiligingsgroepen.
Open main.tf en voeg de volgende code toe:
# Specify AWS as the provider
provider "aws" {
region = "us-east-1"
}
# Create a key pair
resource "aws_key_pair" "mac_key" {
key_name = "mac-terraform-key"
public_key = file("~/.ssh/id_rsa.pub")
}
# Create a security group
resource "aws_security_group" "allow_ssh" {
name = "allow_ssh"
description = "Allow SSH inbound traffic"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Create an EC2 instance
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = "t2.micro"
key_name = aws_key_pair.mac_key.key_name
security_groups = [aws_security_group.allow_ssh.name]
tags = {
Name = "Terraform-Mac-Instance"
}
}
Stap 6: Terraform initialiseren
Initialiseer Terraform vóór het toepassen van configuraties. Dit downloadt de benodigde providerplugins:
terraform init
✅ Verwachte uitvoer:
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
Stap 7: De configuratie valideren
Valideer uw .tf-bestanden altijd vóór toepassing:
terraform validate
Bij correcte configuratie ziet u:
Success! The configuration is valid.
Stap 8: Het infrastructuurplan bekijken
Bekijk wat Terraform zal aanmaken — zonder daadwerkelijk wijzigingen door te voeren:
terraform plan
Terraform toont een gedetailleerd plan van aan te maken resources:
+ aws_instance.my_ec2
+ aws_security_group.allow_ssh
+ aws_key_pair.mac_key
Dit is uw kans om de configuratie te bevestigen vóór de implementatie.
Stap 9: Toepassen en de EC2-instantie aanmaken
Zodra u klaar bent, implementeer de instantie:
terraform apply
Typ yes wanneer daarom wordt gevraagd.
Terraform zal:
- Een sleutelpaar aanmaken
- Een beveiligingsgroep instellen
- Een EC2-instantie implementeren
✅ Verwachte uitvoer:
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Outputs:
instance_public_ip = "54.210.19.33"
U kunt nu SSH-verbinding maken met uw nieuwe instantie:
ssh ec2-user@54.210.19.33
Stap 10: Verifiëren in de AWS-console
Open uw AWS Management Console → EC2 Dashboard, en u ziet uw nieuwe instantie actief onder:
Naam: Terraform-Mac-Instance
Dit bevestigt dat Terraform uw infrastructuur succesvol heeft geïmplementeerd.
Stap 11: Resources opruimen (optioneel)
Vernietig de infrastructuur na het testen om onnodige AWS-kosten te voorkomen:
terraform destroy
Typ yes ter bevestiging.
Stap 12: De Terraform-workflow begrijpen
Hier is een overzicht van de Terraform lifecycle-opdrachten die u regelmatig zult gebruiken:
| Opdracht | Beschrijving |
|---|---|
terraform init |
Project initialiseren en providerplugins installeren |
terraform validate |
Configuratiesyntaxis controleren |
terraform plan |
Voorgestelde infrastructuurwijzigingen bekijken |
terraform apply |
Wijzigingen toepassen en op AWS implementeren |
terraform destroy |
Aangemaakte resources verwijderen |
Stap 13: Veelvoorkomende problemen en oplossingen
❌ Fout: Ongeldige AWS-inloggegevens
Controleer uw ~/.aws/credentials-bestand of voer aws configure opnieuw uit.
❌ Toegang geweigerd (publickey)
Zorg dat uw SSH-sleutel correct is toegevoegd in de Terraform-sleutelpaarresource en in de map ~/.ssh op uw Mac.
❌ Beveiligingsgroep niet gevonden
Terraform maakt afhankelijkheden automatisch aan, maar als u resourcenamen wijzigt, voer dan opnieuw terraform init uit.
❌ Conflicten met statusbestand
Bewerk nooit handmatig terraform.tfstate. Gebruik externe backends zoals S3 voor teamomgevingen.
Stap 14: Best practices voor Terraform + AWS op Mac
✅ Gebruik externe statusopslag
Bewaar de Terraform-status in AWS S3 met DynamoDB-vergrendeling om conflicten te voorkomen:
terraform {
backend "s3" {
bucket = "terraform-state-bucket"
key = "ec2/terraform.tfstate"
region = "us-east-1"
}
}
✅ Versiebeheer
Voeg .terraform/ toe aan uw .gitignore en sla .tf-bestanden op in Git voor samenwerking.
✅ Infrastructuur modulair maken
Gebruik Terraform-modules voor herbruikbare configuraties — zoals vpc, ec2 en security_groups.
✅ Alles taggen
Tag AWS-resources altijd voor eenvoudiger beheer, facturering en auditing.
Stap 15: EC2-instelling automatiseren met variabelen
Maak een variables.tf-bestand aan voor herbruikbare configuraties:
variable "instance_type" {
default = "t2.micro"
}
variable "region" {
default = "us-east-1"
}
Pas vervolgens main.tf aan:
provider "aws" {
region = var.region
}
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = var.instance_type
}
Voer uit:
terraform plan
terraform apply
Dit maakt uw implementatie flexibel en omgevingsonafhankelijk.
Stap 16: Bonus — Automatiseren met GitHub Actions (CI/CD)
Automatiseer Terraform-implementaties rechtstreeks vanuit GitHub.
Maak .github/workflows/deploy.yml aan:
name: Terraform AWS Deploy
on:
push:
branches: [ "main" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
- name: Terraform Init
run: terraform init
- name: Terraform Apply
run: terraform apply -auto-approve
Deze pipeline voert Terraform automatisch uit bij elke push naar main — perfect voor teamautomatisering.
Belangrijkste punten
- 💻 Met Terraform automatiseert u de AWS EC2-instelling vanaf uw Mac met herbruikbare, overzichtelijke code.
- 🔐 Gebruik IAM-toegangssleutels voor authenticatie — leg nooit inloggegevens vast in uw code.
- 🧠 Valideer en bekijk plannen altijd vóór toepassing.
- 🧩 Maak uw Terraform-opzet modulair voor schaalbaarheid.
- ☁️ Verwijder ongebruikte resources om AWS-kosten te beheersen.
Aan de slag
Klaar om uw AWS-automatisering naar een hoger niveau te tillen? Terraform beheersen op Mac is slechts het begin — van hieruit kunt u uitbreiden naar multi-omgevingsimplementaties, S3-buckets, VPC's en zelfs Kubernetes-clusters — allemaal via code.
👉 Begin nu met het instellen van uw eerste door Terraform beheerde EC2-instantie en ervaar hoe moeiteloos cloudautomatisering kan zijn.
Veelgestelde vragen
V: Waarvoor wordt Terraform gebruikt?
Terraform automatiseert de implementatie van infrastructuur op cloudplatformen zoals AWS, Azure en Google Cloud via eenvoudige configuratiebestanden.
V: Is Terraform gratis?
Ja. Terraform CLI is open source, maar HashiCorp biedt betaalde versies aan voor teams en enterprise-automatisering.
V: Kan ik Terraform ook op Windows of Linux gebruiken?
Zeker. Terraform werkt op alle belangrijke besturingssystemen. De installatieopdrachten verschillen per platform.
V: Hoe maak ik SSH-verbinding met mijn Terraform EC2-instantie?
Gebruik uw SSH-privésleutel en het publieke IP-adres van de instantie:
ssh ec2-user@<instance_ip>
V: Moet ik resources na het testen verwijderen?
Ja — voer altijd terraform destroy uit na het testen om onverwachte AWS-kosten te voorkomen.