สร้าง 2 บัคเก็ตโดยเปิดใช้งานการโฮสต์เว็บไซต์แบบคงที่ และตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการจำลองแบบข้ามภูมิภาคแล้ว และมีการจำลองออบเจ็กต์ไปยังบัคเก็ตปลายทาง
สร้าง CloudFront Distribution และใช้บัคเก็ต S3 หลักเป็นจุดเริ่มต้น
สร้างการตรวจสอบสภาพ R53 ใหม่โดยกำหนดเป้าหมาย CNAME ของการกระจาย CF (d123456789.cloudfront.net ก็ใช้งานได้เช่นกัน) รวมถึงเส้นทางของวัตถุตรวจสอบสภาพ (เช่น d123456789.cloudfront.net/healthcheck.txt)
ขยายการกำหนดค่าขั้นสูงภายใต้การตรวจสอบสภาพและตั้งค่าช่วงเวลาคำขอเป็นมาตรฐาน (30 วินาที) และเกณฑ์ความล้มเหลวอย่างน้อย 3
สร้างการเตือนใหม่และเลือกหัวข้อ SNS ที่มีอยู่หรือใหม่ (ต้องอยู่ในภูมิภาค US-EAST-1)
สร้างฟังก์ชัน Lambda ใหม่ในภูมิภาคอื่นที่ไม่ใช่ US-EAST-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 สำหรับกระบวนการเฟลโอเวอร์