
เคยไหมครับ? เวลาอยากลองใช้ AWS แต่ติดอยู่สองเรื่องใหญ่ ๆ:
- กลัวเสียเงินเยอะเกินไปจากการทดสอบเล็ก ๆ น้อย ๆ
- บางครั้งอินเทอร์เน็ตไม่เสถียร หรืออยากทำงานแบบออฟไลน์
ถ้าคุณเคยเจอปัญหาเหล่านี้ งั้นคุณควรรู้จักกับ LocalStack — เครื่องมือที่ช่วยให้เราสามารถจำลอง AWS มารันบนเครื่องตัวเองได้เหมือนมี AWS เวอร์ชันส่วนตัวเลยทีเดียว
LocalStack คืออะไร?
LocalStack คือแพลตฟอร์มสำหรับการจำลอง (emulation platform) บริการของ Amazon Web Services (AWS) บนสภาพแวดล้อมภายในเครื่อง (local environment) โดยมีจุดประสงค์หลักเพื่อสนับสนุนการพัฒนา การทดสอบ และการตรวจสอบระบบที่พึ่งพา AWS โดยไม่จำเป็นต้องเชื่อมต่อหรือใช้งานบริการจริงบน AWS Cloud
กล่าวคือ LocalStack คือ “สนามซ้อม”
ให้เราลองสร้าง resource และทดสอบระบบได้อย่างปลอดภัย ก่อนลงสนามจริงบน Cloud
ทั้งนี้แม้มันจะไม่สมบูรณ์ 100% เหมือน AWS ของจริง แต่ก็เพียงพอสำหรับการพัฒนาและทดสอบในชีวิตประจำวัน
ทำไมถึงควรใช้ LocalStack
- ประหยัดค่าใช้จ่าย
ไม่ต้องเสียเงินให้ AWS ทุกครั้งที่อยากทดสอบอะไรเล็ก ๆ น้อย ๆ - พัฒนาได้แม้ไม่มีอินเทอร์เน็ต
เพราะมันรันอยู่บนเครื่องเราเอง - Workflow เร็วขึ้น
แทนที่จะต้อง deploy ไป AWS จริงทุกครั้ง เราสามารถ spin up service จำลองในเครื่องได้ทันที - ทำงานร่วมกับ DevOps Tools ได้ดี
ไม่ว่าจะเป็น Terraform, CDK, หรือ Serverless Framework ก็สามารถสั่ง resource ไปที่ LocalStack ได้
รีวิวการใช้งาน LocalStack
ผมได้ลองใช้มาแล้ว 2 แบบ คือ AWS CLI (ผ่าน awslocal) และ Terraform วันนี้เลยอยากมาเล่าให้ฟังครับ
- ใช้ LocalStack ผ่าน AWS CLI (awslocal)
จริง ๆ แล้วเราสามารถใช้ aws –endpoint-url=http://localhost:4566 ได้ตรง ๆ แต่เพื่อความสะดวก LocalStack มี library ที่ชื่อว่า awslocal (ติดตั้งผ่าน pip) ซึ่งช่วยให้เราไม่ต้องพิมพ์ endpoint ทุกครั้ง

ใช้ LocalStack ผ่าน Terraform
อีกวิธีที่ผมลองคือใช้กับ Terraform ซึ่งสะดวกมากถ้าเราต้องการสร้าง resource หลาย ๆ ตัวพร้อมกัน หรือ อยาก test ว่า module ที่เขียนไปมันสร้าง resource ได้ถูกต้องหรือเปล่า ก่อนจะเอาไปใช้กับ AWS จริง

LocalStack UI – ส่วนเสริมที่ช่วยให้การทำงานมีประสิทธิภาพมากขึ้น
แม้ว่า LocalStack จะถูกออกแบบมาเพื่อใช้งานร่วมกับเครื่องมือเช่น AWS CLI (awslocal) และ Terraform ได้อย่างราบรื่น แต่ในบางครั้งนักพัฒนาจำเป็นต้องตรวจสอบผลลัพธ์หรือสถานะของ resource ที่สร้างขึ้นอย่างรวดเร็วและชัดเจน ซึ่งตรงนี้เองที่ LocalStack UI เข้ามามีบทบาทสำคัญ
LocalStack UI เป็น แดชบอร์ดบนเว็บ (web-based dashboard) ที่ช่วยให้ผู้ใช้งานสามารถตรวจสอบ resource ต่าง ๆ ได้ผ่าน browser โดยไม่จำเป็นต้องพิมพ์คำสั่งซ้ำ ๆ บน command line

สรุปส่งท้าย
LocalStack เป็นเครื่องมือที่ช่วยให้นักพัฒนาและทีม DevOps สามารถ พัฒนาและทดสอบระบบที่พึ่งพา AWS ได้อย่างมีประสิทธิภาพ ประหยัด และปลอดภัย ก่อนการใช้งานจริงบน Cloud Production Environment
!! หมายเหตุเพิ่มเติม : ในปัจจุบัน LocalStack ไม่ได้จำกัดอยู่เพียงการจำลองบริการของ AWS เท่านั้น แต่กำลังอยู่ระหว่างการ ขยายความสามารถไปสู่บริการของ Microsoft Azure โดยทยอยเพิ่มการรองรับ service ต่าง ๆ เข้ามาอย่างต่อเนื่อง
อ้างอิง
ท้ายนี้หากองค์กรของท่านกำลังมองหาโซลูชันด้าน DevOps ช่วยปรับรูปแบบการทำงานให้เป็นอัตโนมัติ ลดต้นทุนการทำธุรกิจ SCB TechX พร้อมเป็นโซลูชันที่ช่วยพัฒนา และ Deliver ผลิตภัณฑ์และบริการออกสู่ตลาด ต่อยอดองค์กรของท่านให้เติบโตอย่างยั่งยืน
สนใจบริการโปรดติดต่อเราที่ https://bit.ly/4etA8Ym
อ่านรายละเอียดเพิ่มเติมคลิก https://bit.ly/4dpGl6U