☎️ धडा 16 — Route 53: शाळेची phonebook (DNS)
📍 तुम्ही इथे आहात: 20 पैकी धडा 16 · मागील: lesson-15-load-balancers · पुढील: lesson-17-rds
📦 या ब्रँचमध्ये काय आहे
धडे 01–16. प्रवासाचा शेवटचा टप्पा: एक नाव तुमच्या reception desk पर्यंत कसे पोहोचते.
🧒 5 वर्षांच्या मुलाला समजावल्यासारखे
कोणी "172.31.44.12 ला फोन कर" म्हणत नाही — ते म्हणतात "शाळेला फोन कर." नावांचे आकड्यांमध्ये रूपांतर करणारी गोष्ट म्हणजे phonebook: DNS. AWS ची phonebook service म्हणजे Route 53 ☎️.
- Hosted zone 📖 म्हणजे phonebook मधले तुमचे पान:
school.comखालचे सगळे काही. - Records म्हणजे नोंदी:
- A — नाव → आकडा (IP address), साधे आणि सरळ.
- CNAME — "दुसरी नोंद पाहा":
www→school.com. - ALIAS — AWS ची युक्ती: नाव → स्वतः reception desk (ALB, S3 site, CloudFront), कोणताही आकडा न लिहिता — कारण reception चे आकडे बदलतात! Phonebook ला ते नेहमीच माहीत असते.
- TTL ⏰ म्हणजे "पुन्हा विचारण्यापूर्वी हा आकडा किती वेळ लक्षात ठेवू शकता." लांब TTL = कमी प्रश्न पण बदल हळू; छोटा TTL = उलट. (Cutovers: हलवण्याच्या एक दिवस आधी TTL कमी करा.)
- Health-checked failover 🚑: phonebook स्वतः दर 30 seconds ला reception ला फोन करते. Reception बंद पडले? Phonebook backup campus चा आकडा देऊ लागते. फोन करणाऱ्यांना काही बिघडले होते हे कधीच कळत नाही.
आणि routing policies म्हणजे फक्त phonebook कसे उत्तर देते: weighted (90/10 नाणेफेक — canary!), latency (सर्वात जवळचा campus), failover (primary/backup), geo (EU मधून फोन करणारे → EU campus).
🗺️ आकृती
flowchart LR
kid["🧒 browser: school.com?"]
r53["☎️ Route 53 — hosted zone<br/>school.com 📖"]
rec["🛎️ ALB (lesson 15)"]
hc["🩺 health check /health<br/>every 30s"]
backup["🏫 backup campus<br/>(other region)"]
kid -->|"1 who is…?"| r53
r53 -->|"2 ALIAS → reception"| rec
hc -->|"3 watches"| rec
r53 -.->|"4 if dead: answer with backup"| backup
❓ काय
- Route 53 global आहे (regional नाही — phonebook सगळीकडे सारखीच) आणि कंटाळवाणे विश्वासार्ह: त्याचा SLA 100% आहे.
- Zone root वर (
school.comनियमानुसार CNAME असू शकत नाही) आणि AWS समोर असलेल्या कोणत्याही गोष्टीसाठी CNAME ऐवजी ALIAS — मोफत queries, आपोआप update होणारे. - Registrar vs DNS:
school.comविकत घेणे आणि त्याचे records host करणे ही वेगवेगळी कामे आहेत; Route 53 योगायोगाने दोन्ही करते. - या मालिकेत: k8s course मधला external-dns controller हे records तुमच्यासाठी लिहितो — Ingress hostname → Route 53 नोंद, खालपर्यंत सगळे robots.
🤔 का
प्रत्येक outage ची गोष्ट शेवटी DNS पाशी संपते ("it's always DNS"). Lookup म्हणजे: browser → recursive resolver → तुमच्या hosted zone चे उत्तर, TTL seconds साठी cache केलेले — हे माहीत असले की cutovers, canaries, आणि तुम्ही site "हलवल्यानंतर" एक तासाने काही users ना जुनीच site का दिसते (त्यांच्या resolver ची आठवण अजून संपलेली नाही) याचा विचार करता येतो.
🔧 कसे
# watch the phonebook answer, and see the TTL count down:
dig school.com # answer + TTL
dig school.com @1.1.1.1 # ask a specific resolver
aws route53 list-hosted-zones --query 'HostedZones[].{name:Name,id:Id}'
🧪 करून पाहा (~10 मिनिटे, dig सह मोफत)
Domain ची गरज नाही: कोणत्याही site ला दोनदा dig करा आणि दोन उत्तरांमध्ये TTL
कमी होताना पाहा — तुम्ही कोणाच्या तरी phonebook cache ला थेट वाचत आहात. मग
dig +trace school.com करून संपूर्ण साखळी root → TLD → zone चाला.
✅ तपासा — तुम्हाला काय दिसायला हवे
एका मिनिटाच्या अंतराने दोनदा dig school.com: TTL कमी होत जातो; dig +trace root → TLD → तुमचा zone असा चालतो.
🧹 साफसफाई — चालू ठेवू नका
साफ करण्यासारखे काही नाही — हा धडा मोफत आहे 🎉
⚠️ नेहमीच्या चुका
- Zone apex वर CNAME (नियमबाह्य) — ALIAS वापरा
- 24 तासांचा TTL अजून सगळीकडे cache असताना cutover करणे
- Domain register करणे आणि hosted zone ही वेगळी गोष्ट आहे हे विसरणे
⏭️ पुढे
गर्दी सांभाळली, नाव सापडले. पण शाळेच्या नोंदी — गुण, प्रवेश — यांना खरा database लागतो, आणि तो स्वतः एका बाकावर चालवणे हे अर्धवेळ काम आहे. धडा 17: RDS, भाड्याने घेतलेले दप्तर कार्यालय.