¿Para que puede servir Amazon SNS?
Amazon SNS (Simple Notification Service) de Amazon Web Services es un sistema versátil diseñado para enviar eficientemente notificaciones o mensajes a usuarios y sistemas. Este es un resumen activo de sus capacidades, adecuado para usuarios de todos los niveles, desde principiantes hasta expertos:
- Notificaciones por Correo Electrónico o SMS: Amazon SNS toma la iniciativa para enviar alertas, confirmaciones y actualizaciones directamente a los usuarios.
- Mensajes a Aplicaciones Móviles: Amazon SNS activamente distribuye notificaciones push a dispositivos móviles, manteniendo a los usuarios al tanto de novedades o acciones necesarias.
- Automatización de Tareas: Amazon SNS se integra con otros servicios de AWS, automatizando tareas como la revisión del contenido que los usuarios suben a tu sitio web.
- Distribución Masiva de Mensajes: Amazon SNS optimiza la comunicación al enviar el mismo mensaje a múltiples suscriptores por diferentes canales al mismo tiempo.
- Gestión de Acceso y Seguridad: Amazon SNS asegura tu sistema de notificaciones controlando activamente quién tiene permiso para enviar y recibir mensajes.
- Monitoreo de Mensajes: Amazon SNS ofrece estadísticas detalladas sobre la entrega de mensajes, permitiéndote evaluar y mejorar la forma en que te comunicas con los usuarios.
¿Con que servicios de AWS puedes combinarlo?
Amazon SNS se integra perfectamente con varios servicios de AWS, potenciando soluciones escalables, eficientes y sofisticadas. A continuación, te presento cómo Amazon SNS activa y refuerza las capacidades de otros servicios de AWS:
- AWS Lambda: Amazon SNS activa funciones Lambda automáticamente, permitiendo el procesamiento de datos o la ejecución de tareas sin manejar servidores directamente.
- Amazon EC2 (Elastic Compute Cloud): Amazon SNS notifica a las aplicaciones en EC2 sobre eventos cruciales, facilitando una gestión eficaz y dinámica de recursos computacionales.
¿Quieres aprender sobre EC2?
Visita nuestro post en el que explicamos una guía sobre EC2, te será de ayuda para seguir este tutorial. Ir al post
- Amazon S3 (Simple Storage Service): Configurar notificaciones de SNS para reaccionar a eventos en S3, como la adición o eliminación de archivos, automatiza y simplifica los flujos de trabajo de datos.
¿Quieres aprender sobre S3?
Visita nuestro post en el que explicamos una guía sobre s3, te será de ayuda para seguir este tutorial. Ir al post
- Amazon CloudWatch: Integrar SNS con CloudWatch permite recibir alertas en tiempo real sobre el estado y rendimiento de aplicaciones y servicios de AWS, asegurando una operación continua y eficiente.
Integrando Amazon SNS con estos servicios, los desarrolladores pueden construir aplicaciones altamente responsivas y escalables, adaptadas a una amplia variedad de necesidades y escenarios.
Como configurar las alarmas
Para configurar alarmas que monitorean el comportamiento de tus recursos de AWS y envían notificaciones a través de SNS, usualmente trabajarás con Amazon Cloudwatch;
Paso 1: Crear un Tema de SNS
- Ir a la consola de Amazon SNS y seleccionar “Topics”.
- Haz clic en “Create topic”.
- Elige “Standard” como tipo de tema.
- Ponle un nombre al tema y crea el tema.
Debería acabar así (como esta en español aparece temas en ingles aparecerá themes;
Paso 2: Suscribirse al Tema de SNS
- Selecciona el tema creado y haz clic en “Create subscription”.
- En “Protocol”, elige el método de notificación (correo electrónico, SMS, etc.).
- En “Endpoint”, ingresa tu dirección de correo electrónico o número de teléfono.
- Crea la suscripción y confirma.
Debería quedarte de la siguiente forma antes de darle a crear la suscripción;
Una vez la creemos en la parte inferior del panel saldrá nuestras suscripciones mi caso es de correo y por razones obvias no se mostrara, para verificar que todo ha salido bien deberá llegarte un correo de verificación;
Paso 3: Crear una Alarma en CloudWatch
En nuestro caso crearemos la alarma en CloudWatch, ya que funciona perfectamente en sintonía con Amazon SNS;
- Ve a la consola de Amazon CloudWatch y selecciona “Alarms”.
- Haz clic en “Create alarm”.
- Selecciona “Select metric”, elige la métrica que deseas monitorear (por ejemplo, CPU Utilization de una instancia EC2).
- Configura las condiciones para la alarma (por ejemplo, cuando la utilización de CPU sea mayor que el 70% por más de 5 minutos).
- En “Actions”, elige “In alarm” y luego selecciona “Select an SNS topic”.
- Elige “Use an existing SNS topic” y selecciona el tema que creaste.
- Ingresa un nombre y una descripción para la alarma y finaliza la configuración.
Paso 4: Confirmar y Monitorear
Después de configurar la alarma y suscribirte al tema de SNS, recibirás notificaciones según las condiciones definidas.
Como recomendación para probar la alarma podríais descargaros;
sudo yum install stress -y
Luego de instalarlo;
-stress --cpu 1 --timeout 330s
Luego de eso deberas esperar aprox 5 minutos y llegara la alarma a tu correo electronico.
Propuesta de laboratorio para comprobar conocimientos de Amazon SNS
El laboratorio constara de varios servicios de AWS todos explicados a lo largo de la pagina web podrás utilizarla como tu bloc de notas el laboratorio es el siguiente;
Recomiendo encarecidamente que no visualices el siguiente texto ya que es una gran ayuda para el laboratorio en caso de que te encuentres perdido primero intenta solucionarlo con el contenido de informática tutoriales, si no puedes así podrás resolver el laboratorio;
Instrucciones del laboratorio PARTE I
- Crea la VPC según el diagrama de AWS:
- a. VPC y su CIDR IPv4
- b. Subredes públicas y privadas, con su CIDR IPv4
- c. Gateway de Internet
- d. Gateway NAT
- Crear un bucket para guardar imágenes. Recuerda habilitar las ACL y no bloquear el acceso público. Subimos una imagen al bucket, recuerda conceder acceso de lectura público a la imagen.
- Crea una distribución de CloudFront. Solo debes escribir el dominio de origen, que será el bucket.
- Lanza la primera instancia EC2, que será un web server. Tienes que crear un archivo HTML que muestre la imagen del bucket a través del nombre de dominio de la distribución de CloudFront. Debes enviar el archivo HTML al web server, puedes usar un bucket y el comando
aws s3 cp
desde la instancia, o puedes usar desde tu sistema local el comandoscp
. El archivo HTML debe estar en el directorio/var/www/html
. Cambia el nombre del archivo HTML aindex.html
. - Crea un archivo css y enlázalo al archivo HTML. Añade alguna propiedad sencilla de css a la página web.
- Lanza la segunda instancia EC2, que será otro web server. Realiza proceso que has seguido anteriormente. Este servidor web debe mostrar una página web con una imagen diferente.
- Implementa un balanceador de carga entre las dos instancias para redirigir el tráfico HTTP entre ellas.
PARTE II
- Lanza una instancia EC2 en una subred privada, con un par de claves nuevo, y que solo admita el tráfico SSH.
- Lanza una instancia EC2 «Bastion Host» en una subred pública. Realiza un ping desde tu máquina local al bastion host y adjunta captura.
- Te debes conectar a esta instancia EC2 por SSH, y a través de esta, conectarte por SSH a la instancia EC2 de la subred privada. Recuerda que es conveniente que envíes la clave SSH necesaria al bastion host para conectarte a la instancia privada, también debes ejecutar este comando:
chmod 400 tuclaveSSH.pem
antes de iniciar la conexión con la EC2 privada.
PARTE III
Descripción: Monitorizar el rendimiento de una instancia EC2, y lanzar una alerta en forma de correo electrónico para avisar al administrador del sistema.
- Lanza una instancia EC2 llamada «Test SNS» en una subred pública.
- Conéctate a la instancia EC2. Ejecuta el siguiente comando:
sudo yum install stress -y
. - Utiliza otra pestaña del navegador y busca el servicio de CloudWatch. Selecciona Crear alarma. Elige una métrica, que será CPUUtilization para instancias EC2. Una vez elegida, en InstanceId elige el ID de la instancia «Test SNS». Ajusta la condición para que la alarma se active cuando CPUUtilization sea mayor/igual a 50. Crea un nuevo tema de SNS, le damos un nombre y escribimos el correo electrónico donde queremos recibir la notificación. Al crear el tema, llegará al correo un mensaje para aceptar la suscripción al tema. Elige un nombre para la alarma y la creas.
- Vuelve a la instancia EC2. Ejecuta el siguiente comando:
stress --cpu 1 --timeout 330s
. Esto hará que el consumo de CPU aumente considerablemente. Espera unos 5 minutos y debes recibir el correo electrónico que ha desencadenado la alarma. Puedes verificar el consumo de CPU de la máquina desde CloudWatch o desde el servicio de EC2.
Conocimientos necesarios para hacer el siguiente laboratorio
- Amazon VPC: Crear y configurar VPCs, subredes, IGWs y NAT Gateways.
- Amazon S3: Manejar buckets, ACLs y configuraciones de acceso público.
- Amazon CloudFront: Configurar distribuciones con S3 como origen.
- Amazon EC2: Lanzar instancias, configurar seguridad y manejar acceso SSH.
- AWS CLI: Usar comandos para interactuar con servicios de AWS.
- Balanceadores de Carga: Implementar para distribuir tráfico entre instancias EC2.
- Amazon CloudWatch: Monitorear instancias y configurar alarmas.
- SSH/Bastion Host: Conectar a instancias EC2 en subredes privadas.
Estos conocimientos te permitirán manejar recursos de AWS, configurar la red y seguridad, y monitorear el rendimiento de aplicaciones en la nube.
¡Y hasta aquí el tutorial espero que te haya gustado y no dudes en contactar con nosotros para comprobar si el laboratorio es correcto gracias y hasta la próxima!