יסודות AWS למפתחי בקאנד - מאיפה מתחילים בלי להיסחף¶
אם פתחתם פעם את קונסולת AWS בפעם הראשונה, אתם יודעים בדיוק על מה אני מדבר. מסך עם משהו כמו 200 שירותים שונים, שמות מוזרים כמו Lambda, ECS, VPC, CloudFormation, ואתם עומדים שם ולא מבינים איפה בכלל להתחיל. הרוב המוחלט של המפתחים לא צריכים להכיר את כל 200 השירותים. הם צריכים להכיר טוב בערך חמישה, ולדעת שהשאר קיימים בשביל מקרים ספציפיים.
בואו נבנה מסלול הגיוני.
קודם כל - למה בכלל cloud¶
לפני עידן הענן, אם רציתם להריץ אתר, הייתם צריכים לקנות שרת פיזי, לחבר אותו לאינטרנט, ולתחזק אותו בעצמכם. ענן כמו AWS פשוט נותן לכם לשכור את אותם משאבים - כוח מחשוב, אחסון, רשת - לפי דקה או שעה, בלי לגעת בברזל בעצמכם. אתם משלמים על מה שאתם משתמשים בו, ומגדילים או מקטינים לפי הצורך.
זה הרעיון כולו. כל שאר השירותים הם בעצם וריאציות על "כוח מחשוב, אחסון, ורשת" בצורות שונות למקרי שימוש שונים.
השירות הראשון שצריך להכיר - EC2¶
EC2 הוא בעצם שרת וירטואלי. אתם בוחרים כמה כוח עיבוד וזיכרון אתם רוצים, מתקינים עליו את מערכת ההפעלה שאתם רוצים, ומריצים עליו את האפליקציה שלכם, בדיוק כמו על מחשב רגיל. זו הדרך הכי "בסיסית" להריץ שרת בענן, וכל מפתח backend צריך להבין איך זה עובד לפני שהוא קופץ לדברים מתקדמים יותר.
השירות השני - S3¶
S3 הוא שירות אחסון קבצים. במקום לשמור תמונות, סרטונים או מסמכים על השרת שלכם עצמו (מה שיכול להפוך אותו לאיטי ומוגבל בנפח), אתם שומרים אותם ב-S3, שנבנה ספציפית בשביל זה - זול, אמין, וזמין מכל מקום. כמעט כל אפליקציה שמאפשרת למשתמשים להעלות קבצים משתמשת ב-S3 מאחורי הקלעים.
השירות השלישי - RDS¶
RDS הוא בעצם מסד נתונים מנוהל - PostgreSQL או MySQL, אבל AWS מטפל בשבילכם בגיבויים, עדכוני אבטחה, וההתאוששות ממקרה כשל. במקום להתקין ולתחזק מסד נתונים בעצמכם על שרת, אתם מקבלים אותו כשירות מוכן. לרוב הפרויקטים, זה בדיוק מה שרוצים - להתמקד בבניית האפליקציה, לא בתחזוקת תשתית.
השירות הרביעי - IAM¶
IAM הוא מנגנון ההרשאות של AWS - מי מותר לו לגשת למה. זה אולי נשמע פחות מרגש מהשירותים האחרים, אבל זה אחד הדברים הכי חשובים להבין נכון, כי טעות בהרשאות היא אחת הסיבות הכי נפוצות לפריצות אבטחה בענן. הכלל הבסיסי - כל שירות ומשתמש מקבלים רק את ההרשאות המינימליות שהם באמת צריכים, לא יותר.
השירות החמישי - Lambda¶
Lambda מאפשר להריץ קטע קוד בתגובה לאירוע, בלי שאתם צריכים בכלל לנהל שרת. זה נקרא serverless. לדוגמה, קובץ עולה ל-S3, וזה מפעיל אוטומטית פונקציית Lambda שמעבדת אותו. שימושי מאוד למשימות ממוקדות, אבל לא תחליף לשרת מלא שמריץ API שלם.
הטעות הכי נפוצה - לנסות ללמוד הכל בבת אחת¶
מתחילים רבים מנסים לצלול ישר ל-Kubernetes, Terraform, ואוטומציות מתקדמות, בלי להבין קודם את הבסיס. זו טעות. תלמדו קודם להעלות אפליקציה פשוטה על EC2, לחבר אותה למסד נתונים ב-RDS, ולשמור קבצים ב-S3. רק אחרי שהיסודות האלה ברורים, שווה לעבור לכלים מתקדמים יותר כמו ניהול תשתית כקוד (IaC).
וטיפ חשוב - AWS מציע free tier, אבל שימו לב לחיובים, כי קל מאוד לשכוח שירות פועל ולקבל חשבונית שלא ציפיתם לה.
איפה לומדים את זה בסדר הנכון¶
בקורס צד שרת שלנו, אחרי שמבינים איך בונים API ומתעסקים במסדי נתונים, אנחנו עוברים על יסודות DevOps ו-AWS בדיוק בסדר הזה - קודם להבין את הבסיס, ואז להתקדם ל-IaC ול-CI/CD. אפשר להתחיל כאן, בקורס המלא.
ואם אתם מתמודדים עם חשבונית AWS מפתיעה או תקועים בהגדרת הרשאות, יש בדיסקורד שלנו אנשים שכבר עברו את זה ויכולים לעזור מהר.
לסיכום¶
AWS נראה מפחיד כי יש בו יותר מדי אפשרויות, אבל בפועל כמפתח backend אתם צריכים להכיר טוב רק חמישה שירותים בסיסיים כדי להתחיל להיות עצמאיים - EC2, S3, RDS, IAM ו-Lambda. תשלטו בהם קודם, והשאר יבוא בזמנו כשתצטרכו אותו בפועל, לא לפני.