HTTP API: זול יותר, מהיר יותר, אימות JWT מובנה, פשוט יותר. REST API: תכונות מלאות (mapping templates, request validators, WAF, private endpoints, X-Ray, API caching).
למה: ברירת המחדל היא HTTP API אלא אם אתה זקוק לתכונה ייחודית ל-REST. ממשקי WebSocket API הם מוצר נפרד עבור יישומים בזמן אמת עם מצב.
GSI: מפתח מחיצה ומיון חלופי, עקביות בסופו של דבר, קיבולת נפרדת, ניתן להוספה בכל עת. LSI: אותו מפתח מחיצה, מפתח מיון חלופי, אופציה לעקביות חזקה, חייב להיווצר ביצירת הטבלה.
Standard: ארוך טווח (≤שנה), בדיוק פעם אחת, $0.025/1k מעברים, היסטוריה מלאה. Express: ≤5 דקות, לפחות פעם אחת או לכל היותר פעם אחת, מחויב לפי בקשה + משך זמן; עבור ETL/streaming בנפח גבוה.
שלב זרימת עבודה נכשל; רוצה ניסיון חוזר עם backoff וניתוב למצב התאוששות.
מערך `Retry` (לכל מצב, עם `BackoffRate` + `MaxAttempts`) ו-`Catch` לניתוב כשל סופי. התאמה לפי `ErrorEquals` (לדוגמה, `States.TaskFailed`, שמות שגיאות מותאמים אישית).
לקוח SPA / מובייל לעומת שירות בצד השרת הקורא ל-Cognito.
לקוחות ציבוריים (SPA, מובייל) ← לקוח אפליקציה ללא סוד. לקוחות חסויים (שרת) ← לקוח אפליקציה עם סוד; הלקוח חייב לכלול `SECRET_HASH` (HMAC של שם משתמש + clientId).
Secrets Manager: סיבוב מובנה, אינטגרציה טבעית עם RDS/Redshift/DocumentDB, $0.40/secret/חודש. Parameter Store SecureString: שכבה חינמית (Standard), ללא סיבוב מובנה, נתיבים מרובדת `/app/env/key`.
Signed URLs (משאב יחיד) או signed cookies (מספר משאבים, SPAs/streaming). חתום באמצעות צמד מפתחות של CloudFront המאוחסן כמפתח ציבורי בקבוצת מפתחות של CloudFront.
SSE-S3 (מנוהל AES-256, ברירת מחדל), SSE-KMS (CMK, ביקורת דרך CloudTrail, מדיניות מפתח), SSE-C (מפתחות שסופקו על ידי לקוח, אתה מנהל), DSSE-KMS (שכבה כפולה לתאימות גבוהה).
CodeDeploy Compute Platform = ECS. יוצר קבוצת משימות ירוקה; ה-ALB מעביר את המאזין לקבוצת יעד ירוקה; אישור ידני אופציונלי לפני העברת התעבורה ולפני סיום הכחול.
CDK: שפות תכנות (TS/Python/Java/Go/.NET), מבני אפליקציה מלאים, תבניות מרובות משאבים. SAM: הרחבת YAML של CFN, מתמקד ב-serverless, פשוט יותר. שניהם מקומפלים ל-CloudFormation.
CloudFormation מבצע rollback אוטומטי אלא אם `DisableRollback` הוא true. נתקע ב-`UPDATE_ROLLBACK_FAILED`? השתמש ב-`ContinueUpdateRollback` עם `ResourcesToSkip`.
ערימות מקוננות (`AWS::CloudFormation::Stack` עם `TemplateURL`) לשימוש חוזר בבעלות הורה אחד. בין ערימות באמצעות Outputs + `Fn::ImportValue` לחיבור הדוק יותר בין ערימות נפרדות.
All-at-once (המהירה ביותר, זמן השבתה), Rolling (אין מופעים נוספים, קיבולת חלקית), Rolling with additional batch (אין אובדן קיבולת, עלות נוספת), Immutable (ASG חדש, הבטוחה ביותר), Blue/Green (סביבה נפרדת, החלף CNAMEs).
התאמה אישית של סביבת Elastic Beanstalk (חבילות, קבצים, פקודות קונטיינר).
`ebextensions/*.config.` YAML בחבילת המקור. פלטפורמות חדשות יותר: `platform/hooks/`. סקריפטים של shell עבור מחזור החיים של prebuild/predeploy/postdeploy.
`aws ecr get-login-password | docker login` → `docker tag` → `docker push`. תמונות קונטיינר של Lambda: תמונה נמשכת פעם אחת בפריסה; התמונה המתויגת חייבת להיות באותו אזור.
צרף נתונים הניתנים לחיפוש לעומת נתוני עזר לעקבת X-Ray.
Annotations: מאונדקסים, ניתנים לסינון בקונסולה (לדוגמה, `customerId`, `tier`). Metadata: לא מאונדקסים, צורה חופשית (גוף בקשה, גוף תגובה לצורך איתור באגים).
טעינה עצלה (cache miss ← DB ← מילוי מטמון): מטמון רק נתונים מבוקשים, אך נוטה להתיישנות. כתיבה דרך (כתיבה למטמון + DB בכל כתיבה): תמיד טרי, אך לכתיבות יש עלות נוספת. TTL מגביל התיישנות בכל מקרה.