كيفية خفض التكاليف في AWS

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

في هذه الظروف ، من المهم للغاية ضمان موثوقية وقابلية تطوير البنية التحتية الخاصة بك. من ناحية أخرى ، لا تطير إلى الأنبوب عند شراء الخوادم والأقراص ودفع حركة المرور.

نحن في Bitrix24 نشيطون للغاية في استخدام Amazon Web Services ، وفي هذه المقالة سأتحدث عن العديد من ميزات AWS التي يمكن أن تساعدك في تقليل التكاليف.

Bitrix24 هي خدمة عالمية ، نحن نعمل للعملاء في جميع أنحاء العالم. منذ عام 2015 ، منذ دخول القانون 242-into حيال توطين البيانات الشخصية حيز التنفيذ ، يتم تخزين بيانات المستخدمين الروس على خوادم في روسيا. ولكن يتم نشر البنية التحتية الكاملة للخدمة التي تخدم العملاء المتبقين حول العالم في Amazon Web Services.

إن الأزمة الاقتصادية أمر واقع بالفعل. نما الدولار ومن غير المرجح أن يعود إلى وضعه السابق في المستقبل القريب ، لذا فإن الدفع مقابل الاستضافة بالعملة الأجنبية يصبح مرهقًا للغاية.

في هذه الظروف ، إذا واصلت وضع مواردك في AWS ، فمن المرجح أن تكون مهتمًا بالتقنيات التي ستساعدك على التوفير في استئجار البنية التحتية.

سأتحدث عن الرئيسية التي كنا أنفسنا نستخدمها لسنوات عديدة. إذا كان هناك أي طرق أخرى تستخدمها - يرجى مشاركتها في التعليقات.

إذن هيا بنا نذهب.

RI - المثيلات المحجوزة


الطريقة الأسهل والأكثر وضوحًا لتوفير المال في AWS هي استخدام مثيلات EC2 المحجوزة. إذا كنت تعلم أنك ستستخدم بالتأكيد حالات معينة لمدة عام على الأقل ، فيمكنك إجراء دفعة مقدمة لها والحصول على خصم من 30٪ إلى 75٪.

مثال لحسابات c5. تكبير الحالات:

صورة

جميع الأسعار والحسابات هنا .

في بعض الأحيان يبدو الأمر معقدًا ومربكًا ، ولكن بشكل عام ، المنطق هو:

  • كلما طالت فترة الحجز - 1 أو 3 سنوات - زاد الخصم.
  • كلما زاد الدفع المسبق على الفور - يمكنك القيام بذلك دون أي دفع مسبق على الإطلاق ، يمكنك استخدام جميع الدفع المسبق الكامل - كلما زاد الخصم.
  • إذا حجزنا نوعًا معينًا من المثيلات ، ولكننا لم نستخدم مثيلًا قابلاً للتحويل ، فسيكون هناك خصم أكبر.

لأنفسنا ، نقوم بالحجز لمدة عام واحد ، لأن التخطيط لمدة 3 سنوات أمر صعب للغاية. وهذا يسمح بتوفير جيد على EC2.

مثيلات بقعة


إن استخدام الحالات الفورية هو في الأساس نوع من تبادل الموارد. عندما يكون لدى Amazon الكثير من الموارد الخاملة ، يمكنك تعيين الحد الأقصى للسعر الذي ترغب في دفعه مقابل "حالات بقعة" خاصة.

إذا كان الطلب الحالي في منطقة معينة و AZ (منطقة التوفر) صغيرًا ، فسيتم توفير هذه الموارد لك. علاوة على ذلك ، بسعر أقل 3-8 مرات من سعر عند الطلب.

ما هو الصيد؟

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

بطبيعة الحال ، هذه الحالات ليست مناسبة ، على سبيل المثال ، لقاعدة بيانات في الإنتاج. ولكن بالنسبة لبعض المهام المرتبطة ، على سبيل المثال ، ببعض الحسابات ، فإن تقديم النماذج وحساب النماذج للاختبارات هي طريقة رائعة للحفظ.

دعونا نرى عمليا المبالغ التي نحارب من أجلها. وكم مرة يمكن أن "تختفي" البقع بسعر.

في ما يلي مثال لتاريخ أسعار Spot Instance مباشرةً من وحدة تحكم AWS لمنطقة eu-central-1 (فرانكفورت) لحالات تكبير c5.4x:

صورة

ماذا نرى؟

  • السعر أقل بحوالي 3 مرات من الطلب.
  • هناك أمثلة فورية متاحة في الألف إلى الياء الثلاثة في هذه المنطقة.
  • لمدة ثلاثة أشهر ، لم يرتفع السعر أبدًا. وهذا يعني أن بقعة تم إطلاقها قبل ثلاثة أشهر بحد أقصى للسعر ، على سبيل المثال ، 0.3 دولارًا ، ستستمر في العمل.

كيف نستخدم البقع في الممارسة:

صورة

- نستخدم البقع لخوادم التطبيق.

- بالنسبة لهم ، نستخدم بنشاط حزمة CloudWatch + Auto Scaling - للتوسع تلقائيًا على مدار اليوم: زيادة الحمل - يتم إطلاق حالات جديدة ، ينخفض ​​الحمل - يتم إخمادها.

- من أجل السلامة ، لدينا مجموعتان من مجموعات التحجيم التلقائي تعملان للموازنات - في حالة نفاد البقع. مجموعة AS واحدة - مع الحالات العادية (عند الطلب) ، والثانية - مع البقع. يحذر Amazon من خلال CloudWatch Events في دقيقتين من أن مثيل البقعة سيتم حذفه (إنهائه). نعالج هذه الأحداث ونستطيع توسيع المجموعة الرئيسية إلى العدد المطلوب من الحالات ، إذا حدث ذلك.

التفاصيل هنا - إشعارات الانقطاع الفوري .

- من أجل العمل بشكل أكثر كفاءة مع التحجيم التلقائي واستخدام الآلات في المجموعة مع البقع إلى أقصى حد ، نستخدم هذا النهج:

  1. تحتوي المجموعة الموضعية على سلة نفايات علوية أقل - نبدأ في زيادة "في وقت سابق".
  2. وأقل القمامة - نبدأ في التوسع لاحقًا "أسفل".
  3. بالنسبة للمجموعة العادية ، فإن العكس هو الصحيح.

متجر EC2 المثيل


يعرف كل من يعمل مع AWS أن محركات الأقراص الرئيسية المستخدمة لمثيلات EC2 هي EBS (مخزن الكتل المرنة). يمكن تحميلها على الحالات ، وتعطيلها ، وتركيبها على مثيلات أخرى ، لقطة منها.

يتم شحن جميع EBS حسب نوعها بطريقة أو بأخرى. وهم يكلفون أموالاً ملموسة.

في نفس الوقت ، بالنسبة للعديد من أنواع الحالات عند إنشائها ، يتوفر اتصال الأقراص المحلية - متجر مثيل EC2 .

السمة الرئيسية لهذه الأقراص هي أنه إذا قمت بإيقاف المثيل مع مثل هذا القرص ، فحينئذٍ تُفقد هذه البيانات بعد البدء.

ولكن في نفس الوقت تكون مجانية بشروط - هناك دفع فقط للمثيل نفسه.

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

ونتيجة لذلك: نربط أقل من أقراص EBS ، ندفع أقل.

S3 تحميلات متعددة الأجزاء غير مكتملة


كان النقاش أعلاه حول EC2 بشكل رئيسي. بعد ذلك ، نصف بعض الحيل التي ستوفر عند استخدام S3 (Simple Storage Service).

إذا كنت تعمل بنشاط مع S3 ، فمن المحتمل أنك تعرف أن كل من S3 ومعظم العملاء للعمل مع هذا التخزين يدعم التحميل المتعدد الأجزاء - يتم تحميل كائن كبير بـ "قطع" ، والتي يتم بعد ذلك "تجميعها" في كائن واحد.

هذا يعمل بشكل رائع ، ولكن هناك كمين واحد.

إذا لم يكتمل التنزيل لسبب ما (تم قطع الاتصال ، على سبيل المثال ، ولم يتم استئناف التنزيل) ، فلن يتم حذف الأجزاء التي تم تنزيلها من تلقاء نفسها. ومع ذلك ، فإنها تأخذ مساحة ، وتدفع ثمنها.

ومفاجأة غير سارة - هذه البيانات غير المكتملة ليست مرئية بأي شكل من الأشكال عند العمل باستخدام الأدوات القياسية لـ S3: لا من خلال "ls" في cli ، ولا في برامج العملاء. يمكنك العثور عليها ، على سبيل المثال ، في aws cli باستخدام الأمر list-multipart-uploads .

لكن العمل معهم متعب للغاية ...

سيكون من المنطقي للغاية أن نأخذ بعض الخيارات حول تخزين التحميلات غير المكتملة متعددة الأجزاء في إعدادات مجموعة معينة. ولكن لسبب ما ، لم يفعل أمازون ذلك.

ومع ذلك ، هناك طريقة لجعل حياتك أسهل وإزالة التحميلات غير المكتملة متعددة الأجزاء تلقائيًا. يوجد قسم دورة الحياة في إعدادات المجموعة في علامة التبويب الإدارة. هذه أداة ملائمة تسمح لك بتكوين قواعد تلقائية مختلفة للعمل مع الكائنات: نقلها إلى مستودعات أخرى ، وحذفها بعد مرور بعض الوقت (انتهاء الصلاحية) ، - بما في ذلك - التحكم في سلوك التحميلات غير الكاملة متعددة الأجزاء.

صورة

توجد مقالة مفصلة حول هذا في مدونة AWS - على الرغم من وجود أمثلة من الواجهة القديمة ، ولكن كل شيء واضح جدًا.

الشيء المهم هو أن دورة الحياة التي تم تكوينها لحذف البيانات غير المكتملة ستعمل ليس فقط للكائنات الجديدة ، ولكن أيضًا للكائنات الموجودة.

يمكن مراقبة المساحة الحقيقية المشغولة في S3 من خلال CloudWatch. عندما أنشأنا إزالة تحميلات غير مكتملة متعددة الأجزاء ، فوجئنا عندما اكتشفنا أننا حررنا أكثر من اثني عشر تيرابايت ...

S3 ذكي Tiering


يحتوي S3 على العديد من فئات التخزين المختلفة:

  1. اساسي.
  2. معيار IA (نادرًا ما يتم الوصول إليه) - للكائنات التي نادرًا ما يتم الوصول إليها.
  3. One Zone-IA - للبيانات غير الهامة نسبيًا. في هذه الفئة ، يتم نسخ الكائنات إلى نقاط أقل.
  4. يعد Glacier مساحة تخزين رخيصة جدًا ، ولكن لا يمكنك الحصول على شيء منه على الفور. تحتاج إلى تقديم طلب خاص والانتظار بعض الوقت.

كل منهم لديه شروط استخدام مختلفة وأسعار مختلفة. يمكن ويجب دمجها - اعتمادًا على مهامك المختلفة.

ولكن في الآونة الأخيرة نسبيًا ، ظهر نوع آخر من التخزين المثير للاهتمام - Smart Tiering.

جوهر عمله هو كما يلي: مقابل رسوم إضافية صغيرة ، يتم رصد وتحليل بياناتك في S3 ، ويتم رصد المكالمات إليها ، وإذا لم تكن هناك مكالمات لمدة 30 يومًا ، يتم نقل الكائن تلقائيًا إلى مخزن الوصول غير المتكرر ، والذي يكلف أقل بكثير من المعيار. إذا تم الوصول إلى الكائن مرة أخرى بعد مرور بعض الوقت - ولم يحدث أي فقدان للأداء في نفس الوقت - يتم نقله مرة أخرى إلى مستودع الوصول القياسي.

الراحة الأكثر أهمية: أنت لست بحاجة إلى القيام بأي شيء.

ستقوم أمازون بعمل كل شيء "بطريقة ذكية" نفسها - ستحدد الأشياء التي سيتم وضعها.

من خلال تمكين Smart Tiering ، وفرنا ما يصل إلى 10-15٪ على بعض المجموعات.

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

  • هناك رسوم إضافية لمنشآت المراقبة. في حالتنا ، يتم تغطيتها بالكامل من خلال المدخرات.
  • يمكنك استخدام Smart Tiering لأي كائنات. ومع ذلك ، لن يتم نقل الكائنات التي يقل حجمها عن 128 كيلوبايت إلى مستوى الوصول غير المتكرر وسيتم دفعها دائمًا بالسعر العادي.
  • غير مناسب للكائنات المخزنة في أقل من 30 يومًا. سيتم دفع هذه الأجور لمدة 30 يومًا على الأقل مقدمًا.

كيفية تمكين Tiering الذكي؟

يمكنك تحديد فئة التخزين INTELLIGENT_TIERING بشكل صريح في S3 API أو CLI.

ويمكنك تكوين قاعدة دورة الحياة ، وفقًا لذلك ، على سبيل المثال ، سيتم نقل جميع الكائنات بعد وقت تخزين معين تلقائيًا إلى نظام Tiering الذكي.

صورة

اقرأ المزيد على نفس مدونة AWS .

نهر جليدي


إذا كنا نتحدث عن فئات مختلفة من التخزين في S3، بعد ذلك، بالطبع، الجليدية الجدير بالذكر أيضا .

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

للعمل المريح مع Glacier ، يمكنك استخدام نفس قواعد دورة الحياة.

على سبيل المثال ، يمكنك تعيين قاعدة يتم من خلالها تخزين كائن في مخزن منتظم لبعض الوقت ، على سبيل المثال ، 30-60 يومًا (عادةً ما يلزم الوصول إلى أقرب السجلات أو النسخ الاحتياطية في الوقت المناسب ، إذا تحدثنا عن تخزينها) ، فسيتم نقله إلى نهر جليدي ، وبعد 1-2-3 ... سنة - تمت إزالته تمامًا.

سيكون أرخص بكثير من التخزين ببساطة في S3.

* * *

لقد تحدثت عن بعض الحيل التي نستخدمها نحن بنشاط. AWS هي منصة بنية تحتية ضخمة. بالتأكيد ، لم نتحدث عن أي خدمات تستخدمها. إذا كانت هناك أي طرق أخرى للحفظ في AWS مفيدة لك ، يرجى مشاركتها في التعليقات.

All Articles