Kysy konsultilta: Miksi CDK-projekti tarvitsee yleensä bootstrapata?

3. tammikuuta 2024

Miksi CDK-projekti tarvitsee yleensä bootstrapata?

AWS Cloud Development Kit eli tuttavallisemmin CDK on AWS:n tarjoama framework resurssien ja infrastruktuurin provisiointiin useilla ohjelmointikielillä. Pellin alla CDK ajaa CloudFormationia ja toimii abstraktiokerroksena, jonka tarkoituksena on auttaa tekemään asioita hyvien käytäntöjen mukaisesti. Vaikka CDK abstraktoi joitakin kompastuskiviä piiloon, on syytä muistaa mahdollisuus kurkata mustan laatikon sisälle. CDK:lla provisioitavat resurssit syntyvät CloudFormation stackeina, joista näkee koodista generoidun CloudFormation templaten.


Matka koodista resurssiksi sisältää muitakin askelia, ja käytännössä kaikki ei-triviaalit CDK-projektit on tarpeen 'bootstrapata' mikä tarkoittaa CDK:n käyttämien riippuvuuksien ja resurssien luomista ympäristöön ennen itse sovelluksen resurssien pystyttämistä. Yksinkertaisimmillaan tämä tarkoittaa 'cdk bootstrap' komennon ajamista, joka perustaa ympäristöön 'CDKToolkit' nimisen CloudFormation-stackin näillä resursseilla.


Oletusasetuksillakin tehty bootstrap toimii testatessa, mutta templatea voi muokata haluamallaan tavalla ja ympäristön vaatimusten mukaan. Asioita ei tarvitse jättää maagisiksi, sillä käytössä olevan templaten näkee stackista, ja ennen luomista templatea voidaan tarkastella komentamalla 'cdk bootstrap --show-template'. Oletuksena esimerkiksi CloudFormationia ajetaan varsin laajoilla oikeuksilla, ja bootstrap-resursseille syntyvä tunniste ei ole erityisen kuvaava. Muita mahdollisesti mielenkiintoisia arvoja on useampi säädettäväksi.


CDK on myös jatkuvasti kehittyvä työkalu, ja bootstrap-template kehittyy sen mukana. Aiemmin bootstrapattu ympäristö voi siis erota joiltakin osin myöhemmin bootstrapatusta ympäristöstä. Bootstrap-templaten sisällyttäminen versionhallintaan auttaa näiden eroavaisuuksien löytämisessä ja helpottaa päivittämistä eteenpäin. CDK-projektien kanssa työskennellessä on hyvä muistaa tarkastaa mahdolliset erot CDK v1 ja CDK v2 välillä. Esimerkiksi CDK v2 tukee ainoastaan modernia bootstrap-templatea, kun CDK v1 tukee sekä modernia että vanhempaa mallia.


Hyvin suunniteltu ja tarpeen mukainen bootstrappaus osana CDK-projektia mahdollistaa asioiden tekemisen hyvien infrastructure-as-code -käytäntöjen mukaisesti sekä toistettavien ja ennakoitavissa olevien ympäristöjen pystyttämisen uudelleen helposti nyt, tulevaisuudessa ja tekijästä riippumatta.

A black and white photo of a bald man wearing a black shirt.

Teemu Ala-Järvenpää

Cloud Specialist

Viimeisimmät kirjoitukset

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.
21. helmikuuta 2025
Pilvipalvelut mahdollistavat niin nopeamman innovoinnin, resurssien tehokkaamman hallinnan kuin joustavammat liiketoimintamallitkin. Jotta pilven tarjoamat liiketoimintaedut pystytään hyödyntämään, tarvitaan pilven käyttöön kuitenkin suunnitelmallisuutta ja järjestelmällisyyttä.
Lisää kirjoituksia