
บทนำ
หากคุณเป็นนักพัฒนาที่อยากสร้าง API แบบ Serverless โดยไม่ต้องดูแลเครื่องเซิร์ฟเวอร์เอง การใช้ AWS Lambda ร่วมกับ API Gateway และ DynamoDB ถือเป็นทางเลือกที่ยอดเยี่ยม เพราะสามารถสร้างระบบที่ขยายขนาดได้อัตโนมัติ มีค่าใช้จ่ายต่ำ และง่ายต่อการดูแล

ทำความเข้าใจกับสถาปัตยกรรม
แผนภาพด้านล่างแสดงลำดับการทำงานของระบบ REST API ที่สร้างบน AWS:
- 1️⃣ API Gateway รับ HTTP Request จากผู้ใช้
- 2️⃣ Lambda ประมวลผลตาม logic ที่กำหนด
- 3️⃣ DynamoDB ทำหน้าที่เก็บหรือดึงข้อมูล
- 4️⃣ Lambda ส่ง Response กลับไปยัง API Gateway → ผู้ใช้
เตรียมเครื่องมือที่ใช้
- บัญชี AWS (หากยังไม่มี สมัครได้ที่ aws.amazon.com)
- AWS CLI (สำหรับ Deploy Lambda ผ่าน command line)
- Node.js หรือ Python (ใช้เขียน Lambda function)
- Postman (ใช้ทดสอบ API)
ขั้นตอนที่ 1: สร้าง DynamoDB Table
- ไปที่ AWS Console → DynamoDB → Create table
- ใส่ชื่อ Table: Users
- ตั้งค่า Primary key: userId (String)
- กด “Create table”
ขั้นตอนที่ 2: สร้าง Lambda Function
1. ไปที่ AWS Lambda Console → “Create function”
2. เลือก “Author from scratch” แล้วตั้งชื่อว่า userApiHandler
3. Runtime: Node.js 18.x
ตัวอย่างโค้ด Lambda Function
// index.mjs
import AWS from 'aws-sdk';
const dynamo = new AWS.DynamoDB.DocumentClient();
export const handler = async (event) => {
const method = event.httpMethod;
const body = event.body ? JSON.parse(event.body) : {};
if (method === 'GET') {
const result = await dynamo.scan({ TableName: 'Users' }).promise();
return { statusCode: 200, body: JSON.stringify(result.Items) };
}
if (method === 'POST') {
const item = { userId: body.userId, name: body.name, email: body.email };
await dynamo.put({ TableName: 'Users', Item: item }).promise();
return { statusCode: 201, body: JSON.stringify({ message: 'User created', item }) };
}
return { statusCode: 400, body: JSON.stringify({ error: 'Unsupported method' }) };
};
ขั้นตอนที่ 3: สร้าง API Gateway
- เปิดบริการ API Gateway → Create API → HTTP API
- เลือก “Add integration” → Lambda Function → userApiHandler
- เพิ่ม Route GET /users และ POST /users
- กด “Deploy API”
ขั้นตอนที่ 4: ทดสอบ API ผ่าน Postman
ใช้ URL จาก API Gateway เช่น:
https://abc123xyz.execute-api.ap-southeast-1.amazonaws.com/users
ทดสอบ POST: เพิ่มข้อมูลผู้ใช้ใหม่
POST /users
{
"userId": "U001",
"name": "Alice",
"email": "[email protected]"
}
ทดสอบ GET: ดึงรายชื่อผู้ใช้ทั้งหมด
GET /users
ขั้นตอนที่ 5: เพิ่มสิทธิ์ให้ Lambda เข้าถึง DynamoDB
ไปที่ IAM Console → เลือก Role ของ Lambda → Attach Policy ค้นหา “AmazonDynamoDBFullAccess” แล้วเพิ่มสิทธิ์ให้ Lambda

ขั้นตอนที่ 6: ใช้งานจริง (Deploy Production)
หลังจากทดสอบสำเร็จ คุณสามารถตั้งค่า Stage ของ API Gateway ให้เป็น Production และเปิดใช้ CORS เพื่อให้ Frontend เรียกใช้งานได้จากเว็บแอปพลิเคชัน
aws apigateway update-rest-api \
--rest-api-id abc123 \
--patch-operations op=replace,path=/endpointConfiguration/types,value=REGIONAL
โครงสร้างระบบโดยรวม (Architecture Diagram)
ภาพนี้แสดงโครงสร้างของระบบ REST API ที่เชื่อมต่อกันระหว่าง Lambda, API Gateway, และ DynamoDB:

สรุป
เพียงไม่กี่ขั้นตอน คุณก็สามารถสร้าง REST API แบบ Serverless ได้โดยไม่ต้องดูแลเซิร์ฟเวอร์เอง Lambda ทำหน้าที่ประมวลผล, API Gateway เป็นตัวกลางรับ request, และ DynamoDB เก็บข้อมูลทั้งหมด — เป็นสถาปัตยกรรมที่ยืดหยุ่น ปลอดภัย และประหยัดงบอย่างยิ่ง
หากคุณต้องการต่อยอด สามารถเพิ่มระบบ Authentication ด้วย Cognito หรือ ระบบ CI/CD ด้วย CodePipeline เพื่อทำให้ระบบอัตโนมัติเต็มรูปแบบ
📘 บทความโดย King Pool
ภาพประกอบ: Lambda + API Gateway + DynamoDB, IAM Policy, REST API Architecture