Erstellen Sie zwei Buckets mit aktiviertem statischem Website-Hosting und stellen Sie sicher, dass die regionsübergreifende Replikation aktiviert ist und Objekte in den Ziel-Bucket repliziert werden.
Erstellen Sie eine CloudFront-Verteilung und verwenden Sie den primären S3-Bucket als Ursprung.
Erstellen Sie eine neue R53-Gesundheitsprüfung, die auf den CNAME der CF-Verteilung abzielt (d123456789.cloudfront.net funktioniert auch), einschließlich des Pfads des Gesundheitsprüfungsobjekts (z. B. d123456789.cloudfront.net/healthcheck.txt).
Erweitern Sie „Erweiterte Konfiguration“ unter „Gesundheitsprüfung“ und legen Sie das Anforderungsintervall auf „Standard“ (30 Sek.) und den Fehlerschwellenwert auf mindestens 3 fest.
Erstellen Sie einen neuen Alarm und wählen Sie ein vorhandenes oder ein neues SNS-Thema aus (muss in der Region US-OST-1 liegen).
Erstellen Sie mit s3_site_failover.py eine neue Lambda-Funktion in einer anderen Region als US-EAST-1.
Erstellen Sie mit den folgenden CLI-Befehlen einen neuen SNS-Trigger für die Lambda-Funktion.
Erstellen Sie ein neues SNS-Abonnement für die Lambda-Funktion:
aws sns subscribe --topic-arn "YourSNSTopicARN" --protocol lambda --notification-endpoint "YourLambdaARN" --region "us-east-1"
Erstellen Sie Lambda-Aufrufberechtigungen für SNS zum Aufrufen der Funktion:
aws lambda add-permission --function-name "YourLambdaARN" --statement-id "HealthCheck_SNS_Lambda" --action "lambda:InvokeFunction" --principal "sns.amazonaws.com" --source-arn "YourSNSTopicARN"
Stellen Sie sicher, dass beide Bucket-Richtlinien öffentlichen Lesezugriff auf den Bucket zulassen.
Laden Sie eine neue error.html-Seite in den Quell-Bucket hoch, um zu vermeiden, dass bei URI-Abfragen für nicht vorhandene Objekte eine 403-Antwort angezeigt wird.
S3 -> Bucket -> Properties -> Static website hosting -> Error document
Laden Sie ein Integritätsprüfungsobjekt in den ursprünglichen S3-Bucket hoch, wobei der Cache-Steuerungsheader auf „Kein Cache“ eingestellt ist (dies hilft, Fehlalarme bei der R53-Gesundheitsprüfung zu negieren):
aws s3 cp "local/path/healthcheck.txt" "s3://bucketName/healthcheck.txt" --cache-control no-cache
Simulieren Sie einen Bucket-Fehler, indem Sie die Berechtigung ändern oder das Integritätsprüfungsobjekt löschen. Dies führt dazu, dass die R53-Integritätsprüfung fehlschlägt und SNS/Lambda für den Failover-Vorgang ausgelöst wird.