AWS Cloud Development Kit (CDK) on Infrastructure as Code (IaC) -työkalu, joka mahdollistaa AWS-infrastruktuurin määrittämisen koodina. Koodista syntetisoidaan CloudFormation-template, joka lopulta viedään (deploy) pilviympäristöön. Kaiken voi tehdä CDK CLI -työkalulla ilman, että templatea tarvitsee edes vilkaista, joten vaikka CloudFormation-syntaksin tunteminen voi olla hyödyllistä, se ei ole CDK:n käytössä välttämätöntä.
Jotta CDK:n kanssa pääsee alkuun, tarvitaan siis tietenkin ohjelmointikielen osaamista. CDK tukee useita ohjelmointikieliä: TypeScript, JavaScript, Python, Java, C# ja Go. TypeScript on kuitenkin CDK:n natiivikieli, joten sen käyttö on kaikkein luontevinta. Koska CDK:lla luodaan AWS-infraa, on syytä tuntea vähintään niiden AWS-infraresurssien luonteenpiirteitä, joita ollaan rakentamassa. CDK tarjoaa eri tasoisia rakennuspalikoita (kutsutaan CDK:ssa construct:eiksi) L1, L2 ja L3, joista L3-tasoon kuuluu kaikkein ylemmän tason valmiita AWS-pilviratkaisuja, jotka voivat koostua useista AWS-resursseista toistensa kanssa yhteen konfiguroituina. CDK:lla voi siis luoda L3:n avulla pilviratkaisun tietämättä tarkkaan mitä resursseja pellin alla syntyy ja lopulta päätyy pilveen. Syntyvistä resursseista on kuitenkin hyvä tietää jotakin tietoturvan ja kustannusten hallinnan tähden.
CDK:sta on hyvä tuntea sen keskeisiä käsitteistä ainakin App ja Stack, jotka nekin ovat pohjimmiltaan constructeja. App on sovelluksen ylätason juurielementti, jonka alle kaikki muu rakennetaan. Stack on puolestaan constructi, jota käsitellään aina kokonaisuutena: se viedään pilveen kerralla, se päivitetään ja poistetaan myös kerralla. App voi siis sisältää useita stackeja, mutta koko App:ia ei tarvitse kerralla operoida; yhtä stackia pitää.
Yksi IaC-työkalujen, kuten CDK:n eduista on saada infrastruktuuri versionhallintaan. Näin ollen gitin ja jonkin git-pilviratkaisun, kuten GitHubin tuntemisesta on hyötyä CDK:ta aloittelevalle.
Kokonaisuutena CDK sisältää paljon enemmän konsepteja, kuin mitä tässä ehdimme käsitellä. Kunhan tarkkailet AWS-tilisi kustannuksia ja tietoturvaa, voit lähteä oppimaan CDK:sta lisää kokeilemalla.
Yksi asia vielä - vaikka CloudFormation-syntaksin tunteminen ei ollut CDK:ta käyttääkseen välttämätöntä, tutustuthan silti CloudFormation:iin AWS-konsolissa. Näet sieltä CDK:n pilveen viemät stackit ja infran kunhan olet sillä AWS-regionilla, johon CDK:lla olet infraa vienyt.
Pidä hauskaa CDK:n tutustumisen parissa!
Johan Stenroth
Consultant