---
# System prepended metadata

title: asixcloud-2025
tags: [asix, ' aws', ' cloud']

---

---
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