Skip to main content

AWS למתחילים (1)


AWS הוא מוצר של אמאזון. הוא בעצם "הענן" של אמאזון. מוצר מצויין אבל שמנסים להבין אותו, אז הוא מאוד מבלבל בהתחלה. הרבה ראשי תיבות והרבה מנגנונים שלא ברור מה טיבם.

בהסבר כאן אתאר בקצרה מה קורה בענן של אמאזון.

דטה-סנטר של העולם "הישן"

בעולם ללא עננים, חברה שרוצה לספק שירות ממוחשב, צריכה לקנות מחשבים בעצמה. להתקין עליהם את התכנה ועוד. לפני שנתחיל להבין את הענן, נכנס קצת לפרטים של התקנת תכנה לא בענן. מה שנקרא בלועזית - on premise installation.

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

ללקוח לא מעניין שיש שני מחשבים (או יותר) שמספקים את השירות. הוא לא רוצה לדעת מה הכתובת של כל אחד מהם. הוא רוצה לקבל כתובת URL אחת של השירות ולעבוד איתה. לא מעניין אותו שאולי מחשב אחד נפל ומחשב אחר נותן שירות במקומו.

כדי לדאוג שהלקוח לא יידע את כל הפרטים האלה, שמים מחשב נוסף שנקרא בדר"כ load balancer. את הכתובת שלו נותנים ללקוח. הלקוח תמיד פונה בכתובת ה URL למחשב הזה. המחשב הנ"ל לא מריץ את התכנה אלא רק מעביר את הבקשות של הלקוח למחשב הראשון או השני שמריצים את התכנה.

אם מחשב אחד של התכנה נופל, אז ה load balancer יעביר את כל הבקשות למחשב שעדיין עובד והלקוח לא יידע זאת.

הסיכוי שמחשב ה load balancer יפסיק לתפקד הרבה יותר נמוך כי הוא לא מריץ את את התכנה עצמה ולכן הוא עובד הרבה פחות. הוא רק מנתב את התעבורה.

כמובן שבמציאות תיתכן התקנה הרבה יותר מורכבת. אבל נתחיל בצורת התקנה כזו.

הענן ייתן תחליף להתקנה כזו ואפילו ייתן דברים שקשה יותר לעשות בהתקנה on premise.

מחשבים בענן - EC2

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

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

מקור השם EC2 הוא Elastic Compute Cloud - משאב מחשוב בענן. אמאזון משתמשים הרבה במילה Elastic כדי להדגיש שהכל גמיש בהגדרות בענן. היום אתה רוצה 2 מחשבים, מחר אתה רוצה 5 מחשבים והכל תקבל בשינוי הגדרות (ותשלום).

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

אפשר לגשת אליו דרך כתובת ה IP שלו ולעבוד איתו כמו כל מחשב. מדהים!

Availability Zone

המחשב הוירטואלי שמוקצה לנו רץ על חומרה אמיתית. לאמאזון יש מספר חוות שרתים בעולם שעליהם רץ הענן. כל חוות שרתים כזו היא עצמאית לחלוטין מחוות אחרות היא נקראית Availability Zone = AZ.

ה Availability Zones השונים מקובצים ל regions. כל ה AZ שנמצאים באותו אזור מחוברים ביניהם בתקשורת מהירה כדי להעביר ביניהם מהר מידע.

דוגמא ל region - אירופה-מערבית. באזור זה יש מספר AZ -  אירלנד, לונדון ופריז.

קישור להסבר באתר אמאזון

regions

Availability Zones & Regions


cluster בענן

כאשר מריצים תכנה אמיתית בענן שאמורה לשרת לקוחות אז בדר"כ רוצים שלפחות שני מחשבים יריצו אותה (שני שרתים). כך אם מחשב אחד נופל, אז המחשב השני ימשיך לשרת את הלקוחות. במקרה כזה, יש צורך במחשב נוסף שישמש כשער הגישה לתכנה עבור הלקוחות. כלומר, הלקוחות יפנו למחשב הזה והוא יעביר את הבקשות לשרת הראשון או לשרת השני. מחשב כזה נקרא load balancer (כי הוא מחלק את העומס בין השרתים השונים).

הסיכוי שמחשב כזה יפול יותר נמוך כי הוא מריץ תכנה הרבה יותר פשוטה ממה שהשרתים מריצים.

אז איך עושים זאת בענן? אפשר לבקש מהענן מחשב נוסף ולהתקין בעצמנו עליו תכנה של load balancer או שאפשר לבקש מ AWS שרות של load balancing. האפשרות השנייה היא היותר פשוטה והיותר זולה.

באופן כללי, הענן של אמאזון נותן אוסף גדול של שירותים. אלה בעצם כל מיני תוכנות שכיחות שאמאזון נותנת. במקום שלקוח של AWS יבקש מחשב חדש, יתקין עליו תוכנה שכיחה, יקנפג אותה ויעקוב שהיא עובדת כמו שצריך, הוא יכול לקנות שרות שעושה זאת. לדוגמא: במקום להתקין load balancer על EC2 חדש, הלקוח יכול לקנות שרות של load balanacing. דבר דומה יש לגבי database, kubernetes ועוד ועוד.

AWS מציע שני סוגים של load balancer. השרות הבסיסי נקרא ELB = Elastic Load Balancer. השרות המתקדם נקרא ALB = Application Load Balancer.

ELB = Elastic Load Balancer

זה השרות הבסיסי שמספק load balancer. בגדול מגדירים עבורו את רשימת השרתים שהוא צריך להעביר אליהם את התעבורה וזהו. הוא מספק כתובת IP גלובלית שהלקוחות יכולים לפנות אליהם. ה ALB יעביר כל בקשה לאחד השרתים שהוגדרו.



כדי להגדיר את המחשבים (EC2) שאליהם ינתב ה load balancer את התעבורה צריך להגדיר ב AWS משהו שנקרא target group (סוף סוף משהו ב AWS שאין לו ראשי תיבות). זו בעצם ההגדרה של קבוצת מחשבים.

אפשר גם להגדיר שם איך אפשר לבדוק האם מחשב בקבוצה באמת עובד כמו שצריך או לא. לדוגמא: כתובת URL שאמורה לתפקד במחשב שאמור לעבוד כמו שצריך. כך AWS יכול לדעת אם מחשב מפסיק לעבוד (יותר מדויק - האם התוכנה על המחשב עובדת) ולהפסיק לשלוח תעבורה אליו.

target group

health check

אז כך אפשר בצורה להרים cluster בענן של אמאזון. יחסית פשוט.

אבל כאן זה לא נגמר - אמאזון מאפשרת יכולות יותר מתקדמות בענן. ועל כך בהמשך.

Comments

Popular posts from this blog

Best freeware - XML editor

As a software developer, I open XML files all the time. I a heavy commercial XML editor. But nothing can compare to a small, thin and free XML editor like 'foxe'. A great feature is has is the alignment of long XML strings to readable XML format (Shift-F8). It help lot of times when the XML file was generated by some tool and was not readable. Homepage: http://www.firstobject.com/dn_editor.htm

SSL in pictures

Here is my summary on SSL (or as I like to call it 'SSL for dummies')

Jenkins error: groovy.lang.MissingPropertyException

I tried to run groovy build step and got below error. This post will describe how I solved the problem. Caught: groovy.lang.MissingPropertyException: No such property: hudson for class: script