עומס עבודה משתנה וקופצני של מסד נתונים — צרכי הקיבולת משתנים פי 10 תוך דקות.
→Aurora Serverless v2. הגדר ACU מינימלי/מקסימלי; Aurora מתרחב תוך שניות ללא הפסקות חיבור.
למה: v2 מתרחב על ידי הוספת קיבולת למופע הקיים — ללא מעבר כשלים. Aurora מסופק אינו יכול להתרחב במהירות זו; Serverless v1 מתרחב לאט יותר ומשהה חיבורים.
מקור↗
אפליקציה גלובלית עם RPO <1s ו-RTO <1min עבור מעבר כשלים של DB בין אזורים.
→Aurora Global Database. שכפול מבוסס אחסון, השהיית שכפול טיפוסית <1s. קידום משני תוך שניות.
למה: Global DB שולח דפים, לא טרנזקציות — תת-שנייה בין אזורים. עותקים לקריאה בין אזורים באמצעות שכפול לוגי אינם יכולים להשתוות לכך.
מקור↗
שכפול מסד נתונים סביבת ייצור לבדיקה ללא תשלום עבור עותק מלא.
→שיבוט Aurora. Copy-on-write — שיבוט ראשוני בחינם; רק דפים ששונו מחויבים.
למה: שיבוטים הם נקודתיים, מיידיים, מבודדים. Snapshot+restore לוקח שעות ומחייב אחסון מלא באופן מיידי.
מקור↗
שחזור משגיאה לוגית (DROP TABLE בייצור) תוך דקות, לא שעות.
→Aurora MySQL Backtrack. מריץ אחורה את האשכול במקום לנקודת זמן קודמת ללא שחזור מגיבוי.
למה: Backtrack הוא במקום ומהיר. שחזורי PITR יוצרים אשכול חדש — איטי יותר ודורשים העברת אפליקציה.
מקור↗
ניתוב שאילתות דיווח למופעי קריאה ספציפיים עם זיכרון גדול יותר.
→Aurora custom endpoints. הגדר נקודת קצה המצביעה על תת-קבוצה של קוראים (הגדולים יותר).
למה: נקודת קצה ברירת המחדל של הקוראים מפזרת באופן שווה בין כל הקוראים. נקודות קצה מותאמות אישית מחלקות את האשכול לפי סוג עומס העבודה.
מקור↗
טבלת DynamoDB חווה שיאי partition חמים המגבילים חלק מהקריאות/כתיבות.
→מסופק עם auto-scaling + adaptive capacity (אוטומטי). עצב מחדש מפתח מחיצה אם מפתח יחיד הוא נקודת ההתחממות.
למה: Adaptive capacity מקצה מחדש תפוקה בין מחיצות ללא פעולה. אך אם מפתח אחד חם, רק עיצוב סכימה מחדש (מפתח מורכב, write sharding) יעזור.
מקור↗
תופעת לוואי בכל כתיבה ל-DynamoDB — דחיפה ל-OpenSearch לצורך אינדוקס חיפוש.
→DynamoDB Streams + Lambda trigger. Lambda מבצע אצווה (batches) של רשומות stream וכותב ל-OpenSearch.
למה: Streams לוכדים שינויים ברמת הפריט למשך 24 שעות. מודל טריגר מקורי — Kinesis Data Streams adapter קיים לשמירה/אנליטיקה ארוכה יותר.
מקור↗
כתיבה דו-פאזית על פני מספר פריטי DynamoDB חייבת להיות אטומית.
→TransactWriteItems / TransactGetItems. סמנטיקת ACID על פני עד 100 פריטים.
למה: טרנזקציות מקוריות מונעות את מורכבות ה-saga המבוזר. העלות היא פי 2 מהקיבולת הרגילה לכל פריט — השתמש רק כאשר נדרשת אטומיות.
מקור↗
העברת אשכול MongoDB באירוח עצמי לשירות מנוהל תוך שמירה על ה-API.
→Amazon DocumentDB. API תואם MongoDB. השתמש ב-mongodump/mongorestore או DMS להעברה.
למה: DocumentDB תואם API ל-MongoDB 4.0/5.0 (רוב האופרטורים, לא כולם). ודא תאימות דרייבר/תכונות לפני התחייבות.
מקור↗
מנוע המלצות צריך לנווט בגרף חברתי של 100 מיליון צמתים.
→Amazon Neptune. גרף תכונות (Gremlin) או RDF (SPARQL).
למה: מסד נתונים גרפי ייעודי. מודל יחסים ב-DynamoDB או RDS אפשרי אך ביצועי השאילתות יורדים עם עומק הקפיצה.
מקור↗
צי IoT פולט 10 מיליון נקודות נתונים של סדרות עיתיות לשנייה עם שמירה בתדירות מעורבת.
→Amazon Timestream. אחסון בזיכרון (recent), אחסון מגנטי (historical) — טיפול שכבות אוטומטי.
למה: סדרות עיתיות ייעודיות — עלות הרחבה של DynamoDB/RDS גבוהה מדי בקצב זה. טיפול שכבות שמירה מובנה מפחית עלויות אחסון.
מקור↗
ספר חשבונות בנקאי זקוק לאימות קריפטוגרפי של כל שינוי רשומה.
→Amazon QLDB. יומן (journal) בלתי ניתן לשינוי, ניתן לאימות קריפטוגרפי. השתמש בייצוא SHA-256 digest עבור הוכחות.
למה: QLDB הוא ספר חשבונות ייעודי. DynamoDB Streams נותנים היסטוריית שינויים אך ללא שרשור קריפטוגרפי מובנה.
עומס עבודה של ניתוח יומנים עם שיאים בלתי צפויים ותפעול ללא מגע יד אדם.
→Amazon OpenSearch Serverless. הפרדת מחשוב/אחסון; מתרחב אוטומטית ל-OCUs.
למה: ללא קביעת גודל אשכול או ניהול shard. עבור עומסי עבודה צפויים ומתמשכים, דומיינים מסופקים זולים יותר.
מקור↗
אנליטיקה בקנה מידה של פטא-בייט עם מחשוב אלסטי ושיתוף נתונים בין צוותים.
→צמתי Redshift RA3 עם אחסון מנוהל. שיתוף נתונים בין אשכולות (ללא העתקה).
למה: RA3 מפריד בין מחשוב לאחסון — הגדל כל אחד באופן עצמאי. שיתוף נתונים מבטל ETL בין אשכולות של צוותים.
מקור↗
אשכול Redshift קיים + S3 data lake — האם לבצע שאילתות S3 מ-Redshift, או להשתמש ב-Athena?
→Redshift Spectrum כאשר נדרשות הצלבות (joins) בין טבלאות אשכול ונתוני S3. Athena כאשר יש צורך ב-ad-hoc serverless על S3 בלבד.
למה: Spectrum מריץ שאילתות S3 דרך מחשוב Redshift. Athena משלם לפי TB שנסרק. בחר לפי המקום בו נמצאים הנתונים הדומיננטיים.
מקור↗
צוותים שונים זקוקים לנראות שונה של שורות/עמודות בטבלאות Glue Catalog זהות.
→AWS Lake Formation עם פילטרים ברמת שורה + ברמת עמודה + ברמת תא. הענק באמצעות תגי LF.
למה: מדיניות IAM/S3 אינה יכולה לבצע ברמת שורה. Lake Formation אוכף גישה עדינה באמצעות מטא-נתונים של Glue Catalog + צרכני Athena/Redshift Spectrum/EMR.
מקור↗
עבודת Glue יומית מעבדת נתונים מצטברים; אסור לעבד מחדש קבצים של אתמול.
→Glue job bookmarks. עקוב אחר מפתחות S3 / שורות DB שעובדו; המשך מנקודת הבדיקה האחרונה המוצלחת.
למה: Bookmarks מונעים עיבוד כפול ללא מעקב מצב ידני. השבת עבור ריצות עיבוד מחדש מלאות.
מקור↗
בחירת Kafka מנוהל מול Kinesis Data Streams עבור הזרמת אירועים.
→MSK כאשר קיימים לקוחות/אקוסיסטם של Kafka. Kinesis לאינטגרציה הדוקה עם AWS (טריגרים של Lambda, Firehose, KCL) ואפשרות serverless.
למה: שניהם מזרמים באופן עמיד עם יכולת הפעלה חוזרת. MSK שומר על API ואקוסיסטם של Kafka; Kinesis עולה פחות עבור זרמים קטנים ומשתלב באופן מקורי.
מקור↗
תפוקת Kafka משתנה; רצון לניהול אשכול ללא מגע יד אדם.
→MSK Serverless. מתרחב אוטומטית למחיצות ותפוקה; תשלום לפי מחיצה + נתונים.
למה: ללא קביעת גודל ברוקר. עבור תפוקה גבוהה מתמשכת, MSK מסופק זול יותר.
מקור↗
חיבור SQS → פילטר → Step Functions ללא כתיבת Lambda מתווכת.
→EventBridge Pipes. מקור ← פילטר אופציונלי ← העשרה אופציונלית ← יעד.
למה: מחליף Lambda טיפוסית כ"דבק". מפחית קוד, עלות ושטח תפעולי.
מקור↗
הפעלה חוזרת של אירועי השבוע שעבר דרך צרכן חדש ללא פליטה מחדש מהמקור.
→ארכיון + הפעלה חוזרת של EventBridge. ארכיון לוכד אירועים תואמים; הפעל אותם מחדש ליעד מאוחר יותר.
למה: הפעלה חוזרת מובנית מונעת צורך במאגר אירועים נפרד. שימושי לשחזור תקלות וקליטת צרכנים חדשים.
מקור↗
מאות מפיקים פולטים אירועים; צרכנים זקוקים ל-bindings מטיפוסים.
→EventBridge Schema Registry עם גילוי אוטומטי. יצירת bindings קוד מטיפוסים חזקים (Java, Python, TypeScript).
למה: גילוי לומד סכימות מאירועים נצפים. Bindings נותנים בטיחות בזמן קומפילציה.
מקור↗
אורקסטרציה קצרת זרימות עבודה בנפח גבוה (>100k/sec) המחויבת בתת-שנייה.
→Step Functions Express workflows. חיוב לפי מילי-שנייה לביצוע; מקסימום 5 דקות.
למה: זרימות עבודה סטנדרטיות עמידות + היסטוריה מתועדת, מחויבות לכל מעבר מצב. Express מחליף נתיב ביקורת בעלות נמוכה יותר עבור זרימות קצרות.
מקור↗
עיבוד 10 מיליון אובייקטי S3 במקביל באמצעות Step Function.
→מצב Distributed Map. ביצועי ילד מקבילים עד 10,000 במקביל; קורא מקור מ-S3 ישירות.
למה: Inline Map מוגבל ל-40 מקבילות. Distributed Map מתרחב למשימות בגודל S3 bucket מבלי להגיע למכסות שירות.
מקור↗
תור FIFO דורש >300 הודעות/שנייה.
→SQS FIFO עם מצב תפוקה גבוה מופעל. עד 70k הודעות/שנייה לכל API לכל אזור; חלוקה לפי `MessageGroupId`.
למה: FIFO סטנדרטי מוגבל ל-300 הודעות/שנייה ללא אצווה. מצב תפוקה גבוה מחלק סדר לפי מזהה קבוצה.
מקור↗
מספר צרכנים, כל אחד זקוק לתפוקת קריאה מלאה באותו Kinesis stream.
→Enhanced Fan-Out (EFO). כל צרכן מקבל צינור ייעודי של 2 MB/s/shard באמצעות HTTP/2 push.
למה: ברירת המחדל של סקר (polling) חולקת את מגבלת 2 MB/s/shard בין צרכנים. EFO מבטל את התחרות בעלות גבוהה יותר.
מקור↗
Firehose ל-S3; שאילתות data lake סורקות יותר מדי כי החלוקה היא לפי זמן קליטה, לא זמן אירוע.
→חלוקה דינמית של Firehose. חלץ זמן אירוע / מזהה דייר מ-JSON; כתוב לקידומת S3 `year=YYYY/month=MM/tenant=X/`.
למה: גיזום מחיצות (partition pruning) של Athena/Spectrum על זמן אירוע מקצץ באופן דרמטי עלויות וזמני סריקה.
מקור↗
לקוח מובייל/ווב זקוק לעדכונים בזמן אמת ושליפת שדות סלקטיבית.
→AWS AppSync (GraphQL) עם מנויים. מבוסס WebSocket.
למה: לקוחות GraphQL שולפים רק שדות מבוקשים ונרשמים לדלתאות. REST/HTTP API Gateway כופה over-fetch ו-polling.
מקור↗
API פנימי אסור שיהיה נגיש מהאינטרנט הציבורי.
→נקודת קצה פרטית של API Gateway באמצעות interface VPC endpoint. מדיניות משאבים מגבילה ל-VPCs ספציפיים.
למה: APIs פרטיים נגישים רק מ-VPC + רשתות מחוברות. APIs ציבוריים דורשים WAF + אימות כדי להיות בטוחים.
מקור↗
נעילת מקור S3 כך שרק CloudFront יוכל לקרוא ממנו.
→Origin Access Control (OAC). מחליף OAI מורש; תומך ב-SSE-KMS ובכל תכונות S3.
למה: OAI אינו תומך באובייקטי SSE-KMS. AWS ממליץ על OAC לכל הפצות חדשות.
מקור↗
הגבלת זמן גישה לסרטונים בתשלום ספציפיים ב-S3.
→CloudFront signed URLs (לכל URL) או signed cookies (מספר URLs). קבוצת מפתחות מהימנה חותמת על בקשות.
למה: URLs S3 חתומים מראש עוקפים את שמירת המטמון של CloudFront. CloudFront signed URLs שומרים במטמון בקצה וגם מגבילים גישה.
מקור↗
טרנספורמציה קלה לבקשות צופים: שכתוב כותרת, הפניה מחדש, ניתוב A/B.
→CloudFront Functions. JS, תת-מילי-שנייה, כל ה-POPs בקצה.
למה: Lambda@Edge הוא Node/Python מלא בקצה האזורי — כבד ויקר יותר. Functions זולים פי 10 למניפולציה פשוטה.
מקור↗
הפעלת עומסי עבודה מרובי דיירים שאינם מהימנים ב-EKS עם בידוד חזק.
→בידוד לכל pod של EKS Fargate. כל pod רץ ב-micro-VM ייעודי.
למה: Managed node groups חולקים קרנל — הסלמת הרשאות עוברת בין דיירים. בידוד קרנל של Fargate הוא החזק ביותר ב-EKS.
מקור↗
השהיית auto-scaling של אשכול EKS איטית מדי; התפשטות סוגי מופעים של קבוצות צמתים.
→Karpenter. Provisioner בוחר סוגי מופעים בזמן אמת על בסיס דרישות ה-pod הממתינות.
למה: Cluster Autoscaler מרחיב ASGs שהוגדרו מראש, איטי ומוגבל. Karpenter מרחיב EC2 שרירותיים תוך שניות עם גיוון.
מקור↗
pod של EKS זקוק ל-IAM עם הרשאות מינימליות (הימנע משיתוף תפקיד מופע צומת).
→IAM Roles for Service Accounts (IRSA) באמצעות ספק OIDC. הוסף הערה ל-ServiceAccount עם ARN התפקיד.
למה: EKS Pod Identity הוא החלופה החדשה יותר — מודל אמון פשוט יותר. IRSA בוגר ועובד בין אזורים.
מקור↗
התחלת משימות ECS-on-EC2 אורכת 5–7 דקות במהלך scale-out — צורך בפחות מ-60 שניות.
→ECS Capacity Provider עם יעד קנה מידה מנוהל ~80% ב-`CapacityProviderReservation`. שמור על חיץ סרק.
למה: חיץ שמור פירושו שמשימות חדשות נוחתות על קיבולת קיימת באופן מיידי בזמן ש-ASG משיק החלפות.
מקור↗
Lambda מופעל על ידי SQS אך רק 5% מההודעות תואמות — הפעלות מבוזבזות.
→מיפוי מקור אירוע עם קריטריוני סינון. Lambda מופעל רק עבור הודעות תואמות.
למה: פילטר לפני Lambda מונע עלות לכל הפעלה עבור הודעות לא רלוונטיות. סינון נתמך ב-SQS, Kinesis, DynamoDB, MQ, Kafka.
מקור↗
אפליקציית ייצור זקוקה לנקודת קצה של LLM עם תקורה תפעולית נמוכה.
→Amazon Bedrock עבור מודלי יסוד מנוהלים (Claude, Llama, Titan). SageMaker רק כאשר אתה צריך לארח מודלים מותאמים אישית או open-weights מכווננים היטב.
למה: Bedrock הוא API בלבד — ללא תשתית. SageMaker היא פלטפורמת ML מלאה — בחר כאשר אתה הבעלים של מחזור החיים של אימון/כוונון עדין.
מקור↗
בחירת AI מנוהל לראייה / NLP ללא אימון מודל.
→Rekognition (תוויות תמונה/וידאו, פנים, מיתון תוכן). Comprehend (סנטימנט, ישויות, שפות, זיהוי PII). Translate. Polly. Transcribe.
למה: שירותי AI של AWS שהוכשרו מראש מדלגים על כל מחזור חיי ה-ML עבור משימות נפוצות. השתמש ב-SageMaker רק כאשר מוצר מדף אינו מתאים.
מקור↗
יישום ווב תומך באימייל/סיסמה + Google + Apple + SAML SSO ארגוני.
→Cognito User Pool עם hosted UI. הגדר OIDC + SAML IdPs. האפליקציה מקבלת Cognito JWT.
למה: User Pool מאגד IdPs לאסימון אחד. Identity Pool רק מחליף אסימונים באישור AWS — לגישת AWS API, לא לאימות.
מקור↗
טבלאות גלובליות של DynamoDB עם כתיבות סימולטניות לאותו מפתח בשני אזורים.
→הכותב האחרון מנצח לפי חותמת זמן. האפליקציה מתכננת כתיבות אידמפוטנטיות או מחלקת כתיבות לפי אזור.
למה: שכפול GT הוא מרובה מאסטרים אסינכרוני. פתרון קונפליקטים מבוסס חותמת זמן — אפליקציות חייבות לסבול עקביות בסופו של דבר.
מקור↗