ممارسات AWS: من البنية العالمية إلى تطبيقات Serverless، حسّن مهاراتك السحابية بشكل شامل
ممارسات AWS: من البنية العالمية إلى تطبيقات Serverless، حسّن مهاراتك السحابية بشكل شامل
أصبحت AWS (Amazon Web Services) رائدة في مجال الحوسبة السحابية، حيث تستخدم الشركات الكبيرة والشركات الناشئة على حد سواء الخدمات المختلفة التي تقدمها AWS لبناء ونشر التطبيقات. من المناقشات على X/Twitter، يمكننا أن نرى أن AWS تشمل مجالات واسعة جدًا، بما في ذلك البنية التحتية والأمن والذكاء الاصطناعي/التعلم الآلي و DevOps وتطبيقات Serverless. ستجمع هذه المقالة هذه المناقشات لتقديم دليل ممارسة AWS أكثر شمولاً لمساعدتك على تحسين مهاراتك السحابية والاستفادة بشكل أفضل من منصة AWS.
1. فهم البنية التحتية العالمية لـ AWS: مفتاح التوفر العالي والتسامح مع الأخطاء
يعد إتقان البنية التحتية العالمية لـ AWS أساسًا لبناء تطبيقات عالية التوفر ومتسامحة مع الأخطاء. تتكون البنية التحتية العالمية لـ AWS من المكونات الرئيسية التالية:
- Region (المنطقة): منطقة مستقلة جغرافيًا، تحتوي كل منطقة على مناطق توافر متعددة. يجب مراعاة زمن الوصول ومتطلبات الامتثال والتكلفة عند اختيار منطقة.
- Availability Zone (منطقة التوفر): موقع معزول داخل منطقة، تتكون كل منطقة توفر من مركز بيانات واحد أو أكثر. يمكن أن يؤدي نشر التطبيقات في مناطق توفر مختلفة إلى تحسين القدرة على تحمل الأخطاء.
- Edge Location (موقع الحافة): خوادم ذاكرة تخزين مؤقت موزعة في جميع أنحاء العالم لتسريع تسليم المحتوى. تستخدم AWS CloudFront مواقع الحافة لتخزين المحتوى الثابت والديناميكي مؤقتًا، مما يحسن تجربة المستخدم.
نصائح عملية:
- نشر متعدد مناطق التوفر: يمكن أن يؤدي نشر نسخ من التطبيق في مناطق توفر مختلفة إلى تجنب عدم توفر التطبيق بسبب فشل منطقة توفر واحدة.
- اختر المنطقة المناسبة: اختر المنطقة المناسبة بناءً على موقع المستخدم ومتطلبات الامتثال.
- استخدم CloudFront لتسريع تسليم المحتوى: استخدم CloudFront لتخزين المحتوى الثابت والديناميكي مؤقتًا، مما يحسن تجربة المستخدم.
2. أفضل ممارسات IAM: مبدأ الامتيازات الأقل
Identity and Access Management (IAM) هو جوهر أمان AWS. يتيح لك IAM التحكم في من يمكنه الوصول إلى موارد AWS الخاصة بك والإجراءات التي يمكنهم تنفيذها. تتضمن المفاهيم الأساسية لـ IAM ما يلي:
- Users (المستخدمون): يمثلون الأفراد أو التطبيقات، ويستخدمون للوصول إلى موارد AWS.
- Roles (الأدوار): يمكن تعيينها لخدمات AWS أو مثيلات EC2، مما يسمح لها بالوصول إلى موارد AWS الأخرى.
- Groups (المجموعات): تستخدم لتنظيم المستخدمين، مما يسهل إدارة الأذونات.
- Policies (السياسات): تحدد أذونات المستخدمين أو الأدوار أو المجموعات.
أفضل الممارسات:
- مبدأ الامتيازات الأقل (Least Privilege): امنح المستخدمين أو الأدوار الحد الأدنى من الأذونات المطلوبة فقط. تجنب استخدام سياسة
AdministratorAccess، ويجب عليك إنشاء سياسات مخصصة بناءً على الاحتياجات الفعلية. - استخدم الأدوار بدلاً من مستخدمي IAM: حاول استخدام الأدوار لمنح مثيلات EC2 أو وظائف Lambda إذن الوصول إلى موارد AWS الأخرى، وتجنب تخزين Access Key ID و Secret Access Key في التعليمات البرمجية.
- تمكين MFA (المصادقة متعددة العوامل): قم بتمكين MFA لجميع مستخدمي IAM لتحسين أمان الحساب.
- تدقيق أذونات IAM بانتظام: قم بتدقيق أذونات IAM بانتظام للتأكد من عدم وجود ترخيص مفرط.
مثال على السياسة:
تسمح السياسة التالية للمستخدمين بتنفيذ عمليات GetObject و PutObject في حاوية S3 my-bucket في منطقة us-east-1.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}
]
}
3. أتمتة DevOps: باستخدام نصوص Bash و GitHub Actions
ذكرت المناقشات على X/Twitter مستودعات نصوص DevOps Bash و GitHub Actions، وهما أداتان مهمتان لتحقيق أتمتة DevOps.
- نصوص Bash: يمكن استخدام نصوص Bash لأتمتة مهام DevOps المختلفة، مثل نشر التطبيقات وتكوين الخوادم ومراقبة الأنظمة وما إلى ذلك.
- GitHub Actions: GitHub Actions هي أداة CI/CD يمكنها إنشاء التطبيقات واختبارها ونشرها تلقائيًا.
نصائح عملية:
- استخدم نصوص Bash لأتمتة المهام الشائعة: على سبيل المثال، يمكنك استخدام نصوص Bash لنشر وظائف Lambda أو مثيلات EC2 تلقائيًا.
- استخدم GitHub Actions لإنشاء مسارات CI/CD: يمكنك استخدام GitHub Actions لإنشاء التطبيقات واختبارها ونشرها تلقائيًا.
- التحكم في الإصدار: قم بتخزين نصوص Bash وتكوينات GitHub Actions في نظام التحكم في الإصدار، مثل Git.
مثال على سير عمل GitHub Actions:
يقوم سير عمل GitHub Actions التالي بإنشاء وظيفة Lambda واختبارها ونشرها تلقائيًا في كل مرة يتم فيها إرسال التعليمات البرمجية إلى فرع main.
name: Deploy Lambda Function
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm install
- run: npm run build
- uses: actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- run: aws lambda update-function-code --function-name my-lambda-function --zip-file fileb://dist/lambda.zip
4. تطبيقات Serverless: AWS Lambda + S3 + DynamoDBذكرت المناقشات على X/Twitter مثالاً لبناء Serverless X (Twitter) Quote Bot باستخدام AWS Lambda و S3 و DynamoDB. هذا يوضح قوة بنية Serverless.
- AWS Lambda: خدمة حوسبة بدون خادم، يمكنها تشغيل التعليمات البرمجية دون الحاجة إلى إدارة الخوادم.
- Amazon S3: خدمة تخزين الكائنات، تستخدم لتخزين أنواع مختلفة من البيانات.
- Amazon DynamoDB: خدمة قاعدة بيانات NoSQL، تستخدم لتخزين البيانات المنظمة وشبه المنظمة.
خطوات بناء تطبيق Serverless:
- اختر المشغل المناسب: اختر الحدث الذي يشغل وظيفة Lambda، مثل طلب HTTP أو تحميل كائن S3 أو تحديث بيانات DynamoDB وما إلى ذلك.
- اكتب كود وظيفة Lambda: اكتب كود وظيفة Lambda لمعالجة أحداث المشغل وتنفيذ العمليات المقابلة.
- تكوين دور IAM: قم بتكوين دور IAM، ومنح وظيفة Lambda إذن الوصول إلى موارد AWS الأخرى، مثل S3 و DynamoDB.
- نشر وظيفة Lambda: انشر وظيفة Lambda إلى AWS.
- اختبار وظيفة Lambda: اختبر وظيفة Lambda للتأكد من أنها تعمل بشكل صحيح.
مزايا تطبيق Serverless:
- لا حاجة لإدارة الخوادم: لا حاجة لإدارة الخوادم، مما يقلل من عبء التشغيل والصيانة.
- توسع تلقائي: يتوسع تلقائيًا وفقًا لحجم الطلب، دون الحاجة إلى التكوين اليدوي.
- الدفع حسب الاستخدام: ادفع فقط مقابل موارد الحوسبة المستخدمة بالفعل، مما يقلل التكاليف.
5. تطبيقات الذكاء الاصطناعي/التعلم الآلي: Bedrock وممارسات LLM
ذكرت المناقشات على X/Twitter أيضًا فرص التدريب الداخلي في AWS AI Lab في LLM (Large Language Model) وتطبيقات Bedrock. تقدم AWS مجموعة واسعة من خدمات الذكاء الاصطناعي/التعلم الآلي التي يمكن أن تساعدك في بناء تطبيقات الذكاء الاصطناعي/التعلم الآلي المختلفة.
- Amazon Bedrock: خدمة توفر مجموعة من النماذج الأساسية عالية الأداء من شركات الذكاء الاصطناعي الرائدة.
- AWS AI Lab: يركز على أبحاث الذكاء الاصطناعي/التعلم الآلي ويوفر فرص تدريب للطلاب.
اتجاهات الممارسة:
- استخدم Bedrock لبناء تطبيقات الذكاء الاصطناعي: يمكنك استخدام النماذج الأساسية التي يوفرها Bedrock لبناء تطبيقات الذكاء الاصطناعي المختلفة، مثل إنشاء النصوص والتعرف على الصور والتعرف على الصوت وما إلى ذلك.
- التركيز على ذاكرة LLM والتعلم المستمر: يمكن أن يساعدك التركيز على أحدث التطورات البحثية في LLM، مثل ذاكرة LLM والتعلم المستمر، في بناء تطبيقات ذكاء اصطناعي أكثر ذكاءً.
6. الأمان والامتثال: التركيز على انقطاع خدمات AWS
ذكرت المناقشات على X/Twitter أحداث انقطاع خدمات AWS، مما يذكرنا بالتركيز على أمان AWS والامتثال.
- النشر متعدد المناطق: يمكن أن يؤدي نشر التطبيقات في مناطق AWS مختلفة إلى تجنب عدم توفر التطبيقات بسبب فشل منطقة واحدة.
- المراقبة والتنبيه: قم بإعداد المراقبة والتنبيه لاكتشاف المشكلات في الوقت المناسب واتخاذ الإجراءات.
- النسخ الاحتياطي والاستعادة: قم بعمل نسخ احتياطية للبيانات بانتظام واختبر عمليات الاستعادة.
- الامتثال: فهم والالتزام بمتطلبات الامتثال ذات الصلة، مثل GDPR و HIPAA وما إلى ذلك.





