En aquest tema, aprendrem a desplegar una aplicació Flask a Amazon Web Services (AWS). AWS és una de les plataformes de computació en núvol més populars i ofereix una àmplia gamma de serveis que poden ajudar a escalar i gestionar aplicacions web de manera eficient.

  1. Configuració del Compte AWS

1.1 Creació d'un Compte AWS

Si encara no tens un compte AWS, segueix aquests passos per crear-ne un:

  1. Visita aws.amazon.com i fes clic a "Create an AWS Account".
  2. Introdueix la teva informació personal i de pagament.
  3. Completa el procés de verificació.

1.2 Configuració de les Credencials AWS CLI

Per gestionar els serveis AWS des de la línia de comandes, necessitaràs configurar l'AWS Command Line Interface (CLI):

  1. Instal·la l'AWS CLI seguint les instruccions de la documentació oficial.
  2. Configura les credencials executant aws configure i introduint les teves claus d'accés.
$ aws configure
AWS Access Key ID [None]: YOUR_ACCESS_KEY_ID
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: YOUR_PREFERRED_REGION
Default output format [None]: json

  1. Preparació de l'Aplicació Flask

2.1 Requisits de l'Aplicació

Assegura't que la teva aplicació Flask estigui preparada per a la producció:

  • Utilitza un servidor WSGI com Gunicorn.
  • Configura correctament les variables d'entorn.
  • Assegura't que les dependències estiguin llistades en un fitxer requirements.txt.

2.2 Exemple de Fitxer requirements.txt

Flask==2.0.1
gunicorn==20.1.0

2.3 Exemple de Fitxer app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

  1. Desplegament amb Elastic Beanstalk

3.1 Creació d'un Entorn Elastic Beanstalk

Elastic Beanstalk és un servei fàcil d'utilitzar per desplegar i escalar aplicacions web i serveis desenvolupats amb diversos llenguatges de programació.

  1. Instal·la l'Elastic Beanstalk CLI:

    $ pip install awsebcli
    
  2. Inicialitza un nou projecte Elastic Beanstalk:

    $ eb init -p python-3.8 flask-app --region YOUR_PREFERRED_REGION
    
  3. Crea un nou entorn:

    $ eb create flask-env
    

3.2 Desplegament de l'Aplicació

  1. Desplega l'aplicació a Elastic Beanstalk:

    $ eb deploy
    
  2. Obre l'aplicació al navegador:

    $ eb open
    

  1. Configuració de la Base de Dades

4.1 Creació d'una Instància RDS

Si la teva aplicació necessita una base de dades, pots utilitzar Amazon RDS:

  1. A la consola d'AWS, navega a RDS i crea una nova instància de base de dades.
  2. Configura els paràmetres necessaris (tipus de base de dades, credencials, etc.).

4.2 Connexió a la Base de Dades

Actualitza la configuració de la teva aplicació Flask per connectar-se a la base de dades RDS.

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL')
db = SQLAlchemy(app)

  1. Monitorització i Escalabilitat

5.1 Monitorització amb CloudWatch

Utilitza Amazon CloudWatch per monitoritzar el rendiment de la teva aplicació:

  1. Configura mètriques i alarmes a la consola de CloudWatch.
  2. Revisa els logs i les mètriques per assegurar-te que l'aplicació funciona correctament.

5.2 Escalabilitat Automàtica

Configura l'escalabilitat automàtica per assegurar-te que la teva aplicació pot gestionar increments de trànsit:

  1. A la consola d'Elastic Beanstalk, navega a la configuració de l'entorn.
  2. Configura les polítiques d'escalabilitat automàtica segons les necessitats de la teva aplicació.

Conclusió

Desplegar una aplicació Flask a AWS pot semblar complex al principi, però amb les eines adequades i una configuració correcta, pots aprofitar la potència i la flexibilitat d'AWS per escalar i gestionar la teva aplicació de manera eficient. En aquest tema, hem cobert els passos bàsics per configurar el teu entorn, preparar la teva aplicació, desplegar-la amb Elastic Beanstalk, configurar una base de dades i monitoritzar el rendiment. Amb aquests coneixements, estaràs preparat per portar la teva aplicació Flask a la producció a AWS.

Curs de Desenvolupament Web amb Flask

Mòdul 1: Introducció a Flask

Mòdul 2: Conceptes Bàsics de Flask

Mòdul 3: Formularis i Entrada d'Usuari

Mòdul 4: Integració de Bases de Dades

Mòdul 5: Autenticació d'Usuaris

Mòdul 6: Conceptes Avançats de Flask

Mòdul 7: APIs RESTful amb Flask

Mòdul 8: Desplegament i Producció

Mòdul 9: Proves i Millors Pràctiques

Mòdul 10: Extensions i Ecosistema de Flask

© Copyright 2024. Tots els drets reservats