משימה 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
- ה‑cluster ו‑node group אחד: TODO: Terraform module או eksctl.
- ב‑ EKS Cluster Creation רואים מה כל צעד יוצר.
- ה‑role של ה‑pipeline מקבל access entry ל‑namespace אחד: Pipeline Identities, Part 5.
- ה‑cluster מושך את ה‑image הפרטי עם pull secret: Pipeline Identities, Part 6.
אפשרות 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.