המדריך לשרותי הענן של אמזון – Storage

Image: David Castillo Dominici / FreeDigitalPhotos.net

בחלק השלישי של סדרת המדריכים לשרותי הענן של אמזון, נתמקד באפשרויות השונות לשמור מידע על AWS ולמה זה חשוב. מדריך זה הוא חלק בסדרה של מדריכים, שתקל עליכם להיכנס נכון לעולם המרתק של מחשוב ענן.
למי שלא מכיר את המושגים הבסיסיים של AWS, ממולץ לקרוא, לפני קריאת מדריך זה, את המילון השלם לשרותי הענן של אמזון ואת החלקים הקודמים בסדרת המדריכים.

לפני שנתחיל, חשוב לציין כי המדריך הזה (כמו כל המדריכים בסדרה) יתרכז בשימוש ב – AWS דרך ממשק ה – Web של אמזון. כמעט כל פעולה שמתוארת פה ניתנת לביצוע תוך שימוש ב – API המאד עשיר של AWS, אבל לעת עתה, לא ניכנס אליו במסגרת זו.

חשיבות ה – Storage

למה להקדיש פרק שלם במדריך של AWS לשאלת ה – Storage? הרי מדובר,בסך הכל בשרתים ומכיוון שלשרתים שכולנו מכירים יש דיסקים, הדבר לא יכול להיות שונה מהותית באמזון. אז עקרונית זה נכון, אבל לא מדויק.

כבר בשלב בחירת תצורת מכונת ה – EC2 שלכם נדרשתם לבחור בין שתי אפשרויות של Root Device, כאשר האפשרויות הן Instance Store או EBS. אם עקבתם אחרי החלק הראשון של המדריך, כבר שם כתבתי שיש חשיבות מאד גדולה לבחירה זו, בפרק זה נסביר למה.

בנוסף להשפעה על ה – Root Device, יש לסוג ה – Storage חשיבות רבה בכל מה שנוגע לביצועים, שרידות והתאוששות מנפילות של המכונה שלכם. חלק גדול מהשיקולים בארכיטקטורת המערכת שלכם, צריכים לקחת את האפשרויות השונות בחשבון ולשקול יתרונות מול חסרונות של כל שיטה ושיטה.

Instance Store

זאת המקבילה של אמזון לדיסק מקומי. הדיסק הזה קשור (אמנם וירטואלית) קשר ישיר למכונת ה – EC2 שיצרה אותו ולשמחתנו, אין לו כל עלות נוספת. גודל ה – Instance Store תלוי בסוג המכונה שבחרתם ובמקרים רבים מדובר על המון שטח דיסק זמין.

הבעיה המרכזית של Instance Store היא שכל המידע שיש עליו ימחק ברגע שתחליטו לכבות את המכונה. בניגוד למה שמקובל לחשוב, מכונות מבוססות Instance Store יכולות לעבור Reboot מבלי לאבד מידע, אבל כיבוי המכונה יעלים את המידע ללא כל יכולת שחזור. תכונה זו מונעת את האפשרות להשתמש במכונה לפי צורך ומיועד למכונות שאמרות לעבוד כל הזמן, או שאין כל חשיבות למידע השמור על המכונה.

EBS – Elastic Block Storage

היתרון הגדול של מכונות המבוססות על EBS בתור ה – Root Device הוא היכולת לכבות מכונה בכל רגע נתון ולהחזיר אותה בדיוק לאותו מצב, ללא איבוד מידע כלל (בניגוד ל – Instance Store שיכולה לשרוד Reboot  אבל לא כיבוי). אמזון מאפשרים ליצור התקני EBS החל מ – 1GB ועד 1TB, במחיר של 10 סנט לגיגה לחודש ולשמור Snapshots שלהם בכל רגע נתון.

מספר יתרונות נוספים של EBS הם:

  • ניתן לשנות את גודל ה – EBS בכל רגע נתון אפילו תוך כדי ריצה של המכונה.
  • EBS מאפשר ניתוק של הדיסק מהמכונה והעברתו למכונה אחרת במקרה ומתגלות בעיות חומרה.

חשוב לקחת בחשבון ש – EBS הנו התקן רשת וככזה הוא צורך חלק מרוחב הפס של המכונה שלכם. אם רוחב פס הוא מצרך חיוני למוצר שאתם מריצים על EC2, יש לקחת נתון זה בחשבון.

ואגב, הסברה שמכונות המבוססות על EBS לא יכולות להשתמש ב – Instance Store (שלהזכירכם הוא חינמי), לא ממש מדוייקת. נכון שברירת המחדל “מחביאה” את ה – Instance Store אבל אם בכל זאת תרצו להשתמש בו (ואני חושב שכדאי), יש הוראות (קצת מורכבות) של אמזון איך עושים זאת.

S3

לא בטוח שמקומו של S3 הוא בסקירה של אפשרויות ה – Storage למכונות EC2. השרות הוא אפילו לא חלק ממשפחת מוצרי EC2, אלא עומד בפני עצמו. ובכל זאת אי אפשר לדבר על אפשריות אחסון ב AWS, מבלי להזכיר לפחות את S3.

כברירת מחדל, הגישה ל – S3 מבוססת על ה – API של אמזון ולא ישירות דרך מערכת ההפעלה ולכן הוא לא חלק משרותי ה – EC2, המספקים תשתית מחשוב. למזלנו, קיימים כיום כלים המאפשרים לנו למפות S3 Buckets כדיסקים וירטואלים על מכונת ה – EC2 שלנו (ולא רק על EC2ֿ, בתאוריה ניתן להשתמש באותם כלים למפות S3 לשרתים שיושבים מחוץ לאמזון).

s3fs הוא אחד הכלים שמאפשר למפות כונן מבוסס S3 למערכת ההפעלה ופוסט המסביר איך עושים זאת, ניתן למצוא בבלוג של מפתחי AWS. מנסיון אישי קצר, הפתרון עובד אבל הביצועים רחוקים מלספק מערכת עם דרישות IO כלשהן, אפילו מינימליות ביותר.

ועדיין, מדובר במערכת קבצים שיכולה לזכות בתואר השורד האולטימטיבי. עם 99.999999999% (9 אחרי הנקודה) אחוזי שרידות ו – 99.99% זמינות (בשנה), מדובר בפתרון מאד אמין לשמירת כמויות גדולות של מידע. אם מוסיפים את פרמטר המחיר, שיורד ככל ששומרים יותר מידע, מבינים מדוע מערכות כגון Dropbox מבוססות על פתרון זו.

שימוש בתצורות RAID

אחת הבעיות מוכרות של מכונות EC2 היא ביצועי הדיסק (IO) של המערכת. בעיה זו משפיעה מאד על ישומים התלויים בביצועי IO וניתן לראות אותה בשיא חומרתה, כשאתם מנסים להריץ שרת בסיס נתונים על מכונת EC2. במקרים בהם מדובר על שרת בסיס נתונים עמוס, ההשפעה של IO נמוך על ביצועי המערכת יכולה להיות קריטית.

נכון להיום, אף אחת מתצורות ה – Storage של אמזון לא נותנת ביצועים טובים במצבה הרגיל ואחד הפתרונות שיצא לי להתקל בהם יותר ויותר לאחרונה, הוא שימוש בתצורת RAID שונות על מנת לקבל ביצועים משופרים. דוגמא לשיפור הביצועים ניתן לראות בפוסט זה, בו נעשה שימוש ב – 8 דיסקים ב  – RAID0 או RAID5 על מנת לקבל ביצועי IO טובים יותר. כבר יצא לי לשמוע על שימוש בעשרות EBS Volumes על מנת להגיע לביצועי IO מהירים מאד ואחד היתרונות של אמזון הוא שהמערכת מאפשרת לך לבנות כל Setup, גם אם מדובר על משהו מטורף.

אמזון ממשיכים לחדש

לאחרונה אמזון הוציאו שרות חדש בשם Storage Gateway (עדיין ב – Beta), המאפשר לחבר רשת ארגונית לשרותי האחסון של אמזון המבוססים על S3. אין הרבה חידוש טכנולוגי בשרות זה (ואף אפשר להשיג תוצאה דומה עם s3fs) אבל הוא עוד דרך של אמזון להכניס יותר ויותר משתמשים לשרותים שלהם.

יחד עם זאת ולמרות שאמזון היא אחת החברות היותר מדהימות בתחום, בכל מה שקשור להוצאת פיצ’רים חדשים, עדיין חסר להם כלי מאד חשוב, שאני בטוח שעוד יגיע יום אחד (ולא בעוד הרבה זמן). Storage מהיר בסגנון EBS, עם ביצועי IO המקובלים כיום בעולם ה – Storage הארגוני, יכול בהחלט להמיר עוד כמה עשרות אלפי לקוחות, שנמנעים עדיין מלעבור לענן בעיקר בגלל שהביצועים כיום לא תואמים את מה שהם רגילים אליו. Storage מהיר עולה כיום עשרות אלפי דולרים, רק תחשבו על הפוטנציאל של טכנולוגיות יקרות בסגנון Netapp או EMC, זמינות לכל תמורת כמה סנטים לחודש…

אודות הכותב

בועז זינימן
Principal Developer Advocate ב – AWS. לפי שהצטרף ל – AWS שימש כדירקטור בכיר לאסטרטגיית Cloud בחברת התוכנה Rogue Wave Software אשר רכשה את Zend Technologies ב – 2015. בעשור האחרון ניהל את הצוותים הטכנולוגיים ב – Zend, כולל תיכנון ופיתוח כל מערכות ה – Web, פתרונות Hosting, אסטרטגיית IT ותשתיות. לפני שהצטרף ל – Zend, במהלך 15 השנים האחרונות, ניהל צוותי פיתוח Web במספר חברות טכנולוגיה בישראל. מתמחה בעיקר במחשוב ענן ובמערכות LAMP - Linux Apache MySQL PHP ובעל הסמכת ZCE - Zend Certified Engineer משנת 2005.