DEV Community

Matthews34dev
Matthews34dev

Posted on

Introduccion a AWS

La computación o informática en la nube hace referencias a la distribucción bajo la demanda de recursos de TI a través de internet mediante un esquema de pago por uso.

En lugar de incurrir en costos grandes para adquirir infraestructura técnologica, tener y mantener servidores y centros de datos físicos, puedes tener en cuestión de minutos acceso a servicios tecnológicos, como capacidad informática, almacenamiento de información o bases de datos en función de tus necesidades o las de empresa, todo ello a través de un proveedor de la nube como lo es Amazon Web Services, como es conocido AWS.

Amazon Web Services es uno de los precursores más importantes de la informática en la nube.

En el ano 2006, lanza los primeros servicios que ofrecen almacenamiento de datos en su infraestructura. Grandes multinacionales han hecho uso de los servicios proporcionados por AWS para maximizar el tiempo que utilizan para mejorar los productos que ofrecen a sus propios clientes, en lugar de administrar la estructura tecnológica, o incurrir en gastos para adquirirla.

Ventajas:

  1. Gastos variables vs, gasto de capital
  2. Economías de escala
  3. Dejar de prever la capacidad
  4. Incremento de la velocidad y agilidad
  5. Menores costos en gestión y manutención de centros de datos
  6. Alcance internacional

Infraestructura Global de AWS:

Ls infraestructura de AWS está construida sobre regiones y zonas de disponibilidad.

Región: Ubicación física, en algún lugar del mundo, que contiene otro componente de la infraestructura de AWS denominado zona de disponibilidad.

Diseño de las Regiones:

  1. Aisladas las unas de las otras
  2. Servicios con mayor tolerancia a posibles fallos
  3. Altos niveles de estabilidad

Ubicaciones Geográficas:

  1. Canadá
  2. Ciudades de estados Unidos como Ohio, Norte de Virginia, Norte de California, Oregón, entre otras. 3.Sao Paulo
  3. Irlanda
  4. Suecia
  5. España
  6. Italia
  7. Alemania
  8. Inglaterra
  9. Francia
  10. Mumbai
  11. Bahréin
  12. Singapur
  13. Indonesia
  14. Ningxia
  15. Hong Kong
  16. Seúl
  17. Osaka
  18. Tokio
  19. Australia

Dentro de cada región geográfica encontramos las zonas de disponibilidad. Una zona de disponibilidad es uno o mas centros de datos, cada uno con electricidad, red y conectividad redundante, dispuestos físicamente en zonas diferentes.

AWS posee alrededor de 60 zonas de disponibilidad dentro de 20 regiones geográficas alrededor del mundo; cada zona de disponibilidad está aislada una de la otra, pero las que se encuentra en una misma región están conectadas a través de enlaces de baja latencia.

Servicios de Computo que ofrece AWS:

  1. Amazon Elastic Compute Cloud. EC2
    Proporciona capacidad informática segura y de tamaño variable en la nube, tambien reduce el tiempo necesario para obtener e iniciar servidores virtuales o instancias de EC2 en tan solo unos minutos, lo que permite modificar rapidamente la capacidad y recursos cuando cambien los requisitos en las distintas cargas de trabajo que se desplieguen.

  2. AWS Lambda.
    Es un servicio basado en eventos que permite ejecutar código, sin necesidad de aprovisionar o administrar infraestructura. Se ejecuta el código sin tener que pensar en servidores. Una de sus ventajas es que es posible ahorrar costos al pagar solamente por el tiempo de procesamiento que se utiliza.

  3. Auto Scaling.
    Es una función que nos permitirá mantener la disponibilidad de la aplicación, agregando o eliminando automáticamente instancias EC2 segun las condiciones que definamos, monitorizando el estado de las instancias que se están ejecutando, sustituyendo las que están en mal estado y equilibrando la capacidad entre las diferentes zonas de disponibilidad en donde queremos desplegar nuestras instancias.

  4. Amazon Elastic Beanstalk.
    Este servicio permite implementar y escalar servicios y aplicaciones web desarrollados en Java, .NET, PHP, entre otros, en servidores familiares como Apache, Nginx, Passenger, IIS.
    con solo cargar el código el Elastic Beanstalk administrará de manera automática la implementación de las aplicaciones desde el aprovisionamiento de la capacidad, equilibrio de carga y escalado hasta la monitorisación del estado de la aplicación.
    En este servicio, también se paga solo por los recursos de AWS, que se necesita para almacenar y ejecutar aplicaciones.

  5. Servicios de Autenticación "Identify Access Management", IAM:

Es uno de los servicios mas importantes que debemos aprender, una de las caracteristicas mas importante que nos ofrece IAM es la posibilidad de agregar munti-factor authentication, este nos ayudará a agregar una capa de protección extra sobre los accesos a la consola de AWS que se hagan a través de usuario y contraseña.

  1. Amazon CloudWatch:

Es el servicio de monitoreo y observabilidad que ofrece Amazon Web Services. Proprociona datos e información procesable para que monitorees tus aplicaciones, respondas a cambios de rendimiento que afecten a todo el sistema y obtimices el uso de recursos, nos permite crear alarmas que nos permiten tomar acciones sobre los recursos de infraestructura que tenemos desplegados, asi como registrar logs de monitoreo utilizando registros de archivos personalizados, dentro de la consola podemos ver todas las alarmas, reglas de eventos, etc.

Servicios de almacenamiento de datos:

Una de las principales ventajas de Cloud Computing es la facilidad con la que podemos disponer de los servicios de almacenamiento de datos.

AWS Simple Storage o S3:

Es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y alto rendimiento, esta diseñado para ofrecer una durabilidad del 99.999999999%.
Puedes comenzar a utilizar S3 creando buckets y objetos. Un bucket es un contenedor de objetos y un objeto es un archivo y cualquier metadato que describe ese archivo. Ofrece distintas clases de almacenamiento para diferentes casos de uso, dependiendo de los requisitos de acceso y rendimiento que desees implementar. La clase de almacenamiento por defecto es el estándar, una de las mas importantes es Glacier Deep Archive, ya que este te permite archivar objetos a los que se acceden, con recuperación de horas.

AWS Elastic File Sysytem, EFS:

Este servicio proporciona un sistema de archivos muy simple, escalable y elástico. Se puede crear y montar un sistema de archivos en una instancia Amazon S2 y leer y escribir datos en su sistema de archivos. Todo esto dentro de nuestra nube virtual privada o VPC.

Servicios para base de datos:

  1. AWS Relational Database Service, RDS: Este es el servicio web que facilita la configuración, operaciones, escalabilidad de una base de datos relacional en la nube.

Al ser un servicio administrativo, la mayoria de las tareas administrativas, son responsabilidad de AWS, lo cual nos ayuda mas a centrarnos en nuestras aplicaciones y usuarios.

  1. DynamoDB y RDS: Son ambos servicios completamente administrativos por AWS. Esto hace que la administración que recae sobre el cliente sea mínima. Ambos son altamente confiables y escalables.

Con DynamoDB podemos crear tablas de bases de datos capaces de almacenar y recuperar cualquier cantidad de datos, y atender cualquier nivel de tráfico de solicitudes.

RDS es un servicio para creación de bases de datos relacionales, mientras que para DynamoDB es un motor de bases de datos no SQL.

  1. Amazon RedShift: Este es un servicio de Data Warehouse, con el cual podemos almacenar desde cientos de gigabytes hasta un petabyte, es decir, un millón de gigabytes.

Redes y entrega de contenido en AWS:

  1. Amazon Virtual private Cloud o Amazon VPC: Nos permite lanzar recursos de AWS en una red virtual que hayamos definido. Una nube virtual o VPC es una red privada dedicada en nuestra cuenta de AWS.

Es una infraestructura que se encuentra completamente aislada de forma lógica de otras redes que se encuentran dentro de AWS. Dentro de esta red podemos crear recursos como S2, RDS, Instancias de Redis, entre otros recursos.

Dentro de esta red podemos crear subredes las cuales son un rango de direcciones IP en la VPC, las cuales pueden ser públicas o privadas dependiendo si necesitamos que los recursos que se desplieguen dentro de ellas tengan acceso o no a internet.

Adicionalmente, tambien podemos crear grupos de seguridad, los cuales actuan como firewalls virtuales controlando asi el trafico que se permite hacia determinados recursos a los que se asocian estos grupos de seguridad.

Cada grupo tiene reglas de entrada y de salida. Estas reglas controlan el tráfico en función de los protocolos y números de puertos.

Servicios de Migración y transferencia de Datos:

  1. AWS Simple Queue Service, SQS: Es un servicio de cola de mensajes completamente administrado que permite desacoplar y ajustar la escala de microservicios, sistemas distribuidos y aplicaciones sin servidor.

SQS elimina la complejidad de los gastos generales asociados con la administracion del middleware orientado a mensajes y permite a los desarrolladores centrarse en las diferenciación del trabajo.

Podemos enviar, almacenar y recibir mensajes entre componentes de software de cualquier volumen sin perdida de mensaje, ni la necesidad de que otros servicios estén disponibles. Ofrece 2 tipos de colas de mensajes:

  1. Estandár: con una capacidad de procesamiento maximo, un ordenamiento de mejor esfuerzo y entrega al menos de una vez del mensaje que enviamos.

  2. FIFO: están diseñadas para garantizar que los mensajes se procesan exactamente una vez en el orden en el que se enviaron.

Herramientas para desarrolladores en AWS:

  1. Cloud9:
    Es un entorno de desarrollo integrado o IDE que ofrece AWS. Dentro podemos crear varios ambientes que nos permitirán codificar nuestro código.

  2. CodeCommit:
    El cual es un servicio de control de código fuente administrado, seguro y altamente escalable, que aloja repositorios Git privados.

  3. CodeBuild:
    Es el servicio administrado de copilacion de código, con este servicio podemos eliminar la necesidad de aprovisionar, administrar y escalar nuestros servidores de compilación. Proporciona entornos de compilación preconfigurados para lenguajes de programación y herramientas de compilación populares como Apache Maven, Gradle, etc.

  4. CodePipeline:
    Es un servicio de entrega continua, que podemos utilizar para modelar, visualizar y automatizar los pasos necesarios para lanzar software. Con esta herramienta podemos diseñar y configurar rápidamente las diferentes estapas de un proceso de lanzamiento de software, permitiéndonos automatizar los pasos necesarios los cambios de software de manera continua.

///
-Espero que mis apuntes te ayuden en tu investigación personal o tarea de colegiatura.

Si te gusto, apoyame con un like y sigueme. Gracias.
///

Material de estudio.
Fuente: Fundamentos de AWS Cloud Services.

Top comments (0)