تكاليف عرض النطاق الترددي لصور S3 أصبحت مزعجة

لاحظت أن تكاليف عرض النطاق الترددي (نقل البيانات) لخدمة صور S3 الخاصة بموقعنا في ازدياد مستمر. السعر هو 0.09 دولار/جيجابايت، مما قد يتراكم بسرعة كبيرة.. أفترض أنني لست الموقع الوحيد الذي يواجه هذه المشكلة؟ أدفع لشركة أمازون 70 دولارًا شهريًا مقابل النقل وحده، وهو أكثر من تكاليف خادم الآلة الافتراضية (VM) الخاص بي. تكاليف تخزين S3 تبلغ 5 دولارات شهريًا فقط، والمشكلة برمتها تكمن في رسوم النقل.

لا أملك أي شبكة توصيل محتوى (CDN) أو نظام تخزين مؤقت (Caching) مُعد، بل أستخدم نسخة عامة تمامًا من Discourse تعمل على خادم Linode الافتراضي مع استخدام دلاء صور S3. ماذا تفعل المواقع الأكبر حجمًا التي تحتوي على عدد كبير من الصور؟ شبكة توصيل محتوى (CDN) (أفترض أنها ستخفض التكاليف)؟ أم استخدام مساحات Digital Ocean أو Minio؟ هل هناك شيء آخر أغفلته؟

7 إعجابات

Using a CDN for S3 is the right approach. That will drive the transfer costs way down.

If you are in a tight budget, you may be able to use a cloudflare subdomain for that.

10 إعجابات

Hmm… looking at the bandwidth costs on Fastly and the Amazon CloudFront (and others) they are pretty much the same as the .09/GB I am paying now :frowning:

Cloudflare seems to not charge for bandwidth?? Maybe that is the thing to try then. Is there a post on how to hook up Cloudflare for S3 images CDN on Discourse? I see the s3_cdn_url but can’t find instructions on how to use it (other than I need to rebake once I set it up). Looking at Cloudflare it seems like you need to have your own domain since the DNS needs to be changed… so I would have to make a CNAME something like s3-cloudflare.mydomain.com which would point to my S3 bucket IP, and tell Cloudflare to do it’s thing on that URL, and also set s3_cdn_url to that, and then rebake?

Here is a support page I found at Cloudflare which seems to indicate this might work:

https://support.cloudflare.com/hc/en-us/articles/360013791312-Fetching-object-storage-assets-through-the-Cloudflare-CDN-using-a-Cloudflare-Worker

Anybody doing this?? I am a bit surprised there are not many sites with this issue as it is more than doubling the monthly cost for me at least.

5 إعجابات

I’m using Cloudflare on my Discourse site and it works fine. You basically route all your traffic through Cloudflare and tell it what to process or cache and that’s it. There are a few things to keep in mind though:

  1. Configure Cloudflare to NOT cache anything (set up exceptions using page rules, see below).
  2. Don’t let Cloudflare touch your Javascript - specifically, turn off Rocket Loader.
  3. I’m not sure about Brotli compression yet, I disabled it.
  4. Set up page rules to cache the avatar and upload directories as below (ignore rule #1, it’s site specific).

Cloudflare is currently caching a little over 3TB of data per month for me and it’s serving large graphics pretty fast.

If you’re more interested in a CDN I can also recommend https://www.belugacdn.com/ (I’m not affiliated with them). I use them on a large WordPress platform and performance is good, at a fraction of the cost of some other CDN platforms I looked at (those might be even more performant, but Beluga meets my needs).

18 إعجابًا

هل انتقلت في النهاية بعيدًا عن Amazon CloudFront يا @scottfsmith؟

أجد نفسي في موقف مشابه من حيث ارتفاع النفقات.

إن CloudFront جديد نسبيًا بالنسبة لي. لقد كنت أدير فقط سلة S3 خلال السنوات القليلة الماضية، ولكن بناءً على التوصيات هنا، قمت بإعداد CloudFront الشهر الماضي.

كل ما فعلته هو نقل التكلفة من نقل بيانات S3 إلى نقل بيانات CloudFront بدلاً من ذلك، ولا يزال الفاتورة الشهرية الإجمالية كما هي.

أجد نفسي أقارب فاتورة شهرية غير مستدامة لنقل البيانات.

إعجابَين (2)

أنا في نفس القارب. لقد انتقلت إلى CloudFront منذ فترة قصيرة أيضًا، وتبدو التكاليف مماثلة. كنت أعتقد أن هناك نوعًا من التوفير بسبب التخزين المؤقت المحلي، أي أن عرض النطاق الترددي سيكون أقل إذا تم تحميل نفس الصورة بشكل متكرر من نفس الموقع الجغرافي، لكن حتى الآن يبدو أن هذا ليس هو الحال.

يبدو أنه يجب أن يكون هناك CDN آخر يعمل بديلًا لـ CloudFront، حيث أن ما تفعله Discourse هو إعادة كتابة عناوين URLs للصور فقط، لذا فهي عامة جدًا (يبدو ذلك). ربما يمكن استخدام Cloudflare للصور فقط.

3 إعجابات

كان هذا بالضبط فهمي أنا أيضًا.

+98% من حركة المرور لدينا مستمدة من المملكة المتحدة، وطبيعي أن 98% من خروج بيانات S3 عبر CloudFront أيضًا إلى المملكة المتحدة.

أرى صفر فائدة لوجود CDN حتى الآن. إذا كانت حركة المرور لدينا عالمية، فربما كنت سألاحظ شيئًا مختلفًا.

سأقرأ المزيد عن Cloudflare (كيف تمكن هذان الاثنان من الهروب بأسماء متشابهة جدًا!) في الأيام القادمة وأرى ما إذا كان بإمكاني العثور على أي فائدة.

شكرًا :+1:t2:

4 إعجابات

يرجى المتابعة هنا إذا عثرت على أي شيء. لقد كنت أعتزم البحث في هذا بنفسي.

إعجابَين (2)

@Richie و @scottfsmith،

هناك بعض شبكات تسليم المحتوى (CDNs) ذات التكلفة الثابتة مثل https://www.stackpath.com/ بسعر 10 دولارات، وقد استخدمتها لإجراء جميع الاختبارات لـ استخدام التخزين الكائني لعمليات الرفع (S3 والنسخ المماثلة). قد تكون خيارًا أفضل لمجتمعكم.

6 إعجابات

خدمة Stackpath CDN تكلف 20 دولارًا شهريًا مع حد أقصى 1 تيرابايت، وفي كثير من الأشهر يتجاوز مستواي هذا الحد. ثم ترتفع التكلفة إلى 200 دولار شهريًا مع حد أقصى 20 تيرابايت، وهو ما يزيد عن حوالي 100 دولار شهريًا التي يدفعها Amazon لي.

ربما تكون هناك خدمة أخرى في القائمة أفضل، شكرًا لك على تذكيري بهذه القائمة.

إعجابَين (2)

imgur مجاني للجميع، لكن لا توجد إضافة لهذا

Tobey Maguire Reaction GIF

4 إعجابات

ما الذي سيفعله هذا الإضافة؟ هل ستمنع ببساطة تحميل إضافات IMGUR، أم ستعمل مثل النظام الحالي وترفع جميع الصور إلى IMGUR عبر واجهة برمجة تطبيقات (API) يفترض أنها موجودة؟

كم ستكون هذه الميزة ذات قيمة بالنسبة لك؟ أشك في أن يكون هذا الأمر متوافقًا مع نموذج عمل CDCK، حيث أن استضافتهم المدفوعة هي ما يجعل Discourse ممكنًا لنا جميعًا، واستضافتهم تعمل بشكل ممتاز دون الحاجة إلى إضافة IMGUR.

6 إعجابات

هل يمكن لأحد تأكيد ما إذا كان هذا الإعداد يعمل بشكل جيد في عام 2022 أم لا؟ :slight_smile:

إعجاب واحد (1)

ما زلنا نستخدم إعداد Cloudflare نعم.

إعجابَين (2)

شكرا للتأكيد.
الإعداد الذي تستخدمه ليس تخزينًا مؤقتًا للصفحة بالكامل، أليس كذلك؟
أم أن هناك أي فائدة خاصة لاستخدام Cloudflare CDN على غيرها؟

إعجاب واحد (1)

لا، نحن نقوم فقط بتخزين الملفات المؤقتة للمجلدات uploads و avatars؛ راجع قواعدنا أعلاه. إذا حاولت القيام بأي شيء آخر، فمن المحتمل أن تتعطل Discourse.

إنه مجاني :slight_smile:

4 إعجابات

ماذا عن الأصول الثابتة مثل JS و CSS؟

إذا استخدمنا شبكة توصيل محتوى (CDN) باستخدام هذا الدليل ، فستقوم بتوصيل الأصول الثابتة أيضًا مع التحميلات والصور الرمزية (إذا كنت أعرف بشكل صحيح).

إذًا، لماذا قد يتعطل Discourse إذا قمنا بتوصيل جميع الأصول الثابتة عبر Cloudflare؟

إعجاب واحد (1)

لا أتذكر، لقد مر بضع سنوات. لماذا لا تجربها وترفع تقريراً عن النتائج؟

إعجاب واحد (1)

بينما هذا الموضوع نشط مرة أخرى، يجب أن أتابع .. يبدو أن Amazon CloudFront خفض أسعاره بشكل كبير. ليس لدي أي فكرة عما فعلوه ولكن متوسط تكاليفي في AWS انتقل من حوالي 80 دولارًا شهريًا إلى 15 دولارًا شهريًا. هذا لكل من S3 و CloudFront للصور (فقط) على موقع به الكثير من الصور.

إعجابَين (2)

Cloudflare لا بأس به - فقط قم بتعطيل ميزة Rocket Loader الخاصة بهم.

بدون أي جهد في التكوين، فإنه يوفر نصف عرض النطاق الترددي مرة أخرى إلى الخادم الخاص بي.

قد يكون أن Cloudflare لم تعمل بشكل جيد مع Discourse منذ سنوات، ولكن هذا ليس صحيحًا اليوم. سيكون من الجيد لو لم نر الشكوك حولها باستمرار. إذا واجه أي شخص مشكلة معينة، فيجب عليه بدء موضوع دعم هنا يصف ما لا يعمل.

5 إعجابات