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.
2. App, Stack, Construct
| Level | अर्थ | Example |
|---|---|---|
| App | Root; stacks | bin/app.ts |
| Stack | एक CFN unit | StagingApiStack |
| Construct L1 | 1:1 CFN | CfnBucket |
| Construct L2 | Curated helper | s3.Bucket |
| Construct L3 | Pattern | api + 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)
- Node + aws-cdk; sandbox configure.
- cdk init.
- Lab bucket + DESTROY.
- synth → diff → deploy.
- CFN console पाहा.
Cleanup (billing थांबवा)
- cdk destroy.
- Bootstrap delete — org allow असेल तरच.
6. सामान्य errors आणि fixes
प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.
| Error / लक्षण | Fix |
|---|---|
| Bootstrap | cdk bootstrap. |
| Asset fail | cdk.out clean; Docker. |
| Hotswap | Prod IAM साठी नको. |
| DELETE_FAILED | Bucket रिकामं करा. |
| Context मोठा | Prune काळजीने. |
| Circular | Stacks तोडा. |
| Account | get-caller-identity. |
| IAM खुला | Policies घट्ट. |
| Python libs | venv + pip. |
| Diff रिकामं | Stack id/env. |
7. Troubleshooting checklist
- get-caller-identity
- cdk doctor
- cdk.out साफ + synth
- CFN events.
- 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 की ज़िम्मेदारी नहीं ले सकते।
घरी करून बघा
- Sandbox मध्ये एक bucket.
- cdk.out template शोधा.
- 3 YAML → L3 list.
थोडक्यात सांगायचं तर
- CDK = languages → CloudFormation.
- App→Stack→Constructs; synth→deploy.
- Account/region ला एकदा bootstrap.
- Diffs review; lab destroy.
उजळणी, मुलाखत आणि तुलना cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.











अजून cards: Ravi Sir's Cards.
सराव Tasks
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.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
सोपं CFN stacks दाखवा
का: CDK → CFN.
काय करायचं: ap-south-1 मधले CFN stacks.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Stack describe
का: cdk deploy नंतर outputs.
काय करायचं: amravatiagro-AppStack describe.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Stack delete
का: Lab stacks काढा.
काय करायचं: amravatiagro-AppStack delete.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं CDK buckets
का: Bucket construct.
काय करायचं: सगळ्या S3 buckets.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Bootstrap stacks
का: CDKToolkit.
काय करायचं: एका region ला CDKToolkit नावाचे किती primary stacks?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं CDK v2 major
का: आधुनिक v2.
काय करायचं: AWS CDK v2 चा major version number?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम cdk.context.json AZs
का: Context lookups.
काय करायचं: availability-zones: ap-south-1 → [ap-south-1a, ap-south-1b].
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
मध्यम Stack events
का: Failed deploy debug.
काय करायचं: amravatiagro-AppStack events.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Stack resources
का: Constructs → ids.
काय करायचं: amravatiagro-AppStack resources.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Pipeline stages
का: Dev मग Prod = 2.
काय करायचं: Dev मग Prod = किती stages?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम CFN Outputs
का: Bucket name expose.
काय करायचं: Outputs BucketName = Ref DataBucket.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
मध्यम Stack tag Project
का: Tags resources वर.
काय करायचं: Tags: Project=learn.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
मध्यम Role घ्या
का: CDK roles बनवतो.
काय करायचं: IAM role amravatiagro-AppRole.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Lambda config
का: Function construct.
काय करायचं: amravatiagro-api function configuration.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड CFN ला S3 manage
का: Deploy role.
काय करायचं: arn:aws:s3:::amravatiagro-* वर CreateBucket व DeleteBucket.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.