Terraform vs CloudFormation: Vilket IaC-verktyg passar dig?
Group COO & CISO
Operational excellence, governance, and information security. Aligns technology, risk, and business outcomes in complex IT environments

Terraform vs CloudFormation: Vilket IaC-verktyg passar dig?
Terraform och CloudFormation löser samma grundproblem — att definiera infrastruktur som kod (IaC) — men de gör det med fundamentalt olika filosofier. Terraform är multicloud-native, använder HCL och kräver att du äger din state-hantering. CloudFormation är djupt integrerat i AWS-ekosystemet, hanterar state åt dig och stödjer nya AWS-tjänster från dag ett. Rätt val beror inte på vilket verktyg som är "bäst" generellt, utan på din organisations molnstrategi, teamkompetens och framtida riktning.
Viktiga slutsatser
- Terraform hanterar multicloud och tredjepartstjänster genom ett enormt provider-ekosystem; CloudFormation är djupt integrerat med AWS
- HCL (Terraform) är generellt lättare att läsa och underhålla än CloudFormations JSON/YAML-mallar vid större konfigurationer
- State management skiljer sig fundamentalt: Terraform kräver en medveten strategi för remote state; CloudFormation sköter det internt
- Välj CloudFormation om du är helhjärtat investerad i AWS — välj Terraform om du har eller planerar hybridmiljöer
- Oavsett verktyg bör IaC i produktion kombineras med policy-as-code (OPA, Sentinel, cfn-guard) och CI/CD-pipelines
Vad är Terraform — och varför har det blivit branschstandard?
Terraform, utvecklat av HashiCorp, definierar infrastruktur med HashiCorp Configuration Language (HCL). Det centrala konceptet är en deklarativ modell: du beskriver önskat tillstånd, och Terraform beräknar vilka ändringar som krävs för att nå dit.
Det som skiljer Terraform från andra IaC-verktyg är provider-arkitekturen. Varje molnleverantör, SaaS-tjänst eller intern plattform kan exponeras som en provider. I Terraform Registry finns idag providers för AWS, Azure, Google Cloud, Cloudflare, Datadog, GitHub, Kubernetes och hundratals andra. Det innebär att ett enda verktyg — och en enda arbetsprocess — kan hantera hela din infrastruktur oavsett var den lever.
Från Opsios NOC-perspektiv ser vi att Terraform-adoptionen har accelererat kraftigt bland nordiska företag under de senaste två åren. Det drivs dels av multicloud-strategier, dels av att DevOps-team vill ha ett enhetligt språk snarare än leverantörsspecifika verktyg.
Styrkor i praktiken:
- Moduler möjliggör återanvändbar, testad infrastruktur
terraform planger en tydlig diff före varje förändring- State kan lagras centralt (S3 + DynamoDB, Terraform Cloud, eller HCP) med locking
- Importfunktioner för befintlig infrastruktur har förbättrats avsevärt i version 1.5+
Vill ni ha expertstöd med terraform vs cloudformation: vilket iac-verktyg passar dig??
Våra molnarkitekter hjälper er med terraform vs cloudformation: vilket iac-verktyg passar dig? — från strategi till implementation. Boka ett kostnadsfritt 30-minuters rådgivningssamtal utan förpliktelse.
Vad är CloudFormation — och när är det rätt val?
AWS CloudFormation är AWS egen IaC-tjänst. Du skriver mallar i JSON eller YAML som beskriver dina AWS-resurser, och CloudFormation skapar, uppdaterar eller tar bort dem som en stack.
CloudFormations största fördel är nollpunktsintegration med AWS. Nya AWS-tjänster och funktioner får CloudFormation-stöd samtidigt som de lanseras — ibland innan Terraform-providern hinner uppdateras. Om din organisation kör uteslutande på AWS och använder tjänster som AWS Organizations, Service Catalog eller Control Tower, är CloudFormation ofta det naturliga valet eftersom dessa tjänster själva bygger på CloudFormation under huven.
Styrkor i praktiken:
- State hanteras helt av AWS — ingen extern backend att konfigurera
- Rollback-funktioner vid misslyckade deploys är inbyggda
- Tight integration med AWS IAM, Service Catalog och StackSets för multi-account
- Inget licensbekymmer — det är en del av AWS-plattformen
Begränsningar vi ser i produktion:
- Stora YAML-mallar (3 000+ rader) blir svåra att underhålla och granska i code review
- Felsökning vid misslyckade stack-uppdateringar kan vara frustrerande — felmeddelanden är ibland kryptiska
- Ingen native hantering av icke-AWS-resurser (DNS hos Cloudflare, monitoring i Datadog, etc.)
Jämförelse: Terraform vs CloudFormation
| Aspekt | Terraform | CloudFormation |
|---|---|---|
| Språk | HCL (HashiCorp Configuration Language) | JSON eller YAML |
| Molnstöd | Multicloud + SaaS + on-prem via providers | Enbart AWS |
| State management | Extern (S3, Terraform Cloud, etc.) — du äger det | Internt i AWS — helt hanterat |
| Nya AWS-tjänster | Beroende av provider-uppdatering (vanligtvis dagar till veckor) | Ofta dag-ett-stöd |
| Drift detection | Automatiskt vid terraform plan | Manuell aktivering eller scheduled |
| Moduler / återanvändning | Terraform Registry, privata moduler | Nested stacks, AWS CDK |
| Kostnad | Open source (BSL 1.1) / OpenTofu (MPL 2.0) / HCP betaltjänst | Gratis (du betalar för resurserna) |
| Policy-as-code | Sentinel (HCP), OPA | cfn-guard, AWS Config Rules |
| Ekosystem | Mycket stort community, CNCF-anknytning via OpenTofu | AWS-community, tät koppling till AWS-dokumentation |
| Lärtröskel | Medel — HCL är intuitivt, state-hantering kräver förståelse | Medel — YAML är bekant, men felsökning av stacks kan vara mödosam |
State management: Den avgörande skillnaden
Om du bara ska förstå en sak i Terraform vs CloudFormation-debatten, förstå state management. Det är här de flesta produktionsproblem uppstår.
Terraform state
Terraform lagrar ett state-objekt som mappar din HCL-konfiguration till verkliga resurser. Denna fil (terraform.tfstate) innehåller resurs-ID:n, attribut och metadata. I ett team måste state lagras centralt — typiskt i en S3-bucket med DynamoDB-locking i eu-north-1 (Stockholm) — för att undvika att två personer kör terraform apply samtidigt.
Det ger dig full kontroll, men det betyder också att state-filen blir en kritisk komponent. En korrupt eller förlorad state-fil innebär att Terraform inte längre vet vilka resurser som existerar. Vi har sett organisationer som förlorat state och tvingats importera hundratals resurser manuellt.
Opsios rekommendation: Versionshantera aldrig state i Git. Använd remote backend med kryptering, locking och automatisk backup. Strukturera dina workspaces efter miljö (dev/staging/prod) och komponent.
CloudFormation state
CloudFormation hanterar state internt. Du ser det aldrig som en fil — AWS håller reda på varje resurs i varje stack. Det är enklare att komma igång, men du har också mindre insyn. Om en stack hamnar i UPDATE_ROLLBACK_FAILED kan felsökningen bli tidskrävande.
Licensfrågan: BSL, OpenTofu och vad det betyder i praktiken
HashiCorps byte från Mozilla Public License till Business Source License (BSL 1.1) i augusti 2023 skakade om communityt. Linux Foundation lanserade OpenTofu som ett fritt alternativ, och projektet har vuxit snabbt med stöd från bland andra Gruntwork, Spacelift och env0.
I praktisk drift har vi sett att de flesta kundorganisationer fortfarande kör HashiCorps Terraform — licensändringen påverkar främst företag som bygger konkurrerande tjänster. Men OpenTofu är ett fullt gångbart alternativ, och det är klokt att ha en migrationsplan. Konfigurationsformaten är kompatibla, och state kan flyttas mellan verktygen.
CloudFormation har inga licensfrågor att ta ställning till — det är en del av AWS-plattformen.
Multicloud: Verklighet eller buzzword?
Enligt Flexeras State of the Cloud har multicloud-strategier konsekvent varit normen snarare än undantaget bland medelstora och stora organisationer. Men "multicloud" betyder olika saker — det kan vara en medveten strategi eller resultatet av att olika team gjort olika val.
Om din organisation genuint behöver hantera resurser hos flera leverantörer — exempelvis compute i AWS, CDN via Cloudflare och monitoring i Datadog — är Terraform det naturliga valet. Ett enda verktyg, en enda pipeline, ett enda arbetssätt.
Om du är all-in på AWS och det inte finns konkreta planer på att ändra det, tillför Terraforms multicloud-kapacitet inget värde. Då kan CloudFormation vara den enklare vägen.
Från vår SOC: Bland Opsios nordiska kunder ser vi att ungefär hälften kör rent AWS-miljö och hälften har hybriduppsättningar med minst två leverantörer. De som kör hybrid har nästan undantagslöst valt Terraform.
Policy-as-code och säkerhet
Oavsett IaC-verktyg bör du implementera policy-as-code — automatiserade regler som förhindrar felkonfigurationer innan de når produktion.
- Terraform + Sentinel (HashiCorp) eller Open Policy Agent (OPA): Definiera policies som "inga publika S3-buckets", "alla EC2-instanser måste ha kryptering" eller "resurser måste ha cost-center-taggar"
- CloudFormation + cfn-guard: AWS eget policy-verktyg som validerar mallar mot regler skrivna i ett domänspecifikt språk
- Båda + AWS Config Rules: Fungerar som ett komplement för att upptäcka drift och regelbrott i realtid
Ur ett NIS2-perspektiv — som nu ställer hårdare krav på kritisk infrastruktur inom EU — är automatiserad policy-enforcement inte längre nice-to-have utan en förväntan från revisorer.
Praktisk rekommendation: Så väljer du
Beslutet bör drivas av tre faktorer:
1. Molnstrategi: Enbart AWS → CloudFormation är ett starkt val. Multicloud eller hybrid → Terraform.
2. Teamkompetens: Om teamet redan kan HCL, bygg vidare. Om de lever i AWS Console och CDK, börja med CloudFormation.
3. Organisationens mognad: Terraform kräver att du tar ansvar för state, backends och arbetsprocesser. CloudFormation gömmer den komplexiteten — men ger dig mindre flexibilitet.
Det finns inget universellt rätt svar. Vi har kunder som har migrerat i båda riktningarna. Det avgörande är att välja ett primärt verktyg, implementera det ordentligt med CI/CD-pipeline och policy-as-code, och inte låta ClickOps smyga sig in.
Vanliga frågor
Kan jag använda Terraform och CloudFormation samtidigt?
Ja, det är vanligare än man tror. Många organisationer använder CloudFormation för AWS-nativa tjänster som Organizations och Control Tower, men Terraform för applikationsinfrastruktur och multicloud-resurser. Nyckeln är att tydligt avgränsa vilka lager varje verktyg äger för att undvika state-konflikter.
Är Terraform svårare att lära sig än CloudFormation?
Generellt inte. HCL är designat för att vara läsbart och har enklare syntax än stora JSON-mallar. Däremot kräver Terraform att du förstår state management — remote state, locking och workspaces — vilket är ett nytt koncept för många. CloudFormation gömmer den komplexiteten men ger dig också mindre kontroll.
Vad händer med min Terraform-state om HashiCorp ändrar licensvillkor?
HashiCorps licensbyte till BSL 2023 ledde till att OpenTofu skapades som ett open source-alternativ. State-formatet är kompatibelt, så en migration är tekniskt möjlig. Opsio rekommenderar att följa utvecklingen och ha en migrationsplan, men i praktiken påverkar licensändringen främst konkurrenter till HashiCorp, inte slutanvändare.
Hur hanterar jag drift detection — alltså att verkligheten avviker från koden?
Terraform kör drift detection vid varje terraform plan. CloudFormation har en inbyggd drift detection-funktion, men den kräver att du aktiverar den manuellt eller schemalägger den. I vår SOC ser vi att drift ofta uppstår genom manuella konsoländringar — det viktigaste är att förbjuda ClickOps i produktion.
Behöver jag ett IaC-verktyg om jag bara har en liten AWS-miljö?
Ja. Även med fem resurser sparar IaC tid vid nästa onboarding, audit eller incidentåterställning. Du behöver inte välja det mest avancerade upplägget — en enkel Terraform-konfiguration med S3-backend räcker långt för små miljöer.
Relaterade artiklar
Om författaren

Group COO & CISO at Opsio
Operational excellence, governance, and information security. Aligns technology, risk, and business outcomes in complex IT environments
Editorial standards: This article was written by a certified practitioner and peer-reviewed by our engineering team. We update content quarterly to ensure technical accuracy. Opsio maintains editorial independence — we recommend solutions based on technical merit, not commercial relationships.