При выборе архитектуры для службы, которая в значительной степени опирается на «классическую» архитектуру, такую как веб-карты, никогда не стоит недооценивать эффективность более традиционных хостинговых решений, таких как RackSpace Cloud Servers или Linode .
У вас будет гораздо меньше вариантов выбора (например, использовать S3 или нет, балансировщики нагрузки или нет, резервные копии и т. Д. Или нет, и сколько это будет стоить?), Чей результат трудно предсказать И, что более важно, вы сможете используйте инструменты, с которыми вы уже знакомы.
Пройдя через то же самое, я могу сказать вам, что решающими факторами в моем решении разместить сервис веб-карт в Rackspace, а не в AWS, были:
- Облачный сервер (более) устойчив, чем экземпляры EC2. Экземпляры EC2 фактически ожидается на провал , и они будут терпеть неудачу
- Тома EBS тоже терпят неудачу (в новостях много печальных историй) и вообще имеют плохой ввод / вывод
- если вы не выберете более крупные экземпляры, конфликт ввода-вывода может стать проблемой (особенно, если вы планируете заполнять плитки на EC2, а не копировать их). Это также может быть проблемой с базами данных MTBtiles.
- Каждый раз, когда вы перезагружаете свой сервер, публичный ip будет меняться: это не происходит в Linode или Rackspace
- Вам придется самостоятельно придумать стратегию резервного копирования и восстановления, в то время как и Linode, и Rackspace предоставляют автоматические моментальные и ежедневные моментальные снимки и восстановления, которые можно нажимать и щелкать.
- Если на хосте, на котором работает ваш VPS, происходит сбой, Rackspace позаботится о перемещении вашего экземпляра и перезапуске его на другом сервере, и они сделают это за 4 часа (это в их SLA). Это случилось со мной, когда я был в отпуске: это было очень профессионально. Линод должен сделать то же самое
- Linode имеет SLA высокой доступности: 99,9%, и они заявляют о высокой производительности, потому что они не обеспечивают слишком много
- Rackspace недавно разработал стратегию томов, такую как EBS, поэтому дисковое пространство больше не должно быть проблемой. Раньше, если вам нужно было много места на диске, вы ДОЛЖНЫ получить большой экземпляр, тогда как в EC2 вы можете выделить память, процессор и память с более точным управлением.
При этом я не говорю, что Amazon AWS уступает другим, я просто говорю, что иногда традиционные решения для хостинга могут масштабироваться так же, как и облачные. Ярким примером является сама сеть StackExchange .
Итак, в вашем случае я бы запустил большой экземпляр в Rackspace, а затем загрузил все данные в локальный экземпляр Postgis. Затем после настройки движка рендеринга я бы заполнил кеш. Большой экземпляр завершит процесс посева достаточно быстро, чтобы он не стал слишком дорогим для запуска. Вы можете хранить плитки в fs, MTBtiles, даже на S3 (кстати, вы можете передавать данные S3 на CDN с CloudFront ).
После завершения заполнения я перезагружал сервер и изменял его размер до небольшого (может быть, даже 512 МБ) экземпляра, поскольку в этот момент он должен был обслуживать только статические данные.
Это довольно длинный ответ, поэтому я остановлюсь здесь. Если вы хотите, чтобы я уточнил некоторые аспекты, просто оставьте комментарий.
Отказ от ответственности: я не связан с Rackspace, Linode или любым другим провайдером, на которого я ссылался.