أنشئ مجموعتين مع تمكين استضافة موقع الويب الثابت وتأكد من تمكين النسخ المتماثل عبر المناطق ونسخ الكائنات إلى المجموعة الوجهة.
قم بإنشاء توزيع CloudFront واستخدم مجموعة S3 الأساسية كأصل.
قم بإنشاء فحص صحة R53 جديد يستهدف توزيع CNAME لـ CF (يعمل d123456789.cloudfront.net أيضًا) بما في ذلك مسار كائن فحص الصحة (على سبيل المثال d123456789.cloudfront.net/healthcheck.txt)
قم بتوسيع التكوين المتقدم ضمن التحقق من الصحة وقم بتعيين الفاصل الزمني للطلب القياسي (30 ثانية) وعتبة الفشل على الأقل 3.
قم بإنشاء إنذار جديد وحدد موضوع SNS موجودًا أو جديدًا (يجب أن يكون في منطقة US-EAST-1)
أنشئ دالة Lambda جديدة في أي منطقة بخلاف شرق الولايات المتحدة-1 باستخدام s3_site_failover.py.
قم بإنشاء مشغل SNS جديد لوظيفة Lambda باستخدام أوامر CLI أدناه.
قم بإنشاء اشتراك SNS جديد لوظيفة Lambda:
aws sns subscribe --topic-arn "YourSNSTopicARN" --protocol lambda --notification-endpoint "YourLambdaARN" --region "us-east-1"
قم بإنشاء أذونات استدعاء Lambda لـ SNS لاستدعاء الوظيفة:
aws lambda add-permission --function-name "YourLambdaARN" --statement-id "HealthCheck_SNS_Lambda" --action "lambda:InvokeFunction" --principal "sns.amazonaws.com" --source-arn "YourSNSTopicARN"
تأكد من أن كلا سياسات الحاوية تسمح بالوصول العام للقراءة في المجموعة.
قم بتحميل صفحة error.html جديدة في مجموعة المصدر لتجنب رؤية استجابة 403 لاستعلامات URI للكائنات غير الموجودة.
S3 -> Bucket -> Properties -> Static website hosting -> Error document
قم بتحميل كائن فحص السلامة في حاوية S3 الأصلية مع تعيين رأس التحكم في ذاكرة التخزين المؤقت على عدم وجود ذاكرة تخزين مؤقت (سيساعد هذا في إلغاء النتائج الإيجابية الخاطئة باستخدام فحص صحة R53):
aws s3 cp "local/path/healthcheck.txt" "s3://bucketName/healthcheck.txt" --cache-control no-cache
قم بمحاكاة فشل الحاوية عن طريق تغيير الإذن أو حذف كائن التحقق من السلامة. سيؤدي هذا إلى فشل فحص صحة R53 وتشغيل SNS/Lambda لإجراء تجاوز الفشل.