การใช้ AWS เป็นโครงสร้างพื้นฐานสำหรับแอปพลิเคชัน「9999 Tet」ที่มีการเข้าถึงสูง

ในบทความนี้

ชื่อพันธมิตร: Rikkeisoft Co., Limited

กรณีศึกษา: การใช้ AWS เป็นโครงสร้างพื้นฐานสำหรับแอปพลิเคชัน「9999 Tet」ที่มีการเข้าถึงสูง

ขอบเขตการทำงาน: การพัฒนา การปรับใช้ และการบำรุงรักษา

ระบบปฏิบัติการ: Amazon Linux

ฐานข้อมูล: MySQL

บริการ AWS: Amazon Elastic Beanstalk, Amazon EC2, Amazon RDS for MySQL, Amazon S3, Amazon Elastic Load Balancing, Amazon ElastiCache for Redis, Amazon CloudFormation, Amazon CloudWatch, Amazon Route 53

 

ข้อมูลลูกค้า:

ชื่อลูกค้า: AIC Joint Stock Company

สาขาธุรกิจ: ไม่เปิดเผย

จำนวนพนักงาน: มากกว่า 1200 คน

ปีที่ก่อตั้ง: 2005

URL ระบบ: https://api.tetvietaic.com/api/appstatus

 

ความต้องการของลูกค้า:

กลุ่ม AIC วางแผนที่จะสร้างแอปพลิเคชันสำหรับผู้ใช้เวียดนามในโอกาสของเทศกาลตรุษตรัง (Tết) Rikkeisoft ได้รับการว่าจ้างให้ทำบริการออกแบบ พัฒนา ปรับใช้ และบำรุงรักษาทั้งหมด「9999 Tet」ได้รับการออกแบบให้เป็นแอปพลิเคชันแบบออลอินวันที่ให้ข้อมูลเกี่ยวกับเทศกาลตรุษตรังในหมวดหมู่ต่างๆ เช่น วัฒนธรรม ความบันเทิง จิตวิญญาณ การขนส่ง การแพทย์ และการช้อปปิง เป็นต้น

เนื่องจากลักษณะของแอปพลิเคชัน จึงคาดว่าจะมีการเพิ่มขึ้นของการเข้าถึงระหว่างช่วงเวลารอบวันผ่านปีเก่า ตัวอย่างเช่น แอปพลิเคชันนี้มีคุณสมบัติพิเศษที่เรียกว่า「Lucky Money Shake」ซึ่งช่วยให้ผู้ใช้สามารถสั่นเหวี่ยงอุปกรณ์มือถือของพวกเขาเพื่อรับเงินโชคดีในรูปแบบบัตรของขวัญในวันผ่านปีเก่า หลังจากเทศกาลตรุษตรัง การเข้าถึงจึงคาดว่าจะลดลงอย่างมาก

AIC ต้องการโซลูชันโครงสร้างพื้นฐานที่มีความยืดหยุ่น และสามารถปรับขนาดขึ้นโดยอัตโนมัติในช่วงเวลาที่มีการเข้าถึงสูง และปรับกลับไปเป็นภาระการงานปกติในภายหลัง ในด้านความปลอดภัย โซลูชันที่ต้องการจะต้องมีความทนทานต่อการโจมตีที่เป็นอันตราย ในทางกลับกัน โซลูชันไม่ควรต้องใช้ความพยายามของมนุษย์มากเกินไปในการตรวจสอบและบำรุงรักษา

 

โซลูชันที่เสนอ:

เนื่องจากลักษณะของธุรกิจของลูกค้า AIC ได้พึ่งพาโครงสร้างพื้นฐานทางกายภาพ อย่างไรก็ตาม เรามีข้อสังเกตว่า ในสถานการณ์นี้ แนวทางที่ใช้คลาวด์จะประหยัดเวลาและต้นทุนมากกว่า เนื่องจากมีเพียง 1.5 เดือนสำหรับกระบวนการพัฒนาและการเผยแพร่ทั้งหมด ดังนั้น เราจึงเสนอ AWS เป็นผู้ให้บริการโครงสร้างพื้นฐาน เนื่องจากความสามารถในการปรับขนาดและความยืดหยุ่นของมัน

ด้านหลังได้รับการพัฒนาใน Python Django เป็นแอปพลิเคชันเว็บมาตรฐาน ดังนั้น AWS Elastic Beanstalk จึงถูกใช้เพื่อให้ปรับปรุงกระบวนการปรับใช้ เพื่อให้ได้ความสามารถในการปรับขนาดโดยอัตโนมัติ เราเสนอให้ใช้ AWS CloudWatch เพื่อตรวจสอบการโหลดและ AWS Autoscaling เพื่อจัดการคลัสเตอร์ AWS EC2 AWS LoadBalancer ได้รับการเสนออื่นเพื่อเชื่อมต่อกับคลัสเตอร์เหล่านั้น

สำหรับการจัดเก็บข้อมูล เราเสนอการรวมกันของสามบริการ

  • AWS ElastiCache สำหรับการแคชแอปพลิเคชัน

  • AWS RDS สำหรับฐานข้อมูล ในกรณีของเรา มีการเสนอคลัสเตอร์ RDS MySQL พร้อมการตั้งค่าการจำลองที่ใช้งาน

  • AWS S3 สำหรับการจัดเก็บและการแจกจ่ายสื่อ รวมถึงเนื้อหาที่เผยแพร่และเนื้อหาที่ผู้ใช้สร้างขึ้น และสินทรัพย์เช่นปลั๊กอินหรือเนื้อหาคงที่

เพื่อความปลอดภัย เราเสนอ VPC เพื่อแยกแยะเครือข่ายส่วนตัว (สภาพแวดล้อมการพัฒนาและโหนดที่ทำงาน CMS) และเครือข่ายสาธารณะ (โหนดสำหรับ API แอปพลิเคชัน)

AWS Route 53 ยังได้รับการเสนอสำหรับการจัดการชื่อโดเมน

 

ผลลัพธ์:

ในช่วงเวลาที่มีการโหลดสูง เราเพิ่มขึ้น ElastiCache เพื่อเพิ่มประสิทธิภาพ เนื่องจากผู้ใช้ส่วนใหญ่ร้องขอเนื้อหาเดียวกัน หลังจากกิจกรรม ElastiCache ถูกลดขนาดลงเป็นอินสแตนซ์ที่เล็กกว่าเพื่อประหยัดต้นทุน

ไม่มีการรายงานเหตุการณ์โอเวอร์โหลดเซิร์ฟเวอร์ระหว่างช่วงเวลารอบเทศกาลตรุษตรัง

แอปพลิเคชันให้บริการผู้ใช้มากกว่า 1 ล้านคนและทำงานได้ดีระหว่างเทศกาลตรุษตรัง

  • การติดตั้งแอปพลิเคชันมากกว่า 1 ล้านครั้งใน Google Play Store และ Apple Store

  • ผู้ใช้ออนไลน์มากกว่า 8000 คนในเวลาที่มีการโหลดสูง

  • ธุรกรรม Lucky Money Shake มากกว่า 1.2 ล้าน

 

ข้อมูลย้อนกลับของลูกค้า:

ลูกค้าของเราพอใจกับการแก้ปัญหาของเราตามโครงสร้างพื้นฐาน AWS ในแง่ของคุณภาพการบริการและประสิทธิภาพของต้นทุน

โครงการนี้เป็นประสบการณ์ครั้งแรกของ AIC กับ AWS และถือเป็นความสำเร็จ ซึ่งจะนำไปสู่กรณีการใช้งานเพิ่มเติมในอนาคต

 

ระยะเวลาของโครงการ: 1.5 เดือน

 

สถาปัตยกรรมระบบ:

 

พร้อมเปลี่ยนข้อมูลเชิงลึกให้เป็นการลงมือทำแล้วหรือยัง?

บอกเราเกี่ยวกับความท้าทายของคุณ! แล้วเราจะหาโซลูชันที่เหมาะสมไปด้วยกัน

ส่งข้อความถึงเรา