

# Introducción a Amazon RDS
<a name="CHAP_GettingStarted"></a>

En los siguientes ejemplos, aprenderá cómo crear y conectarse a una instancia de base de datos utilizando Amazon Relational Database Service (Amazon RDS). Puede crear una instancia de base de datos que utilice Db2, MariaDB, MySQL, Microsoft SQL Server, Oracle o PostgreSQL.

**importante**  
Debe completar las tareas que aparecen en [Configuración del entorno para Amazon RDS](CHAP_SettingUp.md) antes de crear una instancia de base de datos o conectarse a ella.

La creación de una instancia de base de datos y la conexión a una base de datos en una instancia de base de datos son ligeramente diferentes para cada uno de los motores de base de datos. Elija uno de los siguientes motores de base de datos que desee usar para obtener información detallada acerca de la creación y la conexión a la instancia de base de datos. Una vez que ha creado su instancia de base de datos y se ha conectado a esta, hay instrucciones para ayudarle a eliminar la instancia.

**Topics**
+ [Creación y conexión a una instancia de base de datos de MariaDB](CHAP_GettingStarted.CreatingConnecting.MariaDB.md)
+ [Creación de una instancia de base de datos de Microsoft SQL Server y conexión a ella](CHAP_GettingStarted.CreatingConnecting.SQLServer.md)
+ [Creación de una instancia de base de datos MySQL y conexión a ella](CHAP_GettingStarted.CreatingConnecting.MySQL.md)
+ [Creación y conexión a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md)
+ [Creación de una instancia de base de datos de PostgreSQL y conexión a ella](CHAP_GettingStarted.CreatingConnecting.PostgreSQL.md)
+ [Explicación: crear un servidor web y una instancia de base de datos de Amazon RDS](TUT_WebAppWithRDS.md)
+ [Tutorial: Uso de una función de Lambda para obtener acceso a la base de datos de Amazon RDS](rds-lambda-tutorial.md)

# Creación y conexión a una instancia de base de datos de MariaDB
<a name="CHAP_GettingStarted.CreatingConnecting.MariaDB"></a>

En este tutorial, se crea una instancia de EC2 y una instancia de base de datos de RDS para MariaDB. El tutorial muestra cómo acceder a la instancia de base de datos desde la instancia de EC2 mediante un cliente de MySQL estándar. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

**importante**  
La creación de una Cuenta de AWS no supone ningún coste. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Instancia de base de datos de MariaDB e instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-mariadb.png)


Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

1. Use la Consola de administración de AWS: [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2) y [Creación de una instancia de base de datos de MariaDB](#CHAP_GettingStarted.Creating.MariaDB) 

1. Use CloudFormation para crear la instancia de base de datos y la instancia de EC2: [(Opcional) Crear una VPC, una instancia EC2 y una instancia MariaDB mediante CloudFormation](#CHAP_GettingStarted.CFN.MariaDB) 

El primer método utiliza **Creación sencilla** para crear una instancia de base de datos MariaDB privada con la Consola de administración de AWS. Con Creación sencilla, únicamente debe especificar el tipo de motor de base de datos, el tamaño de la instancia de base de datos y el identificador de instancias de base de datos. **Easy create (Creación sencilla)** utiliza los ajustes predeterminados para otras opciones de configuración. 

Cuando usa **Creación estándar**, se especifican más opciones de configuración al crear una instancia de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear una instancia de base de datos pública, debe utilizar **Creación estándar**. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Requisitos previos](#CHAP_GettingStarted.Prerequisites.MariaDB)
+ [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2)
+ [Creación de una instancia de base de datos de MariaDB](#CHAP_GettingStarted.Creating.MariaDB)
+ [(Opcional) Crear una VPC, una instancia EC2 y una instancia MariaDB mediante CloudFormation](#CHAP_GettingStarted.CFN.MariaDB)
+ [Conectarse a una instancia de base de datos MariaDB](#CHAP_GettingStarted.Connecting.MariaDB)
+ [Eliminación de la instancia de EC2 y la instancia de base de datos](#CHAP_GettingStarted.Deleting.MariaDB)
+ [(Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation](#CHAP_GettingStarted.DeletingCFN.MariaDB)
+ [(Opcional) Conecte la instancia de base de datos a una función de Lambda](#CHAP_GettingStarted.ComputeConnect.MariaDB)

## Requisitos previos
<a name="CHAP_GettingStarted.Prerequisites.MariaDB"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Crear una instancia de EC2
<a name="CHAP_GettingStarted.Creating.MariaDB.EC2"></a>

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

**Para crear una instancia EC2;**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS en la que desea crear la instancia de EC2.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra en la siguiente imagen.  
![\[Panel de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Se abre la página **Lanzar una instancia**.

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **ec2-database-connect**.

   1. En **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija **Amazon Linux** y, a continuación, **AMI de Amazon Linux 2023**. Mantenga los valores predeterminados para las demás opciones.  
![\[Elija una Amazon Machine Image.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un nuevo par de claves, consulte [Crear un par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) en la *Guía del usuario de Amazon EC2*.

   1. En **Permitir tráfico de SSH** en **Configuraciones de red**, elija el origen de las conexiones SSH a la instancia de EC2. 

      Puede elegir **My IP (Mi IP)** si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Un ejemplo de dirección IP es 192.0.2.1/32.

       En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

      La siguiente imagen muestra un ejemplo de la sección **Configuraciones de red**.  
![\[Configuraciones de red para una instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. No cambie los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia de EC2 en el panel **Resumen**; cuando haya terminado, elija **Lanzar instancia**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Launch Status.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

1. En la pestaña **Detalles**, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

   1. En **Resumen de la instancia**, anote el valor del **DNS IPv4 público**.  
![\[Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. En **Detalles de la instancia**, anote el valor de **Nombre del par de claves**.  
![\[Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere hasta que el **Estado de la instancia** de su instancia de EC2 tenga el estado **En ejecución** antes de continuar.

## Creación de una instancia de base de datos de MariaDB
<a name="CHAP_GettingStarted.Creating.MariaDB"></a>

El componente básico de Amazon RDS es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos MariaDB.

En este ejemplo, utilice la opción **Creación sencilla** para crear una instancia de base de datos que ejecute el motor de base de datos de MariaDB con una clase de instancia de base de datos db.t4g.micro.

**Para crear una instancia de base de datos de MariaDB con la opción Easy Create (Creación sencilla)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la instancia de base de datos.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Crear base de datos** y seleccione **Creación sencilla**.   
![\[Opción Creación sencilla.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. En **Configuration (Configuración)**, seleccione **MariaDB**.

1. Para el **tamaño de instancia de base de datos**, elija **Nivel gratuito** o **Entorno de pruebas**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.

1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **database-test1**.

1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro o deje el nombre predeterminado.

   La página **Create database (Crear base de datos)** debe ser similar a la siguiente imagen. Para las cuentas del plan gratuito, aparece **Nivel gratuito**. Para las cuentas de planes de pago, aparece **Entorno de pruebas**.  
![\[Página Crear base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-mariadb.png)

1. Para utilizar una contraseña maestra generada automáticamente para la instancia de base de datos, seleccione **Generación automática de contraseña**.

   Para introducir la contraseña maestra, desactive la casilla **Generar automáticamente una contraseña** y luego introduzca la misma contraseña en **Contraseña maestra** y **Confirmar contraseña**.

1. Para configurar una conexión con la instancia de EC2 que ha creado anteriormente, abra **Configurar conexión a EC2 *(opcional)***.

   Seleccione **Conectarse a un recurso informático de EC2**. Elija la instancia de EC2 que ha creado anteriormente.  
![\[Configure la opción de conexión a EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Expanda **Ver la configuración predeterminada de la creación sencilla**.   
![\[Configuración predeterminada de Easy Create.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-view-default-maria.png)

   Puede examinar la configuración predeterminada utilizada con **Easy create (Creación sencilla)**. La columna **Editable después de crear la base de datos** muestra las opciones que puede cambiar después de crear la base de datos.
   + Si una configuración tiene **No** en esa columna y desea una configuración diferente, puede usar **Creación estándar** para crear la instancia de base de datos.
   + Si una configuración tiene **Sí** en esa columna y desea una configuración diferente, puede utilizar **Creación estándar** para crear la instancia de base de datos o modificar la instancia de base de datos después de crearla para cambiar la configuración.

1. Elija **Creación de base de datos**.

   Para consultar la contraseña y el nombre de usuario maestros de la instancia de base de datos, seleccione **View credential details (Ver detalles de credenciales)**.

   Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse a la instancia de base de datos como el usuario maestro.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.   
Si tiene que cambiar la contraseña de usuario maestro después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. En la lista **Bases de datos**, seleccione el nombre de la nueva instancia de base de datos de MariaDB para ver sus detalles.

   La instancia de base de datos tiene el estado **Creando** hasta que está lista para usarse.  
![\[Detalles de la instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/MariaDB-Launch06.png)

   Cuando el estado cambie a **Available** (Disponible), podrá conectarse a la instancia de la base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible.

## (Opcional) Crear una VPC, una instancia EC2 y una instancia MariaDB mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.MariaDB"></a>

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y la instancia de MariaDB, puede utilizar CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de CloudFormation. Para obtener más información, consulte [Creación de una pila en la consola CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) y [Uso de pilas anidadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**importante**  
CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Para obtener más información, consulte [Precios de RDS para MariaDB](https://aws.amazon.com//rds/mariadb/pricing).
+ Descargar la plantilla de CloudFormation
+ Configurar los recursos mediante CloudFormation

### Descargar la plantilla de CloudFormation
<a name="CHAP_GettingStarted.CFN.MariaDB.Step1"></a>

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con la instancia de RDS.

Para descargar el archivo de plantilla, abra el enlace [MariaDB CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mariadb-main.template.yaml).

En la página de Github, haga clic en el botón *Descargar archivo sin procesar* para guardar el archivo YAML de la plantilla.

### Configurar los recursos mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.MariabDB.Step2"></a>

**nota**  
Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2 e instancias Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Al utilizar la plantilla de CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la sección Especificar la plantilla, seleccione **Cargar un archivo de plantilla desde el ordenador** y **Siguiente**.

1. En la página **Especificar detalles de la pila**, introduzca los siguientes parámetros:

   1. Ponga el **nombre de pila** en **MariaDBTestStack**.

   1. En **Parámetros**, defina las **zonas de disponibilidad** seleccionando tres zonas de disponibilidad.

   1. En **Configuración de host bastión de Linux**, en **Nombre de la clave**, seleccione un par de claves para iniciar sesión en su instancia de EC2.

   1. En los ajustes de **Configuración de host bastión de Linux**, ponga el **rango de IP permitido** en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es 192.0.2.1/32.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

   1. En **Configuración general de la base de datos**, ponga la **Clase de instancia de base de datos** en **db.t3.micro**.

   1. Ponga el **Nombre de la base de datos** en **database-test1**.

   1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro.

   1. Ponga **Administrar contraseña de usuario maestro de base de datos con Secrets Manager** en `false` para este tutorial.

   1. En **Contraseña de base de datos**, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

   1. En **Configuración de almacenamiento de base de datos**, ponga el **Tipo de almacenamiento de base de datos** en **gp2**.

   1. En la **Configuración de supervisión de base de datos**, ponga **Habilitar RDS Performance Insights** en falso.

   1. Deje el resto de la configuración con los valores predeterminados. Haga clic en **Siguiente** para continuar.

1. En la página **Revisar la pila**, seleccione **Enviar** después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres *BastionStack* y *RDSNS* para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte [ Viewing CloudFormation stack data and resources on the Consola de administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectarse a una instancia de base de datos MariaDB
<a name="CHAP_GettingStarted.Connecting.MariaDB"></a>

Puede usar cualquier aplicación cliente de SQL estándar para conectarse a la instancia de base de datos. En este ejemplo, se conecta a una instancia de base de datos de MariaDB mediante el cliente de línea de comandos mysql.

**Para conectarse a una instancia de base de datos de MariaDB**

1. Busque el punto de enlace (nombre de DNS) y el número de puerto de la instancia de base de datos. 

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS de la instancia de base de datos.

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Seleccione el nombre de la instancia de base de datos MariaDB para mostrar sus detalles. 

   1. En la pestaña **Connectivity & security (Conectividad y seguridad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.   
![\[Conéctese a una instancia de base de datos de MariaDB.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/MariaDBConnect1.png)

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de Amazon EC2*.

   Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Por ejemplo, suponga que `ec2-database-connect-key-pair.pem` está almacenado en `/dir1` en Linux y que el DNS IPv4 público de su instancia de EC2 es `ec2-12-345-678-90.compute-1.amazonaws.com`. Su comando SSH tendría el siguiente aspecto:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
**nota**  
La opción `-y` instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

   ```
   sudo dnf update -y
   ```

1. Instale el cliente de línea de comandos mysql desde MariaDB.

   Para instalar el cliente de línea de comandos de MariaDB en Amazon Linux 2023, ejecute el siguiente comando:

   ```
   sudo dnf install mariadb105
   ```

1. Conéctese a la instancia de base de datos de MariaDB. Por ejemplo, introduzca el siguiente comando. Esta acción le permite conectarse a la instancia de base de datos de MariaDB mediante el cliente de MySQL.

   Sustituya el punto de conexión de la instancia de base de datos (nombre de DNS) por `endpoint` y sustituya el nombre de usuario maestro que utilizó por `admin`. Proporcione la contraseña maestra que utilizó cuando se le solicite una contraseña.

   ```
   mysql -h endpoint -P 3306 -u admin -p
   ```

   Una vez especificada la contraseña del usuario, debería ver un resultado similar al siguiente.

   ```
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MariaDB connection id is 156
   Server version: 10.6.10-MariaDB-log managed by https://aws.amazon.com/rds/
    
   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
     
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
   MariaDB [(none)]>
   ```

   Para obtener más información acerca de cómo conectarse a la instancia de base de datos MariaDB, consulte [Conexión a la instancia de base de datos de MariaDB](USER_ConnectToMariaDBInstance.md). Si no puede conectarse a la instancia de base de datos, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice solo una conexión de MariaDB sin cifrar cuando el cliente y el servidor están en la misma VPC y la red es de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte . [Conexión a la instancia de base de datos de MariaDB en Amazon RDS con SSL/TLS desde el cliente de línea de comandos de MySQL (cifrado)](USER_ConnectToMariaDBInstanceSSL.CLI.md).

1. Ejecutar comandos SQL.

   Por ejemplo, el siguiente comando de SQL muestra la fecha y la hora actuales:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Eliminación de la instancia de EC2 y la instancia de base de datos
<a name="CHAP_GettingStarted.Deleting.MariaDB"></a>

Después de conectarse y explorar la instancia de EC2 de muestra y la instancia de base de datos que creó, elimínelas para que no le sigan cobrando por ellas.

Si ha utilizado CloudFormation para crear recursos, omita este paso y vaya al siguiente.

**Para eliminar la instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de EC2 y elija **Estado de la instancia** y Terminar instancia.

1. Cuando se le indique que confirme, elija **Terminar**.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte [Terminar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

**Para eliminar una instancia de base de datos sin instantánea de base de datos final**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la instancia de base de datos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Desactive **Crear la instantánea final** y **Conservar copias de seguridad automatizadas**.

1. Complete la confirmación y seleccione **Eliminar**.

## (Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MariaDB"></a>

Si ha utilizado CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y a la instancia de base de datos de muestra y de explorarlas; de este modo, ya no se le cobrará por ellas.

**Para eliminar los recursos de CloudFormation**

1. Abra la consola de CloudFormation.

1. En la página **Pilas** de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o RDSNS).

1. Elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar pila**.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html), en la *Guía del usuario de AWS CloudFormation*.

## (Opcional) Conecte la instancia de base de datos a una función de Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MariaDB"></a>

También puede conectar la instancia de base de datos de RDS para MariaDB a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte [Conexión automática de una función de Lambda y una instancia de base de datos](lambda-rds-connect.md).

# Creación de una instancia de base de datos de Microsoft SQL Server y conexión a ella
<a name="CHAP_GettingStarted.CreatingConnecting.SQLServer"></a>

En este tutorial, se crea una instancia de EC2 y una instancia de base de datos de RDS para Microsoft SQL Server. El tutorial muestra cómo acceder a la instancia de base de datos desde la instancia de EC2 mediante el cliente Microsoft SQL Server Management Studio. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella. 

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

**importante**  
La creación de una cuenta de AWS no supone ningún costo. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Instancia de EC2 e instancia de base de datos de Microsoft SQL Server.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-sqlserver.png)


Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

1. Use la Consola de administración de AWS: [Creación de una instancia de base de datos de SQL Server](#CHAP_GettingStarted.Creating.SQLServer) y [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)

1. Use CloudFormation para crear la instancia de base de datos y la instancia de EC2: [(Opcional) Crear una VPC, una instancia EC2 y una instancia de SQL Server mediante CloudFormation](#CHAP_GettingStarted.CFN.SQLServer) 

El primer método utiliza **Creación sencilla** para crear una instancia de base de datos privada de SQL Server con la Consola de administración de AWS. Con Creación sencilla, únicamente debe especificar el tipo de motor de base de datos, el tamaño de la instancia de base de datos y el identificador de instancias de base de datos. **Easy create (Creación sencilla)** utiliza los ajustes predeterminados para otras opciones de configuración. 

Cuando usa **Creación estándar**, se especifican más opciones de configuración al crear una instancia de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear una instancia de base de datos pública, debe utilizar **Creación estándar**. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Requisitos previos](#CHAP_GettingStarted.Prerequisites.SQLServer)
+ [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)
+ [Creación de una instancia de base de datos de SQL Server](#CHAP_GettingStarted.Creating.SQLServer)
+ [(Opcional) Crear una VPC, una instancia EC2 y una instancia de SQL Server mediante CloudFormation](#CHAP_GettingStarted.CFN.SQLServer)
+ [Conexión a una instancia de base de datos de SQL Server](#CHAP_GettingStarted.Connecting.SQLServer)
+ [Exploración de una instancia de base de datos de SQL Server de ejemplo](#CHAP_GettingStarted.SQLServer.Exploring)
+ [Eliminación de la instancia de EC2 y la instancia de base de datos](#CHAP_GettingStarted.Deleting.SQLServer)
+ [(Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation](#CHAP_GettingStarted.DeletingCFN.SQLServer)
+ [(Opcional) Conecte la instancia de base de datos a una función de Lambda](#CHAP_GettingStarted.ComputeConnect.SQLServer)

## Requisitos previos
<a name="CHAP_GettingStarted.Prerequisites.SQLServer"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Crear una instancia de EC2
<a name="CHAP_GettingStarted.Creating.SQLServer.EC2"></a>

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

**Para crear una instancia EC2;**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS que ha utilizado anteriormente para la base de datos.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra en la siguiente imagen.  
![\[Panel de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Se abre la página **Lanzar una instancia**.

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **ec2-database-connect**.

   1. En **Imágenes de aplicaciones y sistema operativo (Amazon Machine Image)**, elija **Windows** y, a continuación, elija **Microsoft Windows Server 2022 Base**. Mantenga los valores predeterminados para las demás opciones.  
![\[Elija una Amazon Machine Image.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial_ec2_sqlserver_create1.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un par de claves, consulte [Create a key pair](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) (Cree un par de claves) en la *Guía del usuario de instancias de Windows de Amazon EC2*.

   1. Para **Firewall (grupos de seguridad)**, en **Configuración de red**, elija **Permitir el tráfico RDP desde** para conectarse a la instancia de EC2. 

      Puede elegir **Mi IP** si la dirección IP que se muestra es correcta para las conexiones RDP. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante RDP. Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Un ejemplo de dirección IP es 192.0.2.1/32.

       En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso RDP, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante RDP. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante RDP.

      La siguiente imagen muestra un ejemplo de la sección **Configuraciones de red**.  
![\[Configuraciones de red para una instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettingsRDSMS.png)

   1. Mantenga los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia de EC2 en el panel **Resumen**; cuando haya terminado, elija **Lanzar instancia**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Estado de lanzamiento.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2. 

1. Espere hasta que el **Estado de la instancia** de su instancia de EC2 tenga el estado **En ejecución** antes de continuar.

## Creación de una instancia de base de datos de SQL Server
<a name="CHAP_GettingStarted.Creating.SQLServer"></a>

El componente básico de Amazon RDS es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos SQL Server.

En este ejemplo, se utiliza **Creación sencilla** para crear una instancia de base de datos que ejecute el motor de base de datos de SQL Server con una clase de instancia de base de datos db.t2.micro.

**Para crear una instancia de base de datos de Microsoft SQL Server con Easy create**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la instancia de base de datos.

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione **Create database (Crear base de datos)** y asegúrese de que la opción **Easy Create (Creación sencilla)** esté seleccionada.   
![\[Opción Creación sencilla.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. En **Configuration (Configuración)**, elija **Microsoft SQL Server**.

1. En **Edición**, elija **SQL Server Express Edition**.

1. En **DB instance size (Tamaño de la instancia de la base de datos)**, seleccione **Free tier (Capa gratuita)**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.

1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **database-test1**.

   La página **Create database (Crear base de datos)** debe ser similar a la siguiente imagen. Para las cuentas del plan gratuito, aparece **Nivel gratuito**. Para las cuentas de planes de pago, aparece **Entorno de pruebas**.  
![\[Engine options (Opciones del motor)\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver.png)

1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro o deje el nombre predeterminado.

1. Para configurar una conexión con la instancia de EC2 que creó anteriormente, abra **Configurar conexión a EC2 - *(opcional)***.

   Seleccione **Conectarse a un recurso informático de EC2**. Elija la instancia de EC2 que ha creado anteriormente.  
![\[Configure la opción de conexión a EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. A fin de utilizar una contraseña maestra generada automáticamente para la instancia de base de datos, seleccione la casilla **Auto generate a password (Generar automáticamente una contraseña)**.

   Para introducir la contraseña maestra, desactive la casilla **Auto generate a password (Generar una contraseña automáticamente)** y luego introduzca la misma contraseña en **Master password (Contraseña maestra)** y **Confirm password (Confirmar contraseña)**.

1. Abra la opción **Ver la configuración predeterminada de la creación sencilla**.  
![\[Configuración predeterminada de Easy Create.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-confirm.png)

   Puede examinar la configuración predeterminada utilizada con **Easy create (Creación sencilla)**. La columna **Editable después de crear la base de datos** muestra las opciones que puede cambiar después de crear la base de datos.
   + Si una configuración tiene **No** en esa columna y desea una configuración diferente, puede usar **Creación estándar** para crear la instancia de base de datos.
   + Si una configuración tiene **Sí** en esa columna y desea una configuración diferente, puede utilizar **Creación estándar** para crear la instancia de base de datos o modificar la instancia de base de datos después de crearla para cambiar la configuración.

1. Elija **Creación de base de datos**.

   Para consultar la contraseña y el nombre de usuario maestros de la instancia de base de datos, seleccione **View credential details (Ver detalles de credenciales)**.

   Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse a la instancia de base de datos como el usuario maestro.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.   
Si tiene que cambiar la contraseña de usuario maestro después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. En la lista **Bases de datos**, seleccione el nombre de la nueva instancia de base de datos de SQL Server para ver sus detalles.

   La instancia de base de datos tiene el estado **Creando** hasta que está lista para usarse.  
![\[Captura de pantalla de los detalles de la instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-launch.png)

   Cuando el estado cambie a **Available** (Disponible), podrá conectarse a la instancia de la base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible.

## (Opcional) Crear una VPC, una instancia EC2 y una instancia de SQL Server mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer"></a>

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y la instancia de SQL Server, puede utilizar CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de CloudFormation. Para obtener más información, consulte [Creación de una pila en la consola CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) y [Uso de pilas anidadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**importante**  
CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Para obtener más información, consulte [Precios de RDS para SQL Server](https://aws.amazon.com//rds/sqlserver/pricing).

Para crear sus recursos con la consola CloudFormation, siga estos pasos:
+ Descargar la plantilla de CloudFormation
+ Configurar los recursos mediante CloudFormation

### Descargar la plantilla de CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer.Step1"></a>

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con la instancia de RDS.

Para descargar el archivo de plantilla, abra el enlace [SQL Server CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-sqlserver-main.template.yaml).

En la página de Github, haga clic en el botón *Descargar archivo sin procesar* para guardar el archivo YAML de la plantilla.

### Configurar los recursos mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer.Step2"></a>

**nota**  
Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2 e instancias Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Al utilizar la plantilla de CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la sección Especificar la plantilla, seleccione **Cargar un archivo de plantilla desde el ordenador** y **Siguiente**.

1. En la página **Especificar detalles de la pila**, introduzca los siguientes parámetros:

   1. Ponga el **nombre de pila** en **SQLServerTestStack**.

   1. En **Parámetros**, defina las **zonas de disponibilidad** seleccionando tres zonas de disponibilidad.

   1. En **Configuración de host bastión de Linux**, en **Nombre de la clave**, seleccione un par de claves para iniciar sesión en su instancia de EC2.

   1. En los ajustes de **Configuración de host bastión de Linux**, ponga el **rango de IP permitido** en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es 192.0.2.1/32.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

   1. En **Configuración general de la base de datos**, ponga la **Clase de instancia de base de datos** en **db.t3.micro**.

   1. Ponga el **Nombre de la base de datos** en **database-test1**.

   1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro.

   1. Ponga **Administrar contraseña de usuario maestro de base de datos con Secrets Manager** en `false` para este tutorial.

   1. En **Contraseña de base de datos**, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

   1. En **Configuración de almacenamiento de base de datos**, ponga el **Tipo de almacenamiento de base de datos** en **gp2**.

   1. En la **Configuración de supervisión de base de datos**, ponga **Habilitar RDS Performance Insights** en falso.

   1. Deje el resto de la configuración con los valores predeterminados. Haga clic en **Siguiente** para continuar.

1. En la página **Configurar opciones de pila**, deje todas las opciones predeterminadas. Haga clic en **Siguiente** para continuar.

1. En la página **Revisar la pila**, seleccione **Enviar** después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres *BastionStack* y *RDSNS* para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte [ Viewing CloudFormation stack data and resources on the Consola de administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conexión a una instancia de base de datos de SQL Server
<a name="CHAP_GettingStarted.Connecting.SQLServer"></a>

En el siguiente procedimiento, puede conectarse a su instancia de base de datos utilizando Microsoft SQL Server Management Studio (SSMS).

**Para conectarse a una instancia de base de datos de RDS para SQL Server utilizando SSMS**

1. Busque el punto de enlace (nombre de DNS) y el número de puerto de la instancia de base de datos. 

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS de la instancia de base de datos.

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Seleccione el nombre de la instancia de base de datos SQL Server para mostrar sus detalles. 

   1. En la pestaña **Connectivity (Conectividad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.  
![\[Conéctese a una instancia de base de datos de Microsoft SQL Server.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/SQLServerConnect2.png)

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión a la instancia de Microsoft Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows) en la *Guía del usuario de instancias de Windows de Amazon EC2*.

1. Instale el cliente de SQL Server Management Studio (SSMS) de Microsoft.

   Para descargar una versión independiente de este SSMS en su instancia de EC2, consulte [Download SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) (Descarga de SQL Server Management Studio [SSMS]) en la documentación de Microsoft.

   1. Utilice el menú Inicio para abrir Internet Explorer.

   1. Utilice Internet Explorer para descargar e instalar una versión independiente de SSMS. Si se le indica que el sitio no es de confianza, añádalo a la lista de sitios de confianza.

1. Inicie SQL Server Management Studio (SSMS). 

   Aparecerá el cuadro de diálogo **Connect to Server**. 

1. Proporcione la siguiente información para la instancia de base de datos de ejemplo. 

   1. En **Server type**, elija **Database Engine**. 

   1. En **Server name (Nombre de servidor)**, introduzca el nombre de DNS, seguido de una coma y el número de puerto (el puerto predeterminado es 1433). Por ejemplo, el nombre del servidor debería tener el siguiente aspecto:

      ```
      database-test1.0123456789012.us-west-2.rds.amazonaws.com,1433
      ```

   1. En **Authentication**, elija **SQL Server Authentication**. 

   1. En **Inicio de sesión**, escriba el nombre de usuario que eligió para la instancia de base de datos de ejemplo. Esto también se conoce como nombre de usuario maestro.

   1. En **Password (Contraseña)**, escriba la contraseña que eligió anteriormente para la instancia de base de datos de ejemplo. Esto también se conoce como contraseña de usuario maestra.

1. Elija **Connect**. 

   Luego de unos instantes, SSMS se conecta a su instancia de base de datos. Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice solo una conexión de SQL Server sin cifrar cuando el cliente y el servidor estén en la misma VPC y la red sea de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte [Uso de SSL con una instancia de base de datos de Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

Para obtener más información sobre la conexión a la instancia de base de datos de Microsoft SQL Server, consulte [Conexión a la instancia de base de datos de Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Para obtener más información acerca de los problemas de conexión, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

## Exploración de una instancia de base de datos de SQL Server de ejemplo
<a name="CHAP_GettingStarted.SQLServer.Exploring"></a>

Puede explorar su instancia de base de datos de ejemplo utilizando Microsoft SQL Server Management Studio (SSMS).

**Para examinar una instancia de base de datos utilizando SSMS**

1. Su instancia de base de datos de SQL Server incluye bases de datos de sistema estándar integradas de SQL Server (master, model, msdb y tempdb). Para explorar las bases de datos de sistema, haga lo siguiente: 

   1. En SSMS, en el menú **Ver** elija **Explorador de objetos**.

   1. Expanda la instancia de base de datos, expanda **Databases (Bases de datos)** y, a continuación, expanda **System Databases (Bases de datos del sistema)** como se muestra.   
![\[Explorador de objetos que muestra las bases de datos del sistema.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/SQL-SSMS-SystemDBs.png)

   Su instancia de base de datos de SQL Server también viene con una base de datos llamada `rdsadmin`. Amazon RDS utiliza esta base de datos para almacenar los objetos que utiliza para administrar su base de datos. La base de datos `rdsadmin` también incluye procedimientos almacenados que puede ejecutar para realizar tareas avanzadas. 

1. Comience a crear sus propias bases de datos y realizar consultas en la instancia de base de datos y bases de datos como siempre. Para ejecutar una consulta de prueba en la instancia de base de datos de ejemplo, haga lo siguiente: 

   1. En SSMS, en el menú **Archivo**, vaya a **Nuevo** y, a continuación, elija **Consulta con conexión actual**. 

   1. Escriba la siguiente consulta SQL:

      ```
      select @@VERSION
      ```

   1. Ejecute la consulta. SSMS devuelve la versión de SQL Server de su instancia de base de datos de Amazon RDS.   
![\[Ventana de consulta SQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/SQL-Connect-Query.png)

## Eliminación de la instancia de EC2 y la instancia de base de datos
<a name="CHAP_GettingStarted.Deleting.SQLServer"></a>

Después de conectarse y explorar la instancia de EC2 de muestra y la instancia de base de datos que creó, elimínelas para que no le sigan cobrando por ellas.

Si ha utilizado CloudFormation para crear recursos, omita este paso y vaya al siguiente.

**Para eliminar la instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de EC2 y elija **Estado de la instancia** y Terminar instancia.

1. Cuando se le indique que confirme, elija **Terminar**.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte [Terminar una instancia](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/terminating-instances.html) en la *Guía del usuario de instancias de Windows de Amazon EC2*.

**Para eliminar una instancia de base de datos sin instantánea de base de datos final**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la instancia de base de datos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Desactive **Crear la instantánea final** y **Conservar copias de seguridad automatizadas**.

1. Complete la confirmación y seleccione **Eliminar**. 

## (Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.SQLServer"></a>

Si ha utilizado CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y a la instancia de base de datos de muestra y de explorarlas; de este modo, ya no se le cobrará por ellas.

**Para eliminar los recursos de CloudFormation**

1. Abra la consola de CloudFormation.

1. En la página **Pilas** de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o RDSNS).

1. Elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar pila**.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html), en la *Guía del usuario de AWS CloudFormation*.

## (Opcional) Conecte la instancia de base de datos a una función de Lambda
<a name="CHAP_GettingStarted.ComputeConnect.SQLServer"></a>

También puede conectar la instancia de base de datos de RDS para SQL Server a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte [Conexión automática de una función de Lambda y una instancia de base de datos](lambda-rds-connect.md).

# Creación de una instancia de base de datos MySQL y conexión a ella
<a name="CHAP_GettingStarted.CreatingConnecting.MySQL"></a>

En este tutorial, se crea una instancia de EC2 y una instancia de base de datos de RDS para MySQL. El tutorial muestra cómo acceder a la instancia de base de datos desde la instancia de EC2 mediante un cliente de MySQL estándar. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

**importante**  
La creación de una cuenta de AWS no supone ningún costo. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Instancia de EC2 e instancia de base de datos de MySQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-mysql.png)


Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

1. Use la Consola de administración de AWS: [Creación de una instancia de base de datos de MySQL](#CHAP_GettingStarted.Creating.MySQL) y [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.MySQL.EC2) 

1. Use CloudFormation para crear la instancia de base de datos y la instancia de EC2: [(Opcional) Crear una VPC, una instancia EC2 y una instancia MySQL mediante CloudFormation](#CHAP_GettingStarted.CFN.MySQL) 

El primer método usa **Creación sencilla** para crear una instancia de base de datos MySQL privada con la Consola de administración de AWS. Con Creación sencilla, únicamente debe especificar el tipo de motor de base de datos, el tamaño de la instancia de base de datos y el identificador de instancias de base de datos. **Easy create (Creación sencilla)** utiliza los ajustes predeterminados para otras opciones de configuración.

Cuando usa **Creación estándar**, se especifican más opciones de configuración al crear una instancia de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear una instancia de base de datos pública, debe utilizar **Creación estándar**. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Requisitos previos](#CHAP_GettingStarted.Prerequisites.MySQL)
+ [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.MySQL.EC2)
+ [Creación de una instancia de base de datos de MySQL](#CHAP_GettingStarted.Creating.MySQL)
+ [(Opcional) Crear una VPC, una instancia EC2 y una instancia MySQL mediante CloudFormation](#CHAP_GettingStarted.CFN.MySQL)
+ [Conectarse a una instancia de base de datos MySQL](#CHAP_GettingStarted.Connecting.MySQL)
+ [Eliminación de la instancia de EC2 y la instancia de base de datos](#CHAP_GettingStarted.Deleting.MySQL)
+ [(Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation](#CHAP_GettingStarted.DeletingCFN.MySQL)
+ [(Opcional) Conecte la instancia de base de datos a una función de Lambda](#CHAP_GettingStarted.ComputeConnect.MySQL)

## Requisitos previos
<a name="CHAP_GettingStarted.Prerequisites.MySQL"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Crear una instancia de EC2
<a name="CHAP_GettingStarted.Creating.MySQL.EC2"></a>

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

**Para crear una instancia EC2;**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS en la que desea crear la instancia de EC2.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra en la siguiente imagen.  
![\[Panel de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Se abre la página **Lanzar una instancia**.

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **ec2-database-connect**.

   1. En **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija **Amazon Linux** y, a continuación, **AMI de Amazon Linux 2023**. Mantenga los valores predeterminados para las demás opciones.  
![\[Elija una Amazon Machine Image.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un nuevo par de claves, consulte [Crear un par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) en la *Guía del usuario de Amazon EC2*.

   1. En **Permitir tráfico de SSH** en **Configuraciones de red**, elija el origen de las conexiones SSH a la instancia de EC2. 

      Puede elegir **My IP (Mi IP)** si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Un ejemplo de dirección IP es 192.0.2.1/32.

       En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

      La siguiente imagen muestra un ejemplo de la sección **Configuraciones de red**.  
![\[Configuraciones de red para una instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. No cambie los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia de EC2 en el panel **Resumen**; cuando haya terminado, elija **Lanzar instancia**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Launch Status.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

1. En la pestaña **Detalles**, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

   1. En **Resumen de la instancia**, anote el valor del **DNS IPv4 público**.  
![\[Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. En **Detalles de la instancia**, anote el valor de **Nombre del par de claves**.  
![\[Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere hasta que el **Estado de la instancia** de su instancia de EC2 tenga el estado **En ejecución** antes de continuar.

## Creación de una instancia de base de datos de MySQL
<a name="CHAP_GettingStarted.Creating.MySQL"></a>

El componente básico de Amazon RDS es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos MySQL.

En este ejemplo, utilice la opción **Creación sencilla** para crear una instancia de base de datos que ejecuta el motor de la base de datos de MySQL con una clase de instancia de base de datos db.t3.micro.

**Para crear una instancia de base de datos de MySQL con la opción Easy Create (Creación sencilla)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS que utilizó anteriormente para la instancia de EC2.

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione **Create database (Crear base de datos)** y asegúrese de que la opción **Easy Create (Creación sencilla)** esté seleccionada.   
![\[Opción Creación sencilla.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. En **Configuration (Configuración)**, seleccione **MySQL**.

1. En **DB instance size (Tamaño de la instancia de base de datos)**, seleccione **Free tier (Capa gratuita)**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.

1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **database-test1**.

1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro o deje el nombre predeterminado.

   La página **Create database (Crear base de datos)** debe ser similar a la siguiente imagen. Para las cuentas del plan gratuito, aparece **Nivel gratuito**. Para las cuentas de planes de pago, aparece **Entorno de pruebas**.  
![\[Página Crear base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-mysql.png)

1. Para utilizar una contraseña maestra generada automáticamente para la instancia de base de datos, seleccione **Generación automática de contraseña**.

   Para introducir la contraseña maestra, asegúrese de desactivar la casilla **Generación automática de contraseña** y luego introduzca la misma contraseña en **Contraseña maestra** y **Confirmar contraseña**.

1. Para configurar una conexión con la instancia de EC2 que creó anteriormente, abra **Configurar conexión a EC2 - *(opcional)***.

   Seleccione **Conectarse a un recurso informático de EC2**. Elija la instancia de EC2 que ha creado anteriormente.  
![\[Configure la opción de conexión a EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. (Opcional) Abra la opción **View default settings for Easy create (Ver configuración predeterminada para Creación sencilla)**.  
![\[Configuración predeterminada de Easy Create.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-view-default-mysql.png)

   Puede examinar la configuración predeterminada utilizada con **Easy create (Creación sencilla)**. La columna **Editable después de crear la base de datos** muestra las opciones que puede cambiar después de crear la base de datos.
   + Si una configuración tiene **No** en esa columna y desea una configuración diferente, puede usar **Creación estándar** para crear la instancia de base de datos.
   + Si una configuración tiene **Sí** en esa columna y desea una configuración diferente, puede utilizar **Creación estándar** para crear la instancia de base de datos o modificar la instancia de base de datos después de crearla para cambiar la configuración.

1. Elija **Creación de base de datos**.

   Para consultar la contraseña y el nombre de usuario maestros de la instancia de base de datos, seleccione **View credential details (Ver detalles de credenciales)**.

   Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse a la instancia de base de datos como el usuario maestro.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.   
Si tiene que cambiar la contraseña de usuario maestro después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. En la lista **Bases de datos**, seleccione el nombre de la nueva instancia de base de datos de MySQL para ver sus detalles.

   La instancia de base de datos tiene el estado **Creando** hasta que está lista para usarse.  
![\[Detalles de la instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/MySQL-Launch06.png)

   Cuando el estado cambie a **Available** (Disponible), podrá conectarse a la instancia de la base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible.

## (Opcional) Crear una VPC, una instancia EC2 y una instancia MySQL mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL"></a>

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y la instancia de MySQL, puede utilizar CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de CloudFormation. Para obtener más información, consulte [Creación de una pila en la consola CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) y [Uso de pilas anidadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**importante**  
CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Para obtener más información, consulte [Precios de RDS para MySQL](https://aws.amazon.com//rds/mysql/pricing).

Para crear sus recursos con la consola CloudFormation, siga estos pasos:
+ Descargar la plantilla de CloudFormation
+ Configurar los recursos mediante CloudFormation

### Descargar la plantilla de CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL.Step1"></a>

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con la instancia de RDS.

Para descargar el archivo de plantilla, abra el enlace [MySQL CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mysql-main.template.yaml).

En la página de Github, haga clic en el botón *Descargar archivo sin procesar* para guardar el archivo YAML de la plantilla.

### Configurar los recursos mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL.Step2"></a>

**nota**  
Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2 e instancias Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Al utilizar la plantilla de CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la sección Especificar la plantilla, seleccione **Cargar un archivo de plantilla desde el ordenador** y **Siguiente**.

1. En la página **Especificar detalles de la pila**, introduzca los siguientes parámetros:

   1. Ponga el **nombre de pila** en **MySQLTestStack**.

   1. En **Parámetros**, defina las **zonas de disponibilidad** seleccionando tres zonas de disponibilidad.

   1. En **Configuración de host bastión de Linux**, en **Nombre de la clave**, seleccione un par de claves para iniciar sesión en su instancia de EC2.

   1. En los ajustes de **Configuración de host bastión de Linux**, ponga el **rango de IP permitido** en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es 192.0.2.1/32.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

   1. En **Configuración general de la base de datos**, ponga la **Clase de instancia de base de datos** en **db.t3.micro**.

   1. Ponga el **Nombre de la base de datos** en **database-test1**.

   1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro.

   1. Ponga **Administrar contraseña de usuario maestro de base de datos con Secrets Manager** en `false` para este tutorial.

   1. En **Contraseña de base de datos**, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

   1. En **Configuración de almacenamiento de base de datos**, ponga el **Tipo de almacenamiento de base de datos** en **gp2**.

   1. En la **Configuración de supervisión de base de datos**, ponga **Habilitar RDS Performance Insights** en falso.

   1. Deje el resto de la configuración con los valores predeterminados. Haga clic en **Siguiente** para continuar.

1. En la página **Configurar opciones de pila**, deje todas las opciones predeterminadas. Haga clic en **Siguiente** para continuar.

1. En la página **Revisar la pila**, seleccione **Enviar** después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres *BastionStack* y *RDSNS* para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte [ Viewing CloudFormation stack data and resources on the Consola de administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectarse a una instancia de base de datos MySQL
<a name="CHAP_GettingStarted.Connecting.MySQL"></a>

Puede usar cualquier aplicación cliente de SQL estándar para conectarse a la instancia de base de datos. En este ejemplo, se conecta a una instancia de base de datos de MySQL mediante el cliente de línea de comandos mysql.

**Para conectarse a una instancia de base de datos de MySQL**

1. Busque el punto de enlace (nombre de DNS) y el número de puerto de la instancia de base de datos. 

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS de la instancia de base de datos.

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Seleccione el nombre de la instancia de base de datos MySQL para mostrar sus detalles. 

   1. En la pestaña **Connectivity & security (Conectividad y seguridad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.   
![\[Conéctese a una instancia de base de datos de MySQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/MySQLConnect1.png)

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de Amazon EC2*.

   Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Por ejemplo, suponga que `ec2-database-connect-key-pair.pem` está almacenado en `/dir1` en Linux y que el DNS IPv4 público de su instancia de EC2 es `ec2-12-345-678-90.compute-1.amazonaws.com`. Su comando SSH tendría el siguiente aspecto:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
**nota**  
La opción `-y` instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

   ```
   sudo dnf update -y
   ```

1.  Para instalar el cliente de línea de comandos mysql de MariaDB en Amazon Linux 2023, ejecute el siguiente comando:

   ```
   sudo dnf install mariadb105
   ```

1. Conéctese a la instancia de base de datos de MySQL. Por ejemplo, introduzca el siguiente comando. Esta acción le permite conectarse a la instancia de base de datos de MySQL mediante el cliente de MySQL.

   Sustituya el punto de conexión de la instancia de base de datos (nombre de DNS) por `endpoint` y sustituya el nombre de usuario maestro que utilizó por `admin`. Proporcione la contraseña maestra que utilizó cuando se le solicite una contraseña.

   ```
   mysql -h endpoint -P 3306 -u admin -p
   ```

   Una vez especificada la contraseña del usuario, debería ver un resultado similar al siguiente.

   ```
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MySQL connection id is 3082
   Server version: 8.0.28 Source distribution
   
   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
   
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
   
   MySQL [(none)]>
   ```

   Para obtener más información acerca de cómo conectarse a la instancia de base de datos de MySQL, consulte [Conexión a la instancia de base de datos de MySQL](USER_ConnectToInstance.md). Si no puede conectarse a la instancia de base de datos, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice sólo una conexión MySQL sin cifrar cuando el cliente y el servidor están en la misma VPC y la red es de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte [Conexión a la instancia de base de datos de MySQL en Amazon RDS con SSL/TLS desde el cliente de línea de comandos de MySQL (cifrado)](USER_ConnectToInstanceSSL.CLI.md).

1. Ejecutar comandos SQL.

   Por ejemplo, el siguiente comando de SQL muestra la fecha y la hora actuales:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Eliminación de la instancia de EC2 y la instancia de base de datos
<a name="CHAP_GettingStarted.Deleting.MySQL"></a>

Después de conectarse y explorar la instancia de EC2 de muestra y la instancia de base de datos que creó, elimínelas para que no le sigan cobrando por ellas.

Si ha utilizado CloudFormation para crear recursos, omita este paso y vaya al siguiente.

**Para eliminar la instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de EC2 y elija **Estado de la instancia** y Terminar instancia.

1. Cuando se le indique que confirme, elija **Terminar**.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte [Terminar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

**Para eliminar una instancia de base de datos sin instantánea de base de datos final**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la instancia de base de datos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Desactive **Crear la instantánea final** y **Conservar copias de seguridad automatizadas**.

1. Complete la confirmación y seleccione **Eliminar**. 

## (Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MySQL"></a>

Si ha utilizado CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y a la instancia de base de datos de muestra y de explorarlas; de este modo, ya no se le cobrará por ellas.

**Para eliminar los recursos de CloudFormation**

1. Abra la consola de CloudFormation.

1. En la página **Pilas** de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o RDSNS).

1. Elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar pila**.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html), en la *Guía del usuario de AWS CloudFormation*.

## (Opcional) Conecte la instancia de base de datos a una función de Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MySQL"></a>

También puede conectar la instancia de base de datos de RDS para MySQL a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte [Conexión automática de una función de Lambda y una instancia de base de datos](lambda-rds-connect.md).

# Creación y conexión a una instancia de base de datos de Oracle
<a name="CHAP_GettingStarted.CreatingConnecting.Oracle"></a>

En este tutorial, se crea una instancia de EC2 y una instancia de base de datos de RDS para Oracle. El tutorial muestra cómo acceder a la instancia de base de datos desde la instancia de EC2 mediante un cliente de Oracle estándar. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

**importante**  
La creación de una cuenta de AWS no supone ningún costo. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Instancia de EC2 e instancia de base de datos de Oracle.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-oracle.png)


Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

1. Use la Consola de administración de AWS: [Paso 2: crear una instancia de base de datos de Oracle](#CHAP_GettingStarted.Creating.Oracle) y [Paso 1: crear una instancia de EC2](#CHAP_GettingStarted.Creating.Oracle.EC2) 

1. Use CloudFormation para crear la instancia de base de datos y la instancia de EC2: [(Opcional) Crear una VPC, una instancia EC2 y una instancia de base de datos de Oracle mediante CloudFormation](#CHAP_GettingStarted.CFN.Oracle) 

El primer método utiliza **Creación sencilla** para crear una instancia de base de datos Oracle privada con la Consola de administración de AWS. Con Creación sencilla, únicamente debe especificar el tipo de motor de base de datos, el tamaño de la instancia de base de datos y el identificador de instancias de base de datos. **Easy create (Creación sencilla)** utiliza los ajustes predeterminados para otras opciones de configuración.

Cuando usa **Creación estándar**, se especifican más opciones de configuración al crear una instancia de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear una instancia de base de datos pública, debe utilizar **Creación estándar**. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Requisitos previos](#CHAP_GettingStarted.Prerequisites.Oracle)
+ [Paso 1: crear una instancia de EC2](#CHAP_GettingStarted.Creating.Oracle.EC2)
+ [Paso 2: crear una instancia de base de datos de Oracle](#CHAP_GettingStarted.Creating.Oracle)
+ [(Opcional) Crear una VPC, una instancia EC2 y una instancia de base de datos de Oracle mediante CloudFormation](#CHAP_GettingStarted.CFN.Oracle)
+ [Paso 3: conectar el cliente de SQL a una instancia de base de datos de Oracle](#CHAP_GettingStarted.Connecting.Oracle)
+ [Paso 4: eliminar la instancia de EC2 y la instancia de base de datos](#CHAP_GettingStarted.Deleting.Oracle)
+ [(Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation](#CHAP_GettingStarted.DeletingCFN.Oracle)
+ [(Opcional) Conecte la instancia de base de datos a una función de Lambda](#CHAP_GettingStarted.ComputeConnect.Oracle)

## Requisitos previos
<a name="CHAP_GettingStarted.Prerequisites.Oracle"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Paso 1: crear una instancia de EC2
<a name="CHAP_GettingStarted.Creating.Oracle.EC2"></a>

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

**Para crear una instancia EC2;**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS en la que desea crear la instancia de EC2.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra en la siguiente imagen.  
![\[Panel de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Se abre la página **Lanzar una instancia**.

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **ec2-database-connect**.

   1. En **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija **Amazon Linux** y, a continuación, **AMI de Amazon Linux 2023**. Mantenga los valores predeterminados para las demás opciones.  
![\[Elija una Amazon Machine Image.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un nuevo par de claves, consulte [Crear un par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) en la *Guía del usuario de Amazon EC2*.

   1. En **Permitir tráfico de SSH** en **Configuraciones de red**, elija el origen de las conexiones SSH a la instancia de EC2. 

      Puede elegir **My IP (Mi IP)** si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Un ejemplo de dirección IP es 192.0.2.1/32.

       En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

      La siguiente imagen muestra un ejemplo de la sección **Configuraciones de red**.  
![\[Configuraciones de red para una instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. No cambie los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia de EC2 en el panel **Resumen**; cuando haya terminado, elija **Lanzar instancia**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Launch Status.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

1. En la pestaña **Detalles**, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

   1. En **Resumen de la instancia**, anote el valor del **DNS IPv4 público**.  
![\[Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. En **Detalles de la instancia**, anote el valor de **Nombre del par de claves**.  
![\[Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere hasta que el **Estado de la instancia** de su instancia de EC2 tenga el estado **En ejecución** antes de continuar.

## Paso 2: crear una instancia de base de datos de Oracle
<a name="CHAP_GettingStarted.Creating.Oracle"></a>

El componente básico de Amazon RDS es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos Oracle.

En este ejemplo, utilice la opción **Creación sencilla** para crear una instancia de base de datos que ejecuta el motor de la base de datos de Oracle con una clase de instancia de base de datos db.m5.large.

**Para crear una instancia de base de datos de Oracle con Creación sencilla**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la instancia de base de datos.

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione **Create database (Crear base de datos)** y asegúrese de que la opción **Easy Create (Creación sencilla)** esté seleccionada.   
![\[Opción Creación sencilla.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. En **Configuration (Configuración)**, elija **Oracle**.

1. En **DB instance size (Tamaño de la instancia de base de datos)**, seleccione **Dev/Test (Desarrollo/Prueba)**.

1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **database-test1**.

1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro o deje el nombre predeterminado.

   La página **Create database (Crear base de datos)** debe ser similar a la siguiente imagen.  
![\[Página Crear base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-oracle2.png)

1. Para utilizar una contraseña maestra generada automáticamente para la instancia de base de datos, seleccione **Generación automática de contraseña**.

   Para introducir la contraseña maestra, asegúrese de desactivar la casilla **Generación automática de contraseña** y luego introduzca la misma contraseña en **Contraseña maestra** y **Confirmar contraseña**.

1. Para configurar una conexión con la instancia de EC2 que creó anteriormente, abra **Configurar conexión a EC2 - *(opcional)***.

   Seleccione **Conectarse a un recurso informático de EC2**. Elija la instancia de EC2 que ha creado anteriormente.  
![\[Configure la opción de conexión a EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Abra la opción **Ver la configuración predeterminada de la creación sencilla**.  
![\[Configuración predeterminada de Easy Create.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-view-default-Oracle.png)

   Puede examinar la configuración predeterminada utilizada con **Easy create (Creación sencilla)**. La columna **Editable después de crear la base de datos** muestra las opciones que puede cambiar después de crear la base de datos.
   + Si una configuración tiene **No** en esa columna y desea una configuración diferente, puede usar **Creación estándar** para crear la instancia de base de datos.
   + Si una configuración tiene **Sí** en esa columna y desea una configuración diferente, puede utilizar **Creación estándar** para crear la instancia de base de datos o modificar la instancia de base de datos después de crearla para cambiar la configuración.

1. Elija **Creación de base de datos**.

   Para consultar la contraseña y el nombre de usuario maestros de la instancia de base de datos, seleccione **View credential details (Ver detalles de credenciales)**.

   Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse a la instancia de base de datos como el usuario maestro.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.   
Si tiene que cambiar la contraseña de usuario maestro después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. En la lista **Bases de datos**, seleccione el nombre de la nueva instancia de base de datos de Oracle para ver sus detalles.

   La instancia de base de datos tiene el estado **Creando** hasta que está lista para usarse.  
![\[Detalles de la instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Oracle-Launch05.png)

   Cuando el estado cambie a **Available** (Disponible), podrá conectarse a la instancia de la base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible. Mientras se crea la instancia de base de datos, puede ir al siguiente paso y crear una instancia de EC2.

## (Opcional) Crear una VPC, una instancia EC2 y una instancia de base de datos de Oracle mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle"></a>

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y la instancia de base de datos de Oracle, puede utilizar CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de CloudFormation. Para obtener más información, consulte [Creación de una pila en la consola CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) y [Uso de pilas anidadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**importante**  
CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Para obtener más información, consulte [Precios de RDS para Oracle](https://aws.amazon.com//rds/oracle/pricing).

Para crear sus recursos con la consola CloudFormation, siga estos pasos:
+ Paso 1: Descargar la plantilla de CloudFormation
+ Paso 2: Configurar los recursos mediante CloudFormation

### Descargar la plantilla de CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle.Step1"></a>

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con la instancia de RDS.

Para descargar el archivo de plantilla, abra el enlace [Oracle CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-oracle-main.template.yaml).

En la página de Github, haga clic en el botón *Descargar archivo sin procesar* para guardar el archivo YAML de la plantilla.

### Configurar los recursos mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle.Step2"></a>

**nota**  
Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2 e instancias Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Al utilizar la plantilla de CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la sección Especificar la plantilla, seleccione **Cargar un archivo de plantilla desde el ordenador** y **Siguiente**.

1. En la página **Especificar detalles de la pila**, introduzca los siguientes parámetros:

   1. Ponga el **nombre de pila** en **OracleTestStack**.

   1. En **Parámetros**, defina las **zonas de disponibilidad** seleccionando tres zonas de disponibilidad.

   1. En **Configuración de host bastión de Linux**, en **Nombre de la clave**, seleccione un par de claves para iniciar sesión en su instancia de EC2.

   1. En los ajustes de **Configuración de host bastión de Linux**, ponga el **rango de IP permitido** en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es 192.0.2.1/32.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

   1. En **Configuración general de la base de datos**, ponga la **Clase de instancia de base de datos** en **db.t3.micro**.

   1. Ponga el **Nombre de la base de datos** en **database-test1**.

   1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro.

   1. Ponga **Administrar contraseña de usuario maestro de base de datos con Secrets Manager** en `false` para este tutorial.

   1. En **Contraseña de base de datos**, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

   1. En **Configuración de almacenamiento de base de datos**, ponga el **Tipo de almacenamiento de base de datos** en **gp2**.

   1. En la **Configuración de supervisión de base de datos**, ponga **Habilitar RDS Performance Insights** en falso.

   1. Deje el resto de la configuración con los valores predeterminados. Haga clic en **Siguiente** para continuar.

1. En la página **Configurar opciones de pila**, deje todas las opciones predeterminadas. Haga clic en **Siguiente** para continuar.

1. En la página **Revisar la pila**, seleccione **Enviar** después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres *BastionStack* y *RDSNS* para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte [ Viewing CloudFormation stack data and resources on the Consola de administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Paso 3: conectar el cliente de SQL a una instancia de base de datos de Oracle
<a name="CHAP_GettingStarted.Connecting.Oracle"></a>

Puede usar cualquier aplicación cliente de SQL estándar para conectarse a la instancia de base de datos. En este ejemplo, se conecta a una instancia de base de datos de Oracle mediante el cliente de línea de comandos de Oracle.

**Para conectarse a una instancia de base de datos de Oracle**

1. Busque el punto de enlace (nombre de DNS) y el número de puerto de la instancia de base de datos. 

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS de la instancia de base de datos.

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Seleccione el nombre de la instancia de base de datos Oracle para mostrar sus detalles. 

   1. En la pestaña **Connectivity & security (Conectividad y seguridad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.   
![\[Conéctese a una instancia de base de datos de Oracle.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de Amazon EC2*.

   Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Por ejemplo, suponga que `ec2-database-connect-key-pair.pem` está almacenado en `/dir1` en Linux y que el DNS IPv4 público de su instancia de EC2 es `ec2-12-345-678-90.compute-1.amazonaws.com`. Su comando SSH tendría el siguiente aspecto:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
**nota**  
La opción `-y` instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

   ```
   sudo dnf update -y
   ```

1. En un navegador web, vaya a [https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html).

1. Para obtener la versión más reciente de la base de datos que aparece en la página web, copie los enlaces .rpm (no los enlaces .zip) del paquete básico de Instant Client y del package de SQL\$1Plus. Por ejemplo, los siguientes enlaces corresponden a la versión 21.9 de Oracle Database:
   + https://download.oracle.com/otn\$1software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86\$164.rpm
   + https://download.oracle.com/otn\$1software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86\$164.rpm

1. En su sesión de SSH, ejecute el comando `wget` para descargar los archivos .rpm desde los enlaces que obtuvo en el paso anterior. En el siguiente ejemplo, se descargan los archivos.rpm de la versión 21.9 de Oracle Database:

   ```
   wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm
   wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
   ```

1. Ejecute el comando `dnf` para instalar los paquetes de la manera siguiente:

   ```
   sudo dnf install oracle-instantclient-*.rpm
   ```

1. Inicie SQL\$1Plus y conéctese a la instancia de base de datos de Oracle. Por ejemplo, introduzca el siguiente comando.

   Sustituya el punto de conexión de la instancia de base de datos (nombre de DNS) por `oracle-db-instance-endpoint` y sustituya el nombre de usuario maestro que utilizó por `admin`. Cuando usa **Creación sencilla** para Oracle, el nombre de la base de datos es `DATABASE`. Proporcione la contraseña maestra que utilizó cuando se le solicite una contraseña.

   ```
   sqlplus admin@oracle-db-instance-endpoint:1521/DATABASE
   ```

   Una vez especificada la contraseña del usuario, debería ver un resultado similar al siguiente.

   ```
   SQL*Plus: Release 21.0.0.0.0 - Production on Wed Mar 1 16:41:28 2023
   Version 21.9.0.0.0
   
   Copyright (c) 1982, 2022, Oracle.  All rights reserved.
   
   Enter password: 
   Last Successful login time: Wed Mar 01 2023 16:30:52 +00:00
   
   Connected to:
   Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
   Version 19.18.0.0.0
   
   SQL>
   ```

   Para obtener más información sobre la conexión a una instancia de base de datos de RDS para Oracle, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md). Si no puede conectarse a la instancia de base de datos, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice solo una conexión Oracle sin cifrar cuando el cliente y el servidor estén en la misma VPC y la red sea de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte . [Protección de conexiones de instancias de base de datos de Oracle](Oracle.Concepts.RestrictedDBAPrivileges.md).

1. Ejecutar comandos SQL.

   Por ejemplo, el siguiente comando de SQL muestra la fecha actual:

   ```
   SELECT SYSDATE FROM DUAL;
   ```

## Paso 4: eliminar la instancia de EC2 y la instancia de base de datos
<a name="CHAP_GettingStarted.Deleting.Oracle"></a>

Después de conectarse y explorar la instancia de EC2 de muestra y la instancia de base de datos que creó, elimínelas para que no le sigan cobrando por ellas.

Si ha utilizado CloudFormation para crear recursos, omita este paso y vaya al siguiente.

**Para eliminar la instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de EC2 y elija **Estado de la instancia** y Terminar instancia.

1. Cuando se le indique que confirme, elija **Terminar**.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte [Terminar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

**Para eliminar una instancia de base de datos sin instantánea de base de datos final**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la instancia de base de datos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Desactive **Crear la instantánea final** y **Conservar copias de seguridad automatizadas**.

1. Complete la confirmación y seleccione **Eliminar**. 

## (Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.Oracle"></a>

Si ha utilizado CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y a la instancia de base de datos de muestra y de explorarlas; de este modo, ya no se le cobrará por ellas.

**Para eliminar los recursos de CloudFormation**

1. Abra la consola de CloudFormation.

1. En la página **Pilas** de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o RDSNS).

1. Elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar pila**.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html), en la *Guía del usuario de AWS CloudFormation*.

## (Opcional) Conecte la instancia de base de datos a una función de Lambda
<a name="CHAP_GettingStarted.ComputeConnect.Oracle"></a>

También puede conectar la instancia de base de datos de RDS para Oracle a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte [Conexión automática de una función de Lambda y una instancia de base de datos](lambda-rds-connect.md).

# Creación de una instancia de base de datos de PostgreSQL y conexión a ella
<a name="CHAP_GettingStarted.CreatingConnecting.PostgreSQL"></a>

En este tutorial, se crea una instancia de EC2 y una instancia de base de datos de RDS para PostgreSQL. El tutorial muestra cómo acceder a la instancia de base de datos desde la instancia de EC2 mediante un cliente PostgreSQL estándar. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

**importante**  
La creación de una cuenta de AWS no supone ningún costo. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Instancia de EC2 e instancia de base de datos de PostgreSQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-postgresql.png)


Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

1. Use la Consola de administración de AWS: [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2) y [Creación de una instancia de base de datos de PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL) 

1. Use CloudFormation para crear la instancia de base de datos y la instancia de EC2: [(Opcional) Crear una VPC, una instancia EC2 y una instancia PostgreSQL mediante CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL) 

El primer método usa **Creación sencilla** para crear una instancia de base de datos PostgreSQL privada con la Consola de administración de AWS. Con Creación sencilla, únicamente debe especificar el tipo de motor de base de datos, el tamaño de la instancia de base de datos y el identificador de instancias de base de datos. **Easy create (Creación sencilla)** utiliza los ajustes predeterminados para otras opciones de configuración. 

Cuando usa **Creación estándar**, se especifican más opciones de configuración al crear una instancia de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear una instancia de base de datos pública, debe utilizar **Creación estándar**. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Requisitos previos](#CHAP_GettingStarted.Prerequisites.RDSPostgreSQL)
+ [Crear una instancia de EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2)
+ [Creación de una instancia de base de datos de PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL)
+ [(Opcional) Crear una VPC, una instancia EC2 y una instancia PostgreSQL mediante CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL)
+ [Conexión a la instancia de base de datos PostgreSQL](#CHAP_GettingStarted.Connecting.PostgreSQL)
+ [Eliminación de la instancia de EC2 y la instancia de base de datos](#CHAP_GettingStarted.Deleting.PostgreSQL)
+ [(Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation](#CHAP_GettingStarted.DeletingCFN.PostgreSQL)
+ [(Opcional) Conecte la instancia de base de datos a una función de Lambda](#CHAP_GettingStarted.ComputeConnect.PostreSQL)

## Requisitos previos
<a name="CHAP_GettingStarted.Prerequisites.RDSPostgreSQL"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Crear una instancia de EC2
<a name="CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2"></a>

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

**Para crear una instancia EC2;**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS en la que desea crear la instancia de EC2.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra en la siguiente imagen.  
![\[Panel de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Se abre la página **Lanzar una instancia**.

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **ec2-database-connect**.

   1. En **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija **Amazon Linux** y, a continuación, **AMI de Amazon Linux 2023**. Mantenga los valores predeterminados para las demás opciones.  
![\[Elija una Amazon Machine Image.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un nuevo par de claves, consulte [Crear un par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) en la *Guía del usuario de Amazon EC2*.

   1. En **Permitir tráfico de SSH** en **Configuraciones de red**, elija el origen de las conexiones SSH a la instancia de EC2. 

      Puede elegir **My IP (Mi IP)** si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Un ejemplo de dirección IP es 192.0.2.1/32.

       En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

      La siguiente imagen muestra un ejemplo de la sección **Configuraciones de red**.  
![\[Configuraciones de red para una instancia de EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. No cambie los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia de EC2 en el panel **Resumen**; cuando haya terminado, elija **Lanzar instancia**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Launch Status.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

1. En la pestaña **Detalles**, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

   1. En **Resumen de la instancia**, anote el valor del **DNS IPv4 público**.  
![\[Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. En **Detalles de la instancia**, anote el valor de **Nombre del par de claves**.  
![\[Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere hasta que el **Estado de la instancia** de su instancia de EC2 tenga el estado **En ejecución** antes de continuar.

## Creación de una instancia de base de datos de PostgreSQL
<a name="CHAP_GettingStarted.Creating.PostgreSQL"></a>

El componente básico de Amazon RDS es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos PostgreSQL.

En este ejemplo, utilice la opción **Creación sencilla** para crear una instancia de base de datos que ejecuta el motor de la base de datos de PostgreSQL con una clase de instancia de base de datos db.t3.micro.

**Para crear una instancia de base de datos de PostgreSQL con la opción Easy Create (Creación sencilla)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la región de AWS en la que desea crear la instancia de base de datos. 

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione **Create database (Crear base de datos)** y asegúrese de que la opción **Easy Create (Creación sencilla)** esté seleccionada.  
![\[Opción Creación sencilla.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. En **Configuration (Configuración)**, seleccione **PostgreSQL**.

1. En **DB instance size (Tamaño de la instancia de base de datos)**, seleccione **Free tier (Capa gratuita)**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.

1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **database-test1**.

1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro o deje el nombre predeterminado (**postgres**).

   La página **Create database (Crear base de datos)** debe ser similar a la siguiente imagen. Para las cuentas del plan gratuito, aparece **Nivel gratuito**. Para las cuentas de planes de pago, aparece **Entorno de pruebas**.  
![\[Página Crear base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-postgresql.png)

1. Para utilizar una contraseña maestra generada automáticamente para la instancia de base de datos, seleccione **Generación automática de contraseña**.

   Para introducir la contraseña maestra, asegúrese de desactivar la casilla **Generación automática de contraseña** y luego introduzca la misma contraseña en **Contraseña maestra** y **Confirmar contraseña**.

1. Para configurar una conexión con la instancia de EC2 que creó anteriormente, abra **Configurar conexión a EC2 - *(opcional)***.

   Seleccione **Conectarse a un recurso informático de EC2**. Elija la instancia de EC2 que ha creado anteriormente.  
![\[Configure la opción de conexión a EC2.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Abra la opción **Ver la configuración predeterminada de la creación sencilla**.  
![\[Configuración predeterminada de Creación sencilla para RDS para PostgreSQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-view-default-postgres.png)

   Puede examinar la configuración predeterminada utilizada con **Easy create (Creación sencilla)**. La columna **Editable después de crear la base de datos** muestra las opciones que puede cambiar después de crear la base de datos.
   + Si una configuración tiene **No** en esa columna y desea una configuración diferente, puede usar **Creación estándar** para crear la instancia de base de datos.
   + Si una configuración tiene **Sí** en esa columna y desea una configuración diferente, puede utilizar **Creación estándar** para crear la instancia de base de datos o modificar la instancia de base de datos después de crearla para cambiar la configuración.

1. Elija **Creación de base de datos**.

   Para consultar la contraseña y el nombre de usuario maestros de la instancia de base de datos, seleccione **View credential details (Ver detalles de credenciales)**.

   Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse a la instancia de base de datos como el usuario maestro.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.   
Si tiene que cambiar la contraseña de usuario maestro después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. En la lista **Bases de datos**, elija el nombre de la nueva instancia de base de datos de PostgreSQL para ver sus detalles.

   La instancia de base de datos tiene el estado **Creando** hasta que está lista para usarse.  
![\[Detalles de la instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Postgres-Launch06.png)

   Cuando el estado cambie a **Available** (Disponible), podrá conectarse a la instancia de la base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible.

## (Opcional) Crear una VPC, una instancia EC2 y una instancia PostgreSQL mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL"></a>

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y la instancia de PostgreSQL, puede utilizar CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de CloudFormation. Para obtener más información, consulte [Creación de una pila en la consola CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) y [Uso de pilas anidadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**importante**  
CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Para obtener más información, consulte [Precios de RDS para PostgreSQL](https://aws.amazon.com//rds/postgresql/pricing).

Para crear sus recursos con la consola CloudFormation, siga estos pasos:
+ Descargar la plantilla de CloudFormation
+ Configurar los recursos mediante CloudFormation

### Descargar la plantilla de CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL.Step1"></a>

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con la instancia de RDS.

Para descargar el archivo de plantilla, abra el enlace [PostgreSQL CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-postgres-main.template.yaml).

En la página de Github, haga clic en el botón *Descargar archivo sin procesar* para guardar el archivo YAML de la plantilla.

### Configurar los recursos mediante CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL.Step2"></a>

**nota**  
Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2 e instancias Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Al utilizar la plantilla de CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la sección Especificar la plantilla, seleccione **Cargar un archivo de plantilla desde el ordenador** y **Siguiente**.

1. En la página **Especificar detalles de la pila**, introduzca los siguientes parámetros:

   1. Ponga el **nombre de pila** en **PostgreSQLTestStack**.

   1. En **Parámetros**, defina las **zonas de disponibilidad** seleccionando tres zonas de disponibilidad.

   1. En **Configuración de host bastión de Linux**, en **Nombre de la clave**, seleccione un par de claves para iniciar sesión en su instancia de EC2.

   1. En los ajustes de **Configuración de host bastión de Linux**, ponga el **rango de IP permitido** en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es 192.0.2.1/32.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

   1. En **Configuración general de la base de datos**, ponga la **Clase de instancia de base de datos** en **db.t3.micro**.

   1. Ponga el **Nombre de la base de datos** en **database-test1**.

   1. En **Nombre de usuario maestro**, introduzca un nombre para el usuario maestro.

   1. Ponga **Administrar contraseña de usuario maestro de base de datos con Secrets Manager** en `false` para este tutorial.

   1. En **Contraseña de base de datos**, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

   1. En **Configuración de almacenamiento de base de datos**, ponga el **Tipo de almacenamiento de base de datos** en **gp2**.

   1. En la **Configuración de supervisión de base de datos**, ponga **Habilitar RDS Performance Insights** en falso.

   1. Deje el resto de la configuración con los valores predeterminados. Haga clic en **Siguiente** para continuar.

1. En la página **Configurar opciones de pila**, deje todas las opciones predeterminadas. Haga clic en **Siguiente** para continuar.

1. En la página **Revisar la pila**, seleccione **Enviar** después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres *BastionStack* y *RDSNS* para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte [ Viewing CloudFormation stack data and resources on the Consola de administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conexión a la instancia de base de datos PostgreSQL
<a name="CHAP_GettingStarted.Connecting.PostgreSQL"></a>

Puede conectarse a la instancia de base de datos mediante pgadmin o psql. En este ejemplo, se explica cómo conectarse a una instancia de base de datos de PostgreSQL mediante el cliente de línea de comandos psql.

**Para conectarse a una instancia de base de datos de PostgreSQL mediante psql**

1. Busque el punto de enlace (nombre de DNS) y el número de puerto de la instancia de base de datos. 

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS de la instancia de base de datos.

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Seleccione el nombre de la instancia de base de datos de PostgreSQL para mostrar sus detalles. 

   1. En la pestaña **Connectivity & security (Conectividad y seguridad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.   
![\[Conéctese a una instancia de base de datos de PostgreSQL.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/PostgreSQL-endpoint.png)

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de Amazon EC2*.

   Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Por ejemplo, suponga que `ec2-database-connect-key-pair.pem` está almacenado en `/dir1` en Linux y que el DNS IPv4 público de su instancia de EC2 es `ec2-12-345-678-90.compute-1.amazonaws.com`. Su comando SSH tendría el siguiente aspecto:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
**nota**  
La opción `-y` instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

   ```
   sudo dnf update -y
   ```

1. Para instalar el cliente de línea de comandos psql desde PostgreSQL en Amazon Linux 2023, ejecute el siguiente comando:

   ```
   sudo dnf install postgresql15
   ```

1. Conéctese a la instancia de base de datos de PostgreSQL. Por ejemplo, escriba el siguiente comando en el símbolo del sistema de un equipo cliente. Esta acción le permite conectarse a la instancia de base de datos de PostgreSQL mediante el cliente psql.

   Sustituya el punto de conexión de la instancia de base de datos (nombre DNS) por `endpoint`, sustituya el nombre de la base de datos `--dbname` a la que quiera conectarse por `postgres` y sustituya el nombre de usuario maestro que utilizó por `postgres`. Proporcione la contraseña maestra que utilizó cuando se le solicite una contraseña.

   ```
   psql --host=endpoint --port=5432 --dbname=postgres --username=postgres
   ```

   Una vez especificada la contraseña del usuario, debería ver un resultado similar al siguiente:

   ```
   psql (14.3, server 14.6)
   SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
   Type "help" for help.
   
   postgres=>
   ```

   Para obtener más información acerca de cómo conectarse a la instancia de base de datos de PostgreSQL, consulte [Conexión a una instancia de base de datos que ejecuta el motor de base de datos de PostgreSQL](USER_ConnectToPostgreSQLInstance.md). Si no puede conectarse a la instancia de base de datos, consulte [Solución de problemas de conexiones a la instancia de RDS for PostgreSQL](USER_ConnectToPostgreSQLInstance.Troubleshooting.md). 

   Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice solo una conexión PostgreSQL sin cifrar cuando el cliente y el servidor están en la misma VPC y la red es de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte . [Conectar con una instancia de base de datos PostgreSQL a través de SSL](PostgreSQL.Concepts.General.SSL.md#PostgreSQL.Concepts.General.SSL.Connecting).

1. Ejecutar comandos SQL.

   Por ejemplo, el siguiente comando de SQL muestra la fecha y la hora actuales:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Eliminación de la instancia de EC2 y la instancia de base de datos
<a name="CHAP_GettingStarted.Deleting.PostgreSQL"></a>

Después de conectarse y explorar la instancia de EC2 de muestra y la instancia de base de datos que creó, elimínelas para que no le sigan cobrando por ellas.

Si ha utilizado CloudFormation para crear recursos, omita este paso y vaya al siguiente.

**Para eliminar la instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de EC2 y elija **Estado de la instancia** y Terminar instancia.

1. Cuando se le indique que confirme, elija **Terminar**.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte [Terminar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

**Para eliminar una instancia de base de datos sin instantánea de base de datos final**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la instancia de base de datos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Desactive **Crear la instantánea final** y **Conservar copias de seguridad automatizadas**.

1. Complete la confirmación y seleccione **Eliminar**. 

## (Opcional) Eliminar la instancia de EC2 y la instancia de base de datos creadas con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.PostgreSQL"></a>

Si ha utilizado CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y a la instancia de base de datos de muestra y de explorarlas; de este modo, ya no se le cobrará por ellas.

**Para eliminar los recursos de CloudFormation**

1. Abra la consola de CloudFormation.

1. En la página **Pilas** de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o RDSNS).

1. Elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar pila**.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html), en la *Guía del usuario de AWS CloudFormation*.

## (Opcional) Conecte la instancia de base de datos a una función de Lambda
<a name="CHAP_GettingStarted.ComputeConnect.PostreSQL"></a>

También puede conectar la instancia de base de datos de RDS para PostgreSQL a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte [Conexión automática de una función de Lambda y una instancia de base de datos](lambda-rds-connect.md).

# Explicación: crear un servidor web y una instancia de base de datos de Amazon RDS
<a name="TUT_WebAppWithRDS"></a>

Este tutorial le ayuda a instalar un servidor web Apache con PHP y a crear una base de datos de MariaDB, MySQL o PostgreSQL. El servidor web se ejecuta en una instancia de Amazon EC2 mediante Amazon Linux 2023 y puede elegir entre una instancia de base de datos de MySQL o PostgreSQL. Tanto la instancia de Amazon EC2 como la instancia de base de datos se ejecutan en una nube virtual privada (VPC) basada en el servicio Amazon VPC. 

**importante**  
La creación de una cuenta de AWS no supone ningún costo. No obstante, al completar este tutorial, puede incurrir en costos por los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

**nota**  
Este tutorial funciona con Amazon Linux 2023 y podría no funcionar con otras versiones de Linux.

En la siguiente explicación, cree una instancia EC2 que utilice la VPC, subredes y el grupo de seguridad predeterminados para la Cuenta de AWS. En este tutorial, se muestra cómo crear la instancia de base de datos y configurar automáticamente la conectividad con la instancia EC2 que creó. A continuación, el tutorial muestra cómo instalar el servidor web en la instancia EC2. Conecte el servidor web a su instancia de base de datos en la VPC con el punto de conexión del escritor de instancia de base de datos.

1. [Lanzamiento de una instancia EC2 para conectarse con la instancia de base de datos](CHAP_Tutorials.WebServerDB.LaunchEC2.md)

1. [Crear una instancia de base de datos de Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md)

1. [Instalación de un servidor web en la instancia de EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md)

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

![\[Escenario de VPC única\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


**nota**  
Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En este tutorial, se usa la VPC predeterminada para Cuenta de AWS que configura de forma automática la conectividad entre la instancia EC2 y la instancia de base de datos. Si prefiere configurar una nueva VPC para este escenario, complete las tareas de [Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md).

# Lanzamiento de una instancia EC2 para conectarse con la instancia de base de datos
<a name="CHAP_Tutorials.WebServerDB.LaunchEC2"></a>

Cree una instancia Amazon EC2 en la subred pública de la VPC.

**Para lanzar una instancia de EC2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la esquina superior derecha de la Consola de administración de AWS, elija la Región de AWS en la que desea crear la instancia de EC2.

1. Elija **Panel de EC2** y, a continuación, **Lanzar instancia**, como se muestra a continuación.  
![\[Panel de EC2\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

1. Elija los siguientes ajustes en la página **Lanzar una instancia**.

   1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **tutorial-ec2-instance-web-server**.

   1. En **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija **Amazon Linux** y, a continuación, **AMI de Amazon Linux 2023**. Mantenga los valores predeterminados para las demás opciones.  
![\[Página Choose an Amazon Machine Image (Elegir una Amazon Machine Image)\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. En **Instance type (Tipo de instancia)**, elija **t2.micro**.

   1. En **Key pair (login) [Par de claves (inicio)]**, elija **Key pair name (Nombre de par de claves)** para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija **Create new key pair (Crear nuevo par de claves)** y, a continuación, utilice la ventana **Create key pair (Crear un par de claves)**.

      Para obtener más información sobre la creación de un nuevo par de claves, consulte [Crear un par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) en la *Guía del usuario de Amazon EC2*.

   1. En **Network settings (Configuración de red)**, defina estos valores y mantenga los ajustes predeterminados en los otros valores:
      + En **Allow SSH traffic from (Permitir el tráfico SSH desde)**, elija el origen de las conexiones SSH a la instancia de EC2.

        Puede elegir **My IP (Mi IP)** si la dirección IP que se muestra es correcta para las conexiones SSH.

        De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Un ejemplo de dirección IP es `203.0.113.25/32`.

        En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.
**aviso**  
Si utiliza `0.0.0.0/0` para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias mediante SSH.
      + Active **Allow HTTPs traffic from the internet (Permitir el tráfico HTTP desde internet)**.
      + Active **Allow HTTPs traffic from the internet (Permitir el tráfico HTTP desde internet)**.  
![\[Página Configure Instance Details (Configurar los detalles de la instancia)\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_14.png)

   1. No cambie los valores predeterminados del resto de las secciones.

   1. Revise un resumen de la configuración de su instancia en el panel **Summary** (Resumen); cuando haya terminado, elija **Launch instance**.

1. En la página **Launch Status**, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, `i-1234567890abcdef0`.  
![\[Identificador de instancia de EC2 en la página Launch Status.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

1. En la pestaña **Detalles**, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

   1. En **Resumen de la instancia**, anote el valor del **DNS IPv4 público**.  
![\[Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. En **Detalles de la instancia**, anote el valor de **Nombre del par de claves**.  
![\[Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere a que **Instance Status (Estado de la instancia)** se muestre como **Running (En ejecución)** antes de continuar.

1. Complete la [Crear una instancia de base de datos de Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md).

# Crear una instancia de base de datos de Amazon RDS
<a name="CHAP_Tutorials.WebServerDB.CreateDBInstance"></a>

Cree una instancia de base de datos de RDS para MariaDB, RDS para MySQL o RDS para PostgreSQL que conserve los datos utilizados por una aplicación web. 

------
#### [ RDS for MariaDB ]

**Para crear una instancia de MariaDB**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la Consola de administración de AWS, marque la Región de AWS. Debería ser la misma que en la que creó su instancia de EC2.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Create database (Creación de base de datos)**.

1. En la página **Crear base de datos**, elija **Creación estándar**.

1. En **Opciones del motor**, elija **MariaDB**.  
![\[Seleccionar tipo de motor\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-mariadb.png)

1. Para **Plantillas**, elija **Nivel gratuito** o **Entorno de pruebas**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.  
![\[Seleccionar plantilla\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. En la sección **Availability and durability (Disponibilidad y durabilidad)**, mantenga los valores predeterminados.

1. En la sección **Settings (Configuración)**, establezca los siguientes valores:
   + **DB Instance Identifier (Identificador de instancias de bases de datos)**: **tutorial-db-instance**.
   + **Master username (Nombre de usuario maestro)**: escriba **tutorial\$1user**.
   + **Auto generate a password (Generar una contraseña de forma automática)**: deje la opción desactivada.
   + **Master password (Contraseña maestra)**: escriba una contraseña.
   + **Confirm password (Confirmar contraseña)**:– vuelva a introducir la contraseña.  
![\[Secciones de configuración\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. En la sección **Instance configuration (Configuración de instancia)**, establezca estos valores:
   + **Clases por ráfagas (incluye clases t)**
   + **db.t3.micro**  
![\[Sección de configuración de instancias\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. En la sección **Storage (Almacenamiento)**, mantenga la configuración predeterminada.

1. En la sección **Connectivity (Conectividad)**, defina estos valores y mantenga los demás con sus valores predeterminados:
   + En **Compute resource (Recurso informático)**, elija **Connect to an EC2 compute resource (Conectar a un recurso informático de EC2)**.
   + En **EC2 instance (Instancia EC2)**, elija la instancia de EC2 que creó anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Problemas de conectividad\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. En la sección **Autenticación de base de datos**, asegúrese de que la **Autenticación con contraseña** está seleccionada.

1. Abra la sección **Additional configuration (Configuración adicional)** e introduzca **sample** para **Initial database name (Nombre de la base de datos inicial)** Mantenga la configuración predeterminada para el resto de las opciones.

1. Para crear una instancia de MariaDB, elija **Crear base de datos**.

   Su nueva instancia de base de datos aparece en la lista **Databases (Bases de datos)** con el estado **Creating (Creándose)**.

1. Espere a que el **Status (Estado)** de su nueva instancia de base de datos se muestre como **Available (Disponible)**. A continuación, seleccione el nombre de la instancia de base de datos para mostrar sus detalles.

1. En la sección **Connectivity & security (Conectividad y seguridad)** vea el **Endpoint (Punto de enlace)** y el **Port (Puerto)** de la instancia de base de datos.  
![\[Página de detalles de la instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Anote el punto de enlace y el puerto de la instancia de base de datos. Utiliza esta información para conectar su servidor web a la instancia de base de datos.

1.  complet [Instalación de un servidor web en la instancia de EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------
#### [ RDS for MySQL ]

**Para crear una instancia de base de datos MySQL**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la Consola de administración de AWS, marque la Región de AWS. Debería ser la misma que en la que creó su instancia de EC2.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Create database (Creación de base de datos)**.

1. En la página **Crear base de datos**, elija **Creación estándar**.

1. En **Opciones del motor**, elija **MySQL**.  
![\[Seleccionar tipo de motor\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-mysql.png)

1. Para **Plantillas**, elija **Nivel gratuito** o **Entorno de pruebas**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.  
![\[Seleccionar plantilla\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. En la sección **Availability and durability (Disponibilidad y durabilidad)**, mantenga los valores predeterminados.

1. En la sección **Settings (Configuración)**, establezca los siguientes valores:
   + **DB Instance Identifier (Identificador de instancias de bases de datos)**: **tutorial-db-instance**.
   + **Master username (Nombre de usuario maestro)**: escriba **tutorial\$1user**.
   + **Auto generate a password (Generar una contraseña de forma automática)**: deje la opción desactivada.
   + **Master password (Contraseña maestra)**: escriba una contraseña.
   + **Confirm password (Confirmar contraseña)**:– vuelva a introducir la contraseña.  
![\[Secciones de configuración\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. En la sección **Instance configuration (Configuración de instancia)**, establezca estos valores:
   + **Clases por ráfagas (incluye clases t)**
   + **db.t3.micro**  
![\[Sección de configuración de instancias\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. En la sección **Storage (Almacenamiento)**, mantenga la configuración predeterminada.

1. En la sección **Connectivity (Conectividad)**, defina estos valores y mantenga los demás con sus valores predeterminados:
   + En **Compute resource (Recurso informático)**, elija **Connect to an EC2 compute resource (Conectar a un recurso informático de EC2)**.
   + En **EC2 instance (Instancia EC2)**, elija la instancia de EC2 que creó anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Problemas de conectividad\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. En la sección **Autenticación de base de datos**, asegúrese de que la **Autenticación con contraseña** está seleccionada.

1. Abra la sección **Additional configuration (Configuración adicional)** e introduzca **sample** para **Initial database name (Nombre de la base de datos inicial)** Mantenga la configuración predeterminada para el resto de las opciones.

1. Para crear una instancia de base de datos MySQL, elija **Create database (Crear base de datos)**.

   Su nueva instancia de base de datos aparece en la lista **Databases (Bases de datos)** con el estado **Creating (Creándose)**.

1. Espere a que el **Status (Estado)** de su nueva instancia de base de datos se muestre como **Available (Disponible)**. A continuación, seleccione el nombre de la instancia de base de datos para mostrar sus detalles.

1. En la sección **Connectivity & security (Conectividad y seguridad)** vea el **Endpoint (Punto de enlace)** y el **Port (Puerto)** de la instancia de base de datos.  
![\[Página de detalles de la instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Anote el punto de enlace y el puerto de la instancia de base de datos. Utiliza esta información para conectar su servidor web a la instancia de base de datos.

1.  complet [Instalación de un servidor web en la instancia de EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------
#### [ RDS for PostgreSQL ]

**Para crear una instancia de base de datos de PostgreSQL**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la Consola de administración de AWS, marque la Región de AWS. Debería ser la misma que en la que creó su instancia de EC2.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Create database (Creación de base de datos)**.

1. En la página **Crear base de datos**, elija **Creación estándar**.

1. En **Opciones del motor**, elija **PostgreSQL**.  
![\[Seleccionar tipo de motor\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-postgres.png)

1. Para **Plantillas**, elija **Nivel gratuito** o **Entorno de pruebas**. El **Nivel gratuito** aparece en las cuentas de planes gratuitos. El **Entorno de pruebas** aparece para las cuentas de planes de pago.  
![\[Seleccionar plantilla\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. En la sección **Availability and durability (Disponibilidad y durabilidad)**, mantenga los valores predeterminados.

1. En la sección **Settings (Configuración)**, establezca los siguientes valores:
   + **DB Instance Identifier (Identificador de instancias de bases de datos)**: **tutorial-db-instance**.
   + **Master username (Nombre de usuario maestro)**: escriba **tutorial\$1user**.
   + **Auto generate a password (Generar una contraseña de forma automática)**: deje la opción desactivada.
   + **Master password (Contraseña maestra)**: escriba una contraseña.
   + **Confirm password (Confirmar contraseña)**:– vuelva a introducir la contraseña.  
![\[Secciones de configuración\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. En la sección **Instance configuration (Configuración de instancia)**, establezca estos valores:
   + **Clases por ráfagas (incluye clases t)**
   + **db.t3.micro**  
![\[Sección de configuración de instancias\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. En la sección **Storage (Almacenamiento)**, mantenga la configuración predeterminada.

1. En la sección **Connectivity (Conectividad)**, defina estos valores y mantenga los demás con sus valores predeterminados:
   + En **Compute resource (Recurso informático)**, elija **Connect to an EC2 compute resource (Conectar a un recurso informático de EC2)**.
   + En **EC2 instance (Instancia EC2)**, elija la instancia de EC2 que creó anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Problemas de conectividad\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. En la sección **Autenticación de base de datos**, asegúrese de que la **Autenticación con contraseña** está seleccionada.

1. Abra la sección **Additional configuration (Configuración adicional)** e introduzca **sample** para **Initial database name (Nombre de la base de datos inicial)** Mantenga la configuración predeterminada para el resto de las opciones.

1. Para crear una instancia de base de datos de PostgreSQL, elija **Crear base de datos**.

   Su nueva instancia de base de datos aparece en la lista **Databases (Bases de datos)** con el estado **Creating (Creándose)**.

1. Espere a que el **Status (Estado)** de su nueva instancia de base de datos se muestre como **Available (Disponible)**. A continuación, seleccione el nombre de la instancia de base de datos para mostrar sus detalles.

1. En la sección **Connectivity & security (Conectividad y seguridad)** vea el **Endpoint (Punto de enlace)** y el **Port (Puerto)** de la instancia de base de datos.  
![\[Página de detalles de la instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port_postgres.png)

   Anote el punto de enlace y el puerto de la instancia de base de datos. Utiliza esta información para conectar su servidor web a la instancia de base de datos.

1.  complet [Instalación de un servidor web en la instancia de EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------

# Instalación de un servidor web en la instancia de EC2
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer"></a>

Instale un servidor web en una instancia de EC2 que creó en [Lanzamiento de una instancia EC2 para conectarse con la instancia de base de datos](CHAP_Tutorials.WebServerDB.LaunchEC2.md). El servidor web se conecta a la instancia de base de datos de Amazon RDS que creó en [Crear una instancia de base de datos de Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md). 

## Instalación de un servidor web Apache con PHP y MariaDB
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.Apache"></a>

Conéctese a su instancia de EC2 e instale el servidor web.

**Para conectarse a la instancia de EC2 e instalar el servidor web Apache con PHP**

1. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de Amazon EC2*.

   Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Por ejemplo, suponga que `ec2-database-connect-key-pair.pem` está almacenado en `/dir1` en Linux y que el DNS IPv4 público de su instancia de EC2 es `ec2-12-345-678-90.compute-1.amazonaws.com`. Su comando SSH tendría el siguiente aspecto:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
**nota**  
La opción `-y` instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

   ```
   sudo dnf update -y
   ```

1. Una vez completadas las actualizaciones, instale el servidor web Apache, PHP y el software de MariaDB o PostgreSQL con los siguientes comandos. Este comando instala varios paquetes de software y dependencias relacionadas al mismo tiempo.

------
#### [ MariaDB & MySQL ]

   ```
   sudo dnf install -y httpd php php-mysqli mariadb105
   ```

------
#### [ PostgreSQL ]

   ```
   sudo dnf install -y httpd php php-pgsql postgresql15
   ```

------

   Si recibe un error, probablemente la instancia no se ha iniciado con una AMI de Amazon Linux 2023. Es posible que esté usando la AMI Amazon Linux 2 en su lugar. Puede ver la versión de Amazon Linux usando el comando siguiente:

   ```
   cat /etc/system-release
   ```

   Para obtener más información, consulte [Actualización del software de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-updates.html).

1. Inicie el servidor web mediante el comando que se muestra a continuación.

   ```
   sudo systemctl start httpd
   ```

   Puede probar que el servidor web esté correctamente instalado e iniciado. Para ello, escriba el nombre público del Sistema de nombres de dominio (DNS) de su instancia de EC2 en la barra de direcciones de un navegador web, por ejemplo: `http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com`. Si el servidor web se está ejecutando, se mostrará la página de prueba de Apache. 

   Si no ve la página de prueba de Apache, compruebe las reglas de entrada para el grupo de seguridad de VPC que creó en [Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md). Asegúrese de que las reglas de entrada incluyan una que permita el acceso HTTP (puerto 80) a la dirección IP que utiliza para conectarse al servidor web.
**nota**  
La página de prueba de Apache aparece únicamente cuando el directorio raíz de documentos está vac, `/var/www/html`. Después de añadir contenido al directorio raíz de documentos, el contenido aparece en la dirección DNS pública de la instancia de EC2. Antes de este punto, aparece en la página de prueba de Apache.

1. Configure el servidor web para que se inicie en cada arranque del sistema con el comando `systemctl`.

   ```
   sudo systemctl enable httpd
   ```

Para permitir a `ec2-user` administrar archivos en el directorio raíz predeterminado del servidor web Apache, modifique los propietarios y los permisos del directorio `/var/www`. Existen muchas formas de realizar esta tarea. En este tutorial se añade el usuario `ec2-user` al grupo `apache`, se otorga al grupo `apache` la propiedad del directorio `/var/www` y se asignan permisos de escritura al grupo.

**Para configurar los permisos de archivo para el servidor web Apache**

1. Agregue el usuario `ec2-user` al grupo `apache`.

   ```
   sudo usermod -a -G apache ec2-user
   ```

1. Cierre la sesión para actualizar los permisos e incluir el nuevo grupo `apache`.

   ```
   exit
   ```

1. Inicie sesión nuevamente y compruebe que existe el grupo `apache` mediante el comando `groups`.

   ```
   groups
   ```

   El resultado tiene un aspecto similar al siguiente:

   ```
   ec2-user adm wheel apache systemd-journal
   ```

1. Cambie la propiedad de grupo del directorio `/var/www` y su contenido al grupo `apache`.

   ```
   sudo chown -R ec2-user:apache /var/www
   ```

1. Cambie los permisos del directorio `/var/www` y sus subdirectorios para añadir permisos de escritura de grupo y establecer el ID de grupo en los subdirectorios que se creen en el futuro.

   ```
   sudo chmod 2775 /var/www
   find /var/www -type d -exec sudo chmod 2775 {} \;
   ```

1. Cambie recursivamente los permisos de los archivos del directorio `/var/www` y sus subdirectorios para añadir permisos de escritura de grupo.

   ```
   find /var/www -type f -exec sudo chmod 0664 {} \;
   ```

Ahora `ec2-user` (y cualquier miembro futuro del grupo de `apache`) puede añadir, eliminar y editar archivos en la raíz de documentos de Apache. Esto le permite añadir contenido, como un sitio web estático o una aplicación PHP. 

**nota**  
Un servidor web que ejecuta el protocolo HTTP no proporciona seguridad de transporte de los datos que envía o recibe. Cuando se conecta a un servidor HTTP utilizando un navegador web, la mayor parte de la información es visible a cualquier acceso no autorizado en la ruta de la red. Esta información incluye las URL que visita, el contenido de las páginas web que recibe y el contenido (incluidas las contraseñas) de cualquier formulario HTML.   
La práctica recomendada para proteger el servidor web es instalar soporte para HTTPS (HTTP seguro). Este protocolo protege los datos con el cifrado SSL/TLS. Para obtener más información, consulte [ Tutorial: Configurar SSL/TLS con la AMI de Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-ami.html) en la *Guía del usuario deAmazon EC2*.

## Conecte el servidor web Apache con la instancia de base de datos.
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.PHPContent"></a>

A continuación, agregue contenido al servidor web Apache que se conecta a su instancia de base de datos de Amazon RDS.

**Para agregar contenido al servidor web Apache que se conecta a su instancia de base de datos**

1. Mientras está conectado a la instancia de EC2, cambie el directorio a `/var/www` y cree un subdirectorio nuevo denominado `inc`.

   ```
   cd /var/www
   mkdir inc
   cd inc
   ```

1. Cree un archivo en el directorio `inc`, denominado `dbinfo.inc` y, a continuación, edite el archivo mediante nano (o a cualquier otro editor de su elección).

   ```
   >dbinfo.inc
   nano dbinfo.inc
   ```

1. Añada el siguiente contenido al archivo `dbinfo.inc`. Aquí, *db\$1instance\$1endpoint* es su punto de conexión de instancia de base de datos, sin el puerto, para su instancia de base de datos.
**nota**  
Recomendamos colocar la información del nombre de usuario y la contraseña en una carpeta que no forme parte de la raíz del documento del servidor web. Al hacerlo, se reduce la posibilidad de que se exponga la información de seguridad.  
Asegúrese de cambiar la `master password` a una contraseña adecuada en su aplicación.

   ```
   <?php
   
   define('DB_SERVER', 'db_instance_endpoint');
   define('DB_USERNAME', 'tutorial_user');
   define('DB_PASSWORD', 'master password');
   define('DB_DATABASE', 'sample');
   ?>
   ```

1. Guarde y cierre el archivo `dbinfo.inc`. Si utiliza nano, guarde y cierre el archivo con Ctrl\$1S y Ctrl\$1X.

1. Cambie el directorio a `/var/www/html`.

   ```
   cd /var/www/html
   ```

1. Cree un archivo en el directorio `html`, denominado `SamplePage.php` y, a continuación, edite el archivo mediante nano (o a cualquier otro editor de su elección).

   ```
   >SamplePage.php
   nano SamplePage.php
   ```

1. Añada el siguiente contenido al archivo `SamplePage.php`:

------
#### [ MariaDB & MySQL ]

   ```
   <?php include "../inc/dbinfo.inc"; ?>
   <html>
   <body>
   <h1>Sample page</h1>
   <?php
   
     /* Connect to MySQL and select the database. */
     $connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
   
     if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
   
     $database = mysqli_select_db($connection, DB_DATABASE);
   
     /* Ensure that the EMPLOYEES table exists. */
     VerifyEmployeesTable($connection, DB_DATABASE);
   
     /* If input fields are populated, add a row to the EMPLOYEES table. */
     $employee_name = htmlentities($_POST['NAME']);
     $employee_address = htmlentities($_POST['ADDRESS']);
   
     if (strlen($employee_name) || strlen($employee_address)) {
       AddEmployee($connection, $employee_name, $employee_address);
     }
   ?>
   
   <!-- Input form -->
   <form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST">
     <table border="0">
       <tr>
         <td>NAME</td>
         <td>ADDRESS</td>
       </tr>
       <tr>
         <td>
           <input type="text" name="NAME" maxlength="45" size="30" />
         </td>
         <td>
           <input type="text" name="ADDRESS" maxlength="90" size="60" />
         </td>
         <td>
           <input type="submit" value="Add Data" />
         </td>
       </tr>
     </table>
   </form>
   
   <!-- Display table data. -->
   <table border="1" cellpadding="2" cellspacing="2">
     <tr>
       <td>ID</td>
       <td>NAME</td>
       <td>ADDRESS</td>
     </tr>
   
   <?php
   
   $result = mysqli_query($connection, "SELECT * FROM EMPLOYEES");
   
   while($query_data = mysqli_fetch_row($result)) {
     echo "<tr>";
     echo "<td>",$query_data[0], "</td>",
          "<td>",$query_data[1], "</td>",
          "<td>",$query_data[2], "</td>";
     echo "</tr>";
   }
   ?>
   
   </table>
   
   <!-- Clean up. -->
   <?php
   
     mysqli_free_result($result);
     mysqli_close($connection);
   
   ?>
   
   </body>
   </html>
   
   
   <?php
   
   /* Add an employee to the table. */
   function AddEmployee($connection, $name, $address) {
      $n = mysqli_real_escape_string($connection, $name);
      $a = mysqli_real_escape_string($connection, $address);
   
      $query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');";
   
      if(!mysqli_query($connection, $query)) echo("<p>Error adding employee data.</p>");
   }
   
   /* Check whether the table exists and, if not, create it. */
   function VerifyEmployeesTable($connection, $dbName) {
     if(!TableExists("EMPLOYEES", $connection, $dbName))
     {
        $query = "CREATE TABLE EMPLOYEES (
            ID int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            NAME VARCHAR(45),
            ADDRESS VARCHAR(90)
          )";
   
        if(!mysqli_query($connection, $query)) echo("<p>Error creating table.</p>");
     }
   }
   
   /* Check for the existence of a table. */
   function TableExists($tableName, $connection, $dbName) {
     $t = mysqli_real_escape_string($connection, $tableName);
     $d = mysqli_real_escape_string($connection, $dbName);
   
     $checktable = mysqli_query($connection,
         "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t' AND TABLE_SCHEMA = '$d'");
   
     if(mysqli_num_rows($checktable) > 0) return true;
   
     return false;
   }
   ?>
   ```

------
#### [ PostgreSQL ]

   ```
   <?php include "../inc/dbinfo.inc"; ?>
   
   <html>
   <body>
   <h1>Sample page</h1>
   <?php
   
   /* Connect to PostgreSQL and select the database. */
   $constring = "host=" . DB_SERVER . " dbname=" . DB_DATABASE . " user=" . DB_USERNAME . " password=" . DB_PASSWORD ;
   $connection = pg_connect($constring);
   
   if (!$connection){
    echo "Failed to connect to PostgreSQL";
    exit;
   }
   
   /* Ensure that the EMPLOYEES table exists. */
   VerifyEmployeesTable($connection, DB_DATABASE);
   
   /* If input fields are populated, add a row to the EMPLOYEES table. */
   $employee_name = htmlentities($_POST['NAME']);
   $employee_address = htmlentities($_POST['ADDRESS']);
   
   if (strlen($employee_name) || strlen($employee_address)) {
     AddEmployee($connection, $employee_name, $employee_address);
   }
   
   ?>
   
   <!-- Input form -->
   <form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST">
     <table border="0">
       <tr>
         <td>NAME</td>
         <td>ADDRESS</td>
       </tr>
       <tr>
         <td>
       <input type="text" name="NAME" maxlength="45" size="30" />
         </td>
         <td>
       <input type="text" name="ADDRESS" maxlength="90" size="60" />
         </td>
         <td>
       <input type="submit" value="Add Data" />
         </td>
       </tr>
     </table>
   </form>
   <!-- Display table data. -->
   <table border="1" cellpadding="2" cellspacing="2">
     <tr>
       <td>ID</td>
       <td>NAME</td>
       <td>ADDRESS</td>
     </tr>
   
   <?php
   
   $result = pg_query($connection, "SELECT * FROM EMPLOYEES");
   
   while($query_data = pg_fetch_row($result)) {
     echo "<tr>";
     echo "<td>",$query_data[0], "</td>",
          "<td>",$query_data[1], "</td>",
          "<td>",$query_data[2], "</td>";
     echo "</tr>";
   }
   ?>
   </table>
   
   <!-- Clean up. -->
   <?php
   
     pg_free_result($result);
     pg_close($connection);
   ?>
   </body>
   </html>
   
   
   <?php
   
   /* Add an employee to the table. */
   function AddEmployee($connection, $name, $address) {
      $n = pg_escape_string($name);
      $a = pg_escape_string($address);
      echo "Forming Query";
      $query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');";
   
      if(!pg_query($connection, $query)) echo("<p>Error adding employee data.</p>"); 
   }
   
   /* Check whether the table exists and, if not, create it. */
   function VerifyEmployeesTable($connection, $dbName) {
     if(!TableExists("EMPLOYEES", $connection, $dbName))
     {
        $query = "CREATE TABLE EMPLOYEES (
            ID serial PRIMARY KEY,
            NAME VARCHAR(45),
            ADDRESS VARCHAR(90)
          )";
   
        if(!pg_query($connection, $query)) echo("<p>Error creating table.</p>"); 
     }
   }
   /* Check for the existence of a table. */
   function TableExists($tableName, $connection, $dbName) {
     $t = strtolower(pg_escape_string($tableName)); //table name is case sensitive
     $d = pg_escape_string($dbName); //schema is 'public' instead of 'sample' db name so not using that
   
     $query = "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t';";
     $checktable = pg_query($connection, $query);
   
     if (pg_num_rows($checktable) >0) return true;
     return false;
   
   }
   ?>
   ```

------

1. Guarde y cierre el archivo `SamplePage.php`.

1. Compruebe que el servidor web se conecta correctamente a su instancia de base de datos abriendo un navegador web y navegando a `http://EC2 instance endpoint/SamplePage.php`, por ejemplo: `http://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php`.

Puede utilizar `SamplePage.php` para agregar datos a su instancia de base de datos. Los datos que añada se mostrarán en la página. Para verificar que los datos se insertaron en la tabla, puede instalar el cliente MySQL en la instancia de Amazon EC2. A continuación, se conectará a la instancia de base de datos y ejecutará una consulta en la tabla. 

Para obtener información acerca de la instalación del cliente MySQL y la conexión a la instancia de base de datos, consulte [Conexión a la instancia de base de datos de MySQL](USER_ConnectToInstance.md).

Para asegurarse de que su instancia de base de datos es lo más seguro posible, compruebe que los orígenes fuera de la VPC no se pueden conectar a su instancia de base de datos. 

Una vez que haya terminado de probar su servidor web y su base de datos, debe eliminar la instancia de base de datos y la instancia Amazon EC2.
+ Para eliminar una instancia de base de datos, siga las instrucciones que se indican en [Eliminación de una instancia de base de datos](USER_DeleteInstance.md). No es necesario crear una instantánea final.
+ Para finalizar una instancia Amazon EC2, siga las instrucciones de [Terminar su instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

# Tutorial: Uso de una función de Lambda para obtener acceso a la base de datos de Amazon RDS
<a name="rds-lambda-tutorial"></a>

En este tutorial, utilizará una función de Lambda para escribir datos en una base de datos de [Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) (Amazon RDS) a través de RDS Proxy. La función de Lambda lee registros de una cola de Amazon Simple Queue Service (Amazon SQS) y escribe un elemento nuevo en una tabla de la base de datos siempre que se agrega un mensaje. En este ejemplo, utiliza la Consola de administración de AWS para agregar mensajes a la cola de forma manual. En el siguiente diagrama, se muestran los recursos de AWS que utiliza para completar el tutorial.

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_1.png)


Con Amazon RDS, puede ejecutar una base de datos relacional administrada en la nube mediante productos de bases de datos habituales como Microsoft SQL Server, MariaDB, MySQL, Oracle Database y PostgreSQL. Al utilizar Lambda para acceder a su base de datos, puede leer y escribir datos en respuesta a eventos, como el registro de un nuevo cliente en su sitio web. Su función, instancia de base de datos y proxy también se escalan automáticamente para hacer frente a los períodos de alta demanda.

Para completar este tutorial, lleve a cabo las siguientes tareas:

1. Inicie una instancia de base de datos de RDS para MySQL y un proxy en la VPC predeterminada de su Cuenta de AWS.

1. Cree y pruebe una función de Lambda que cree una tabla nueva en la base de datos y escriba datos en ella.

1. Cree una cola de Amazon SQS y configúrela para que invoque la función de Lambda cada vez que se agregue un mensaje nuevo.

1. Para probar la configuración completa, agregue mensajes a la cola mediante la Consola de administración de AWS y supervise los resultados con los Registros de CloudWatch.

Al completar estos pasos, aprenderá lo siguiente:
+ Cómo usar Amazon RDS para crear una instancia de base de datos y un proxy, y conectar una función de Lambda al proxy.
+ Cómo utilizar Lambda para llevar a cabo operaciones de creación y lectura en una base de datos de Amazon RDS.
+ Cómo utilizar Amazon SQS para invocar una función de Lambda.

Puede completar esta tarea mediante la Consola de administración de AWS o la AWS Command Line Interface (AWS CLI).

## Requisitos previos
<a name="vpc-rds-prereqs"></a>

Antes de empezar, complete los pasos de las siguientes secciones:
+ [Cómo crear una Cuenta de AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](CHAP_SettingUp.md#create-an-admin)

## Creación de una instancia de base de datos de Amazon RDS
<a name="vpc-rds-create-RDS-instance"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step1.png)


Una instancia de base de datos de Amazon RDS es un entorno de base de datos aislado que se ejecuta en la Nube de AWS. Una instancia puede contener una o más bases de datos creadas por el usuario. A menos que especifique lo contrario, Amazon RDS crea nuevas instancias de bases de datos en la VPC predeterminada incluida en la Cuenta de AWS. Para obtener más información sobre Amazon VPC, consulte la [Guía del usuario de Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

En este tutorial, creará una nueva instancia en su VPC predeterminada de la Cuenta de AWS y creará una base de datos llamada `ExampleDB` en esa instancia. Puede crear su instancia de base de datos y la base de datos mediante la Consola de administración de AWS o la AWS CLI.

**Para crear una instancia de base de datos**

1. Abra la consola de Amazon RDS y elija **Crear base de datos**.

1. Deje seleccionada la opción **Creación estándar** y, a continuación, en **Opciones del motor**, elija **MySQL**.

1. En **Plantillas**, elija **Nivel gratuito** o **Entorno de pruebas**. El **Nivel gratuito** aparece para las cuentas de nivel gratuito. El **Entorno de pruebas** aparece para las cuentas de planes de pago.

1. En **Configuración**, en **Identificador de instancia de base de datos**, ingrese **MySQLForLambda**.

1. Para establecer su nombre de usuario y contraseña, haga lo siguiente:

   1. En **Configuración de credenciales**, deje **Nombre de usuario maestro** establecido en `admin`.

   1. En **Contraseña maestra**, introduzca y confirme una contraseña para acceder a la base de datos.

1. Para especificar el nombre de la base de datos, haga lo siguiente:
   + Deje todas las opciones predeterminadas restantes seleccionadas y desplácese hacia abajo hasta la sección **Configuración adicional**.
   + Amplíe esta sección e introduzca **ExampleDB** como **Nombre de base de datos inicial**.

1. Deje todas las opciones predeterminadas restantes seleccionadas y elija **Crear base de datos**.

## Creación de una función de Lambda y un proxy
<a name="auto-create-Lambda"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step2.png)


Puede utilizar la consola de RDS para crear una función de Lambda y un proxy en la misma VPC que la base de datos. 

**nota**  
Solo puede crear estos recursos asociados cuando la base de datos haya terminado de crearse y esté en estado **Disponible**.

**Para crear una función y un proxy asociados**

1. Desde la página **Bases de datos**, compruebe si su base de datos está en estado **Disponible**. Si es así, continúe con el siguiente paso. De no ser así, espere a que la base de datos esté disponible.

1. Seleccione la base de datos y elija **Configurar la conexión de Lambda** en **Acciones**.

1. En la página **Configurar la conexión de Lambda**, elija **Crear nueva función**.

   Configure el **Nombre de la nueva función de Lambda** a **LambdaFunctionWithRDS**.

1. En la sección **RDS Proxy**, seleccione la opción **Conectarse mediante RDS Proxy**. Además, elija **Crear un nuevo proxy**.
   + En **Credenciales de la base de datos**, elija **Nombre de usuario y contraseña de la base de datos**.
   + En **Nombre de usuario**, especifique `admin`.
   + En **Contraseña**, escriba la contraseña que ha creado para la instancia de base de datos. 

1. Seleccione **Configurar** para completar la creación de la función de Lambda y el proxy.

El asistente completa la configuración y proporciona un enlace a la consola de Lambda para que revise la nueva función. Tenga en cuenta el punto de conexión del proxy antes de cambiar a la consola de Lambda.

## Crear un rol de ejecución de función
<a name="vpc-rds-create-execution-role"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step3.png)


Antes de crear la función de Lambda, debe crear un rol de ejecución para conceder a la función los permisos necesarios. Para este tutorial, Lambda necesita permiso para administrar la conexión de red a la VPC que contiene la instancia de base de datos y para sondear los mensajes de una cola de Amazon SQS.

Para dar a la función de Lambda los permisos que necesita, se utilizan políticas administradas por IAM en este tutorial. Se trata de políticas que conceden permisos para muchos casos de uso comunes y están disponibles en la Cuenta de AWS. Para obtener más información sobre el uso de políticas administradas, consulte [Prácticas recomendadas relativas a políticas](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

**Para crear el rol de ejecución de Lambda**

1. Abra la página [Roles](https://console.aws.amazon.com/iamv2/home#/roles) de la consola de IAM y elija **Crear rol**.

1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**, y en **Caso de uso**, elija **Lambda**.

1. Elija **Siguiente**.

1. Agregue las políticas administradas por IAM de la siguiente manera:

   1. En el cuadro de búsqueda de políticas, busque **AWSLambdaSQSQueueExecutionRole**.

   1. En la lista de resultados, seleccione la casilla de verificación junto al rol y, a continuación, elija **Borrar filtros**.

   1. En el cuadro de búsqueda de políticas, busque **AWSLambdaVPCAccessExecutionRole**.

   1. En la lista de resultados, seleccione la casilla de verificación junto al rol y, a continuación, elija **Siguiente**.

1. En **Nombre del rol**, ingrese **lambda-vpc-sqs-role** y, a continuación, elija **Crear rol**.

Más adelante en el tutorial, necesitará el nombre de recurso de Amazon (ARN) del rol de ejecución que acaba de crear.

**Para encontrar el ARN del rol de ejecución**

1. Abra la página [Roles](https://console.aws.amazon.com/iamv2/home#/roles) de la consola de IAM y elija su rol (`lambda-vpc-sqs-role`).

1.  Copie el **ARN** que se muestra en la sección **Resumen**.

## Creación del paquete de despliegue de Lambda
<a name="vpc-rds-create-deployment-package"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step4.png)


En el siguiente ejemplo de código Python, se utiliza el paquete [PyMySQL](https://pymysql.readthedocs.io/en/latest/) para abrir una conexión a la base de datos. La primera vez que invoca su función, también crea una nueva tabla llamada `Customer`. La tabla utiliza el siguiente esquema, en el que `CustID` es la clave principal:

```
Customer(CustID, Name)
```

La función también utiliza PyMySQL para agregar registros a esta tabla. La función agrega registros mediante los ID de cliente y los nombres especificados en los mensajes que agregará a la cola de Amazon SQS.

El código crea la conexión a la base de datos fuera de la función del controlador. La creación de la conexión en el código de inicialización permite volver a utilizar la conexión mediante invocaciones posteriores de la función y mejora el rendimiento. En una aplicación de producción, también puede utilizar la [simultaneidad aprovisionada](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) para inicializar el número solicitado de conexiones a la base de datos. Estas conexiones están disponibles en cuanto se invoca la función.

```
import sys
import logging
import pymysql
import json
import os

# rds settings
user_name = os.environ['USER_NAME']
password = os.environ['PASSWORD']
rds_proxy_host = os.environ['RDS_PROXY_HOST']
db_name = os.environ['DB_NAME']

logger = logging.getLogger()
logger.setLevel(logging.INFO)

# create the database connection outside of the handler to allow connections to be
# re-used by subsequent function invocations.
try:
        conn = pymysql.connect(host=rds_proxy_host, user=user_name, passwd=password, db=db_name, connect_timeout=5)
except pymysql.MySQLError as e:
    logger.error("ERROR: Unexpected error: Could not connect to MySQL instance.")
    logger.error(e)
    sys.exit(1)

logger.info("SUCCESS: Connection to RDS for MySQL instance succeeded")

def lambda_handler(event, context):
    """
    This function creates a new RDS database table and writes records to it
    """
    message = event['Records'][0]['body']
    data = json.loads(message)
    CustID = data['CustID']
    Name = data['Name']

    item_count = 0
    sql_string = f"insert into Customer (CustID, Name) values(%s, %s)"

    with conn.cursor() as cur:
        cur.execute("create table if not exists Customer ( CustID  int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (CustID))")
        cur.execute(sql_string, (CustID, Name))
        conn.commit()
        cur.execute("select * from Customer")
        logger.info("The following items have been added to the database:")
        for row in cur:
            item_count += 1
            logger.info(row)
    conn.commit()

    return "Added %d items to RDS for MySQL table" %(item_count)
```

**nota**  
En este ejemplo, las credenciales de acceso a la base de datos se almacenan como variables de entorno. En las aplicaciones de producción, se recomienda utilizar [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) como una opción más segura. Tenga en cuenta que si la función de Lambda está en una VPC, debe crear un punto de conexión de VPC para conectarse a Secrets Manager. Para obtener más información, consulte [How to connect to AWS Secrets Manager service within a Virtual Private Cloud](https://aws.amazon.com/blogs/security/how-to-connect-to-aws-secrets-manager-service-within-a-virtual-private-cloud/). 

 Para incluir la dependencia PyMySQL en el código de la función, cree un paquete de despliegue .zip. Los siguientes comandos funcionan en Linux, macOS o Unix:

**Para crear un paquete de paquete de despliegue .zip**

1. Guarde el código de ejemplo como un archivo denominado `lambda_function.py`. 

1. En el mismo directorio en el que creó el archivo `lambda_function.py`, cree un nuevo directorio llamado `package` e instale la biblioteca de PyMySQL. 

   ```
   mkdir package
   pip install --target package pymysql
   ```

1. Cree un archivo zip que contenga el código de la aplicación y la biblioteca de PyMySQL. En Linux o macOS, ejecute los siguientes comandos de la CLI. En Windows, utilice la herramienta de compresión que prefiera para crear el archivo `lambda_function.zip`. El archivo de código de origen `lambda_function.py` y las carpetas que contienen las dependencias deben estar instalados en la raíz del archivo .zip.

   ```
   cd package
   zip -r ../lambda_function.zip .
   cd ..
   zip lambda_function.zip lambda_function.py
   ```

   También puede crear su paquete de despliegue mediante un entorno virtual de Python. Consulte [Implementación de funciones Python Lambda con archivos .zip](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-create-package-with-dependency).

## Actualización de la función de Lambda
<a name="vpc-rds-update-function"></a>

Con el paquete .zip que acaba de crear, ahora puede actualizar una función de Lambda mediante la consola de Lambda. Para permitir que la función acceda a la base de datos, también debe configurar las variables de entorno con las credenciales de acceso.

**Para actualizar la función de Lambda**

1. Abra la página [Funciones](https://console.aws.amazon.com/lambda/home#/functions) de la consola de Lambda y elija su función `LambdaFunctionWithRDS`.

1. En la pestaña **Configuración de tiempo de ejecución**, seleccione **Editar** para cambiar el **Tiempo de ejecución** de la función a **Python 3.10**.

1. Cambie el **Controlador** a `lambda_function.lambda_handler`.

1. En la pestaña **Código**, elija **Cargar desde** y, a continuación, **archivo .zip**.

1. Seleccione el archivo `lambda_function.zip` que creó en la fase anterior y elija **Guardar**.

Ahora, configure la función con el rol de ejecución que creó anteriormente. Esto concede a la función los permisos que necesita para acceder a la instancia de base de datos y sondear una cola de Amazon SQS.

**Para configura el rol de ejecución de la función**

1. En la página [Funciones](https://console.aws.amazon.com/lambda/home#/functions) de la consola de Lambda, seleccione la pestaña **Configuración** y, a continuación, elija **Permisos**.

1. En **Rol de ejecución**, elija **Editar**.

1. En **Rol existente**, elija su rol de ejecución (`lambda-vpc-sqs-role`).

1. Seleccione **Save**.

**Para configurar las variables de entorno de la función**

1. En la página [Funciones](https://console.aws.amazon.com/lambda/home#/functions) de la consola de Lambda, seleccione la pestaña **Configuración** y luego elija **Variables de entorno**.

1. Elija **Edit (Edición de)**.

1. Para agregar las credenciales de acceso a la base de datos, haga lo siguiente:

   1. Elija **Agregar variable de entorno** y, luego, para **Clave**, ingrese **USER\$1NAME**. A continuación, para **Valor**, ingrese **admin**.

   1. Elija **Agregar variable de entorno** y, luego, para **Clave**, ingrese **DB\$1NAME**. A continuación, para **Valor**, ingrese **ExampleDB**.

   1. Elija **Agregar variable de entorno** y, luego, para **Clave**, ingrese **PASSWORD**. A continuación, para **Valor**, ingrese la contraseña que eligió al crear la base de datos.

   1. Elija **Agregar variable de entorno** y, luego, para **Clave**, ingrese **RDS\$1PROXY\$1HOST**. A continuación, para **Valor**, ingrese el punto de conexión de RDS Proxy del que tomó nota antes.

   1. Seleccione **Save**.

## Prueba de la función de Lambda en la consola
<a name="vpc-rds-test-function"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step5.png)


Puede seguir utilizando la consola de Lambda para probar la función. En la fase final del tutorial, debe crear un evento de prueba que imita los datos que recibirá la función cuando la invoque con Amazon SQS. El evento de prueba contiene un objeto JSON que especifica un ID y un nombre de cliente para agregarlos a la tabla `Customer` que crea la función.

**Para probar la función de Lambda**

1. Abra la página [Funciones](https://console.aws.amazon.com/lambda/home#/functions) de la consola de Lambda y elija su función.

1. Elija la sección **Prueba**.

1. Elija **Crear un nuevo evento** y escriba **myTestEvent** como nombre del evento.

1. Copie el siguiente código en **Evento JSON** y seleccione **Guardar**.

   ```
   {
     "Records": [
       {
         "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d",
         "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...",
         "body": "{\n     \"CustID\": 1021,\n     \"Name\": \"Martha Rivera\"\n}",
         "attributes": {
           "ApproximateReceiveCount": "1",
           "SentTimestamp": "1545082649183",
           "SenderId": "AIDAIENQZJOLO23YVJ4VO",
           "ApproximateFirstReceiveTimestamp": "1545082649185"
         },
         "messageAttributes": {},
         "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
         "eventSource": "aws:sqs",
         "eventSourceARN": "arn:aws:sqs:us-west-2:123456789012:my-queue",
         "awsRegion": "us-west-2"
       }
     ]
   }
   ```

1. Seleccione **Probar**

En la pestaña **Resultados de ejecución**, debería ver resultados similares a los siguientes que se muestran en los **Registros de funciones**:

```
[INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f The following items have been added to the database:
[INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f (1021, 'Martha Rivera')
```

## Cree una cola de Amazon SQS.
<a name="vpc-rds-create-queue"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step6.png)


Ha probado correctamente la integración de la función de Lambda y la instancia de base de datos de Amazon RDS. Ahora, cree la cola de Amazon SQS que utilizará para invocar la función de Lambda en la fase final del tutorial.

**Para crear la cola de Amazon SQS (consola)**

1. Abra la página [Colas](https://console.aws.amazon.com/sqs/v2/home#/queues) de la consola de Amazon SQS y seleccione **Crear cola**.

1. Deje **Tipo** como **Estándar** e ingrese **LambdaRDSQueue** como nombre de la cola.

1. Deje todas las opciones predeterminadas seleccionadas y seleccione **Crear cola**.

## Creación de una asignación de orígenes de eventos para invocar la función de Lambda
<a name="vpc-rds-create-event-source-mapping"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step7.png)


Una [asignación de orígenes de eventos](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html) es un recurso de Lambda que lee elementos de un flujo o una cola e invoca una función de Lambda. Al configurar una asignación de orígenes de eventos, puede especificar un tamaño de lote para que los registros de su flujo o cola se agrupen en una sola carga. En este ejemplo, ha establecido el tamaño del lote en 1 para que la función de Lambda se invoque cada vez que envíe un mensaje a la cola. Puede configurar la asignación de orígenes de eventos mediante la AWS CLI o la consola de Lambda.

**Para crear una asignación de orígenes de eventos (consola)**

1. Abra la página [Funciones](https://console.aws.amazon.com/lambda/home#/functions) de la consola de Lambda y seleccione su función (`LambdaFunctionWithRDS`).

1. En la sección **Información general de la función**, elija **Agregar desencadenador**.

1. Para el origen, seleccione **Amazon SQS** y, a continuación, seleccione el nombre de la cola (`LambdaRDSQueue`).

1. En **Tamaño del lote**, ingrese **1**.

1. Deje todas las demás opciones configuradas en los valores predeterminados y seleccione **Agregar**.

Ya lo tiene todo listo para probar la configuración completa. Para ello, agregue un mensaje a su cola de Amazon SQS.

## Prueba y supervisión de la configuración
<a name="vpc-rds-test-setup"></a>

![\[\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step8.png)


Para probar la configuración completa, agregue mensajes a la cola de Amazon SQS mediante la consola. A continuación, utilice Registros de CloudWatch para confirmar que la función de Lambda esté escribiendo registros en la base de datos según lo previsto.

**Para probar y supervisar la configuración**

1. Abra la página [Colas](https://console.aws.amazon.com/sqs/v2/home#/queues) de la consola de Amazon SQS y seleccione su cola (`LambdaRDSQueue`).

1. Elija **Enviar y recibir mensajes** y pegue el siguiente JSON en el **Cuerpo del mensaje** de la sección **Enviar mensaje**.

   ```
   {
       "CustID": 1054,
       "Name": "Richard Roe"
   }
   ```

1. Elija **Enviar mensaje**.

   Al enviar el mensaje a la cola, Lambda invocará la función a través de la asignación de orígenes de eventos. Para confirmar que Lambda haya invocado su función según lo previsto, utilice Registros de CloudWatch para comprobar que la función haya escrito el ID y el nombre del cliente en la tabla de la base de datos.

1. Abra la página [Grupos de registro](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups) de la consola de CloudWatch y seleccione el grupo de registro para su función (`/aws/lambda/LambdaFunctionWithRDS`).

1. En la sección **Flujos de registro**, elija el flujo de registro más reciente.

   La tabla debe contener dos registros de clientes, uno de cada invocación de la función. En el flujo de registro, debería ver mensajes similares al siguiente:

   ```
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 The following items have been added to the database:
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1021, 'Martha Rivera')
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1054, 'Richard Roe')
   ```

## Limpiar los recursos de
<a name="rds-tutorial-cleanup"></a>

A menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Si elimina los recursos de AWS que ya no utiliza, evitará gastos innecesarios en su cuenta de AWS.

**Cómo eliminar la función de Lambda**

1. Abra la [página de Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Seleccione la función que ha creado.

1. Elija **Actions** (Acciones), **Delete** (Eliminar).

1. Elija **Eliminar**.

**Cómo eliminar el rol de ejecución**

1. Abra la página [Roles](https://console.aws.amazon.com/iam/home#/roles) en la consola de IAM.

1. Seleccione el rol de ejecución que creó.

1. Elija **Delete role (Eliminar rol)**.

1. Elija **Sí, eliminar**.

**Para eliminar la instancia de base de datos MySQL**

1. Abra la página [Databases (Bases de datos)](https://console.aws.amazon.com//rds/home#databases:) de la consola de Amazon RDS.

1. Seleccione la base de datos que ha creado.

1. Elija **Acciones**, **Eliminar**.

1. Borre el cuadro de verificación **Create final snapshot (Crear instantánea final)**.

1. Escriba **delete me** en el cuadro de texto.

1. Elija **Eliminar**.

**Para eliminar la cola de Amazon SQS**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SQS en [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/).

1. Seleccione la cola que ha creado.

1. Elija **Eliminar**.

1. Escriba **delete** en el cuadro de texto.

1. Elija **Eliminar**.