Amazon Elastic Block Store (EBS) هو خدمة توفير التخزين لحالات Amazon EC2. EBS هو ما يعمل كل مسح على حالات EC2 الخاصة بك. عند الاعتماد على خدمة لتشغيل البنية التحتية المهمة ، من الحكمة التأكد من نسخ البيانات الخاصة بها. في هذه المقالة في المدونة ، تعرّف على كيفية إدارة وتلقين اللقطات الفورية لـ EC2 باستخدام لغة البرمجة PowerShell.
يمكن نسخ كل مسح EBS المرتبط بحالة EC2 عبر لقطة EBS. يمكن إنشاء كل لقطة عبر أحد طريقين ؛ لقطة كاملة أو لقطة تزايدية. حسنًا ، من الناحية التقنية كلاهما ولكن.. فقط تابع معي في هذا الأمر.
عند إنشاء النسخة الاحتياطية الأولى للمسح لحالة EC2 ، يتم إنشاء نسخة احتياطية من المسح بأكمله. عند إنشاء لقطات متتالية ، يتم حفظ البيانات فقط على مستوى تخزين مستوى مستوى البلوك التي تغيرت منذ آخر لقطة احتياطية. ومع ذلك ، على عكس النسخ الاحتياطي التزايدي النموذجي في نقطة الوقت ، حيث يمكن ربط اللقطات الفورية ، عند استعادة لقطة فإن جميع البيانات لهذا المسح يتم استعادتها مما يجعلها مماثلة للنسخ الاحتياطي الكامل.
يمكن أن تحدث اللقطات بشكل غير متزامن مما يعني أن اللقطات يمكن أن تكون في عملية الإنشاء بشكل متوازٍ. عند البدء ، تدخل اللقطة مرحلة معلقة حتى يتم نسخ جميع البلوكات الضرورية إلى Amazon S3 حيث يتم تخزين جميع لقطات EBS.
استخدام PowerShell لإنشاء لقطات EC2 في AWS
توجد عدة طرق مختلفة يتيح لك AWS إدارة لقطات EBS. يمكنك استخدام وحدة التحكم في إدارة AWS أو سطر الأوامر AWS CLI أو PowerShell أو الواجهات البرمجية مباشرة إذا كنت تفضل ذلك. في هذا المقال، سنستخدم PowerShell نظرًا لأن وحدة AWSPowerShell تدعم بشكل رائع إدارة لقطات EBS باستخدام أوامر PowerShell.
المتطلبات المسبقة
قبل أن نتقدم كثيرًا، سأفترض أن لديك بعض المتطلبات المسبقة للاستفادة القصوى من هذا البرنامج التعليمي. ستحتاج إلى:
- حساب AWS
- مثيل EC2 بحجم مرفق
- تم التوثيق باستخدام المستخدم الجذر أو مستخدم IAM مع إذن CreateSnapshot (arn:aws:ec2:region::snapshot/*)
بمجرد أن تكون جميع هذه المتطلبات مرتبة، نحن جاهزون للبدء!
العثور على لقطات EC2 الحالية
أحد المهام الأولى التي سنقوم بها هي اكتشاف ما إذا كانت هناك أي لقطات حالية بالفعل. لمعرفة ذلك، نستخدم أمر Get-EC2Snapshot
. هذا هو الأمر الذي سيبحث عن أي لقطات تم إنشاؤها بالفعل وسيقوم بإخراجها إلى وحدة تحكم PowerShell.
سوف تلاحظ أن لقطات AWS EC2 التي تظهر ليست لمثيل EC2 الخاص بك. هذه جميع اللقطات التي تم مشاركتها معك والتي يمكنك استعادتها إلى مثيلات EC2 الخاصة بك. لاكتشاف جميع اللقطات التي تأتي من مثيلات EC2 الخاصة بك، استخدم معلمة OwnerId
مع القيمة self
.
إنشاء لقطة جديدة EBS
من المفترض أنك قد قمت بإنشاء مثيل EC2 بالفعل، يمكنك الآن إنشاء لقطة. يمكنك إنشاء لقطات جديدة باستخدام الأمر New-EC2Snapshot
ولكن أولاً، ستحتاج إلى جمع معرف الحجم لكل حجم ترغب في إنشاء لقطة له. للقيام بذلك، نحتاج أولاً إلى العثور على معرف مثيل EC2 حيث يتم تثبيت الحجم.
بمجرد معرفة معرف مثيل EC2، ستحتاج إلى استخدام ذلك للعثور على الأحجام. للعثور على جميع الأحجام المرتبطة بمثيل EC2، ستستخدم الأمر Get-EC2Volume
وتصفية الناتج لتتضمن فقط الأحجام ذات معرف مثيل مرتبط بما نبحث عنه.
الآن بعد أن لدينا الأحجام، توصي AWS بإيقاف تشغيل المثيل أو على الأقل فصل الحجم. سنقوم بإيقاف تشغيل المثيل.
يمكننا الآن تكرار كل حجم وتمرير معرف الحجم هذا إلى المعلمة VolumeId
في الأمر New-EC2Snapshot
. عندما يحدث ذلك، ستلاحظ بعد ذلك أن اللقطة ستدخل في حالة قيد الانتظار.
يمكنك تأكيد أن اللقطة قد تم الانتهاء منها عن طريق تشغيل Get-EC2Snapshot
مرة أخرى وتأكيد أن الحالة الآن مكتملة.
تعيين العلامات
إذا كان لديك الكثير من اللقطات لإدارتها، قد يكون من الصعب الحفاظ على تنظيمها جميعًا. لفرز اللقطات وتصنيفها لكل اكتشاف، يمكنك أيضًا تعيين علامات لها. العلامات هي جزء شائع من EC2 ويمكن استخدامها ضد لقطات EBS الخاصة بك.
يمكنك تعيين العلامات أثناء إنشاء اللقطة أو بعد ذلك. لتعيين العلامات أثناء إنشاء اللقطة، استخدم المعلمة TagSpecification
على New-EC2Snapshot
.
على سبيل المثال ، ربما أريد تسمية لقطة AWS EC2 التي التقطتها للتو قبل إجراء تغيير إنتاجي. أود إنشاء علامة تسمية تسمى المرحلة وتعيينها كـ تطوير. للقيام بذلك ، يمكنني إنشاء كائن TagSpecification ، وتعيين واحد أو أكثر من كائنات Tag إلى خاصية Tags ، ومن ثم تحديد نوع الموارد التي سيتم إرفاق هذه العلامة بها.
بمجرد إنشاء كائن TagSpecification ، يمكنني بعد ذلك تمرير ذلك إلى New-EC2Snapshot
.
إنشاء AMI جديد من Snapshots
ميزة رائعة أخرى للنقاط هي أنه يمكنك إنشاء صورة جديدة تمامًا (AMI) من لقطة. إذا كان لديك لقطة لحجم الجذر لـ نظام تشغيل Linux فقط EC2 instance ، يمكنك بسهولة إنشاء صورة AMI جديدة تمامًا من تلك اللقطة. لنقل أريد إنشاء صورة جديدة من اللقطة التي أنشأتها للتو. يمكنني القيام بذلك باستخدام الأمر New-EC2Image
.
I’ll first need to capture the snapshot ID.
بعد ذلك ، يمكنني تمرير ذلك ID كجدول التجزئة إلى المعلمة BlockDeviceMapping
في New-EC2Image
.
إزالة لقطات AWS EC2
إذا انتهينا من اللقطة ، يمكننا الآن إزالتها. القيام بذلك سهل. ببساطة قم بتوجيه النسخة التي تم إرجاعها بواسطة Get-EC2Snapshot
إلى Remove-EC2Snapshot
. ومع ذلك ، قد تواجه هذا الخطأ إذا كانت AMI قيد الاستخدام.
في هذه الحالة ، تم تسجيل AMI ويجب عليك أولاً إلغاء تسجيله باستخدام الأمر Unregister-EC2Image
.
ملخص
PowerShell تتيح لك إدارة كل جانب من جوانب EBS snapshots. إذا لم تكن السيناريوهات التي covered ناقصة لما تحتاج إليه، أقترح أن تلقي نظرة على جميع أوامر EC2 snapshot المتاحة من خلال تشغيل Get-Command -Noun *ec2snapshot* -Module AWSPowerShell
. سيعطيك ذلك فكرة جيدة حول ما يمكن تحقيقه باستخدام PowerShell وصور EC2 (EBS).