Tuesday, October 23, 2012

Key Learning from AWS Outage

"A service outage for Amazon’s Web Service (AWS) affected websites like Reddit, Flipboard, FastCompany, Heroku, Airbnb, Imgur, Pinterest and others late last night. It also seems that the outage affected some of Amazon’s storage units on the US East coast, and thus these websites which are hosted by AWS went down." - FirstPost

This was pretty exciting night of US Prez debate on October 22, 2012. We were having all our infrastructure and code-base made of solid steel. At least that's what we thought, until we realized our infrastructure wasn't as solid as Amazon claimed. About six hours before the the debate, 3PM EDT we started to see smaller glitches. And we realized that we can't reboot one of our EBS backed servers. We quickly launched another, but then ELB (Elastic Load Balancer) was was paralyzed. Then complete infrastructure started to fall like dominoes.

What went down? Some of the AWS's most marketed and claimed to be the best alternatives available, failed.
  1. ELB: Elastic load balancers hit hard. This is the gateway to our 20+ servers. It was hosed. It was unpredictably throwing instance in-service/out-of-service. And complete blackouts. We launched new ELBs, no avail.

    On one of the ELBs, we had to continuously re-save the instances in ELB to get them active once ELB marks them as unhealthy and throws out. (They were healthy).

    If you think the last para was bad. Prepare for the worse. One other load balancer just went inactive. Showing registering instances. Forever. Nothing worked. Then we launched another ELB, in the healthy zone us-east-1a, same problem for next 4 hour.
  2. EBS Backed Instances:  They were complete zombies. A couple if EBS backed instances would just do not do anything. SSH access, Nagios' NRPE checks all gone.
  3. EBS Volumes: Talk about tall claims, talk about EBS. Amazon market it as a better alternative to instance store backed. And this is not the first time EBS gave us a pain in the neck. It's slow for very fast IO like we do on Cassandra. It's expensive. And opposite to what Amazon says, it's not rock solid yet. The only guarantee you get is that your EBS volume will not be terminated unexpectedly. So, you will have your data safe. But, as we found, it may be unavailable/inaccessible for long enough time to spoil the game. In fact, one of the EBS volumes attached to our MySQL could not be detached until now (about 10 hours). And I do not know what's going to happen. We terminated the instance, tried force-detach. No luck.
How did we survive? We were little overcautious.
  1. Copy of a copy of a copy: We just needed one MySQL server. And stuffs were cached efficiently in MemcacheD. So, we initially thought that having one instance-store backed AMI with MySQL data directory in external EBS volume is safe enough. Since AWS says EBS won't lose data. Later, our CTO suggested to have a slave, created in much the same way. It would just be an extra layer of security.

    It turns out that we could not use MySQL master. No access. Pending queries. The data containing EBS volume was inaccessible. Cloudwatch was showing no R/RW active while we were loading MySQL with decent load. After 90 minutes of exercise, we realized that shit hit the fan. we turned our slave into new master. One front fixed.

    We were lucky that slave was not screwed the same way as master did. It was quite likely that slave would fail. It had the same configuration, lived in same availability zone.
  2. Never break a protocol: One of very crucial server was having EBS root device (not a instance-store with extra EBS volume like the last case). This machine went into coma. This was a complete setup of Wordpress, with all Wordpress tweaking, plug-ins, custom code, Apache mod-rewrite, mod-proxy el al, and MySQL.

    The survival trick lies in one of consistent behavior: whenever make any change to instance, create an AMI of it. So, we relaunched the the server from latest AMI. But data? Our daily backup script was just ready for this particular situation. So we launched a new instance, took the latest MySQL-dump file. Loaded. Updates DNS records. back up.
  3. ELB Outage: ELB outage made us helpless. There is nothing much that one can do with ELB. We were lucky that the ELB on top of our main application was not completely dead. ELB was just going crazy and marking instances out of service -- randomly. So, I jot down to the ELB screen  and refresh it regularly. If instances go out of service, I will re-save, and ELB get back up.

    You must be wondering if our instances were sick, or health-check was failing. None. These were instance-store machines, unaffected by the outage. The direct access to machines were fast and correct. There are two parts of it. 1. In past, I have observed ELB does not scale, with a surge of traffic. It ramp up slowly. I observed that during load tests. High latency of connection via ELB compared to direct access was also observed. 2. ELBs were sick during the outage as per Amazon's status.
Key Takeaway:
  1. EBS ain't that great. Stick to instance store, fault tolerant design. 
  2. Backup. Everything that matters, should be backed up in such a way they can be reloaded really fast when  required.
  3. Spread out. If you can, scatter instances in different availability zone. The best system would have the system designed in such a way that if an availability zone goes complete berserk, the user wouldn't feel the impact.
  4. ELB can be SPOF. If ELB is entry point to your application. It's single point of failure. Even if there is no downtime, we have seen poor scaling/slow ramp up on surge traffic. I am not sure if I have another alternative. But I am actively looking.


  1. سماك هو برنامج محاسبة عبر الإنترنت للشركات الصغيرة والمتوسطة لإدارة أعمالهم وزيادة الإنتاجية. لدى سماك خمس

    وحدات رئيسية لإدارة العمليات التجارية لأي مؤسسة. وقد استفادت برامج محاسبة من سماك العديد من المؤسسات الصغيرة

    والمتوسطة، وتحديدا الشركات الناشئة عن طريق خفض التكاليف السنوية والسماح لهم بالتركيز الكامل على تطوير الأعمال الأساسية وعمليات الأعمال بدلا من أنها عثرت في مشاكل البنية التحتية لتكنولوجيا المعلومات


    ومن الفوائد الرئيسية الأخرى برامج محاسبة السحابية من سماك أن الترقيات مجانية تماما ومتكررة وفورية ولكن من ناحية

    أخرى فإن دورات تطوير البرمجيات داخل المؤسسة طويلة جدا بالمقارنة مع برمجيات المحاسبة المستندة إلى الحوسبة السحابية.

    برامج محاسبة
    نظام نقاط البيع
    نظام التقسيط
    نظام معارض السيارات
    نظام التخليص الجمركي
    تحميل برامج المحاسبة
    نظام الصيدليات

  2. افضل شركة رش مبيدات بالرياض  http://url.ie/13xnf الشركة متخصصة في مكافحة الحشرات بطرق حديثة وجودة عالية بشكل لا يضر بأهل المنزل أو يضر الأطفال أو يؤثر عليهم
    الشركة لديها كافة الحلول للقضاء على الحشرات ورشها وإبادتها إبادة تامة ,
    تمتلك الشركة أيضا أفضل الكوادر البشرية الذين يوظفون جُلَ طاقتهم من أجل القضاء على الحشرات وذلك عن طريق الرش والأمصال التي تؤدي للقضاء عليها ,
    لدينا الخبرة لذلك وبأقل الأسعار وأعلى مستوى جودة و أمان بإذن الله تعالى
    اتصل بنا نصلك أينما كنت
    نحن الأفضل في هذا المجال,
    نحن جميعاً نعلم أن السر وراء إبادة الحشرات هي رش المبيدات لذا فكان أول اهتمامات الشركة أن تحرص على استخدام أفضل أنواع المبيدات الحشرية التي تجعلها من أفضل شركات رش مبيدات بالرياض، نظراً لما يملكه المبيد من فعالية قوية و إبادة فورية دون ان يلحق أي أضرار بصحة الموجودين في المنزل ولا يسبب لهم الإزعاج، و كما حرصت الشركة على أن توفر كل ذلك، وكان من ضمن اهتماماتهم أن تقدم خدماتها بأقل الأسعار لكي تناسب كافه فئات العملاء دون أن تسبب لهم أي ضغط مادي.
    الرش يكون بأنواع مجربة وغير ضارة وآمنة على كل من يستخدمها معنا أنتم بأمان وصحتكم بأمان و لا داعي للقلق أو التفكير طويلا فإننا لسنا الوحيدون ولكننا المميزون… اقرأ المزيد

    المصدر: شركة رش مبيدات بالرياض

    شركة مكافحة حشرات بالرياض http://url.ie/13xng للحشرات تعاني كل ربات البيوت من مشكلة تكاثر الحشرات ووجودها بشكل مستمر في المنزل، مما يسبب لها الكثير من القلق والإزعاج ويضعها في العديد من المواقف المحرجة أمام ضيوفها فبالرغم من نظافة المنزل ولكن عند وجود الحشرات أمام الضيوف يشعرها بأن المنزل غير نظيف، كما أن الحشرات تحمل الكثير من البكتيريا والجراثيم العدوي الفيروسية التي تسبب الأمراض .
    وتقوم بإبادتها بكل سهولة بين الأشخاص مما ينتج عنها الضرر والأمراض الذي يلحق بصحه الانسان من ما يجعلها تبحث عن الطرق التقليدية التي تساعدها في القضاء نهائيا على الحشرات المزعجة، مثل العته و الفئران والصراصير وأيضاً النمل الابيض وغيرها من الحشرات، التي تسببها الإزعاج مجرد أن تتواجد في المنزل ولكن بعد اليوم لا داعي لكل ذلك يمكنك التخلص من كل هذه الحشرات عند التواصل مع شركة مكافحة حشرات بالرياض ، التي تقوم بالتخلص من كافة أنواع الحشرات ومكافحه الحشرات المنزلية الضارة، عن طريق شركة رش مبيدات بالرياض التي هدفها هو مكافحة الحشرات داخل الدمام وخارجها، كما أن الشركة لديها فريق عمل متميز قادر على إبادة الحشرات نهائياً،
    والعمل على ضمان عدم عودته من مكان مرة أخرى كما أنها تحرص علي أن توفر أفضل أنواع المبيدات الحشرية، المصرح بها من وزارة البيئة والصحة و الأمنة تماماً، على صحه الإنسان وقادرة على إبادة الحشرات من المرة الأولى كل هذا وأكثر، شركة مكافحة حشرات بالرياض على أن تقدم كافة خدماتها لعملائها الكرام بأقل الأسعار الغير قابلة للمنافسة و التي لا تجدها إلا من خلال تعاملك مع شركة مكافحة الحشرات بالرياض تتصل بنا الآن من أجل الحصول على كل ذلك…… اقرأ المزيد

    المصدر: شركة مكافحة حشرات بالرياض

    افضل شركة عزل اسطح بالرياض http://url.ie/13xnh يتعرض سطح المنزل لعدد من الأسباب التي تؤثر بالسلب على السن الافتراضي لهذا السطح، فالأمطار الكثيفة الموسمية تسقط بكثرة بمدينة الرياض عاصمة المملكة العربية السعودية في فصل الشتاء الأمر الذي يترك تأثيره على سطح المنزل وربما ينشأ تسريب لداخل المنزل من هذا السطح، أما في فصل الصيف فأشعة الشمس المرتفعة تكون السبب في انبعاث موجة حارة داخل البيوت الأمر الذي يدفع اصحاب المنزل لتشغيل المكيفات طوال اليوم فترتفع معها تكليفات كشف حساب وقد يعطل مكيفات المنزل من كثرة التشغيل. … اقرأ المزيد

    المصدر: شركة عزل اسطح بالرياض