Il n'y a aucune raison pour que vous ne puissiez pas faire les deux.
CloudFront achemine automatiquement les demandes vers un emplacement périphérique le plus proche du spectateur. Lorsqu'une demande ne peut pas être servie à partir de cet emplacement ou du cache régional le plus proche, CloudFront effectue une recherche DNS pour le nom de domaine d'origine et récupère le contenu depuis l'origine.
Jusqu'à présent, je n'ai fait que constater l'évidence. Mais le suivant est un détail subtil mais important :
CloudFront effectue cette recherche du DNS du serveur d'origine. à partir d'un endroit proche de l'observateur -- Cela signifie que si le nom de domaine d'origine est un ensemble d'enregistrements basés sur la latence dans Route 53, pointant vers des déploiements dans deux régions EC2 ou plus, alors la requête que CloudFront fait pour "trouver" l'origine sera acheminée vers le déploiement d'origine le plus proche du bord, qui sera aussi par définition proche du spectateur.
Ainsi, un déploiement CloudFront unique et global peut sélectionner automatiquement et de manière transparente la meilleure origine, en utilisant une configuration basée sur la latence pour la configuration DNS du backend.
Si les optimisations de mise en cache et de transport fournies par CloudFront ne vous donnent pas les performances globales dont vous avez besoin, puis vous pouvez déployer dans plusieurs régions, derrière CloudFront... en gardant toujours à l'esprit qu'un déploiement multirégional est presque toujours un environnement plus complexe, en fonction des bases de données qui soutiennent votre application et de la façon dont elles sont équipées pour gérer la réplication interrégionale pour les lectures et/ou les écritures.
L'utilisation de CloudFront comme frontal est également une meilleure solution pour la tolérance aux pannes entre les déploiements régionaux multiples, car CloudFront respecte correctement le TTL du DNS sur l'enregistrement DNS de votre serveur d'origine, et si vous avez configuré les contrôles de santé de Route 53 pour retirer une région malsaine de la réponse DNS sur le nom de domaine d'origine, CloudFront cessera rapidement de lui envoyer d'autres requêtes. Les navigateurs sont notoirement indignes de confiance à cet égard, mettant parfois en cache une réponse DNS jusqu'à ce que tous les onglets/fenêtres soient fermés.
Et si CloudFront est votre frontal, vous pouvez décharger des parties de votre logique vers Lambda@Edge si vous le souhaitez.