หากคุณกำลังพัฒนาระบบ AI และต้องการให้ AI เชื่อมต่อกับเครื่องมือภายนอกได้ การนำ MCP Server ขึ้นไปไว้บนคลาวด์เป็นทางเลือกที่ดีมาก ในบทความนี้เราจะมาเรียนรู้วิธีติดตั้ง MCP Server บน AWS Lambda ร่วมกับ API Gateway ตั้งแต่เริ่มต้นจนใช้งานได้จริง
MCP Server คืออะไร ทำไมต้องติดตั้งบนคลาวด์
MCP Server ย่อมาจาก Model Context Protocol Server เป็นตัวกลางที่ช่วยให้ AI สามารถเรียกใช้งานเครื่องมือต่างๆ ได้ เช่น การค้นหาข้อมูล การอ่านไฟล์ หรือการเชื่อมต่อกับ API อื่นๆ
ทำไมต้องบนคลาวด์:
- เข้าถึงได้จากทุกที่ ทุกอุปกรณ์
- ไม่ต้องดูแลserverเอง
- ปรับขนาดตามความต้องการอัตโนมัติ
- ประหยัดค่าใช้จ่ายด้านฮาร์ดแวร์
เตรียมพร้อมก่อนเริ่มติดตั้ง
สิ่งที่คุณต้องมี:
- บัญชี AWS - สมัครได้ที่ aws.amazon.com (มี Free Tier ใช้ฟรี 12 เดือน)
- Node.js ติดตั้งในเครื่อง (ดาวน์โหลดจาก nodejs.org)
- AWS CLI - เครื่องมือสำหรับสั่งงาน AWS ผ่านCommand Line
- Python หรือ Node.js สำหรับเขียนโค้ด Server
ขั้นตอนที่ 1: ติดตั้ง AWS CLI
ดาวน์โหลดและติดตั้ง AWS CLI จากเว็บไซต์ทางการ เมื่อติดตั้งเสร็จให้เปิด Terminal หรือ Command Prompt แล้วพิมพ์:
aws --version
หากขึ้นเวอร์ชันแสดงว่าติดตั้งสำเร็จ จากนั้นตั้งค่า credentials:
aws configure
กรอกข้อมูลดังนี้:
- AWS Access Key ID: [จาก AWS Console]
- AWS Secret Access Key: [จาก AWS Console]
- Default region name: ap-southeast-1 (สิงคโปร์ ซึ่งใกล้ไทย)
- Default output format: json
สร้างโครงสร้างโปรเจกต์
ขั้นตอนที่ 2: สร้างโฟลเดอร์โปรเจกต์
mkdir mcp-server-aws
cd mcp-server-aws
npm init -y
ขั้นตอนที่ 3: ติดตั้ง dependencies
npm install @modelcontextprotocol/sdk express cors
เขียนโค้ด MCP Server
สร้างไฟล์ชื่อ server.js และเขียนโค้ดดังนี้:
const { MCPServer } = require('@modelcontextprotocol/sdk');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio');
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.use(express.json());
// สร้าง MCP Server instance
const server = new MCPServer({
name: 'aws-lambda-mcp-server',
version: '1.0.0',
});
// เพิ่ม tool ตัวอย่าง - ค้นหาข้อมูล
server.setRequestHandler({
method: 'tools/list',
params: {},
}, async () => {
return {
tools: [
{
name: 'search_info',
description: 'ค้นหาข้อมูลจากฐานข้อมูล',
inputSchema: {
type: 'object',
properties: {
query: {
type: 'string',
description: 'คำค้นหา',
},
},
required: ['query'],
},
},
{
name: 'get_weather',
description: 'ดูสภาพอากาศ',
inputSchema: {
type: 'object',
properties: {
city: {
type: 'string',
description: 'ชื่อเมือง',
},
},
required: ['city'],
},
},
],
};
});
// จัดการเมื่อมีการเรียกใช้ tool
server.setRequestHandler({
method: 'tools/call',
params: {
name: 'search_info',
arguments: { query: 'test' },
},
}, async ({ name, arguments: args }) => {
if (name === 'search_info') {
return {
content: [
{
type: 'text',
text: ผลการค้นหา "${args.query}": พบข้อมูล 10 รายการ,
},
],
};
}
if (name === 'get_weather') {
return {
content: [
{
type: 'text',
text: สภาพอากาศใน${args.city}: อุณหภูมิ 28°C มีเมฆบางส่วน,
},
],
};
}
throw new Error(Unknown tool: ${name});
});
// Health check endpoint
app.get('/health', (req, res) => {
res.json({ status: 'healthy', timestamp: new Date().toISOString() });
});
// Root endpoint
app.get('/', (req, res) => {
res.json({
service: 'MCP Server on AWS Lambda',
version: '1.0.0',
status: 'running'
});
});
module.exports = app;
ติดตั้งบน AWS Lambda
ขั้นตอนที่ 4: สร้างไฟล์ deployment package
เนื่องจาก Lambda ต้องการไฟล์ deployment package เราต้องZipไฟล์ทั้งหมด:
npm install --production
zip -r mcp-server.zip node_modules server.js
ขั้นตอนที่ 5: สร้าง Lambda Function ผ่าน AWS CLI
aws lambda create-function \
--function-name mcp-server \
--runtime nodejs18.x \
--role arn:aws:iam::123456789012:role/lambda-execution-role \
--handler server.handler \
--zip-file fileb://mcp-server.zip \
--timeout 30 \
--memory-size 256
สำคัญ: คุณต้องสร้าง IAM Role สำหรับ Lambda ก่อน โดยให้มีสิทธิ์ดังนี้:
- AWSLambdaBasicExecutionRole
- AmazonAPIGatewayInvokeFullAccess
เชื่อมต่อกับ API Gateway
ขั้นตอนที่ 6: สร้าง REST API
# สร้าง API Gateway
aws apigateway create-rest-api \
--name mcp-server-api
ดึง resource ID
aws apigateway get-resources \
--rest-api-id YOUR_API_ID
ขั้นตอนที่ 7: ตั้งค่า Lambda Permission
aws lambda add-permission \
--function-name mcp-server \
--statement-id apigateway-permission \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn "arn:aws:execute-api:ap-southeast-1:123456789012:*/*"
ขั้นตอนที่ 8: สร้าง API Resource และ Method
# สร้าง resource
aws apigateway create-resource \
--rest-api-id YOUR_API_ID \
--parent-id YOUR_PARENT_ID \
--path-part mcp
สร้าง POST method
aws apigateway put-method \
--rest-api-id YOUR_API_ID \
--resource-id YOUR_RESOURCE_ID \
--http-method POST \
--authorization-type NONE
ตั้งค่า Lambda integration
aws apigateway put-integration \
--rest-api-id YOUR_API_ID \
--resource-id YOUR_RESOURCE_ID \
--http-method POST \
--type AWS_PROXY \
--integration-http-method POST \
--uri arn:aws:apigateway:ap-southeast-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ap-southeast-1:123456789012:function:mcp-server/invocations
ขั้นตอนที่ 9: Deploy API
aws apigateway create-deployment \
--rest-api-id YOUR_API_ID \
--stage-name prod
เมื่อเสร็จแล้วคุณจะได้ URL สำหรับเรียกใช้งาน:
https://YOUR_API_ID.execute-api.ap-southeast-1.amazonaws.com/prod/mcp
ทดสอบการทำงาน
ขั้นตอนที่ 10: ทดสอบด้วย curl
curl -X POST https://YOUR_API_ID.execute-api.ap-southeast-1.amazonaws.com/prod/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
หากได้ผลลัพธ์กลับมาแสดงว่าติดตั้งสำเร็จ!
เชื่อมต่อกับ AI ผ่าน HolySheep AI
หลังจากติดตั้ง MCP Server บน AWS แล้ว คุณสามารถเชื่อมต่อกับ AI ได้หลายตัว เช่น GPT-4, Claude หรือ Gemini ผ่าน HolySheep AI ซึ่งมีจุดเด่นด้านความเร็วและราคาที่คุ้มค่า
// ตัวอย่างการเรียกใช้งานผ่าน HolySheep AI
const response = await fetch('https://api.holysheep.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_HOLYSHEEP_API_KEY'
},
body: JSON.stringify({
model: 'gpt-4.1',
messages: [
{
role: 'user',
content: 'ใช้งาน MCP Server สำหรับค้นหาข้อมูลเกี่ยวกับ AI'
}
],
tools: [
{
type: 'function',
function: {
name: 'search_info',
description: 'ค้นหาข้อมูลจากฐานข้อมูล',
parameters: {
type: 'object',
properties: {
query: {
type: 'string',
description: 'คำค้นหา'
}
},
required: ['query']
}
}
},
{
type: 'function',
function: {
name: 'get_weather',
description: 'ดูสภาพอากาศ',
parameters: {
type: 'object',
properties: {
city: {
type: 'string',
description: 'ชื่อเมือง'
}
},
required: ['city']
}
}
}
],
tool_choice: 'auto'
})
});
const data = await response.json();
console.log(data.choices[0].message);
เหมาะกับใคร / ไม่เหมาะกับใคร
| ✅ เหมาะกับใคร | ❌ ไม่เหมาะกับใคร |
|---|---|
| ผู้ที่มีความรู้เรื่อง AWS พื้นฐาน | ผู้ที่ไม่เคยใช้บริการคลาวด์มาก่อน |
| ทีมพัฒนาที่ต้องการ scaling อัตโนมัติ | ผู้ที่ต้องการความเร็วในการติดตั้ง (ใช้เวลาค่อนข้างนาน) |
| โปรเจกต์ขนาดใหญ่ที่รองรับผู้ใช้จำนวนมาก | โปรเจกต์ขนาดเล็กหรือทดลองใช้งาน |
| องค์กรที่มีงบประมาณสำหรับ infrastructure | ผู้ที่มีงบประมาณจำกัด (AWS มีค่าใช้จ่ายต่อเนื่อง) |
| ต้องการควบคุม infrastructure เองได้เต็มที่ | ต้องการ solution แบบ all-in-one |
ราคาและ ROI
| เปรียบเทียบค่าใช้จ่าย (คำนวณจาก 1 ล้าน requests/เดือน) | |
|---|---|
| บริการ | ค่าใช้จ่ายโดยประมาณ |
| AWS Lambda | $0.20 - $2.00/ล้าน requests |
| API Gateway | $3.50/ล้าน requests |
| Data Transfer | $0.09 - $0.12/GB |
| รวม AWS ประมาณ | $5-10/เดือน |
| HolySheep AI (เปรียบเทียบ) | ประหยัด 85%+ พร้อมเครดิตฟรี |
ROI Analysis:
- เวลาในการติดตั้ง: 2-4 ชั่วโมง
- ค่าบำรุงรักษารายเดือน: $5-20
- ความเร็วในการตอบสนอง: 50-200ms
- เหมาะสำหรับ: ระบบที่ต้องการ reliability สูง
ทำไมต้องเลือก HolySheep
| HolySheep AI vs แพลตฟอร์มอื่น | |
|---|---|
| คุณสมบัติ | HolySheep AI |
| ความเร็ว | ต่ำกว่า 50ms (เร็วกว่าหลายเท่า) |
| อัตราแลกเปลี่ยน | ¥1 = $1 (ประหยัด 85%+ จากราคาตลาด) |
| การชำระเงิน | รองรับ WeChat และ Alipay |
| เครดิตฟรี | รับเครดิตฟรีเมื่อลงทะเบียน |
| ราคา DeepSeek V3.2 | $0.42/MTok (ถูกที่สุดในตลาด) |
| ราคา Gemini 2.5 Flash | $2.50/MTok |
ข้อดีของ HolySheep สำหรับ MCP Server:
- เร็วมาก - ใช้เวลาตอบสนองน้อยกว่า 50ms ทำให้ AI ตอบสนองได้รวดเร็ว
- ราคาถูก - อัตราแลกเปลี่ยนพิเศษ ประหยัดได้มากกว่า 85%
- รองรับหลายโมเดล - GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Flash, DeepSeek V3.2
- เชื่อมต่อง่าย - API เข้ากันได้กับ OpenAI ทำให้ migrate ง่าย
ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
1. ข้อผิดพลาด: Access Denied หรือ 403 Forbidden
สาเหตุ: IAM Role ไม่มีสิทธิ์เพียงพอ
วิธีแก้ไข:
# สร้าง IAM Role ใหม่พร้อมสิทธิ์ที่ถูกต้อง
aws iam create-role \
--role-name lambda-execution-role \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}'
แนบ policies
aws iam attach-role-policy \
--role-name lambda-execution-role \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
2. ข้อผิดพลาด: Lambda Timeout
สาเหตุ: function ทำงานนานเกินกว่าที่กำหนด
วิธีแก้ไข:
# เพิ่ม timeout ของ Lambda
aws lambda update-function-configuration \
--function-name mcp-server \
--timeout 60 \
--memory-size 512
หรือเพิ่มในไฟล์ serverless.yml
timeout: 60
memorySize: 512
3. ข้อผิดพลาด: CORS Error เมื่อเรียกจาก Frontend
สาเหตุ: API Gateway ไม่ได้ตั้งค่า CORS headers
วิธีแก้ไข:
# ตั้งค่า CORS บน API Gateway
aws apigateway put-method-response \
--rest-api-id YOUR_API_ID \
--resource-id YOUR_RESOURCE_ID \
--http-method OPTIONS \
--status-code 200 \
--response-parameters '{"method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true}' \
--response-models '{"application/json": "Empty"}'
aws apigateway put-integration \
--rest-api-id YOUR_API_ID \
--resource-id YOUR_RESOURCE_ID \
--http-method OPTIONS \
--type MOCK \
--request-templates '{"application/json": "{\"statusCode\": 200}"}'
4. ข้อผิดพลาด: Internal Server Error
สาเหตุ: ไฟล์ deployment package ไม่ครบหรือ dependencies ไม่ถูกต้อง
วิธีแก้ไข:
# ตรวจสอบ log ของ Lambda
aws logs get-log-events \
--log-group-name /aws/lambda/mcp-server \
--log-stream-name $(aws logs describe-log-streams \
--log-group-name /aws/lambda/mcp-server \
--query 'logStreams[0].logStreamName' \
--output text)
สร้าง deployment package ใหม่
rm -rf node_modules mcp-server.zip
npm install
zip -r mcp-server.zip node_modules server.js
สรุป
การติดตั้ง MCP Server บน AWS Lambda + API Gateway เป็นวิธีที่ดีสำหรับองค์กรที่ต้องการ infrastructure ที่ยืดหยุ่นและขยายตัวได้ อย่างไรก็ตาม หากคุณกำลังมองหาทางเลือกที่ประหยัดกว่าและเร็วกว่า HolySheep AI เป็นตัวเลือกที่น่าสนใจด้วยเหตุผลดังนี้:
- ความเร็วต่ำกว่า 50ms - เร็วกว่า AWS หลายเท่า
- อัตราแลกเปลี่ยนพิเศษ ¥1=$1 ประหยัด 85%+
- รองรับหลายโมเดล AI คุณภาพสูง
- รับเครดิตฟรีเมื่อลงทะเบียน
ราคาโมเดล AI บน HolySheep (2026):
- GPT-4.1: $8/MTok
- Claude Sonnet 4.5: $15/MTok
- Gemini 2.5 Flash: $2.50/MTok
- DeepSeek V3.2: $0.42/MTok (ราคาถูกที่สุด)