AWS Spot Instances 2026: الدليل الشامل لتوفير حتى 90% على تكاليف الحوسبة السحابية

تعلم كيف توفر حتى 90% على تكاليف AWS Spot Instances في 2026 مع استراتيجيات التعامل الذكي مع الانقطاعات وأكواد عملية جاهزة للتطبيق الفوري.

AWS Spot Instances 2026: وفّر 90% من EC2

بصراحة تامة — إذا كنت تدفع الأسعار الكاملة لـ On-Demand مقابل كل حمل حسابي في AWS، فأنت تترك مبالغ ضخمة على الطاولة. AWS Spot Instances تتيح لك الوصول إلى نفس قدرة الحوسبة بخصومات تصل إلى 90% مقارنةً بأسعار الطلب العادي — وهي، في رأيي الشخصي، أحد أقوى أدوات تحسين التكاليف التي تقدمها AWS اليوم.

في هذا الدليل، ستتعلم كيف تعمل Spot Instances في 2026، ومتى تستخدمها، وكيف تتعامل مع مخاطر الانقطاع بذكاء، مع أمثلة عملية وأكواد جاهزة للتطبيق الفوري. دعنا نبدأ.

ما هي AWS Spot Instances؟

AWS Spot Instances هي نسخ EC2 تعمل على الطاقة الحسابية الفائضة غير المستخدمة في مراكز بيانات Amazon. عندما تكون هناك طاقة حسابية زائدة، تعرضها AWS بأسعار مخفضة جداً كـ "Spot Instances" بدلاً من تركها معطلة. المنطق بسيط ومنطقي جداً.

النقطة الجوهرية هنا — والتي يجب أن تفهمها قبل كل شيء: يمكن لـ AWS استرداد هذه النسخ بإشعار مدته دقيقتان فقط عندما تحتاج إلى الطاقة الحسابية لتلبية طلبات On-Demand الاعتيادية. هذا هو مقابل الخصم الضخم — أنت توفر كثيراً لأن استخدامك مرن وقابل للانقطاع.

منذ إصلاح نظام التسعير عام 2017، أصبحت Spot Instances أكثر استقراراً وقابلية للتنبؤ. وفقاً لبيانات AWS، يقل معدل الانقطاع التاريخي عن 5% لمعظم أنواع النسخ في معظم المناطق — مما يجعلها موثوقة بشكل مفاجئ لكثير من حالات الاستخدام (والحقيقة أن هذا الرقم فاجأني شخصياً عندما بدأت أتعمق في الموضوع).

كيف يعمل نظام تسعير Spot Instances في 2026؟

النموذج الحديث لتسعير Spot يختلف جوهرياً عن نموذج المزايدة القديم — ولحسن الحظ، أصبح أبسط بكثير:

  • السعر الحالي (Spot Price): يتغير بناءً على العرض والطلب في كل منطقة وكل نوع نسخة، لكنه أكثر استقراراً مما كان عليه سابقاً
  • أنت تدفع السعر الحالي فقط: بغض النظر عن الحد الأقصى الذي حددته
  • الانقطاع يعتمد على توفر الطاقة: وليس على حروب الأسعار كما في النموذج القديم
  • إشعار مسبق: تحصل على تحذير بدقيقتين قبل أي انقطاع

الخلاصة: نموذج Spot الحديث يمنحك تكاليف منخفضة مع قابلية توقع أفضل وأدوات للتعامل الأنيق مع الانقطاعات.

مقارنة شاملة: Spot مقابل خيارات التسعير الأخرى

لاتخاذ القرار الصحيح، يجب فهم الفروقات بين خيارات التسعير المختلفة في AWS:

نوع التسعير الخصم مقارنةً بـ On-Demand الالتزام المطلوب خطر الانقطاع الأنسب لـ
On-Demand المرجع (لا خصم) لا يوجد معدوم الأحمال غير المتوقعة
Savings Plans حتى 66% 1-3 سنوات معدوم الأحمال الثابتة والمتوقعة
Reserved Instances حتى 72% 1-3 سنوات معدوم الأحمال الثابتة مع حجز الطاقة
Spot Instances حتى 90% لا يوجد منخفض (<5%) الأحمال المرنة والمتقطعة

الاستراتيجية الذكية هي دمج هذه النماذج: On-Demand للقاعدة الثابتة، Savings Plans للأحمال المتوقعة، وSpot لكل شيء مرن. للمزيد حول الاختيار بين Savings Plans وReserved Instances للقاعدة الثابتة، راجع دليلنا المفصل حول AWS Savings Plans مقابل Reserved Instances في 2026.

أفضل حالات الاستخدام لـ Spot Instances

Spot Instances ليست مناسبة لكل حمل عمل. فهم أين تناسب بالضبط هو مفتاح النجاح — وهذا ما يفوّت كثير من المهندسين عند البداية:

حالات الاستخدام المثالية

  • معالجة الدفعات (Batch Processing): معالجة الصور، تحويل الفيديو، استخراج البيانات وتحويلها (ETL)
  • تحليلات البيانات الكبيرة: Apache Spark، Hadoop، Presto على Amazon EMR
  • تدريب نماذج الذكاء الاصطناعي: خاصة التدريب الطويل الذي يدعم التقطيع (checkpointing)
  • بنى CI/CD: بناء الكود واختباره في خطوط الإنتاج
  • خوادم الويب القابلة للتوسع: في Auto Scaling Groups مع On-Demand baseline
  • بيئات التطوير والاختبار: وفر ضخم على البيئات غير الإنتاجية
  • عُقد Kubernetes (Worker Nodes): توفير هائل على حُزم EC2 في EKS
  • معالجة ملفات الوسائط: ترميز الفيديو، توليد الصور المصغرة

حالات يجب تجنب Spot فيها

  • قواعد البيانات بدون آليات تجاوز الفشل (failover) المتقدمة
  • الخدمات الحيوية التي تحتاج وقت تشغيل مضمون 100%
  • التطبيقات ذات الحالة (stateful) التي لا تحفظ حالتها خارجياً
  • المعالجة الآنية الحساسة للتأخير مع متطلبات SLA صارمة

استراتيجيات التعامل مع انقطاعات Spot

السر الحقيقي في استخدام Spot Instances بنجاح هو التصميم للانقطاع من البداية، وليس معاملته كحادث طارئ. إليك الاستراتيجيات الأساسية التي أثبتت فعاليتها:

1. التنويع عبر أنواع النسخ ومناطق التوفر

أكبر خطأ هو الاعتماد على نوع نسخة واحد في منطقة توفر واحدة. الحل الصحيح — وهو ما يفرّق بين المبتدئ والمحترف:

  • استخدم 6 أنواع نسخ أو أكثر في نفس طلب Spot Fleet أو Auto Scaling Group
  • وزّع عبر جميع Availability Zones المتاحة في منطقتك
  • استخدم استراتيجية price-capacity-optimized التي تختار أفضل تركيبة تلقائياً

2. التعامل الذكي مع إشعار الدقيقتين

قبل أن تسترد AWS النسخة، ترسل إشعاراً مسبقاً بدقيقتين عبر instance metadata. يمكنك استثمار هذا الوقت للحفاظ على البيانات وإيقاف الخدمة بأناقة (دقيقتان تبدو قليلة لكنها كافية تماماً إذا صممت الكود بشكل صحيح):

#!/bin/bash
# Handle Spot Instance interruption notice gracefully
IMDS_TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")

TERMINATION=$(curl -s \
  -H "X-aws-ec2-metadata-token: $IMDS_TOKEN" \
  http://169.254.169.254/latest/meta-data/spot/termination-time 2>/dev/null)

if [ -n "$TERMINATION" ]; then
  echo "Spot interruption notice: $TERMINATION"
  # Save job checkpoint to S3
  aws s3 cp /tmp/job-checkpoint.json s3://my-bucket/checkpoints/$(hostname).json
  # Drain load balancer and shutdown gracefully
  systemctl stop my-application
  echo "Graceful shutdown complete."
fi

3. تفعيل Capacity Rebalancing

عند تفعيل هذه الميزة في Auto Scaling Groups، تقوم AWS بإطلاق نسخة بديلة قبل إيقاف النسخة الأصلية عند اكتشاف احتمال انقطاع وشيك — مما يحافظ على طاقة الخدمة المطلوبة دون انقطاع ملحوظ.

4. تصميم بلا حالة (Stateless Design)

خزّن الحالة دائماً خارج النسخة لضمان عدم فقدان البيانات عند الانقطاع:

  • البيانات الدائمة: Amazon S3 أو Amazon EFS
  • حالة الجلسة والذاكرة المؤقتة: ElastiCache (Redis)
  • قواعد البيانات: Amazon RDS أو Aurora في طبقة منفصلة ثابتة
  • قوائم المهام: Amazon SQS لضمان معالجة كل رسالة مرة واحدة على الأقل

البدء العملي: إعداد Spot Instances خطوة بخطوة

الخيار 1: إطلاق Spot Instance منفردة عبر AWS CLI

aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type m6g.xlarge \
  --instance-market-options MarketType=spot \
  --key-name my-key-pair \
  --security-group-ids sg-0123456789abcdef0 \
  --subnet-id subnet-0123456789abcdef0 \
  --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=spot-worker}]"

الخيار 2: Auto Scaling Group مع مزيج ذكي من Spot وOn-Demand

هذا هو الإعداد المُوصى به للإنتاج — يضمن قاعدة ثابتة من On-Demand مع تعظيم استخدام Spot للباقي. صدقني، هذا الإعداد يغير قواعد اللعبة:

# CloudFormation - Mixed Instances Policy
MixedInstancesPolicy:
  InstancesDistribution:
    OnDemandBaseCapacity: 2
    OnDemandPercentageAboveBaseCapacity: 20
    SpotAllocationStrategy: price-capacity-optimized
    SpotInstancePools: 4
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateId: !Ref MyLaunchTemplate
      Version: !GetAtt MyLaunchTemplate.LatestVersionNumber
    Overrides:
      - InstanceType: m6g.large
      - InstanceType: m6g.xlarge
      - InstanceType: m5.large
      - InstanceType: m5.xlarge
      - InstanceType: c6g.large
      - InstanceType: c6g.xlarge

الخيار 3: AWS Batch مع Spot للمعالجة الدُفعية

aws batch create-compute-environment \
  --compute-environment-name spot-batch-prod \
  --type MANAGED \
  --state ENABLED \
  --compute-resources type=SPOT,\
allocationStrategy=SPOT_CAPACITY_OPTIMIZED,\
minvCpus=0,maxvCpus=512,\
instanceTypes=m5.xlarge,m6g.xlarge,c5.xlarge,c6g.xlarge,r5.xlarge,\
bidPercentage=70,\
subnets=subnet-aaaa,subnet-bbbb,subnet-cccc,\
securityGroupIds=sg-xxxx

Spot Instances مع Kubernetes على EKS

إذا كنت تشغّل Kubernetes على AWS عبر EKS، فإن Spot Nodes تمثل فرصة توفير هائلة تصل إلى 60-70% على تكلفة Worker Nodes. لمزيد من التفاصيل حول تحسين التكاليف الشاملة في بيئات الحاويات، راجع دليلنا الشامل لتحسين تكاليف Kubernetes في 2026.

إعداد EKS Node Group مع Spot عبر eksctl:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: my-cluster
  region: us-east-1
managedNodeGroups:
  - name: system-nodes
    instanceType: m6g.large
    desiredCapacity: 2
    minSize: 2
    maxSize: 4
    labels:
      node-lifecycle: on-demand
  - name: spot-nodes
    instanceTypes:
      - m6g.large
      - m6g.xlarge
      - m5.large
      - m5.xlarge
      - c6g.large
      - c6g.xlarge
    spot: true
    desiredCapacity: 5
    minSize: 0
    maxSize: 50
    labels:
      node-lifecycle: spot
    taints:
      - key: spot
        value: "true"
        effect: NoSchedule

استخدام AWS Spot Instance Advisor لاختيار أفضل النسخ

قبل اختيار أنواع النسخ، استخدم AWS Spot Instance Advisor المتاح في وحدة تحكم AWS. يوفر هذا الأداة:

  • معدل الانقطاع التاريخي لكل نوع نسخة في كل منطقة، مصنفاً بوضوح (أقل من 5%، 5-10%، إلخ)
  • نسبة التوفير الفعلية الحالية مقارنةً بـ On-Demand
  • إمكانية الفلترة حسب المنطقة ونظام التشغيل وحجم النسخة

القاعدة الذهبية: اختر النسخ ذات معدل الانقطاع أقل من 5% لأحمال الإنتاج، ويمكن قبول حتى 10-15% لبيئات الاختبار والمهام الدُفعية المرنة. لا تتجاوز هذه النسب إذا كنت جاداً في الموثوقية.

حساب التوفير المحتمل: مثال حسابي واقعي

لنفترض أن لديك مهمة معالجة بيانات تحتاج 50 نسخة من نوع m6g.2xlarge لمدة 10 ساعات يومياً (22 يوم عمل شهرياً):

نموذج التسعير السعر/ساعة للنسخة التكلفة الشهرية التوفير السنوي
On-Demand (المرجع) $0.308 $3,388
Spot (خصم متوسط 70%) $0.092 $1,012 $28,512
Spot (خصم متوسط 80%) $0.062 $682 $32,472

الأرقام لا تكذب. بدمج Spot مع Savings Plans للأحمال الثابتة في استراتيجية متكاملة، يمكن لمعظم المؤسسات خفض فاتورة EC2 الإجمالية بنسبة 50-65% دون التضحية بالموثوقية — وهو توفير حقيقي يُحدث فرقاً ملموساً في الميزانية السنوية.

أفضل الممارسات للبيئات الإنتاجية

  1. ابدأ بالبيئات غير الإنتاجية: Dev/Test/Staging أولاً لاكتساب الخبرة والثقة قبل الإنتاج
  2. نوّع دائماً: 6+ أنواع نسخ كحد أدنى، موزعة عبر جميع Availability Zones
  3. استخدم price-capacity-optimized: هذه الاستراتيجية أفضل من cheapest-price للبيئات الإنتاجية
  4. راقب معدلات الانقطاع: استخدم Amazon EventBridge لالتقاط Spot Interruption Notices والتنبيه الفوري
  5. قاطع البيانات بانتظام: احفظ الحالة إلى S3 كل 5-15 دقيقة للمهام الطويلة
  6. احتفظ بقدرة On-Demand أساسية: 20-30% من القدرة الكلية كضمان للاستمرارية
  7. استخدم Launch Templates: بدلاً من Launch Configurations القديمة — توفر مرونة أكبر وتدعم الميزات الحديثة
  8. راقب التوفير الفعلي شهرياً: تتبع الوفورات عبر AWS Cost Explorer وقارن مع الأهداف المحددة

الأسئلة الشائعة

هل يمكن استخدام AWS Spot Instances لبيئات الإنتاج؟

نعم، ولكن بشروط واضحة. Spot Instances مناسبة للإنتاج عند تصميم تطبيقك لتحمّل الانقطاع — أي حفظ الحالة خارجياً (S3، Redis، RDS)، والتنويع عبر أنواع نسخ متعددة، والحفاظ على قدرة On-Demand أساسية. كثير من شركات التقنية الكبرى تشغّل خدمات إنتاجية على Spot بكفاءة عالية.

ماذا يحدث لبياناتي عند انقطاع Spot Instance؟

عند الانقطاع الافتراضي، يتم إيقاف النسخة وحذف بيانات التخزين المحلي (instance store). لحماية بياناتك: خزّن كل البيانات الدائمة على S3 أو EFS، واستخدم EBS volumes إن احتجت تخزيناً متصلاً، وقاطع حالة المهام الطويلة إلى S3 كل 5-15 دقيقة.

كيف أعرف أي أنواع النسخ أقل انقطاعاً في Spot؟

استخدم AWS Spot Instance Advisor المتاح في وحدة التحكم. يعرض معدل الانقطاع التاريخي لكل نوع نسخة في كل منطقة مصنفاً بوضوح. استهدف الأنواع ذات معدل أقل من 5% للأحمال الحساسة.

هل يمكن تحديد حد أقصى للسعر في Spot Instances؟

نعم، يمكنك تحديد MaxPrice وهو الحد الأقصى للدفع بالساعة. إذا تجاوز سعر Spot الحالي هذا الحد، سيتم إيقاف نسختك. الممارسة الموصى بها هي تحديد MaxPrice مساوياً لسعر On-Demand حتى لا تُوقف نسختك إلا عند الحاجة الحقيقية لـ AWS لاسترداد الطاقة.

ما الفرق بين Spot Fleet وAuto Scaling Group مع Spot؟

Spot Fleet هو الأسلوب القديم لطلب مجموعة متنوعة من Spot Instances. Auto Scaling Group مع MixedInstancesPolicy هو الخيار الحديث الموصى به: يتكامل مع ALB وCloudWatch وCapacity Rebalancing، ويدعم مزج Spot وOn-Demand ذكياً، وأسهل في الإدارة على المدى البعيد.

Article changelog (1)
  • — SEO meta refreshed (title and description updated)
عن الكاتب Diego Saavedra

Diego spent five years at CloudHealth (then VMware Tanzu) as a solutions engineer working with mid-market AWS customers, mostly in the $200k-$2M/month spend range. He left in 2024 to consult independently and has since helped seven companies - a Series C fintech, a media streaming startup, and assorted SaaS shops - restructure their RI and Savings Plan portfolios. His best-documented win was a $310k/month reduction at a video-processing company by moving Lambda-heavy workloads to Fargate Spot. He's AWS Solutions Architect Professional, AWS DevOps Engineer Professional, and FinOps Practitioner certified. Before CloudHealth he was a DevOps engineer at MercadoLibre in Buenos Aires for three years. Diego writes about Lambda cost patterns, NAT Gateway and data-transfer charges (the silent killers), and how to negotiate an Enterprise Discount Program renewal without getting steamrolled. Based in Buenos Aires, eight years in.