Titorial sobre a creación de aplicacións en Amazon Web Services (AWS)
Amazon Web Services (AWS) é unha das plataformas de computación na nube máis populares do mundo. Con AWS, podes crear e executar aplicacións sen mercar servidores físicos, configurar espazo no servidor nin manter a túa propia infraestrutura. Este artigo guiarache pola creación dunha aplicación sinxela en AWS usando un enfoque común: despregar unha aplicación web mediante servizos de computación (EC2), unha base de datos xestionada (RDS) como opción e almacenamento e un dominio se é necesario. Aínda que o seguinte exemplo é xeral, podes aplicalo a moitos tipos de aplicacións.
-
1. Preparación inicial: contas e conceptos básicos
Antes de comezar, asegúrate de ter unha conta de AWS. Moitos servizos de AWS ofrecen un nivel gratuíto (gratuíto dentro de certos límites) que é axeitado para a práctica.
Algúns conceptos importantes que debes comprender:
– Rexión: Localización do centro de datos de AWS (exemplo: Singapur/ap-southeast-1). Escolla a rexión máis próxima para unha latencia baixa.
– IAM (Xestión de Identidade e Acceso): un sistema de xestión de acceso. Práctica recomendada: non usar a conta de root para o traballo diario.
– VPC (Nube Privada Virtual): unha rede virtual onde se executan os teus servizos.
– Grupo de seguranza: “cortafogos” para regular o acceso entrante/saínte desde o servidor.
Ao comprender estas catro cousas, será moito máis doado para ti navegar polos conceptos básicos de AWS.
-
2. Crear usuarios de IAM e protexer contas
A seguridade é sempre a nosa prioridade número un. Inicia sesión na consola de AWS como root e despois:
1. Abra o servizo IAM.
2. Crea un novo usuario (por exemplo, `admin-dev`) e marca a opción Proporcionar acceso de usuario á consola de administración de AWS.
3. Conceder permisos: para practicar podes usar AdministratorAccess (aínda que en proxectos reais debería ser máis limitado).
4. Activa a MFA (autenticación multifactor) para aumentar a seguridade.
Unha vez feito isto, pecha sesión desde root e inicia sesión co usuario IAM recentemente creado.
-
3. Determinar a arquitectura da aplicación
Para este tutorial, construiremos unha arquitectura sinxela:
– EC2: execución de aplicacións web (por exemplo, Node.js/Express, Python Flask ou PHP).
– RDS opcional: base de datos MySQL/PostgreSQL xestionada, para que os datos se almacenen de forma ordenada.
– S3 (opcional): almacena ficheiros estáticos como imaxes, documentos ou copias de seguridade.
– Ruta 53 (opcional): xestionar dominios.
– CloudWatch: monitorización básica.
Se estás a comezar, céntrate primeiro en EC2 para executar as túas aplicacións.
-
4. Crear un servidor EC2
a) Crear unha instancia
1. Inicie sesión no servizo EC2.
2. Fai clic en Iniciar instancia.
3. Seleccione o sistema operativo, por exemplo Ubuntu Server 22.04 LTS.
4. Selecciona o tipo de instancia: para o nivel gratuíto, usa `t2.micro` ou `t3.micro` (suxeito a dispoñibilidade).
5. Crea ou selecciona un par de claves (por exemplo, `aws-key.pem`). Mantén o ficheiro `.pem` seguro, xa que se usará para SSH.
b) Configuración de rede e firewall
– Asegúrate de que a instancia estea na VPC predeterminada (só para practicar).
– Definir grupo de seguranza:
– Porto 22 (SSH) só desde o teu IP (por exemplo, "O meu IP")
– Porto 80 (HTTP) de `0.0.0.0/0` (público)
– Porto 443 (HTTPS) desde `0.0.0.0/0` se máis tarde se usa SSL
Nota: Abrir SSH ao público é arriscado. Restrinxir sempre os enderezos IP.
Fai clic en Iniciar e agarda a que se execute a instancia.
-
5. Iniciar sesión no servidor a través de SSH
En Windows, podes usar WSL ou PuTTY. En macOS/Linux, podes facelo directamente desde o terminal.
1. Cambiar a clave de permisos:
"`bash"
chmod 400 aws-key.pem
“
2. Conéctese ao servidor por SSH (use o IPv4 público de EC2):
"`bash"
ssh -i aws-key.pem ubuntu@IP_PÚBLICA
“
Se ten éxito, estará no servidor AWS Ubuntu.
-
6. Instalar o servidor web e o tempo de execución da aplicación
Aquí tes un exemplo dunha aplicación Node.js, xa que se usa amplamente na web moderna.
a) Actualizar e instalar dependencias
"`bash"
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
“
b) Instalar Node.js (versión LTS)
"`bash"
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
nodo -v
npm -v
“
-
7. Crea unha aplicación sinxela
Crear unha carpeta de proxecto:
"`bash"
mkdir miña aplicación e& cd miña aplicación
npm inicio -y
instalación rápida de npm
“
Crea un ficheiro `index.js`:
"`js
const express = require("express");
const app = express();
aplicación.obter("/", (solicitude, solicitude) => {
res.send("Ola! A túa aplicación está a executarse en AWS EC2.");
});
app.listen(3000, () => console.log("Servidor executándose no porto 3000"));
“
Executa a aplicación:
"`bash"
node index.js
“
Tenta acceder desde un navegador:
– `http://IP_PÚBLICA:3000`
Non obstante, o porto 3000 non está aberto actualmente no Grupo de seguridade. Podes:
1) abrir o porto 3000 no Grupo de seguridade ou
2) usar un proxy inverso (máis recomendable) para que a aplicación permaneza no porto interno pero se poida acceder a ela a través do porto 80/443.
-
8. Usando Nginx como proxy inverso (acceso a través do porto 80)
Instalar Nginx:
"`bash"
sudo apt instalar -y nginx
sudo systemctl activar nginx
sudo systemctl iniciar nginx
“
Configurar a configuración de Nginx:
"`bash"
sudo nano /etc/nginx/sitios-dispoñibles/a miña aplicación
“
Contido da configuración:
"`nginx
servidor {
escoita 80;
nome_servidor _;
localización / {
pase_proxy http://127.0.0.1:3000;
proxy_http_versión 1.1;
proxy_set_header Actualizar $http_upgrade;
proxy_set_header Conexión 'actualización';
proxy_set_header Host $host;
bypass_da_caché_proxy $http_actualización;
}
}
“
Activar a configuración:
"`bash"
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl recarga nginx
“
Agora accede a:
– `http://IP_PÚBLICA/`
A aplicación execútase no porto 3000, pero o público accede a ela a través do porto 80.
-
9. Executar aplicacións de forma persistente con PM2
Para evitar que a aplicación se bloquee cando se desconecta SSH, usa PM2:
"`bash"
sudo npm instalar -g pm2
pm2 start index.js –name myapp
gardar pm2
inicio de pm2
“
O comando `pm2 startup` proporcionará instrucións adicionais. Executa o comando mostrado para que a aplicación se execute automaticamente cando se reinicie o servidor.
-
10. (Opcional) Engadir unha base de datos con RDS
Se a túa aplicación require unha base de datos, RDS facilita as cousas porque AWS xestiona as copias de seguridade, a aplicación de parches e o escalado.
Pasos curtos:
1. Abrir o servizo RDS → Crear base de datos.
2. Selecciona MySQL ou PostgreSQL (as regras de nivel gratuíto están dispoñibles en determinadas configuracións).
3. Configura o nome de usuario e o contrasinal.
4. Asegúrate de que a instancia RDS estea na mesma VPC que a EC2.
5. Configure o grupo de seguranza de RDS para que só acepte conexións do grupo de seguranza de EC2 (non do público).
Unha vez que a base de datos estea activa, colle o punto final de RDS e conéctate a el desde a túa aplicación usando o controlador da base de datos.
-
11. (Opcional) Activar HTTPS con certificado SSL
Para a produción, HTTPS é obrigatorio. Método típico:
– Empregar un dominio (por exemplo, de Route 53 ou doutro rexistrador).
– Instalar SSL mediante Let's Encrypt (Certbot) en EC2.
En resumo:
"`bash"
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
“
Siga o asistente para seleccionar un dominio e activar o redireccionamento HTTPS.
-
12. Monitorización e custos
AWS ofrece CloudWatch para ver métricas como a CPU, a rede e rexistros específicos. Tamén convén que supervises os teus custos para evitar perder algo.
Consellos importantes:
– Activar a alarma de facturación en CloudWatch (por exemplo, alarma se os cargos superan os 5 $).
– Apaga a instancia cando non a estea en uso.
– Elimina os recursos non utilizados (equilibradores de carga, EBS, IP elásticas, instantáneas), xa que aínda poden xerar custos.
-
Peche
Parabéns! Aprendiches os conceptos básicos sobre como crear unha aplicación en AWS con EC2, executar unha aplicación web, configurar un proxy inverso de Nginx e facelo sempre activo con PM2. Tamén obtiveches unha visión xeral de servizos adicionais como RDS para bases de datos, S3 para almacenamento e certificados HTTPS para seguridade.
Se queres subir de nivel, os seguintes pasos adoitan ser:
– Implementación automatizada con CI/CD (Accións de GitHub + SSH ou AWS CodeDeploy)
– Usando contedores con Docker e orquestracións como ECS ou EKS,
– Empregando unha arquitectura sen servidor con Lambda + API Gateway.
Se queres, especifica o tipo de aplicación que estás a crear (Node.js, Laravel, Django, React, etc.) e o seu propósito (demo, produción, a grande escala). Podo personalizar o tutorial con pasos máis específicos.