Ravindra BagaleCourses & study guides English Track your progress

AWS CloudFormation Deep Dive: Infrastructure as Code सोप्या भाषेत

Terraform/CDK प्रसिद्ध, पण अनेक enterprises रोज CloudFormation YAML/JSON. CFN = native IaC: resources declare → stack → change set production आधी दाखवते.

या chapter मध्ये तुम्ही काय शिकाल

  • Native IaC का
  • Template/stack/change set/drift
  • Parameters/mappings/outputs/nested
  • CFN vs CDK vs Terraform
  • Lab, errors, FAQ, interview

1. आधी रोजचं उदाहरण

मुंबई bank: 3 accounts मध्ये समान VPC. Console click = drift. एक CFN template (+ StackSets) CIDR/tags/flow logs align — Git मध्ये audit.

2. CloudFormation deep का?

हे का लागतं?

Beginner = create stack. Pro = change sets, drift, nested, custom resources, rollback. CDK team असली तरी interviews CFN विचारतात.

3. Core pieces काय?

हे काय आहे?

Pieceअर्थ
TemplateResources ची YAML/JSON
StackTemplate पासून live resources
Change setUpdate preview
DriftTemplate पासून वेगळं
NestedChild stacks
Template → Change set → Update → MonitorSafe infra change
Preview नंतर apply

4. सुरक्षित कसं काम करायचं

कसं करायचं (step by step)

  1. Templates Git मध्ये; फक्त console edit नको.
  2. Prod = change set.
  3. Parameters=env; Mappings=AMI.
  4. Outputs/nested for refs.
  5. Prod termination protection.
  6. Critical stacks: weekly drift.
AWSTemplateFormatVersion: '2010-09-09'
Description: Tiny S3 lab bucket
Parameters:
  ProjectName:
    Type: String
    Default: cfn-lab
Resources:
  LabBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
Outputs:
  BucketName:
    Value: !Ref LabBucket

5. CFN vs CDK vs Terraform

Toolकधी
CFNNative/StackSets/YAML standard
CDKTS/Python → CFN
TerraformMulti-cloud / TF estate

6. Industries

  • Banks: approved modules
  • SaaS: nested per tenant
  • Gov: CFN + pipeline gates
  • Startups: CFN → CDK

7. Lab: encrypted bucket stack

Org block नसेल तर ap-south-1 (Mumbai). आधी budget alert.

कसं करायचं (step by step)

  1. lab.yaml save.
  2. Create stack.
  3. ap-south-1 + parameter.
  4. Output BucketName.
  5. Change set: tag.

Cleanup (billing थांबवा)

  1. Stack delete.
  2. Prefix buckets check.

8. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
Change set skipAlways + review.
Circular depSplit/DependsOn.
Hard-coded accountPseudo params.
DELETE_FAILEDEmpty deps.
Drift ignoreWeekly drift.
Nested paramsDocument contracts.
IAM starScope.
No rollback triggerAdd alarms.
Console editReconcile.
YAML indentcfn-lint.

9. Troubleshooting checklist

  1. Events tab.
  2. cfn-lint.
  3. Quotas.
  4. PassRole.
  5. Identical template.
  6. Unique exports.

10. FAQ

प्र. CFN मोफत?

Service free; resources billed.

प्र. सर्व services?

बहुतेक; gaps = custom/CDK.

प्र. YAML/JSON?

YAML humans; JSON generators.

प्र. StackSets?

Many accounts/regions.

प्र. Replace TF?

Module by module.

11. Interview Q&A

प्र. Stack?

Deployed template instance.

प्र. Change set?

Update preview.

प्र. Drift?

Manual vs template.

प्र. Nested vs cross?

Own children vs export/import.

प्र. Rollback?

Prior good state.

प्र. State?

CFN AWS-managed; TF yours.

12. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

If you cannot explain the change set in one sentence, do not execute it.

Ravindra Bagale's Tip (MR)

Change set एक वाक्यात समजत नसेल तर execute नका.

Tip (HI)

Change set एक वाक्य में नहीं समझा तो execute मत करना।

घरी करून बघा

  1. Sample वर cfn-lint.
  2. 3 boxes.
  3. Console-only edit नको अशा 3.

थोडक्यात सांगायचं तर

  1. CFN = native IaC.
  2. Change sets + drift.
  3. Params/maps/outputs.
  4. Tool = org constraints.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: CloudFormation deep basics. Console drift; stacks हवे. Templates → stacks. YAML → stack → events → change sets. Nested VPC → three apps.
उजळणी card: CloudFormation deep basics · PNG download करा · Card page उघडा
उजळणी card: Update आधी change sets. Blind update = DB replace. Change set = preview; check Replace. Create → inspect → execute. Logical ID rename → stop.
उजळणी card: Update आधी change sets · PNG download करा · Card page उघडा
उजळणी card: Detect drift. Console change = drift. Template vs live = drift. Weekly detect; fix via template. SSH open → MODIFIED.
उजळणी card: Detect drift · PNG download करा · Card page उघडा
उजळणी card: Parameters, mappings, outputs. Hardcode = multi-env fail. Params / mappings / outputs. InstanceType + AMI map + export VPC. Same template; different params.
उजळणी card: Parameters, mappings, outputs · PNG download करा · Card page उघडा
उजळणी card: Rollback आणि retention. Failed update = mid-way risk. Rollback default; retain data. Retain RDS; deny delete policy. EC2 rollback; RDS retained.
उजळणी card: Rollback आणि retention · PNG download करा · Card page उघडा
तुलना: Change set vs Direct stack update. Change set: Execute आधी adds/replaces दाखवतो. Direct stack update: लगेच apply.
तुलना: Change set vs Direct stack update · PNG download करा · Card page उघडा
तुलना: CloudFormation vs Terraform. CloudFormation: Stacks/drift/stack policies. Terraform: Plan/apply + multi-cloud.
तुलना: CloudFormation vs Terraform · PNG download करा · Card page उघडा
मुलाखत card: Change sets का?. Preview Replace/Destroy. Prod DB/IAM वर आवश्यक. Delete+Add → stop.
मुलाखत card: Change sets का? · PNG download करा · Card page उघडा
मुलाखत card: Drift म्हणजे?. Live ≠ template. Regular detect; fix in IaC. SSH rule → MODIFIED.
मुलाखत card: Drift म्हणजे? · PNG download करा · Card page उघडा
मुलाखत card: Data stores कसे वाचवाल?. Retain + stack policy + change sets. Hope ≠ backup. RDS Retain.
मुलाखत card: Data stores कसे वाचवाल? · PNG download करा · Card page उघडा
मुलाखत card: Nested stacks का?. Modules + smaller blast radius. Partial updates. VPC nested → 3 apps.
मुलाखत card: Nested stacks का? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

London Legal LLP हा लंडन मधला कायदा सेवा व्यवसाय आहे. Oliver Hughes त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे GBP मध्ये मोजले जातात आणि AWS resources eu-west-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Stacks दाखवा

का: Deploy काय.

काय करायचं: eu-west-2 stacks.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Stack describe

का: Status/outputs.

काय करायचं: londonlegal-web describe.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Validate

का: YAML errors.

काय करायचं: file://tpl.yaml validate.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं CFN fee

का: Service free.

काय करायचं: CFN control plane fee? 0.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Min AZs

का: Reliability.

काय करायचं: Prod किमान AZs?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Lint

का: cfn-lint.

काय करायचं: Deploy आधी lint तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Stack events

का: CREATE_FAILED debug.

काय करायचं: londonlegal-web events.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Drift detect

का: Console edits.

काय करायचं: londonlegal-web drift.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Stack delete

का: Lab cleanup.

काय करायचं: londonlegal-lab delete.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Describe only

का: Read-only.

काय करायचं: DescribeStacks Resource *.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Parameter JSON

का: Env parameters.

काय करायचं: Parameters ProjectName=learn.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम Retain

का: Data keep.

काय करायचं: Retain ठेवते तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Change set

का: Prod preview.

काय करायचं: londonlegal-web change set cs1 file://tpl.yaml.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Change set execute

का: Review नंतर apply.

काय करायचं: londonlegal-web cs1 execute.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड CFN PassRole

का: PassRole काळजी.

काय करायचं: arn:aws:iam::114543297314:role/londonlegal-cfn PassRole.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड Outputs JSON

का: Bucket export.

काय करायचं: Outputs BucketName=my-lab-bucket.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.