--- title: asixcloud-2025 tags: asix, cloud, aws description: View the slide with "Slide Mode". slideOptions: spotlight: enabled: true --- [TOC] # asixcloud-2025 ## formulari benvinguda https://forms.gle/SbmMePRGDkwjNxfF8 ## evidències diàries grup 15:30 - https://forms.gle/tBtFzdWi7gzbTq7H7 grup a - https://forms.gle/kt625knsu8tvCCen7 ## meet grup 15:30 meet.google.com/wai-dwbr-vqs ## meet grup a meet.google.com/xfi-tmvq-sor ## github corporatiu https://github.com/orgs/iticbcn/sso ## sessions ### sessió 01 - la teva 1era vm amb apache hack de marcos per windows ``` icacls labsuser.pem /reset icacls labsuser.pem /inheritance:r icacls labsuser.pem /grant:r "%USERNAME%:R" ``` Post-Sessió 01: ? com accedeixes al teu ordena amb windows? admin vs no-admin <!-- This is commented out. ``` ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDS1EvmSHFgWmISYLsl6UjrFQ4Uzn0/hjNNiUh8d/tO8Wfrw9KJKQgwWl4/P8tHRxC7HQGKAQe6kTEUR2whFWd2uEZ1Y3vvadB6yyK4vCGT1hhFLGjr8gUfPyrI8TnKUCjHTeeC6B1KDEyBDcq6Dwy7ebJlDkjWgsf8Sjw2h6ISFznLpDJ4vOclTvDbL2EzTvOLSt87IKsNB8960Tv6Jyl9zywYDDR389PnBPeeeYf64PHfSHcIDsVadiIpEL+iRB/ERaE34bzNHnM23oU2vjmiM+IxbNp13XR8nkT6QmkZJ+yrT2ccJNkhY8UHym0SdQGTE5WMdJ7RoU0FmbUuQyt7 ``` --> ### sessió 02 - VPC, subnets, IGW, NatGW, route tables, security groups **repte**: pots desplegar una ec2 en una subnet pública (amb apache) i una ec2 en una subnet privada (amb mysql/postgresql) en una vpc que tinga el rang d'ips de la ip de xarxa que t'he assignat? Alguns Links: https://awsfundamentals.com/blog/amazon-vpc-introduction-part-1 https://awsfundamentals.com/blog/introduction-to-the-aws-virtual-private-cloud-vpc-part-2 https://awsfundamentals.com/blog/amazon-vpc-introduction-part-3 https://awsfundamentals.com/blog/vpc-endpoints https://awsfundamentals.com/blog/gateway-endpoints-vs-internet-routing-s3 ssh Jump host ``` ssh -i ./privada.pem -J ubuntu@3.85.210.64 ubuntu@10.50.137.27 ``` ssh agent a windows ``` habilitar el servei sempre openssh server agent!!!! iniciar servei openssh-agent (mirar imatge de a sota) ``` ![image](https://hackmd.io/_uploads/BykiTyy2xe.png) carregar la clau a l'agent ``` ssh-add ./demo2.pem ``` ### sessió 03 - La meva primera base de dades relacional gestionada (per aws) ! Objectiu: crear una base de dades relacional gestionada per aws ### sessió 04 - La meva primera lambda !! Objectiu: Primer codi amb Serverless - Executa codi sense preocuparte de la infraestructura que el suporta (ec2/ecs/eks) links complementaris: https://httpie.io/ https://curl.se/ links avançats: [lambda bàsic i avançat](https://aws.amazon.com/lambda/getting-started/) [aws sdk](https://aws.amazon.com/es/sdk-for-python/) ### resum de les sessions actuals (01-03) cloud foundations sessió 02 -> Lab 2: Build your VPC and Launch a Web Server sessió 01 -> Lab 3: Introduction to Amazon EC2 sessió 03 -> Lab 5: Build Your DB Server and Interact With Your DB Using an App ### sessió 05 - Alta disponibilitat (>1 AZ) i alta escalabilitat (múltiples instàncies per AZ) **objectiu**: descobrir els elements que conformen una arquitectura altament disponible i altament escalable de 2 capes (front-end: apache i php) i back-end(db (redundant en aquest cas)) **Activitat**:- CloudFoundations - Mòdul 10 - Lab 6: Scale and Load Balance Your Architecture ### sessió 06 - avaluació (a.k.a. examen) **Objectiu**: Crea dues bases de dades en una RDS de tipus Ubuntu a través d'una ec2 en una subxarxa pública. **activitat proposta (homework)**: Cloud Foundations - Mòdul 6 - Còmput - Activitat AWS Elastic BeanStalk https://awsacademy.instructure.com/courses/137887/assignments/1595485?module_item_id=13276340 ### sessió 07 - EBS **objectiu**: descobrir quin és l'element d'emmagatzematge que acompanya a les instàncies (dispositiu de blocs) **Activitat**: cloud Foundations - Mòdul 7 - Storage - Lab - 4 Working with EBS ### sessió 08 - IAM - Gestió d'identitats i autoritzacions **objectiu**: descoberta del servei principal de AWS que afecta a tota la resta de serveis. **Activitat**: Cloud Foundations - Mòdul 4 AWS Cloud Security - Lab 1 - Introduction to AWS IAM Recursos alternatius: [Iam Explained](https://www.youtube.com/watch?v=hAk-7ImN6iM) [awsfundamentals](https://awsfundamentals.com/blog/aws-iam-policies-a-practical-approach) ### sessió 09 - Storage i CICD - S3 i amplify **objectiu**: com tindre una web estàtica a aws de 3 maneres (una d'elles òptima) material: https://html5up.net 1) s3 - website stàtica https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html https://www.youtube.com/watch?v=H83xYoC3z4A ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] } ``` 2) amplify (s3) - website amb cache i certificat https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify.html https://www.youtube.com/watch?v=hpP6dNJ16-0 3) amplify2 (github) - website ... - ### sessió 10 - Storage - DynamoDB (algú ha dit disponibilitat?) **objectiu:** Presentar el servei de AWS d'emmagatzematge NoSQL. **objectiu accidental:** Recordar que la alta disponibilitat implica múltiples zones i multiples regions** [DynamoDB outage - el país](https://elpais.com/tecnologia/2025-10-20/un-fallo-en-amazon-web-services-ocasiona-problemas-en-numerosos-servicios-y-aplicaciones-en-internet.html) [DynamoDB outage - la vanguardia](https://www.lavanguardia.com/vida/20251020/11176037/caida-mundial-nube-amazon-provoca-fallos-multiples-plataformas.html) [DynamoDB outage - The verge](https://www.theverge.com/news/802486/aws-outage-alexa-fortnite-snapchat-offline) ![Captura de pantalla de 2025-10-20 16-35-31](https://hackmd.io/_uploads/HkgeKTmAgl.png) skillbuilder - skillbuilder.aws tancament complet sessió skillbuilder https://profile.aws.amazon.com/#/profile/details #### documentació complementària [genial article DynamoDB](https://medium.com/@syedshamail3/understanding-the-internal-architecture-of-amazon-dynamodb-e9dccb8be8de) ### sessió 11 - azure intro **Objectiu:** Descobrir un altre dels hyperscalers de la mà dels laboratoris d'skillable mínim labs 1-3 de AZ900 ### sessió 12 - Còmput - ECS - Intro als contenidors amb infraestructura gestionada (AWS FARGATE) **Objectiu** Desplegar (implantar) contenidors a AWS primers contenidors de ... ``` 1) nginx 2) traefik/whoami 3) stefanprodan/podinfo ``` ### sessió 13 - Còmput - ECS - Intro als contenidors amb infraestructura gestionada (AWS FARGATE) - segona part **Objectiu** Desplegar en alta disponibilitat (LB multizona) contenidors mitjançant ECS gestionat (FARGATE) ### sessió 14 - Còmput - ECS - Intro als contenidors amb infraestructura gestionada (AWS FARGATE) - tercera part **wp a ecs** ### sessió 15 - IaC - Terraform https://cloudcasts.io/course/terraform https://developer.hashicorp.com/terraform https://hackmd.io/@joaniznardo/terraform-20242025 https://www.jetbrains.com/shop/eform/students ``` sed -i '/^$/ d' cloudcasts.tf ``` creació infraestructura ``` terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 3.0" } } } provider "aws" { profile = "default" region = "us-east-1" } data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } filter { name = "architecture" values = ["x86_64"] } owners = ["099720109477"] # Canonical official } resource "aws_instance" "cloudcasts_web" { ami = data.aws_ami.ubuntu.id instance_type = "t3.micro" lifecycle { create_before_destroy = true } root_block_device { volume_size = 8 # GB volume_type = "gp3" } } ``` ### sessió 16 - IaC - Terraform (2) https://kodekloud.com/studio/labs/terraform https://antigravity.google/ ### sessió 17 - IaC - Terraform (3) Objectiu: desplegar un wordpress a AWS via terraform amb l'ús de mòduls i per etapes de manera que puguem reutilitzar infraestructura 1) vpc amb mòduls 2) rds amb mòduls 3) ec2 amb mòduls 4) lb amb mòduls ### sessió 18 - Route 53 - DNS a AWS Objectiu: Divertir-nos delegant un subdomini del nostre .cat a Route53 ``` #0 partim dels fitxers del cert a /tmp (cd /tmp) #1 copiar el cert - www-aws01.cert a el cert de la web (/etc/ssl/certs/ssl-cert-snakeoil.pem) sudo cp /tmp/www-aws01.cert /etc/ssl/certs/ssl-cert-snakeoil.pem #2 desxifrar la clau amb openssl openssl rsa -in www-aws01-privada.pem -out www-aws01-unencrypted-privada.pem #3 copiar la clau al fitxer indicat al fitxer de configuació de la web d'apache key (/etc/ssl/private/ssl-cert-snakeoil.key) sudo cp /tmp/www-aws01-unencrypted-privada.pem /etc/ssl/private/ssl-cert-snakeoil.key ``` ![Screenshot_2025-11-27_19-38-30](https://hackmd.io/_uploads/ryvR5MUZWx.jpg) ![Screenshot_2025-11-27_19-38-20](https://hackmd.io/_uploads/SJsR5M8ZWg.jpg) ### sessió 19 - Route 53 (II) - DNS a AWS Objectiu: Dominar alguns usos de R53 i Cert Manager - dotar d'un domini i certificat a una web desplegada amb amplify - dotar d'un domini i certificar al desplegament del "pulpito" en alta disponibilitat ### sessions 20,21,22 - Repte consolidació: curriculum-aws ``` curriculum-itic - el repte (6 hores de classe - 3 sessions) https://cloudresumechallenge.dev/docs/the-challenge/aws/ Presentació i defensa: dilluns 12 de gener (5min) Importantíssim: progrés: google docs (amb el seu historial) i penjar pdf diari (complet) Mostra el teu currículum online a aws: X1X. Certification (si la teniu...) 2. HTML 3. CSS 4. Static Website 5. HTTPS 6. DNS 7. Javascript 8. Database 9. API 10. Python 11. Tests 12. Infrastructure as Code 13. Source Control 14. CI/CD (Back end) 15. CI/CD (Front end) X16X. Blog post 2,3,5,7,13 - github - emmagatzemar el teu cv (generador i generat) possibilitats de generació: (+++) gohugo, jekill ... (+) ia el més paregut possible al que presentaries sense dades personals - la foto pot ser un dibuix (exemple plantilla: https://themes.gohugo.io/themes/careercanvas/ https://www.felipecordero.com/) 4 - amplify 5 - certificat pel domini de sota 6 - route53 - subdomini cv.aws10.xxxxx.cat 8 - dynamodb - amb còpia de seguretat de la bbdd ampliació: allotjar múltiples currículums 9 - API - ApiGateway 10 - Lambda 11 - CI/CD - test de python 12 - terraform - desplegament de la infraestructura (4,5,6,8,9,10) Avançat (github actions): - desplegament en fer un push de la Infraestructura (modular?) - (pre-creat) s3 versionat amb lock (sense dynamodb) per emmagatzemar l'estat Millores addicionals: - estimació del cost de la solució: https://calculator.aws/ - s'accepten propostes... però sempre que la part bàsica estiga feta Help: API/DynamoDB/Lambda https://skillbuilder.aws/learn/J76QXZJBXA/aws-simulearn-api-with-database/6APQE2E9RA TIP CLOUDFLARE: variable d'entorn pel flarectl: CF_API_TOKEN variable d'entorn per terraform: CLOUDFLARE_API_TOKEN evitar que se queden a l'historial: posa un espai en blanc davant de l'ordre (representat per X a sota) Xexport CF_API_TOKEN="elteutoken" Xexport CLOUDFLARE_API_TOKEN=$CF_API_TOKEN ``` TIP: windows :heart: linux https://learn.microsoft.com/es-es/windows/wsl/install ### sessió 23 - Bola extra ;) / aws session manager objectiu: basat en l'article següent accedir des del teu ordena a un servidor web que està en una subxarxa privada a través d'una altra ec2 en una subxarxa privada sense necessitat de claus publiques/privades article: https://awsfundamentals.com/blog/your-rds-is-in-a-private-subnet-now-what ### extra (podeu enviar-me captures del progrés ;) (no baixa nota :) (free tier) 100 days of cloud - aws challenge: https://engineer.kodekloud.com/ gamified cloud - https://pshenok.github.io/server-survival/ ... https://github.com/pshenok/server-survival ### sessió 24 - Bola extra 2 ;) finalització de la revisió del cv-challenge ### preparació sessió 25 - K8s mirar de manera activa :smile: el video: https://www.youtube.com/watch?v=DCoBcpOA7W4 complement interactiu: https://kodekloud.com/free-labs/kubernetes/ ### bonus :+1: explora https://opencode.ai/ ...i aprofita el copilot (...i els models que configures) de l'student pack que t'ofereix github per pertàyner a l'organització iticbcn de github ### sessió 25 - Kubernetes 01 https://www.k8s.guide/ https://kubernetes.io/ https://minikube.sigs.k8s.io/docs/ ### sessió 26 - activitat skillbuilder Objectiu: Completar l'activitat següent i penjar el resum al formulari. **Amazon DynamoDB: Building a Serverless Web Application** https://skillbuilder.aws/learn/2Q4TXVZG8E/amazon-dynamodb-building-a-serverless-web-application/T76FV32WVZ L'activitat te la tasca 6 que és molt interessant. :relaxed: NOTA: Només en el cas que ja la heu fet amb anterioritat aquí teniu una llista de propostes: cal fer el nombre de labs que calgui fins completar un mínim de 2h30m de labs (sí la classe és de 2 hores però sempre donen prou de marge) https://skillbuilder.aws/learn/2B5XUE2V9C/lab--deploy-applications-on-amazon-elastic-kubernetes-service-eks/SM5HZNTY9J https://skillbuilder.aws/learn/CV6ZEU3NHE/working-with-amazon-elastic-container-service/X989GB8H74 https://skillbuilder.aws/learn/XHQV2RKK2Q/building-and-deploying-containers-using-amazon-elastic-container-service/HY76WF7CNF https://skillbuilder.aws/learn/HMNAQW4RXT/deploying-your-first-aws-lambda-container/SU2AMJFY5J https://skillbuilder.aws/learn/AA9JQYUE3T/lab--securing-web-application-with-aws-network-firewall/Z2ATTMMJXG https://skillbuilder.aws/learn/SNRBSYWGST/lab--configure-dns-and-routing-policies-with-amazon-route-53/ZFUGPHK41A https://skillbuilder.aws/learn/VQ1URQKWXT/caching-static-files-with-amazon-cloudfront/G9Z699UYUY https://skillbuilder.aws/learn/Q1P2AS81XZ/lab--vpc-logging-and-troubleshooting/4QEJ7FMTKS https://skillbuilder.aws/learn/5X877YE7WF/troubleshooting-website-reachability-behind-a-load-balancer/YSHKW7NQ7N https://skillbuilder.aws/learn/M6PSFK9M37/aws-network-firewall-fundamentals/BQMRF4VPVU https://skillbuilder.aws/learn/DSREJKA9N8/aws-network-firewall-for-ingressegress-traffic/6ARQD2DP8Y https://skillbuilder.aws/learn/S1R2EF3PAH/configuring-and-deploying-amazon-vpc-for-a-3tier-web-app/V1R25V1GBK https://skillbuilder.aws/learn/9ADYVVU545/lab--vpc-lattice-service/WTXST811AA https://skillbuilder.aws/learn/NVJ224EA5N/introduction-to-amazon-cloudfront/7JNHFE69BD https://skillbuilder.aws/learn/49UPDB8UTA/aws-identity-and-access-management--cognito-getting-started/D1BRS1F1Z9 https://skillbuilder.aws/learn/U6KEYB15MH/zero-trust-architecture-for-servicetoservice-workload/EKTD9XHX7Z https://skillbuilder.aws/learn/1FXVEYJNU3/auditing-your-security-with-aws-trusted-advisor/YUP5HJZ2ZM https://skillbuilder.aws/learn/QR33U9CVP8/my-bucket-my-rules/AVC72HKPV5 ### sessió 27 - Kubernetes 02 objectiu: completar el 3 darrers reptes del labs de kodecloud https://kodekloud.com/studio/labs/kubernetes amb el temps sobrant pots: - instal·lar k9s (panell de control textual) a la vm d'IsardVDI de k8s https://k9scli.io/ - instal·lar podman-desktop (panell de control gràfic) https://podman-desktop.io/ - https://podman-desktop.io/docs/installation/linux-install ### sessió 28 - Kubernetes 03 Objectiu: descobrir la persistència a k8s https://hackmd.io/@joaniznardo/volums-a-k8s ### sessió 29 - Kubernetes 04 - EKS 01 Objectiu: crear clÚsters de k8s a AWS Part 1: Click-Ops (cluster a través de la consola d'aws) agafar el deployment i el service de ... https://medium.com/@ismaelaguilera_/podinfo-primeros-pasos-con-kubernetes-c9c341aff5d6 Part 2: eksctl (utilitat per gestionar clústers a eks: deplega clusters mitjançant cloudformation) https://hackmd.io/@joaniznardo/asixcloudk8s#sessi%C3%B3-02 ### sessió 30 - Kubernetes 05 - EKS 02 **Objectiu**: Desplegar un clster de k8s a eks i desplegar un wordpress en alta disponibilitat amb persistència de la base de dades material: https://github.com/joaniznardo/demo-eks-amb-wp **mini repte**: desplegar un nginx al k8s desplegat a eks que tinga persistència: que puges eliminar un/el pod desplegat i que continue mostrant una pàgina web en la que has fet un canvi després de desplegar-la propostes: - desplegar un https://hedgedoc.org/ a minikube - desplegar un https://hedgedoc.org/ a eks - desplegar un (aplicació que te mole que tinga frontal i bbdd) a minikube - desplegar un (aplicació que te mole que tinga frontal i bbdd) a eks