¿Qué tipo de configuración de AWS se necesita para ejecutar una aplicación de mapa web de ancho de banda bajo a medio?

16

¿Alguien tiene experiencia en la ejecución de mapas web (servidor de mosaico + cliente JS scripting) en los servicios web de Amazon (S3, EC2, etc.)? ¿Qué tipo de configuración de AWS se necesita para ejecutar una aplicación de mapa web de ancho de banda bajo a medio, que cubra un área pequeña (-ish) (de ciudad a tamaño de país pequeño)?

Todos los mosaicos se renderizarían previamente y se cargarían a S3. Idealmente, necesitaría una aplicación de servicio de mosaico en el servidor web que podría servir MBTiles (en lugar de cargar cientos de miles de mapas de bits de mosaico individualmente). Entonces, se necesitaría algún tipo de instancia de EC2, pero ¿qué tipo?

Gracias por cualquier sugerencia.

ACTUALIZACIÓN: solo para explicar mi pregunta. Lo que básicamente estoy buscando es una retroalimentación acerca de cuán viable es AWS para alojar sus propios mapas web como persona (lo que significa que no debería costar demasiado, digamos hasta $ 30 por mes). He estado alojando mis mapas web durante algún tiempo a través de proveedores de alojamiento "normales", pero estos tienen sus propias limitaciones (subir el ancho de banda es uno, la velocidad es otro). También estoy buscando cualquier buena alternativa a AWS y cualquier cosa a tener en cuenta al utilizar los servicios en la nube para mapas web.

    
pregunta Igor Brejc 27.09.2012 - 12:51

6 respuestas

6

Al elegir una arquitectura para un servicio que se basa tanto en una arquitectura "clásica" como los mapas web, nunca subestime la efectividad de las soluciones de alojamiento más tradicionales como RackSpace Cloud Servers o Linode .

Tendrá muchas menos opciones que hacer (como usar S3 o no, balanceadores de carga o no, respaldos, etc. o no, y cuánto va a costar) cuyo resultado es difícil de predecir Y, lo que es más importante, ser capaz de usar herramientas con las que ya está familiarizado.

Habiendo pasado por lo mismo hace un tiempo, puedo decirle que los factores críticos en mi decisión de hospedar un servicio de mapas web en Rackspace en lugar de AWS fueron:

  1. Cloud Server es (más) resistente que las instancias de EC2. Las instancias de EC2 en realidad se espera que fallen y fallarán
  2. Los volúmenes de EBS también fallan (hay muchas historias tristes en las noticias) y generalmente tienen una E / S deficiente
  3. a menos que elija las instancias más grandes, la contención de E / S podría ser un problema (especialmente si planea sembrar los mosaicos en EC2, en lugar de copiarlos). También podría ser un problema con las bases de datos MTBtiles
  4. Cada vez que reinicies tu servidor, la ip pública cambiará: esto no sucede en Linode o Rackspace
  5. Tendrá que idear una estrategia de copia de seguridad y restauración usted mismo, mientras que tanto Linode como Rackspace proporcionan puntos y clics instantáneos y restauraciones automáticas diarias y semanales
  6. Si el host que ejecuta su VPS falla, Rackspace se encargará de reubicar su instancia y reiniciarla en un servidor diferente y lo hará en 4 h (está en su SLA). Me sucedió mientras estaba de vacaciones: me sentí muy profesional. Linode debería hacer lo mismo
  7. Linode tiene un gran SLA de disponibilidad: 99.9% y reclaman un gran rendimiento porque no ofrecen una provisión excesiva
  8. Rackspace ha creado recientemente una estrategia de volumen como EBS, por lo que el espacio en disco ya no debería ser un problema. Anteriormente, si necesitaba mucho espacio en el disco, TENÍA que obtener una gran instancia, mientras que en EC2 puede aprovisionar el almacenamiento, la CPU y la memoria con un control más preciso.

Con esto no estoy diciendo que Amazon AWS sea inferior a los demás, solo digo que a veces las soluciones de hospedaje tradicionales pueden escalar tanto como las basadas en la nube. Un ejemplo notable es la StackExchange de la propia red .

Entonces, en su caso, iniciaría una instancia grande en Rackspace y luego cargaría todos los datos en una instancia local de Postgis. Luego, después de configurar el motor de renderizado, sembraría el caché. Una instancia grande completará el proceso de inicialización lo suficientemente rápido para que no resulte demasiado costoso de ejecutar. Puede almacenar mosaicos en el fs, MTBtiles, incluso en S3 (por cierto, puede servir datos de S3 en un CDN con CloudFront ) .

Una vez completada la siembra, reiniciaría el servidor y lo redimensionaría en una instancia pequeña (tal vez incluso 512 MB), ya que en ese momento solo tendría que proporcionar datos estáticos.

Esto está recibiendo una respuesta bastante larga, así que voy a detenerme aquí. Si quiere que explique ciertos aspectos, simplemente envíe un comentario.

Descargo de responsabilidad: no estoy afiliado a Rackspace, Linode ni a ningún otro proveedor que haya citado.

    
respondido por el unicoletti 28.09.2012 - 00:07
5

He estado usando WebFaction para alojar datos GIS en una base de datos Postgresql / PostGIS con MapServer y creo que el servicio no tiene rival por el costo de <$10 por mes. Si desea usar PostGIS 2.0, debe instalarlo usted mismo, lo cual es un poco complicado, pero proporcionan PostGIS 1.5 de manera predeterminada (debe abrir un ticket de soporte). Este es un servicio de alojamiento compartido en CentOS donde tiene total flexibilidad para instalar cualquier cosa en su propia parte del servidor.

No he estado utilizando Webfaction para servir mosaicos, pero proporcionan 100 GB de espacio; No estoy seguro de si la RAM sería demasiado costosa, ya que el valor predeterminado es de 256 MB (y cada bloque de 256 cuesta $ 7 adicionales por mes)

    
respondido por el djq 27.09.2012 - 18:55
5

Otra posibilidad que usa AWS:

Es posible que desee considerar el uso del método AWS Lambda Tiler que Seth Fitzsimmons ideó. Lo ha estado usando para el Open Aerial Map project y lo usé para un proyecto de cliente privado mientras trabajaba en Stamen Design.

Hay una publicación de blog completa que escribí que documenta cómo configurar el AWS Lambda Tiler en Medium.com . Tenga en cuenta que la publicación del blog solo cubre datos rasterizados, pero también usamos este proceso en Stamen para impulsar nuestros mosaicos de mapas de Terrain Classic que se generan a partir de una combinación de datos OSM y Natural Earth a través de PostgreSQL, PostGIS, Mapnik y CartoCSS.

Uno de los beneficios de este enfoque es que no tiene un servidor de mosaico para mantener y solo paga por uso de cada llamada a la función Lambda de AWS, lo cual estoy bastante seguro de que es más económico para proyectos más pequeños que No reciba una gran cantidad de tráfico web. Una de las desventajas de este enfoque es que los mosaicos se dividen por el usuario al mover el mapa y al zoom, por lo que el primer renderizado puede ser lento, aunque puede anticipar el anticipado de los mosaicos. Los mosaicos se escriben y almacenan en S3 después de que se procesan por primera vez, por lo que la posterior carga de mosaicos es mucho más rápida.

    
respondido por el clhenrick 23.12.2016 - 04:42
3

Para obtener precios detallados para los servicios de AWS, puede utilizar la calculadora en línea que se encuentra aquí: enlace

Para una pequeña instancia de EC2 que ejecuta Linux, si está dispuesto a comprometerse con un año, puede comprar una instancia reservada que costará alrededor de $ 25 por mes. Eso es en comparación con aproximadamente 44 / mes para precios a pedido o precios sin contrato.

Creo que la respuesta breve a su pregunta es que si está buscando un proveedor de infraestructura que se encargue de sus necesidades personales de aplicaciones de mapas web, AWS podría ser una exageración. Si está buscando un proveedor de TI para aplicaciones de producción, especialmente si requieren HA y escalabilidad, entonces AWS es su respuesta. Esto se vuelve aún más cierto si está creando aplicaciones que aprovechan los muchos servicios de pegado que proporciona AWS, como SQS, SNS, SWF, etc.

¿Qué tipo de EC2 necesitas? Esa es una función de sus aplicaciones específicas. El punto central de la TI basada en la nube es que puede probar antes de comprar. Pruebe su aplicación sin compromiso, y solo cuando sepa, tome una decisión informada acerca de comprometerse con un tipo EC2 durante un período de tiempo (la compra de RI).

    
respondido por el Mark Korver 03.07.2013 - 20:24
3

No soy un experto con mucho o realmente ningún conocimiento al respecto, aparte de que he estado ejecutando un servidor web en Amazon EC2 desde hace algún tiempo, por lo que esta no es una respuesta.

No estoy seguro de que esté utilizando estas herramientas para su mejor uso al pre-renderizar y cargar.

  • La mayor parte de mi gasto de aws está en mi transferencia de datos (de lo que está hablando sobre la carga).
  • ¿Qué más debe hacer su servidor (a menos que esté utilizando licencias para renderizar mosaicos y no tenga licencia para AWS)?

Si eso no impide o vuelve a pensar, probablemente elija primero su servidor de mapas favorito, luego elija un sistema operativo compatible para ese servidor de mapas, luego vaya a AWS EC2 y encuentre la instancia que mejor se adapte a sus necesidades (tamaño , memoria, espacio, región).
Puede o no haber una AMI que contenga toda la pila que necesita, así que, a continuación, configúrela y luego instale la pila.
Existe una gran posibilidad de que logre todo eso por "gratis" o barato.

    
respondido por el Brad Nesom 27.09.2012 - 16:15
0

Es cierto que puede optar por AWS si está utilizando los diferentes servicios, ya que AWS es bastante costoso. Si desea obtener los precios más económicos con los mismos beneficios que recomendaría para enlace o enlace ya que ambos tienen servicios apreciables y precios más baratos. Básicamente obtendrá todas las opciones de sistema operativo y DBMS con alta confiabilidad.

    
respondido por el user79544 27.07.2017 - 20:53

Lea otras preguntas en las etiquetas