Amazon AWS ofrece un ecosistema completo de servicios que debe abarcar todos los aspectos de una arquitectura determinada, desde el alojamiento hasta el almacenamiento de datos, o la mensajería, etc. Ya sea que sean los que mejor se adapten a su propósito, deberá decidirse por un caso por caso. En vista de que su pregunta es bastante amplio que voy a cubrir algunos de los fundamentos de lo AWS tiene que ofrecer y lo que los diferentes tipos de servicios son para:
EC2 (Elastic Cloud Computing)
la nube de Amazon solución, que es básicamente la misma que la antigua tecnología de máquina virtual, pero la 'nube' ofrece nudos y los robots adicionales, tales como el aprovisionamiento automatizado, escalado, facturación, etc.
- que paga por lo que su uso (por hora), por el básico (CPU única, 1.7 GB de ram) le costaría poco menos de $ 3 por día si lo ejecuta 24/7 (en una instancia de Windows)
- hay varios sistemas operativos diferentes para elegir, incluidos linux y windows, las instancias de Linux son más económicas de ejecutar sin el costo de licencia asociado con Windows
- una vez que haya configurado el servidor de la manera que desee, incluidas las actualizaciones/parches del servidor, puede crear su propia AMI (imagen de la máquina de Amazon) que luego puede usar para llevar hasta otra instancia idéntica
- sin embargo, si todos sus html se preparan en la imagen, las actualizaciones serán difíciles, por lo que el enfoque normal es incluir un servicio (servicio de Windows por ejemplo) que extraerá el último paquete de implementación ver S3 más adelante) servicio y actualización del sitio al inicio y al inte rvals
- existe el Elastic Load Balancer (que tiene su propio costo pero solo se necesita uno en la mayoría de los casos) que puede colocar delante de todos sus servidores web
- también está el servicio Cloud Watch (de nuevo, con un costo adicional) que puede habilitar por instancia para ayudarlo a monitorear la CPU, entrada/salida de red, etc. de su instancia en ejecución
- puede configurar AutoScalers que pueden mostrar o terminar instancias automáticamente en función de alguna métrica, por ejemplo finalizar 1 instancia a la vez si la utilización promedio de la CPU es inferior al 50% durante 5 minutos, mostrar 1 instancia a la vez si la CPU promedio supera el 70% durante 5 minutos
- puede usar las instancias como servidores web, úselas para ejecutar un DB, o un clúster de Memcache, etc. la elección es suya
- normalmente, no recomendaría que las instancias de Amazon hablen con un DB fuera de Amazon porque el viaje de ida y vuelta es mucho más largo, el enfoque habitual es usar SimpleDB (ver más abajo) como base de datos
- la AmazonSDK contiene suficientes clases para ayudarle a escribir algún servicio de monitor personalizado/escalado si alguna vez necesita, pero la consola AWS le permite hacer la mayor parte de la configuración de todos modos
SimpleDB
almacén de datos no relacionales, valor clave de Amazon, en comparación con una base de datos tradicional que tienden a pagar una multa en el rendimiento por consulta, pero conseguir una alta escalabilidad sin tener que hacer ningún trabajo adicional.
- que paga por el uso, es decir, la cantidad de trabajo que se necesita para ejecutar su consulta
- extremadamente escalable de forma predeterminada, Amazon amplía hasta casos SimpleDB basadas en el tráfico sin tener que hacer nada, y cualquier control para el caso
- los datos están particionados en 'dominios' (equivalente a una tabla en DB SQL normal)
- datos no relacionales, si necesita un modelo relacional luego consulte Amazon RDB, no tengo ninguna experiencia con por lo que no es la mejor persona para comentar sobre él ...
- puede ejecutar SQ Al igual que la consulta en la base de datos, normalmente a través de algún complemento o herramienta, Amazon no proporciona una interfaz para esto en el momento
- tenga en cuenta la 'posible coherencia', los datos se duplican en varias instancias después de que Amazon amplíe su base de datos y la sincronización no está garantizada cuando se realiza una actualización por lo que es posible (aunque poco probable) para actualizar algunos datos leen de vuelta de inmediato y obtener los datos antiguos otra vez
- hay 'lectura consistente' y los mecanismos 'condicional Actualizar' disponible para protegerse contra el problema de consistencia eventual, si se está desarrollando en.Net, se sugiere emplear SimpleSavant cliente para hablar con SimpleDB
S3 (Simple Storage Service)
servicio de almacenamiento de Amazon, de nuevo, muy escalable y segura también - cuando se guarda un archivo en S3 Es replicado a través de múltiples nodos para que pueda obtener un poco de capacidad de DR de inmediato.
- que sólo paga por la transferencia de datos
- archivos se almacenan en contra de una clave
- crear 'cubos' para mantener sus archivos, y cada segmento tiene una URL única (única en todos Amazonas, y por lo tanto cuentas S3)
- CloudBerry S3 Explorer es el mejor cliente de interfaz de usuario que he usado en Windows
- utilizando el AmazonSDK usted puede escribir su propia capa de repositorio que utiliza S3
Disculpe si esto es un poco largo, pero esos son los 3 servicios web más populares que ofrece Amazon y deben cubrir todos los requisitos que ha mencionado. Hemos estado utilizando Amazon AWS desde hace un tiempo y todavía hay algunas fallas y errores allí, pero en general se está moviendo hacia adelante y bastante estable.
Una desventaja del uso de algo como aws es que el proveedor está bloqueado, mientras que podría ejecutar sus servicios fuera de Amazon y en su propio centro de datos o mover archivos de S3 (a un costo), salir de SimpleDB es probable que represente la mayor parte del trabajo durante la migración.