A melhor abordagem para esse problema é alterar seus nomes de arquivos quando você atualiza uma página - isso forçará a Cloudfront a recuperar o novo conteúdo. Novamente, lembre-se de que o Cloudfront é normalmente usado para arquivos de mídia (incluindo imagens) e style / javascript - e não tanto para html. Essencialmente, você teria seu HTML no S3 e suas imagens no Cloudfront - com todas as alterações feitas, você pode alterar o nome do arquivo no Cloudfront (por exemplo, arquivo-v1.jpg, arquivo-v2.jpg, etc). Outra maneira comum é incluir uma string de consulta com informações de versão.
Além disso, lembre-se de que o Cloudfront não oferece conteúdo gzipado - o que pode resultar em uma resposta mais lenta do que em um servidor regular (embora, no seu caso, o S3 também não identifique navegadores compatíveis com gzip).
Por fim, se você quiser, poderá usar a invalidação para forçar a Cloudfront a descartar sua cópia existente e buscar uma nova no servidor de origem. Observe, no entanto, que a Cloudfront oferece apenas mil invalidações gratuitas por mês, após as quais o custo é de US $ 0,005 / invalidação.
O menor tempo que a Cloudfront manterá o conteúdo é 1hr , embora, o padrão seja 24 horas. Eu, portanto, tentaria definir a idade máxima para pelo menos 3600. Considere também um cabeçalho s-maxage (para compartilhamento - ou seja, conteúdo com proxy). A Amazon recomenda o tutorial de cache .
Houve um problema recente com isso, corrigido há alguns dias