เมื่อวันอังคารที่ผ่านมา มีรายงานจากแพลตฟอร์มตรวจสอบสถานะอินเทอร์เน็ตอย่าง Catchpoint ว่า บริการ Simple Storage Service หรือ S3 ของ Amazon Web Service (AWS) ได้เกิดดาวน์ไทม์เป็นเวลาถึง 3 ชั่วโมงกับอีก 39 นาที ซึ่งกระทบกับบริการบนคลาวด์อื่นๆ ของอเมซอนเกือบทั้งหมด รวมทั้งเว็บไซต์ที่ใช้งานบนแพลตฟอร์มคลาวด์ชื่อดังนี้ด้วย
ดังนั้น ทาง NetworkWorld.com จึงเรียบเรียงบทเรียนต่างๆ ที่ผู้ใช้งานควรเตรียมพร้อมเพื่อรับมือกับอุบัติเหตุของอเมซอนครั้งต่อไป แม้ว่า AWS จะเป็นบริการที่ทั้งมีเสถียรภาพ และปลอดภัยมากที่สุดเจ้าหนึ่งก็ตาม แต่การล่มของระบบก็ถือเป็นสิ่งที่ต้องเกิดไม่ว่าจะบ่อยหรือนานๆ ครั้งอยู่แล้ว ซึ่งสรุปได้เป็น 5 หัวข้อดังต่อไปนี้
1. ไม่ควรเอาทุกอย่างเก็บไว้บนคลาวด์เดียว
โดยเฉพาะข้อมูลหรือบริการที่สำคัญ อย่างบน AWS จะมีคลาวด์แยกเป็นแต่ละแห่งออกจากกันที่เรียกว่า Availability Zone (AZ) แม้แต่ภายในเขตของพื้นที่วางเซิร์ฟเวอร์เดียวกัน กล่าวคือ AWS มีดาต้าเซ็นเตอร์วางอยู่กระจาย 16 แห่งทั่วประเทศ แต่ว่าแต่ละแห่งจะมีการแยกส่วนออกเป็น AZ ย่อยๆ 2 – 5 AZ ซึ่งจะไม่มีการใช้สาธารณูปโภคร่วมกันเลย แต่จะมีการเชื่อมต่อระหว่างกันด้วยความเร็วสูง ที่เหมาะกับการกระจายโหลดงานของคุณ แต่อย่างไรก็ดี ถ้าคุณต้องการลดความเสี่ยงให้น้อยที่สุด ก็ควรสำรองการทำงานข้ามผู้ให้บริการกัน เช่น แบ่งไปใช้ของ Microsoft Azure, Google Cloud Platform หรือแม้แต่ตั้งเซิร์ฟเวอร์สำรองไว้ในองค์กร เป็นต้น
2. ค้นหาตำแหน่งต้นเหตุของระบบล่มให้เร็วที่สุด
เราต้องรู้ก่อนอันดับแรกตั้งแต่เกิดดาวน์ไทม์ เพื่อให้เข้าไปจัดการให้เร็วและมีประสิทธิภาพมากที่สุด อย่างบน AWS ก็มีฟีเจอร์ Health Checks ที่ให้มุมมองของภาพระบบที่ปรับแต่งได้ ที่มองเห็นทรัพยากรของ AWS ที่แต่ละบัญชีใช้งานอยู่ นอกจากนั้นยังมีฟีเจอร์ Amazon CloudWatch ที่ตั้งค่าให้ตรวจสอบสถานะต่างๆ ของการบริการแบบอัตโนมัติ ทั้งความพร้อมการบริการ, การตรวจไฟล์บันทึก Log, การแจ้งเตือน, และการตอบสนองต่อภาวะล้มเหลวของระบบ เช่น การให้ตัวแบ่งโหลดโยกการเชื่อมต่อไปยังระบบสำรองทันทีที่ตรวจพบภาวะผิดปกติ
3. สร้างระบบรีดันแดนซ์ตั้งแต่ตอนเริ่มแรก
มีระบบสำรองอยู่ 2 ประเภท ได้แก่ แบบสแตนบาย ที่จะปิดการทำงานในภาวะปกติ ทำให้ประหยัดทรัพยากรและค่าใช้จ่ายในการบำรุงรักษา ซึ่งอาจมีช่วงเวลาสะดุดตอนที่เปิดระบบสำรองขึ้นมาทำงานแทน กับอีกแบบคือ Active Redundancy ที่มีการกระจายโหลดการใช้บริการของผู้ใช้ไปยังเซิร์ฟเวอร์สำรองทุกตัว นั่นคือการโยกโหลดไปยังอีกเซิร์ฟเวอร์ที่เหลือจะรวดเร็วมากแทบจะเป็นแบบเรียลไทม์
4. สำรองข้อมูลอยู่เสมอ
อย่างใน AWS มีบริการสำรองข้อมูลอยู่หลายแบบ ทั้งแบบ Synchronous ที่อาจมีเวลาหน่วงในการรอความพร้อมของตำแหน่งที่จะคัดลอกข้อมูลไปสำรอง กับแบบ Asynchronous แยกการประมวลผลการคัดลอกข้อมูลออกจากฐานข้อมูลหลักเลย ที่แม้จะทำให้ไม่มีเวลาหน่วงในการประมวลผลการทำงานปกติของเซิร์ฟเวอร์หลัก แต่ก็อาจมีช่องโหว่ที่ข้อมูลที่เกิดในช่วงเวลาที่แบ๊กอัพอาจตกหล่นไม่ได้ไปอยู่บนฐานข้อมูลสำรองด้วย นอกจากนี้ยังมีรูปแบบการสำรองข้อมูลใหม่ที่จูนเอาข้อดีข้อด้อยของทั้งสองแบบข้างต้นมารวมกัน อย่าง Quorum-based เป็นต้น
5. ทดสอบระบบ
อย่ารอที่จะให้เกิดเหตุการณ์จริง ให้ลองทดสอบระบบการสำรองการทำงานอยู่เป็นประจำเพื่อเตรียมพร้อมอยู่เสมอ