Skip to content

~/nube/p00 $ cat 06-actividades-y-evaluacion.md

  • Introducción a la nube pública
  • P00
  • lección 06/06

Actividades finales y AWS Academy

Actividades individuales, reto final y protocolo responsable de AWS Academy.

El trabajo responsable empieza antes de crear un recurso. En Learner Lab, cada activación comienza con Start Lab y dura hasta cuatro horas; al finalizar el tiempo o usar End Lab, los recursos se detienen pero permanecen creados. Algunos recursos detenidos pueden seguir generando coste.

El crédito disponible es de 50 USD por estudiante. Antes, durante y después de una práctica se debe revisar qué recursos existen y si pueden tener coste.

Para cada práctica en AWS se seguirá este protocolo:

  1. Antes de iniciar: anota los recursos ya existentes, comprueba la región prevista y define qué crearás, cómo lo verificarás y cómo lo eliminarás.
  2. Durante la práctica: usa únicamente us-east-1 o us-west-2; cuando un servicio requiera rol, utiliza LabRole. No crees roles IAM propios, no uses AMI de Marketplace y no inicies veinte o más instancias simultáneas.
  3. Al comprobar: registra el recurso creado, la prueba funcional realizada y cualquier coste o limitación observada. No expongas direcciones, credenciales ni ficheros privados en los productos que guardes.
  4. Al cerrar: detén y elimina los recursos creados cuando corresponda; vuelve a inventariar para confirmar que no queda nada pendiente. No confundas «detenido» con «sin coste».

Plantilla de bitácora para cualquier práctica

Section titled “Plantilla de bitácora para cualquier práctica”

Cada producto AWS puede empezar con estas cinco líneas. Completarlas antes de una captura evita que quede sin contexto:

## Objetivo
## Región y límites comprobados
## Recursos y cambios realizados
## Prueba funcional y resultado
## Limpieza y comprobación final

No incluyas identificadores personales, credenciales, tokens ni datos de otras personas. Si una acción queda denegada, anota el mensaje resumido, su causa probable y la comprobación alternativa utilizada.

AWS CLI no es un requisito de P00. Cualquier automatización local será una extensión opcional de DAM tras validar credenciales temporales y permisos.

Realiza estas actividades individualmente y guarda los productos solicitados en el repositorio como Markdown. No incluyas claves, tokens, contraseñas ni datos personales.

Desde el anfitrión, crea el contenedor Debian, entra en él y crea p00-puesto-nube/evidencias/rf00-contenedor.md dentro de /optativa-nube. Sal y vuelve a iniciarlo. Demuestra que el fichero persiste y que el contenedor queda detenido, no eliminado, al usar exit.

  • RA0/CE: a, d, g.
  • A entregar: p00-puesto-nube/evidencias/rf00-contenedor.md, con imagen usada, nombre del contenedor, carpeta personal de alumno y comprobación de optativa-nube/.
  • Comprueba antes de entregar: diferencia imagen, contenedor, volumen y carpeta compartida; no uses docker commit ni publiques información sensible.

Construye /optativa-nube/p00-puesto-nube y documenta una operación de navegación, creación de estructura y consulta de información del sistema desde Bash dentro de p00-lab. Después crea scripts/registrar-entorno.sh, valida su sintaxis y ejecútalo para generar un registro mínimo.

  1. Demuestra una ruta absoluta y una ruta relativa hacia evidencias/.
  2. Crea o actualiza evidencias/rf01-shell.md usando > una sola vez y >> para añadir información sin sobrescribirla.
  3. Ejecuta bash -n scripts/registrar-entorno.sh, comprueba el código de salida y ejecuta el script con Bash.
  4. Revisa el archivo de inventario creado, explicando qué información se ha incluido y qué datos sensibles se han excluido.
  • RA0/CE: a.
  • A entregar: evidencias/rf01-shell.md, scripts/registrar-entorno.sh y el inventario generado por el script.
  • Comprueba antes de entregar: rutas y redirecciones correctas, script validado, variables protegidas con comillas y salida interpretada; todo permanece en optativa-nube/.

Clasifica una lista de archivos de un proyecto y decide cuáles se versionan, cuáles se excluyen y por qué. Añade las reglas razonadas al .gitignore del repositorio de práctica.

Clasifica esta lista sin crear ni copiar ningún secreto real: README.md, web/index.html, .env, clave-practica.pem, evidencias/arranque.log, compose.yaml y Dockerfile. Después, revisa el resultado con git status antes de preparar el cambio.

  • RA0/CE: b, g.
  • A entregar: .gitignore y evidencias/rf02-secretos.md.
  • Comprueba antes de entregar: detecta claves privadas, ficheros de entorno y artefactos locales; justifica las exclusiones sin publicar valores sensibles.

Publica la página HTML de web/ mediante Nginx, abre http://localhost:8080/ en el navegador y comprueba la respuesta HTTP. Explica por qué al editar el archivo de la carpeta compartida el cambio aparece sin recrear el contenedor.

Realiza las pruebas únicamente sobre localhost:8080. El producto debe identificar el estado del contenedor, la respuesta HTTP y el cierre del recurso temporal.

Registra la URL, el resultado resumido de curl --head, la conclusión sobre el montaje y la confirmación de cierre del contenedor.

  • RA0/CE: f.
  • A entregar: evidencias/web-local.md.
  • Comprueba antes de entregar: la web responde en el navegador y con HTTP, el contenido procede de web/ y el contenedor temporal ya no está activo.

Genera un par de claves Ed25519 de práctica en ~/.ssh del usuario alumno, no en el repositorio. Comprueba los permisos de la carpeta y de ambos archivos, identifica cuál puede compartirse y revisa su huella pública. Si el profesor ha preparado p00-ssh-aula según P00/03, realiza una primera conexión con la dirección, puerto, usuario y huella de host que te haya comunicado.

Debes indicar qué dato se puede compartir (clave pública), cuál no (clave privada), qué papel tiene known_hosts y qué comprobación realizaste antes de aceptar la huella. Si el servidor no está disponible en tu sesión, analiza el caso proporcionado por el docente sin inventar una conexión funcional.

  • RA0/CE: c.
  • A entregar: evidencias/rf04-ssh-seguro.md, con permisos, huella pública y decisión de verificación; nunca la clave privada ni su contenido.
  • Comprueba antes de entregar: protege la clave privada, reconoce la diferencia entre host y usuario, usa known_hosts correctamente y no elimina avisos de identidad sin verificación.

RF05. Plan de trabajo responsable en Learner Lab

Section titled “RF05. Plan de trabajo responsable en Learner Lab”

Antes de cualquier práctica de AWS, prepara un checklist personal para una sesión de Learner Lab. No se crean recursos AWS en esta actividad.

  1. Anota región prevista (us-east-1 o us-west-2), objetivo, recursos que se prevé crear y comprobación funcional esperada.
  2. Define cómo consultarás los recursos existentes y el coste antes, durante y después de la práctica.
  3. Incluye la parada, eliminación y segundo inventario de cierre; indica que se usará LabRole cuando un servicio requiera un rol.
  4. Explica por qué no se crean roles propios, no se usan AMI de Marketplace ni se inician veinte o más instancias simultáneas.
  • RA0/CE: g.
  • A entregar: evidencias/rf05-learner-lab.md.
  • Comprueba antes de entregar: plan concreto, límites del laboratorio correctamente aplicados y cierre verificable; no incluyas credenciales ni capturas con datos privados.

Las prácticas son hitos del mismo repositorio. Se desarrollan de forma individual; una pareja puede realizar revisión cruzada, pero cada estudiante entrega sus propios productos y explicación.

Crea p00-lab desde la imagen oficial de Debian, usa apt para instalar una herramienta indicada y documenta cómo el Dockerfile incorpora las herramientas que pasan a ser recurrentes.

La práctica debe separar los cambios temporales del contenedor de la receta versionada. Conserva el trabajo en optativa-nube/, detén el contenedor al acabar y no utilices docker commit.

  • RA0/CE: a, d, g.
  • A entregar: una nota breve en evidencias/eg00-entorno.md que distinga instalación puntual e imagen versionada.
  • Comprueba antes de entregar: el contenedor se puede detener y reiniciar; optativa-nube/ persiste; la función de apt y del Dockerfile se explica correctamente.

EG01. Repositorio seguro con web estática y productos de práctica

Section titled “EG01. Repositorio seguro con web estática y productos de práctica”

Inicializa la estructura de un repositorio de práctica, añade una página estática mínima y documenta los resultados. Aplica el criterio de exclusión de secretos antes de crear el historial.

  1. Crea la estructura web/ y evidencias/ dentro de /optativa-nube/p00-puesto-nube.
  2. Añade README.md y .gitignore, inicializa Git y crea un primer commit tras revisar con git status y git diff --staged.
  3. Añade web/index.html con una presentación mínima autocontenida y una bitácora breve; revísalas y crea un segundo commit con un mensaje que explique la mejora.
  4. Incluye en el README el entorno utilizado y cómo se comprobará la página; no incluyas datos personales ni rutas locales completas.
  5. No configures ni publiques un remoto hasta que el docente haya confirmado plataforma, URL y flujo de entrega.
  • RA0/CE: b, g.
  • A entregar: repositorio con historial, .gitignore, página mínima y bitácora sin datos sensibles.
  • Comprueba antes de entregar: el historial contiene al menos dos cambios explicables, el .gitignore es coherente y la web es identificable.

Empaqueta la página de P00 en una imagen y ejecútala en un contenedor local, publicando únicamente el puerto necesario y registrando la comprobación HTTP y los registros relevantes.

Usa el Dockerfile de la página de web y Compose o una variante funcional justificada. Antes de abrir el navegador, comprueba estado con docker ps, publicación con docker port y respuesta con curl. Conserva un producto resumido de construcción, URL local, respuesta HTTP, registro relevante y parada/eliminación del contenedor.

  • RA0/CE: d, e, f.
  • A entregar: evidencias/web-local.md con construcción, URL local, respuesta HTTP resumida y cierre.
  • Comprueba antes de entregar: la página responde localmente, el contenedor es identificable y documentas arranque, verificación y parada.

Describe y ejecuta la prueba web con Compose. Incluye configuración mínima de puerto, volumen o variable de entorno no sensible cuando la práctica lo requiera. Comprueba en el navegador que la página identificable se carga sin depender de servicios externos.

Parte de la configuración presentada en el desarrollo, revísala con docker compose config antes de iniciarla y documenta el resultado de docker compose ps. Comprueba la página con curl y explica si un cambio de web/index.html proviene del volumen de solo lectura o de una reconstrucción de imagen. Al finalizar, ejecuta el cierre controlado de la aplicación y confirma que no quedan servicios del proyecto activos.

  • RA0/CE: d, e, f.
  • A entregar: compose.yaml y actualización de evidencias/web-local.md con la comprobación de Compose y su cierre.
  • Comprueba antes de entregar: la configuración se puede revisar, el servicio se inicia y se detiene de forma controlada, y el producto recoge solo los registros necesarios.

Actualiza la receta versionada del entorno cuando Git, el cliente SSH y las herramientas de diagnóstico se conviertan en requisitos recurrentes. Construye la etiqueta indicada y explica cómo se reemplazaría el contenedor sin perder el contenido de optativa-nube/. Si se reemplaza el contenedor, genera de nuevo las claves de práctica de ~/.ssh.

No se aplica docker commit ni se elimina el contenedor de trabajo durante esta práctica sin confirmar antes que los productos están en optativa-nube/. Una VM Debian solo se utilizará como alternativa de contingencia cuando Docker no sea viable en el equipo.

  • RA0/CE: a, c, d, f, g.
  • A entregar: evidencias/eg04-evolucion-entorno.md, Dockerfile revisado y salida resumida de la construcción autorizada.
  • Comprueba antes de entregar: distingue paquete instalado en un contenedor de requisito incorporado al Dockerfile, identifica imagen, contenedor y carpeta compartida, y documenta un reemplazo seguro.

Resuelve una incidencia preparada de HTTP, DNS o puerto en un entorno local controlado. Registra la hipótesis inicial, las pruebas realizadas y la causa final.

Caso: la web debería responder en http://localhost:8080, pero no carga. Recibirás una de estas causas preparadas: el contenedor está detenido, el puerto publicado no es 8080 o el fichero web/index.html no se ha copiado en la imagen. Tu informe debe descartar las otras dos causas con pruebas autorizadas.

  • Modalidad: individual.
  • RA0/CE: f.
  • A entregar: informe breve con pruebas mínimas, interpretación correcta y corrección verificada con la misma prueba que reveló el problema.

Revisa una entrega de ejemplo con secretos o configuraciones inseguras y propón correcciones trazables antes de su publicación.

Caso: una entrega de ejemplo contiene un fichero .env, un nombre de clave privada en el historial y un servicio Docker publicado sin justificación. Enumera los riesgos, indica qué debe retirarse o corregirse y describe cómo verificarías la entrega antes de compartirla. No reproduzcas valores de secretos, aunque sean ficticios.

  • Modalidad: individual.
  • RA0/CE: b, c, d, g.
  • A entregar: lista de hallazgos, riesgo asociado y corrección propuesta sin copiar ni divulgar secretos.

Consolida los productos previos en un repositorio seguro con una web estática que pueda ejecutarse localmente en Docker o Compose. Incluye la comprobación HTTP, la parada ordenada y el checklist de trabajo responsable para AWS Academy Learner Lab.

  • Modalidad: individual.
  • RA0/CE: a–g.
  • A entregar: repositorio, README, script de Shell, .gitignore, producto SSH sin secretos, página estática, Dockerfile, compose.yaml, diagnóstico HTTP y checklist de cierre de Learner Lab.
  • Comprueba antes de entregar: funcionalidad local, trazabilidad, ausencia de secretos, comprobaciones justificadas, separación correcta entre anfitrión y contenedor y limpieza documentada.

Una pareja intercambia temporalmente sus repositorios de práctica y verifica, con el README, si puede preparar y comprobar la web en un entorno autorizado. Cada estudiante conserva un producto individual de la revisión recibida y realizada.

  • Modalidad: parejas para la revisión; productos y revisión individuales.
  • RA0/CE: b, d, e, f, g.
  • A entregar: incidencia o confirmación de reproducción, mejora aplicada y actualización del README si procede.
  • Comprueba antes de entregar: instrucciones suficientes, reproducción verificable, comunicación de incidencias y correcciones justificadas.
Aspecto Comprueba que está logrado Si todavía está en progreso Si está pendiente
Entorno y Shell Imagen, contenedor, volumen y carpeta compartida identificados; script validado, ejecutado y explicado. Comprobaciones del script incompletas. No se identifica el entorno o no hay un resultado útil.
Git y SSH seguros Historial revisado, .gitignore razonado, clave privada protegida y verificación de host explicada. Hay reglas, revisión o verificación incompletas, sin filtración de datos. Incluye secretos, clave privada o cambios sin revisar.
Web, Docker y Compose La web responde localmente; Dockerfile y Compose son coherentes; se documentan puertos, volumen, registros y cierre. La web funciona, pero falta una comprobación, explicación o confirmación de cierre. No se verifica la ejecución local o quedan recursos sin gestionar.
Diagnóstico y documentación Las pruebas siguen la secuencia contenedor, puerto, HTTP y registros; el README permite repetir la práctica. Hay pruebas, pero no sostienen claramente la conclusión o el README es parcial. Las pruebas son indiscriminadas o no permiten reproducir el trabajo.
Trabajo responsable en AWS Checklist completo de inventario, coste, límites, cierre y limpieza. Checklist parcial, pero reconoce las restricciones principales. Ignora coste, regiones, LabRole o limpieza.