บทนำ: ฐานข้อมูลคลาวด์กินเงินมากกว่าที่คุณคิด
ลองเปิดดูบิลคลาวด์ของคุณแล้วสังเกตให้ดีๆ สิ — ค่าใช้จ่ายฐานข้อมูลมักจะแอบขึ้นมาเป็นอันดับต้นๆ เสมอ จากข้อมูลของ FinOps Foundation ปี 2026 องค์กรส่วนใหญ่ใช้งบคลาวด์ไปกับ Managed Database ถึง 25-40% ของค่าใช้จ่ายทั้งหมดเลยนะ
แต่ที่น่าตกใจกว่านั้น — มากกว่า 30% ของงบเหล่านี้ถูกใช้ไปอย่างสิ้นเปลือง ไม่ว่าจะเป็นการ Over-provisioning, ลืมปิด Dev/Test instances หรือเลือก pricing model ไม่เหมาะสม พูดง่ายๆ คือเอาเงินไปทิ้งน้ำนั่นแหละ
ข่าวดีก็คือ ในปี 2026 นี้มีเครื่องมือและ pricing model ใหม่ๆ ออกมาเพียบ โดยเฉพาะ AWS Database Savings Plans ที่เปิดตัวเมื่อเดือนธันวาคม 2025 ซึ่งเปลี่ยนเกมไปเลย รวมถึง Azure Reserved Capacity, GCP Committed Use Discounts และเทคนิค Right-Sizing ที่ช่วยประหยัดได้ตั้งแต่ 20% ไปจนถึง 85% เลยทีเดียว
บทความนี้จะพาไปดูกลยุทธ์ลดค่าใช้จ่ายฐานข้อมูลคลาวด์แบบครบวงจร ทั้ง AWS, Azure และ GCP พร้อมคำสั่ง CLI ที่ก็อปไปใช้ได้เลย ไม่ว่าจะใช้ RDS, Aurora, DynamoDB, Azure SQL Database หรือ Cloud SQL ก็ตาม
AWS Database Savings Plans: ตัวเปลี่ยนเกมแห่งปี 2026
เอาจริงๆ ตอนที่ AWS ประกาศ Database Savings Plans ในเดือนธันวาคม 2025 คนในวงการ FinOps ตื่นเต้นกันมาก เพราะนี่เป็นครั้งแรกที่ AWS เสนอส่วนลดแบบยืดหยุ่นสำหรับบริการฐานข้อมูล ครอบคลุมถึง 9 บริการ ได้แก่ Aurora, RDS, DynamoDB, ElastiCache (Valkey), DocumentDB, Neptune, Keyspaces, Timestream และ DMS
อัตราส่วนลดตามประเภทบริการ
| ประเภท Deployment | ส่วนลดสูงสุด | ตัวอย่าง |
|---|---|---|
| Serverless | สูงสุด 35% | Aurora Serverless v2, DynamoDB On-Demand |
| Provisioned Instances | สูงสุด 20% | RDS, Aurora Provisioned, ElastiCache |
| DynamoDB On-Demand Throughput | สูงสุด 18% | DynamoDB Read/Write Capacity Units |
| DynamoDB Provisioned Capacity | สูงสุด 12% | DynamoDB Provisioned Mode |
ข้อดีเหนือ Reserved Instances แบบเดิม
สิ่งที่ทำให้ Database Savings Plans พิเศษจริงๆ คือความยืดหยุ่น 4 มิติ:
- Cross-Region: ย้าย workload ข้ามภูมิภาคได้โดยไม่สูญเสียส่วนลด — อันนี้สำคัญมากสำหรับทีมที่มี multi-region setup
- Cross-Engine: เปลี่ยน database engine ได้ เช่น จาก RDS MySQL เป็น Aurora PostgreSQL โดยส่วนลดยังอยู่
- Cross-Instance: เปลี่ยน instance family และขนาดได้อิสระ ทำ right-sizing ได้สบายใจ
- Cross-Service: ย้ายระหว่างบริการที่รองรับได้ เช่น จาก RDS ไป Aurora ไม่ต้องกังวลเรื่องส่วนลด
เทียบกับ Reserved Instances แบบเดิมที่ล็อคแทบทุกอย่าง นี่ถือว่าต่างกันลิบลับเลย
วิธีซื้อ Database Savings Plans ผ่าน AWS CLI
ก่อนจะซื้อ ควรตรวจสอบ recommendation จาก AWS ก่อนเสมอ:
# ตรวจสอบ on-demand usage ปัจจุบัน
aws ce get-cost-and-usage \
--time-period Start=2026-02-01,End=2026-03-01 \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--filter '{'
"Dimensions": {
"Key": "SERVICE",
"Values": ["Amazon Relational Database Service",
"Amazon DynamoDB",
"Amazon ElastiCache"]
}
'}'
# ดู Savings Plans recommendations
aws cost-optimization-hub list-recommendations \
--filter '{'
"actionTypes": ["Purchase Savings Plans"]
'}'
# ซื้อ Database Savings Plan (ตัวอย่าง: $10/hr, 1 ปี)
aws savingsplans create-savings-plan \
--savings-plan-offering-id <offering-id> \
--commitment 10.0 \
--savings-plan-type "DatabaseSavingsPlans"
ข้อจำกัดที่ต้องรู้ก่อนตัดสินใจ
แม้จะดีแค่ไหน Database Savings Plans ก็มีข้อจำกัดที่ควรรู้:
- รองรับเฉพาะ Instance Generation 7+: ถ้ายังใช้ db.r5, db.r6g หรือ db.m5 อยู่ ต้องอัปเกรดก่อนถึงจะได้ส่วนลด
- ElastiCache เฉพาะ Valkey: Redis และ Memcached ไม่รองรับ (ตรงนี้หลายคนพลาด)
- ระยะเวลา 1 ปีเท่านั้น: ไม่มีตัวเลือก 3 ปี จึงแข่งกับส่วนลดสูงสุดของ Reserved Instances 3 ปีไม่ได้ เช่น DynamoDB RI 3 ปีลดได้ถึง 77%
- ชำระแบบ No Upfront เท่านั้น: ไม่มีตัวเลือกจ่ายล่วงหน้าเพื่อรับส่วนลดเพิ่ม
Aurora I/O-Optimized: ประหยัดได้ 30-40% สำหรับ Workload หนัก I/O
ถ้าคุณใช้ Aurora อยู่แล้วรู้สึกว่าค่า I/O แพงจัง ลองเช็คดูว่า I/O คิดเป็นกี่เปอร์เซ็นต์ของค่า Aurora ทั้งหมด ถ้าเกิน 25% ล่ะก็ ควรเปลี่ยนเป็น I/O-Optimized เลย
หลักการง่ายๆ คือ แทนที่จะจ่ายค่า I/O ต่อล้าน request คุณจ่ายค่า storage ในอัตราที่สูงขึ้นนิดหน่อย แต่ I/O ทั้งหมดฟรี สำหรับ workload ที่ I/O หนักๆ แบบนี้ประหยัดได้เยอะมาก
ที่สำคัญคือ ไม่มีผลกระทบต่อประสิทธิภาพเลย — latency, throughput ทุกอย่างเหมือนเดิม เปลี่ยนแค่โมเดลราคา รองรับทั้ง Aurora MySQL-Compatible และ Aurora PostgreSQL-Compatible
วิธีตรวจสอบว่าควรเปลี่ยนหรือไม่
# ตรวจสอบค่า I/O ของ Aurora cluster ในเดือนที่ผ่านมา
aws ce get-cost-and-usage \
--time-period Start=2026-02-01,End=2026-03-01 \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--group-by Type=DIMENSION,Key=USAGE_TYPE \
--filter '{'
"And": [
{"Dimensions": {"Key": "SERVICE", "Values": ["Amazon Relational Database Service"]}},
{"Dimensions": {"Key": "USAGE_TYPE", "Values": ["Aurora:StorageIOUsage"]}}
]
'}'
# เปลี่ยนเป็น I/O-Optimized
aws rds modify-db-cluster \
--db-cluster-identifier my-aurora-cluster \
--storage-type aurora-iopt1 \
--apply-immediately
สูตรง่ายๆ: ถ้า (ค่า I/O ต่อเดือน) / (ค่า Aurora ทั้งหมดต่อเดือน) > 0.25 → เปลี่ยนเป็น I/O-Optimized ได้เลย คุ้มแน่นอน
DynamoDB: เทคนิคลดค่าใช้จ่ายที่หลายคนมองข้าม
Standard-IA Table Class — ประหยัด Storage ได้ถึง 60%
DynamoDB Standard-IA (Infrequent Access) เป็นฟีเจอร์ที่หลายทีมยังไม่ค่อยรู้จัก เหมาะกับ table ที่เก็บข้อมูลเยอะแต่เข้าถึงไม่บ่อย อย่างเช่น order history, user activity logs หรือ audit trails
ที่ชอบคือ การเปลี่ยนไม่ต้อง downtime, ไม่ต้อง migrate data และไม่ต้องแก้โค้ดเลยสักบรรทัด — แค่เปลี่ยน configuration ก็จบ
# เปลี่ยน table class เป็น Standard-IA
aws dynamodb update-table \
--table-name OrderHistory \
--table-class STANDARD_INFREQUENT_ACCESS
# ตรวจสอบ table class ปัจจุบัน
aws dynamodb describe-table \
--table-name OrderHistory \
--query "Table.TableClassSummary"
เลือก Pricing Mode ที่เหมาะสม
DynamoDB มี 2 pricing mode หลักที่ต้องเลือกให้ถูก:
- On-Demand: เหมาะกับ workload ที่ traffic ผันผวนมากจนคาดเดาไม่ได้ เช่น flash sale หรือ event-driven ค่าต่อ request สูงกว่า แต่สะดวกตรงที่ไม่ต้อง plan capacity
- Provisioned: เหมาะกับ workload ที่ traffic ค่อนข้างคงที่ ประหยัดกว่า On-Demand เยอะเลย โดยเฉพาะเมื่อรวมกับ Auto Scaling
จากประสบการณ์ ทีมหลายทีมเริ่มด้วย On-Demand แล้วลืมเปลี่ยนเป็น Provisioned เมื่อ traffic เริ่มคงที่แล้ว ตรงนี้เสียเงินไปฟรีๆ เลย
# เปลี่ยนจาก On-Demand เป็น Provisioned พร้อม Auto Scaling
aws dynamodb update-table \
--table-name UserSessions \
--billing-mode PROVISIONED \
--provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=50
# ตั้งค่า Auto Scaling สำหรับ Read Capacity
aws application-autoscaling register-scalable-target \
--service-namespace dynamodb \
--resource-id "table/UserSessions" \
--scalable-dimension "dynamodb:table:ReadCapacityUnits" \
--min-capacity 10 \
--max-capacity 500
aws application-autoscaling put-scaling-policy \
--service-namespace dynamodb \
--resource-id "table/UserSessions" \
--scalable-dimension "dynamodb:table:ReadCapacityUnits" \
--policy-name "UserSessionsReadScaling" \
--policy-type TargetTrackingScaling \
--target-tracking-scaling-policy-configuration '{'
"TargetValue": 70.0,
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBReadCapacityUtilization"
}
'}'
RDS Right-Sizing ด้วย AWS Compute Optimizer
ปัญหาคลาสสิกที่เจอบ่อยมากคือ RDS instances ถูก over-provision จากข้อมูลของ AWS เอง ทีมที่ใช้ Compute Optimizer recommendations ลดค่าใช้จ่ายได้ 20-40% โดยไม่กระทบ performance เลย
ทำไมถึงเป็นแบบนี้? ก็เพราะทีมส่วนใหญ่เลือก instance ใหญ่กว่าที่จำเป็นตั้งแต่แรก ด้วยความกลัวว่า production จะมีปัญหา แล้วก็ไม่เคยกลับมา review อีก
AWS Compute Optimizer จะวิเคราะห์ CloudWatch metrics 14 วันย้อนหลังแล้วแนะนำ instance ที่เหมาะสม รองรับ RDS for MySQL, PostgreSQL, Aurora MySQL และ Aurora PostgreSQL
# เปิดใช้งาน Compute Optimizer (ถ้ายังไม่ได้เปิด)
aws compute-optimizer update-enrollment-status \
--status Active \
--include-member-accounts
# ดู recommendations สำหรับ RDS instances ที่ over-provisioned
aws compute-optimizer get-rds-database-recommendations \
--filters name=Finding,values=Overprovisioned
# ดูรายละเอียด recommendation สำหรับ instance เฉพาะ
aws compute-optimizer get-rds-database-recommendation-projected-metrics \
--resource-arn arn:aws:rds:ap-southeast-1:123456789012:db:mydb \
--stat Maximum \
--period 86400 \
--start-time 2026-02-01T00:00:00Z \
--end-time 2026-03-01T00:00:00Z
อย่าลืมเปลี่ยนไปใช้ Graviton
อีกเรื่องที่อยากเน้นคือ AWS Graviton processors ให้ price-performance ดีกว่า x86 ถึง 20-30% สำหรับ database workloads ปัจจุบัน Graviton3 (R7g, M7g) รองรับ RDS for MySQL, PostgreSQL, MariaDB และ Aurora แล้ว
การย้ายไป Graviton ไม่ซับซ้อนอย่างที่คิด แค่เปลี่ยน instance class ก็เสร็จ:
# ตรวจสอบ instance class ปัจจุบัน
aws rds describe-db-instances \
--db-instance-identifier mydb \
--query "DBInstances[0].DBInstanceClass"
# เปลี่ยนจาก x86 เป็น Graviton (เช่น db.r6i.xlarge -> db.r7g.xlarge)
aws rds modify-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.r7g.xlarge \
--apply-immediately
Azure SQL Database: กลยุทธ์ลดค่าใช้จ่ายปี 2026
Reserved Capacity — ประหยัดได้สูงสุด 55%
สำหรับ workload ที่ใช้งานต่อเนื่องบน Azure SQL Database ตัวเลือก Reserved Capacity ช่วยได้เยอะ:
- 1 ปี: ประหยัดได้สูงสุด 33%
- 3 ปี: ประหยัดได้สูงสุด 55%
จำไว้อย่างนะว่า Reserved Capacity ใช้ได้เฉพาะ Provisioned compute tier เท่านั้น — Serverless tier ใช้ไม่ได้ทั้ง reserved capacity และ Azure Hybrid Benefit
Azure Hybrid Benefit — ลดได้อีกถึง 85%
ถ้าองค์กรมี SQL Server licenses ที่มี Software Assurance อยู่แล้ว ตรงนี้ถือว่าโชคดีมาก สามารถใช้ Azure Hybrid Benefit ร่วมกับ Reserved Capacity เพื่อลดค่าใช้จ่ายได้สูงสุดถึง 85%
หลักการคือเปลี่ยนจาก full-licensed rate เป็น compute-only cost ซึ่งต่างกันมหาศาล
# ตรวจสอบ Azure SQL Database ปัจจุบัน
az sql db list \
--resource-group myResourceGroup \
--server myserver \
--query "[].{Name:name, Sku:currentSku.name, Tier:currentSku.tier, Capacity:currentSku.capacity}" \
--output table
# เปิดใช้ Azure Hybrid Benefit
az sql db update \
--resource-group myResourceGroup \
--server myserver \
--name mydb \
--license-type BasePrice
# ดู cost recommendations จาก Azure Advisor
az advisor recommendation list \
--category cost \
--output table
Serverless Tier สำหรับ Workload ไม่สม่ำเสมอ
Azure SQL Database Serverless เหมาะมากกับ workload ที่ใช้งานเป็นช่วงๆ เช่น dev/test, reporting databases หรือ batch processing จ่ายเฉพาะ compute ที่ใช้จริงต่อวินาที และมีฟีเจอร์ Auto-Pause ที่จะหยุดเรียกเก็บ compute เมื่อไม่มีใครใช้งาน
สำหรับ dev/test environments ที่ใช้งานแค่ช่วงเวลาทำงาน ประหยัดได้ง่ายๆ 60-70%
# สร้าง Azure SQL Database แบบ Serverless
az sql db create \
--resource-group myResourceGroup \
--server myserver \
--name mydb-dev \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--min-capacity 0.5 \
--capacity 4 \
--auto-pause-delay 60
Elastic Pools — แชร์ทรัพยากรข้ามหลาย Database
ถ้ามีหลาย database ที่ usage pattern ไม่ตรงกัน (เช่น database A ใช้หนักตอนเช้า database B ใช้หนักตอนบ่าย) Elastic Pools ช่วยให้แชร์ compute resources ได้ แทนที่แต่ละ database จะจอง compute แยกกัน ตรงนี้ประหยัดได้พอสมควร
GCP Cloud SQL และ AlloyDB: Committed Use Discounts
Cloud SQL CUDs — ประหยัดได้สูงสุด 52%
ฝั่ง Google Cloud ก็มี Committed Use Discounts (CUDs) สำหรับ Cloud SQL และ AlloyDB เช่นกัน:
- 1 ปี: ส่วนลด 25% (จ่ายเพียง 75% ของราคา On-Demand)
- 3 ปี: ส่วนลด 52% (จ่ายเพียง 48% ของราคา On-Demand)
CUDs ของ Cloud SQL ค่อนข้างยืดหยุ่น ใช้ได้กับทุก machine shape และทุก database engine (MySQL, PostgreSQL, SQL Server) ภายใน region เดียวกัน แต่ไม่ครอบคลุม storage, backups, IP addresses และ network egress นะ
# ตรวจสอบ Cloud SQL instances ปัจจุบัน
gcloud sql instances list \
--format="table(name, databaseVersion, settings.tier, region, state)"
# ดู CUD commitments ที่มีอยู่
gcloud billing budgets list \
--billing-account=BILLING_ACCOUNT_ID
# ซื้อ CUD ผ่าน Google Cloud Console
# ไปที่ Billing > Commitments > Purchase commitment
# เลือก Cloud SQL และกำหนดจำนวน vCPU/Memory ที่ต้องการ commit
AlloyDB — ทางเลือกประสิทธิภาพสูงพร้อม CUDs
AlloyDB สำหรับ PostgreSQL ของ Google Cloud ให้ performance สูงกว่า Cloud SQL for PostgreSQL ทั่วไปถึง 4 เท่า และรองรับ CUDs ในอัตราเดียวกัน (25% สำหรับ 1 ปี, 52% สำหรับ 3 ปี)
ที่น่าสนใจคือ AlloyDB CUDs ใช้ได้กับ vCPU และ memory usage โดยอัตโนมัติข้ามทุก region และทุก project ยืดหยุ่นกว่า Cloud SQL CUDs ที่จำกัดอยู่แค่ region เดียว
ใช้ Basic Instance สำหรับ Non-Production
อีกเรื่องที่มักมองข้ามคือ Cloud SQL มีตัวเลือก Basic Instance (ไม่มี High Availability) สำหรับ dev/test ซึ่งประหยัดได้ประมาณ 50% เมื่อเทียบกับ HA instance ระวังอย่าเผลอใช้ HA configuration กับ environment ที่ไม่จำเป็น เพราะมันเพิ่มค่า compute เป็นสองเท่าเลย
เทคนิคลดค่าใช้จ่ายข้ามแพลตฟอร์ม (Cross-Cloud)
1. ปิด Dev/Test Databases นอกเวลาทำงาน
พูดตรงๆ — ฐานข้อมูล Dev/Test ที่เปิดอยู่ 24/7 เป็นหนึ่งในแหล่ง waste ที่ใหญ่ที่สุดที่เจอ
ลองคิดดู ถ้าใช้งานแค่ 10 ชั่วโมงต่อวัน จันทร์-ศุกร์ (50 ชม./สัปดาห์) เทียบกับ 168 ชม./สัปดาห์ที่จ่ายอยู่ นั่นหมายความว่าเสียเงินไปฟรีๆ ถึง 70%
| แพลตฟอร์ม | วิธีจัดการ |
|---|---|
| AWS RDS | ใช้ AWS Instance Scheduler หรือ Lambda function สั่ง stop/start |
| Azure SQL | ใช้ Serverless tier พร้อม Auto-Pause หรือ Azure Automation |
| GCP Cloud SQL | ใช้ Cloud Scheduler + Cloud Functions สั่ง stop/start |
2. ลบ Snapshot และ Backup ที่ไม่จำเป็น
Snapshot ที่สะสมมานานเป็นค่าใช้จ่ายแฝงที่หลายคนมองข้าม บางองค์กรมี snapshot เก่าหลายร้อยอันที่ไม่มีใครใช้แต่ยังเสียค่า storage อยู่ ควรตรวจสอบและลบ snapshot เก่าที่ไม่จำเป็นเป็นประจำ:
# AWS: ดู RDS snapshots เก่ากว่า 90 วัน
aws rds describe-db-snapshots \
--snapshot-type manual \
--query "DBSnapshots[?SnapshotCreateTime<='2025-12-01'].{ID:DBSnapshotIdentifier,Created:SnapshotCreateTime,Size:AllocatedStorage}" \
--output table
# Azure: ดู long-term retention backups
az sql db ltr-backup list \
--resource-group myResourceGroup \
--server myserver \
--database mydb \
--output table
# GCP: ดู Cloud SQL backups
gcloud sql backups list \
--instance=my-instance \
--format="table(id, windowStartTime, status, type)"
3. ตรวจสอบ Idle Connections และใช้ Connection Pooling
Idle database connections ไม่ได้เพิ่มค่าใช้จ่ายโดยตรง แต่ทำให้ต้องใช้ instance ใหญ่กว่าที่จำเป็น ใช้ Connection Pooling อย่าง PgBouncer (สำหรับ PostgreSQL) หรือ ProxySQL (สำหรับ MySQL) เพื่อลดจำนวน connections แล้วจะสามารถลดขนาด instance ลงได้
4. เลือก Region ที่ราคาถูกกว่า
หลายคนอาจไม่รู้ว่าราคา database instances ต่างกันมากระหว่าง region เช่น US East (Virginia) มักถูกกว่า Asia Pacific (Singapore) ถึง 10-20% ถ้า latency ไม่ใช่ปัจจัยหลัก ลองพิจารณาใช้ region ที่ถูกกว่าสำหรับ workload บางประเภท อย่าง batch processing หรือ analytics
ตารางเปรียบเทียบ: กลยุทธ์ลดค่าใช้จ่ายทุกแพลตฟอร์ม
| กลยุทธ์ | AWS | Azure | GCP | ประหยัดได้ |
|---|---|---|---|---|
| Commitment Discount (1 ปี) | Database Savings Plans (20-35%) | Reserved Capacity (33%) | CUDs (25%) | 20-35% |
| Commitment Discount (3 ปี) | Reserved Instances (สูงสุด 77%) | Reserved Capacity (55%) | CUDs (52%) | 52-77% |
| Right-Sizing | Compute Optimizer | Azure Advisor | Recommender | 20-40% |
| Serverless/Auto-Pause | Aurora Serverless v2 | SQL Database Serverless | AlloyDB Omni (self-managed) | 60-70% (dev/test) |
| License Optimization | BYOL (Oracle, SQL Server) | Azure Hybrid Benefit (สูงสุด 85%) | ไม่มี (Open Source เท่านั้น) | 30-85% |
| I/O Optimization | Aurora I/O-Optimized | Hyperscale tier | SSD storage optimization | 30-40% |
| Storage Class Optimization | DynamoDB Standard-IA | Archive/Cool tier | Nearline/Coldline (indirect) | สูงสุด 60% |
Checklist สำหรับ Database Cost Optimization
เอา checklist นี้ไปใช้ตรวจสอบฐานข้อมูลคลาวด์ขององค์กรได้เลย:
- ตรวจสอบ Utilization: ดู CPU, Memory และ I/O utilization เฉลี่ย ถ้าต่ำกว่า 40% ให้พิจารณา Right-Size ได้เลย
- เลือก Commitment ที่เหมาะสม: สำหรับ workload ที่มั่นคง ซื้อ Savings Plans, Reserved Capacity หรือ CUDs
- ปิด Non-Production นอกเวลาทำงาน: ตั้ง schedule หรือใช้ auto-pause อย่าปล่อยให้เปิดทิ้งไว้
- ลบ Snapshot เก่า: ตั้ง lifecycle policy สำหรับ automated cleanup
- ใช้ Instance Generation ล่าสุด: Graviton (AWS) หรือ latest generation ให้ price-performance ดีกว่าเสมอ
- ตรวจสอบ Pricing Mode: On-Demand vs Provisioned สำหรับ DynamoDB, Serverless vs Provisioned สำหรับ relational
- ใช้ Connection Pooling: ลดจำนวน connections เพื่อลดขนาด instance ที่ต้องการ
- ตรวจสอบ I/O Pattern: พิจารณา Aurora I/O-Optimized ถ้า I/O คิดเป็นมากกว่า 25% ของค่าใช้จ่าย
คำถามที่พบบ่อย (FAQ)
AWS Database Savings Plans กับ Reserved Instances ต่างกันอย่างไร?
Database Savings Plans commit เป็นจำนวนเงินต่อชั่วโมง ($/hr) และใช้ได้ยืดหยุ่นข้าม region, engine, instance family และบริการต่างๆ ส่วน Reserved Instances ล็อคกับ configuration เฉพาะ (engine, instance type, region) แต่ให้ส่วนลดสูงกว่าในระยะยาว 3 ปี พูดง่ายๆ คือ ถ้าต้องการความยืดหยุ่น เลือก Savings Plans ถ้า workload มั่นคงและไม่ค่อยเปลี่ยน เลือก Reserved Instances
Aurora I/O-Optimized เหมาะกับทุก workload หรือเปล่า?
ไม่ใช่ทุก workload ที่จะคุ้ม ถ้า I/O costs ต่ำกว่า 25% ของค่า Aurora ทั้งหมด Standard configuration ยังถูกกว่า I/O-Optimized เหมาะสำหรับ OLTP workloads ที่มี read/write หนักๆ เช่น e-commerce transactions, real-time analytics หรือ SaaS applications ที่มี concurrent users จำนวนมาก
ควรเลือก Provisioned หรือ On-Demand สำหรับ DynamoDB?
ถ้า traffic คาดเดาได้ในระดับหนึ่ง ใช้ Provisioned Mode พร้อม Auto Scaling จะคุ้มกว่า ใช้ On-Demand เมื่อ traffic ผันผวนจนคาดเดาไม่ได้จริงๆ หรือเป็น workload ใหม่ที่ยังไม่รู้ pattern เคล็ดลับคือ สำหรับ workload ที่มี baseline ชัดเจน ลองใช้ Provisioned สำหรับ baseline + Auto Scaling สำหรับ burst จะได้ทั้งความประหยัดและความยืดหยุ่น
Azure Hybrid Benefit ใช้กับ Azure SQL Database Serverless ได้ไหม?
ไม่ได้ Azure Hybrid Benefit และ Reserved Capacity ใช้ได้เฉพาะ Provisioned compute tier เท่านั้น Serverless tier จ่ายตามอัตรา per-second compute ปกติ ถ้ามี SQL Server license อยู่แล้ว ใช้ Provisioned tier + Hybrid Benefit จะประหยัดกว่าเยอะ
GCP CUDs สำหรับ Cloud SQL ใช้ข้าม region ได้ไหม?
Cloud SQL CUDs ใช้ได้เฉพาะภายใน region ที่ซื้อเท่านั้น แต่ AlloyDB CUDs ยืดหยุ่นกว่ามากโดยใช้ได้ข้าม region และข้าม project อัตโนมัติ ถ้ามี workload หลาย region ลองพิจารณา AlloyDB CUDs หรือซื้อ Cloud SQL CUDs แยกสำหรับแต่ละ region แล้วแต่ว่าแบบไหนจะเหมาะกว่า