Cloudflare R2 או Amazon S3: תעבורה החוצה הופכת את החשבון

|כותב: מערכת QUASA|6 דק׳ קריאה| 1
Cloudflare R2 או Amazon S3: תעבורה החוצה הופכת את החשבון

בהפצת קבצים לציבור עם נפח הורדות גדול, Cloudflare R2 עשוי להוזיל את החשבון: לפי תמחור R2 של Cloudflare, יציאה ישירה דרך Workers API, ממשק S3 או r2.dev אינה מחויבת בדמי תעבורה, אך אחסון ופעולות עדיין מחויבים. בשכבת Standard התעריף הוא 0.015 דולר ל־GB לחודש, 4.50 דולר למיליון פעולות Class A ו־0.36 דולר למיליון פעולות Class B; ב־Infrequent Access מתווסף חיוב על אחזור נתונים. לכן מספר הקריאות, ולא רק נפח ההורדות, יכול לצמצם את היתרון.

Amazon S3 יכול להיות הבחירה המשתלמת יותר כשמנוע העיבוד כבר פועל ב־AWS, כשהנתונים נשמרים בשכבת ארכיון מתאימה או כשיישום תלוי ביכולות S3 מסוימות. תמחור S3 של AWS מפריד בין אחסון, בקשות, אחזור והעברה; העברה מ־S3 לשירות AWS באותו אזור או ל־CloudFront פטורה מדמי יציאה מ־S3, בעוד שלהפצה ולשירות המקבל עשוי להיות מחיר משלהם. התשובה תלויה במסלול שהקובץ עובר, בשכבת האחסון ובאזור, ולכן אין מחיר אחד שמכריע את ההשוואה.

מחשבון עלות: ארבע שורות לפני סכום סופי

מתחילים מתקופת חיוב חודשית ומאותן יחידות לשני השירותים. שורת האחסון היא נפח ממוצע ב־GB לחודש כפול תעריף השכבה. שורת הפעולות היא מספר פעולות הכתיבה, הרישום והקריאה כפול התעריף לכל סוג בקשה. שורת האחזור נדרשת כשהשכבה מחייבת על שליפת נתונים, ושורת התעבורה סופרת את הבתים שעוברים במסלול המחויב בפועל. ב־R2 חשוב להבחין בין פעולות Class A, כגון העלאה ורישום אובייקטים, לבין Class B, כגון קריאה ובדיקת אובייקט; ב־S3 יש להפריד בין PUT, LIST ו־GET לפי תעריף השכבה והאזור.

ארבע השורות אינן כל החשבון: CDN, עיבוד ב־Workers או במחשוב AWS, שכפול בין אזורים, ניטור והעברת נתונים בין ספקים עשויים להוסיף עלות. משווים שני מסלולים שנותנים את אותה תוצאה למשתמש, כגון הורדה ישירה מן האחסון מול הורדה דרך CDN, ולא רק שני תעריפי אחסון. גם יחידות החיוב משנות: שכבה זולה לאובייקטים גדולים ונדירים עשויה להתייקר כשיש מיליוני אובייקטים זעירים, בקשות רבות או תקופת שמירה מינימלית.

גיבוי: לשלם על השמירה ולתמחר שחזור

בגיבוי, נפח העותקים המצטבר הוא בדרך כלל נקודת הפתיחה, אך החשבון צריך להכיל גם יום שחזור. בתרחיש מותנה, צוות שומר 1,000 GB בחודש, מעלה 100,000 אובייקטים וקורא אותם רק בבדיקת שחזור. בשגרת העבודה מכניסים לארבע השורות 1,000 GB אחסון, 100,000 כתיבות, כמעט אפס אחזור ונפח יציאה קטן. בתרחיש תקלה משאירים את אותו נפח אחסון ומוסיפים את מספר בקשות הקריאה, נפח הנתונים שנשלף ואת יעד העותקים המשוחזרים. כך מחיר חודשי נמוך אינו מסתיר עלות שחזור חד־פעמית.

R2 Infrequent Access גובה תשלום על אחזור ועל פעולות בתעריף גבוה מזה של Standard, ומחייב אחסון למשך מינימלי של 30 יום גם אם אובייקט נמחק קודם. ב־S3 Standard-IA קיימים חיובי אחזור, גודל חיוב מינימלי לאובייקט ותקופת שמירה מינימלית; בשכבות Glacier משך השמירה והליך השליפה שונים. צוות שמחזיק גיבויים רבים בקבצים קטנים צריך לכן לחשב את מספר האובייקטים ולא להסתפק בסכום הבתים. אם השחזור מיועד למחשוב באזור AWS של ה־bucket, מסלול ההעברה שלו שונה משחזור למרכז נתונים חיצוני.

קבצים ציבוריים: נפח היציאה משנה את היחס

באתר שמפיץ תמונות או קובצי הורדה, האחסון עשוי להיות קטן ביחס לכמות הבתים שנמסרים. דוגמה מותנית למחשבון: 100 GB מאוחסנים, 20 מיליון קריאות ו־5 TB של הורדות בחודש. ב־R2 Standard שורת היציאה הישירה היא אפס, אבל שורת הקריאות אינה אפס. לאחר המכסה החודשית החינמית של R2, ובהנחה שכל הקריאות מגיעות לאחסון, 10 מיליון קריאות מחויבות כפול 0.36 דולר למיליון הן 3.60 דולר; שורת האחסון מחושבת בנפרד. ההמחשה אינה מחיר כולל: היא מניחה שכבת Standard ומסלול ישיר, ואינה כוללת שירותי הפצה או עיבוד נוספים.

מטמון משנה את מספר הבקשות שמגיעות לאחסון המקורי. אם רוב ההורדות נענות מן המטמון, חלק מקריאות GET לא יופיעו כשורת בקשות אחסון; לעומת זאת, שירות ה־CDN שמגיש את הקבצים עשוי לחייב על בקשות או העברה לפי מחירונו. במסלול S3 דרך CloudFront אין חיוב יציאה מ־S3 אל CloudFront, אך הפצת CloudFront לצופים היא רכיב נפרד. לכן מחשבון לקבצים ציבוריים צריך שתי גרסאות: הורדה ישירה והפצה דרך מטמון, עם שיעור פגיעה במטמון ומספר בקשות המקור בכל אחת.

נתונים לניתוח: הקריאות קרובות יותר למחיר האחסון

מאגר לניתוח מתנהג אחרת מספריית קבצים ציבורית. בדוגמה מותנית, 2 TB נשמרים במשך חודש, משימת ניתוח סורקת חלק מהם מדי יום ומושכת 500 GB אל מנוע חישוב. שורת האחסון כמעט קבועה, אבל מספר GET, נפח האחזור משכבה קרה והעברת הנתונים תלויים בכמות הריצות ובמיקום המנוע. כאשר המחשוב נמצא באותו אזור AWS כמו ה־bucket, העברת הנתונים אליו פטורה מדמי יציאה מ־S3; מחשוב אצל ספק אחר מציב מסלול אחר. ב־R2 אין דמי יציאה ישירה, אך הקריאות ושירות המחשוב ממשיכים להיכלל בחשבון.

מספר האובייקטים שנסרקים חשוב לא פחות מגודל מערך הנתונים. חלוקה לאלפי קבצים קטנים יכולה ליצור בקשות רבות גם אם סך הבתים שנקרא נשאר קבוע; קבצים גדולים יותר עשויים לצמצם את מספר הבקשות, אך לחייב קריאה של יותר נתונים בכל ריצה. בשכבה עם דמי אחזור, כל סריקה חוזרת של נתונים קרים יכולה להגדיל את שורת האחזור בלי להגדיל את האחסון. לכן מחשבון עומס ניתוח צריך לקלוט תדירות ריצות, אובייקטים לריצה ובתים שנשלפים, ולא להסתפק בנפח המאגר.

ביצועים ומיקום: תעריף נמוך אינו מדידת זמן תגובה

ב מדידת AIMultiple של חמישה ספקי אחסון מנקודת בדיקה באירופה מול נקודות קצה אירופיות, נמדדו בהעלאת קובץ של 1 GB מהירויות של 77.92 MB לשנייה ב־S3 ו־25.61 MB לשנייה ב־R2. בקובץ של 100 KB נמדדו 3 מול 0.49 MB לשנייה, בהתאמה. הפערים האלה שייכים לתצורת המדידה ולגדלי הקבצים שנבדקו. הם אינם מנבאים כשלעצמם מהירות של יישום בישראל, שבו אזור ה־bucket, המטמון, ספק הרשת, גודל האובייקט ומידת המקביליות עשויים להיות שונים.

מיקום הנתונים דורש הבחנה נפרדת בין קרבה לביצועים לבין התחייבות למקום אחסון. לפי תיעוד מיקום הנתונים של R2, הבחירה האוטומטית נגזרת ממיקום בקשת יצירת ה־bucket; רמז מיקום הוא מאמץ מיטבי בלבד, ואילו הגבלת תחום שיפוט נועדה להבטיח שהאובייקטים יישמרו בתחום מוגדר. ב־S3 בחירת אזור ה־bucket מפורשת ומשפיעה גם על מחירו. עבור צוות ישראלי, מיקום משתמשי הקצה, מיקום המחשוב ומדיניות שמירת הנתונים יכולים להצביע על מסלולים שונים גם כשהאחסון הנקוב דומה.

תאימות S3 והמחיר של שילוב במערכת קיימת

ממשק תואם S3 מקל על שימוש בכלים ובספריות קיימים, אך אינו מבטיח שכל התנהגות של Amazon S3 זמינה ב־R2. טבלת תאימות ה־API של Cloudflare מציגה פעולות ותכונות מיושמות לצד כאלה שטרם יושמו; למשל, כותרות ACL בבקשת CreateBucket אינן נתמכות. יישום שמשתמש רק בהעלאה, הורדה ורישום אובייקטים עשוי לדרוש שינוי קטן יותר מיישום שתלוי בתכונות bucket או בהרשאות ייחודיות. ההבדל הזה הוא עלות מעבר ותפעול, גם כאשר תעריף האחסון עצמו נראה עדיף.

פיצול עומסים בין R2 ל־S3 אפשרי, אך מחירו כולל העברה בין הסביבות, ניהול של שתי מערכות הרשאה ומדיניות שמירה נפרדת. כאשר קבצים ציבוריים עוברים ל־R2 וגיבוי או ניתוח נשארים ב־S3, גם העלויות האלה צריכות להיכנס לחשבון. אחרת החיסכון בהפצה עשוי להיראות גדול מכפי שהוא בפועל.

קראו גם:

שיתוף:

הירשמו לניוזלטר שלנו

קבלו את החדשות האחרונות על Web3, ‏AI וקריפטו ישירות לתיבת הדואר.

0