2010-08-23 61 views
6

de vez en cuando leo/escucho sobre AWS y ahora traté de leer los documentos. Pero esos documentos parecen estar escritos para personas que ya saben qué AWS necesitan usar y solo buscan cómo se puede usar.necesito alguna guía sobre el uso de Amazon AWS

Por lo tanto, para mí, para comprender mejor AWS, intento esbozar una aplicación hipotética Weba con algunas preguntas.

El objetivo de las aplicaciones es modificar contenido como videos o imágenes. Entonces, un usuario tiene algún tipo de interfaz web donde puede cargar sus archivos, realizar algunos ajustes y un servidor toma el archivo y lo modifica (por ejemplo, re-codificación). El Servicio también extrae la pista de audio de un video y trata de indexar las palabras habladas para que el cliente pueda buscar dentro de sus videos. (así sus simplemente hipotéticos)

Así que mis preguntas:

  • dado mi propio dominio 'oneofmydomains.com' es posible acoger la interfaz web completa en AWS? Pensé en usar GWT para crear la interfaz y simplemente entregar las imágenes JS a través de AWS, pero ¿cuál, simple almacenamiento? ¿qué pasa con algún tipo de index.html, hay una instancia EC2 necesaria para alojar un servidor web que tiene que funcionar 24/7 causando costos?
  • ahora el usuario tiene la interfaz con un formulario de inicio de sesión, ¿es posible administrar los inicios de sesión con un AWS? Aquí también pienso en una instancia de EC2 que aloja una base de datos, pero también causaría costos y no estoy seguro de si hay una forma mejor.
  • el usuario ha iniciado sesión y ha cargado un archivo. ¿Qué solución de almacenamiento podría usarse para guardar el contenido original y modificado del cliente?
  • ahora el usuario desea examinar el estado de sus cargas, esto significa que necesito algún tipo de ACL, para que el cliente solo vea sus propios archivos. ¿Necesito usar una base de datos (por ejemplo, EC2) para esto, o amazon proporciona algún tipo de ACL, por lo que la interfaz web de GWT será segura sin ningún EC2?
  • los archivos de los clientes se vuelven a codificar y la pista de audio se indexa. entonces él quiere buscar un video. ¿Qué servicio podría usarse para crear y mantener el índice para cada cliente?

esperanza alguien puede dar algunas respuestas por lo que entiendo mejor en cómo se podría utilizar

THX AWS!

Respuesta

11

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.

Cuestiones relacionadas