التكلفة والتصميم الجيد
ختام السلسلة. وين تروح فلوس الشبكة، والأدوات اللي تراقب فاتورتك، وإطار Well-Architected، وبناء كل شي من قالب بـ CloudFormation، وSystems Manager، ووين تروح بعد هذي السلسلة، مع تجربة عملية.
- الفكرة الأساسية
- تعريف
- متى يُستخدم
- تنبيه
في هذا المقال
مشيت طريق طويل من الجزء الأول. في هذا الجزء الأخير نجاوب سؤالين ينطبقون على كل اللي بنيناه: كم يكلف؟ وهل هو مصمم صح؟ وبعدها نحول كل هذا لملف تقدر تعيد بناءه بأمر واحد.
وين تروح فلوس الشبكة؟
أغلب الناس يخططون للسيرفرات والتخزين، ثم يتفاجأون بنقل البيانات. والأسعار هنا تقريبية لمناطق أمريكا:
| الاتجاه | السعر التقريبي لكل GB |
|---|---|
| إلى AWS من الإنترنت | مجاني |
| داخل منطقة توفر واحدة بعناوين خاصة | مجاني |
| بين مناطق التوفر | 0.01 دولار لكل اتجاه |
| بين المناطق | من حوالي 0.02 دولار، ويختلف حسب المنطقة |
| إلى الإنترنت | حوالي 0.09 دولار وينزل مع الكمية، وأول 100 GB في الشهر مجانية |
الأرقام الصغيرة تتجمع بسرعة. ست أشياء تقللها:
- استخدم العناوين الخاصة داخل الـ VPC بدل العامة، ولاحظ إن كل عنوان IPv4 عام عليه رسوم بالساعة كمان.
- حط CloudFront قدام تطبيقك. البيانات من AWS إلى CloudFront مجانية، والخروج عبره أرخص من الخروج المباشر.
- أضف Gateway Endpoint لـ S3 وDynamoDB. مجاني، ويوفر عليك رسوم NAT لكل GB.
- NAT Gateway لكل منطقة توفر، عشان ما تعبر البيانات بين المناطق توصله.
- قرّب الخدمات كثيرة الكلام. بس وازن هذا مع التوفر، لأن التوزيع بين المناطق يستاهل الدفع.
- اضغط اللي ترسله، وخزنه مؤقتاً في أقرب مكان تقدر عليه.
وين الكاش؟
كل طبقة توفر الشغل على اللي وراها، فكل ما كان قدام كان أفضل، وشفناها كلها:
| الطبقة | الأداة | توفر |
|---|---|---|
| الحافة | CloudFront | الرحلة كلها، للمحتوى اللي نفسه للكل |
| الـ API | كاش API Gateway | الدالة وقاعدة البيانات |
| التطبيق | ElastiCache | الاستعلامات والحسابات الثقيلة |
| قاعدة البيانات | DAX أو نسخة قراءة | القراءات من القاعدة الأساسية |
أدوات تراقب فاتورتك
| الأداة | وش تسوي |
|---|---|
| Cost Explorer | ترسم صرفك حسب الخدمة والحساب والوسم، وتتوقعه، وتوصي بـ Savings Plans |
| Budgets | تنبهك لما توصل حد أو يتوقع توصله، والمراقبة مجانية |
| Cost Anomaly Detection | تستخدم تعلم الآلة لكشف الصرف غير المعتاد، بدون رسوم |
| Cost Optimization Hub | تجمع توصيات التوفير في مكان واحد: تغيير الأحجام والموارد الخاملة وغيرها |
| Compute Optimizer | يوصي بالأحجام المناسبة حسب استخدامك الفعلي |
| Cost and Usage Report | أدق بيانات عن تكلفتك واستخدامك، توصلك كملفات في S3 تحللها. وAWS Data Exports ينشئ تصديرات مثلها بالأعمدة اللي تختارها |
وأول خطوة هي الوسوم: بدون وسم env أو team، ما تعرف مين يصرف وش. والوسوم ما توصل لتقارير التكلفة إلا لما تفعّلها كـ Cost Allocation Tags في صفحة الفوترة.
توفير سريع
| الإجراء | وين شفناه |
|---|---|
| صغّر السيرفرات الكبيرة زيادة | الجزء الثالث |
| التزم بـ Savings Plans، واستخدم Spot للي يتحمل الانقطاع | الجزء الرابع |
| أوقف سيرفرات التطوير بالليل، مثلاً بـ Instance Scheduler on AWS | هذا الجزء |
| قواعد دورة الحياة لـ S3 | الجزء السادس عشر |
| حدد مدة حفظ للسجلات | الجزء الخامس والعشرين |
| احذف الأقراص واللقطات وموزعات الحمل المهملة | الجزء الخامس |
إطار Well-Architected
AWS لخصت اللي تعلمته من عملائها في ست ركائز. اعتبرها مراجعة لأي تصميم:
| الركيزة | السؤال | غطيناها في |
|---|---|---|
| التميز التشغيلي | تقدر تشغله وتحسنه؟ | المراقبة والقوالب |
| الأمان | البيانات والوصول محمية؟ | IAM والتشفير |
| الاعتمادية | ينجو من الأعطال ويتعافى؟ | التوسع والتعافي |
| كفاءة الأداء | تستخدم الموارد المناسبة؟ | الكاش واختيار القاعدة |
| تحسين التكلفة | تدفع على شي ما تحتاجه؟ | هذا الجزء |
| الاستدامة | تقلل استهلاكك وأثره؟ | الأحجام المناسبة وGraviton |
والركائز تتعارض أحياناً: نسخ أكثر تعني اعتمادية أفضل وتكلفة أعلى. والهدف مو إنك توصل الأقصى في كل شي، بل إنك تختار وأنت فاهم.
- AWS Well-Architected Tool: أداة مجانية في الكونسول تسألك عن شغلك وتبين المخاطر.
- Trusted Advisor: يفحص حسابك مقابل أفضل الممارسات. في الخطة المجانية تاخذ حدود الخدمات وكم فحص للأمان والتحمل، والباقي يحتاج خطة دعم مدفوعة. ولاحظ إن AWS تغير خطط الدعم، وDeveloper وBusiness تنتهي في 1 يناير 2027 لصالح Business Support+.
CloudFormation: بنيتك في ملف
إلى الآن سوينا كل شي بيدنا أو بالأوامر. طيب لو تقدر توصف كل هذا في ملف؟ AWS CloudFormation يقرأ قالب (Template) ويبني Stack من الموارد بالترتيب الصحيح، و:
- قابل للتكرار: نفس البيئة للتطوير والاختبار والإنتاج.
- قابل للمراجعة: القالب في Git مثل الكود، وتراجع تغييراته.
- تحت السيطرة: Change Set يبين وش بيتغير قبل ما يصير، وDrift Detection يكشف التعديلات اليدوية.
- نظيف: حذف الـ Stack يحذف كل اللي فيه، فما يبقى شي يحاسبك.
- مجاني: تدفع على الموارد اللي ينشئها فقط.
وInfrastructure Composer يخليك ترسم القالب بالواجهة، وAWS CDK يكتبه بـ Python أو TypeScript. وService Role يخلي المطور ينشر Stack بدون ما يكون عنده صلاحية على الموارد نفسها.
Systems Manager: تشغيل سيرفراتك
AWS Systems Manager يدير أساطيل السيرفرات عبر وكيل، مثبت أصلاً في Amazon Linux، ودور IAM:
| الأداة | وش تسوي |
|---|---|
| Session Manager | طرفية بدون منفذ SSH وبدون مفاتيح، والجلسات تنسجل |
| Run Command | أمر واحد على ألف سيرفر |
| Patch Manager | يطبق التحديثات بجدول |
| Maintenance Windows | يحدد متى يسمح بهذي الأشياء |
| Automation | مستندات جاهزة لمهام معروفة، مثل معالجة Config |
تطبيقات ما تقدر تغيرها
مو كل تطبيق ينكتب من جديد، وغالباً تقدر ترفع موثوقية التطبيق القديم من الخارج، بدون ما تلمس كوده:
| المشكلة | الحل |
|---|---|
| سيرفر واحد ممكن يتعطل | مجموعة Auto Scaling بسيرفر واحد وفحص صحة، أو الاسترجاع التلقائي اللي يرجعه على عتاد جديد بنفس عناوينه |
| ضغط يرهقه | CloudFront قدامه، لكل اللي ينخزن |
| اتصالات كثيرة بقاعدة البيانات | RDS Proxy، ويحتاج نقطة وصول جديدة فقط |
| قاعدة بيانات ممكن تطيح | Multi-AZ، ونقطة الوصول تبقى نفسها |
| عملاء يسمحون لعناوين ثابتة في جدران الحماية | العنوانين الثابتين في Global Accelerator |
خدمات تستاهل تعرفها
آخر مجموعة، وكل وحدة تستاهل سطر:
| الخدمة | لوش |
|---|---|
| SES | إرسال الإيميل، للمعاملات والتسويق، مع حماية سمعتك |
| AWS Batch | شغل دفعات بأي حجم، على EC2 أو Fargate، بدون حد 15 دقيقة مثل Lambda |
| AWS Outposts | سيرفرات AWS في مركز بياناتك، لما لازم تبقى البيانات عندك |
| Amazon AppFlow | نقل البيانات من تطبيقات SaaS مثل Salesforce إلى S3 أو Redshift بدون كود |
| AWS Amplify | بناء واستضافة تطبيقات الويب والجوال بسرعة |
| Service Catalog | كتالوج خدمات معتمدة، فالفرق تنشر المسموح فقط |
| License Manager | يتابع تراخيص البرامج، مثل Oracle وSAP، عبر الحسابات |
| Device Farm | اختبار التطبيقات على جوالات وأجهزة لوحية حقيقية تستضيفها AWS |
ولو قرأت مقالات قديمة، Amazon Pinpoint وصل لنهاية دعمه في 30 أكتوبر 2026. وAWS توجّه لـ SES للإيميل، ولـ AWS End User Messaging للرسائل النصية وإشعارات الجوال. وAWS Proton وصل كمان لنهاية دعمه في 7 أكتوبر 2026، مع إن دليل الاختبار لسا يذكره.
الحوسبة عالية الأداء
لما تحتاج آلاف المعالجات تشتغل مع بعض:
| الحاجة | الأدوات |
|---|---|
| الحوسبة | Placement Group من نوع Cluster، مع Enhanced Networking أو EFA، وSpot لو أمكن |
| التخزين | FSx for Lustre وInstance Store وS3 |
| التنسيق | AWS Batch أو AWS ParallelCluster |
| نقل البيانات | Direct Connect أو DataSync |
عملي: Stack كامل من ملف، وميزانية بتبقيها
اكتب قالب صغير فيه حاوية وموضوع SNS. من CloudShell:
cat > stack.yaml <<'EOF'
AWSTemplateFormatVersion: "2010-09-09"
Description: A small stack from the AWS series
Parameters:
Env:
Type: String
Default: dev
Resources:
Files:
Type: AWS::S3::Bucket
Properties:
VersioningConfiguration:
Status: Enabled
Tags:
- Key: env
Value: !Ref Env
Alerts:
Type: AWS::SNS::Topic
Outputs:
BucketName:
Value: !Ref Files
EOF
aws cloudformation deploy --stack-name series-stack --template-file stack.yaml
aws cloudformation describe-stack-resources --stack-name series-stack \
--query "StackResources[].[LogicalResourceId,ResourceType,ResourceStatus]" \
--output table
CloudFormation بنى الموردين وسماهم بنفسه. الحين غيّر قيمة وحدة. يحدث اللي تغيّر فقط، بدون ما يلمس الباقي:
aws cloudformation deploy --stack-name series-stack \
--template-file stack.yaml --parameter-overrides Env=prod
BUCKET=$(aws cloudformation describe-stacks --stack-name series-stack \
--query "Stacks[0].Outputs[0].OutputValue" --output text)
aws s3api get-bucket-tagging --bucket $BUCKET \
--query "TagSet[?Key=='env'].Value" --output text
يطبع prod. الحين أحلى جزء، حذف كل شي بأمر واحد:
aws cloudformation delete-stack --stack-name series-stack
aws cloudformation wait stack-delete-complete --stack-name series-stack
echo "Everything is gone"
وأخيراً، شي تبقيه: ميزانية 10 دولار في الشهر تنبهك لما يتوقع تتجاوز 80% منها. بدّل الإيميل بإيميلك:
EMAIL=[email protected]
ACCOUNT=$(aws sts get-caller-identity --query Account --output text)
cat > budget.json <<'EOF'
{
"BudgetName": "series-monthly",
"BudgetLimit": {"Amount": "10", "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}
EOF
cat > notify.json <<EOF
[{
"Notification": {
"NotificationType": "FORECASTED",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 80,
"ThresholdType": "PERCENTAGE"
},
"Subscribers": [{"SubscriptionType": "EMAIL", "Address": "$EMAIL"}]
}]
EOF
aws budgets create-budget --account-id $ACCOUNT \
--budget file://budget.json \
--notifications-with-subscribers file://notify.json
aws budgets describe-budgets --account-id $ACCOUNT \
--query "Budgets[].[BudgetName,BudgetLimit.Amount,BudgetLimit.Unit]" --output table
لو جاك AccessDenied، ممكن مستخدم IAM حقك يحتاج وصول للفوترة، وهذا يفعّله مستخدم Root من إعدادات الحساب.
الخلاصة
- نقل البيانات هو التكلفة المخفية: بين مناطق التوفر، وبين المناطق، وإلى الإنترنت.
- Budgets وCost Anomaly Detection ينبهونك قبل الفاتورة.
- إطار Well-Architected ست ركائز، والفكرة إنك تختار وأنت فاهم.
- CloudFormation يحول بنيتك إلى ملف تراجعه وتحذفه.
- Systems Manager يدير سيرفراتك بدون SSH.
اختبر نفسك
قبل ما تكمل، جرّب هذي الأسئلة عشان تتأكد إنك فهمت الجزء. كل سؤال موقف عملي، وبعد ما تجاوب يطلع لك الشرح.
السؤال 1 من 7
سيرفرين EC2 في نفس منطقة التوفر يتبادلون تيرابايتات كل شهر عبر عناوين IP العامة لبعض، والنقل يطلع في الفاتورة. وش أبسط حل؟
اعرض الجواب
الجواب الصحيح: B
البيانات بين السيرفرات في منطقة توفر واحدة مجانية عبر العناوين الخاصة، والزيارات عبر العنوان العام مدفوعة.
- A: عبور المناطق مدفوع في كل اتجاه.
- C: الـ NAT Gateway يضيف رسم على كل جيجابايت.
- D: حجم السيرفر ما يغير تكلفة النقل.
للمراجعة: وين تروح فلوس الشبكة؟ في هذا الجزء، وEC2 On-Demand Instance Pricing في موقع AWS.
السؤال 2 من 7
فريق صغير يبي إيميل لما يتوقع إن صرف AWS هذا الشهر بيتجاوز حده، مو بعد ما توصل الفاتورة. وش يناسب؟
اعرض الجواب
الجواب الصحيح: A
الميزانية تقدر تنبه على الصرف المتوقع والصرف الفعلي، والمراقبة نفسها مجانية.
- B: هذا يرسم صرفك ويتوقعه، بس لازم أحد يروح يشوفه.
- C: هذا يقترح الأحجام المناسبة، وما يرسل تنبيهات صرف.
- D: هذا يسجل الإعدادات، مو الصرف.
للمراجعة: أدوات تراقب فاتورتك في هذا الجزء، وManaging your costs with AWS Budgets في وثائق AWS.
السؤال 3 من 7
فريق يبي يراجع تصميم تطبيق واحد مقابل أفضل ممارسات AWS، بالإجابة على أسئلة عنه ورؤية المخاطر. وش يناسب؟
اعرض الجواب
الجواب الصحيح: D
الأداة تسألك عن شغلك وتبين لك المخاطر، وهي مجانية في الكونسول.
- A: هذا يفحص اللي تشغله عن الثغرات المعروفة، وما يراجع التصميم.
- B: هذا يفحص موارد حسابك لحاله، وما يسأل عن تطبيق معين.
- C: هذا يسجل مين نادى وش.
للمراجعة: إطار Well-Architected في هذا الجزء، وAWS Well-Architected Tool FAQs في موقع AWS.
السؤال 4 من 7
فريق يبي نفس البيئة في التطوير والإنتاج من ملف واحد في Git، ويشوف وش بيغيره التحديث قبل ما يصير، ويعرف لو عدّل أحد مورد يدوياً. وش يناسب؟
اعرض الجواب
الجواب الصحيح: C
القالب يبني نفس الـ Stack كل مرة ويبقى في Git. وChange Sets تبين وش بيتغير، وDrift Detection يكشف التعديلات اليدوية.
- A: هذا يشغّل أوامر على السيرفرات، وما يوصف البنية.
- B: هذا يكرر محتوى السيرفر، مو الشبكة والموارد اللي حوله.
- D: هذا يسجل الإعدادات ويحكم عليها، بس ما يبني شي.
للمراجعة: CloudFormation: بنيتك في ملف في هذا الجزء، وUpdate CloudFormation stacks using change sets وDetect unmanaged configuration changes to stacks and resources with drift detection في وثائق AWS.
السؤال 5 من 7
شركة لازم تطبق تحديثات الأمان على 500 سيرفر EC2، في وقت محدد ليلة السبت فقط، وبدون وصول SSH. أي أداتين يناسبون؟ (اختر اثنين.)
اعرض الجواب
الجواب الصحيح: B + E
Patch Manager يطبق التحديثات، وMaintenance Windows يحدد متى يسمح لها تصير.
- A: هذا يعطيك طرفية، جلسة وحدة كل مرة.
- C: هذا يخزن الإعدادات والأسرار البسيطة.
- D: هذا يقترح الأحجام المناسبة حسب استخدامك.
للمراجعة: Systems Manager: تشغيل سيرفراتك في هذا الجزء، وAWS Systems Manager Patch Manager وAWS Systems Manager Maintenance Windows في وثائق AWS.
السؤال 6 من 7
فريق مالية يبي تكلفة كل فريق في ملفات مفصلة يحللها بنفسه. والموارد فيها وسم team، بس الوسم ما يطلع في التقارير. أي خطوتين يناسبون؟ (اختر اثنين.)
اعرض الجواب
الجواب الصحيح: B + E
الوسوم ما توصل لتقارير التكلفة إلا بعد تفعيلها، وCost and Usage Report يوصّل أدق البيانات كملفات في S3.
- A: هذا يسجل إعدادات الموارد، مو التكاليف.
- C: هذا يقترح الأحجام المناسبة.
- D: هذا يسجل العمليات داخل الموارد، مو التكاليف.
للمراجعة: أدوات تراقب فاتورتك في هذا الجزء، وWhat are AWS Cost and Usage Reports? وOrganizing and tracking costs using AWS cost allocation tags في وثائق AWS.
السؤال 7 من 7
تطبيق قديم يشتغل على سيرفر EC2 واحد، وعملاؤه يتصلون بعنوان السيرفر. والكود ما يتغير. ولو تعطل العتاد، لازم يرجع السيرفر لحاله بنفس عناوينه. وش يناسب؟
اعرض الجواب
الجواب الصحيح: C
الاسترجاع يرجع السيرفر على عتاد جديد، بنفس Instance ID وعناوينه الخاصة والعامة وElastic IP.
- A: هذا إعادة كتابة، والكود ما يتغير.
- B: البديل سيرفر جديد، بعناوين جديدة.
- D: لازم ترجعه يدوياً، على سيرفر جديد بعناوين جديدة.
للمراجعة: تطبيقات ما تقدر تغيرها في هذا الجزء، وAutomatic instance recovery في وثائق AWS.
اللي تعلمته
تسعة وعشرين جزء في تسعة أقسام. شوف وش تقدر تسويه الحين:
| القسم | الحين تقدر |
|---|---|
| الأساسيات | تفهم البنية العالمية وتضبط الصلاحيات |
| الخوادم وتخزينها | تشغل سيرفر، وتختار تسعيره، وتحفظ بياناته |
| التوفر العالي والتوسّع | تبني تطبيق ينجو من الأعطال ويكبر لحاله |
| قواعد البيانات | تختار القاعدة المناسبة وتسرعها |
| الشبكات وتوصيل المحتوى | تصمم شبكة خاصة وتوصل المحتوى حول العالم |
| التخزين الكائني | تخزن أي شي في S3 بالسعر المناسب وبأمان |
| التطبيقات الحديثة | تفصل الخدمات، وتشغل الحاويات وبدون خوادم |
| البيانات والذكاء الاصطناعي | تحلل بياناتك وتضيف الذكاء الاصطناعي لتطبيقك |
| الأمان والتشغيل | تراقب وتحمي وتتعافى وتضبط تكاليفك |
وين تروح من هنا
- ابن شي حقيقي. مشروع صغير خاص فيك يعلمك أكثر من أي مقال، حتى لو موقع صغير مع API.
- جرّب الاختبار الشامل. يختار لك أسئلة عشوائية من كل الأجزاء، فتعرف وش ثبت عندك ووش تراجعه.
- اقرأ الأسئلة الشائعة. صفحة FAQ لكل خدمة ملخص قصير وغني ودقيق.
- فكر في شهادة. Solutions Architect Associate تغطي أغلب اللي في هذي السلسلة، والاختبار يقيس كيف تختار بين الخدمات. اقرأ كل سؤال بحثاً عن العبارة اللي تحسم، مثل "أقل تكلفة" أو "أقل جهد تشغيلي"، واستبعد الإجابات الغلط أول. ودليل الاختبار الرسمي يوضح كل المجالات والخدمات.
- تابع التغييرات. AWS تتغير بسرعة، وكذا شي في هذي السلسلة تغير وهي تنكتب. راجع الوثائق قبل أي قرار.
شكراً إنك كملت للنهاية، وبالتوفيق في اللي بتبنيه.