משימה 5: התשתית ב‑AWS

במשימה הזאת יוצרים את המקום שבו האפליקציה רצה, ומאפשרים ל‑pipeline להגיע אליו.

הכניסו את GitHub Actions ל‑AWS

  • ‏OIDC identity provider ו‑role שרק main של ה‑repository שלכם רשאי לקבל: הצעדים נמצאים ב‑ Pipeline Identities, Part 4 (באנגלית).
  • TODO: ‏Terraform, או ה‑console; ואיפה ה‑state שלו נשמר.

העריכו כמה ה‑EKS cluster עולה

משלמים על EKS cluster לפי שעה, מהרגע שהוא קיים, בין אם האפליקציה רצה ובין אם לא. לכן העלות תלויה בשעות שהוא קיים, ולא בשעות שאתם עובדים.

המחיר לשעה של מה שהפרויקט הזה יוצר, ב‑us-east-1:

חלקמחיר
ה‑control plane של EKS$0.100
שני worker nodes, ‏t3.medium$0.083
‏NAT gateway אחד$0.045
‏load balancer אחד$0.023
כתובות IPv4 ציבוריות: של ה‑NAT gateway ושל ה‑load balancer, בערך שלוש$0.015
הדיסקים של ה‑nodes, ‏2 × 20 GB$0.004
בסך הכולבערך $0.27 לשעה

התעבורה שסטודנט שולח עולה סנטים, ולא נכללה.

לסטודנט שעובד 20–30 שעות בחודש:

  • צרו את ה‑cluster בתחילת כל מפגש, ומחקו אותו בסופו.
    • היצירה לוקחת כ‑15 דקות והמחיקה כ‑10, כך שכל מפגש מוסיף כחצי שעה.
    • בכ‑8 מפגשים בחודש, אלה עוד 4 שעות: 24–34 שעות של cluster.
  • חודש: ‏24–34 שעות × $0.27 = בערך $6.50–$9.20.
  • ‏2–4 חודשים: בערך $13–$37 בסך הכול.
  • אם משאירים אותו רץ, אותו cluster עולה $0.27 × 730 שעות = בערך $200 בחודש, ו‑$6.50 על כל יום ששוכחים אותו.
    • ‏AWS budget עם התראה במייל, על $20 בחודש, תופס cluster שנשכח תוך ימים.

צרו את היעד

אפשרות 1: EKS cluster
אפשרות 2: קבוצת EC2 instances
  • TODO: ‏Auto Scaling group מאחורי load balancer, ו‑Docker על כל instance.
  • TODO: איך deploy מגיע אליהם: ‏SSM Run Command, או launch template חדש ו‑instance refresh.
  • ה‑role של ה‑pipeline מקבל הרשאה לפעולה האחת הזאת, על ה‑instances האלה בלבד.

בדקו את היעד ידנית

  • הריצו עליו פעם אחת, ידנית, את ה‑image ממשימה 4, וקראו ל‑/healthz.

Translations: