Introducció
AWS Elastic Beanstalk és un servei fàcil d'usar per desplegar i escalar aplicacions i serveis web desenvolupats amb Java, .NET, PHP, Node.js, Python, Ruby, Go i Docker en servidors familiars com Apache, Nginx, Passenger i IIS. Simplement has de pujar el teu codi i Elastic Beanstalk s'encarrega automàticament del desplegament, des del provisionament de capacitat, l'equilibri de càrrega, l'escalat automàtic fins al monitoratge de l'estat de l'aplicació.
Conceptes Clau
- Entorn: Un entorn és una instància d'una aplicació que s'executa en Elastic Beanstalk. Cada entorn té un URL únic.
- Aplicació: Una aplicació és un contenidor lògic per a les versions de l'aplicació que es poden desplegar en un o més entorns.
- Versió de l'aplicació: Una versió de l'aplicació és un desplegable específic de codi, configuració i recursos.
- Configuració de l'entorn: Inclou la configuració de la capacitat de la instància, l'equilibri de càrrega, l'escalat automàtic, les variables d'entorn, etc.
Característiques Principals
- Desplegament Automàtic: Elastic Beanstalk gestiona el desplegament de la teva aplicació, incloent-hi la configuració de la infraestructura necessària.
- Escalat Automàtic: Ajusta automàticament la capacitat de la teva aplicació en funció de la demanda.
- Monitoratge i Gestió: Proporciona eines per monitorar l'estat de la teva aplicació i gestionar els recursos.
- Compatibilitat amb Diversos Llenguatges i Plataformes: Suporta múltiples llenguatges de programació i plataformes de servidor.
Configuració Inicial
Pas 1: Crear una Aplicació
- Accedeix a la consola de gestió d'AWS.
- Navega a Elastic Beanstalk.
- Fes clic a Create Application.
- Introdueix un nom per a la teva aplicació.
- Selecciona una plataforma (per exemple, Node.js, Python, etc.).
- Fes clic a Create.
Pas 2: Desplegar una Versió de l'Aplicació
- Després de crear l'aplicació, fes clic a Upload and Deploy.
- Selecciona el fitxer ZIP que conté el codi de la teva aplicació.
- Introdueix una etiqueta de versió.
- Fes clic a Deploy.
Pas 3: Configurar l'Entorn
- Un cop desplegada la versió, pots configurar l'entorn.
- Fes clic a Configuration.
- Ajusta les opcions com la capacitat de la instància, l'equilibri de càrrega, les variables d'entorn, etc.
- Fes clic a Apply per guardar els canvis.
Exemple Pràctic
Desplegar una Aplicació Node.js
Estructura del Projecte
Contingut de app.js
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, AWS Elastic Beanstalk!'); }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server is running on port ${port}`); });
Contingut de package.json
{ "name": "my-node-app", "version": "1.0.0", "description": "A simple Node.js app for AWS Elastic Beanstalk", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.17.1" } }
Contingut de .ebextensions/options.config
Desplegament
- Comprimeix el contingut del directori
my-node-app
en un fitxer ZIP. - Segueix els passos descrits anteriorment per crear una aplicació i desplegar una versió.
- Un cop desplegada, accedeix a l'URL de l'entorn per veure la teva aplicació en funcionament.
Exercicis Pràctics
Exercici 1: Desplegar una Aplicació Python
- Crea una aplicació Python simple amb Flask.
- Configura el projecte per a Elastic Beanstalk.
- Desplega l'aplicació seguint els passos descrits.
Exercici 2: Configurar l'Escalat Automàtic
- Desplega una aplicació en Elastic Beanstalk.
- Configura l'escalat automàtic per ajustar la capacitat en funció de la càrrega.
- Monitoritza l'entorn per veure com s'ajusta la capacitat.
Solucions
Solució a l'Exercici 1
Estructura del Projecte
Contingut de application.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, AWS Elastic Beanstalk!' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)
Contingut de requirements.txt
Contingut de .ebextensions/options.config
Solució a l'Exercici 2
- Accedeix a la configuració de l'entorn a la consola de Elastic Beanstalk.
- A la secció Capacity, ajusta les opcions d'escalat automàtic.
- Defineix les polítiques d'escalat basades en les mètriques de CloudWatch, com l'ús de la CPU.
- Aplica els canvis i monitoritza l'entorn per veure com s'ajusta la capacitat.
Conclusió
AWS Elastic Beanstalk simplifica el procés de desplegament i gestió d'aplicacions a AWS. Amb Elastic Beanstalk, pots concentrar-te en el desenvolupament de la teva aplicació mentre AWS s'encarrega de la infraestructura. En aquest tema, hem après a crear una aplicació, desplegar una versió i configurar l'entorn. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. En el següent tema, explorarem AWS Fargate, una altra eina poderosa per desplegar aplicacions en contenidors.