הרבה חברות בוחרות לעבור ל-AWS MSK כדי להימנע מהקשיים התפעוליים הקשורים לניהול אשכולות Apache Kafka.
במדריך זה נבחן את התכונות, היתרונות והפרקטיקות הטובות של AWS MSK. נבצע גם את השלבים הבסיסיים להתקנת AWS MSK ונראה כיצד הוא משויך לשירותים פופולריים אחרים כמו Kinesis ו-Confluent.
מה זה AWS MSK?
ראשית, נבין מהו Apache Kafka ולמה הוא כל כך שימושי לזרימת נתונים.
Apache Kafka הוא פלטפורמת זרימת נתונים מבוזרת בקוד פתוח שמטפלת בזרימות נתונים בזמן אמת ויכולה לבנות אפליקציות המופעלות על פי אירועים. היא יכולה לקלוט ולעבד נתונים בזמן אמת.
לפי אתר Kafka, מעל 80% מחברות Fortune 100 נותנות אמון ומשתמשות ב-Kafka.
הדבר החשוב ביותר הוא כי Kafka היא נמלטת ומהירה מאוד. זה אומר שהיא יכולה לעסוק בהרבה יותר נתונים מאשר מה שיכול להתאים רק על מחשב אחד ועם לטנציה נמוכה מאוד.
אם ברצונך ללמוד כיצד ליצור, לנהל ולטפל ב-Kafka לזרימת נתונים, שקול לקחת את הקורס Introduction to Kafka.
מתי הזמן הטוב ביותר להשתמש ב-Apache Kafka?
- כאשר נדרש לטפל בכמויות עצומות של נתונים בזמן אמת, כמו לטפל בזרמי נתונים של מכשירי IoT.
- כאשר נדרשת עיבוד נתונים וניתוח מיידי, כגון מעקב אחר פעילות משתמשים חיה או מערכות איתור הונאה.
- בתרחישי event-sourcing בהם נדרשים מסלולי ניפוי עם דרישות תאימות ותקנות.
עם זאת, ניהול המופעים של Kafka עשוי להוביל לאי נוחות רבה. זהו המקום שבו מגיע AWS MSK.
תמונה מאת המחבר
AWS MSK (Managed Streaming for Kafka) הוא שירות ניהול מלא שמטפל בהקצאת משאבים, הגדרה, התרחבות ותחזוקת אשכולות Kafka. ניתן להשתמש בו כדי לבנות אפליקציות שמגיבות לזרמי נתונים באופן מיידי.
Kafka משמשת לעתים תקשורת כחלק מהגדרת עיבוד נתונים גדולה יותר, ו-AWS MSK מקל עוד יותר על יצירת צינורות נתונים בזמן אמת שמעבים נתונים בין מערכות שונות.
כיצד Amazon MSK פועל. מקור התמונה: AWS
אם אתה חדש ב- AWS, שקול לקחת את קורס מבוא ל-AWS כדי להכיר את היסודות. כאשר אתה מוכן, תוכל להמשיך לקורס שלנו טכנולוגיה ושירותי ענן של AWS כדי לחקור את אוסף השירותים המלא שעליהם עסקים סומכים.
תכונות של AWS MSK
אמצעי השירות המנוהל באופן מלא של AWS MSK עומד בפני תחרות מכיוון שאין צורך לדאוג להגדרת שרתים או להתמודד עם עדכונים.
אך יש יתרון נוסף. חמישה תכונות מרכזיות של AWS MSK הופכות אותו להשקעה שווה:
- MSK זמין באופן גבוה, ו-AWS מבטיחה כי תוכניות השירות המוגבלות נעות. הוא מחליף באופן אוטומטי רכיבים שנכשלו ללא הפסקת שירות עבור האפליקציות שלך.
- MSK כולל אפשרות להתרחבות אוטומטית של אחסון, כך שהוא גדל עם הצרכים שלך באופן אוטומטי. תוכל גם לשפר את האחסון שלך בקלות או להפחית אותו, או להוסיף עוד סוכנים כפי שנדרש.
- מבחינת אבטחה, MSK היא פתרון בטיחותי המספק הצפנה לנתונים במנוחה ובתנועה. כמו כן, היא משתלבת עם AWS IAM לשליטה בגישה.
- אם כבר משתמש ב-Kafka, תוכל להעביר את הפעילות שלך ל-MSK מבלי לשנות את הקוד שלך מאחר ש-MSK תומך בכל ה- APIs והכלים הרגילים של Kafka.
- MSK היא אפשרות כלכלית המצריכה פחות השקעה בהשכלת צוות ההנדסה לצופה ולניהול אשכולות. AWS גם נובעת כי היא עשויה להיות עד 40% זולה יותר מ-Kafka שניהלת באופן עצמאי.
יתרונות בשימוש ב-AWS MSK
כפי שראינו כבר, AWS MSK מספק ערך מיידי עקב זמינותו, קידמה, אבטחה וקלות השילוב שלו. היתרונות הללו הם מה שהפכו אותו לבחירה המועדפת עבור חברות שמפעילות עומסי עבודה של Kafka בענן.
AWS MSK פותר ארבע אתגרים עיקריים שכל פרויקט זרימת נתונים עומס נתקל בהם:
- MSK הוא שירות מנוהל לחלוטין, שמאפשר לך להתמקד בבניית אפליקציות במקום בניה וניהול שקיפות.
- MSK זמין ואמין למדי, מה שהופך אותו לקריטי ביותר בימינו, כאשר המשתמשים מצפים לגישה 24/7 לשירותים ואפליקציות.
- MSK מציע יכולות אבטחה רבות ומקיפות.
- MSK משלב אינטגרציה טבעית עם AWS, מה שהופך את בניית פתרונות נתונים זורמים מלאים בתוך אקוסיסטמת AWS להרבה יותר קלה.
התקנת AWS MSK
כדי להתחיל עם AWS MSK, תחילה, עליך ליצור חשבון שלך ב-AWS. אם זה הפעם הראשונה שלך בשימוש ב-AWS, למד כיצד להגדיר ולהגדיר את חשבון ה-AWS שלך עם המדריך המקיף שלנו.
התחבר לממשק ניהול ה-AWS ופתח את תפריט ה-MSK. לחץ על "צור אשכול" כדי להתחיל בתהליך ההתקנה.
התחלה עם AWS MSK. תמונה מקורית: AWS
בחר "יצירה מהירה" עבור הגדרות ברירת מחדל, ולאחר מכן הזן שם אשכול מתאר.
משם, יש לך אפשרויות נוספות רבות לבחירה, שתלויות בדרישותיך האישיות לקבוצת ה-Cluster שלך. הנה סקירה מהירה של האפשרויות:
- סוג קבוצה: "ניתן לספק" או "לא-שרתי"
- גרסת Apache Kafka
- סוג Broker: "רגיל" או "Express"
- גודל Broker
- נפח אחסון EBS
אפשרויות הגדרת AWS MSK
האשף נוצר תמיד בתוך Amazon VPC. ניתן לבחור להשתמש ב-VPC הברירת מחדל או להגדיר ולציין VPC מותאם אישית.
עכשיו, אתה צריך רק לחכות שהאשף יתקבל, תהליך שעשוי לקחת 15 עד 30 דקות. ניתן לצפות במעמד האשף מעמוד סיכום האשף, שם תראה את שינוי המצב מ"יוצר" ל"פעיל".
הזנת ועיבוד נתונים עם AWS MSK
כאשר האשף שלך של MSK מוכן, תצטרך ליצור מכונת לקוח כדי לייצר ולצרוך נתונים באחת או יותר נושאים. מאחר ש-Apache Kafka משולב כהיטב עם הרבה יצרני נתונים (כגון אתרי אינטרנט, מכשירי IoT, מקרני Amazon EC2, וכו'), MSK גם משתף את היתרון הזה.
אפאצ'י קאפקה מארגן נתונים במבנים הנקראים נושאים. כל נושא מורכב מפרט אחד או יותר. פרטים הם מידת הפרלמיזם באפאצ'י קאפקה. הנתונים מתפצלים בין סוכנים באמצעות פיצול נתונים.
מונחים מרכזיים להבנת אשף קאפקה:
- נושאים הם הדרך היסודית לארגון נתונים בקאפקה.
- מפיקים הם יישומים שמפרסמים נתונים לנושאים—הם יוצרים וכותבים נתונים לקאפקה. הם כותבים נתונים על נושאים ופרטים מסוימים.
- צרכנים הם יישומים שקוראים ועובדים עם נתונים מנושאים. הם מושכים נתונים מנושאים שהם רשומים אליהם.
כאשר מבנים ארכיטקטורה שמבוססת על אירועים עם AWS MSK, עליך להגדיר מספר שכבות, שבהן MSK היא הרכיב העיקרי לקליטת הנתונים. הנה סקירה של השכבות שעשויות להיות נדרשות:
- הגדרת קליטת נתונים
- שכבת עיבוד
- שכבת אחסון
- שכבת ניתוחים
דוגמה לארכיטקטורת אירועים עם Amazon MSK ו-Amazon EventBridge.מקור התמונה: AWS
אם אתה מעוניין למקם את Python בצינור הנתונים שלך , בדוק את הקורס שלנו מבוא ל- AWS Boto ב-Python .
המלצות מובילות לשימוש ב-AWS MSK
AWS MSK ניתן להגדרה יחסית פשוטה ולהתחיל להשתמש בו מייד. עם זאת, כמה מתוך המומלצים החיוניים ישפרו את ביצועי האשכולות שלך ויחסוך לך זמן מאוחר יותר.
התאם את גודל האשכול שלך
תצטרך לבחור את מספר המחלקים הנכון לכל מארכז ואת מספר המארכזים לכל אשכול.
מספר גורמים עשויים להשפיע על ההחלטות שלך כאן; עם זאת, AWS סיפקה מספר המלצות ומשאבים שימושיים כדי להדריך אותך בתהליך זה.
בנוסף, AWS מספקת גיליון עבודה לגודל ולמחיר כדי לעזור לך להעריך את הגודל הנכון של האשכול שלך ואת עלויות השימוש הקשורות בשימוש ב- AWS MSK לעומת אשכול Kafka שניהל באופן עצמאי דומה.
בניה של אשכולות בעלי זמינות גבוהה
AWS ממליצה עליך להגדיר את האשכולות שלך כדי שיהיו בעלי זמינות גבוהה. זה חשוב במיוחד בעת ביצוע עדכון (כגון עדכון של גרסת Apache Kafka) או כאשר AWS מחליפה ברוקר.
כדי להבטיח כי האשכולות שלך יהיו בעלי זמינות גבוהה, יש שלוש דברים שעליך לעשות:
- הגדירו את האשכולות שלכם בשלושת אזורי זמינות (נקרא גם אשכולון שלושת האזורים).
- קבעו את גורם השכפול ל-3 או יותר.
- קבעו את מספר הרפליקות המינימליות באשכול ל-RF-1.
הדבר הנהדר ב-AWS הוא שהם מחייבים ל-SLAs קפדניים עבור פריסות במרכזי זמינות רבים; אחרת, אתם מקבלים את הזיכויים שלכם חזרה.
ניטור שימוש בדיסק ובמעבד
שני מדדי מפתח לניטור דרך AWS CloudWatch הם שימוש בדיסק ובמעבד. לעשות זאת לא רק יבטיח שהמערכת שלכם פועלת בצורה חלקה אלא יסייע גם בהפחתת הוצאות.
הדרך הטובה ביותר לנהל את השימוש בדיסק ועלויות האחסון הנלוות היא להקים אזעקת CloudWatch שמתריעה כאשר השימוש בדיסק חורג מערך מסוים, כמו 85%, ולשנות את מדיניות השימור שלך. קביעת זמן שימור להודעות ביומן שלך יכולה לעזור מאוד בשחרור מקום בדיסק באופן אוטומטי.
בנוסף, כדי לשמור על ביצועי הקלאסטר שלך ולמנוע צווארי בקבוק, AWS ממליצה לשמור על סך השימוש במעבד עבור הברוקרים שלך מתחת ל-60%. אתה יכול לעקוב אחרי זה באמצעות AWS CloudWatch ולאחר מכן לנקוט בפעולה מתקנת על ידי עדכון גודל הברוקר שלך, לדוגמה.
הגן על הנתונים שלך באמצעות הצפנה במהלך ההעברה
ברירת המחדל, AWS מצפינה נתונים במהלך ההעברה בין הברוקרים בקלאסטר MSK שלך. אתה יכול לבטל זאת אם המערכת שלך חווה שימוש גבוה במעבד או השהיה. עם זאת, מומלץ מאוד לשמור על הצפנה במהלך ההעברה פעילה בכל עת ולמצוא דרכים אחרות לשפר את הביצועים אם זה מהווה בעיה עבורך.
בדוק את הקורס שלנו ניהול אבטחת AWS ועלויות כדי ללמוד עוד על כיצד לאבטח ולבצע אופטימיזציה של סביבת הענן שלך ב-AWS ולנהל עלויות ומשאבים ב-AWS.
השוואת AWS MSK לכלים אחרים להזרים
כאשר אנו מחליטים איזה כלי הוא הכי טוב עבור פרוייקט, לעיתים קרובות נצטרך להעריך מספר אפשרויות. הנה האלטרנטיבות הנפוצות ביותר ל-AWS MSK ואיך הן נשוות.
AWS MSK נגד Apache Kafka על EC2
המחילה העיקרית בין MSK ואפשרות בעלות הון עצמית באמצעות EC2 היא בין נוחות ובין שליטה: MSK נותן לך פחות לנהל אך גמישות פחות, בעוד EC2 מעניק לך שליטה מוחלטת אך דורש יותר עבודה.
AWS MSK טופל את כל המשימות האופרטיביות המורכבות, עם תצורה והפעלה אוטומטיות. היתרון בכך הוא כי אין עלויות תשתית מראש. יש גם שילוב חלק עם שירותים אחרים של AWS ותכונות אבטחה חזקות.
שימוש ב-Kafka על EC2, מצד שני, משלים הגדרה ידנית ותצורה ונדרשת גם טיפול בכל תחזוקה ועדכונים בעצמך. זה מציע גמישות רבה יותר אך עשוי להביא עמו יותר מורכבות ועלויות תפעול ועשוי לדרוש צוותות מיומנים יותר.
AWS MSK vs. Kinesis
השתמש ב-Kinesis לפשטות ושילוב עמוק של AWS וב-MSK עבור תאימות עם Kafka או על מנת לקבוע יותר בקרה על ההגדרת שלך לזרימת נתונים.
Kinesis היא ארכיטקטורה ללא שרתים שמשתמשת בחתיכות לזרימת נתונים. AWS נוהלת הכל עבורך. עם זאת, חשוב להיות מודע למגבלות שמירת הנתונים. Kinesis היא פתרון נהדר לדרישות פשוטות לזרימת נתונים.
AWS MSK תלוי בדגמי נושא ומחיצה של Kafka, עם שמירת נתונים כמעט בלתי מוגבלת, בהתאם לאחסון שלך. זהו פתרון גמיש וניתן להתאמה אישית יותר שבו אתה יכול להעביר אם נדרש מ-AWS.
אם אינך מוכר ב-Kinesis, יש לנו קורס שמדגים כיצד לעבוד עם נתונים זורמים באמצעות AWS Kinesis ו-Lambda.
AWS MSK נגד Confluent
בחרו ב-Confluent אם נדרשות לכם תכונות רחבות ותמיכה מקיפה, ובחרו ב-MSK אם יש לכם השקעה רבה ב-AWS וידע ב-Kafka בחבילה.
Confluent מציע קובץ תכונות עשיר עם מספר מחברים מובנים. זהו אפשרות יותר יקרה בכלל, אך היא מציעה שכבת בחינם עם תכונות מוגבלות. Confluent עובדת טוב עבור עומסי עבודה פתאומיים ויש לה תהליך התקנה פשוט יותר.
בהשוואה, AWS עוברת על קו פשיט ומתמקדת בפונקציונליות בסיסית של Kafka. כדי לקבל גישה לקובץ תכונות מורחב, יש לאינטגרציה של AWS MSK עם שירותי AWS נוספים. ממש מזל שהאינטגרציה הזו היא חלקה. ל-AWS MSK עלות בסיסית נמוכה יותר ויכולה להיות אפשרות טובה עבור עומסי עבודה קבועים.
הטבלה הבאה מציעה השוואה בין AWS MSK ואלטרנטיבותיה:
תכונה |
AWS MSK |
Apache Kafka on EC2 |
Kinesis |
Confluent |
הפצה |
בניה מלאה |
בניה עצמית על EC2 |
בניה מלאה |
בניה מלאה או בניה עצמית |
נוחות בשימוש |
קל להתקין ולנהל |
דורש הגדרה ידנית והתזמון של התפוקה |
הקמה פשוטה; מותאם ל-AWS |
ממשק משתמש ידידותי וכלים מתקדמים |
קידמה |
התכנסות אוטומטית עם תיקונים ידניים |
התכנסות ידנית |
התכנסות שוטפת |
התכנסות אוטומטית עם גמישות |
צנזורה |
צנזורה נמוכה |
צנזורה נמוכה |
צנזורה נמוכה עבור חבילות קטנות |
דומה ל-MSK |
תמיכת פרוטוקול |
תואם פרוטוקול Kafka API |
תואם פרוטוקול Kafka API |
פרוטוקול Kinesis בבעלות פטנט |
פרוטוקול Kafka API ופרוטוקולים נוספים |
שמירת נתונים |
ניתן להגדרה (עד 7 ימים כברירת מחדל) |
ניתן להגדרה |
ניתן להגדרה (עד 365 ימים) |
ניתן להגדרה ברמה גבוהה |
ניטור ומדדים |
משולב עם CloudWatch |
דורש הגדרה מותאמת אישית |
משולב עם CloudWatch |
כלים מתקדמים לניטור |
עלות |
תשלום כפי שתצא |
מבוסס על מחירי מקרני EC2 |
תשלום כפי שתצא |
מבוסס תשלום |
אבטחה |
תכונות אבטחה מובנות ב-AWS |
יש להגדיר אבטחה באופן ידני |
משולב עם AWS IAM |
תכונות אבטחה רחבות |
מתאים למקרים שימוש |
מומלץ למשתמשי Kafka בסביבת AWS |
גמיש, אך דורש תחזוקה גבוהה |
מומלץ לאפליקציות נייטיביות של AWS |
מתאים למשתמשים מתקדמים של Kafka ועסקים |
Closing Thoughts
אפאצ'ה קאפקה הוא בחירה המועדפת עבור מצבים בהם נדרשת פתרון אמין בקנה מידה רחב, שאינו יכול לסבול אובדן נתונים ודורש חיבור של מקורות נתונים מרובים או בניית צינורות נתונים מורכבים. AWS MSK מונעת רבות מהקשיים שנתקלים בהתקנה והגדרת אשכולות Kafka, מאפשרת למפתחים להתמקד יותר בבניית ושיפור יישומים במקום בתשתית.
קבלת תעודת AWS היא דרך מצוינת להתחיל את קריירת הAWS שלך. תוכל לבנות את מיומנויות הAWS שלך על ידי בדיקה של קטלוג הקורסים שלנו וקבלת ניסיון ידיים דרך פרויקטים!