دليل شامل لـ AWS CLI: التثبيت، التهيئة، والاستخدام لفهم بيئة مواردك السحابية
تُعد واجهة سطر الأوامر الخاصة بـ AWS (AWS CLI) أداة قوية وضرورية للمطورين ومديري الأنظمة الذين يتعاملون مع خدمات أمازون ويب. تتيح لك هذه الأداة التفاعل مع خدمات AWS مباشرة من سطر الأوامر، مما يوفر مرونة وسرعة لا مثيل لهما في إدارة مواردك. في هذا الدليل الشامل، سنتعمق في كيفية تثبيت AWS CLI، تهيئتها للاستخدام الآمن، واستغلال قدراتها لفهم بيئة مواردك السحابية بشكل فعال.
تثبيت AWS CLI: دليل خطوة بخطوة
عملية تثبيت واجهة سطر الأوامر لـ AWS (AWS CLI) بسيطة ومباشرة. يُنصح دائمًا بالرجوع إلى دليل التثبيت الرسمي من AWS لضمان الحصول على أحدث التعليمات المتوافقة مع نظام التشغيل الخاص بك. حاليًا، تُشجع AWS على استخدام الإصدار الثاني من CLI نظرًا لميزاته المحسنة واستقراره. إذا كنت تعمل على نظام Linux، يمكنك اتباع الخطوات التالية لتثبيت AWS CLI v2:
خطوات التثبيت على Linux
ابدأ بتنزيل حزمة التثبيت باستخدام الأمر curl، ثم فك ضغطها، وتشغيل سكربت التثبيت. بعد الانتهاء، تحقق من الإصدار المثبت.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
ls aws
sudo ./aws/install
aws --version
بعد تنفيذ هذه الأوامر، يجب أن ترى رقم إصدار AWS CLI، مما يؤكد نجاح عملية التثبيت.
تهيئة AWS CLI للوصول الآمن إلى مواردك
بعد تثبيت AWS CLI، الخطوة التالية والأكثر أهمية هي تهيئتها للاتصال بحسابك في AWS بشكل آمن. يتطلب ذلك مفتاح وصول صالحًا (Access Key) يتكون من معرف مفتاح الوصول (Access Key ID) ومفتاح الوصول السري (Secret Access Key). على الرغم من وجود أمر create-access-key في CLI، إلا أنه يتطلب المصادقة المسبقة، مما يخلق معضلة. لذا، سنقوم بإنشاء هذه المفاتيح من خلال لوحة تحكم AWS.
الحصول على مفاتيح الوصول من لوحة تحكم AWS
للحصول على مفاتيح الوصول الخاصة بك، اتبع الخطوات التالية في لوحة تحكم AWS:
- سجل الدخول إلى لوحة تحكم AWS.
- من القائمة المنسدلة لحسابك في الزاوية العلوية اليمنى، اختر “My Security Credentials” (أو “بيانات الاعتماد الأمنية الخاصة بي”).
- انتقل إلى قسم “Access keys (access key ID and secret access key)” (مفاتيح الوصول). أنشئ مفتاحًا جديدًا إذا لم يكن لديك واحد بالفعل، وتأكد من حفظ المفتاح السري فور إنشائه لأنه لن يظهر مرة أخرى.
تشغيل أمر التهيئة
بمجرد حصولك على مفاتيح الوصول، يمكنك تشغيل الأمر aws configure في سطر الأوامر الخاص بك. سيُطلب منك إدخال المعلومات التالية:
aws configure
AWS Access Key ID: أدخل معرف مفتاح الوصول الذي حصلت عليه.AWS Secret Access Key: أدخل مفتاح الوصول السري.Default region name: اختر المنطقة الافتراضية لـ AWS التي تفضل العمل بها (مثلeu-west-1أوus-east-1). يمكنك ترك هذا الخيار افتراضيًا إذا لم تكن متأكدًا.Default output format: يمكنك اختيار تنسيق الإخراج الافتراضي (مثلjson،text،yaml). عادةً ما يكونjsonهو الخيار الأفضل للتحليل البرمجي.
لتأكيد نجاح التهيئة، يمكنك محاولة سرد جميع حاويات S3 في حسابك باستخدام الأمر التالي:
aws s3 ls
إذا ظهرت قائمة بحاويات S3 الخاصة بك، فهذا يعني أن AWS CLI قد تم تهيئتها بنجاح وجاهزة للاستخدام.
استكشاف بيئة مواردك باستخدام AWS CLI و CloudFormation
تُعد خدمة AWS CloudFormation حجر الزاوية في إدارة البنية التحتية كتعليمات برمجية (Infrastructure as Code) على AWS. تتيح لك هذه الخدمة تعريف مواردك السحابية وتكويناتها في قوالب (templates) قابلة للتكرار، مما يضمن بيئات تطبيق سحابية متسقة وموثوقة. يمكنك إدارة مكدسات CloudFormation عبر لوحة تحكم AWS أو، كما سنرى هنا، باستخدام AWS CLI. إن استخدام CLI لإدارة CloudFormation يوفر مرونة وأتمتة لا تقدر بثمن، وهو ما نوصي به بشدة.
إنشاء مكدس CloudFormation باستخدام AWS CLI
لإظهار قوة AWS CLI، سنقوم بتجربة إنشاء مكدس (stack) أكثر تعقيدًا باستخدام قالب نموذجي من وثائق AWS. هذا القالب، ضمن مجموعة “Application Frameworks”، يُنشئ خوادم Linux قابلة للتوسع التلقائي (auto-scaled) مع خادم ويب Apache ولغة برمجة PHP، بالإضافة إلى اتصال بقاعدة بيانات RDS متعددة مناطق التوفر (Multi-AZ RDS) تعمل بمحرك MySQL.
عند مراجعة هذا القالب، ستلاحظ أقسام Parameters التي تحدد تفاصيل مثل شبكة VPC والشبكات الفرعية (subnets) التي سيتم إطلاق المثيلات فيها، بالإضافة إلى اسم مستخدم وكلمة مرور قاعدة بيانات MySQL. من الضروري توفير هذه التفاصيل لضمان تواصل الخدمات المختلفة بشكل صحيح.
للبدء، يمكنك عرض القالب (ابحث عن “Application Frameworks” في وثائق AWS CloudFormation)، ثم نسخ محتوياته ولصقها في ملف JSON جديد على جهازك المحلي. لنفترض أننا سميناه lamp-as.json.
الآن، يمكنك استخدام الأمر create-stack في AWS CLI لإطلاق مكدس CloudFormation. يتطلب هذا الأمر عدة وسائط لتمرير المعلومات الهامة. المثال التالي يوضح كيفية الإشارة إلى ملف قالب JSON، وتحديد اسم للمكدس، ومفتاح SSH صالح للوصول إلى المثيلات التي سيتم إنشاؤها:
aws cloudformation create-stack \
--template-body file://lamp-as.json \
--stack-name lamp \
--parameters \
ParameterKey=KeyName,ParameterValue=mykey
ولكن، إذا حاولت تشغيل الأمر أعلاه مباشرةً باستخدام القالب، فمن المحتمل أن يفشل. السبب هو أن القالب يتطلب معلمات إضافية لم يتم توفيرها في الأمر الأولي. على وجه التحديد، نحتاج إلى معرفات لشبكة VPC واثنتين من الشبكات الفرعية (subnets) – وبما أن هذا التوزيع متعدد مناطق التوفر، فيجب أن تكون الشبكات الفرعية في مناطق توفر مختلفة.
الحصول على معرفات VPC والشبكات الفرعية باستخدام AWS CLI
هنا يأتي دور AWS CLI لإنقاذ الموقف. للحصول على معرف VPC ID، تذكر أن شبكات VPC هي كائنات EC2. يمكنك تشغيل الأمر aws ec2 describe-vpcs وستظهر لك جميع البيانات التي تحتاجها، بما في ذلك معرف VPC ID.
وبالنسبة للشبكات الفرعية، الأمر مشابه. ما عليك سوى نسخ معرفات الشبكات الفرعية (subnet IDs) لاثنتين من الشبكات الفرعية التي ستظهر في الإخراج، مع التأكد من أنهما من مناطق توفر مختلفة.
aws ec2 describe-vpcs
aws ec2 describe-subnets
الآن، لنجمع كل هذه المعلومات ونعيد صياغة أمر create-stack الخاص بنا. يجب أن تكون حذرًا هنا، حيث توجد بعض التفاصيل الدقيقة في بناء الجملة التي يمكن أن تسبب أخطاء.
aws cloudformation create-stack \
--template-body file://lamp-as.json \
--stack-name lamp-as \
--parameters \
ParameterKey=KeyName,ParameterValue=mykey \
ParameterKey=VpcId,ParameterValue=vpc-1ffbc964 \
ParameterKey=Subnets,ParameterValue=\'subnet-0e170b31,subnet-52d6117c\' \
ParameterKey=DBUser,ParameterValue=myadmin \
ParameterKey=DBPassword,ParameterValue=mypass23
لاحظ النقاط الهامة في هذا الأمر المعدل:
- معلمة
VpcId: تأكد من استخدام الأحرف الكبيرة والصغيرة الصحيحة (VpcIdوليسVPC-IDأوVPCId). أي خطأ في حالة الأحرف سيؤدي إلى فشل الأمر. - معلمة
Subnets: نظرًا لأننا نحتاج إلى شبكتين فرعيتين، يجب إدخالهما في سطر واحد مفصولتين بفاصلة بدون مسافات (مثال:subnet-id1,subnet-id2). الأهم من ذلك، يجب إحاطة السلسلة بأكملها بعلامات اقتباس فردية (')، ولكن لأنCLIلا يمكنها قراءة علامات الاقتباس الفردية مباشرة، يجب “تهريبها” (escape) باستخدام الشرطات المائلة العكسية (\) مثل:\'subnet-id1,subnet-id2\'. - تمت إضافة معلمات قاعدة البيانات:
DBUserوDBPassword، مع قيمها المناسبة.
بعد تشغيل هذا الأمر، سيبدأ CloudFormation في إنشاء المكدس الخاص بك. قد تستغرق هذه العملية ما يصل إلى نصف ساعة. بعد اكتمالها، يمكنك استخدام الأمر describe-stacks للحصول على عنوان URL لموقع الويب الخاص بك:
aws cloudformation describe-stacks
ولكن القصة لا تتوقف هنا. يمكننا استخدام أمر aws ec2 describe-instances للحصول على معلومات مفصلة حول مثيلات EC2 التي تم إطلاقها كجزء من هذا المكدس. يمكننا تصفية النتائج لعرض المثيلات قيد التشغيل فقط، ثم استخدام خيار --query لتخصيص الإخراج وعرض معرفات المثيلات (Instance IDs) وعناوين IP العامة (Public IP Addresses) فقط.
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=running \
--query 'Reservations[*].Instances[*].{Instance:InstanceId,PublicIPAddress:PublicIpAddress}'
سيظهر لك هذا الأمر معلومات حول المثيلات التي تم إنشاؤها بواسطة CloudFormation، مما يوضح كيف يمكن لـ AWS CLI أن تكون أداة قوية لجمع المعلومات والتحقق من حالة مواردك السحابية.
الخلاصة التقنية
تُعد AWS CLI أداة لا غنى عنها لأي شخص يعمل مع بيئة AWS. إنها لا توفر فقط وسيلة فعالة لأتمتة المهام وإدارة الموارد، بل تمكنك أيضًا من فهم بيئتك السحابية بعمق من خلال استعراض تفاصيل الموارد وتكويناتها. من خلال التثبيت الصحيح والتهيئة الآمنة والاستخدام الماهر لأوامر مثل create-stack و describe-vpcs و describe-instances، يمكنك التحكم الكامل في بنية تحتية معقدة، وتحسين سير العمل، وضمان الاتساق في عمليات النشر. إن إتقان AWS CLI يفتح آفاقًا واسعة للكفاءة والإنتاجية في عالم الحوسبة السحابية.