تحسين تكلفة AWS: وفر ما بين 30% إلى 50% من فاتورة البنية التحتية السحابية الخاصة بك
تهدر المؤسسة المتوسطة 32% من إنفاقها السحابي على الموارد الخاملة أو التي يتم توفيرها بشكل زائد. بالنسبة لشركة تنفق 5000 دولار أمريكي شهريًا على AWS، فإن ذلك يعني إهدار 19200 دولار أمريكي سنويًا. لا يقتصر تحسين تكلفة السحابة على تقليل التكاليف --- بل يتعلق بالدفع فقط مقابل ما تستخدمه فعليًا.
يغطي هذا الدليل النطاق الكامل لاستراتيجيات خفض تكاليف AWS، بدءًا من المكاسب السريعة التي توفر المال هذا الشهر إلى التغييرات الهيكلية التي تضاعف التوفير بمرور الوقت.
الوجبات الرئيسية
- يؤدي تحديد الحجم الصحيح وحده إلى توفير ما بين 20 إلى 40% عن طريق مطابقة أنواع المثيلات مع الاستخدام الفعلي للموارد
- توفر المثيلات المحجوزة وخطط التوفير خصومات بنسبة 30-60% على أعباء العمل المتوقعة
- تعمل مثيلات Spot على تقليل تكاليف الحوسبة بنسبة 60-90% لأحمال العمل المتسامحة مع الأخطاء
- تمنع سياسات دورة حياة التخزين تكاليف S3 من النمو إلى أجل غير مسمى
إطار تحسين التكلفة
ترتيب الأولوية
قم بالتحسين بهذا الترتيب للحصول على أقصى عائد على الاستثمار بأقل جهد:
- التخلص من النفايات (فوريًا، بدون مخاطر)
- المثيلات ذات الحجم المناسب (من أسبوع إلى أسبوعين، مخاطرة منخفضة)
- استخدام نماذج التسعير (خطط محجوزة، وفورية، وخطط توفير)
- تحسين البنية (أشهر، تتطلب هندسة)
الخطوة 1: تخلص من النفايات
البحث عن الموارد غير المستخدمة
# Find unattached EBS volumes (you are paying for storage with no use)
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].{ID:VolumeId,Size:Size,Type:VolumeType}' \
--output table
# Find unused Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocationId:AllocationId}' \
--output table
# Find idle load balancers (no targets)
aws elbv2 describe-target-groups \
--query 'TargetGroups[*].{ARN:TargetGroupArn,Name:TargetGroupName}' \
--output table
# Find stopped instances still consuming EBS
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,StopTime:StateTransitionReason}' \
--output table
مصادر النفايات الشائعة
| مصدر النفايات | التكلفة الشهرية النموذجية | إصلاح |
|---|---|---|
| مجلدات EBS غير المرفقة | 10-100 دولار لكل مجلد | حذف أو لقطة وحذف |
| تم إيقاف المثيلات باستخدام EBS | 20-200 دولار للمثيل الواحد | إنهاء أو إنشاء AMI |
| عناوين IP المرنة غير المستخدمة | 3.60 دولار لكل منهما | الافراج |
| لقطات قديمة | 0.05 دولار/جيجابايت | سياسة دورة الحياة |
| بوابات NAT كبيرة الحجم | 32 دولارًا+ لكل بوابة | الدمج، استخدم نقاط نهاية VPC |
| مثيلات RDS الخاملة | 50-500 دولار+ | إيقاف أو إنهاء مثيلات التطوير |
الخطوة 2: تحديد الحجم الصحيح
تحليل الاستخدام الفعلي
# Get average CPU utilization over the last 14 days
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--start-time $(date -u -d '14 days ago' +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 3600 \
--statistics Average Maximum \
--output json
مصفوفة القرار ذات الحجم الصحيح
| متوسط وحدة المعالجة المركزية | ذروة وحدة المعالجة المركزية | العمل |
|---|---|---|
| <10% | <30% | تصغير الحجم بخطوتين (على سبيل المثال، من xlarge إلى متوسط) |
| 10-30% | <60% | تصغير الحجم بخطوة واحدة (على سبيل المثال، من XL إلى كبير) |
| 30-60% | <80% | الحجم الحالي مناسب |
| >60% | >80% | فكر في تكبير الحجم أو القياس التلقائي |
تحسين نوع المثيل
| المثيل الحالي | الحجم الصحيح | التوفير الشهري |
|---|---|---|
| m5.xlarge (140 دولارًا) | m5.large (70 دولارًا) | 70 دولارًا (50٪) |
| r5.2xlarge (365 دولارًا) | r6g.xlarge (146 دولارًا) | 219 دولارًا (60٪) |
| t3.large (60 دولارًا) | t3.medium (30 دولارًا) | 30 دولارًا (50٪) |
| c5.xlarge (124 دولارًا) | c6g.large (62 دولارًا) | 62 دولارًا (50٪) |
يوفر الانتقال إلى مثيلات Graviton (ARM) (r6g، c6g، m6g) توفيرًا إضافيًا في التكلفة بنسبة 20% مع أداء متساوٍ أو أفضل لمعظم أحمال العمل.
الخطوة 3: نماذج التسعير
المثيلات المحجوزة مقابل خطط التوفير
| ميزة | المثيلات المحجوزة | حساب خطط الادخار | خطط التوفير EC2 |
|---|---|---|---|
| خصم | 30-60% | 30-54% | 40-60% |
| المرونة | نوع/منطقة المثيل المحددة | أي عائلة/منطقة مثيل | عائلة/منطقة مثيل محددة |
| الالتزام | سنة أو 3 سنوات | سنة أو 3 سنوات | سنة أو 3 سنوات |
| الأفضل لـ | أعباء عمل مستقرة ويمكن التنبؤ بها | أعباء عمل مختلطة | عائلات مثيلة محددة |
التوصية: ابدأ بخطط Compute Savings لتحقيق المرونة. التزم بالحد الأدنى من الاستخدام الأساسي الذي تثق به.
مثيلات البقعة
توفر مثيلات Spot خصومات بنسبة 60-90% ولكن يمكن مقاطعتها بإشعار مدته دقيقتين.
صالح ل:
- بناء العدائين CI/CD
- معالجة الدفعات وخطوط أنابيب البيانات
- بيئات التطوير والتدريج
- خوادم ويب عديمة الحالة خلف موازن التحميل (مع إمكانية الرجوع عند الطلب)
ليس جيدًا لـ:
- قواعد البيانات
- تطبيقات مثيل واحد
- أعباء عمل محددة دون نقاط تفتيش
# Launch template with Spot Instance
Resources:
SpotFleet:
Type: AWS::EC2::SpotFleet
Properties:
SpotFleetRequestConfigData:
AllocationStrategy: lowestPrice
TargetCapacity: 5
LaunchSpecifications:
- InstanceType: t3.large
ImageId: ami-0123456789abcdef0
- InstanceType: t3.xlarge
ImageId: ami-0123456789abcdef0
- InstanceType: m5.large
ImageId: ami-0123456789abcdef0
الخطوة 4: تحسين التخزين
سياسات دورة حياة S3
{
"Rules": [
{
"ID": "ArchiveOldBackups",
"Status": "Enabled",
"Filter": {
"Prefix": "backups/"
},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 730
}
}
]
}
تسعير فئة التخزين S3
| فئة التخزين | السعر لكل جيجابايت/شهر | استرجاع | الأفضل لـ |
|---|---|---|---|
| قياسي | 0.023 دولار | فوري | البيانات النشطة |
| ستاندرد-IA | 0.0125 دولار | فوري (0.01 دولار/جيجابايت استرجاع) | الوصول الشهري |
| الجليدية الفورية | 0.004 دولار | فوري (0.03 دولار/جيجابايت استرجاع) | وصول ربع سنوي |
| نهر جليدي | 0.004 دولار | 1-12 ساعة | الوصول السنوي |
| الأرشيف العميق | 0.00099 دولار | 12 ساعة | الامتثال على المدى الطويل |
تحسين نظام EBS
# Convert gp2 volumes to gp3 (20% cheaper, better performance)
for vol_id in $(aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 --query 'Volumes[*].VolumeId' --output text); do
echo "Converting $vol_id from gp2 to gp3"
aws ec2 modify-volume --volume-id "$vol_id" --volume-type gp3
done
الخطوة 5: القياس التلقائي
القياس على أساس الجدول الزمني
تشهد معظم تطبيقات B2B حركة مرور أقل بنسبة 70% خارج ساعات العمل:
# Scale down at night
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-down-night \
--recurrence "0 20 * * 1-5" \
--desired-capacity 2 \
--min-size 1
# Scale up in the morning
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-up-morning \
--recurrence "0 7 * * 1-5" \
--desired-capacity 5 \
--min-size 3
جدولة بيئة التطوير
إيقاف البيئات غير الإنتاجية خارج ساعات العمل:
# Stop dev/staging instances at 7 PM
aws ec2 stop-instances --instance-ids i-dev123 i-staging456
# Start at 8 AM
aws ec2 start-instances --instance-ids i-dev123 i-staging456
التوفير الشهري: تشغيل مثيلات التطوير 10 ساعات في اليوم بدلاً من 24 يوفر 58%.
القائمة المرجعية لمراجعة التكلفة الشهرية
- قم بمراجعة AWS Cost Explorer بحثًا عن الحالات الشاذة
- التحقق من الموارد غير المستخدمة (وحدات التخزين، عناوين IP، اللقطات)
- التحقق من صحة توصيات الحجم الصحيح (AWS Compute Optimizer)
- مراجعة تغطية المثيل المحجوز / خطة التوفير
- التحقق من نمو تخزين S3 وفعالية سياسة دورة الحياة
- مراجعة تكاليف نقل البيانات (غالبًا 10-15% من إجمالي الفاتورة)
- التحقق من أن حدود القياس التلقائي تتوافق مع أنماط حركة المرور الحالية
- التحقق من وجود الموارد المعزولة من عمليات النشر الفاشلة
الأسئلة المتداولة
ما هو أسرع ربح لخفض تكلفة AWS؟
حذف الموارد غير المستخدمة. تحتوي معظم حسابات AWS على مئات الدولارات شهريًا من وحدات تخزين EBS غير المرتبطة، وعناوين IP المرنة غير المستخدمة، واللقطات القديمة، والمثيلات المتوقفة. يستغرق هذا أقل من ساعة ويوفر المال على الفور. ثاني أسرع فوز هو تحويل وحدات تخزين gp2 EBS إلى gp3 --- نفس الأداء أو أفضل بتكلفة أقل بنسبة 20%.
هل يجب أن نستخدم Savings Plans أم المثيلات المحجوزة؟
حساب خطط الادخار لمعظم الشركات. إنها توفر خصومات مماثلة للمثيلات المحجوزة ولكن بمزيد من المرونة --- فأنت لست مقيدًا بنوع مثيل محدد. استخدم مثيلات EC2 المحجوزة فقط عندما تكون متأكدًا من أنواع المثيلات لمدة 1-3 سنوات.
كيف يمكننا تتبع تكاليف AWS حسب المشروع أو الفريق؟
استخدم علامات موارد AWS. ضع علامة على كل مورد باستخدام العلامات project، team، environment، وcost-center. تمكين علامات تخصيص التكلفة في وحدة تحكم الفوترة. قم بإنشاء تقارير Cost Explorer مجمعة حسب العلامة لمعرفة الإنفاق حسب المشروع. فرض وضع العلامات باستخدام قواعد AWS Config التي تحدد الموارد غير المميزة.
هل النقل إلى الحاويات أكثر فعالية من حيث التكلفة؟
تعمل الحاويات على تحسين استخدام الموارد بنسبة 30-50% مقارنة بتشغيل تطبيق واحد لكل خادم. تعمل ECS Fargate وEKS على تبسيط إدارة الحاويات ولكن مع إضافة التسعير لكل مهمة. بالنسبة لمعظم الشركات الصغيرة والمتوسطة، يوفر EC2 مع Docker Compose أفضل توازن بين البساطة والتكلفة. راجع دليل نشر Docker للحصول على تفاصيل التنفيذ.
ما يأتي بعد ذلك
يعد تحسين التكلفة ممارسة مستمرة، وليس مشروعًا لمرة واحدة. قم بجدولة مراجعات التكلفة الشهرية ودمج مراقبة التكلفة في إعداد تنبيه الإنتاج. للحصول على استراتيجية البنية التحتية الكاملة، راجع دليل DevOps للشركات الصغيرة.
اتصل بـ ECOSIRE للحصول على استشارات تحسين تكلفة AWS، أو استكشف خدمات دعم Odoo للبنية التحتية المُدارة مع تحسين التكلفة المضمن.
تم النشر بواسطة ECOSIRE - مساعدة الشركات على تحسين الإنفاق على البنية التحتية السحابية.
بقلم
ECOSIRE Research and Development Team
بناء منتجات رقمية بمستوى المؤسسات في ECOSIRE. مشاركة رؤى حول تكاملات Odoo وأتمتة التجارة الإلكترونية وحلول الأعمال المدعومة بالذكاء الاصطناعي.
مقالات ذات صلة
أنماط بوابة API وأفضل الممارسات للتطبيقات الحديثة
قم بتنفيذ أنماط بوابة واجهة برمجة التطبيقات (API) بما في ذلك تحديد المعدل والمصادقة وتوجيه الطلب وقواطع الدائرة وإصدار واجهة برمجة التطبيقات (API) لبنيات الويب القابلة للتطوير.
تحسين أداء CDN: الدليل الكامل للتسليم العالمي الأسرع
قم بتحسين أداء CDN من خلال إستراتيجيات التخزين المؤقت وحوسبة الحافة وتحسين الصورة وبنيات CDN المتعددة لتوصيل المحتوى العالمي بشكل أسرع.
أفضل الممارسات لخط أنابيب CI/CD: أتمتة طريقك إلى عمليات نشر موثوقة
أنشئ خطوط أنابيب CI/CD موثوقة مع أفضل الممارسات للاختبار والتشغيل المرحلي وأتمتة النشر وإستراتيجيات التراجع والفحص الأمني في سير عمل الإنتاج.