Skip to content

Commit

Permalink
Create EC2 Deployment Project
Browse files Browse the repository at this point in the history
  • Loading branch information
ssinuco committed Jul 24, 2024
1 parent b5879a8 commit 4a5c00e
Showing 1 changed file with 119 additions and 0 deletions.
119 changes: 119 additions & 0 deletions projects/05-ec2-deployment/README.MD
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.

0 comments on commit 4a5c00e

Please sign in to comment.