AWS Thai Blog
ตัวอย่างการใช้งาน Model Context Protocol(MCP) หลายๆ server เพื่อเพิ่มความสามารถของ Amazon Q Developer CLI
บทความนี้จะต่อยอดมาจาก blog เรื่อง “แนะนำการใช้งาน Model Context Protocol (MCP) ที่จะช่วยเพิ่มขีดความสามารถให้ Amazon Q Developer CLI ทำงานกับเครื่องมือต่าง ๆ ได้” ซึ่งจะอธิบายเกี่ยวกับ Model Context Protocol(MCP) คืออะไร, การตั้งค่า MCP บน Amazon Q Developer CLI และการใช้งาน MCP เบื้องต้นไปแล้ว ซึ่งบทความนี้จะเป็นตัวอย่างของการนำ Model Context Protocol(MCP) หลาย ๆ Server มาใช้งานจริงเพื่อให้เห็นถึงความสามารถและประสิทธิภาพที่เพิ่มขึ้นของ Amazon Q Developer CLI
ซึ่งใน use case ตัวอย่างที่จะเป็นในส่วนของการช่วยในการทำ AWS Solution Architecture และเรื่องอื่น ๆ ที่เกี่ยวข้องซึ่งโดยปกติแล้ว คนส่วนใหญ่เวลาทำ Solution Architecture/ออกแบบ Solution ก็จะมีกระบวนการและ Challenges คร่าว ๆ ดังต่อไปนี้
- เริ่มจากการทำ Solution Design อาจจะเขียนบน white board หรือมี idea เร็ว ๆ อาจจะเขียนไว้ที่อื่น ๆ ที่สะดวก แต่พอจะใช้งานจริงจำเป็นต้องสร้าง Solution Architecture/Diagram บน draw.io เป็นต้น
- จะรู้ได้อย่างไรว่า Solution Architecture ที่เขียนหรือออกแบบขึ้นมา ออกแบบตาม AWS Best Practices? หรือควรมี component อะไรเพิ่มเติม
- Solution Architecture ที่ออกแบบมาโดยเบื้องต้นมีค่าใช้ประมาณเท่าไร (Cost)
- ถ้า Solution Architecture ที่ออกแบบมาอยากจะ Deploy ซึ่งอยากจะ Create เป็น IaC (Infrastructure as a Code) จะต้องเขียน Code แบบไหน?
ซึ่งใน scenario ที่จะทำการทดสอบกัน จะใช้งาน Amazon Q Developer CLI ร่วมกับ MCP หลาย ๆ Server เพื่อมาตอบสนอง หรือ Challenge ดังกล่าว ซึ่งในบทความนี้จะใช้ MCP Server ดังนี้
- awslabsaws_diagram_mcp_server : สำหรับการเขียน diagram
- awslabsterraform_mcp_server : สำหรับการตรวจสอบ terrafrom
- awslabscost_analysis_mcp_server : สำหรับการวิเคราะห์ราคา
- awslabsaws_documentation_mcp_server : สำหรับการ review architect
สำหรับ MCP Server ที่ AWS มี สามารถดูรายละเอียดได้จาก link AWS MCP Server . ซึ่งแต่ละ MCP Server จะออกแบบมาเฉพาะทางเพื่อช่วยให้ทำงานของคุณมีประสิทธิภาพที่มากขึ้น
แนะนำการใช้งาน Amazon Q Developer ใน VS Code
1. การสร้าง Diagram
1.1 เริ่มจากไอเดีย ไม่ว่าจาก ภาพที่วาดด้วยมือหรือจะบน whiteboard หรือ บนกระดาษเปล่า ไปเป็น AWS diagram
สั่งให้ Amazon Q Developer CLI ในการอ่านไฟล์ภาพ และทำการสร้าง diagram
Prompt
Read the AWS diagram at aws-diagram.jpg and create a AWS architecture diagram with edge label (labeled connections) using diagram mcp server
Prompt นี้จะเป็นการสร้างไฟล์ draw.io. สามารถนำไป import ไปใน draw.io ได้ ซึ่งผลลัพธ์จะได้ประมาณรูปข้างล่างนี้
หมายเหตุ : รูป diagram ที่ได้อาจจะแตกต่างกันไปไม่เหมือนกับที่แสดงข้างล่าง
2. Infrastructure as Code สำหรับการ deployment
หลังจากเราได้ diagram มาแล้ว ขั้นตอนถัดมาคือ เราจะลอง deploy solution นี้ได้อย่างไร ,ในที่นี้เราจะใช้ code generation ของ Amazon Q Developer CLI ในการเขียน Terraform code และใช้ MCP Terrafrom ในการ validate code นั้น เพื่อให้ได้ค่าที่ถูกต้องโดยระบุข้อมูลเพิ่มเติมดังตัวอย่างต่อไปนี้
2.1 เริ่มต้นจากเขียน Terraform code
Prompt
ผลลัพธ์ที่ได้คือ Terrafrom file ของ component ทั้งหมด ซึ่งเราสามารถเข้าไปปรับแต่งแก้ไข code ได้ทีหลัง
Result
2.2 ใช้ MCP Terrafrom ในการ validate code ก่อนนำไป deploy จริง (awslabsterraform_mcp_server)
Prompt
Result
Terraform MCP จะทำการตรวจสอบและเสนอข้อแนะนำ โดยจะเห็นได้ว่า mcp เจอปัญหาในส่วนของ route53.tf
ขั้นตอนสุดท้ายคือการสรุปผล
หมายเหตุ: เราสามารถเขียนเพิ่มเติมให้ Amazon Q Developer CLI ตรวจสอบเบื้องต้นก่อนว่า แต่ละ service สามารถใช้งานใน region ที่ต้องการจะติดตั้งหรือไม่
Prompt
Check if this architecture can be deployed in ap-southeast-7, are all the required services available?
หลังจากที่ได้ Terraform code ในการ deploy solution นี้แล้ว ก่อน deploy เราอยากทราบว่าถ้า deploy ตามนี้ไป จะเสียค่าใช้จ่ายเท่าไหร่ เราสามารถใช้ MCP Cost Analysis เข้ามาช่วยตรงนี้ได้
Cost analysis จะมีหลายเครื่องมือด้วยกันในการตรวจสอบราคา เช่น get_pricing_from_web และ get_pricing_from_api ซึ่งในตัวอย่างจะใช้งาน get_pricing_from_api เพื่อทำการประเมิณราคาเบื้องต้น
Prompt
Use cost_analysis_mcp_server get_pricing_from_api to determine an estimate on how much this architecture will cost, save the report as cost.md file
ระบบก็จะทำการตรวจสอบราคาของ โปรเจคนี้ รวมไปถึงข้อแนะนำสำหรับการทำ cost optimization ซึ่งเราสามารถทำการ save เป็น report ในรูปแบบของ markdown ได้
4. รีวิว solution (awslabsaws_documentation_mcp_server)
จาก solution ที่มี เราอยากทราบว่า solution ที่ออกแบบมาดีเป็นไปตาม best practice แล้วหรือยัง มีจุดไหนที่สามารถเพิ่มเติมปรับปรุงได้อีก ในส่วนนี้สามารถใช้ MCP Documentation เข้าไปอ่าน AWS Well Architected Framwork เพื่อมารีวิว solution ได้
Prompt
Review the architecture based on AWS well architect framework using documentation mcp server, provide suggestion for improvements
ระบบก็จะทำการอ่าน document ในแต่ละหัวข้อของ Well Architected Framework แล้วสรุปให้ว่าควรปรับเปลี่ยนหรือเพิ่มเติมส่วนไหนบ้าง
Result
ยกตัวอย่าง(ส่วนหนึ่ง) Amazon Q Deverloper CLI เสนอให้ปรับปรุงในส่วนของ security pillar ดังนี้
Result
ซึ่งจะเห็นว่าระบบแนะนำให้เพิ่ม WAF, CloudTrail และ service อื่นๆตาม best practice
5. ทำการรวบรวมข้อมูลออกมาเป็น report
มาถึงขั้นตอนนี้เราจะนำข้อมูลที่ได้มาทั้งหมดมาทำเป็น report เพื่อให้สะดวกต่อการอ่านหรือการแชร์ให้คนอื่น
โดยใน prompt ข้างล่างนี้จะมีการสั่งให้สร้าง diagram เพิ่มโดยอ้างอิงจากข้อแนะนำที่ทำไว้ในข้อ 4 เพื่อแสดงการเปรียบเทียบก่อนและหลัง, มีการระบุสไตล์และเนื้อหา ของ report ที่ต้องการ
Prompt
Create a html report that includes the architecture review and the cost analysis.
Also create the new diagram based on the recommendations, put previous and purposed diagram in the report for comparison.
Use CloudScape design as the template. The web page must look clean, professional and easy to read.
Here are the topics for the report.
Architecture overview ,
Key metrics, Infrastructure components,
Network configuration, cost analysis,
Cost breakdown,
Recommendations and conclusion
Result
ผลลัพธ์ที่ได้จะเป็น report ที่อยู่ในรูปแบบ file html ซึ่งเราสามารถ save ออกมาเป็น PDF ได้
หรือถ้าต้องการ report ในรูปแบบของการนำเสนอสามารถเขียน prompt เพิ่มเติมได้ดังนี้
Prompt
Read the report output at aws-web-app-architecture-analysis.html,
I want to create this as a powerpoint-style html report.
A4 landscape size.
Never crop the content ,If content is too long for one slide, split it across multiple slides.
Result
รูปแบบของรายงานที่ได้จะแสดงผลเป็นแนวนอนแทนแนวตั้ง แบ่งเป็นหน้าๆ เหมาะสำหรับการนำไปนำเสนอมากขึ้น
หมายเหตุ : เราสามารถระบุรายละเอียดและรุปแบบของ reportได้ ไม่ว่าจะเป็นหัวข้อ,โทนสี, ข้อมูลที่ต้องการ หรือ สไตล์ ในที่นี้จะใช้ดีไซน์ต้นแบบจาก Cloudscape
การทำรายงานในส่วนของ report นั้นสามารถนำวิธีนี้ไปประยุกต์ใช้ได้กับการใช้งานส่วนอื่นได้ เช่น ให้วิเคราะห์ข้อมูลจาก Trust Advisor แล้วสรุปเป็นรายงาน , วิเคราะห์ VPC flow log หรือแม้แต่ CloudTrail log เป็นต้น
สรุป
จากตัวอย่างข้างบนจะเห็นได้ว่า เราสามารถนำ MCP server หลายๆ server มาใช้งานร่วมกันเพื่อสร้างสิ่งที่เราต้องการได้ เช่นในกรณีที่ต้องทำรายงานแบบในตัวอย่างด้วยตัวเองทั้งหมด อาจจะใช้เวลาหลายชั่วโมงหรือหลายวัน แต่ด้วยความสามารถของ Amazon Q Developer CLI และ MCP server สามารถช่วยสร้างขึ้นหรือแก้ไขสิ่งที่เราต้องการได้ในเวลาอันสั้น ซึ่ง ณ ปัจจุบัน MCP server มีการใช้งานอย่างแพร่หลายรวมถึง AWS เองก็มี official MCP server ให้เลือกใช้งานได้งานตามความเหมาะสม เพื่อเข้ามาช่วยเพิ่มประสิทธิภาพในการทำงานได้