diff --git a/projects/05-ec2-deployment/README.MD b/projects/05-ec2-deployment/README.MD new file mode 100644 index 000000000..670480915 --- /dev/null +++ b/projects/05-ec2-deployment/README.MD @@ -0,0 +1,119 @@ +# API Deployment on AWS EC2 + +## Índice + +- [1. Consideraciones generales](#1-consideraciones-generales) +- [2. Preámbulo](#2-preámbulo) +- [3. Resumen del proyecto](#3-resumen-del-proyecto) +- [4. Implementaciones de ejemplo](#4-Implementaciones-de-ejemplo) +- [5. Paso a paso general para el despliegue en Amazon EC2](#6-Paso-a-paso-general-para-el-despliegue-en-Amazon-EC2) +- [6. Paso a paso detallado para el despliegue en Amazon EC2](#6-Paso-a-paso-detallado-para-el-despliegue-en-Amazon-EC2) +- [7. Consideraciones para pedir tu Project Feedback](#7-Consideraciones-para-pedir-tu-Project-Feedback) +- [8. Objetivos de aprendizaje](#8-Objetivos-de-aprendizaje) + +--- + +## 1. Consideraciones generales + +- Este proyecto lo resolvemos de manera --individual--. +- El rango de tiempo estimado para completar el proyecto es de 1 a 2 Sprints. + +## 2. Preámbulo + + + +
+Logo de AWS EC2 +
+ +Amazon EC2 (Elastic Compute Cloud) es un servicio web que +proporciona capacidad informática escalable en la nube +permitiendo a los desarrolladores y empresas aprovisionar +y gestionar servidores virtuales, conocidos como instancias, +con flexibilidad y control total sobre el entorno de cómputo. +Con EC2, los usuarios pueden escalar recursos de manera dinámica +según las necesidades de la carga de trabajo, elegir entre una +amplia variedad de configuraciones de hardware y software, y +pagar solo por el tiempo de uso real. Este servicio es ideal +para aplicaciones que requieren alta disponibilidad y rendimiento, +facilitando la implementación de soluciones desde simples aplicaciones +web hasta complejas arquitecturas empresariales. + +## 3. Resumen del proyecto + +La currícula de Laboratoria incluye tres proyectos enfocados en +desplegar la [Fleet Management API](../05-fleet-management-api/README.md) +que desarrollaste en la nube de Amazon Web Services (AWS). Cada proyecto +se distingue por utilizar diferentes métodos de despliegue, lo que te +permitirá aprender y aplicar diversas estrategias para poner tu API en +producción en un entorno real. + +En este proyecto desplegarás la API usando **Amazon EC2**. + +Amazon EC2 (Elastic Compute Cloud) es un servicio que te permite alquilar +y usar computadoras virtuales en la nube de Amazon Web Services (AWS). +En lugar de depender únicamente de tu computadora local para ejecutar aplicaciones, +con EC2 puedes utilizar servidores remotos, llamados +instancias, que ofrecen más potencia y flexibilidad. Puedes elegir entre +diferentes tipos de instancias según las necesidades +de tu aplicación. Hay instancias optimizadas para tareas que requieren +mucha memoria, mucho procesamiento, almacenamiento rápido, etc. Puedes conectarte +a tu instancia desde tu computadora local usando herramientas como SSH +(para Linux) o Remote Desktop (para Windows). Una vez conectada, +puedes usar la instancia como lo harías con tu computadora local: +instalar software, subir código, ejecutar aplicaciones, etc. + +## 4. Implementaciones de ejemplo + +En caso que no hayas implementado aun la +[Fleet Management API](../05-fleet-management-api/README.md) +puedes usar las siguientes implementaciones mínimas para +completar este proyecto. Elige la implementación en el +lenguaje de programación que más te interese: + +- [Implementación en NodeJS](https://github.com/Laboratoria/minimum-impl-fleet-management-api-nodejs) +- [Implementación en Python](https://github.com/Laboratoria/minimum-impl-fleet-management-api-python) +- [Implementación en Java](https://github.com/Laboratoria/minimum-impl-fleet-management-api-java) + +## 5. Paso a paso general para el despliegue en Amazon EC2 + +Independientemente del lenguaje de programación en que esta +implmentada la API, el despliegue en Amazon EC2 consiste en: + +- Paso 1: Crear una Cuenta de AWS +- Paso 2: Lanzar una Instancia EC2 +- Paso 3: Configurar la Instancia +- Paso 4: Conectar a la Instancia EC2 +- Paso 5: Instalar Dependencias +- Paso 6: Subir el Código de tu API +- Paso 7: Configurar y Ejecutar la API +- Paso 8: Probar y Asegurar la API + +## 6. Paso a paso detallado para el despliegue en Amazon EC2 + +El paso a paso detallado para el despliegue en Amazon EC2 +depende del lenguaje de implementacion de la API. Te +sugerimos las siguientes guias: + +- [Despliegue de API NodeJS](https://dev.to/drsimplegraffiti/from-code-to-the-cloud-a-step-by-step-guide-to-deploying-your-nodejs-app-on-aws-ec2-4300) +- [Despliegue API Python](https://www.geeksforgeeks.org/how-to-deploy-python-application-in-aws/) +- [Despliegue de API Java](https://medium.com/@amitu2016/deploying-spring-boot-web-app-on-aws-using-ec2-and-s3-4db1d0f55c78) + +## 7. Consideraciones para pedir tu Project Feedback + +Antes de agendar tu Project Feedback con tu coach, asegúrate de +tener una coleccion de Postman para probar la API que +desplegaste en Amazon EC2. + +## 8. Objetivos de aprendizaje + +> ℹ️ Esta sección será automáticamente generada en el idioma pertinente, a partir +> de los objetivos de aprendizaje declarados en [`project.yml`](./project.yml), +> al crear el repo del proyecto para un cohort en particular usando +> [`./scripts/create-cohort-project.js`](../../scripts#create-cohort-project-coaches). +> +> Acá puedes ver una [lista de todos los objetivos de aprendizaje](../../learning-objectives/data.yml) +> que contempla nuestra currícula.