Kysy konsultilta: Terraform vs. CDK

23. toukokuuta 2024

Terraform vs. CDK

Terraform ja AWS Cloud Development Kit (CDK) ovat molemmat työkaluja, joilla voidaan määrittää infrastruktuuri koodina (Infrastructure as Code, IaC). Molemmilla työkaluilla kuvataan ympäristön haluttu tila ns. deklaratiivisesti ja työkalu pitää huolen, että haluttuun tilaan päästään. Tähän loppuivatkin yhtäläisyydet.


CDK:ssa määritykset kirjoitetaan jollain yleisistä ohjelmointikielistä - esim. TypeScript, Python tai Java - ja käännetään lopulta CloudFormation-koodiksi. Ohjelmointikielen käyttö on usein kehittäjille ennestään tuttua ja se myös mahdollistaa tarvittaessa monimutkaisen logiikan rakentamisen.


Terraformissa puolestaan käytetään HashiCorp Configuration Language:a (HCL), joka ei ole useimmille kehittäjille tuttu ja vaatii pientä opettelua. HCL ei ole varsinainen ohjelmointikieli, mutta se tukee tärkeimpiä rakenteita kuten loopit ja ehtolauseet. Nykyään Terraformin kanssa voi käyttää myös CDK for Terraformia (CDKTF), jossa Terraform-koodi tuotetaan samaan tapaan yleisillä ohjelmointikielillä kuin CDK:ssa CloudFormation-koodi.

Myös ympäristön provisiointi ja tilan hallinta eroavat Terraformin ja CDK:n välillä. Terraformin providerit kutsuvat suoraan rajapintoja (API) ja tallentavat tilan tilatiedostoon, joka yleensä on myös jossain pilvipalvelussa. Terraformiin löytyy providereita lähes kaikkiin pilvipalveluihin sekä monien muidenkin yleisten ohjelmistojen hallintaan.


CDK:ta käytettäessä AWS CloudFormation vastaa resurssien provisioinnista sekä toimii samalla ympäristön tilatietona. Tämän takia CDK sopii käytettäväksi lähinnä vain AWS:n kanssa vaikka CloudFormationin laajennoksilla pystyykin joitain AWS:n ulkopuolisia palveluita hallitsemaan.

Lyhyesti voisi sanoa, että CDK on hyvä valinta, jos käytössä on AWS ja ympäristön - tai koko sovelluksen -  rakentaa sovelluskehittäjä. CDK on hyvä valinta myös silloin, jos ympäristö on pääasiassa AWS:ssä tai CloudFormation on ennestään tuttu. Muulloin valitsisin Terraformin tai CDK for Terraformin, koska ne tarjoavat laajemman tuen, nopeammat päivitykset uusille ominaisuuksille sekä suoremman vuorovaikutuksen hallittavan palvelun kanssa.

p.s. HashiCorp muutti Terraformin lisenssiehtoja syksyllä 2023. Tämän seurauksena sen rinnalle on tullut avoimen lähdekoodin lisenssin OpenTofu, joka pyrkii pysymään ominaisuuksiltaan Terraformin tasalla.

A man in a grey sweater is smiling with his arms crossed.

Antti Elonheimo

Senior Consultant

Viimeisimmät kirjoitukset

Webscale viisi vinkkiä pilvikulujen hallintaan
23. huhtikuuta 2025
Julkinen pilvi on tuonut mukanaan ennennäkemätöntä skaalautuvuutta, joustavuutta ja nopeutta, mutta pilven käyttöönoton seurauksena myös kulut saattavat karata pilviin. Julkisen pilven hyödyntäminen vaatii myös erilaista suhtautumista kuluihin, kun pääomaa ei tarvitse varata omaan laitteistoon.
Pulvipulssi_webscale
17. huhtikuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset julkipilvimarkkinoilta suoraan asiantuntijoiltamme. Tutustu SST-kehykseen, joka helpottaa full stack -sovellusten rakentamista omalle infrastruktuurille. Se tarjoaa selkeän ja abstraktoidun tavan määritellä koko sovelluksen rakenne.
Max Niskanen, Webscale Head of Sales
8. huhtikuuta 2025
Webscalen myyntitiimi vahvistuu, kun Max Niskanen liittyi joukkoomme Head of Sales -roolissa. Max tuo mukanaan yli kymmenen vuoden kokemuksen IT-alan myynnistä ja liiketoimintajohdosta. Teknologian lisäksi Maxin intohimoihin kuuluvat hapanjuurileivonta, historia ja vaellukset luonnossa.
Pilvipulssi
20. maaliskuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset julkipilvimarkkinoilta suoraan asiantuntijoiltamme. Serverless Framework v3 on elinkaarensa päässä ja organisaatiot joutuvat nyt pohtimaan päivittävätkö seuraavaan versioon vai siirtävätkö softat kokonaan toiseen työkaluun.
Lisää kirjoituksia