A resposta curta é: Não consigo encontrar uma boa maneira de ter um site estático hospedado do S3 sobreviver a uma falha de região sem usar lógica ou servidores adicionais. Eu ficaria realmente interessado se alguém mais pudesse propor um caminho.
Você pode colocar o CloudFront na frente do site do S3. Se o intervalo for desativado, o conteúdo será exibido a partir do cache, mesmo que seja obsoleto. Isso, é claro, depende do conteúdo que está no cache do ponto de extremidade mais próximo do cliente.
Você pode usar a replicação entre regiões do S3 para mover os dados do S3 para outra região . Originalmente, achei que você poderia usar o roteamento de failover do Route53 para selecionar o intervalo de trabalho, mas isso não vai funcionar. A replicação de região cruzada deve ser para um intervalo com um nome diferente, com o site S3 hospedando você só pode hospedar um site a partir de um bloco nomeado para o domínio. Gostaria de saber se havia uma solução manual, mas você não pode renomear os intervalos e, se a primeira região estiver inativa, provavelmente não será possível excluir o intervalo com o nome do site.
Eu pensei que uma combinação de CloudFront e Route53 poderia funcionar, mas isso dependeria da criação de duas distribuições do CloudFront que veiculam conteúdo para o mesmo domínio. Isso não parece ser possível.
Isso não é o ideal, mas acho que você poderia fazer isso com o EC2 e o Route53. Crie servidores em duas ou mais regiões, faça com que eles procurem manualmente o conteúdo S3 usando Nginx ou similar e equilibre-os com o Route53. Isso derrota o ponto de hospedagem do S3 e é, em geral, uma idéia terrível, mas provavelmente poderia funcionar se fosse absolutamente necessário.