نشر AWS CLI و CloudFormation للبنية التحتية

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

هذا مدونة ضيف من تأليف كارل إريكسون، المؤسس المشارك لـ Mocki – أداة تتيح لك إنشاء واجهات برمجة تطبيقات وهمية في دقائق.

إذا كنت تقوم بتشغيل بيئة واحدة لتطبيقك، يمكنك إدارة الأمور بسهولة من خلال واجهة مستخدم رسومية (GUI) مثل واجهة التحكم في AWS. ولكن عندما تكون هناك بيئات متعددة مثل التطوير والاستضافة والإنتاج، تصبح الأمور أكثر صعوبة. يدخل الخطأ البشري والوقت في المعادلة. يمكن أن تساعدك AWS CLI وCloudFormation في ذلك.

عليك إدارة البنية التحتية كشيفرة برمجية. في عالم AWS، الطريقة للقيام بذلك هي من خلال استخدام كتل CloudFormation.

عند نشر كتلة CloudFormation للمرة الأولى، ستقوم AWS بإنشاء كل شيء من البداية. إذا قمت بنشر الكتلة كتحديث، ستكتشف أي تغييرات في البنية التحتية وستقوم بنشر تلك التغييرات فقط.

تضمن كتل CloudFormation تطبيق نفس التغييرات في جميع بيئاتك المختلفة.

CloudFormation: بنية تحتية AWS كشيفرة برمجية

AWS Infrastructure as Code Source: https://aws.amazon.com/cloudformation/

AWS CloudFormation هو أداة لكتابة وتوفير البنية التحتية كـ “الشيفرة” في بيئة AWS. تدعم CloudFormation معظم الخدمات المقدمة من AWS. يمكن إضافة معظم ما يمكنك إنشاؤه باستخدام واجهة المستخدم الخاصة بـ AWS مثل الخوادم الافتراضية وقواعد البيانات وتوازن الحمل وتخزين الملفات إلى مجموعة CloudFormation. بمجرد إضافتها، يمكن نشر جميع تلك الموارد من سطر الأوامر أو عملية أخرى مؤتمتة.

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

لنتعلم الآن كيفية إنشاء البنية التحتية باستخدام AWS CLI و CloudFormation.

المتطلبات المسبقة

لمتابعة درس CloudFormation في بقية هذه المقالة، تأكد من وجود ما يلي:

  • حساب AWS
  • AWS CLI – تعرف على كيفية التنزيل والإعداد هنا. يمكنك التأكد من أن تم إعداد CLI بنجاح عن طريق تشغيل الأمر aws s3 ls. إذا تم تنفيذ الأمر بنجاح، فكل شيء على ما يرام.

إذا كان لديك عدة ملفات تكوين AWS عبر واجهة سطر الأوامر AWS CLI، يرجى استخدام إحداها المناسبة للتطوير أو أغراض الاختبار لاستخدامها في هذا البرنامج التعليمي.

إنشاء الكومة الأولى في CloudFormation

معلومات الخلفية كافية، دعونا نبدأ الأمور ونستخدم AWS CLI وCloudFormation لإنشاء كومة!

في هذا المثال، ستقوم بإنشاء كومة تحتوي على البنية التحتية اللازمة لنشر موقع ويب ثابت مستضاف على خدمة استضافة ملفات الويب الثابتة AWS S3.

للبدء، قم بإنشاء ملف جديد بالاسم template.yaml واملأه بالمحتوى أدناه:

AWSTemplateFormatVersion: 2010-09-09
Description: A simple CloudFormation template
Resources:
    Bucket:
        Type: AWS::S3::Bucket
        Properties:
            BucketName: your-bucket-name # استخدم اسمًا فريدًا خاصًا بك
  • AWSTemplateFormatVersion يحدد إصدار تنسيق القالب بحيث يمكن لخدمة AWS تفسيره بشكل صحيح عند نشره.
  • Description – يحتوي على وصف للقالب سيظهر في واجهة AWS Console بمجرد نشره.
  • Resources – يحتوي على جميع البنية التحتية التي تقوم بإضافتها إلى القالب. في هذه الحالة، ستقوم الموارد بإنشاء سلة S3 بسيطة ستستضيف موقعًا ثابتًا.

يجب أن يكون خاصية BucketName فريدة لذا حاول العثور على شيء غير اسم سلة الخاص بك.

نشر الستاك باستخدام AWS CLI و CloudFormation

بعد أن قمت بإنشاء قالب بسيط للنشر، قم بنشره على AWS باستخدام AWS CLI و CloudFormation عبر الأمر التالي:

aws cloudformation deploy --template-file template.yaml --stack-name static-website

بعد تشغيل الأمر، انتقل إلى واجهة توجيه AWS ثم انتقل إلى الخدمات → CloudFormation. يجب أن ترى عملية النشر تعمل. بعد بضع دقائق، يجب أن تكون قد دخلت في حالة CREATE_COMPLETE. إذا كان الأمر كذلك، فإنه اكتمل!

إذا كانت هناك أي أخطاء، يجب أن تتمكن من رؤيتها في قسم الأحداث عند عرض تفاصيل الستاك الخاص بك.

عن طريق الانتقال إلى الخدماتS3، يجب أن ترى الآن دلو S3 جديد تم إنشاؤه.

بناء الموقع البسيط

بمجرد وجود دلو S3 لتخزين الموقع، قم بإنشاء ملف index.html الذي سيكون الموقع.

إذا لم يكن لديك شيء معين في الاعتبار، يمكنك استخدام المحتوى أدناه في ملف index.html الخاص بك:

<html>
  <body>
    <h1>Static Site Deployed Using CloudFormation</h1>
    <p>Hello! This site was deployed using CloudFormation. Go cloud!</p>
  </body>
</html>

احفظ ملف index.html وقم بتحميله إلى دلو S3 الخاص بك من خلال واجهة توجيه AWS.

تأكد من منح الوصول للقراءة العامة لملف الفهرس حيث سيكون متاحًا للجميع الذين يزورون الموقع.

تحديث القالب

الآن، الـ S3 bucket الذي تم إنشاؤه للتو ليس مكونًا لاستضافة موقع ويب. دعونا نقوم بـ تغيير ذلك. يمكنك حاليًا تنزيل ملف الفهرس من خلال وحدة التحكم AWS ولكنه غير متاح عبر الإنترنت العام. باستخدام AWS CLI وCloudFormation، قم بتغيير التكوين لتمكين استضافة موقع ويب ثابت.

غيِّر template.yaml كما هو موضح أدناه لتمكينه. فيما يلي نقدم بعض الخصائص الجديدة لقالبنا.

AWSTemplateFormatVersion: 2010-09-09
Description: A simple CloudFormation template
Resources:
    Bucket:
        Type: AWS::S3::Bucket
        Properties:
            BucketName: your-bucket-name 
# استخدم اسمك الفريد

            AccessControl: PublicRead
            WebsiteConfiguration:
                IndexDocument: index.html
Outputs:
    WebsiteURL:
        Value: !GetAtt [Bucket, WebsiteURL]
        Description: URL for website hosted on S3
  • AccessControl – يحدد حقوق الوصول لسلة S3 لتكون قابلة للقراءة علنيًا بحيث يمكن لأي مستخدم يزور الموقع رؤية ملف index.html.

  • WebsiteConfiguration – يكون سلة S3 كموقع ويب سيخدم ملف index.html الذي تم تحميله عندما يذهب المستخدمون إلى عنوان URL الخاص بالسلة.

  • Outputs – يمكن أن تكون هناك خصائص مختلفة للموارد التي تشكل جزءًا من الستاك. في المثال أعلاه، يعد WebsiteURL إخراج الستاك. عند نشر القالب مرة أخرى، يجب أن ترى عنوان URL للموقع كإخراج في AWS CloudFormation Console.

الآن، قم بنشر التغييرات إلى الستاك الحالي باستخدام نفس الأمر كما في الخطوة السابقة.

aws cloudformation deploy --template-file template.yaml --stack-name static-website

للتحقق من النتيجة، انتقل إلى وحدة تكوين السحابة. بعد بضع دقائق، يجب أن تلاحظ أن الكومة في حالة UPDATE_COMPLETE. عندما تدخل الكومة في هذه الحالة، انتقل إلى علامة Outputs حيث يجب أن ترى WebsiteUrl مضافًا كإخراج في القالب.

انقر على الرابط المقدم ويجب أن ترى موقعك على متصفح الويب الخاص بك.

تهانينا! باستخدام AWS CLI و CloudFormation ، قمت الآن بنشر كومةك الأولى باستخدام البنية كشيفرة! في هذه النقطة، استمر في إضافة ما تحتاجه إلى ملف القالب لنشر التغييرات الجديدة أو إنشاء قالب جديد وفقًا لاحتياجاتك.

الختام

في هذا البرنامج التعليمي، تعلمت مفهوم البنية كشيفرة والفوائد التي تتيحها على التكوين اليدوي للبنية التحتية. باستخدام النهج الخاص بالبنية كشيفرة باستخدام AWS CLI و CloudFormation، قمت بنشر كومة لإنشاء موقع ويب ثابت.

باستخدام المبادئ التي تعلمتها في هذا البرنامج التعليمي، يمكنك نشر نظام جاهز للإنتاج تمامًا باستخدام CloudFormation.

قراءة إضافية

إذا كنت ترغب في قراءة المزيد حول البنية كشيفرة كظاهرة، تفضل بالتحقق من Infrastructure as Code in the Real World by HashiCorp.

إذا كنت ترغب في معرفة المزيد حول كيفية دمج CloudFormation في تدفق التطوير الخاص بك وإدارة كل بنيتك التحتية باستخدام CloudFormation، تأكد من التحقق من:

حظاً سعيداً في رحلتك في تنفيذ كل البنية التحتية الخاصة بك باستخدام البنية كشفرة في AWS!

Source:
https://adamtheautomator.com/aws-cli-and-cloudformation/