
สรุปเนื้อหา Session Governance and security with infrastructure as code ใน AWS Summit Bangkok 2025
สวัสดีครับผม ต้า ครับ
วันที่ 29 เมษายน 2025 ที่ผ่านมามีงาน AWS Summit Bangkok 2025 ซึ่งผมได้เข้าร่วมงานนี้มา และนี่เป็นเนื้อหาใน Session Governance and security with infrastructure as code จะมีเนื้อหาอย่างไรเชิญรับชมได้เลยครับ
Infrastructure as Code: กุญแจสำคัญสู่การพัฒนาที่รวดเร็วและปลอดภัย
ในการแข่งขันทางธุรกิจปัจจุบัน ความเร็วในการพัฒนาและความปลอดภัยของระบบเป็นสิ่งสำคัญ ซีเนียร์โซลูชั่นอาร์คิเทคจาก AWS ประเทศไทย และ ซีเนียร์ซอฟต์แวร์อาร์คิเทคจากบริษัทไลน์แมนวงใน ได้แบ่งปันมุมมองเกี่ยวกับการใช้ Infrastructure as Code (IaC) เพื่อเพิ่มประสิทธิภาพและความปลอดภัยในการพัฒนาระบบ
ทำไมต้องใช้ Infrastructure as Code?
ซีเนียร์โซลูชั่นอาร์คิเทคอธิบายว่า การพัฒนาระบบให้รวดเร็วและปลอดภัยเป็นความท้าทายสำหรับทุกฝ่าย:
- ฝ่าย Cloud Infrastructure ต้องการจัดการโครงสร้างพื้นฐานให้ง่ายและลดต้นทุน
- ฝ่ายพัฒนา (Developer) ต้องการสร้างแอปพลิเคชันที่มีความปลอดภัยและได้มาตรฐาน
- ฝ่ายความปลอดภัย (Security) ต้องกำหนดมาตรฐานและตรวจสอบการปฏิบัติตาม
- ฝ่ายธุรกิจ ต้องการความรวดเร็วในการออกผลิตภัณฑ์เพื่อแข่งขันกับคู่แข่ง
Infrastructure as Code คือการกำหนดโครงสร้างพื้นฐานในรูปแบบของโค้ด แทนการคลิกผ่านหน้าคอนโซล ทำให้สามารถ:
- สร้างระบบได้อย่างอัตโนมัติ
- มีความสม่ำเสมอระหว่างสภาพแวดล้อมต่างๆ (Development, Staging, Production)
- ตรวจสอบและควบคุมเวอร์ชันได้
- ทำ Code Review เพื่อตรวจสอบความปลอดภัย
- นำกลับมาใช้ซ้ำได้
เครื่องมือ IaC บน AWS
AWS มีเครื่องมือหลากหลายสำหรับ Infrastructure as Code:
- AWS CloudFormation - เป็นบริการที่ช่วยให้สามารถกำหนดโครงสร้างพื้นฐานในรูปแบบไฟล์ YAML หรือ JSON และอัพโหลดผ่าน API ของ AWS
- AWS Cloud Development Kit (CDK) - เหมาะสำหรับนักพัฒนาที่ชอบเขียนภาษาโปรแกรมระดับสูง สามารถใช้ภาษา Python, TypeScript, Go และอื่นๆ ในการกำหนดโครงสร้างพื้นฐาน
- เครื่องมือเสริมด้านความปลอดภัย:
- CloudFormation Linter (cfn-lint) - ตรวจสอบข้อผิดพลาดในการเขียน CloudFormation
- CloudFormation Guard - ตรวจสอบการให้สิทธิ์และความปลอดภัย
- CDK-nag - ตรวจสอบความปลอดภัยสำหรับ AWS CDK
- Amazon CodeGuru - สแกนโค้ดเพื่อหาจุดอ่อนด้านความปลอดภัย
- AWS CodePipeline - ใช้สำหรับสร้าง CI/CD pipeline โดยสามารถรวม IaC เข้าไปในกระบวนการได้
นอกจากนี้ AWS ยังมีตัวช่วยในการจัดการ IaC ที่นำเสนอใน Session นี้ด้วย
ถ้าใครสนใจลองเข้าไปศึกษาเนื้อหาด้านล่างนี้ได้ครับ
cfn-lint คือเครื่องมือที่ใช้ในการตรวจสอบ (linting) ไฟล์ AWS CloudFormation templates เพื่อหาข้อผิดพลาดและปัญหาด้านความปลอดภัย ในเนื้อหาที่แปลงมาจาก AWS Summit ได้อธิบายว่า cfn-lint เป็นหนึ่งในเครื่องมือเสริมด้านความปลอดภัยที่ช่วยในการตรวจสอบการเขียน CloudFormation templates
AWS CloudFormation Guard (หรือเรียกสั้นๆ ว่า cfn-guard) เป็นเครื่องมือด้านความปลอดภัยที่ AWS พัฒนาขึ้นเพื่อช่วยในการตรวจสอบ CloudFormation templates ก่อนการ deploy
CDK-nag เป็นเครื่องมือด้านความปลอดภัยที่ออกแบบมาเฉพาะสำหรับการใช้งานกับ AWS Cloud Development Kit (CDK) ซึ่งเป็นเฟรมเวิร์กสำหรับการกำหนดโครงสร้างพื้นฐานในรูปแบบโค้ดโดยใช้ภาษาโปรแกรมระดับสูง เช่น Python, TypeScript, Go และอื่นๆ
Amazon Q Developer (เดิมอาจถูกกล่าวถึงในชื่อ Amazon CodeGuru) เป็นผู้ช่วยโค้ดอัจฉริยะที่ขับเคลื่อนด้วย AI จาก AWS ที่ช่วยนักพัฒนาในการเขียนโค้ด ตรวจสอบโค้ด และปรับปรุงคุณภาพของโค้ด
กรณีศึกษา: ไลน์แมนวงใน
จากไลน์แมนวงในได้แบ่งปันประสบการณ์การใช้งาน Infrastructure as Code ในองค์กร โดยบริษัทใช้ Terraform เป็นหลัก เนื่องจากข้อได้เปรียบด้านการทำงานร่วมกับบริการอื่นนอกเหนือจาก AWS
ประโยชน์ที่ไลน์แมนวงในได้รับจากการใช้ IaC:
- การฝึกอบรมพนักงานง่ายขึ้น - พนักงานใหม่สามารถเรียนรู้ระบบได้จากการดู Pull Request และ Commit ก่อนหน้า
- การทำ Code Review - ช่วยให้ตรวจสอบการเปลี่ยนแปลงก่อนนำไปใช้งานจริง
- เปิดโอกาสให้นักพัฒนามีส่วนร่วม - นักพัฒนาสามารถส่ง Pull Request เพื่อเปลี่ยนแปลงโครงสร้างพื้นฐานได้
- ความเหมือนกันระหว่างสภาพแวดล้อม - รับประกันว่าสภาพแวดล้อมการพัฒนาและการผลิตเหมือนกัน
- การสร้างโมดูล - สามารถสร้างโมดูลภายในเพื่อใช้ซ้ำได้
- การทำ Disaster Recovery (DR) - สามารถสร้าง DR site ได้อย่างรวดเร็วโดยเปลี่ยนค่าบางอย่างจาก Production
ไลน์แมนวงในกำลังเปลี่ยนจาก Terraform เป็น OpenTofu เนื่องจากการเปลี่ยนแปลงใบอนุญาตของ HashiCorp ผู้สร้าง Terraform
การเลือกเครื่องมือที่เหมาะสม
ทางไลน์แมนวงในแนะนำว่าการเลือกใช้เครื่องมือขึ้นอยู่กับบริบทและทีมของแต่ละบริษัท ไลน์แมนวงในเลือกใช้เครื่องมือที่เป็นการกำหนดค่า (Configuration) มากกว่าการเขียนโค้ด เนื่องจาก:
- ทีมมีพื้นฐานที่หลากหลาย บางคนไม่ได้มีพื้นฐานการเขียนโปรแกรม
- การเขียนโค้ดที่ซับซ้อนอาจทำให้ยากต่อการดูแลรักษา
- การใช้ไฟล์กำหนดค่าแบบตรงไปตรงมาทำให้ไล่โค้ดง่ายกว่า
สรุป
Infrastructure as Code เป็นเครื่องมือสำคัญที่ช่วยให้องค์กรสามารถพัฒนาระบบได้อย่างรวดเร็วและปลอดภัยไปพร้อมกัน การเลือกเครื่องมือที่เหมาะสมกับทีมและการนำมาใช้อย่างมีประสิทธิภาพจะช่วยให้องค์กรสามารถแข่งขันได้ในยุคดิจิทัล ไม่ว่าจะเป็น AWS CloudFormation, AWS CDK หรือ Terraform ล้วนมีจุดแข็งที่แตกต่างกัน การเข้าใจความต้องการขององค์กรและทีมจะช่วยให้เลือกเครื่องมือได้อย่างเหมาะสม