Trabajando con recursos de AWS
En esta sección se aprenderá sobre las herramientas que te permiten configurar y monitorizar tus recursos AWS.
Aunque cada servicio AWS tiene sus propios aspectos unicos de configuración, AWS ofrece dos herramientas muy comunes para interactuar con cada uno de estos servicios.
The AWS Management Console
La consola de administración AWS es una interface web con la que puedes gestionar y controlar todos tus recursos AWS.
Cada servicio tiene su propio service console.
Algunos servicios como CloudWatch y AWS Billing and Cost Management ofrecen reportes visuales que puedes consultar y descargar.
Casi todas las opciones de los recursos AWS pueden configurarse utilizando esta opción, sin embargo hay ciertos parámetros de algunos servicios que tendrán que hacerse mediante CLI.
Para acceder a la consola AWS puedes hacerlo desde:
Login AWS CliExisten dos formas de logearse:
Logearse como usuario raíz
Sólo es necesario email y contraseña asociada con la cuenta de AWS.
Es mejor no utilizar esta cuenta y en su lugar hacerlo con una cuenta IAM tal y como se explicó aquí:
Seguridad en AWSLogearse como usuario IAM
Para conectarse como usuario IAM se necesita un ID de cuenta o un alias y un nombre de usuario IAM y su contraseña.
Una vez se esté conectado la sesion permanecerá viva por 12 horas, después expirará automáticamente.
Resource groups
Esta opción te permite crear grupos y agrupar servicios en ellos para ver, administrar y aplicar acciones automáticas sobre este conjunto de servicios AWS.
Por ejemplo se suelen utilizar para agrupar todos aquellos servicios que forman parte de una misma aplicación.
Un grupo de recursos es una colección de recursos de AWS en la misma región que coincide con los resultados de una consulta.
Puede crear un grupo de recursos a partir de una consulta basada en etiquetas de recursos o desde una pila de CloudFormation.
Etiquetas
Como ya se ha comentado antes, las etiquetas se utilizan para etiquetas servicios. Un servicio puede tener hasta más de 50 etiquetas.
Puedes utilizar etiquetas para organizar los recursos según las siguientes categorías generales: técnica, automatización, negocio y seguridad.
Las etiquetas no tienen porque ser únicas y es posible llegar a etiquetas diferentes servicios con la misma etiqueta.
Confidencialidad: Si sus recursos que procesan o almacenan datos que tienen diversos requisitos de confidencialidad, puede utilizar etiquetas de recursos para designarlo. Por ejemplo, los recursos que son parte de una aplicación de registros médicos que procesa información sanitaria protegida (PHI) pueden ser etiquetados con el nombre clave Confidencialidad y el valor clave PHI .
Compliance: Si alguno de sus recursos debe adherirse a requisitos de cumplimiento específicos como la Ley de Portabilidad y Responsabilidad de los Seguros Médicos (HIPAA) o la Norma de Seguridad de Datos del Sector de las Tarjetas de Pago (PCI DSS), puede etiquetar esos recursos en consecuencia.
The AWS Command Line (CLI)
AWS proporciona acceso a las interfaces de programación de aplicaciones públicas para todos los servicios de AWS en un plazo de 180 días desde el lanzamiento del servicio.
Todo lo que puedas hacer en la consola de administración de AWS puede hacerlo desde su terminal utilizando la CLI de AWS. La CLI de AWS es útil para realizar tareas repetitivas, como lanzar instancias EC2 tomar snapshots de EBS, o adjuntar políticas a los usuarios de IAM.
Puedes introducir los comandos de la CLI de AWS manualmente para mayor comodidad, o puedes incorporarlos a un script para su automatización.
SDKs
Los kits de desarrollo de software de AWS simplifican el uso de los servicios de AWS en aplicaciones personalizadas.
Los desarrolladores de aplicaciones pueden utilizar un SDK para integrar sus aplicaciones con los servicios de AWS de manera fácil y fiable.
Los SDK evitan que los desarrolladores de aplicaciones tengan que escribir código de bajo nivel para interactuar directamente con los puntos de enlace de la API de los servicios de AWS.
En su lugar, el desarrollador solo utiliza el métodos bien documentados del SDK para aprender a incorporarlo a su aplicación.
AWS ofrece SDK para los siguientes lenguajes de programación populares:
Java
.NET
Node
PHP
Python
Ruby
JS
Go
C++
CloudWatch
Amazon CloudWatch es un servicio clave que le ayuda a planificar, monitorizar y ajustar su infraestructura y aplicaciones de AWS.
Le permite recopilar, buscar y visualizar datos de sus aplicaciones y recursos de AWS en forma de registros, métricas y eventos.
CloudWatch incluye los siguientes casos de uso:
Monitoreo y resolución de problemas de tu infraestructura: permite visualizar métricas de performance y descubrir picos y tendencias que puedan indicar un problema.
Monitoreo de la aplicación: te permite crear alertas sobre aquellos eventos o estados de salud de tu aplicación que definas.
Análisis de logs: buscar, visualizar y correlacionar los registros de múltiples fuentes para ayudar a solucionar problemas e identificar áreas de mejora.
Métricas CloudWatch
Es una característica que colecciona métricas de rendimiento tanto de recursos AWS como de otros recursos en servidores on-premise.
Una métrica es una variable que puede contener una colección de distintos data-points ordenados según la fecha de ejecución/aparición.
Cada data-point contiene:
Timestamp
Valor
Unidad de medida (opcionalmente)
Todos los recursos AWS automáticamente envían sus métricas a CloudWatch.
Alarmas CloudWatch
Las alarmas miran sobre el valor de una única métrica. Si la métrica sobrepasa cierto valor que hay que especificar y se mantiene por encima de ese valor durante cierto tiempo ejecutará una acción.
Por ejemplo, puedes configurar que una alarma haga algo cuando la utilización media de la CPU de una instancia sobrepase el 80% por 5 mnutos.
Las acciones puede ser las siguientes:
Notificación usando Simple Notification Service (SNS): SNS pueden enviar alertas a través de HTTP(S), Simple Queue Service (SQS), Lambda, Notificaciones Push, Email, Email-JSON y SMS.
Auto escalado: puedes configurar que una instancia EC2, por ejemplo, autoescale cuando sus recursos se quedan cortos.
Acción EC2: si estás supervisando una instancia específica que tiene un problema, puedes utilizar una acción de EC2 para detener, terminar o recuperar la instancia. La recuperación de una instancia migra la instancia a un nuevo host EC2, algo que puede ser necesario hacer si hay un problema de físico en el hardware que aloja la instancia.
CloudWatch Logs
Este servicio recolecta y almacena logs tanto de AWS como de servidores on-premise y hace que sea sencillo verlos, buscar en ellos y extraer métricas custom de ellos.
CloudWatch Logs permite recibir también logs de tus aplicaciones como por ejemplo los de acceso de un servidor apache.
Puedes organizar los logs por grupos y les puedes aplicar una retención (de persistencia) que irá desde 1 día hasta los 10 años de vida.
Puedes configurar filtros basados en métricas que actuen sobre los logs. Por ejemplo puedes hacer que del logs de acceso de un servidor de apache se cuenten cuantas veces aparece el código de estado http 403 y se envíe esta métrica a un dahsboard.
CloudWatch Events
La función CloudWatch Events le permite supervisar continuamente los eventos específicos que repre que representan un cambio en sus recursos de AWS, en particular las operaciones de API de solo escritura, y tomar una acción cuando se produzcan. Por ejemplo, una instancia EC2 que pasa del estado de ejecución al estado de estado detenido sería un evento.
Un usuario de IAM que inicie sesión en la consola de administración de AWS también sería un evento.
CloudWatch Events respode en tiempo real a las eventos que ocurren a diferencia de CloudWatch Alarms.