Lorsque vous choisissez une architecture pour un service qui repose tant sur une architecture «classique» comme les cartes Web, ne sous-estimez jamais l'efficacité des solutions d'hébergement plus traditionnelles comme les serveurs Cloud RackSpace ou Linode .
Vous aurez beaucoup moins de choix à faire (comme utiliser S3 ou non, des équilibreurs de charge ou non, des sauvegardes, etc. ou non et combien cela va coûter?) Dont le résultat est difficile à prévoir ET, plus important encore, vous pourrez utilisez des outils que vous connaissez déjà.
Ayant vécu la même chose il y a quelque temps, je peux vous dire que les facteurs critiques dans ma décision d'héberger un service de cartes Web sur Rackspace plutôt que sur AWS étaient:
- Les serveurs Cloud sont (plus) résistants que les instances EC2. Les instances EC2 sont effectivement attendus à l' échec et ils vont échouer
- Les volumes EBS échouent également (il y a beaucoup d'histoires tristes dans les nouvelles) et ont généralement de mauvaises E / S
- à moins que vous ne choisissiez les instances plus importantes, la contention des E / S pourrait être un problème (surtout si vous prévoyez d'ensemencer les tuiles sur EC2, plutôt que de les copier). Cela pourrait également être un problème avec les bases de données MTBtiles
- Chaque fois que vous redémarrez votre serveur, l'IP publique change: cela ne se produit pas sur Linode ou Rackspace
- Vous devrez vous-même proposer une stratégie de sauvegarde et de restauration, tandis que Linode et Rackspace fournissent des instantanés et des restaurations automatiques quotidiens et hebdomadaires.
- Si l'hôte exécutant votre VPS échoue, Rackspace se chargera de déplacer votre instance et de la redémarrer sur un autre serveur et ils le feront en 4h (c'est dans leur SLA). Cela m'est arrivé pendant mes vacances: c'était très professionnel. Linode devrait faire de même
- Linode a une grande disponibilité SLA: 99,9% et ils revendiquent de grandes performances parce qu'ils ne surprovisionnent pas
- Rackspace a récemment mis au point une stratégie de volume comme EBS, donc l'espace disque ne devrait plus être un problème. Auparavant, si vous aviez besoin de beaucoup d'espace disque, vous deviez obtenir une grande instance tandis que sur EC2, vous pouvez provisionner le stockage, le processeur et la mémoire avec un contrôle plus fin.
Avec cela, je ne dis pas qu'Amazon AWS est inférieur aux autres, je dis simplement que parfois les solutions d'hébergement traditionnelles peuvent évoluer aussi bien que celles basées sur le cloud. Un exemple notable est le réseau StackExchange lui-même.
Donc, dans votre cas, je démarrerais une grande instance sur Rackspace puis chargerais toutes les données dans une instance Postgis locale. Ensuite, après avoir configuré le moteur de rendu, j'amorcerais le cache. Une grande instance achèvera le processus d'amorçage assez rapidement afin qu'il ne devienne pas trop coûteux à exécuter. Vous pouvez stocker des tuiles dans les fs, MTBtiles, même sur S3 (btw, vous pouvez servir des données S3 sur un CDN avec CloudFront ).
Une fois l'amorçage terminé, je redémarrerais le serveur et le redimensionnerais en une petite instance (peut-être même 512 Mo) car à ce moment-là, il ne devrait servir que des données statiques.
Cela obtient une réponse un peu longue, donc je vais m'arrêter ici. Si vous voulez que j'élabore sur certains aspects, laissez simplement un commentaire.
Avis de non-responsabilité: je ne suis pas affilié à Rackspace, Linode ou à tout autre fournisseur que j'ai cité.