Ravindra BagaleCourses & study guides English Track your progress

AWS CDK म्हणजे काय? TypeScript आणि Python मध्ये Cloud Development Kit

CloudFormation YAML = HTML मध्ये कादंबरी. AWS CDK = TypeScript/Python ने तो template *generate* — loops, types, editor मदत, मग synth.

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

  • CDK CloudFormation शेजारी का
  • App, Stack, Construct
  • synth/diff/deploy/destroy
  • CDK vs Terraform vs YAML
  • Lab, errors, FAQ, interview

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

हे का लागतं?

Mumbai team: प्रत्येक microservice साठी 800-line YAML. Typo = prod break. CDK construct = typed Factory.

हे काय आहे?

AWS CDK: TypeScript/Python/... मध्ये constructs. synth = CloudFormation; deploy = ship. L2 = defaults; L3 = patterns.

CDK pathConstructs लिहाcdk synthCloudFormationcdk deploy → AWS
Diffs वाचायला CloudFormation अजून लागतं.

2. App, Stack, Construct

Levelअर्थExample
AppRoot; stacksbin/app.ts
Stackएक CFN unitStagingApiStack
Construct L11:1 CFNCfnBucket
Construct L2Curated helpers3.Bucket
Construct L3Patternapi + lambda kit
# Python sketch
from aws_cdk import App, Stack, RemovalPolicy
from aws_cdk import aws_s3 as s3

class LogsStack(Stack):
    def __init__(self, scope, id, **kw):
        super().__init__(scope, id, **kw)
        s3.Bucket(self, "Logs",
                  versioned=True,
                  removal_policy=RemovalPolicy.DESTROY,
                  auto_delete_objects=True)

app = App()
LogsStack(app, "LabLogsStack")
app.synth()

3. CDK vs Terraform vs YAML

  • Raw YAML: verbose, कमी editor help.
  • CDK: टीम TS/Python + AWS वर असेल.
  • Terraform: multi-cloud + modules.
  • काही org: CDK आत, Terraform किनारी — दोन्ही चालते.

Ravindra Bagale's Tip

प्रत्येक cdk diff = prod ticket. Synth ≠ deploy.

4. Industries

  • Startups: microservice L3 patterns.
  • Enterprise: CDK Pipelines.
  • Data: Glue/S3 constructs.
  • Security: KMS+logging forced.
  • Agencies: private construct libs.

5. Mini lab: bucket stack

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

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

  1. Node + aws-cdk; sandbox configure.
  2. cdk init.
  3. Lab bucket + DESTROY.
  4. synth → diff → deploy.
  5. CFN console पाहा.

Cleanup (billing थांबवा)

  1. cdk destroy.
  2. Bootstrap delete — org allow असेल तरच.

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

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

Error / लक्षणFix
Bootstrapcdk bootstrap.
Asset failcdk.out clean; Docker.
HotswapProd IAM साठी नको.
DELETE_FAILEDBucket रिकामं करा.
Context मोठाPrune काळजीने.
CircularStacks तोडा.
Accountget-caller-identity.
IAM खुलाPolicies घट्ट.
Python libsvenv + pip.
Diff रिकामंStack id/env.

7. Troubleshooting checklist

  1. get-caller-identity
  2. cdk doctor
  3. cdk.out साफ + synth
  4. CFN events.
  5. Minimal stack compare.

8. FAQ

प्र. CFN बदली?

नाही — generate करतं.

प्र. TS किंवा Python?

टीम जे review करते.

प्र. Raw CFN?

L1 Cfn*.

प्र. सगळे stacks?

तुम्ही निवडता; pipelines stages.

प्र. Unit test?

assertions on template.

9. Interview Q&A

प्र. Construct?

Reusable block → CFN resources.

प्र. synth vs deploy?

synth = files; deploy = AWS.

प्र. L1 vs L2?

L1=1:1; L2=defaults.

प्र. Bootstrap का?

Toolkit assets + roles.

प्र. vs Terraform?

CDK=AWS languages; TF=HCL multi-cloud.

प्र. Snowflake?

Shared libs + pipelines.

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

Ravindra Bagale's Tip (EN)

If you cannot read the synth diff, you cannot own the outage.

Ravindra Bagale's Tip (MR)

synth diff वाचता येत नसेल तर outage own करता येणार नाही.

Tip (HI)

synth diff नहीं पढ़ सकते तो outage की ज़िम्मेदारी नहीं ले सकते।

घरी करून बघा

  1. Sandbox मध्ये एक bucket.
  2. cdk.out template शोधा.
  3. 3 YAML → L3 list.

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

  1. CDK = languages → CloudFormation.
  2. App→Stack→Constructs; synth→deploy.
  3. Account/region ला एकदा bootstrap.
  4. Diffs review; lab destroy.

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

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

उजळणी card: AWS CDK म्हणजे काय?. TS/Python मध्येच infra हवी. CDK code → CloudFormation → deploy. init → synth → deploy. cdk.out → live Lambda.
उजळणी card: AWS CDK म्हणजे काय? · PNG download करा · Card page उघडा
उजळणी card: Constructs L1 / L2 / L3. फक्त raw CFN = safety कमी. L1=Cfn; L2=helpers; L3=patterns. Labs = L2; missing flag = L1. L2 Function = fewer keys.
उजळणी card: Constructs L1 / L2 / L3 · PNG download करा · Card page उघडा
उजळणी card: Deploy आधी cdk diff. Diff शिवाय deploy = surprise replace. diff ≈ plan. CI + prod diff; abort DB replace. IAM widen → fix first.
उजळणी card: Deploy आधी cdk diff · PNG download करा · Card page उघडा
उजळणी card: Hotswap vs full deploy. प्रत्येक tweak ला full deploy = slow. hotswap = faster Lambda code path. Lab hotswap; prod full deploy. Code = fast; role = full.
उजळणी card: Hotswap vs full deploy · PNG download करा · Card page उघडा
उजळणी card: CDK vs Terraform. एकच stack वर दोन्ही = double state. CDK=AWS/CFN; TF=multi-cloud/state. एक stack = एक tool. AWS TS → CDK; multi-cloud → TF.
उजळणी card: CDK vs Terraform · PNG download करा · Card page उघडा
तुलना: AWS CDK vs Raw CloudFormation. AWS CDK: TS/Python constructs → CFN. Raw CloudFormation: हाताने YAML/JSON.
तुलना: AWS CDK vs Raw CloudFormation · PNG download करा · Card page उघडा
तुलना: L2 construct vs L1 (Cfn*) construct. L2 construct: Safe defaults असलेले helpers. L1 (Cfn*) construct: 1:1 CFN resources.
तुलना: L2 construct vs L1 (Cfn*) construct · PNG download करा · Card page उघडा
मुलाखत card: CDK कोणती problem सोडवते?. Language + constructs → CloudFormation. Loops/tests/reuse. Function + API Stack.
मुलाखत card: CDK कोणती problem सोडवते? · PNG download करा · Card page उघडा
मुलाखत card: synth vs deploy?. synth=templates; deploy=live. CI synth/diff first. Bad TS → fail at synth.
मुलाखत card: synth vs deploy? · PNG download करा · Card page उघडा
मुलाखत card: L1 कधी वापरायचे?. L2 मध्ये property नसेल तर. L2 first; document L1. New field → CfnFunction.
मुलाखत card: L1 कधी वापरायचे? · PNG download करा · Card page उघडा
मुलाखत card: CDK test कसे?. synth template assertions. CI fails on public bucket. toHaveResource example.
मुलाखत card: CDK test कसे? · PNG download करा · Card page उघडा

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

सराव Tasks

या scenario बद्दल

Amravati Agro Market हा अमरावती मधला शेती व्यवसाय आहे. Anjali Thakre त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं cdk.json app

का: App command हवा.

काय करायचं: cdk.json app: npx ts-node bin/app.ts.

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

सोपं CFN stacks दाखवा

का: CDK → CFN.

काय करायचं: ap-south-1 मधले CFN stacks.

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

सोपं Stack describe

का: cdk deploy नंतर outputs.

काय करायचं: amravatiagro-AppStack describe.

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

सोपं Stack delete

का: Lab stacks काढा.

काय करायचं: amravatiagro-AppStack delete.

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

सोपं CDK buckets

का: Bucket construct.

काय करायचं: सगळ्या S3 buckets.

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

सोपं Bootstrap stacks

का: CDKToolkit.

काय करायचं: एका region ला CDKToolkit नावाचे किती primary stacks?

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

सोपं CDK v2 major

का: आधुनिक v2.

काय करायचं: AWS CDK v2 चा major version number?

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

मध्यम cdk.context.json AZs

का: Context lookups.

काय करायचं: availability-zones: ap-south-1 → [ap-south-1a, ap-south-1b].

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

मध्यम Stack events

का: Failed deploy debug.

काय करायचं: amravatiagro-AppStack events.

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

मध्यम Stack resources

का: Constructs → ids.

काय करायचं: amravatiagro-AppStack resources.

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

मध्यम Pipeline stages

का: Dev मग Prod = 2.

काय करायचं: Dev मग Prod = किती stages?

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

मध्यम CFN Outputs

का: Bucket name expose.

काय करायचं: Outputs BucketName = Ref DataBucket.

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

मध्यम Stack tag Project

का: Tags resources वर.

काय करायचं: Tags: Project=learn.

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

मध्यम Role घ्या

का: CDK roles बनवतो.

काय करायचं: IAM role amravatiagro-AppRole.

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

मध्यम Lambda config

का: Function construct.

काय करायचं: amravatiagro-api function configuration.

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

अवघड CFN ला S3 manage

का: Deploy role.

काय करायचं: arn:aws:s3:::amravatiagro-* वर CreateBucket व DeleteBucket.

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