-
Notifications
You must be signed in to change notification settings - Fork 462
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
119 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|
||
<img | ||
src="https://github.com/user-attachments/assets/14045fba-cae0-465c-86ca-a46a41897199" | ||
alt="Logo de AWS EC2" | ||
aria-describedby="aws-ec2-logo" /> | ||
|
||
<p id="aws-ec2-logo"> | ||
Logo de AWS EC2 | ||
</p> | ||
|
||
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. |