Kysy konsultilta: Terraform vs. CDK


Antti Elonheimo | 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.

Antti Elonheimo
Senior Consultant

Pilvi haltuun

Huolehdimme pilvestä kokonaisuutena, jotta asiakkaamme voivat keskittyä kasvuun, kehitykseen ja asiakkaisiinsa.

Varmistamme, että digitaaliset palvelut toimivat luotettavasti ja tukevat liiketoimintaa kaikissa tilanteissa.

Uusimmat kirjoitukset

6. lokakuuta 2026
Webscale Cloud Morning Pilviriskit hallintaan Tiistai 27.10.2026 klo 8.30 Pilven suurimmat riskit eivät aina näy päällepäin. Liian laajat käyttöoikeudet, yhden avainhenkilön varaan jäänyt osaaminen, puutteelliset varmistukset tai harjoittelematon palautuminen voivat tuntua pieniltä asioilta, kunnes jokin niistä häiritsee liiketoimintaa. Mitkä pilviympäristön riskit ovat aidosti merkittäviä liiketoiminnalle? Mistä organisaatio vastaa itse ja mistä pilvipalveluntarjoaja? Ja miten tunnistaa riippuvuudet ja haavoittuvuudet ennen kuin niistä syntyy ongelma? Webscale Cloud Morning -sarjan toisessa webinaarissa käymme läpi käytännönläheisesti: millaiset pilviympäristön riskit voivat vaikuttaa liiketoiminnan jatkuvuuteen missä vastuu pilvipalveluntarjoajan ja oman organisaation välillä kulkee miten tunnistaa teknologiaan, ihmisiin ja toimintamalleihin liittyviä kriittisiä riippuvuuksia miten varautua häiriöihin ja varmistaa, että palautuminen toimii myös käytännössä millä keinoilla pilven riskejä voidaan tunnistaa ja pitää hallinnassa 30 minuutin aamustartti Jos pilvipalvelut ovat liiketoiminnallenne kriittisiä, mutta riskien todellinen taso ei ole täysin kirkas, tämä puolituntinen kannattaa käyttää.
IT- ja digijohtaja
21. syyskuuta 2026
Tekoälyn kehitys, uudet regulaatiot ja muuttunut turvallisuusympäristö nostavat teknologiavalintojen merkitystä. Pilvi- ja infrastruktuuripäätöksissä on huomioitava tämän päivän tarpeiden lisäksi jatkuvuus, riippuvuudet ja tulevaisuuden liikkumavara.
Tekijä Teemu Peräkylä • 19. elokuuta 2026
AI-avusteinen ohjelmistokehitys nopeuttaa kehitystä, mutta tuo mukanaan uusia tietoturvariskejä. CNAPP auttaa tunnistamaan olennaiset riskit ja turvaamaan nopeasti muuttuvat pilviympäristöt.