Ravindra BagaleCourses & study guides English Track your progress

Terraform on AWS: Infrastructure as Code सोप्या भाषेत

40 screens क्लिक करून VPC = recipe न लिहिता स्वयंपाक. Terraform = AWS ची लिहिलेली recipe: plan = shopping list, apply = cook, state = काय अस्तित्वात आहे.

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

  • IaC click-ops पेक्षा का
  • Provider/resource/plan/apply/destroy
  • S3 state + DynamoDB lock
  • Modules, workspaces, guardrails
  • Lab, errors, FAQ, interview

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

हे का लागतं?

Pune SaaS: staging हाताने — drift. एक SG चूक = रात्री outage. Terraform ने staging = prod shape, Git review.

हे काय आहे?

Terraform = IaC. HCL मध्ये AWS resources. plan = diff; apply = वास्तविक; state = IDs.

Dev loop.tf लिहाterraform planReview + PRterraform apply
Prod वर unreviewed apply नको.

2. मुख्य शब्द

Wordअर्थPicture
ProviderAWSशी बोलणारं pluginTranslator
Resourceएक AWS objectMenu वरील एक dish
Stateखऱ्या IDs चा JSON mapInventory पुस्तक
PlanDry-run diffMarket आधी यादी
ModuleReusable .tf folderShared recipe
BackendState कुठेS3 मधलं shared inventory

3. Remote state (लवकर करा)

हे का लागतं?

Laptop वर local state = दोघांचं काम एकमेकांना मोडतो.

हे काय आहे?

State S3 (versioning + encrypt) मध्ये. Lock साठी DynamoDB.

terraform {
  required_providers {
    aws = { source = "hashicorp/aws", version = "~> 5.0" }
  }
  backend "s3" {
    bucket         = "myorg-tfstate-ap-south-1"
    key            = "app/staging/terraform.tfstate"
    region         = "ap-south-1"
    dynamodb_table = "myorg-tf-locks"
    encrypt        = true
  }
}

provider "aws" { region = "ap-south-1" }

resource "aws_s3_bucket" "logs" {
  bucket = "myorg-staging-logs-example"
}

4. Industries

  • Banks: accounts + VPC baseline modules.
  • Startups: एक module, वेगळे tfvars.
  • Agencies: private module registry.
  • Data: Glue/S3 lakes in code.
  • Platform: PR plan, merge apply.

5. Terraform vs CDK vs Console

ToolStrengthWatch-out
Consoleशिकणं, emergencyRepeat न येणार
CloudFormation/CDKAWS-nativeफक्त AWS zone
TerraformMulti-cloud, modulesState = खजिना

Ravindra Bagale's Tip

State = password file: encrypt, lock, IAM, commit नको.

6. Mini lab: bucket with plan/apply

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

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

  1. Terraform install; sandbox CLI profile.
  2. main.tf: provider + bucket.
  3. init && plan — प्रत्येक ओळ.
  4. apply — फक्त sandbox auto-approve.
  5. Tag बदला; plan = in-place update.

Cleanup (billing थांबवा)

  1. sandbox destroy.
  2. Console मध्ये confirm.

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

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

Error / लक्षणFix
State lockDynamoDB lock तपासा.
आधीच अस्तित्वातImport किंवा rename.
CredentialsProfile/region/SSO.
DriftConsole click; refresh काळजीने.
Force-unlockखात्री करूनच.
State Git मध्येRotate + S3 backend.
Prod destructivePlan review + IAM.
Module floatVersion pin.
Index shiftStable map keys.
Backend AccessDenieds3+dynamodb IAM.

8. Troubleshooting checklist

  1. version + PROFILE.
  2. backend बदल → reconfigure.
  3. Apply आधी plan वाचा.
  4. state list.
  5. शंका असेल तर import.

9. FAQ

प्र. मोफत?

CLI मोफत; Cloud optional.

प्र. जुने clicks?

import.

प्र. TF किंवा CDK?

Multi-cloud=TF; TS AWS teams=CDK.

प्र. Secrets?

SSM/Secrets Manager — hardcode नको.

प्र. Workspaces?

हलके; अनेकदा वेगळी state keys.

10. Interview Q&A

प्र. plan?

Diff दाखवतो — AWS बदलत नाही.

प्र. Remote state का?

Share + lock.

प्र. State risk?

Sensitive — secrets सारखं.

प्र. Module?

Reuse reviewed blocks.

प्र. Prod accidents?

PR plan + approvals + accounts.

प्र. Drift?

CI plans.

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

Ravindra Bagale's Tip (EN)

Plan is a document. If you cannot explain a destroy line, do not apply.

Ravindra Bagale's Tip (MR)

Plan = document. Destroy ओळ समजत नसेल तर apply नको.

Tip (HI)

Plan एक दस्तावेज़ है — destroy लाइन समझ न आए तो apply मत करो।

घरी करून बघा

  1. एक bucket + एक tag main.tf.
  2. S3 backend + lock काढा.
  3. गेल्या आठवड्याचे clicks → code.

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

  1. Terraform = HCL; plan → apply.
  2. Remote state + lock = teams साठी आवश्यक.
  3. Versions pin; state commit नको.
  4. Destroy = incident सारखी review.

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

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

उजळणी card: AWS वर Terraform म्हणजे काय?. Console clicks = slow + विसरणे सोपे. .tf → plan → apply. install → creds → init/plan/apply. + instance → state id.
उजळणी card: AWS वर Terraform म्हणजे काय? · PNG download करा · Card page उघडा
उजळणी card: Remote state (S3 + lock). एकत्र apply + local state = corruption. State = S3; lock = DynamoDB/S3. backend s3 → init -migrate-state. Lock = no race.
उजळणी card: Remote state (S3 + lock) · PNG download करा · Card page उघडा
उजळणी card: नेहमी plan वाचा. Blind apply = DB destroy होऊ शकते. plan: + / ~ / - ; destroy तपासा. CI plan; prod destroy = human check. RDS -/ + → stop.
उजळणी card: नेहमी plan वाचा · PNG download करा · Card page उघडा
उजळणी card: Modules = reuse. Copy-paste VPC = drift. Module = folder + variables/outputs. modules/vpc → app-a/b. एक fix → सर्व apps.
उजळणी card: Modules = reuse · PNG download करा · Card page उघडा
उजळणी card: Tags आणि cost. Tags नाहीत = bill समजत नाही. default_tags + resource tags. Provider default_tags. Group-by Environment.
उजळणी card: Tags आणि cost · PNG download करा · Card page उघडा
तुलना: Terraform vs CloudFormation. Terraform: Multi-cloud HCL, modules/state. CloudFormation: AWS-native stacks, change sets, drift.
तुलना: Terraform vs CloudFormation · PNG download करा · Card page उघडा
तुलना: Local state vs Remote state (S3). Local state: Laptop वर tfstate — race/loss. Remote state (S3): S3 shared state + lock.
तुलना: Local state vs Remote state (S3) · PNG download करा · Card page उघडा
मुलाखत card: Remote state का?. Share state + lock = no race. Local state = drift/duplicates. S3 + DynamoDB lock.
मुलाखत card: Remote state का? · PNG download करा · Card page उघडा
मुलाखत card: Accidental destroy कसे टाळाल?. plan + prevent_destroy + review. न समजलेला plan apply नका. RDS -/ + → stop.
मुलाखत card: Accidental destroy कसे टाळाल? · PNG download करा · Card page उघडा
मुलाखत card: Terraform मध्ये secrets कुठे?. Secrets Manager/SSM; sensitive; lock state. State encrypt + IAM. Secret version ≠ git tfvars.
मुलाखत card: Terraform मध्ये secrets कुठे? · PNG download करा · Card page उघडा
मुलाखत card: Existing resources कसे घ्याल?. import → state, no recreate. Config first; then import. Existing VPC → import.
मुलाखत card: Existing resources कसे घ्याल? · 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

सोपं terraform init

का: Providers download.

काय करायचं: Project folder मध्ये terraform init.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं terraform plan

का: Changes preview.

काय करायचं: terraform plan चालवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं terraform validate

का: Syntax errors.

काय करायचं: Terraform configuration validate.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं terraform fmt

का: Style.

काय करायचं: Terraform files format.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Apply नंतर buckets

का: Terraform ने काय केलं.

काय करायचं: eu-west-2 मधली S3 buckets.

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

सोपं sts get-caller-identity

का: कोणता account.

काय करायचं: सध्याच्या AWS credentials ची identity.

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

सोपं init नंतर local state files

का: terraform.tfstate.

काय करायचं: साध्या project ला terraform.tfstate नावाच्या किती primary files?

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

सोपं HA साठी AZ संख्या

का: Multi-AZ 2+.

काय करायचं: HA साठी किमान AZs?

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

मध्यम terraform apply auto-approve

का: CI मध्ये prompt नको.

काय करायचं: auto-approve सह apply.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम terraform destroy

का: Lab काढा.

काय करायचं: auto-approve सह destroy.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम terraform output

का: Outputs वाचा.

काय करायचं: Terraform outputs दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम terraform state list

का: Tracked resources.

काय करायचं: State मधल्या resources.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Default tags JSON

का: प्रत्येक resource tag.

काय करायचं: default_tags Project=learn Env=lab.

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

मध्यम plan success exit

का: Exit codes.

काय करायचं: terraform plan यशस्वी exit code?

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

मध्यम CI role: state bucket

का: CI ला state read.

काय करायचं: arn:aws:s3:::londonlegal-tfstate वर s3:ListBucket.

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

अवघड Remote state backend JSON

का: S3 मध्ये state.

काय करायचं: backend s3 bucket londonlegal-tfstate key app/terraform.tfstate region eu-west-2.

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