AMSA
Exam Example and Cheat-Sheet (January)
Week’s slides
| Week | Non-Important Content (for exams) |
|---|---|
| 9 | - |
| 10 | - |
| 11 | - |
| 12 | IAM |
| 13 | - |
Command Reference
We can split the command reference between the following ones:
Exam Style
1) Compartint fitxers entre host i contenidor:
Tens el segĂĽent script Python:
with open("data.txt") as f:
print(f.read())Crea una imatge Docker mĂnima que executi aquest script.
No copiĂŻs data.txt dins de la imatge.
Executa el contenidor de manera que l’arxiu
data.txtdel host es vegi dins del contenidor.El contingut de
data.txtés: “Hola, Docker!” i s’ha de mostrar a la terminal quan s’executa el contenidor.- Quina és la comanda per construir la imatge Docker? I per executar el contenidor amb l’arxiu
data.txtdel host muntat dins del contenidor? - Cal reconstruir la imatge Docker si es modifica el contingut de
data.txtal host? Justifica la teva resposta. - Quina diferència té incloure l’arxiu
data.txtdins de la imatge Docker o en la execució del contenidor? Quin impacte té això en el temps de construcció i la mida de la imatge Docker?
- Quina és la comanda per construir la imatge Docker? I per executar el contenidor amb l’arxiu
2) Perquè m’està fallant el següent docker-compose.yml? Com miraries els logs? Com ho arreglaries? Tingues en compte que:
- El servei
apimai arrenca, no exposa en cap moment el port 8000… - El servei
apisap connectar-se a una base de dades MariaDB SQL correctament configurada. - El port de MariaDB és correcte, és el 3306.
- L’imatge del registry:
pablo/amsaapi:latestexisteix, i és correcta.
services:
api:
image: pablo/amsaapi:latest
ports:
- 8000:8000
environment:
- PROD=true
- DB_HOST=localhost
- DB_PORT=3306
- DB_NAME=appdb
- DB_USER=appuser
- DB_PASSWORD=apppassword
depends_on:
- db
db:
image: mariadb:11
environment:
MARIADB_DATABASE: appdb
MARIADB_USER: appuser
MARIADB_PASSWORD: apppassword
MARIADB_ROOT_PASSWORD: rootpassword2.1) A més del propi error, es poden millorar dues coses, pots dir quines són?
3) Què passa si la meva arquitectura que tinc montada a AWS passa de la primera imatge a la segona? Explica-ho en menys de 3 lĂnies.
Before: 
After: 
4) Digues si és verdader o fals:
- Si executem la comanda
uname -ra(utilitzada per mostrar informaciĂł sobre el kernel que estĂ corrent al sistema) dins d’un contenidor, aquesta pot mostrar diferents valors en funciĂł de la nostra imatge base, per exemple si estic executant una imatge OCI basada enubuntu:22.04(la distribuciĂł de linux ubuntu 22.04, ve amb la versiĂł de kernel5.15) en la meva distribuciĂł de linuxarch(amb kernel 6.18.0), la comandauname -radins del contenidor donarĂ un output de5.15. - A Docker Compose, Ă©s estritcament necessari especificar explĂcitament les xarxes perquè els contenidors es puguin comunicar entre ells.
- ECS és un servei que únicament ens cobra per les requests http/s que rep.
- ECS permet crear una task a partir de qualsevol imatge de qualsevol registry.
- RDS, per tal i com el tenim configurat a la prà ctica 4.4, és resilient a caigudes de Availability Zones.
5) Quin seria el millor servei dels explicats a classe (EC2, ECS, Lambda, etc.) per fer el desplegament d’una aplicació que:
Estigui tot el dia analitzant datasets, amb un volum de peticions constant.
Implementi un bot de Discord, que ha d’estar sempre disponible però amb cà rrega moderada.
Sigui un e-commerce, on el trà nsit és variable i pot augmentar molt en moments puntuals.