Añadir una instancia de base de datos de Amazon RDS a su entorno de aplicaciones Python - AWS Elastic Beanstalk

Añadir una instancia de base de datos de Amazon RDS a su entorno de aplicaciones Python

Puede usar una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para almacenar los datos recopilados y modificados por la aplicación. La base de datos se puede adjuntar al entorno y administrarse con Elastic Beanstalk, o bien, crearse y administrarse de forma externa.

Si es la primera vez que utiliza Amazon RDS, añada una instancia de base de datos a un entorno de prueba con la consola de administración de Elastic Beanstalk y verifique que su aplicación puede conectarse a ella.

Para conectarse a una base de datos, añada el controlador a su aplicación, cargue el controlador en el código y cree un objeto de conexión con las propiedades de entorno proporcionadas por Elastic Beanstalk. La configuración y el código de conexión varían en función del motor de base de datos y la plataforma que utilice.

nota

Para fines de aprendizaje o entornos de prueba, puede utilizar Elastic Beanstalk para agregar una instancia de base de datos.

En entornos de producción, puede crear una instancia de base de datos fuera del entorno de Elastic Beanstalk para desacoplar los recursos del entorno de los recursos de base de datos. De esta forma, cuando termina el entorno, la instancia de base de datos no se elimina. Una instancia de base de datos externa también permite conectarse a la misma base de datos desde varios entornos y llevar a cabo implementaciones “blue/green” (azul/verde). Para obtener instrucciones, consulte Uso de Elastic Beanstalk con Amazon RDS.

Añadir una instancia de base de datos al entorno

Para agregar una instancia de base de datos al entorno

  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Database (Base de datos), seleccione Edit (Editar).

  5. Seleccione un motor de base de datos y escriba el nombre de usuario y la contraseña.

  6. Seleccione Aplicar.

Se tarda alrededor de 10 minutos en añadir una instancia de base de datos. Cuando se haya completado la actualización del entorno, el nombre de host de la instancia de base de datos y otra información de conexión estarán disponibles para su aplicación mediante las siguientes propiedades de entorno

Nombre de la propiedad Descripción Valor de la propiedad

RDS_HOSTNAME

El nombre de host de la instancia de base de datos.

En la pestaña Connectivity & security (Conectividad y seguridad) de la consola de Amazon RDS: Endpoint (Punto de enlace).

RDS_PORT

El puerto en que la instancia de base de datos acepta las conexiones. El valor predeterminado varía dependiendo del motor de base de datos.

En la pestaña Connectivity & security (Conectividad y seguridad) de la consola de Amazon RDS: Port (Puerto).

RDS_DB_NAME

El nombre de la base de datos, ebdb

En la pestaña Configuration (Configuración) de la consola de Amazon RDS: DB Name (Nombre de la base de datos).

RDS_USERNAME

El nombre de usuario que ha configurado para la base de datos.

En la pestaña Configuration (Configuración) de la consola de Amazon RDS: Master username (Nombre de usuario maestro).

RDS_PASSWORD

La contraseña que ha configurado para la base de datos.

No está disponible para referencia en la consola de Amazon RDS.

Para obtener más información sobre cómo configurar una instancia de base de datos interna, consulte Añadir una base de datos al entorno de Elastic Beanstalk.

Descargar un controlador

Añada el controlador de base de datos al archivo de requisitos de su proyecto.

ejemplo requirements.txt: Django con MySQL

Django==2.0.3 mysqlclient==1.3.12

Paquetes de controladores comunes para Python

  • MySQL: MySQL-python (Python 2) , mysqlclient (Python 3)

  • PostgreSQL: psycopg2

  • Oracle: cx_Oracle

  • SQL Server: adodbapi

Conexión a una base de datos

Elastic Beanstalk proporciona información de conexión para instancias de base de datos asociadas en propiedades de entorno. Use os.environ['VARIABLE'] para leer las propiedades y configurar una conexión con la base de datos.

ejemplo Archivo de configuración de Django: DATABASES Dictionary

import os if 'RDS_HOSTNAME' in os.environ: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': os.environ['RDS_DB_NAME'], 'USER': os.environ['RDS_USERNAME'], 'PASSWORD': os.environ['RDS_PASSWORD'], 'HOST': os.environ['RDS_HOSTNAME'], 'PORT': os.environ['RDS_PORT'], } }