Anatomy task
Dokumentacija template anatomy
CloudFormation Template je deklaracija AWS resursa koje prave STACK. Template je spremljen kao tekstualni fajl u JSON notaciji ili YAML formatu. Obzirom da su to samo tekstualni fajlovi, mozemo ih kreirati, editovati u bilo kojem tekstualnom editoru i menadžovati ih u nasem source control sistemu sa ostatkom naseg source koda.
AWSTemplateFormatVersion: 'version date' (optional) # version of the CloudFormation template. Only accepted value is '2010-09-09'
Description: 'String' (opcionalno) # tekstualni opis CFormation template (u koju svrhu se koristi template)
Metadata: 'template metadata' (opcionalno) # objekti koji pruzaju dodatne informacija o template-u
Parameters: 'set of parameters' (opcionalno) # set ulaznih parametara (npr. naziv bucketa) koristenih za customize template-a (predloška)
Rules: 'set pravila' (opcionalno) # a set pravila na osnovu kojih validiramo parametre koji ce biti pruzeni od strane deploymenta/update-a
Mappings: 'set of mappings' (opcionalno) # a mapping of keys and associated values
Conditions: 'set of conditions' (opcionalno) # conditions that control whether certain resources are created
Transform: 'set transformacija' (opcionalno) # za serverless app
Resources: 'set resoursa' (OBAVEZNO) # KOMPONENTE (EC2, S3 BUCKET, SG,ALB) NASE INFRASTRUKTURE
Hooks: 'set of hooks' (opcionalno) # Koristeni za ECS Blue/Green Deployments
Outputs: 'set outputa' (opcionalno) # vrijednosti koje su vracene kada god zelimo da vidimo stack opcije(properties)
Outputs znaju biti korisni u zavisnosti od toga koju vrstu template-a kreiramo i u koje svrhe.
Najbitnija opcija koju MORAMO DA IMAMO u kreiranju template-a kako bi kreirali stack, tj. prave resurse na AWS-u je:
Resources: 'set resursa' (OBAVEZNO) # komponente(serveri,security grupe,iam policy itd) koji cemo koristiti na svojoj infrastrukturi
STACK - KONKRETNI RESURSI KREIRANI U AWS-u CLOUDU (EC2,IAM,S3..)
Ispod se nalazi dijagram koji prikazuje kako iz jednog napisanog JSON fajla mozemo da uradimo upload na CloudFormation (alat za infrastrukturu kao kod) i da kreiramo Stack tj. konkretne resurse automatski bez manuelnog podesavanja svakog resursa od EC2 instance do bucketa na S3 servisu.
Mozemo kreirati preko 100-tinu stack-ova koristeci CFormation, a stack sadrzi kolekciju AWS servisa koje mozemo da menadžujemo (upravljamo) kao jednom jedinicom. SVI RESURSI UNUTAR AWS STACK-A SU DEFINISANI TEMPLATE-om.
BRISANJE RESURSA - nikada ne raditi manuelno!
Kada zelimo da izbrisemo resurse, to radimo tako da idemo na template pa izbrisemo template-a koji zelimo, na taj nacin automatski brisemo i sve resurse koje smo kreirali kroz stack.
AWS CloudFormation ce da KREIRA, AZURIRA (UPDATE) I IZBRISE U POTPUNOSTI STACK:
- Ako stack ne moze da bude azuriran ili kreiran u potpunosti, onda ce AWS CLoudFormation da uradi ROLL BACK, prikaze greske i izbrise sve resurse koji su se eventualno kreirali pri pokusaju kreiranja i prije greske.
- Ako resurs ne moze da bude izbrisan, svi prethodni resursi se zadrzavaju dok cijeli stack ne bude uspjesno izbrisan.
Jedan od incijalni poslova Stack-a je da kreira FIZICKE RESURSE BAZIRANE NA LOGICKIM RESURSIMA KOJI SU DEFINISANI UNUTAR TEMPLATE-a.
Za svaki logicki resurs (definisan unutar template-a), kada se Stack kreira, FIZICKI RESURS (EC2,S3 ...) je takodjer kreiran automatski (ukoliko nema template neku gresku).
Linkovi na povezane postove za CloudFormation:
- Jednostavni CFN template -drugi dio
Dodatna dokumentacija
- AWS Dokumentacija
- Template reference
- Security in AWS CFormation
- Najbolje prakse u CF
- Link na resurse i kako da ih koristimo u CloudFormation: AWS resource and property types reference
- YouTube reInvent AWS Deep Dive on AWS CloudFormation-2017
Top comments (0)