Создайте 2 сегмента с включенным статическим хостингом веб-сайтов и убедитесь, что межрегиональная репликация включена и объекты реплицируются в целевой сегмент.
Создайте дистрибутив CloudFront и используйте основной сегмент S3 в качестве источника.
Создайте новую проверку работоспособности R53, ориентированную на CNAME дистрибутива CF (d123456789.cloudfront.net также работает), включая путь к объекту проверки работоспособности (например, d123456789.cloudfront.net/healthcheck.txt).
Разверните «Расширенная конфигурация» в разделе «Проверка работоспособности» и установите интервал запроса «Стандартный» (30 секунд) и «Порог отказа» не менее 3.
Создайте новый сигнал тревоги и выберите существующую или новую тему SNS (должна находиться в регионе US-EAST-1).
Создайте новую лямбда-функцию в любом регионе, кроме US-EAST-1, с помощью файла s3_site_failover.py.
Создайте новый триггер SNS для лямбда-функции, используя приведенные ниже команды 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
Загрузите объект проверки работоспособности в корзину Original S3 с заголовком управления кэшем, установленным в значение no-cache (это поможет свести на нет ложные срабатывания при проверке работоспособности R53):
aws s3 cp "local/path/healthcheck.txt" "s3://bucketName/healthcheck.txt" --cache-control no-cache
Имитируйте сбой корзины, изменив разрешение или удалив объект проверки работоспособности. Это приведет к сбою проверки работоспособности R53 и запуску SNS/Lambda для процедуры переключения при сбое.