
สรุปเนื้อหา Session Maximising AWS Cloud Economics: Beyond legacy migration to application modernisation ใน AWS Summit Bangkok 2025
สวัสดีครับผม ต้า ครับ
วันที่ 29 เมษายน 2025 ที่ผ่านมามีงาน AWS Summit Bangkok 2025 ซึ่งผมได้เข้าร่วมงานนี้มา และนี่เป็นเนื้อหาใน Session Track 2-2 Maximising AWS Cloud Economics: Beyond legacy migration to application modernisation จะมีเนื้อหาอย่างไรเชิญรับชมได้เลยครับ
บทนำ
ปี 2025 นับเป็นปีที่ดีสำหรับองค์กรไทยที่ต้องการย้ายระบบขึ้น AWS Cloud เนื่องจาก AWS มีรีเจี้ยนในประเทศไทยแล้ว ทำให้ข้อกังวลเรื่องการเก็บข้อมูลในประเทศและความเร็วในการเข้าถึงข้อมูลได้รับการแก้ไข การย้ายขึ้นคลาวด์มีข้อดีหลายประการ ไม่ว่าจะเป็นความเร็วในการทำงาน การจัดการดาต้าเซ็นเตอร์ที่ง่ายขึ้น การสร้างนวัตกรรมที่รวดเร็ว และการลดต้นทุนทั้งด้านเซิร์ฟเวอร์ พื้นที่ บุคลากร และการบำรุงรักษา
การย้ายขึ้น AWS Cloud: 3 วิธีหลัก
เมื่อพูดถึงการย้ายขึ้นคลาวด์ (Migration) มีสามวิธีหลัก(จากทั้งหมด 7R)ที่องค์กรสามารถเลือกใช้:
- Rehost - การย้ายระบบแบบเดิมขึ้นคลาวด์ (Lift and Shift) โดยการโคลนเซิร์ฟเวอร์เดิมไปยัง EC2 บนคลาวด์ ทำให้ได้ระบบที่เหมือนเดิมทุกประการ
- Replatform - การปรับเปลี่ยนแพลตฟอร์ม เช่น การใช้คอนเทนเนอร์แทนเซิร์ฟเวอร์แบบเดิม
- Refactor - การเขียนแอปพลิเคชันใหม่ทั้งหมด เหมาะสำหรับแอปพลิเคชันที่ใกล้หมดอายุหรือต้องการปรับปรุงใหม่ทั้งหมด
อย่างไรก็ตาม การทำ Rehost อาจไม่คุ้มค่าในแง่ของต้นทุน โดยเฉพาะเมื่อใช้ Windows Server ที่มีค่าใช้จ่ายสูงกว่า Linux อย่างมีนัยสำคัญ ตัวอย่างเช่น เซิร์ฟเวอร์ขนาด 4 vCPU, 16 GB RAM บน Linux จะมีค่าใช้จ่ายประมาณ 100+ USD/เดือน ในขณะที่ Windows Server จะอยู่ที่ประมาณ 300 USD/เดือน และหากเป็น Windows Server ที่มี SQL Server Standard จะสูงถึงประมาณ 600+ USD/เดือน
5 วิธีการโมเดิร์นไนซ์แอปพลิเคชันเมื่อย้ายขึ้น AWS Cloud
1. แยกส่วนประกอบของแอปพลิเคชัน (Decompose)
แอปพลิเคชันแบบดั้งเดิมมักจะรวมทุกอย่างไว้ในเซิร์ฟเวอร์เดียว ทั้งโค้ดโปรแกรม, เซสชัน, ฐานข้อมูล และไฟล์ต่างๆ ทำให้ไม่สามารถขยายระบบได้อย่างยืดหยุ่น
วิธีการโมเดิร์นไนซ์:
- แยกแอปพลิเคชันเซิร์ฟเวอร์ (เก็บโค้ดโปรแกรม)
- แยกเซสชันเซิร์ฟเวอร์ (จัดการเซสชันผู้ใช้)
- แยกฐานข้อมูลเซิร์ฟเวอร์ (จัดเก็บข้อมูล)
- แยกไฟล์เซิร์ฟเวอร์ (เก็บไฟล์ เช่น รูปภาพ หรือ PDF)
การแยกส่วนประกอบทำให้สามารถขยายระบบเฉพาะส่วนที่ต้องการได้ เช่น เพิ่มจำนวนแอปพลิเคชันเซิร์ฟเวอร์เมื่อมีผู้ใช้งานมากขึ้น และลดลงเมื่อมีผู้ใช้น้อยลง
2. ใช้คอนเทนเนอร์ (Containerization)
คอนเทนเนอร์เป็นเทคโนโลยีที่ช่วยให้แอปพลิเคชันทำงานได้ในทุกสภาพแวดล้อม คล้ายกับแนวคิด "เขียนครั้งเดียว รันได้ทุกที่" ของ Java แต่มีประสิทธิภาพมากกว่า
ข้อดีของคอนเทนเนอร์:
- แพ็คทุกอย่างไว้ในที่เดียว ทำให้สามารถรันได้ทุกที่ (ทั้งบนเครื่องนักพัฒนา, เซิร์ฟเวอร์ทดสอบ หรือบนคลาวด์)
- สเกลได้ง่ายและไม่ต้องสนใจระบบปฏิบัติการที่รองรับ
- ทีม Infrastructure และทีม Application สามารถทำงานร่วมกันได้ดีขึ้น โดยใช้ Dockerfile
AWS มีบริการรองรับคอนเทนเนอร์หลายตัว เช่น:
- Amazon ECS (Elastic Container Service)
- Amazon EKS (Elastic Kubernetes Service)
- AWS Fargate (Serverless Container Platform)
3. เลือกใช้โอเพนซอร์สแพลตฟอร์ม
การเลือกใช้โอเพนซอร์สแทนซอฟต์แวร์เชิงพาณิชย์สามารถช่วยลดต้นทุนได้อย่างมาก โดยเฉพาะฐานข้อมูล
ตัวอย่าง:
- ใช้ Amazon Aurora (ที่ใช้ PostgreSQL หรือ MySQL) แทน Microsoft SQL Server
- Aurora มีประสิทธิภาพดีกว่าฐานข้อมูลแบบดั้งเดิมเพราะออกแบบมาสำหรับคลาวด์ โดยเฉพาะการเขียนข้อมูลที่ทำพร้อมกันทั้ง 3 โซน ทำให้มีความน่าเชื่อถือสูง
การย้ายจาก SQL Server มาใช้ PostgreSQL สามารถทำได้โดย:
- โคลนฐานข้อมูลจาก SQL Server มาไว้ที่ PostgreSQL
- ใช้ Babelfish เป็นตัวแปลภาษาระหว่าง SQL Server และ PostgreSQL
- แอปพลิเคชันใหม่สามารถเชื่อมต่อกับ PostgreSQL โดยตรง
4. สร้าง CI/CD Pipeline
การทำ CI/CD Pipeline ช่วยให้การพัฒนาและการนำขึ้นระบบเป็นไปอย่างอัตโนมัติและมีประสิทธิภาพ:
- ทีม Infrastructure เขียน Dockerfile เพื่อเตรียมสภาพแวดล้อม
- ทีม Application เขียนโค้ดและใส่ไว้ใน Git repository
- เมื่อมีการ push โค้ด ระบบจะทำการ build image โดยใช้ Dockerfile จากทีม Infrastructure
- ระบบจะทำการ scan ความปลอดภัย และ deploy ขึ้น AWS โดยอัตโนมัติ
ข้อดีคือไม่มีใครต้องยุ่งกับ Production โดยตรง ทุกอย่างผ่าน Pipeline ทำให้ลดความเสี่ยงและเพิ่มความมั่นคงปลอดภัย
5. ใช้บริการแบบ Serverless และ Managed Services
AWS มีบริการแบบ Serverless และ Managed Services มากมายที่ช่วยลดภาระในการดูแลระบบ:
- ใช้ Amazon ECS หรือ AWS Fargate สำหรับคอนเทนเนอร์
- ใช้ Amazon Aurora สำหรับฐานข้อมูล
- ใช้ Amazon EFS สำหรับ Network File Share
- ใช้ Amazon S3 สำหรับเก็บไฟล์แบบ Object Storage
การใช้บริการเหล่านี้ช่วยให้ไม่ต้องจัดการเซิร์ฟเวอร์เอง ลดภาระการดูแลระบบ และทำให้ทีมสามารถโฟกัสกับการพัฒนาแอปพลิเคชันได้มากขึ้น
สรุป
การย้ายระบบขึ้น AWS Cloud ไม่ควรเป็นเพียงการย้ายระบบเดิมขึ้นไปเท่านั้น แต่ควรมีการโมเดิร์นไนซ์ด้วย เพื่อลดต้นทุนและเพิ่มประสิทธิภาพ โดยสามารถทำได้ผ่าน 5 วิธีหลักคือ:
- แยกส่วนประกอบของแอปพลิเคชัน
- ใช้คอนเทนเนอร์
- เลือกใช้โอเพนซอร์สแพลตฟอร์ม
- สร้าง CI/CD Pipeline
- ใช้บริการแบบ Serverless และ Managed Services
การทำเช่นนี้จะช่วยให้องค์กรได้รับประโยชน์สูงสุดจาก AWS Cloud ทั้งในแง่ของต้นทุน ประสิทธิภาพ และความคล่องตัวในการพัฒนาระบบ
บทความที่เกี่ยวข้อง