دليل لأتمتة نشر بنية تحتية لـ AWS

عندما يتعلق الأمر بإدارة البنية التحتية في السحابة، توفر AWS العديد من الأدوات القوية التي تساعد في أتمتة إنشاء وإدارة الموارد.

واحدة من أكثر الطرق فعالية للتعامل مع عمليات النشر هي من خلال AWS CloudFormation. يتيح لك تعريف بنيتك التحتية بطريقة إعلانية، مما يجعل من السهل أتمتة توفير خدمات AWS، بما في ذلك Elastic Beanstalk، التطبيقات بدون خادم، وحدات EC2، مجموعات الأمان، موازنات الحمل، والمزيد.

في هذا الدليل، سنستكشف كيفية استخدام AWS CloudFormation لنشر البنية التحتية برمجياً. سنغطي أيضًا كيفية نشر الموارد يدويًا عبر وحدة إدارة AWS وكيفية دمج خدمات مثل Elastic Beanstalk، الوظائف بدون خادم، EC2، IAM، وموارد AWS الأخرى في سير عملك الآلي.

استخدام AWS CloudFormation للبنية التحتية ككود

يتيح لك AWS CloudFormation تعريف بنيتك التحتية باستخدام الكود. يوفر CloudFormation إطار عمل موحد لأتمتة وإصدار بنيتك التحتية من خلال إعداد Elastic Beanstalk، وحدات EC2، VPCs، أدوار IAM، وظائف Lambda، أو التطبيقات بدون خادم.

تُكتب قوالب CloudFormation بتنسيق YAML أو JSON، وهي تحدد الموارد التي تحتاج إلى توفيرها. مع CloudFormation، يمكنك أتمتة كل شيء من التطبيقات البسيطة إلى البيئات المعقدة متعددة الخدمات.

الميزات الرئيسية لـ CloudFormation

  • التكوين الإعلامي.  صف الحالة المرغوبة لبنيتك التحتية، ويضمن CloudFormation أن الحالة الحالية تتطابق معها.
  • إدارة الموارد. يقوم تلقائيًا بتوفير وإدارة موارد AWS مثل حالات EC2، قواعد بيانات RDS، VPCs، وظائف Lambda، أدوار IAM، وأكثر من ذلك.
  • تحديثات الكومة الإعلامية. إذا كنت بحاجة إلى تعديل بنيتك التحتية، ما عليك سوى تحديث قالب CloudFormation، وسيقوم بضبط مواردك إلى الحالة المرغوبة الجديدة.

خطوات استخدام CloudFormation لنشر مختلف AWS

نشر Elastic Beanstalk مع CloudFormation

1. كتابة قالب CloudFormation

أنشئ قالب CloudFormation بتنسيق YAML أو JSON لتعريف تطبيق Elastic Beanstalk والبيئة. يمكن أن يتضمن هذا القالب موارد مثل حالات EC2، مجموعات الأمان، سياسات التوسيع، وحتى تطبيق Elastic Beanstalk نفسه.

مثال على قالب CloudFormation (Elastic Beanstalk):

YAML

 

2. نشر كومة CloudFormation

استخدم واجهة سطر الأوامر لـ AWS أو واجهة إدارة AWS لنشر كومة CloudFormation. بمجرد النشر، ستقوم CloudFormation تلقائيًا بإنشاء جميع الموارد المحددة في القالب.

نشر عبر واجهة سطر الأوامر لـ AWS:

YAML

 

نشر خادمي بدون خادم مع AWS Lambda، API Gateway، و DynamoDB

يعتبر CloudFormation أيضًا ممتازًا لنشر التطبيقات الخالية من الخوادم. باستخدام خدمات مثل AWS Lambda و API Gateway و DynamoDB و S3، يمكنك إدارة أعباء العمل الخالية من الخوادم بسهولة.

1. إنشاء قالب CloudFormation للتطبيقات الخالية من الخوادم

سيتضمن هذا القالب وظيفة Lambda وبوابة API للوصول إلى الوظيفة، وجدول DynamoDB.

مثال على قالب CloudFormation (خالي من الخوادم):

YAML

 

2. نشر الكومة الخالية من الخوادم

نشر تطبيقك الخالي من الخوادم باستخدام سطر الأوامر لـ AWS أو واجهة تحكم إدارة AWS.

YAML

 

نشر VPC و EC2

يمكن لـ CloudFormation أتمتة إنشاء شبكة افتراضية خاصة (VPC)، الشبكات الفرعية، مجموعات الأمان، وحالات EC2 لأعباء العمل التقليدية.

1. قالب CloudFormation لـ VPC و EC2

يحدد هذا القالب حالة EC2 بسيطة داخل VPC، مع مجموعة أمان تسمح بحركة HTTP.

مثال على قالب CloudFormation (VPC و EC2):

YAML

 

2. نشر الكومة

YAML

 

الميزات المتقدمة لـ CloudFormation

تقدم AWS CloudFormation أكثر من مجرد توفير موارد بسيطة. إليك بعض الميزات المتقدمة التي تجعل من CloudFormation أداة قوية لتأتير البنية التحتية:

  • أوامر الكومة. إنشاء وإدارة الكومات عبر حسابات AWS ومناطق متعددة، مما يسمح بنشر موحد للبنية التحتية عبر منظمتك.
  • مجموعات التغييرات. قبل تطبيق التغييرات على كومة CloudFormation الخاصة بك، قم بمعاينة التغييرات باستخدام مجموعة تغييرات لضمان النتيجة المرغوبة.
  • المخرجات. قيم المخرجات من CloudFormation التي يمكنك استخدامها للكومات أو التطبيقات الأخرى. على سبيل المثال، يمكنك إخراج عنوان URL لبوابة واجهة برمجة التطبيقات أو عنوان IP لمثيل EC2.
  • المعلمات. قم بتمرير المعلمات لتخصيص كومتك دون تعديل القالب نفسه، مما يجعله قابلاً لإعادة الاستخدام في بيئات مختلفة.
  • التعيينات. قم بإنشاء أزواج مفتاح-قيمة لتعيين قيم التكوين، مثل قيم معينة لمنطقة AWS، أنواع الحالات، أو معلمات أخرى تعتمد على البيئة.

استخدام CloudFormation مع خدمات AWS خارج Elastic Beanstalk

لا تقتصر CloudFormation فقط على نشر Elastic Beanstalk – إنها أداة مرنة يمكن استخدامها مع مجموعة متنوعة من خدمات AWS، بما في ذلك:

  • AWS Lambda. أتمتة نشر الوظائف الخادمة مع المشغلات مثل بوابة واجهة برمجة التطبيقات، S3، أو أحداث DynamoDB.
  • Amazon S3. استخدم CloudFormation لإنشاء حاويات S3 وإدارة تكويناتها.
  • AWS IAM. أتمتة إنشاء دور IAM وسياسات للتحكم في الوصول إلى مواردك.
  • Amazon RDS. حدد قواعد البيانات RDS (MySQL، PostgreSQL، إلخ) مع جميع التكوينات المرتبطة مثل إعدادات VPC، الشبكات الفرعية، ومجموعات الأمان.
  • Amazon SQS, SNS. إدارة قوائم الانتظار والمواضيع لبنية تطبيقك باستخدام CloudFormation.
  • Amazon ECS و EKS. أتمم إنشاء ونشر التطبيقات المعبأة في حاويات باستخدام خدمات مثل ECS و EKS.

نشر البنية التحتية يدويًا من لوحة التحكم في AWS

على الرغم من أن CloudFormation يتمتع بالتلقائية في العملية، إلا أن التدخل اليدوي أحيانًا ضروري. تسمح لك لوحة تحكم إدارة AWS بنشر الموارد يدويًا.

1. تطبيق Elastic Beanstalk

  • انتقل إلى لوحة تحكم Elastic Beanstalk.
  • انقر على إنشاء التطبيق، اتبع الخطوات لتحديد اسم التطبيق والمنصة (مثل Docker، Node.js)، ثم قم بتكوين البيئة يدويًا، وخيارات التوسيع والأمان.

2. تطبيقات Serverless (Lambda + API Gateway)

  • انتقل إلى لوحة تحكم Lambda لإنشاء ونشر الوظائف.
  • استخدم لوحة تحكم API Gateway لإنشاء واجهات برمجة تطبيقات لوظائف Lambda الخاصة بك.

3. مثيلات EC2

  • قم بتشغيل مثيلات EC2 يدويًا من لوحة تحكم EC2 وقم بتكوينها بنوع المثيل المختار، ومجموعات الأمان، وأزواج المفاتيح.

الاستنتاج

توفر AWS CloudFormation وسيلة متسقة وقابلة للتكرار لإدارة البنية التحتية لتطبيقات Elastic Beanstalk، وهندسة البرمجيات الخادمة، وتطبيقات EC2. باستخدام ميزاته المتقدمة مثل مجموعات الكومة، ومجموعات التغيير، والمعلمات، يمكن لـ CloudFormation التوسع لتلبية احتياجات البيئات المعقدة.

بالنسبة لأي شخص يدير بيئات AWS كبيرة أو ديناميكية، فإن CloudFormation هو أداة أساسية لضمان الاتساق والأمان والأتمتة عبر جميع نشرات AWS الخاصة بك.

Source:
https://dzone.com/articles/automate-aws-infrastructure-deployment