Salta al contingut principal

AWS/ Lab 4 - ELB(Balanceador de carga) y Auto Scaling Group

1.Lanzar 2 instancias EC2 diferentes

    Antes que nada vamos a crear unos textos diferentes para una instancia y otra. Vamos al servicio EC2 en nuestra cuenta IAM en la consola AWS y hacemos clic en Lanzar instancias de Ubuntu server 24.04. Le damos un nombre "Mi instancia 1". La vamos a crear sin par de claves pese a que ya sabemos que no es lo recomendado. Nuevo grupo de seguridad. Activamos permitir el tráfico HTTP. Le damos a "detalles avanzados", vamos donde dice Datos de usuario y pegamos el texto que hemos creado antes-> Lanzar instancia. Y ahora repetimos el proceso con otra, instancia llamada "Mi instancia 2", pero añadiendo ésta al mismo grupo de seguridad que la primera "launch-wizard-3. Y en esta le ponemos el otro texto. Comprobamos que funcionan. Copiando las direcciones IP públicas(Una vez en funcionamiento).

2.Creación ALB

    En EC2 donde dice Equilibrio de carga-> Balanceadores de carga-> Crear balanceador de carga. Y le damos a ALB(Application Load Balancer/Balanceador de carga de aplicaciones). Le voy a dar de nombre ALBLab4. Estará expuesto a Internet y de IPv4. Y vamos a seleccionar us-east-1a y us-east-1b(mínimo). Donde dice grupos de seguridad(en la creación del ALB, le damos a "cree un nuevo grupo de seguridad", esto nos abrirá otra pestaña donde configurar este grupo. Le pondremos de nombre Gruposeguridad-ALB-Lab4. Esto permitira el HTTP dentro del ALB. Creamos la regla que será una de entrada de HTTP para 0.0.0.0/0(Cualquier origen). Unimos el ALB a ese grupo creado. Y luego donde dice Agentes de escucha y direccionamiento->Crear un grupo de destino(también se nos abrirá otra ventana nueva). Le damos el nombre "TargetGroupLab4" y lo dejamos tal cual está, con HTTP. Incluimos como pendientes las 2 instancias que hemos creado, lo creamos y una vez creado volvemos otra vez a la pestaña por donde estabamos creando el ALB y ponemos el TargetGroup4 como grupo de destino. Copiamos el nombre del ALB: ALBLab4-493378900.us-east-1.elb.amazonaws.com. Y si lo refrescamos varias veces vemos como se van alternando las intancias, con los diferentes textos. Texto 1 y texto 2.

3.Plantilla de lanzamiento

    En EC2 vamos a la izquierda en el mismo sitio donde dice instancias, hay un lugar que dice Plantillas de lanzamiento, vamos a crear una. Le damos de nombre Plantilla-Lab4, seleccionamos el tipo de AMI que hemos usado para crear las instancias: Ubuntu server. Y tipo de servidor t2.micro(de capa gratuita). De grupo de seguridad el "launch-wizard-3". Y pegamos el texto de datos de usuario anterior.

4.Auto Scaling Group!

    Después de crear el template. Vamos a Grupos de Auto Scaling y creamos uno que vamos a llamar ASG-Lab4. Seleccionamos Plantilla-Lab4 como plantilla de lanzamiento. Ponemos 2 subredes diferentes como zona de disponibilidad(para alta disponibilidad). La asociamos a un balanceador existente y elegimos el grupo destino que hemos creado antes TargetGroupLab4. Activamos las comprobaciones de estado de ELB. Configuramos el tamaño del grupo: de capacidad deseada 2, de mínima capacidad 1 y de máxima 3. Seleccionamos una política de escalado de seguimiento de destino(Target Tracking Policy), tipo de métrica Utilización de CPU y como valor destino 70%. Todo lo demás, siguiente y siguiente. Ahora Launch Template crea 2 instancias nuevas que sustituyen a las que ya teníamos y se registrarán en el Target Group del ALB. Y lo que pasará es que si la CPU supera el 70%, el ASH añadirá otra instancia automáticamente.

5.Instance connect

-Una vez configurado si voy a una de mis instancias y la selecciono, puedo darle donde dice conectar, una vez nos conectemos con IP pública podremos entrar vía Instance Connect. Una vez dentro hacemos un sudo apt-get update && sudo apt-get install -y stress-ng. Una vez tengamos instalado stress-ng, lo ejecutamos durante 5 minutos con el comando stress-ng --cpu 1 --timeout 300s. Esto hará que a parte de las instancias que tenemos se creará otra más(se escalará a 3). Se autoescalará debido a stress-ng porque superará el 70% de CPU.

Con esto creamos un servicio altamente disponible con EC2, ELB y ASG.

 

 

 


Comentaris

Entrades populars d'aquest blog

Projecte Flask + S3 #3: Del servidor local a S3

  Aquesta és la tercera part que parlo del projecte. Si encara no estàs seguint-lo, et recomano que miris les entrades anteriors dedicades al tema. A la primera part vam configurar l’entorn i decidir les pautes. A la segona , dedicàrem el seu temps a la importància de fer una bona classe S3Client i uns tests de pytest correctes. A l’hora de pensar en desenvolupar l’app , hem de canviar la manera de pensar. Passem d’una filosofia de backend en la que pensem únicament en Python - A una full-stack amb Flask. Què és un full-stack ? La seva traducció literal és una “pila complerta”, es refereix a quan en programació s’escriu un codi des de zero. I disposa de tres parts:  Front-end , la interfície d'usuari, és el que interactua directament des del seu dispositiu i en el nostre cas és HTML/Jinja2. Back-end , el cervell que s'encarrega de processar les peticions del Front-end, executar la lògica de l’aplicació, les autoritzacions i la connexió amb la base de dades. Base de dades , ...

Projecte Flask + S3 #2: El cervell i la xarxa de seguretat

  Aquesta és la segona part del projecte. Si has parat aqui et convido a consultar la primera entrada , on vam configurar l’entorn i vam establir els requisits previs. Ara passem a la implementació del codi. Objectiu d’avui/Introducció Documentar la creació del backend . Tot el desenvolupament del codi i que faré menció el podeu trobar al repositori corresponent al meu perfil de Git , o sigui que pots anar directament allà o obrir-lo a una finestra mentre veus els comentaris que descric. No vull deixar-me a aquesta introducció la importància que ha tingut pel bon i correcte desenvolupament del codi:  La documentació oficial d’ Amazon Web Services de Boto3  i les seves guies de millors pràctiques, per exemple . La Classe S3Client i la seva importància La finalitat de crear una classe S3Client com a façana/embolcall(més conegut com a Wrapper) és que amaga tota la complexitat de boto3. Faig un parèntesi, diguem que:  Estem creant "un embolcall dins d’un altre embol...

Droidian, cap a l'ordinador a la butxaca o no

  Al nostre dia a dia, poc ens parem a pensar en un company que ens fa la vida més fàcil , ens facilita l'accés a la informació, ens connecta amb els amics locals i d'arreu del món. Hi podem escoltar música, el podem utilitzar de GPS, hi podem editar vídeos o fins i tot dibuixar-hi (tot i que encara no es gaire còmode), podem consultar les nostres pàgines web favorites, aprendre nous idiomes... Si ens hi fixem, encara podem seguir dient més sobre els smartphones. En les seves característiques negatives podem trobar addiccions, estimulacions constants, desconnexió del món real , control sobre nosaltres i de la nostra privacitat. Potser estic fent una introducció massa llarga únicament per descriure i per posar en valor el hardware que tenen aquests petits dispositius. Si parlem d'hardware (o de maquinari) i comparem els primers models amb els dels últims 5 anys, ja estem parlant de supercomputadores . Sense anar més lluny, fa uns pocs mesos, va sortir al mercat el Macbook Ne...