- 19~20 अक्टूबर 2025 को AWS N. Virginia रीजन (us-east-1) में Amazon DynamoDB सहित कई प्रमुख सेवाओं में लंबे समय तक बाधा रही
- यह बाधा DynamoDB की स्वचालित DNS प्रबंधन प्रणाली में मौजूद एक latent race condition के कारण शुरू हुई, जिसकी वजह से गलती से एक खाली DNS record बन गया
- इसके चलते EC2 instance creation failure, Network Load Balancer(NLB) connection errors, और Lambda·ECS·Redshift सहित कई सेवाओं में API latency और failures की श्रृंखलाबद्ध समस्या हुई
- AWS ने समस्या की जड़ DynamoDB DNS Enactor के बीच असामान्य concurrent update conflict को बताया, और manual recovery के जरिए 20 अक्टूबर दोपहर 2:20 बजे के आसपास पूरी बहाली की
- इस घटना ने AWS की आंतरिक automation systems के बीच interdependency की जटिलता को उजागर किया, और आगे DNS·EC2·NLB resilience मजबूत करने के लिए संरचनात्मक सुधारों के संकेत दिए
घटना का अवलोकन
- बाधा 19 अक्टूबर 2025 को रात 11:48 बजे (PDT) शुरू हुई और 20 अक्टूबर को दोपहर 2:20 बजे (PDT) समाप्त हुई
- प्रभाव के तीन प्रमुख चरण थे:
- 19 अक्टूबर 11:48PM~20 अक्टूबर 2:40AM: DynamoDB API error rate में तेज वृद्धि
- 20 अक्टूबर 5:30AM~2:09PM: NLB connection errors में वृद्धि
- 20 अक्टूबर 2:25AM~10:36AM: EC2 नए instance creation failures और network connectivity issues
- बाधा की शुरुआत DynamoDB DNS management system की defect से हुई और यह EC2, NLB, Lambda, Redshift सहित कई सेवाओं तक फैल गई
DynamoDB बाधा का कारण और प्रभाव
- DynamoDB की स्वचालित DNS management system में एक latent defect trigger हुआ, जिससे
dynamodb.us-east-1.amazonaws.com का DNS record गलत तरीके से खाली स्थिति में update हो गया
- यह system दो components में विभाजित है:
- DNS Planner: load balancer की स्थिति monitor करता है और नया DNS plan बनाता है
- DNS Enactor: Route53 पर changes apply करता है
- तीन availability zones (AZ) में स्वतंत्र रूप से deploy किए गए DNS Enactor के बीच race condition हुई
- पहला Enactor delay की स्थिति में पुराना plan apply कर बैठा
- दूसरे Enactor ने latest plan apply करने के बाद पुराना plan delete किया, जिससे सभी IP addresses हट गए और system inconsistent state में चला गया
- automatic recovery fail होने के कारण manual intervention की जरूरत पड़ी
- रात 11:48PM पर बाधा शुरू होते ही DynamoDB पर निर्भर सभी services और customer traffic में connection failures होने लगे
- global tables का उपयोग करने वाले ग्राहक दूसरे regions की replicas पर requests भेज सके, लेकिन replication lag हुआ
- 12:38AM पर AWS engineers ने DNS state को root cause के रूप में पहचाना
- 1:15AM पर अस्थायी recovery action से कुछ internal services की connectivity बहाल हुई
- 2:25AM पर DNS information पूरी तरह restore हुई, और 2:40AM पर सभी connections सामान्य हो गए
Amazon EC2 पर प्रभाव और recovery process
- 19 अक्टूबर 11:48PM~20 अक्टूबर 1:50PM के दौरान EC2 API error rate बढ़ी, instance creation failures हुए, और latency बढ़ी
- पहले से चल रहे instances प्रभावित नहीं हुए
- EC2 instance management में DropletWorkflow Manager (DWFM) और Network Manager नाम के दो sub-systems उपयोग होते हैं
- DWFM physical servers (
droplet) की state manage करता है और periodic health checks करता है
- Network Manager instance network configuration propagate करता है
- DynamoDB बाधा के कारण DWFM के state checks fail हुए और droplet lease expire हो गई
- 2:25AM पर DynamoDB recovery के बाद DWFM ने reconnect करने की कोशिश की, लेकिन droplet की बहुत बड़ी संख्या के कारण congestive collapse हुआ
- 4:14AM पर engineers ने चुनिंदा DWFM hosts restart किए ताकि queues साफ हों और recovery आगे बढ़े
- 5:28AM पर सभी droplet leases restore हो गईं और नए instance creation फिर शुरू हुए
- इसके बाद Network Manager ने delayed network state propagation backlog process किया, जिससे network connectivity delays हुईं
- 10:36AM पर network propagation time सामान्य हुई
- 11:23AM पर request throttling कम करना शुरू हुआ, और 1:50PM पर EC2 पूरी तरह recover हो गया
Network Load Balancer(NLB) पर प्रभाव
- 20 अक्टूबर 5:30AM~2:09PM के दौरान कुछ ग्राहकों ने NLB connection errors में वृद्धि अनुभव की
- NLB multi-tenant architecture पर काम करता है और backend EC2 instances की ओर traffic route करता है
- बाधा का कारण network state propagation delays की वजह से health checks fail होना था
- नए जोड़े गए EC2 instances की network configuration पूरी नहीं हुई थी, इसलिए health checks fail हुए
- health check results अस्थिर रूप से बार-बार बदलते रहे, जिससे NLB nodes DNS से हटते और फिर लौटते रहे
- 6:52AM पर monitoring system ने समस्या detect की और engineers ने response शुरू किया
- health check subsystem पर load बढ़ने से automatic AZ DNS failover हुआ
- 9:36AM पर automatic failover disable करने के बाद सभी healthy nodes वापस आए
- 2:09PM पर EC2 recovery के बाद automatic failover फिर enable किया गया
अन्य AWS services पर प्रभाव
- AWS Lambda:
- 19 अक्टूबर 11:51PM~20 अक्टूबर 2:15PM के दौरान API errors और latency
- DynamoDB बाधा के कारण function creation·update failures, और SQS/Kinesis event processing delays
- 7:04AM पर NLB health check failures की वजह से internal systems scale down हुए और asynchronous invocations पर limits लगीं
- 2:15PM पर सभी backlog process होकर service सामान्य हुई
- ECS, EKS, Fargate:
- 19 अक्टूबर 11:45PM~20 अक्टूबर 2:20PM के दौरान container launch failures और cluster scaling delays
- Amazon Connect:
- 19 अक्टूबर 11:56PM~20 अक्टूबर 1:20PM के दौरान call·chat·case processing errors
- DynamoDB recovery के बाद अधिकांश functions सामान्य हुईं, लेकिन 7:04AM के बाद NLB और Lambda के प्रभाव से फिर errors आईं
- 1:20PM पर पूरी recovery
- AWS STS:
- 19 अक्टूबर 11:51PM~20 अक्टूबर 9:59AM के दौरान authentication API errors और latency
- DynamoDB recovery के बाद अस्थायी सामान्यीकरण हुआ, लेकिन NLB समस्या से फिर errors आईं
- IAM login और Identity Center:
- 19 अक्टूबर 11:51PM~20 अक्टूबर 1:25AM के दौरान authentication failures में वृद्धि
- DynamoDB recovery के बाद सामान्य
- Amazon Redshift:
- 19 अक्टूबर 11:47PM~20 अक्टूबर 2:21AM के दौरान query और cluster modification failures
- DynamoDB recovery के बाद भी कुछ clusters EC2 बाधा के कारण असामान्य रहे
- 21 अक्टूबर 4:05AM पर पूरी recovery
- IAM API dependency के कारण global regions में भी अस्थायी query failures हुए
- अन्य सेवाएँ:
- Managed Workflows for Apache Airflow, Outposts, AWS Support Center आदि भी प्रभावित हुए
बाद की कार्रवाई और सुधार योजना
- DynamoDB DNS Planner और Enactor automation को पूरी तरह disable किया गया है; दोबारा enable करने से पहले race condition fix और safeguards जोड़े जाएंगे
- NLB: health check failure के समय किसी एक NLB द्वारा हटाई जा सकने वाली capacity को सीमित करने के लिए rate control mechanism जोड़ा जाएगा
- EC2:
- DWFM recovery workflow सहित नया test suite बनाया जाएगा
- data propagation system में smart throttling improvements के जरिए queue size के आधार पर request limiting जोड़ी जाएगी
- AWS पूरे service ecosystem की interdependency analysis के जरिए recovery time घटाने और ऐसी घटनाओं की रोकथाम के अतिरिक्त उपायों की समीक्षा कर रहा है
निष्कर्ष और माफ़ी
- AWS ने इस घटना से ग्राहकों पर पड़े प्रभाव के लिए आधिकारिक माफ़ी मांगी
- कंपनी ने माना कि वह सामान्यतः अपनी services की high availability बनाए रखती रही है, लेकिन इस बार की बाधा ने ग्राहकों के business पर गंभीर प्रभाव डाला
- AWS ने इस घटना से सीख लेकर automation systems की resilience और incident response procedures को और मजबूत करने का वादा किया
2 टिप्पणियां
सुना है कि यह senior कर्मचारियों को निकालने के बाद का असर है.. क्या यह सही है?
Hacker News राय
मैं इस विषय पर हमेशा एक ही बात दोहराने वालों में से हूँ। अगर आपने अभी तक Richard Cook का लेख नहीं पढ़ा है, तो इस postmortem को अभी रोककर पहले How Complex Systems Fail पढ़ने की सलाह दूँगा। जटिल सिस्टम failures पर यह सबसे बेहतरीन तकनीकी लेखों में से एक है। Cook खुद “root cause” जैसी अवधारणा को ही अस्वीकार करते हैं, और इस घटना में भी मुझे लगता है कि वे सही हैं
इंटरनेट धीरे-धीरे एक केंद्रीकृत single network (mononet) में बदल रहा है। शीत युद्ध के दौर में एक distributed network के रूप में जन्मा इंटरनेट अब ऐसी संरचना बन गया है जहाँ एक deployment mistake से दुनिया भर की banking, shopping और travel रुक सकती है। cloud metaphor अब अपनी सीमा पार कर चुका है।
startup या R&D के लिए यह अभी भी उपयोगी है, लेकिन growth-stage कंपनियों या सरकारों के पास अपने server, अपना cloud, अपनी core services होनी चाहिए। तकनीक और लोग दोनों पर्याप्त हैं
AWS के postmortem में सटीक timeline visualization प्रभावशाली लगी। GDC की मशहूर talk “I Shot You First” की तरह, समय के प्रवाह को तिरछे arrows से दिखाते हुए “delay कहाँ हुआ?” पूछने का तरीका उपयोगी था।
लेकिन मुझे उससे भी ज़्यादा हैरानी इस बात पर हुई कि EC2 node lease management service के लिए recovery procedure (runbook) था ही नहीं। AWS की core service के लिए तो लगा था कि लगभग हर exceptional स्थिति की तैयारी होगी
इस घटना का सार मुझे DNS system की cache invalidation समस्या के एक रूप जैसा लगता है। दो DNS Enactor अलग-अलग timing पर plan apply कर रहे थे, जिससे race condition बना, और पुराने plan ने नए plan को overwrite कर दिया
Enactor को नया value apply करने से पहले मौजूदा record का version compare (CAS) करना चाहिए था। efficiency थोड़ी कम होती, फिर भी यह एक बुनियादी safety mechanism है। शायद यह DynamoDB के भीतर ही handle किया जा सकता था
यह पढ़कर हैरानी हुई कि DynamoDB region के हिसाब से DNS के लाखों records manage करता है।
dynamodb.us-east-1.amazonaws.comका resolution अगर लाखों IP तक जा सकता है, तो यह Route53 की सीमाओं से आगे की चीज़ लगती है। शायद कम TTL रखकर हर बार सिर्फ कुछ हिस्से update किए जाते होंगेbugs हमेशा रहेंगे। formal verification कठिन है, और कम संभावना वाले bugs कई साल बाद फट सकते हैं।
इसलिए यह मानकर सिस्टम डिजाइन करना चाहिए कि failure होगा ही, और नुकसान सीमित करने वाली संरचना बनानी चाहिए। cell-based architecture, gradual rollout, और isolated zones इसके उदाहरण हैं।
AWS भी cell-based तरीका अपनाने की कोशिश करता है, लेकिन खासकर us-east-1 में अभी भी legacy cross-dependencies मौजूद हैं। लंबी अवधि में regions को पूरी तरह स्वतंत्र रूप से design किया जाना चाहिए।
इस तरह का काम senior executive support के बिना आगे नहीं बढ़ता, लेकिन shareholder के नज़रिए से यह कंपनी के अस्तित्व के जोखिम को घटाने वाला अहम निवेश है
रिपोर्ट में UTC की जगह PT timezone का इस्तेमाल देखना अप्रत्याशित था
यह देखकर आश्चर्य हुआ कि per-endpoint versioning या 2PC, single writer lease जैसे patterns नहीं थे। फिर भी AWS ने इसे इतने पारदर्शी तरीके से सार्वजनिक किया, यह सराहनीय है
मेरे हिसाब से इस incident का प्रत्यक्ष कारण DynamoDB DNS management system में मौजूद एक latent race condition था। पुराने plan ने नए plan को overwrite कर दिया, जिससे regional endpoint के DNS records खाली हो गए
संदर्भ: How Complex Systems Fail