Amazon Elastic Block Store (EBS) הוא שירות המספק אחסון עבור מקרים של Amazon EC2. EBS הוא מה שכל הנפחות במקרי ה EC2 שלך רצים עליו. כאשר אתה סומך על שירות להפעלת תשתית חשובה, חכם לוודא שהנתונים מגובים. בפוסט בבלוג זה, למד כיצד לנהל ולאוטומט EC2 snapshots באמצעות שפת התסריט PowerShell.
כל נפח EBS שמחובר למקרה EC2 יכול להיות מגובה באמצעות snapshot של EBS. כל snapshot ניתן ליצירה באמצעות אחת משני הדרכים; snapshot מלא או מצער. נכון, בעצם שתיים אבל..פשוט לך איתי על זה.
כאשר גיבוי ה snapshot הראשון נוצר עבור מקרה EC2, הוא יוצר גיבוי של כל הנפח בשלמותו. כאשר נוצרים snapshot נוספים, נשמרים רק נתונים ברמת האחסון ברמת בלוק ששתתשנו מאז ה snapshot האחרון. אולם, למרות גיבויי נקודה בזמן מציינים נקודתיים מצויים, מאחר שניתן לרכות snapshot, כאשר משוחזר snapshot נשחזרים כל הנתונים עבור הנפח ההוא ולכן דומים לגיבוי מלא.
Snapshot יכולים להתרחש אסינכרונית, במובנה זה אומר ש snapshot יכולים להיות בתהליך יצירה במקביל. כאשר מתחילים, snapshot נכנסים לשלב הממתין עד שכל הבלוקים הנדרשים מועתקים אל Amazon S3 שם נשמרים כל snapshot של EBS.
שימוש בפווארשל כדי ליצור snapshot של AWS EC2
ישנם מספר דרכים שונות בהן ניתן לנהל Snapshots של EBS דרך AWS. ניתן להשתמש ב- AWS Management Console, ב- AWS CLI, ב-PowerShell או ישירות ב-APIs אם זו ההעדפה שלך. במאמר זה, אנו נשתמש ב-PowerShell מאחר ויש למודול AWSPowerShell תמיכה מצוינת בניהול Snapshots של EBS עם פקודות PowerShell.
דרישות מוקדמות
לפני שנתחיל, יהיו כמה דרישות מוקדמות שאני מניח שיש לך כדי להפיק את המרב מהמדריך הזה. יהיה עליך לספק:
- חשבון AWS
- מופע EC2 עם נפח מקושר
- אומת כמשתמש ראשי או משתמש IAM עם הרשאה ליצירת Snapshot (arn:aws:ec2:region::snapshot/*)
לאחר שסיימת להכין את כל הדרישות הללו, אנו מוכנים להתחיל!
מציאת Snapshots קיימים של EC2
אחת מהמשימות הראשונות שנבצע היא לגלות האם יש לנו כל Snapshots קיימים כבר. כדי לזהות זאת, נשתמש בפקודה Get-EC2Snapshot
. זו הפקודה שתחפש אחר Snapshots שכבר נוצרו ותציג אותם בקונסול PowerShell.
תשים לב שה-Snapshots של EC2 שמופיעים אינם שייכים למכונה ה-virtual שלך. אלו כל Snapshots ששותפו איתך וזמינים לשחזור למכונות ה-virtual שלך. כדי לגלות את כל הSnapshots שהגיעו מהמכונות ה-virtual שלך, השתמש בפרמטר OwnerId
עם ערך self
.
יצירת Snapshot חדש של EBS
נניח שכבר יש לך מופע EC2 שנוצר, עכשיו תוכל ליצור צילום. תוכל ליצור צילומים חדשים באמצעות הפקודה New-EC2Snapshot
, אך תחילה עליך לאסוף את מזהה הנפח של כל נפח שברצונך ליצור צילום שלו. על מנת לעשות זאת, עלינו לראשונה למצוא את מזהה המופע של EC2 שבו הנפח מחובר.
לאחר שיש לך את מזהה המופע של EC2, עליך להשתמש בו כדי למצוא את הנפחות. כדי למצוא את כל הנפחות שמחוברות למופע EC2, עליך להשתמש בפקודה Get-EC2Volume
ולסנן את הפלט כך שיהיה רק לנפחות עם מזהה מופע מחובר של זה שאנו מחפשים.
עכשיו שיש לנו את הנפחות, AWS ממליצה לכבות את המופע או לפחות לנטרל את הנפח. נמשיך ונכבה את המופע.
עכשיו נוכל לעבור על כל נפח ולהעביר את מזהה הנפח שלו לפרמטר VolumeId
בפקודת New-EC2Snapshot
. לאחר מכן, תראה שהצילום יעבור למצב של ממתין.
תוכל לאשר שהצילום הושלם על ידי הרצת Get-EC2Snapshot
שוב ולאשר שה-מצב הוא כעת הושלם.
הקצאת תגיות
אם יש לך הרבה צילומי EBS לנהל, יכול להיות קשה לשמור על כולם. כדי למיין צילומים ולסדר אותם לפי כל גילוי, תוכל גם להקצות תגיות להם. תגיות הן חלק של EC2 וניתן להשתמש בהן נגד הצילומי EBS שלך.
תוכל להקצות תגיות ביצירת הצילום או לאחר מכן. כדי להקצות תגיות ביצירת הצילום, השתמש בפרמטר TagSpecification
ב-New-EC2Snapshot
.
לדוגמה, אולי אני רוצה לתייג את צילום ה- AWS EC2 שלי שאני עשיתי לפני שערכתי שינויי ייצור. אני רוצה ליצור תג בשם "שלב" ולהקצות לו את הערך "פיתוח". כדי לעשות זאת, אני יכול ליצור אובייקט TagSpecification, להקצות אובייקט או יותר למאפיין התגים ולהגדיר את סוג המשאב שבו התג יתקשר.
פעם שיצרתי את אובייקט TagSpecification, אני יכול להעביר אותו ל- New-EC2Snapshot
.
יצירת AMI חדש מצילומי מסך
תכונה נוספת מדהימה של צילומי מסך היא שניתן ליצור תמונה (AMI) חדשה מצילום מסך. אם יש לך צילום מסך של כורך השורש של מופע EC2 של Linux, תוכל בקלות ליצור AMI חדשה מצילום זה. נניח שאני רוצה ליצור תמונה חדשה מהצילום שיצרתי. אני יכול לעשות זאת באמצעות הפקודה New-EC2Image
.
I’ll first need to capture the snapshot ID.
לאחר מכן, אני יכול להעביר את המזהה הזה כפרמטר hashtable לפרמטר BlockDeviceMapping
ב- New-EC2Image
.
מחיקת צילומי מסך של AWS EC2
אם כבר סיימנו עם הצילום, ניתן להסיר אותם כעת. פעולה זו פשוטה. פשוט חבר את המופע שחזר עליו Get-EC2Snapshot
ל- Remove-EC2Snapshot
. אך ייתכן שתתקל בשגיאה זו אם AMI בשימוש.
במקרה זה, ה- AMI מורשם ועליך תחילה לבטל אותו באמצעות הפקודה Unregister-EC2Image
.
סיכום
PowerShell מאפשר לך לנהל כל נגישות של תמונות EBS. אם התרחשויות שכיסינו כאן לא מתאימות למה שאתה צריך לעשות, אני ממליץ לך לבדוק את כל פקודות צילומי ה-EC2 הזמינות על ידי הרצת Get-Command -Noun *ec2snapshot* -Module AWSPowerShell
. זה יעניק לך רעיון טוב על מה אפשרי עם PowerShell וצילומי EC2 (EBS).