Añadir una base de datos al entorno de Elastic Beanstalk - AWS Elastic Beanstalk

Añadir una base de datos al entorno de Elastic Beanstalk

Elastic Beanstalk provee integración con Amazon Relational Database Service (Amazon RDS). Puede utilizar Elastic Beanstalk para agregar una base de datos de MySQL, PostgreSQL, Oracle o SQL Server a un entorno existente o a uno nuevo durante la creación del entorno o después de haberlo creado. Cuando agrega una instancia de base de datos, Elastic Beanstalk provee la información de conexión a la aplicación. Para ello, establece las propiedades del entorno para el nombre de host de la base de datos, el puerto, el nombre de usuario, la contraseña y el nombre de base de datos.

Si no ha usado una instancia de base de datos con su aplicación anteriormente, le recomendamos que utilice primero el proceso descrito en este tema para agregar una base de datos a un entorno de prueba utilizando el servicio Elastic Beanstalk. De este modo, puede verificar que la aplicación puede leer las propiedades del entorno, crear una cadena de conexión y conectarse a una instancia de base de datos, sin el trabajo de configuración adicional que una base de datos externa a Elastic Beanstalk necesita.

Después de comprobar que la aplicación funciona correctamente con la base de datos, puede considerar la posibilidad de avanzar hacia un entorno de producción. Aquí tiene la opción de desacoplar la base de datos de su entorno de Elastic Beanstalk para avanzar hacia una configuración que ofrezca mayor flexibilidad. La base de datos desacoplada puede permanecer en funcionamiento como una instancia de base de datos externa de Amazon RDS. El estado del entorno no se ve afectado por el desacoplamiento de la base de datos. Si necesita terminar el entorno, puede hacerlo y elegir también la opción de mantener la base de datos disponible y en funcionamiento fuera de Elastic Beanstalk.

Utilizar una base de datos externa tiene varias ventajas. Puede conectarse a la base de datos externa desde varios entornos, utilizar tipos de base de datos que no son compatibles con bases de datos integradas y realizar implementaciones azul-verde. Como alternativa al uso de una base de datos desacoplada creada por Elastic Beanstalk, también puede crear una instancia de base de datos fuera del entorno de Elastic Beanstalk. Ambas opciones dan como resultado una instancia de base de datos que es externa a su entorno de Elastic Beanstalk y requieren un grupo de seguridad adicional y la configuración de la cadena de conexión. Para obtener más información, consulte Uso de Elastic Beanstalk con Amazon RDS.

Ciclo de vida de la base de datos

Puede elegir lo que desea que le ocurra a la base de datos después de desacoplarla del entorno de Elastic Beanstalk. Las opciones entre las que puede elegir se denominan colectivamente como políticas de eliminación. Las siguientes políticas de eliminación se aplican a una base de datos después de desacoplarla de un entorno de Elastic Beanstalk o se termine el entorno de Elastic Beanstalk.

  • Snapshot (Instantánea): antes de que Elastic Beanstalk termine la base de datos guarda una instantánea de la misma. Puede restaurar una base de datos a partir de una instantánea cuando agregue una instancia de base de datos al entorno de Elastic Beanstalk o cuando cree una base de datos independiente. Para obtener más información acerca de la creación de una nueva instancia de base de datos independiente a partir de una instantánea, consulte Restauración desde una instantánea de base de datos en la Guía del usuario de Amazon RDS. El almacenamiento de instantáneas de bases de datos podría generar cargos. Para obtener más información, consulte la sección Backup Storage (Almacenamiento de copias de seguridad) de Amazon RDS Pricing (Precios de Amazon RDS).

  • Delete (Eliminar): Elastic Beanstalk termina la base de datos. Una vez terminada, la instancia de base de datos ya no está disponible para ninguna operación.

  • Retain (Retener): la instancia de base de datos no se termina. Sigue disponible y en funcionamiento aunque está desacoplada de Elastic Beanstalk. A continuación, puede configurar uno o varios entornos para conectarse a la base de datos como una instancia de base de datos externa de Amazon RDS. Para obtener más información, consulte Uso de Elastic Beanstalk con Amazon RDS.

Agregar una instancia de base de datos de Amazon RDS al entorno utilizando la consola

Puede añadir una instancia de base de datos al entorno mediante la consola de Elastic Beanstalk.

Para agregar una instancia de base de datos al entorno

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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 Apply.

Puede configurar las siguientes opciones:

  • Snapshot (Instantánea): seleccione una instantánea de base de datos existente. Elastic Beanstalk restablece la instantánea y la añade a su entorno. El valor predeterminado es None (Ninguno). Cuando el valor predeterminado es None (Ninguno), puede configurar una base de datos nueva utilizando el resto de la configuración de esta página.

  • Engine (Motor): seleccione un motor de base de datos.

  • Engine version (Versión del motor): elija una versión específica del motor de base de datos.

  • Instance class (Clase de instancia): seleccione la clase de instancia de base de datos. Para obtener más información sobre clases de instancias de base de datos, consulte https://aws.amazon.com/rds/.

  • Storage (Almacenamiento): seleccione el espacio de almacenamiento que va a aprovisionar para la base de datos. Posteriormente, podrá aumentar el almacenamiento asignado, pero no reducirlo. Para obtener información acerca de la asignación de almacenamiento, consulte las características.

  • Username (Nombre de usuario):: ingrese el nombre de usuario que quiera combinando solo números y letras.

  • Password (Contraseña): introduzca la contraseña que desee. Debe incluir entre 8 y 16 caracteres ASCII imprimibles (menos /, \ y @).

  • Availability (Disponibilidad): seleccione High (Multi-AZ) (Alta [múltiples zonas de disponibilidad]) para ejecutar una "warm backup" en una segunda zona de disponibilidad y contar con una alta disponibilidad.

  • Database deletion policy (Política de eliminación de base de datos): la política de eliminación determina lo que ocurre con la base de datos después que es desacoplada de su entorno. Se puede establecer en los siguientes valores: Create Snapshot, Retain o Delete. Estos valores se describen en Ciclo de vida de la base de datos en este mismo tema.

nota

Elastic Beanstalk crea un usuario maestro para la base de datos con el nombre de usuario y la contraseña que proporcione. Para obtener más información sobre el usuario maestro y sus privilegios, consulte Privilegios de la cuenta de usuario maestro.

Se tarda alrededor de 10 minutos en agregar una instancia de base de datos. Cuando finalice la actualización, la nueva base de datos está acoplada a su entorno. El nombre de host y otra información de conexión de la instancia de base de datos está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 donde 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 dato, 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 como referencia en la consola de Amazon RDS.

Conexión a la base de datos

Utilice la información de conectividad para conectarse a la base de datos desde la aplicación a través de variables de entorno. Para obtener más información sobre el uso de Amazon RDS con las aplicaciones, consulte los siguientes temas.

Configuración de una instancia de base de datos de RDS integrada mediante la consola

Puede ver y modificar los valores de configuración de la instancia de base de datos en la sección Database (Base de datos) de la página Configuration (Configuración) del entorno en la consola de Elastic Beanstalk.

Para configurar la instancia de base de datos del entorno en la consola de Elastic Beanstalk

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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).

Puede modificar la configuración de Instance class (Clase de instancia), Storage (Almacenamiento), Password (Contraseña), Availability (Disponibilidad) y Database deletion policy (Política de eliminación de la base de datos) después de la creación de la base de datos. Si cambia la clase de instancia, Elastic Beanstalk vuelve a aprovisionar la instancia de base de datos.

Si ya no necesita Elastic Beanstalk para asociar la base de datos al entorno, puede elegir por desacoplarla seleccionando Decouple database (Desacoplar base de datos). Es importante entender las opciones y consideraciones que implican esta operación. Para obtener más información, consulte Desacoplamiento de una instancia de base de datos de RDS utilizando la consola.

Warning

No modifique la configuración de la instancia de base de datos acoplada con otra funcionalidad distinta que la que proporciona Elastic Beanstalk (por ejemplo, en la consola de Amazon RDS). Si lo hace, la configuración de base de datos de Amazon RDS podría no estar sincronizada con la definición del entorno. Al actualizar o reiniciar su entorno, la configuración especificada en el entorno sustituye cualquier configuración que ha realizado fuera de Elastic Beanstalk.

Si necesita modificar la configuración que Elastic Beanstalk no admite directamente, utilice los archivos de configuración de Elastic Beanstalk.

Configuración de una instancia de base de datos de RDS integrada utilizando archivos de configuración

Puede configurar la instancia de base de datos del entorno mediante archivos de configuración. Utilice las opciones del espacio de nombres aws:rds:dbinstance. En el siguiente ejemplo se modifica el tamaño de almacenamiento de base de datos asignado a 100 GB.

ejemplo .ebextensions/db-instance-options.config

option_settings: aws:rds:dbinstance: DBAllocatedStorage: 100

Si desea configurar propiedades de la instancia de base de datos que Elastic Beanstalk no admite, puede seguir utilizando un archivo de configuración y especificar la configuración con la clave resources. En el siguiente ejemplo se establecen los valores en las propiedades StorageType y Iops de Amazon RDS.

ejemplo .ebextensions/db-instance-properties.config

Resources: AWSEBRDSDatabase: Type: AWS::RDS::DBInstance Properties: StorageType:io1 Iops: 1000

Desacoplamiento de una instancia de base de datos de RDS utilizando la consola

Puede desacoplar la base de datos de un entorno de Elastic Beanstalk sin que esto afecte al estado del entorno. Tenga en cuenta los siguientes requisitos antes de desacoplar la base de datos:

¿Qué debería pasar con la base de datos después de desacoplarla?

Puede elegir entre crear una instantánea de la base de datos para luego terminar la base de datos, retener la base de datos en funcionamiento como una base de datos independiente externa a Elastic Beanstalk o eliminar permanentemente la base de datos. La configuración de la Política de eliminación de base de datos determina este resultado. Para obtener una descripción detallada de las políticas de eliminación, consulte Ciclo de vida de la base de datos en este mismo tema.

¿Necesita realizar algún cambio en la configuración de la base de datos antes de desacoplarla?

Si necesita realizar algún cambio de configuración en la base de datos, debe aplicarlos antes de desacoplar la base de datos. Esto incluye los cambios en la Política de eliminación de base de datos. Cualquier cambio pendiente que se envíe simultáneamente con el Desacoplar base de datos se ignorará mientras que solo se aplica la configuración de desacoplamiento.

Desacoplar una instancia de base de datos de un entorno

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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. Revise todos los valores de configuración de la sección Configuración de la base de datos, especialmente la Política de eliminación de base de datos, que determina qué sucede con la base de datos una vez desacoplada.

    Si todos los demás ajustes de configuración son correctos, vaya al Paso 6 para desacoplar la base de datos.

    aviso

    Es importante aplicar la configuración de Política de eliminación de base de datos por separado de Desacoplar la base de datos. Si selecciona aplicar con la intención de guardar ambos Desacoplar base de datos y una Política de eliminación de base de datos seleccionada recientemente, la nueva política de eliminación que haya elegido será ignorada. Elastic Beanstalk desacoplará la base de datos siguiendo la política de eliminación establecida anteriormente. Si la política de eliminación establecida anteriormente es Delete o Create Snapshot, corre el riesgo de perder la base de datos en lugar de seguir la política pendiente prevista.

    Si alguno de los ajustes de configuración requiere una actualización, haga lo siguiente:

    1. Realice las modificaciones necesarias en el panel Database settings (Configuración de la base de datos).

    2. Seleccione Apply. Tarda unos minutos en guardar los cambios de configuración de la base de datos.

    3. Vuelva al Paso 3 y elija Configuration (Configuración) en el panel de navegación.

  6. Vaya a la sección del panel Database connection (Conexión de la base de datos).

  7. Elegir Decouple database (Desacoplar base de datos).

  8. Elegir Apply (Aplicar) para iniciar la operación de desacoplamiento de la base de datos.

La configuración de la política de eliminación determina el resultado de la base de datos y el tiempo necesario para desacoplar la base de datos.

  • Si la política de eliminación está establecida en Delete, la base de datos se elimina. La operación puede durar aproximadamente 10 a 20 minutos, dependiendo del tamaño de la base de datos.

  • Si la política de eliminación está establecida en Snapshot, se crea una instantánea de la base de datos. A continuación, la base de datos se elimina. El tiempo necesario para este proceso varía de acuerdo con el tamaño de la base de datos.

  • Si la política de eliminación está establecida en Retain, la base de datos permanece en funcionamiento de manera externa al entorno de Elastic Beanstalk. Por lo general, se tarda menos de cinco minutos en desacoplar una base de datos.

Si ha decidido retener la base de datos externa a su entorno de Elastic Beanstalk, deberá tomar algunos pasos adicionales para configurarla. Para obtener más información, consulte Uso de Elastic Beanstalk con Amazon RDS. Si planea utilizar la base de datos que desacopla para un entorno de producción, verifique que el tipo de almacenamiento que utiliza la base de datos es el adecuado para su carga de trabajo. Para obtener más información, consulte Almacenamiento de instancias de base de datos y Modificación de una instancia de base de datos en la Guía del usuario de Amazon RDS.

Desacoplamiento de una instancia de base de datos de RDS utilizando archivos de configuración

Puede desacoplar la instancia de base de datos de un entorno de Elastic Beanstalk sin afectar el estado del entorno. La instancia de base de datos sigue la política de eliminación de base de datos que se aplicó cuando se desacopló la base de datos.

Ambas opciones necesarias para desacoplar la base de datos se encuentran en el espacio de nombres aws:rds:dbinstance. Son los siguientes:

  • La opción DBDeletionPolicy establece la política de eliminación. Se puede establecer en los siguientes valores: Snapshot, Delete o Retain. Estos valores se describen en Ciclo de vida de la base de datos en este mismo tema.

  • La opción HasCoupledDatabase determina si el entorno tiene una base de datos acoplada.

    • Si se cambia a true, Elastic Beanstalk crea una nueva instancia de base de datos acoplada a su entorno.

    • Si se cambia a false, Elastic Beanstalk comienza a desacoplar la instancia de base de datos de su entorno.

Si desea cambiar la configuración de la base de datos antes de desacoplarla, primero aplique los cambios de configuración, en una operación independiente. Esto incluye cambiar la configuración de DBDeletionPolicy. Después de aplicar los cambios, ejecute un comando independiente para configurar la opción de desacoplamiento. Si envía otros ajustes de configuración y la configuración de desacoplamiento al mismo tiempo, los otros ajustes de configuración se ignoran y solo se aplica la configuración de desacoplamiento.

aviso

Es importante que ejecute los comandos para aplicar las configuraciones DBDeletionPolicy y HasCoupledDatabase como dos operaciones independientes. Si la política de eliminación activa ya está establecida en Delete o Snapshot, corre el riesgo de perder la base de datos. La base de datos cumple con la política de eliminación que está activa actualmente, en lugar de la política de eliminación pendiente que pretendía.

Desacoplar una instancia de base de datos de un entorno

Siga estos pasos para desacoplar la base de datos de su entorno de Elastic Beanstalk. Puede utilizar la CLI de EB o la AWS CLI para completar los pasos. Para obtener más información, consulte Personalización avanzada del entorno con archivos de configuración.

  1. Si desea cambiar la política de eliminación, configure un archivo de configuración en el siguiente formato. En este ejemplo, la política de eliminación se establece para retener.

    option_settings: aws:rds:dbinstance: DBDeletionPolicy: Retain
  2. Ejecute el comando utilizando la herramienta que prefiera para completar la actualización de configuración.

  3. Configure un archivo de configuración para definir HasCoupledDatabase como false.

    option_settings: aws:rds:dbinstance: HasCoupledDatabase: false
  4. Ejecute el comando utilizando la herramienta que prefiera para completar la actualización de configuración.

La configuración de la política de eliminación determina el resultado de la base de datos y el tiempo necesario para desacoplar la base de datos.

  • Si la política de eliminación está establecida en Delete, la base de datos se elimina. La operación puede durar aproximadamente 10 a 20 minutos, dependiendo del tamaño de la base de datos.

  • Si la política de eliminación está establecida en Snapshot, se crea una instantánea de la base de datos. A continuación, la base de datos se elimina. El tiempo necesario para este proceso varía de acuerdo con el tamaño de la base de datos.

  • Si la política de eliminación está establecida en Retain, la base de datos permanece en funcionamiento de manera externa al entorno de Elastic Beanstalk. Por lo general, se tarda menos de cinco minutos en desacoplar una base de datos.

Si ha decidido retener la base de datos externa a su entorno de Elastic Beanstalk, deberá tomar algunos pasos adicionales para configurarla. Para obtener más información, consulte Uso de Elastic Beanstalk con Amazon RDS. Si planea utilizar la base de datos que desacopla para un entorno de producción, verifique que el tipo de almacenamiento que utiliza la base de datos es el adecuado para su carga de trabajo. Para obtener más información, consulte Almacenamiento de instancias de base de datos y Modificación de una instancia de base de datos en la Guía del usuario de Amazon RDS.