أهم مميزات خدمات أمازون - رأي خبير
يتحدث الخبير Daniel Vassallo إنني استخدم خدمات أمازون ويب AWS منذ ١١ عامًا (قبل أن يوجد وحدات تحكم) ، كما أنني قد عملت داخل شركة AWS لمدة ٨ سنوات (في الفترة بين نوڤمبر ٢٠١٠ وفبراير ٢٠١٩) ، لذا لدي خبرة في الويب سواء مواقع أو تطبيقات أو خدمات بدءًا من المشروعات الشخصية الصغيرة وصولًا للتطبيقات التجارية التي تعمل ب٨٠٠٠ خادم ، ومن خلال هذا المقال سيقدم خلاصة خبراته في كيفية الاستفادة من مميزات خدمات أمازون ويب دون الالتفات لكل الدعايات المشتتة .
نصائح في الاستفادة من مميزات خدمات أمازون ويب
هذه الخبرات والنصائح لن تكون مجدية للعاملين بالذكاء الاصطناعي أو التعلم الآلي أو الحوسبة أو الحوسبة عالية الأداء أو سلسلة الكتل blockchain أو أي شيء يختلف بشكل كبير عن تطبيقات الويب ، وهذه نصائحه بالتفصيل :
Lambda & API Gateway
لا تستخدم لامدا أو API Gateway وانسَ أيًا من تلك الأشياء : ميكروسيرڤيسز Microservices ، ولامدا Lambda ، وواجهة برمجة التطبيقات API Gataway ، وكونتينرز Containers ، كوبرنيتس Kubernetes ودوكر Docker ، فأي شيء تكمن قيمته المقترحة في "القدرة على التدرج" سوف يكون ذلك على حساب "القدرة على البقاء والسرعة" وهي ليست صفقة جيدة أبدًا.
ابدأ باستخدام نموذج t3.nano EC2 وأجرِ عليه كل اختباراتك حيث لا يكلفك إلا ٣.٨٠ دولار في الشهر ، ثم استخدم واحدًا أكبر قبل الانطلاق مثل m5.large ، ويبلغ سعره ٧٠ دولارًا في الشهر ويخدم بسهولة مليون مشاهدة في اليوم وهو عدد كبير؛ فعلى سبيل المثال دخول الصفحة الرئيسية في موقع News Ycombinators يساوي ١٥-٢٠ ألف مشاهدة أي ٢% فقط من سعة m5.large
على الرغم من أنه قد يكون استخدام لامدا أو API gateway مغريًا (حيث يوفر عليك ٧٠ دولارًا في الشهر) إلا أنك عندها سوف تضطر لكتابة برنامجك بنفسك والتعامل بشكل مقيد ومحدود .
الأشياء الأساسية مثل الذاكرة الوسيطة وتصحيح الأخطاء وتجميع البيانات التحليلية ستكون أصعب بكثير عندما لا يكون لديك صلاحية الدخول إلى الخادم ، إلا أن أكبر عيب في جعل رغبتك في تطوير تطبيقك أصعب بكثير وهو ما لا تود أن يحدث ، ويؤكد الخبير مرارًا وتكرارًا على أهمية أن يكون لدى المطور إمكانية الدخول إلى تطبيقه بأكمله بضغطة زر واحدة على حاسوبه المحمول ببساطة ، وهو ما لا تسمح به لامدا و API مما سيجعله يعاني باستمرار مع بيئته التطويرية.
CloudFormation
استخدم كلاود فورميشن مع الأخذ في الحسبان أن استخدامه أكثر من اللازم قد يسبب مشكلة ، فهناك بعض الأشياء التي يعجز كلاود فورميشن عن فعلها كما أن هناك أشياء أخرى يجب إبعادها عن متناول كلاود فورميشن لأن الضرر الذي قد يسببه أكثر من النفع.
ولتسهيل الأمر استخدم تلك القاعدة : إذا كان شيء ما ساكنًا فهو مرشح جيد لاستخدام كلاود فورميشن ، مثل : الخوادم الافتراضية الخاصة VPCs وتوزيع الأحمال Load Balancer و IAM roles وغيرهم ، أما إذا كان هذا الشيء من المحتمل أن يُعَدَّل بمرور الوقت مثل إعدادات القياس التلقائي فإن استخدام كلاود فورميشن سوف يسبب مشكلة.
ولإنشاء الأشياء التي لا يجب أن يعرف بها كلاود فورميشن استخدم برنامج سكربت شل منفصلًا ، أما الأشياء التي يصعب أو يستحيل كتابتها افعلها بطريقة يدوية مثل نطاقات Route 53
أجهزة توزيع الأحمال Load Balancers
يجب أن تستخدم واحدًا من أجهزة توزيع الأحمال مثل ALB أو NLB حتى إذا لم يكن لديك إلا نموذج واحد ، حيث يبلغ سعره ١٦ دولارًا في الشهر ولن يتطلب أي مجهود فقط قم بضبطه ثم انس أمره.
القياس الذاتي Autoscaling
لن تكون في حاجة إليه ، بل ستحتاج إلى مساحة Headroom ذات سعة وفيرة بدلًا منه.
إلا أن القياس الذاتي ما زال ذا نفع ، اعتبره أداة تساعدك على تدوير واستبدال النماذج وفقًا لقالب معين ، فإذا كان لديك مستضيفًا سيئًا يمكنك إنهاؤه ببساطة وسوف تقوم خدمات أمازون باستبداله بآخر مطابق في غضون دقائق.
الخوادم الافتراضية الشخصية VPCs والشبكات الفرعية ومجموعات الحماية
على الرغم من أنها قد تبدو مخيفة إلا أن استخدامها ليس صعبًا على الإطلاق ولا مفر من استخدامها لذا سوف تحتاج إلى أن تمضي بعض الوقت في تعلمها.
يمكنك تعلمها من خلال وحدة التحكم ولكن قم بضبطها في النهاية باستخدام كلاود فورميشن.
Route53
استخدمه حيث يندمج بشكل جيد مع موزع الأحمال وينفذ كل شيء قد تريده من خدمة نظام أسماء النطاقات DNS ، ويوضج الخبير أنه يقوم بإنشاء النطاقات المستضيفة يدويًا بينما يقوم بإعداد A Records بواسطة كلاود فورميشن.
CodeBuild/Deploy/Pipeline
تتضمن تلك الحزمة الكثير من الصعوبات وقد يكون إعدادها مرهقًا ، ولكن بمجرد انتهائك من إعدادها تكون النتيجة النهائية بسيطة ، ويفضل استخدام خدمة Github بدلًا من CodeCommit
خدمة تخزين S3
وهي خدمة التخزين المثالية بسعر ٢.٣ سنت لكل جيجا بايت في الشهر ، واستخدم فئة التخزين الافتراضية إلا إذا كنت خبيرًا بما تفعله.
قاعدة البيانات
في وقتنا الحالي أصبحت دينامو دي بي DynamoDB هي الخيار الأفضل فهي رخيصة الثمن وخالية من أية متاعب ، ولكن تذكر أن تقوم بتشغيل الدعم التوقيتي .
أما إذا كنت تفضل مرونة لغة برمجة SQL أنصحك باستخدام خدمة قاعدة البيانات العلائقية RDS ، أما أورورا فعلى الرغم من روعتها إلا أنها لم تجتَز اختبار الوقت بعد لذا سوف تواجه الكثير من المشاكل بالإضافة إلى قلة الدعم.
كلاود فرونت CloudFront
عادة مايتم البدء دون استخدام شبكة كلاود فرونت ، إلا أنها تستحق أن توضع في عين الاعتبار في نهاية المطاف حيث توفر حماية ضد هجمات الحرمان من الخدمات بالإضافة إلى أدائها.
خدمة الصف البسيطة SQS
على الأغلب لن تحتاج إليها ، ولكن إذا حدث واحتجت إلى واحد فإن SQS متين ومحل ثقة ومباشر في استخدامه.
https://twitter.com/dvassallo/status/1154516910265884672?s=20