¿Cuáles son las desventajas de usar EC2 para alojar un sitio web de Internet para consumidores?

Bajo rendimiento de E / S: AWS utiliza una red 1G compartida para todo el tráfico de red y almacenamiento. En particular, EBS tiene un desempeño pobre cuando se trata de variabilidad, latencia y rendimiento. Adrian Cockcroft escribió en su blog sobre la experiencia del equipo de Netflix aquí:
http://perfcap.blogspot.com/2011…

La red de la experiencia de Adrian: no espere más de 100 IOPS / seg de rendimiento sostenido de EBS. Netflix no usa EBS por este motivo, sino que prefiere usar almacenamiento local efímero y compartir el estado de la base de datos Cassandra.

El problema para su aplicación web típica es que la única forma de ejecutar fácilmente un RDMS tradicional en AWS es usar EBS. Con la limitación de 100 IOPS, tiene dos opciones:
1) Fragmenta la base de datos para obtener un mejor rendimiento. Esto funciona, pero es posible que se sorprenda de cuántos fragmentos necesita, y eso aumenta drásticamente la complejidad operativa. Hacer una copia de seguridad de la base de datos ahora es mucho más difícil, y recuperarse de una interrupción y volver a una base de datos coherente puede ser extremadamente difícil.
2) Rechace los RDMS tradicionales por completo y vaya a un modelo NoSQL distribuido. Dependiendo de su aplicación, esto puede requerir mucho trabajo de desarrollo porque ya no tiene la integridad transaccional RDMS tradicional. Tendrás que codificar eso tú mismo. También puede ser una pesadilla de migración de datos (si tiene que migrar su conjunto de datos existente). Esta es la ruta que tomó el equipo de transmisión de Netflix: reescribiendo su aplicación para usar Cassandra en lugar de Oracle.

En orden de importancia:

Durabilidad. Cuanto más tiempo corras en EC2, mayores serán las posibilidades de que muera un servidor. Las instancias de EC2 mueren en paquetes y cuando mueren desaparecen para siempre.

Esto es preocupante cuando tiene sus bases de datos u otras cosas críticas ejecutándose en EC2. Te obliga a tener copias de seguridad y un plan de contingencia. Esto no es algo malo.

Administración. Alguien tendrá que aprender cómo funciona EC2, cómo administrar sus instancias y cómo escalar sin problemas. Esto requiere un poco de esfuerzo, pero hay mucha información disponible para superar esto.

Apoyo. No hay un tipo en un centro de datos al que pueda llamar en medio de la noche. Eso cuesta extra.

Precio . EC2 es una costosa opción de alojamiento en la nube. Esto puede mitigarse si usa instancias reservadas, pero es más alto que el promedio y mucho más alto que ejecutar sus propios servidores.

  • Si su configuración será más de 1 servidor, la latencia entre servidores es más alta que las configuraciones de servidor alquiladas o alojadas típicas. Esto significa que puede tener un arquitecto para hablar con su base de datos, memcache o cualquier otro servidor diferente al que tenía anteriormente.
  • Los servidores simplemente pueden desaparecer. Esto significa que el proceso de aprovisionamiento de su servidor debe funcionar de manera perfecta, rápida y completamente automatizada. Puede ser más vago sobre este tipo de cosas en una configuración típica. Si tiene entradas de DNS que apuntan a un servidor EC2, debe asegurarse de que apuntan a direcciones IP bloqueadas.
  • Las configuraciones típicas de la base de datos mysql son más difíciles porque debe esperar que el servidor y su almacenamiento local puedan desaparecer en cualquier momento. Por lo general, usaría almacenamiento elástico, replicación y copias de seguridad frecuentes para configurar esto.