Cómo decidir entre Amazon EC2 o Heroku

Elastic Compute Cloud (EC2) es un producto de Infraestructura como Servicio. Tenemos que desarrollar la infraestructura del servidor nosotros mismos: configurar y mantener manualmente los servidores virtualizados; agregar instancias de bases de datos; elegir y configurar un sistema operativo; configurar un equilibrador de carga para distribuir la carga en varios servidores de aplicaciones. También debemos seleccionar una CPU y cantidades de RAM para satisfacer las necesidades de nuestra aplicación; instale servidores de respaldo y conéctelos a los servidores principales.

Heroku es un producto de Plataforma como Servicio (PaaS) basado en AWS. Nos equipa con un entorno de tiempo de ejecución listo y servidores de aplicaciones. Nos beneficiamos de la integración con varios instrumentos de desarrollo, un sistema operativo preinstalado y servidores redundantes. Solo necesita un desarrollador web para crear una aplicación y enviarla a Heroku usando Git.
Amazon también ofrece Elastic Beanstalk, un producto de plataforma como servicio como Heroku. Necesitamos implementar, y luego Elastic Beanstalk administra la infraestructura sin nuestro control.

Debe AWS Elastic Compute Cloud :

  • Necesita flexibilidad de infraestructura.
  • Tiene un ingeniero de DevOps para administrar la infraestructura.
  • El proyecto exige grandes recursos computacionales.

Debe usar Heroku o AWS Elastic Beanstalk :

  • Necesita implementar y probar un MVP.
  • Debe mejorar su aplicación rápidamente después de recibir comentarios de los usuarios.
  • El proyecto no exige tantos recursos computacionales.

Puede encontrar información sobre las características de AWS y Heroku en el artículo https://rubygarage.org/blog/hero… en el blog RubyGarage.

Si tiene altas expectativas de tráfico y crecimiento del tráfico, entonces debería pensar en EC2, o si cree que el crecimiento será aún mayor, un entorno alojado que ejecute una fundición en la nube u otro PaaS podría ser más rentable. Puede ser complejo modelar la relación entre el tráfico y el costo en las 3 plataformas diferentes, pero el esfuerzo podría valer la pena. Heroku es un gran lugar para probar ideas, pero avanzar en el camino puede ser costoso en términos de costos de cambio. Una forma de pensarlo es el tiempo de comercialización frente a los costos de cambio. ¿Cuánto tiempo y recursos tendrás que dedicar a codificar tu aplicación en Heroku? Si el desarrollo es bastante modesto, ni siquiera me molestaría en hacer un análisis de costos. Puede probar sus ideas y con los datos que recopila, en última instancia, podrá construir un producto de segunda generación de manera más efectiva, y tener los datos para mostrar a sus patrocinadores / inversores.

No sé su nivel de experiencia con esto, pero puede comenzar pensando en cómo hacer que la arquitectura de su aplicación sea portátil. Si tuviera que cambiar los proveedores de alojamiento a la mitad de la vida útil de su aplicación, ¿cómo lo haría?

El objetivo de este ejercicio es forzarlo a pensar sobre la arquitectura, su orquestación con Ansible (o Puppet, o lo que sea), y sus necesidades de escala. Luego puede hacer una comparación más directa de precios y servicios entre los proveedores disponibles. Además, si Heroku es más rentable el día 1, y si Amazon es mejor para escalar el día 100 (un escenario probable), ya se ha preparado por adelantado para una actualización “llave en mano” en la infraestructura de la nube.

Si y solo si sus expectativas de uso son correctas, Amazon tiene sentido; aunque no puedo asumir sin más información y no quiero que su elección ahora lo encierre en una arquitectura particular.

Si ya está vendido en Amazon S3 y planea quedarse con su plataforma durante mucho tiempo sin intentar saltar para ahorrar costos en el futuro, entonces vaya a Ec2 de inmediato y use grupos de escalado automático, pilas de formación de nubes, roles y usuarios de IAM adecuados ( con integración AD o autenticación de múltiples factores) junto con quizás Lambda para sus operaciones S3 le brindará la mejor integración de plataforma con el proveedor de la nube. IAM se pasa por alto constantemente como un punto fundamental de la pila de la nube de AWS y mantener todo en manos de Amazon puede significar que ahora está comprado demasiado en AWS. Es posible que no pueda o no quiera saltar si llega una alternativa barata. Obtendrá más beneficios del nivel de integración que ofrecen los servicios en la nube de AWS, que tiene algunas recompensas.

Use Heroku para comenzar y ahorrarse un montón de tiempo y esfuerzo al tratar con servidores (no tiene que lidiar con ellos cuando usa Heroku). Si comienza a recibir mucho tráfico, puede considerar cambiar a EC2 directo, pero no se moleste en pensar hasta que valga la pena pensarlo (al principio no vale la pena).