3 votes

Rediriger certaines requêtes URL vers CloudFront et le reste directement vers le serveur normal ?

Disons que j'ai deux types de requêtes URL qui doivent être traitées par mon API REST :

http://query.restapi.com/image.png?apikey=abc123

http://query.restapi.com/2.0/<apiKey>/resource.json?from=umi.us_census00.state_geometry

Seulement pour les images statiques (par exemple, regex : *.png?.* ) dois-je profiter de la mise en cache de CloudFront et le reste des requêtes ne recevront pas de données en cache et devront aller vers le serveur EC2 normal (ou au moins prendre une route indirecte plus rapide vers le serveur EC2 normal ?)

Peut-être que le temps de demande supplémentaire pour les manques à CloudFront n'est pas pertinent pour s'inquiéter ?

Ou peut-être que ma situation n'est pas la meilleure pour utiliser CloudFront ?

4voto

Joel K Points 5727

Vous devez construire votre HTML de manière à utiliser un nom d'hôte URL différent pour le contenu statique.

Utilisez firebug pour jeter un coup d'œil au contenu principal de n'importe quelle grande entreprise web.

Facebook (par exemple) utilise http://static.ak.fbcdn.net pour le contenu statique qui, je suppose, utilise Akamai. (un autre CDN comme Cloudfront) Les autres contenus moins statiques proviennent directement de facebook.com.

Vous pouvez vous faciliter un peu la vie en utilisant un CNAME.

ex. static.restapi.com --> d1234.cloudfront.net

Il vous suffit ensuite de travailler sur la façon dont vos pages sont présentées pour utiliser le nom d'hôte principal pour les pages dynamiques et le nom d'hôte statique pour le contenu statique.

Vous avez parlé de "réorientation" ci-dessus. Je veux m'assurer que vous n'essayez pas de faire des redirections HTTP. Si vos utilisateurs finaux doivent aller sur votre site pour obtenir la redirection, une bonne partie de l'accélération qu'un CDN fournit est déjà perdue. Il est préférable de n'avoir qu'un seul accès à votre page principale et de charger le plus de contenu possible à partir de CDN plus proches de l'utilisateur final.

C'est logique ?

1voto

mgorven Points 29736

Comme l'a dit @JoelK, vous devriez vraiment utiliser un domaine différent pour le contenu statique. Le domaine statique (par exemple, static.restapi.com) serait entièrement servi par CloudFront, et le domaine dynamique (par exemple, query.restapi.com) servi par votre instance EC2. Si vous avez besoin de restreindre l'accès aux ressources statiques, consultez la page Web de CloudFront URLs signés qui vous permettent de générer des URL qui ne sont valables que pendant un certain temps. (Les utilisateurs de l'API ne devraient pas faire référence au contenu statique directement -- l'API devrait fournir l'emplacement des ressources statiques).

Si vous utilisez une redirection HTTP de votre serveur EC2 vers CloudFront, vous ne tirerez aucun avantage de CloudFront, car les clients doivent toujours effectuer cette requête à EC2 pour chaque ressource statique.

Si, pour une raison ou une autre, vous ne pouvez pas héberger le contenu statique sur un autre domaine, vous pouvez utiliser la prise en charge par CloudFront des éléments suivants contenu dynamique . Il vous permet de configurer plusieurs origines pour une distribution CloudFront, afin que votre contenu statique et dynamique puisse être servi par CloudFront sur un seul domaine.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X