

# Conceitos básicos do Amazon RDS
<a name="CHAP_GettingStarted"></a>

Nos exemplos a seguir, é possível descobrir como criar e se conectar a uma instância de banco de dados usando o Amazon Relational Database Service (Amazon RDS). É possível criar uma instância de banco de dados que use Db2, MariaDB, MySQL, Microsoft SQL Server, Oracle ou PostgreSQL.

**Importante**  
É necessário concluir as tarefas em [Configuração do ambiente do Amazon RDS](CHAP_SettingUp.md) antes de criar ou se conectar a uma instância de banco de dados.

Criar uma instância de banco de dados e se conectar a um banco de dados em uma instância de banco de dados é um pouco diferente para cada um dos mecanismos de banco de dados. Escolha um dos seguintes mecanismo de banco de dados que você deseja usar para obter informações detalhadas sobre como criar e se conectar à instância de banco de dados. Depois de ter criado e se conectado à sua instância de banco de dados, há instruções para ajudá-lo a excluir essa instância de banco de dados.

**Topics**
+ [Criar e conectar uma instância de banco de dados MariaDB](CHAP_GettingStarted.CreatingConnecting.MariaDB.md)
+ [Criar uma instância de banco de dados do Microsoft SQL Server e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.SQLServer.md)
+ [Criar e conectar a uma instância de banco de dados MySQL](CHAP_GettingStarted.CreatingConnecting.MySQL.md)
+ [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md)
+ [Criar uma instância de banco de dados PostgreSQL e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.PostgreSQL.md)
+ [Tutorial: crie um servidor Web e uma instância de banco de dados do Amazon RDS](TUT_WebAppWithRDS.md)
+ [Tutorial: Usar uma função do Lambda para acessar um banco de dados Amazon RDS](rds-lambda-tutorial.md)

# Criar e conectar uma instância de banco de dados MariaDB
<a name="CHAP_GettingStarted.CreatingConnecting.MariaDB"></a>

Este tutorial cria uma instância do EC2 e uma instância de banco de dados do RDS para MariaDB. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente MySQL padrão. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la.

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

**Importante**  
Não há cobrança para criar uma Conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

![\[Instância do EC2 e instância de banco de dados MariaDB.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-mariadb.png)


Esse tutorial permite criar recursos usando um dos seguintes métodos:

1. Use o Console de gerenciamento da AWS: [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2) e [Criar uma instância de banco de dados do MariaDB](#CHAP_GettingStarted.Creating.MariaDB) 

1. Use o CloudFormation para criar a instância de banco de dados e a instância do EC2: [(Opcional) Criar VPC, instância do EC2 e instância do MariaDB usando o CloudFormation](#CHAP_GettingStarted.CFN.MariaDB) 

O primeiro método usa **Criação fácil** para criar uma instância de banco de dados privada do MariaDB com o Console de gerenciamento da AWS. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção **Easy create** (Criação fácil) usa a configuração padrão para as outras opções de configuração. 

Ao usar a opção **Criação padrão**, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a **Criação padrão**. Para mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Pré-requisitos](#CHAP_GettingStarted.Prerequisites.MariaDB)
+ [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2)
+ [Criar uma instância de banco de dados do MariaDB](#CHAP_GettingStarted.Creating.MariaDB)
+ [(Opcional) Criar VPC, instância do EC2 e instância do MariaDB usando o CloudFormation](#CHAP_GettingStarted.CFN.MariaDB)
+ [Conectar-se a uma instância de banco de dados MariaDB](#CHAP_GettingStarted.Connecting.MariaDB)
+ [Excluir a instância do EC2 e a instância de banco de dados](#CHAP_GettingStarted.Deleting.MariaDB)
+ [(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation](#CHAP_GettingStarted.DeletingCFN.MariaDB)
+ [(Opcional) Conectar a instância de banco de dados a uma função do Lambda](#CHAP_GettingStarted.ComputeConnect.MariaDB)

## Pré-requisitos
<a name="CHAP_GettingStarted.Prerequisites.MariaDB"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Criar uma instância do EC2
<a name="CHAP_GettingStarted.Creating.MariaDB.EC2"></a>

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

**Para criar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, selecione a Região da AWS em que você deseja criar a instância do EC2.

1. Escolha **Painel do EC2** e **Executar instância**, conforme mostrado na imagem a seguir.  
![\[Painel do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   A página **Iniciar uma instância** é aberta.

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **ec2-database-connect**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Amazon Linux** e, depois, **AMI do Amazon Linux 2023**. Mantenha as seleções padrão nas outras opções.  
![\[Escolha uma imagem de máquina da Amazon.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) no *Guia do usuário do Amazon EC2*.

   1. Para **Permitir tráfego SSH**, em **Configurações de rede**, selecione a origem das conexões SSH com a instância do EC2. 

      Você pode escolher **My IP** (Meu IP) se o endereço IP exibido estiver correto para conexões SSH. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Um exemplo de endereço IP é 192.0.2.1/32.

       Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

      A imagem a seguir mostra um exemplo da seção **Configurações de rede**.  
![\[Configurações de rede para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância do EC2 no painel **Resumo** e, quando estiver com tudo pronto, escolha **Executar instância**.

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

1. Na guia **Detalhes**, observe os seguintes valores, necessários ao se conectar utilizando SSH:

   1. No **Resumo da instância**, observe o valor do **DNS IPv4 público**.  
![\[Nome do DNS público do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. Em **Detalhes da instância**, observe o valor do **nome do par de chaves**.  
![\[Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere até o **Estado da instância** para a instância do EC2 ficar como **Executando** antes de continuar.

## Criar uma instância de banco de dados do MariaDB
<a name="CHAP_GettingStarted.Creating.MariaDB"></a>

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados MariaDB.

Neste exemplo, use a opção **Criação fácil** para criar uma instância de banco de dados executando o mecanismo de banco de dados MariaDB com uma classe de instância de banco de dados db.t4g.micro.

**Para criar uma instância de banco de dados MariaDB com a criação fácil**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS na qual você deseja criar a instância de banco de dados.

1. No painel de navegação, escolha **Bancos de dados**.

1. Selecione **Criar banco de dados** e escolha **Criação fácil**.   
![\[Opção Criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. Em **Configuration (Configuração)**, escolha **MariaDB**.

1. Em **Tamanho da instância de banco de dados**, escolha **Nível gratuito** ou **Sandbox**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.

1. Em **Identificador de instância de banco de dados**, insira **database-test1**.

1. Em **Nome do usuário principal**, insira um nome para o usuário mestre ou deixe o nome padrão.

   A página **Create database** (Criar banco de dados) deve ser semelhante à imagem a seguir. Para contas do plano gratuito, aparece **Nível gratuito**. Para contas do plano pago, aparece **Sandbox**.  
![\[Página Criar banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-mariadb.png)

1. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, marque a opção **Gerar uma senha automaticamente**.

   Para inserir sua senha primária, desmarque a caixa de seleção **Gerar uma senha automaticamente** e insira a mesma senha em **Senha primária** e em **Confirmar senha**.

1. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, expanda **Configurar conexão do EC2: *opcional***.

   Selecione **Conectar-se a um recurso computacional do EC2**. Selecione a instância do EC2 que você criou anteriormente.  
![\[Configure a opção de conexão do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Expanda **Visualizar as configurações padrão da criação fácil**.   
![\[Configurações padrão da criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-view-default-maria.png)

   Você pode examinar as configurações padrão usadas com a opção **Easy Create** (Criação fácil). A coluna **Editável após a criação do banco de dados** mostra quais opções podem ser alteradas após a criação do banco de dados.
   + Se uma configuração tiver **Não** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados.
   + Se uma configuração tiver **Sim** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

1. Selecione **Criar banco de dados**.

   Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha **View credential details (Ver detalhes da credencial)**.

   Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.   
Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Na lista **Bancos de dados**, escolha o nome da nova instância de banco de dados MariaDB para mostrar seus detalhes.

   A instância de banco de dados permanecerá no status **Criando** até estar pronta para ser usada.  
![\[Detalhes da instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MariaDB-Launch06.png)

   Quando o status muda para **Available** (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível.

## (Opcional) Criar VPC, instância do EC2 e instância do MariaDB usando o CloudFormation
<a name="CHAP_GettingStarted.CFN.MariaDB"></a>

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância do MariaDB, você pode usar o CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do CloudFormation. Consulte mais informações em [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) e [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**Importante**  
O CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. Para ter mais informações, consulte [Preço do Amazon RDS para MariaDB](https://aws.amazon.com//rds/mariadb/pricing).
+ Baixar o modelo do CloudFormation
+ Configurar recursos usando o CloudFormation

### Baixar o modelo do CloudFormation
<a name="CHAP_GettingStarted.CFN.MariaDB.Step1"></a>

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link [MariaDB CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mariadb-main.template.yaml).

Na página do Github, clique no botão *Baixar arquivo bruto* para salvar o arquivo YAML do modelo.

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

**nota**  
Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Ao usar o modelo do CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Create Stack** (Criar pilha).

1. Na seção Especificar modelo, selecione **Fazer upload de um arquivo de modelo do computador** e escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, defina os seguintes parâmetros:

   1. Defina o **Nome da pilha** como **MariaDBTestStack**.

   1. Em **Parâmetros**, defina **Zonas de disponibilidade** selecionando três zonas de disponibilidade.

   1. Em **Configuração do bastion host do Linux**, em **Nome da chave**, selecione um par de chaves para fazer login na instância do EC2.

   1. Em **Configurações do bastion host do Linux**, defina o **Intervalo de IP permitido** para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP é 192.0.2.1/32.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

   1. Em **Configuração geral do banco de dados**, defina a **Classe da instância do banco de dados** como **db.t3.micro**.

   1. Defina o **Nome do banco de dados** como **database-test1**.

   1. Em **Nome de usuário principal do banco de dados**, insira um nome para o usuário principal.

   1. Defina a **Gerenciar senha de usuário principal do banco de dados com o Secrets Manager** como `false` para esse tutorial.

   1. Em **Senha do banco de dados**, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

   1. Em **Configuração de armazenamento de banco de dados**, defina o **Tipo de armazenamento do banco de dados** como **gp2**.

   1. Em **Configuração de monitoramento de banco de dados**, defina **Habilitar o Performance Insights do RDS** como falso.

   1. Deixe todas as outras configurações com os valores padrão. Clique em **Próximo** para continuar.

1. Na página **Revisar pilha**, selecione **Enviar** depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes *BastionStack* e *RDSNS* para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em [Viewing CloudFormation stack data and resources on the Console de gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectar-se a uma instância de banco de dados MariaDB
<a name="CHAP_GettingStarted.Connecting.MariaDB"></a>

Você pode usar qualquer aplicação cliente padrão SQL para se conectar à instância de banco de dados. Neste exemplo, você se conecta a uma instância de banco de dados MariaDB usando o cliente da linha de comando mysql.

**Como conectar-se a uma instância de banco de dados MariaDB**

1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados. 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

   1. No painel de navegação, escolha **Bancos de dados**.

   1. Escolha o nome da instância de banco de dados MariaDB para exibir os detalhes. 

   1. Na guia **Connectivity & security (Conectividade e segurança)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.   
![\[Conecte-se a uma instância de banco de dados MariaDB.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MariaDBConnect1.png)

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do Amazon EC2*.

   Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

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

   Por exemplo, suponha que `ec2-database-connect-key-pair.pem` esteja armazenado em `/dir1` no Linux e que o DNS IPv4 público para sua instância do EC2 seja `ec2-12-345-678-90.compute-1.amazonaws.com`. Seu comando SSH teria a seguinte aparência:

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

1. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, execute o seguinte comando.
**nota**  
A opção `-y` instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

   ```
   sudo dnf update -y
   ```

1. Instale o cliente da linha de comando mysql do MariaDB.

   Para instalar o cliente da linha de comando do MariaDB no Amazon Linux 2023, execute o seguinte comando:

   ```
   sudo dnf install mariadb105
   ```

1. Conecte-se à instância de banco de dados MariaDB. Por exemplo, insira o comando a seguir. Essa ação permite que você se conecte à instância de banco de dados MariaDB usando o cliente do MySQL.

   Substitua o endpoint da instância de banco de dados (nome DNS) por `endpoint` e o nome do usuário principal usado por `admin`. Forneça a senha mestra usada quando for solicitada uma senha.

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

   Depois de inserir a senha do usuário, você deverá ver uma saída semelhante à seguinte.

   ```
   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 ter mais informações sobre como se conectar à instância de banco de dados MariaDB, consulte [Conectar-se à instância de banco de dados do MariaDB](USER_ConnectToMariaDBInstance.md). Se você não conseguir se conectar à sua instância de banco de dados, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão MariaDB não criptografada apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para ter informações sobre como usar conexões criptografadas, consulte . [Conectar-se à instância de banco de dados do MariaDB no Amazon RDS com SSL/TLS por meio do cliente de linha de comandos do MySQL (criptografado)](USER_ConnectToMariaDBInstanceSSL.CLI.md).

1. Executar comandos SQL.

   Por exemplo, o seguinte comando SQL mostra a data e a hora atuais:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Excluir a instância do EC2 e a instância de banco de dados
<a name="CHAP_GettingStarted.Deleting.MariaDB"></a>

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

**Como excluir a instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instâncias**.

1. Selecione a instância do EC2 e escolha **Estado da instância, Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar**.

Consulte mais informações sobre como excluir uma instância do EC2 em [Como encerrar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

**Como excluir uma instância de banco de dados sem snapshot de banco de dados final**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja excluir.

1. Em **Actions**, selecione **Delete**.

1. Desmarque **Criar snapshot final?** e **Reter backups automatizados**.

1. Conclua a confirmação e escolha **Excluir**.

## (Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MariaDB"></a>

Se você usou o CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

**Para excluir os recursos do CloudFormation**

1. Abra o CloudFormation Console.

1. Na página **Pilhas** no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

1. Escolha **Excluir**.

1. Selecione **Excluir pilha** quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em [Deleting a stack on the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Guia do usuário do AWS CloudFormation*.

## (Opcional) Conectar a instância de banco de dados a uma função do Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MariaDB"></a>

Você também pode conectar a instância de banco de dados do RDS para MariaDB a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para obter mais informações, consulte [Conectar automaticamente uma função do Lambda e uma instância de banco de dados](lambda-rds-connect.md).

# Criar uma instância de banco de dados do Microsoft SQL Server e conectar-se a ela
<a name="CHAP_GettingStarted.CreatingConnecting.SQLServer"></a>

Este tutorial cria uma instância do EC2 e uma instância de banco de dados do RDS para Microsoft. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente do Microsoft SQL Server Management Studio. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la. 

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

**Importante**  
Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

![\[instância do EC2 e instância de banco de dados Microsoft SQL Server.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-sqlserver.png)


Esse tutorial permite criar recursos usando um dos seguintes métodos:

1. Use o Console de gerenciamento da AWS: [Criar uma instância de banco de dados do SQL Server](#CHAP_GettingStarted.Creating.SQLServer) e [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)

1. Use o CloudFormation para criar a instância de banco de dados e a instância do EC2: [(Opcional) Criar VPC, instância do EC2 e instância do SQL Server usando o CloudFormation](#CHAP_GettingStarted.CFN.SQLServer) 

O primeiro método usa **Criação fácil** para criar uma instância de banco de dados privada do SQL Server com o Console de gerenciamento da AWS. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção **Easy create** (Criação fácil) usa a configuração padrão para as outras opções de configuração. 

Ao usar a opção **Criação padrão**, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a **Criação padrão**. Para mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Pré-requisitos](#CHAP_GettingStarted.Prerequisites.SQLServer)
+ [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)
+ [Criar uma instância de banco de dados do SQL Server](#CHAP_GettingStarted.Creating.SQLServer)
+ [(Opcional) Criar VPC, instância do EC2 e instância do SQL Server usando o CloudFormation](#CHAP_GettingStarted.CFN.SQLServer)
+ [Conectar-se à instância de banco de dados do SQL Server](#CHAP_GettingStarted.Connecting.SQLServer)
+ [Explorar a instância de banco de dados do SQL Server de amostra](#CHAP_GettingStarted.SQLServer.Exploring)
+ [Excluir a instância do EC2 e a instância de banco de dados](#CHAP_GettingStarted.Deleting.SQLServer)
+ [(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation](#CHAP_GettingStarted.DeletingCFN.SQLServer)
+ [(Opcional) Conectar a instância de banco de dados a uma função do Lambda](#CHAP_GettingStarted.ComputeConnect.SQLServer)

## Pré-requisitos
<a name="CHAP_GettingStarted.Prerequisites.SQLServer"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Criar uma instância do EC2
<a name="CHAP_GettingStarted.Creating.SQLServer.EC2"></a>

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

**Para criar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, escolha a Região da AWS que você usou para o banco de dados anteriormente.

1. Escolha **Painel do EC2** e **Executar instância**, conforme mostrado na imagem a seguir.  
![\[Painel do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   A página **Iniciar uma instância** é aberta.

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **ec2-database-connect**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Windows** e, depois, selecione a **Base do Microsoft Windows Server 2022**. Mantenha as seleções padrão nas outras opções.  
![\[Escolha uma imagem de máquina da Amazon.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial_ec2_sqlserver_create1.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Para ter mais informações sobre como criar um par de chaves, consulte [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) no *Guia do usuário do Amazon EC2 para instâncias do Windows*.

   1. Para **Firewall (grupos de segurança)**, em **Configurações de rede**, selecione **Permitir tráfego RDP de** para se conectar à instância do EC2. 

      Você poderá selecionar **Meu IP** se o endereço IP exibido estiver correto para conexões RDP. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando RDP. Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Um exemplo de endereço IP é 192.0.2.1/32.

       Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se você usar `0.0.0.0/0` para acesso do RDP, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando RDP. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando RDP.

      A imagem a seguir mostra um exemplo da seção **Configurações de rede**.  
![\[Configurações de rede para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettingsRDSMS.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância do EC2 no painel **Resumo** e, quando estiver com tudo pronto, escolha **Executar instância**.

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Escolha o identificador de instância do EC2 para abrir a lista de instâncias do EC2. 

1. Espere até o **Estado da instância** para a instância do EC2 ficar como **Executando** antes de continuar.

## Criar uma instância de banco de dados do SQL Server
<a name="CHAP_GettingStarted.Creating.SQLServer"></a>

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados do SQL Server.

Neste exemplo, use a opção **Criação fácil** para criar uma instância de banco de dados que execute o mecanismo de banco de dados do SQL Server com uma classe de instância de banco de dados db.t2.micro.

**Como criar uma instância de banco de dados do Microsoft SQL Server com a Criação fácil**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS na qual você deseja criar a instância de banco de dados.

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Selecione a opção **Create database** (Criar banco de dados) e verifique se a opção **Easy Create** (Criação fácil) está habilitada.   
![\[Opção Criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. Em **Configuration (Configuração)**, escolha **Microsoft SQL Server**.

1. Em **Edição**, selecione **SQL Server Express Edition**.

1. Em **DB instance size (Tamanho da instância de banco de dados)**, escolha **Free tier (Nível gratuito)**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.

1. Em **Identificador de instância de banco de dados**, insira **database-test1**.

   A página **Create database** (Criar banco de dados) deve ser semelhante à imagem a seguir. Para contas do plano gratuito, aparece **Nível gratuito**. Para contas do plano pago, aparece **Sandbox**.  
![\[Opções de mecanismo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver.png)

1. Em **Nome do usuário principal**, insira um nome para o usuário mestre ou deixe o nome padrão.

1. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, abra **Configurar conexão do EC2: *opcional***.

   Selecione **Conectar-se a um recurso computacional do EC2**. Selecione a instância do EC2 que você criou anteriormente.  
![\[Configure a opção de conexão do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, selecione a caixa de seleção **Auto generate a password** (Gerar uma senha automaticamente).

   Para inserir sua senha primária, desmarque a caixa de seleção **Auto generate a password** (Gerar uma senha automaticamente) e insira a mesma senha em **Master password** (Senha primária) e em **Confirm password** (Confirmar senha).

1. Abra **Visualizar as configurações padrão da criação fácil**.  
![\[Configurações padrão da criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-confirm.png)

   Você pode examinar as configurações padrão usadas com a opção **Easy Create** (Criação fácil). A coluna **Editável após a criação do banco de dados** mostra quais opções podem ser alteradas após a criação do banco de dados.
   + Se uma configuração tiver **Não** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados.
   + Se uma configuração tiver **Sim** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

1. Selecione **Criar banco de dados**.

   Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha **View credential details (Ver detalhes da credencial)**.

   Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.   
Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Na lista **Bancos de dados**, selecione o nome da nova instância de banco de dados do SQL Server para mostrar seus detalhes.

   A instância de banco de dados permanecerá no status **Criando** até estar pronta para ser usada.  
![\[Captura de tela dos detalhes da instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-launch.png)

   Quando o status muda para **Available** (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível.

## (Opcional) Criar VPC, instância do EC2 e instância do SQL Server usando o CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer"></a>

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância do SQL Server, você pode usar o CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do CloudFormation. Consulte mais informações em [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) e [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**Importante**  
O CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. Para ter mais informações, consulte [Definição de preço do Amazon RDS para SQL Server](https://aws.amazon.com//rds/sqlserver/pricing).

Para criar recursos usando o console do CloudFormation, conclua as seguintes etapas:
+ Baixar o modelo do CloudFormation
+ Configurar recursos usando o CloudFormation

### Baixar o modelo do CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer.Step1"></a>

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link [SQL Server CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-sqlserver-main.template.yaml).

Na página do Github, clique no botão *Baixar arquivo bruto* para salvar o arquivo YAML do modelo.

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

**nota**  
Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Ao usar o modelo do CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Create Stack** (Criar pilha).

1. Na seção Especificar modelo, selecione **Fazer upload de um arquivo de modelo do computador** e escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, defina os seguintes parâmetros:

   1. Defina o **Nome da pilha** como **SQLServerTestStack**.

   1. Em **Parâmetros**, defina **Zonas de disponibilidade** selecionando três zonas de disponibilidade.

   1. Em **Configuração do bastion host do Linux**, em **Nome da chave**, selecione um par de chaves para fazer login na instância do EC2.

   1. Em **Configurações do bastion host do Linux**, defina o **Intervalo de IP permitido** para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP é 192.0.2.1/32.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

   1. Em **Configuração geral do banco de dados**, defina a **Classe da instância do banco de dados** como **db.t3.micro**.

   1. Defina o **Nome do banco de dados** como **database-test1**.

   1. Em **Nome de usuário principal do banco de dados**, insira um nome para o usuário principal.

   1. Defina a **Gerenciar senha de usuário principal do banco de dados com o Secrets Manager** como `false` para esse tutorial.

   1. Em **Senha do banco de dados**, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

   1. Em **Configuração de armazenamento de banco de dados**, defina o **Tipo de armazenamento do banco de dados** como **gp2**.

   1. Em **Configuração de monitoramento de banco de dados**, defina **Habilitar o Performance Insights do RDS** como falso.

   1. Deixe todas as outras configurações com os valores padrão. Clique em **Próximo** para continuar.

1. Na página **Configurar opções de pilha**, mantenha todas as opções padrão. Clique em **Próximo** para continuar.

1. Na página **Revisar pilha**, selecione **Enviar** depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes *BastionStack* e *RDSNS* para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em [Viewing CloudFormation stack data and resources on the Console de gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectar-se à instância de banco de dados do SQL Server
<a name="CHAP_GettingStarted.Connecting.SQLServer"></a>

No procedimento a seguir, você se conectará à instância de banco de dados usando o Microsoft SQL Server Management Studio (SSMS).

**Como se conectar a uma instância de banco de dados do RDS para SQL Server usando SSMS**

1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados. 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

   1. No painel de navegação, escolha **Bancos de dados**.

   1. Escolha o nome da instância de banco de dados do SQL Server para exibir os detalhes. 

   1. Na guia **Connectivity (Conectividade)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.  
![\[Conecte-se a uma instância de banco de dados do Microsoft SQL Server.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQLServerConnect2.png)

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conectar-se à sua instância do Microsoft Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows) no *Guia do usuário do Amazon EC2 para instâncias do Windows*.

1. Instale o cliente do SQL Server Management Studio (SSMS) da Microsoft.

   Para baixar uma versão autônoma do SSMS para sua instância do EC2, consulte [Baixar o SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) na documentação da Microsoft.

   1. Use o menu Iniciar para abrir o Internet Explorer.

   1. Use o Internet Explorer para baixar e instalar uma versão autônoma do SSMS. Se você for avisado de que o site não é confiável, adicione-o à lista de sites confiáveis.

1. Inicie o SQL Server Management Studio (SSMS). 

   A caixa de diálogo **Connect to Server (Conectar-se ao servidor)** é exibida. 

1. Forneça as seguintes informações da sua instância de banco de dados de exemplo: 

   1. Para **Server type (Tipo de servidor)**, escolha **Database Engine (Mecanismo do banco de dados)**. 

   1. Em **Server name (Nome do servidor)**, insira o nome DNS, seguido por uma vírgula e o número da porta (a porta padrão é 1433). Por exemplo, o nome do servidor deve ser semelhante ao seguinte:

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

   1. Para **Authentication (Autenticação)**, escolha **SQL Server Authentication (Autenticação do SQL Server)**. 

   1. Em **Login**, digite o nome de usuário selecionado para sua instância de banco de dados de exemplo. Isso também é conhecido como o nome do usuário principal.

   1. Em **Password (Senha)**, digite a senha escolhida anteriormente para a instância de banco de dados de exemplo. Isso também é conhecido como a senha do usuário mestre.

1. Selecione **Conectar**. 

   Depois de alguns momentos, o SSMS conecta-se à sua instância de banco de dados. Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão não criptografada do SQL Server apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para ter informações sobre como usar conexões criptografadas, consulte [Uso do SSL com uma instância de banco de dados do Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

Para ter mais informações sobre como se conectar a uma instância de banco de dados Microsoft SQL Server, consulte [Conectar-se à instância de banco de dados do Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Para ter informações sobre problemas de conexão, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

## Explorar a instância de banco de dados do SQL Server de amostra
<a name="CHAP_GettingStarted.SQLServer.Exploring"></a>

Você pode explorar sua instância de banco de dados de exemplo usando o Microsoft SQL Server Management Studio (SSMS).

**Como explorar uma instância de banco de dados usando o SSMS**

1. Sua instância de banco de dados SQL Server acompanha bancos de dados de sistema internos padrão do SQL Server (master, model, msdb e tempdb). Para explorar os bancos de dados do sistema, faça o seguinte: 

   1. Em SSMS, no menu **View (Exibir)**, escolha **Object Explorer (Navegador de objetos)**.

   1. Expanda sua instância de banco de dados, expanda **Databases (Bancos de dados)** e depois expanda **System Databases (Bancos de dados do sistema)**, conforme mostrado.   
![\[Navegador de objetos exibindo os bancos de dados do sistema.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQL-SSMS-SystemDBs.png)

   Sua instância de banco de dados do SQL Server também conta com um banco de dados chamado `rdsadmin`. O Amazon RDS usa esse banco de dados para armazenar os objetos usados para gerenciar o banco de dados. O banco de dados `rdsadmin` também inclui procedimentos armazenados que você pode executar para realizar tarefas avançadas. 

1. Comece a criar seus próprios bancos de dados e a executar consultas em instâncias de banco de dados e bancos de dados como de costume. Para executar uma consulta de teste na sua instância de banco de dados de exemplo, faça o seguinte: 

   1. No SSMS, no menu **Arquivo**, aponte para **Novo** e selecione **Consultar com a conexão atual**. 

   1. Digite a seguinte consulta SQL:

      ```
      select @@VERSION
      ```

   1. Execute a consulta. O SSMS retorna a versão do SQL Server da sua instância de banco de dados do Amazon RDS.   
![\[Janela da consulta SQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQL-Connect-Query.png)

## Excluir a instância do EC2 e a instância de banco de dados
<a name="CHAP_GettingStarted.Deleting.SQLServer"></a>

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

**Como excluir a instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instâncias**.

1. Selecione a instância do EC2 e escolha **Estado da instância, Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar**.

Para ter mais informações sobre como excluir uma instância do EC2, consulte [Encerrar sua instância](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/terminating-instances.html) no *Guia do usuário de instâncias do Windows*.

**Como excluir uma instância de banco de dados sem snapshot de banco de dados final**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja excluir.

1. Em **Actions**, selecione **Delete**.

1. Desmarque **Criar snapshot final?** e **Reter backups automatizados**.

1. Conclua a confirmação e escolha **Excluir**. 

## (Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.SQLServer"></a>

Se você usou o CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

**Para excluir os recursos do CloudFormation**

1. Abra o CloudFormation Console.

1. Na página **Pilhas** no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

1. Escolha **Excluir**.

1. Selecione **Excluir pilha** quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em [Deleting a stack on the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Guia do usuário do AWS CloudFormation*.

## (Opcional) Conectar a instância de banco de dados a uma função do Lambda
<a name="CHAP_GettingStarted.ComputeConnect.SQLServer"></a>

Você também pode conectar a instância de banco de dados do RDS para SQL Server a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para obter mais informações, consulte [Conectar automaticamente uma função do Lambda e uma instância de banco de dados](lambda-rds-connect.md).

# Criar e conectar a uma instância de banco de dados MySQL
<a name="CHAP_GettingStarted.CreatingConnecting.MySQL"></a>

Este tutorial cria uma instância do EC2 e uma instância de banco de dados do RDS para MySQL. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente MySQL padrão. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la.

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

**Importante**  
Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

![\[Instância do EC2 e instância de banco de dados MySQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-mysql.png)


Esse tutorial permite criar recursos usando um dos seguintes métodos:

1. Use o Console de gerenciamento da AWS: [Criar uma instância de banco de dados do MySQL](#CHAP_GettingStarted.Creating.MySQL) e [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.MySQL.EC2) 

1. Use o CloudFormation para criar a instância de banco de dados e a instância do EC2: [(Opcional) Criar VPC, instância do EC2 e instância do MySQL usando o CloudFormation](#CHAP_GettingStarted.CFN.MySQL) 

O primeiro método usa **Criação fácil** para criar uma instância de banco de dados privada do MySQL com o Console de gerenciamento da AWS. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção **Easy create** (Criação fácil) usa a configuração padrão para as outras opções de configuração.

Ao usar a opção **Criação padrão**, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a **Criação padrão**. Para mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Pré-requisitos](#CHAP_GettingStarted.Prerequisites.MySQL)
+ [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.MySQL.EC2)
+ [Criar uma instância de banco de dados do MySQL](#CHAP_GettingStarted.Creating.MySQL)
+ [(Opcional) Criar VPC, instância do EC2 e instância do MySQL usando o CloudFormation](#CHAP_GettingStarted.CFN.MySQL)
+ [Conectar-se a uma instância de banco de dados MySQL](#CHAP_GettingStarted.Connecting.MySQL)
+ [Excluir a instância do EC2 e a instância de banco de dados](#CHAP_GettingStarted.Deleting.MySQL)
+ [(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation](#CHAP_GettingStarted.DeletingCFN.MySQL)
+ [(Opcional) Conectar a instância de banco de dados a uma função do Lambda](#CHAP_GettingStarted.ComputeConnect.MySQL)

## Pré-requisitos
<a name="CHAP_GettingStarted.Prerequisites.MySQL"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Criar uma instância do EC2
<a name="CHAP_GettingStarted.Creating.MySQL.EC2"></a>

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

**Para criar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, selecione a Região da AWS em que você deseja criar a instância do EC2.

1. Escolha **Painel do EC2** e **Executar instância**, conforme mostrado na imagem a seguir.  
![\[Painel do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   A página **Iniciar uma instância** é aberta.

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **ec2-database-connect**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Amazon Linux** e, depois, **AMI do Amazon Linux 2023**. Mantenha as seleções padrão nas outras opções.  
![\[Escolha uma imagem de máquina da Amazon.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) no *Guia do usuário do Amazon EC2*.

   1. Para **Permitir tráfego SSH**, em **Configurações de rede**, selecione a origem das conexões SSH com a instância do EC2. 

      Você pode escolher **My IP** (Meu IP) se o endereço IP exibido estiver correto para conexões SSH. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Um exemplo de endereço IP é 192.0.2.1/32.

       Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

      A imagem a seguir mostra um exemplo da seção **Configurações de rede**.  
![\[Configurações de rede para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância do EC2 no painel **Resumo** e, quando estiver com tudo pronto, escolha **Executar instância**.

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

1. Na guia **Detalhes**, observe os seguintes valores, necessários ao se conectar utilizando SSH:

   1. No **Resumo da instância**, observe o valor do **DNS IPv4 público**.  
![\[Nome do DNS público do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. Em **Detalhes da instância**, observe o valor do **nome do par de chaves**.  
![\[Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere até o **Estado da instância** para a instância do EC2 ficar como **Executando** antes de continuar.

## Criar uma instância de banco de dados do MySQL
<a name="CHAP_GettingStarted.Creating.MySQL"></a>

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados MySQL.

Neste exemplo, use a opção **Criação fácil** para criar uma instância de banco de dados executando o mecanismo de banco de dados MySQL com uma classe de instâncias de banco de dados db.t3.micro.

**Como criar uma instância de banco de dados MySQL com a criação fácil habilitada**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, selecione a Região da AWS que você utilizou para a instância do EC2 anteriormente.

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Selecione a opção **Create database** (Criar banco de dados) e verifique se a opção **Easy Create** (Criação fácil) está habilitada.   
![\[Opção Criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. Em **Configuration (Configuração)**, escolha **MySQL**.

1. Em **DB instance size (Tamanho da instância de banco de dados)**, escolha **Free tier (Nível gratuito)**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.

1. Em **Identificador de instância de banco de dados**, insira **database-test1**.

1. Em **Nome do usuário principal**, insira um nome para o usuário mestre ou deixe o nome padrão.

   A página **Create database** (Criar banco de dados) deve ser semelhante à imagem a seguir. Para contas do plano gratuito, aparece **Nível gratuito**. Para contas do plano pago, aparece **Sandbox**.  
![\[Página Criar banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-mysql.png)

1. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, marque a opção **Gerar uma senha automaticamente**.

   Para inserir sua senha primária, desmarque a opção **Gerar uma senha automaticamente**, depois insira a mesma senha em **Senha primária** e em **Confirmar senha**.

1. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, abra **Configurar conexão do EC2: *opcional***.

   Selecione **Conectar-se a um recurso computacional do EC2**. Selecione a instância do EC2 que você criou anteriormente.  
![\[Configure a opção de conexão do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. (Opcional) Abra **View default settings for Easy create (Visualizar as configurações padrão da criação fácil)**.  
![\[Configurações padrão da criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-view-default-mysql.png)

   Você pode examinar as configurações padrão usadas com a opção **Easy Create** (Criação fácil). A coluna **Editável após a criação do banco de dados** mostra quais opções podem ser alteradas após a criação do banco de dados.
   + Se uma configuração tiver **Não** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados.
   + Se uma configuração tiver **Sim** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

1. Selecione **Criar banco de dados**.

   Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha **View credential details (Ver detalhes da credencial)**.

   Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.   
Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Na lista **Bancos de dados**, escolha o nome da nova instância de banco de dados MySQL para mostrar seus detalhes.

   A instância de banco de dados permanecerá no status **Criando** até estar pronta para ser usada.  
![\[Detalhes da instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MySQL-Launch06.png)

   Quando o status muda para **Available** (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível.

## (Opcional) Criar VPC, instância do EC2 e instância do MySQL usando o CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL"></a>

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância do MySQL, você pode usar o CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do CloudFormation. Consulte mais informações em [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) e [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**Importante**  
O CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. Para ter mais informações, consulte [Preço do Amazon RDS para MySQL](https://aws.amazon.com//rds/mysql/pricing).

Para criar recursos usando o console do CloudFormation, conclua as seguintes etapas:
+ Baixar o modelo do CloudFormation
+ Configurar recursos usando o CloudFormation

### Baixar o modelo do CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL.Step1"></a>

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link [MySQL CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mysql-main.template.yaml).

Na página do Github, clique no botão *Baixar arquivo bruto* para salvar o arquivo YAML do modelo.

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

**nota**  
Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Ao usar o modelo do CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Create Stack** (Criar pilha).

1. Na seção Especificar modelo, selecione **Fazer upload de um arquivo de modelo do computador** e escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, defina os seguintes parâmetros:

   1. Defina o **Nome da pilha** como **MySQLTestStack**.

   1. Em **Parâmetros**, defina **Zonas de disponibilidade** selecionando três zonas de disponibilidade.

   1. Em **Configuração do bastion host do Linux**, em **Nome da chave**, selecione um par de chaves para fazer login na instância do EC2.

   1. Em **Configurações do bastion host do Linux**, defina o **Intervalo de IP permitido** para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP é 192.0.2.1/32.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

   1. Em **Configuração geral do banco de dados**, defina a **Classe da instância do banco de dados** como **db.t3.micro**.

   1. Defina o **Nome do banco de dados** como **database-test1**.

   1. Em **Nome de usuário principal do banco de dados**, insira um nome para o usuário principal.

   1. Defina a **Gerenciar senha de usuário principal do banco de dados com o Secrets Manager** como `false` para esse tutorial.

   1. Em **Senha do banco de dados**, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

   1. Em **Configuração de armazenamento de banco de dados**, defina o **Tipo de armazenamento do banco de dados** como **gp2**.

   1. Em **Configuração de monitoramento de banco de dados**, defina **Habilitar o Performance Insights do RDS** como falso.

   1. Deixe todas as outras configurações com os valores padrão. Clique em **Próximo** para continuar.

1. Na página **Configurar opções de pilha**, mantenha todas as opções padrão. Clique em **Próximo** para continuar.

1. Na página **Revisar pilha**, selecione **Enviar** depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes *BastionStack* e *RDSNS* para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em [Viewing CloudFormation stack data and resources on the Console de gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectar-se a uma instância de banco de dados MySQL
<a name="CHAP_GettingStarted.Connecting.MySQL"></a>

Você pode usar qualquer aplicação cliente padrão SQL para se conectar à instância de banco de dados. Neste exemplo, você se conecta a uma instância de banco de dados MySQL usando o cliente da linha de comando mysql.

**Como conectar-se a uma instância de banco de dados MySQL**

1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados. 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

   1. No painel de navegação, escolha **Databases (Bancos de dados)**.

   1. Escolha o nome da instância de banco de dados MySQL para exibir os detalhes. 

   1. Na guia **Connectivity & security (Conectividade e segurança)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.   
![\[Conecte-se a uma instância de banco de dados MySQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MySQLConnect1.png)

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do Amazon EC2*.

   Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

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

   Por exemplo, suponha que `ec2-database-connect-key-pair.pem` esteja armazenado em `/dir1` no Linux e que o DNS IPv4 público para sua instância do EC2 seja `ec2-12-345-678-90.compute-1.amazonaws.com`. Seu comando SSH teria a seguinte aparência:

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

1. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, execute o seguinte comando.
**nota**  
A opção `-y` instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

   ```
   sudo dnf update -y
   ```

1.  Para instalar o cliente da linha de comando mysql do mysql no MariaDB no Amazon Linux 2023, execute o seguinte comando:

   ```
   sudo dnf install mariadb105
   ```

1. Conecte-se à instância de banco de dados MySQL. Por exemplo, insira o comando a seguir. Essa ação permite que você se conecte à instância de banco de dados MySQL usando o cliente do MySQL.

   Substitua o endpoint da instância de banco de dados (nome DNS) por `endpoint` e o nome do usuário principal usado por `admin`. Forneça a senha mestra usada quando for solicitada uma senha.

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

   Depois de inserir a senha do usuário, você deverá ver uma saída semelhante à seguinte.

   ```
   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 ter mais informações sobre como se conectar à sua instância de banco de dados do MySQL, consulte [Conectar-se à instância de banco de dados do MySQL](USER_ConnectToInstance.md). Se você não conseguir se conectar à sua instância de banco de dados, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão MySQL não criptografada apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para obter informações sobre como usar conexões criptografadas, consulte [Conectar-se à instância de banco de dados do MySQL no Amazon RDS com SSL/TLS por meio do cliente de linha de comandos do MySQL (criptografado)](USER_ConnectToInstanceSSL.CLI.md).

1. Executar comandos SQL.

   Por exemplo, o seguinte comando SQL mostra a data e a hora atuais:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Excluir a instância do EC2 e a instância de banco de dados
<a name="CHAP_GettingStarted.Deleting.MySQL"></a>

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

**Como excluir a instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instâncias**.

1. Selecione a instância do EC2 e escolha **Estado da instância, Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar**.

Consulte mais informações sobre como excluir uma instância do EC2 em [Como encerrar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

**Como excluir uma instância de banco de dados sem snapshot de banco de dados final**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja excluir.

1. Em **Actions**, selecione **Delete**.

1. Desmarque **Criar snapshot final?** e **Reter backups automatizados**.

1. Conclua a confirmação e escolha **Excluir**. 

## (Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MySQL"></a>

Se você usou o CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

**Para excluir os recursos do CloudFormation**

1. Abra o CloudFormation Console.

1. Na página **Pilhas** no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

1. Escolha **Excluir**.

1. Selecione **Excluir pilha** quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em [Deleting a stack on the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Guia do usuário do AWS CloudFormation*.

## (Opcional) Conectar a instância de banco de dados a uma função do Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MySQL"></a>

Você também pode conectar a instância de banco de dados do RDS para MySQL a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para obter mais informações, consulte [Conectar automaticamente uma função do Lambda e uma instância de banco de dados](lambda-rds-connect.md).

# Criar uma instância de banco de dados Oracle e conectar-se a ela
<a name="CHAP_GettingStarted.CreatingConnecting.Oracle"></a>

Este tutorial cria uma instância do EC2 e uma instância de banco de dados Oracle. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente Oracle padrão. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la.

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

**Importante**  
Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

![\[Instância do EC2 e instância de banco de dados Oracle.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-oracle.png)


Esse tutorial permite criar recursos usando um dos seguintes métodos:

1. Use o Console de gerenciamento da AWS: [Etapa 2: Criar uma instância de banco de dados Oracle](#CHAP_GettingStarted.Creating.Oracle) e [Etapa 1: Criar uma instância do EC2](#CHAP_GettingStarted.Creating.Oracle.EC2) 

1. Use o CloudFormation para criar a instância de banco de dados e a instância do EC2: [(Opcional) Criar VPC, instância do EC2 e instância de banco de dados do Oracle usando o CloudFormation](#CHAP_GettingStarted.CFN.Oracle) 

O primeiro método usa **Criação fácil** para criar uma instância de banco de dados privada do Oracle com o Console de gerenciamento da AWS. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção **Easy create** (Criação fácil) usa a configuração padrão para as outras opções de configuração.

Ao usar a opção **Criação padrão**, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a **Criação padrão**. Para mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Pré-requisitos](#CHAP_GettingStarted.Prerequisites.Oracle)
+ [Etapa 1: Criar uma instância do EC2](#CHAP_GettingStarted.Creating.Oracle.EC2)
+ [Etapa 2: Criar uma instância de banco de dados Oracle](#CHAP_GettingStarted.Creating.Oracle)
+ [(Opcional) Criar VPC, instância do EC2 e instância de banco de dados do Oracle usando o CloudFormation](#CHAP_GettingStarted.CFN.Oracle)
+ [Etapa 3: Conectar seu cliente SQL a uma instância de banco de dados Oracle.](#CHAP_GettingStarted.Connecting.Oracle)
+ [Etapa 4: Excluir a instância do EC2 e a instância de banco de dados](#CHAP_GettingStarted.Deleting.Oracle)
+ [(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation](#CHAP_GettingStarted.DeletingCFN.Oracle)
+ [(Opcional) Conectar a instância de banco de dados a uma função do Lambda](#CHAP_GettingStarted.ComputeConnect.Oracle)

## Pré-requisitos
<a name="CHAP_GettingStarted.Prerequisites.Oracle"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Etapa 1: Criar uma instância do EC2
<a name="CHAP_GettingStarted.Creating.Oracle.EC2"></a>

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

**Para criar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, selecione a Região da AWS em que você deseja criar a instância do EC2.

1. Escolha **Painel do EC2** e **Executar instância**, conforme mostrado na imagem a seguir.  
![\[Painel do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   A página **Iniciar uma instância** é aberta.

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **ec2-database-connect**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Amazon Linux** e, depois, **AMI do Amazon Linux 2023**. Mantenha as seleções padrão nas outras opções.  
![\[Escolha uma imagem de máquina da Amazon.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) no *Guia do usuário do Amazon EC2*.

   1. Para **Permitir tráfego SSH**, em **Configurações de rede**, selecione a origem das conexões SSH com a instância do EC2. 

      Você pode escolher **My IP** (Meu IP) se o endereço IP exibido estiver correto para conexões SSH. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Um exemplo de endereço IP é 192.0.2.1/32.

       Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

      A imagem a seguir mostra um exemplo da seção **Configurações de rede**.  
![\[Configurações de rede para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância do EC2 no painel **Resumo** e, quando estiver com tudo pronto, escolha **Executar instância**.

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

1. Na guia **Detalhes**, observe os seguintes valores, necessários ao se conectar utilizando SSH:

   1. No **Resumo da instância**, observe o valor do **DNS IPv4 público**.  
![\[Nome do DNS público do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. Em **Detalhes da instância**, observe o valor do **nome do par de chaves**.  
![\[Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere até o **Estado da instância** para a instância do EC2 ficar como **Executando** antes de continuar.

## Etapa 2: Criar uma instância de banco de dados Oracle
<a name="CHAP_GettingStarted.Creating.Oracle"></a>

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados Oracle.

Neste exemplo, use **Criação fácil** para criar uma instância de banco de dados executando o mecanismo de banco de dados Oracle com uma classe de instância de banco de dados db.m5.large.

**Como criar uma instância de banco de dados Oracle com a criação fácil**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS na qual você deseja criar a instância de banco de dados.

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Selecione a opção **Create database** (Criar banco de dados) e verifique se a opção **Easy Create** (Criação fácil) está habilitada.   
![\[Opção Criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. Em **Configuration (Configuração)**, escolha **Oracle**.

1. Em **DB instance size (Tamanho da instância de banco de dados)**, escolha **Dev/Test (Desenvolvimento/teste)**.

1. Em **Identificador de instância de banco de dados**, insira **database-test1**.

1. Em **Nome do usuário principal**, insira um nome para o usuário mestre ou deixe o nome padrão.

   A página **Create database** (Criar banco de dados) deve ser semelhante à imagem a seguir.  
![\[Página Criar banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-oracle2.png)

1. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, marque a opção **Gerar uma senha automaticamente**.

   Para inserir sua senha primária, desmarque a opção **Gerar uma senha automaticamente**, depois insira a mesma senha em **Senha primária** e em **Confirmar senha**.

1. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, abra **Configurar conexão do EC2: *opcional***.

   Selecione **Conectar-se a um recurso computacional do EC2**. Selecione a instância do EC2 que você criou anteriormente.  
![\[Configure a opção de conexão do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Abra **Visualizar as configurações padrão da criação fácil**.  
![\[Configurações padrão da criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-view-default-Oracle.png)

   Você pode examinar as configurações padrão usadas com a opção **Easy Create** (Criação fácil). A coluna **Editável após a criação do banco de dados** mostra quais opções podem ser alteradas após a criação do banco de dados.
   + Se uma configuração tiver **Não** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados.
   + Se uma configuração tiver **Sim** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

1. Selecione **Criar banco de dados**.

   Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha **View credential details (Ver detalhes da credencial)**.

   Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.   
Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Na lista **Bancos de dados**, selecione o nome da nova instância de banco de dados Oracle para mostrar seus detalhes.

   A instância de banco de dados permanecerá no status **Criando** até estar pronta para ser usada.  
![\[Detalhes da instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Oracle-Launch05.png)

   Quando o status muda para **Available** (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível. Enquanto a instância de banco de dados está sendo criada, você pode passar para a próxima etapa e criar uma instância do EC2.

## (Opcional) Criar VPC, instância do EC2 e instância de banco de dados do Oracle usando o CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle"></a>

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância de banco de dados do Oracle, você pode usar o CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do CloudFormation. Consulte mais informações em [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) e [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**Importante**  
O CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. Para ter mais informações, consulte [Preços do Amazon RDS para Oracle](https://aws.amazon.com//rds/oracle/pricing).

Para criar recursos usando o console do CloudFormation, conclua as seguintes etapas:
+ Etapa 1: baixar o modelo do CloudFormation
+ Etapa 2: configurar recursos usando o CloudFormation

### Baixar o modelo do CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle.Step1"></a>

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link [Oracle CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-oracle-main.template.yaml).

Na página do Github, clique no botão *Baixar arquivo bruto* para salvar o arquivo YAML do modelo.

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

**nota**  
Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Ao usar o modelo do CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Create Stack** (Criar pilha).

1. Na seção Especificar modelo, selecione **Fazer upload de um arquivo de modelo do computador** e escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, defina os seguintes parâmetros:

   1. Defina o **Nome da pilha** como **OracleTestStack**.

   1. Em **Parâmetros**, defina **Zonas de disponibilidade** selecionando três zonas de disponibilidade.

   1. Em **Configuração do bastion host do Linux**, em **Nome da chave**, selecione um par de chaves para fazer login na instância do EC2.

   1. Em **Configurações do bastion host do Linux**, defina o **Intervalo de IP permitido** para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP é 192.0.2.1/32.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

   1. Em **Configuração geral do banco de dados**, defina a **Classe da instância do banco de dados** como **db.t3.micro**.

   1. Defina o **Nome do banco de dados** como **database-test1**.

   1. Em **Nome de usuário principal do banco de dados**, insira um nome para o usuário principal.

   1. Defina a **Gerenciar senha de usuário principal do banco de dados com o Secrets Manager** como `false` para esse tutorial.

   1. Em **Senha do banco de dados**, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

   1. Em **Configuração de armazenamento de banco de dados**, defina o **Tipo de armazenamento do banco de dados** como **gp2**.

   1. Em **Configuração de monitoramento de banco de dados**, defina **Habilitar o Performance Insights do RDS** como falso.

   1. Deixe todas as outras configurações com os valores padrão. Clique em **Próximo** para continuar.

1. Na página **Configurar opções de pilha**, mantenha todas as opções padrão. Clique em **Próximo** para continuar.

1. Na página **Revisar pilha**, selecione **Enviar** depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes *BastionStack* e *RDSNS* para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em [Viewing CloudFormation stack data and resources on the Console de gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Etapa 3: Conectar seu cliente SQL a uma instância de banco de dados Oracle.
<a name="CHAP_GettingStarted.Connecting.Oracle"></a>

Você pode usar qualquer aplicação cliente padrão SQL para se conectar à instância de banco de dados. Neste exemplo, você se conecta a uma instância de banco de dados Oracle usando o cliente da linha de comando Oracle.

**Como conectar-se a uma instância de banco de dados Oracle**

1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados. 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

   1. No painel de navegação, escolha **Bancos de dados**.

   1. Escolha o nome da instância de banco de dados Oracle para exibir os detalhes. 

   1. Na guia **Connectivity & security (Conectividade e segurança)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.   
![\[Conecte-se a uma instância de banco de dados Oracle.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do Amazon EC2*.

   Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

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

   Por exemplo, suponha que `ec2-database-connect-key-pair.pem` esteja armazenado em `/dir1` no Linux e que o DNS IPv4 público para sua instância do EC2 seja `ec2-12-345-678-90.compute-1.amazonaws.com`. Seu comando SSH teria a seguinte aparência:

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

1. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, use o comando a seguir.
**nota**  
A opção `-y` instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

   ```
   sudo dnf update -y
   ```

1. Em um navegador da Web, acesse [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 obter a versão mais recente do banco de dados que aparece na página da Web, copie os links .rpm (não os links .zip) para o Instant Client Basic Package e o SQL\$1Plus Package. Por exemplo, os links a seguir são para o Oracle Database versão 21.9:
   + 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. Em sua sessão SSH, execute o comando `wget` para baixar os arquivos .rpm dos links que você obteve na etapa anterior. O exemplo a seguir baixa os arquivos .rpm para a versão 21.9 do 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. Instale os pacotes executando o comando `dnf` da seguinte forma:

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

1. Inicie o SQL\$1Plus e conecte-se à instância de banco de dados do Oracle. Por exemplo, insira o comando a seguir.

   Substitua o endpoint da instância de banco de dados (nome DNS) por `oracle-db-instance-endpoint` e o nome do usuário principal usado por `admin`. Quando você usa a **Criação fácil** para Oracle, o nome do banco de dados é `DATABASE`. Forneça a senha mestra usada quando for solicitada uma senha.

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

   Depois de inserir a senha do usuário, você deverá ver uma saída semelhante à seguinte.

   ```
   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 ter mais informações sobre como se conectar à instância de banco de dados do RDS para Oracle, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md). Se você não conseguir se conectar à sua instância de banco de dados, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão Oracle não criptografada apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para ter informações sobre como usar conexões criptografadas, consulte . [Proteção das conexões de instância de banco de dados Oracle](Oracle.Concepts.RestrictedDBAPrivileges.md).

1. Executar comandos SQL.

   Por exemplo, o seguinte comando SQL mostra a data atual:

   ```
   SELECT SYSDATE FROM DUAL;
   ```

## Etapa 4: Excluir a instância do EC2 e a instância de banco de dados
<a name="CHAP_GettingStarted.Deleting.Oracle"></a>

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

**Como excluir a instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instâncias**.

1. Selecione a instância do EC2 e escolha **Estado da instância, Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar**.

Consulte mais informações sobre como excluir uma instância do EC2 em [Como encerrar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

**Como excluir uma instância de banco de dados sem snapshot de banco de dados final**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja excluir.

1. Em **Actions**, selecione **Delete**.

1. Desmarque **Criar snapshot final?** e **Reter backups automatizados**.

1. Conclua a confirmação e escolha **Excluir**. 

## (Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.Oracle"></a>

Se você usou o CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

**Para excluir os recursos do CloudFormation**

1. Abra o CloudFormation Console.

1. Na página **Pilhas** no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

1. Escolha **Excluir**.

1. Selecione **Excluir pilha** quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em [Deleting a stack on the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Guia do usuário do AWS CloudFormation*.

## (Opcional) Conectar a instância de banco de dados a uma função do Lambda
<a name="CHAP_GettingStarted.ComputeConnect.Oracle"></a>

Você também pode conectar a instância de banco de dados do RDS para Oracle a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para obter mais informações, consulte [Conectar automaticamente uma função do Lambda e uma instância de banco de dados](lambda-rds-connect.md).

# Criar uma instância de banco de dados PostgreSQL e conectar-se a ela
<a name="CHAP_GettingStarted.CreatingConnecting.PostgreSQL"></a>

Este tutorial cria uma instância do EC2 e uma instância de banco de dados do RDS para PostgreSQL. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente PostgreSQL padrão. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la.

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

**Importante**  
Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

![\[Instância do EC2 e instância de banco de dados PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-postgresql.png)


Esse tutorial permite criar recursos usando um dos seguintes métodos:

1. Use o Console de gerenciamento da AWS: [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2) e [Criar uma instância de banco de dados do PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL) 

1. Use o CloudFormation para criar a instância de banco de dados e a instância do EC2: [(Opcional) Criar VPC, instância do EC2 e instância do PostgreSQL usando o CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL) 

O primeiro método usa **Criação fácil** para criar uma instância de banco de dados privada do PostgreSQL com o Console de gerenciamento da AWS. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção **Easy create** (Criação fácil) usa a configuração padrão para as outras opções de configuração. 

Ao usar a opção **Criação padrão**, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a **Criação padrão**. Para mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Pré-requisitos](#CHAP_GettingStarted.Prerequisites.RDSPostgreSQL)
+ [Criar uma instância do EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2)
+ [Criar uma instância de banco de dados do PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL)
+ [(Opcional) Criar VPC, instância do EC2 e instância do PostgreSQL usando o CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL)
+ [Conectar-se à instância de banco de dados PostgreSQL](#CHAP_GettingStarted.Connecting.PostgreSQL)
+ [Excluir a instância do EC2 e a instância de banco de dados](#CHAP_GettingStarted.Deleting.PostgreSQL)
+ [(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation](#CHAP_GettingStarted.DeletingCFN.PostgreSQL)
+ [(Opcional) Conectar a instância de banco de dados a uma função do Lambda](#CHAP_GettingStarted.ComputeConnect.PostreSQL)

## Pré-requisitos
<a name="CHAP_GettingStarted.Prerequisites.RDSPostgreSQL"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Criar uma instância do EC2
<a name="CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2"></a>

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

**Para criar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, selecione a Região da AWS em que você deseja criar a instância do EC2.

1. Escolha **Painel do EC2** e **Executar instância**, conforme mostrado na imagem a seguir.  
![\[Painel do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   A página **Iniciar uma instância** é aberta.

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **ec2-database-connect**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Amazon Linux** e, depois, **AMI do Amazon Linux 2023**. Mantenha as seleções padrão nas outras opções.  
![\[Escolha uma imagem de máquina da Amazon.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) no *Guia do usuário do Amazon EC2*.

   1. Para **Permitir tráfego SSH**, em **Configurações de rede**, selecione a origem das conexões SSH com a instância do EC2. 

      Você pode escolher **My IP** (Meu IP) se o endereço IP exibido estiver correto para conexões SSH. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com/). Um exemplo de endereço IP é 192.0.2.1/32.

       Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

      A imagem a seguir mostra um exemplo da seção **Configurações de rede**.  
![\[Configurações de rede para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância do EC2 no painel **Resumo** e, quando estiver com tudo pronto, escolha **Executar instância**.

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

1. Na guia **Detalhes**, observe os seguintes valores, necessários ao se conectar utilizando SSH:

   1. No **Resumo da instância**, observe o valor do **DNS IPv4 público**.  
![\[Nome do DNS público do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. Em **Detalhes da instância**, observe o valor do **nome do par de chaves**.  
![\[Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Espere até o **Estado da instância** para a instância do EC2 ficar como **Executando** antes de continuar.

## Criar uma instância de banco de dados do PostgreSQL
<a name="CHAP_GettingStarted.Creating.PostgreSQL"></a>

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados PostgreSQL.

Neste exemplo, use a **Criação fácil** para criar uma instância de banco de dados executando o mecanismo de banco de dados PostgreSQL com uma classe de instância de banco de dados db.t3.micro.

**Para criar uma instância de banco de dados PostgreSQL com a criação fácil**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a região da AWS na qual você deseja criar a instância de banco de dados. 

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Selecione a opção **Create database** (Criar banco de dados) e verifique se a opção **Easy Create** (Criação fácil) está habilitada.  
![\[Opção Criação fácil.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. Em **Configuration (Configuração)**, escolha **PostgreSQL**.

1. Em **DB instance size (Tamanho da instância de banco de dados)**, escolha **Free tier (Nível gratuito)**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.

1. Em **Identificador de instância de banco de dados**, insira **database-test1**.

1. Em **Nome do usuário principal**, insira um nome para o usuário principal ou deixe o nome padrão (**postgres**).

   A página **Create database** (Criar banco de dados) deve ser semelhante à imagem a seguir. Para contas do plano gratuito, aparece **Nível gratuito**. Para contas do plano pago, aparece **Sandbox**.  
![\[Página Criar banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-postgresql.png)

1. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, marque a opção **Gerar uma senha automaticamente**.

   Para inserir sua senha primária, desmarque a opção **Gerar uma senha automaticamente**, depois insira a mesma senha em **Senha primária** e em **Confirmar senha**.

1. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, abra **Configurar conexão do EC2: *opcional***.

   Selecione **Conectar-se a um recurso computacional do EC2**. Selecione a instância do EC2 que você criou anteriormente.  
![\[Configure a opção de conexão do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Abra **Visualizar as configurações padrão da criação fácil**.  
![\[Configurações padrão da criação fácil para RDS para PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-view-default-postgres.png)

   Você pode examinar as configurações padrão usadas com a opção **Easy Create** (Criação fácil). A coluna **Editável após a criação do banco de dados** mostra quais opções podem ser alteradas após a criação do banco de dados.
   + Se uma configuração tiver **Não** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados.
   + Se uma configuração tiver **Sim** nessa coluna e você quiser uma configuração diferente, poderá usar a opção **Criação padrão** para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

1. Selecione **Criar banco de dados**.

   Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha **View credential details (Ver detalhes da credencial)**.

   Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.   
Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Na lista **Bancos de dados**, selecione o nome da nova instância de banco de dados PostgreSQL para mostrar seus detalhes.

   A instância de banco de dados permanecerá no status **Criando** até estar pronta para ser usada.  
![\[Detalhes da instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Postgres-Launch06.png)

   Quando o status muda para **Available** (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível.

## (Opcional) Criar VPC, instância do EC2 e instância do PostgreSQL usando o CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL"></a>

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância do PostgreSQL, você pode usar o CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do CloudFormation. Consulte mais informações em [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) e [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html). 

**Importante**  
O CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. Para ter mais informações, consulte [Preço do Amazon RDS para PostgreSQL](https://aws.amazon.com//rds/postgresql/pricing).

Para criar recursos usando o console do CloudFormation, conclua as seguintes etapas:
+ Baixar o modelo do CloudFormation
+ Configurar recursos usando o CloudFormation

### Baixar o modelo do CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL.Step1"></a>

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link [PostgreSQL CloudFormation template](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-postgres-main.template.yaml).

Na página do Github, clique no botão *Baixar arquivo bruto* para salvar o arquivo YAML do modelo.

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

**nota**  
Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Ao usar o modelo do CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Create Stack** (Criar pilha).

1. Na seção Especificar modelo, selecione **Fazer upload de um arquivo de modelo do computador** e escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, defina os seguintes parâmetros:

   1. Defina o **Nome da pilha** como **PostgreSQLTestStack**.

   1. Em **Parâmetros**, defina **Zonas de disponibilidade** selecionando três zonas de disponibilidade.

   1. Em **Configuração do bastion host do Linux**, em **Nome da chave**, selecione um par de chaves para fazer login na instância do EC2.

   1. Em **Configurações do bastion host do Linux**, defina o **Intervalo de IP permitido** para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP é 192.0.2.1/32.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

   1. Em **Configuração geral do banco de dados**, defina a **Classe da instância do banco de dados** como **db.t3.micro**.

   1. Defina o **Nome do banco de dados** como **database-test1**.

   1. Em **Nome de usuário principal do banco de dados**, insira um nome para o usuário principal.

   1. Defina a **Gerenciar senha de usuário principal do banco de dados com o Secrets Manager** como `false` para esse tutorial.

   1. Em **Senha do banco de dados**, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

   1. Em **Configuração de armazenamento de banco de dados**, defina o **Tipo de armazenamento do banco de dados** como **gp2**.

   1. Em **Configuração de monitoramento de banco de dados**, defina **Habilitar o Performance Insights do RDS** como falso.

   1. Deixe todas as outras configurações com os valores padrão. Clique em **Próximo** para continuar.

1. Na página **Configurar opções de pilha**, mantenha todas as opções padrão. Clique em **Próximo** para continuar.

1. Na página **Revisar pilha**, selecione **Enviar** depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes *BastionStack* e *RDSNS* para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em [Viewing CloudFormation stack data and resources on the Console de gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Conectar-se à instância de banco de dados PostgreSQL
<a name="CHAP_GettingStarted.Connecting.PostgreSQL"></a>

Você pode se conectar à instância de banco de dados usando o pgadmin ou o psql. Este exemplo explica como se conectar a uma instância de banco de dados PostgreSQL usando o cliente da linha de comando psql.

**Como se conectar a uma instância de banco de dados PostgreSQL usando psql**

1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados. 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

   1. No painel de navegação, escolha **Bancos de dados**.

   1. Escolha o nome da instância de banco de dados do PostgreSQL para exibir os detalhes. 

   1. Na guia **Connectivity & security (Conectividade e segurança)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.   
![\[Conecte-se à instância de banco de dados PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/PostgreSQL-endpoint.png)

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do Amazon EC2*.

   Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

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

   Por exemplo, suponha que `ec2-database-connect-key-pair.pem` esteja armazenado em `/dir1` no Linux e que o DNS IPv4 público para sua instância do EC2 seja `ec2-12-345-678-90.compute-1.amazonaws.com`. Seu comando SSH teria a seguinte aparência:

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

1. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, execute o seguinte comando.
**nota**  
A opção `-y` instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

   ```
   sudo dnf update -y
   ```

1. Para instalar o cliente da linha de comando psql do PostgreSQL no Amazon Linux 2023, execute o seguinte comando:

   ```
   sudo dnf install postgresql15
   ```

1. Conecte-se à instância de banco de dados PostgreSQL. Por exemplo, insira o comando a seguir em um prompt de comando em um computador cliente. Essa ação permite que você se conecte à instância de banco de dados PostgreSQL usando o cliente psql.

   Substitua o endpoint da instância de banco de dados (nome DNS) por `endpoint`, substitua o nome do banco de dados `--dbname` que você deseja acessar por `postgres` e substitua o nome do usuário principal usado por `postgres`. Forneça a senha mestra usada quando for solicitada uma senha.

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

   Depois de inserir a senha do usuário, você deverá ver uma saída semelhante à seguinte:

   ```
   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 ter mais informações sobre como se conectar à sua instância de banco de dados do PostgreSQL, consulte [Conectar a uma instância de banco de dados executando o mecanismo de banco de dados do PostgreSQL](USER_ConnectToPostgreSQLInstance.md). Se você não conseguir se conectar à sua instância de banco de dados, consulte [Solucionar problemas de conexões com a sua instância RDS for PostgreSQL](USER_ConnectToPostgreSQLInstance.Troubleshooting.md). 

   Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão PostgreSQL não criptografada apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para ter informações sobre como usar conexões criptografadas, consulte . [Conectar-se à instância de banco de dados PostgreSQL via SSL](PostgreSQL.Concepts.General.SSL.md#PostgreSQL.Concepts.General.SSL.Connecting).

1. Executar comandos SQL.

   Por exemplo, o seguinte comando SQL mostra a data e a hora atuais:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Excluir a instância do EC2 e a instância de banco de dados
<a name="CHAP_GettingStarted.Deleting.PostgreSQL"></a>

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

**Como excluir a instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instâncias**.

1. Selecione a instância do EC2 e escolha **Estado da instância, Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar**.

Consulte mais informações sobre como excluir uma instância do EC2 em [Como encerrar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

**Para excluir uma instância de banco de dados sem snapshot de banco de dados final**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja excluir.

1. Em **Actions**, selecione **Delete**.

1. Desmarque **Criar snapshot final?** e **Reter backups automatizados**.

1. Conclua a confirmação e escolha **Excluir**. 

## (Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.PostgreSQL"></a>

Se você usou o CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

**Para excluir os recursos do CloudFormation**

1. Abra o CloudFormation Console.

1. Na página **Pilhas** no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

1. Escolha **Excluir**.

1. Selecione **Excluir pilha** quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em [Deleting a stack on the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Guia do usuário do AWS CloudFormation*.

## (Opcional) Conectar a instância de banco de dados a uma função do Lambda
<a name="CHAP_GettingStarted.ComputeConnect.PostreSQL"></a>

Você também pode conectar a instância de banco de dados do RDS para PostgreSQL a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para obter mais informações, consulte [Conectar automaticamente uma função do Lambda e uma instância de banco de dados](lambda-rds-connect.md).

# Tutorial: crie um servidor Web e uma instância de banco de dados do Amazon RDS
<a name="TUT_WebAppWithRDS"></a>

Este tutorial mostra como instalar um servidor web Apache com PHP e criar um banco de dados MariaDB, MySQL ou PostgreSQL. O servidor web é executado em uma instância do Amazon EC2 usando o Amazon Linux 2023, e você pode escolher entre uma instância de banco de dados do MySQL ou PostgreSQL. Tanto a instância do Amazon EC2 quanto a instância de banco de dados são executadas em uma virtual private cloud (VPC) com base no serviço da Amazon VPC. 

**Importante**  
Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

**nota**  
Este tutorial funciona com Amazon Linux 2023 e pode não funcionar para outras versões do Linux.

No tutorial a seguir, crie uma instância do EC2 que usa a VPC, as sub-redes e o grupo de segurança padrão para a sua Conta da AWS. Este tutorial mostra como criar a instância de banco de dados e configurar automaticamente a conectividade com a instância do EC2 que você criou. Depois, o tutorial mostra como instalar o servidor Web na instância do EC2. Conecte o servidor Web à instância de banco de dados na VPC usando o endpoint da instância de banco de dados.

1. [Iniciar uma instância do EC2 para se conectar à instância de banco de dados](CHAP_Tutorials.WebServerDB.LaunchEC2.md)

1. [Criar uma instância de banco de dados do Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md)

1. [Instalar um servidor Web na instância do EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md)

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

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


**nota**  
Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Este tutorial usa a VPC padrão para sua Conta da AWS e configura automaticamente a conectividade entre sua instância do EC2 e a instância de banco de dados. Se você preferir configurar uma nova VPC para esse cenário, conclua as tarefas em [Tutorial: Criar uma VPC para usar com uma instância de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md).

# Iniciar uma instância do EC2 para se conectar à instância de banco de dados
<a name="CHAP_Tutorials.WebServerDB.LaunchEC2"></a>

Crie uma instância do Amazon EC2 na sub-rede pública da VPC.

**Para iniciar uma instância do EC2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No canto superior direito do Console de gerenciamento da AWS, escolha a Região da AWS em que você deseja criar a instância do EC2.

1. Escolha **Painel EC2** e **Executar instância**, conforme mostrado a seguir.  
![\[Painel do EC2\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

1. Escolha as configurações a seguir na página **Iniciar uma instância**.

   1. Em **Name and tags** (Nome e etiquetas), em **Name** (Nome), insira **tutorial-ec2-instance-web-server**.

   1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione **Amazon Linux** e, depois, **AMI do Amazon Linux 2023**. Mantenha os padrões nas outras opções.  
![\[Escolha uma Imagem de máquina da Amazon\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. Em **Instance type (Tipo de instância)**, escolha **t2.micro**.

   1. Em **Key pair (login)** (Par de chaves (login)), escolha um **Key pair name** (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha **Create new key pair** (Criar um novo key pair), depois use a janela **Create key pair** (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) no *Guia do usuário do Amazon EC2*.

   1. Em **Network settings** (Configurações de rede), defina esses valores e mantenha os outros valores como padrão:
      + Para **Allow SSH traffic from** (Permitir tráfego SSH de), escolha a origem das conexões SSH com a instância do EC2.

        Você pode escolher **My IP** (Meu IP) se o endereço IP exibido estiver correto para conexões SSH.

        Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Um exemplo de endereço IP: `203.0.113.25/32`.

        Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.
**Atenção**  
Se usar `0.0.0.0/0` para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias usando SSH.
      + Ative **Allow HTTPs traffic from the internet** (Permitir tráfego HTTPs da Internet).
      + Ative **Allow HTTP traffic from the internet** (Permitir tráfego HTTP da Internet).  
![\[Configurar os detalhes da instância\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_14.png)

   1. Mantenha os valores padrão para as seções restantes.

   1. Revise um resumo da configuração da instância no painel **Summary** (Resumo) e, quando você estiver pronto, escolha **Launch instance** (Iniciar instância).

1. Na página **Status de inicialização**, anote o identificador de sua nova instância do EC2, por exemplo: `i-1234567890abcdef0`.  
![\[Identificador de instância do EC2 na página Status de inicialização.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

1. Na guia **Detalhes**, observe os seguintes valores, necessários ao se conectar utilizando SSH:

   1. No **Resumo da instância**, observe o valor do **DNS IPv4 público**.  
![\[Nome do DNS público do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. Em **Detalhes da instância**, observe o valor do **nome do par de chaves**.  
![\[Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Aguarde até **Instance state** (Estado da instância) exibir **Running** (Em execução) para a instância antes de continuar.

1. Completa [Criar uma instância de banco de dados do Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md).

# Criar uma instância de banco de dados do Amazon RDS
<a name="CHAP_Tutorials.WebServerDB.CreateDBInstance"></a>

Crie uma instância de banco de dados do RDS para MariaDB, do RDS para MySQL ou do RDS para PostgreSQL que mantenha os dados usados por uma aplicação web. 

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

**Como criar uma instância do MariaDB**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do Console de gerenciamento da AWS, confira a Região da AWS. Deve ser a mesma em que você criou sua instância do EC2.

1. No painel de navegação, escolha **Databases** (Bancos de dados).

1. Selecione **Criar banco de dados**.

1. Na página **Criar banco de dados**, escolha **Criação padrão**.

1. Em **Opções do mecanismo**, escolha **MariaDB**.  
![\[Selecionar tipo de mecanismo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-mariadb.png)

1. Em **Modelos**, escolha **Nível gratuito** ou **Sandbox**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.  
![\[Selecionar modelo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Na seção **Availability and durability** (Disponibilidade e durabilidade), mantenha as opções padrão.

1. Na seção **Settings (Configurações)**, defina estes valores:
   + **DB instance identifier** (Identificador da instância de banco de dados): digite **tutorial-db-instance**.
   + **Master username** (Nome de usuário principal): digite **tutorial\$1user**.
   + **Auto generate a password** (Gerar uma senha automaticamente): desabilite a opção.
   + **Master password** (Senha principal): digite uma senha.
   + **Confirm password (Confirmar senha)** – digite novamente a senha.  
![\[Seções de configurações\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Na seção **Instance configuration** (Configuração da instância), defina estes valores:
   + **Classes com capacidade de intermitência (inclui classes t)**
   + **db.t3.micro**  
![\[Seção Instance configuration (Configuração da instância)\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Na seção **Storage** (Armazenamento), mantenha os padrões.

1. Na seção **Connectivity** (Conectividade), defina esses valores e mantenha os outros valores como padrão:
   + Em **Compute resource** (Recurso de computação), escolha **Connect to an EC2 compute resource** (Conectar-se a um recurso de computação do EC2).
   + Em **EC2 instance** (Instância do EC2), escolha a instância do EC2 criada anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Seção de conectividade\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Na seção **Autenticação de banco de dados**, verifique se **a autenticação de senha** está selecionada.

1. Abra a seção **Additional configuration (Configuração adicional)** e insira **sample** em **Initial database name (Nome do banco de dados inicial)**. Mantenha as configurações padrão para as outras opções.

1. Para criar a instância do MariaDB, escolha **Criar banco de dados**.

   Sua nova instância de banco de dados é exibida na lista **Databases (Bancos de dados)** com o status **Creating (Criando)**.

1. Aguarde o **Status** de sua nova instância de banco de dados ser mostrado como **Available (Disponível)**. Escolha o nome da instância de banco de dados para mostrar os detalhes.

1. Na seção **Connectivity & security (Conectividade e segurança)**, visualize o **Endpoint** e a **Port (Porta)** da instância de banco de dados.  
![\[Detalhes da instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Anote o endpoint e a porta de sua instância de banco de dados. Use essas informações para conectar o servidor Web à instância de banco de dados.

1. Completa [Instalar um servidor Web na instância do EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

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

**Para criar uma instância de banco de dados MySQL**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do Console de gerenciamento da AWS, confira a Região da AWS. Deve ser a mesma em que você criou sua instância do EC2.

1. No painel de navegação, escolha **Databases** (Bancos de dados).

1. Selecione **Criar banco de dados**.

1. Na página **Criar banco de dados**, escolha **Criação padrão**.

1. Em **Opções de mecanismo**, selecione **MySQL**.  
![\[Selecionar tipo de mecanismo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-mysql.png)

1. Em **Modelos**, escolha **Nível gratuito** ou **Sandbox**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.  
![\[Selecionar modelo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Na seção **Availability and durability** (Disponibilidade e durabilidade), mantenha as opções padrão.

1. Na seção **Settings (Configurações)**, defina estes valores:
   + **DB instance identifier** (Identificador da instância de banco de dados): digite **tutorial-db-instance**.
   + **Master username** (Nome de usuário principal): digite **tutorial\$1user**.
   + **Auto generate a password** (Gerar uma senha automaticamente): desabilite a opção.
   + **Master password** (Senha principal): digite uma senha.
   + **Confirm password (Confirmar senha)** – digite novamente a senha.  
![\[Seções de configurações\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Na seção **Instance configuration** (Configuração da instância), defina estes valores:
   + **Classes com capacidade de intermitência (inclui classes t)**
   + **db.t3.micro**  
![\[Seção Instance configuration (Configuração da instância)\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Na seção **Storage** (Armazenamento), mantenha os padrões.

1. Na seção **Connectivity** (Conectividade), defina esses valores e mantenha os outros valores como padrão:
   + Em **Compute resource** (Recurso de computação), escolha **Connect to an EC2 compute resource** (Conectar-se a um recurso de computação do EC2).
   + Em **EC2 instance** (Instância do EC2), escolha a instância do EC2 criada anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Seção de conectividade\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Na seção **Autenticação de banco de dados**, verifique se **a autenticação de senha** está selecionada.

1. Abra a seção **Additional configuration (Configuração adicional)** e insira **sample** em **Initial database name (Nome do banco de dados inicial)**. Mantenha as configurações padrão para as outras opções.

1. Para criar sua instância de Bancos de Dados MySQL, escolha **Create database (Criar banco de dados)**.

   Sua nova instância de banco de dados é exibida na lista **Databases (Bancos de dados)** com o status **Creating (Criando)**.

1. Aguarde o **Status** de sua nova instância de banco de dados ser mostrado como **Available (Disponível)**. Escolha o nome da instância de banco de dados para mostrar os detalhes.

1. Na seção **Connectivity & security (Conectividade e segurança)**, visualize o **Endpoint** e a **Port (Porta)** da instância de banco de dados.  
![\[Detalhes da instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Anote o endpoint e a porta de sua instância de banco de dados. Use essas informações para conectar o servidor Web à instância de banco de dados.

1. Completa [Instalar um servidor Web na instância do EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

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

**Criar uma instância de banco de dados do PostgreSQL**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do Console de gerenciamento da AWS, confira a Região da AWS. Deve ser a mesma em que você criou sua instância do EC2.

1. No painel de navegação, escolha **Databases** (Bancos de dados).

1. Selecione **Criar banco de dados**.

1. Na página **Criar banco de dados**, escolha **Criação padrão**.

1. Em **Opções de mecanismo**, escolha **PostgreSQL**.  
![\[Selecionar tipo de mecanismo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-postgres.png)

1. Em **Modelos**, escolha **Nível gratuito** ou **Sandbox**. **Nível gratuito** aparece para contas do plano gratuito. **Sandbox** aparece para contas do plano pago.  
![\[Selecionar modelo\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Na seção **Availability and durability** (Disponibilidade e durabilidade), mantenha as opções padrão.

1. Na seção **Settings (Configurações)**, defina estes valores:
   + **DB instance identifier** (Identificador da instância de banco de dados): digite **tutorial-db-instance**.
   + **Master username** (Nome de usuário principal): digite **tutorial\$1user**.
   + **Auto generate a password** (Gerar uma senha automaticamente): desabilite a opção.
   + **Master password** (Senha principal): digite uma senha.
   + **Confirm password (Confirmar senha)** – digite novamente a senha.  
![\[Seções de configurações\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Na seção **Instance configuration** (Configuração da instância), defina estes valores:
   + **Classes com capacidade de intermitência (inclui classes t)**
   + **db.t3.micro**  
![\[Seção Instance configuration (Configuração da instância)\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Na seção **Storage** (Armazenamento), mantenha os padrões.

1. Na seção **Connectivity** (Conectividade), defina esses valores e mantenha os outros valores como padrão:
   + Em **Compute resource** (Recurso de computação), escolha **Connect to an EC2 compute resource** (Conectar-se a um recurso de computação do EC2).
   + Em **EC2 instance** (Instância do EC2), escolha a instância do EC2 criada anteriormente, como **tutorial-ec2-instance-web-server**.  
![\[Seção de conectividade\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Na seção **Autenticação de banco de dados**, verifique se **a autenticação de senha** está selecionada.

1. Abra a seção **Additional configuration (Configuração adicional)** e insira **sample** em **Initial database name (Nome do banco de dados inicial)**. Mantenha as configurações padrão para as outras opções.

1. Para criar uma instância de banco de dados do PostgreSQL, escolha **Criar banco de dados**.

   Sua nova instância de banco de dados é exibida na lista **Databases (Bancos de dados)** com o status **Creating (Criando)**.

1. Aguarde o **Status** de sua nova instância de banco de dados ser mostrado como **Available (Disponível)**. Escolha o nome da instância de banco de dados para mostrar os detalhes.

1. Na seção **Connectivity & security (Conectividade e segurança)**, visualize o **Endpoint** e a **Port (Porta)** da instância de banco de dados.  
![\[Detalhes da instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port_postgres.png)

   Anote o endpoint e a porta de sua instância de banco de dados. Use essas informações para conectar o servidor Web à instância de banco de dados.

1. Completa [Instalar um servidor Web na instância do EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------

# Instalar um servidor Web na instância do EC2
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer"></a>

Instale um servidor Web na instância do EC2 criada em [Iniciar uma instância do EC2 para se conectar à instância de banco de dados](CHAP_Tutorials.WebServerDB.LaunchEC2.md). O servidor Web se conecta à instância de banco de dados do Amazon RDS criada em [Criar uma instância de banco de dados do Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md). 

## Instale um servidor Web do Apache com PHP e MariaDB
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.Apache"></a>

Conecte-se à sua instância do EC2 e instale o servidor Web.

**Para conectar-se à sua instância do EC2 e instalar o servidor na web com PHP**

1. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do Amazon EC2*.

   Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

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

   Por exemplo, suponha que `ec2-database-connect-key-pair.pem` esteja armazenado em `/dir1` no Linux e que o DNS IPv4 público para sua instância do EC2 seja `ec2-12-345-678-90.compute-1.amazonaws.com`. Seu comando SSH teria a seguinte aparência:

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

1. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, execute o seguinte comando.
**nota**  
A opção `-y` instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

   ```
   sudo dnf update -y
   ```

1. Após a conclusão das atualizações, instale o servidor web Apache, o PHP e o software MariaDB ou PostgreSQL utilizando os comandos a seguir. Este comando instala vários pacotes de software e dependências relacionadas ao mesmo tempo.

------
#### [ MariaDB & MySQL ]

   ```
   sudo dnf install -y httpd php php-mysqli mariadb105
   ```

------
#### [ PostgreSQL ]

   ```
   sudo dnf install -y httpd php php-pgsql postgresql15
   ```

------

   Se você receber um erro, isso significa que sua instância provavelmente não foi iniciada com uma AMI do Amazon Linux 2023. Em vez disso é, possível utilizar a AMI do Amazon Linux 2. Você pode visualizar sua versão do Amazon Linux usando o comando a seguir.

   ```
   cat /etc/system-release
   ```

   Para ter mais informações, consulte [Atualização de software da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-updates.html).

1. Inicie o servidor Web com o comando mostrado a seguir.

   ```
   sudo systemctl start httpd
   ```

   É possível testar se o servidor Web está instalado e se foi iniciado corretamente. Para fazer isso, insira o nome de Domain Name System (DNS) público da instância do EC2 na barra de endereços de um navegador da web, por exemplo: `http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com`. Se o seu servidor na web estiver em execução, você verá a página de teste do Apache. 

   Se você não vir a página de teste do Apache, verifique as regras de entrada para o grupo de segurança da VPC criado no [Tutorial: Criar uma VPC para usar com uma instância de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md). Verifique se as regras de entrada incluem uma regra que permita o acesso HTTP (porta 80) ao endereço IP para se conectar ao servidor da Web.
**nota**  
A página de teste do Apache aparece apenas quando não há conteúdo no diretório raiz do documento, `/var/www/html`. Depois de adicionar o conteúdo ao diretório raiz de documentos, o conteúdo aparecerá no endereço DNS público da instância do EC2. Antes desse ponto, ele aparece na página de teste do Apache.

1. Configure o servidor Web para começar com cada inicialização do sistema usando o comando `systemctl`.

   ```
   sudo systemctl enable httpd
   ```

Para permitir que `ec2-user` gerencie arquivos no diretório raiz padrão de servidor Web do Apache, modifique a propriedade e as permissões do diretório `/var/www`. Existem diversas maneiras de realizar essa tarefa. Neste tutorial, você adiciona o usuário `ec2-user` ao grupo `apache` para dar ao grupo `apache` a propriedade do diretório `/var/www` e atribuir permissões de gravação ao grupo.

**Para definir as permissões de arquivos para o servidor na web Apache**

1. Adicione o usuário `ec2-user` ao grupo `apache`.

   ```
   sudo usermod -a -G apache ec2-user
   ```

1. Faça logout para atualizar as permissões e incluir o novo grupo `apache`.

   ```
   exit
   ```

1. Faça login novamente e verifique se o grupo `apache` existe com o comando `groups`.

   ```
   groups
   ```

   A saída será semelhante à seguinte:

   ```
   ec2-user adm wheel apache systemd-journal
   ```

1. Altere a propriedade do grupo do diretório `/var/www` e o seu conteúdo para o grupo `apache`.

   ```
   sudo chown -R ec2-user:apache /var/www
   ```

1. Altere as permissões do diretório do `/var/www` e dos subdiretórios para adicionar permissões de gravação do grupo e definir o ID do grupo em subdiretórios criados futuramente.

   ```
   sudo chmod 2775 /var/www
   find /var/www -type d -exec sudo chmod 2775 {} \;
   ```

1. Altere recursivamente as permissões de arquivos do diretório `/var/www` e os subdiretórios para adicionar permissões de gravação.

   ```
   find /var/www -type f -exec sudo chmod 0664 {} \;
   ```

Agora, `ec2-user` (e todos os outros membros do grupo `apache`) pode adicionar, excluir e editar arquivos na raiz do documento Apache. Isso possibilita que você adicione conteúdo, como um site estático ou uma aplicação PHP. 

**nota**  
Um servidor web que executa o protocolo HTTP não fornece nenhuma segurança de transporte para os dados que envia ou recebe. Quando você se conecta a um servidor HTTP usando um navegador da Web, muitas informações ficam visíveis para os espiões em qualquer ponto da rede. Essas informações incluem os URLs que você acessa, o conteúdo de páginas da web recebido e o conteúdo (inclusive senhas) de todos os formulários HTML.   
A prática recomendada para proteger o servidor da Web é instalar suporte para HTTPS (HTTP seguro). Esse protocolo protege seus dados com criptografia SSL/TLS. Para ter mais informações, consulte [Tutorial: Configurar o SSL/TLS com a AMI do Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-ami.html) no *Guia do Usuário do Amazon EC2*.

## Conectar o servidor Web Apache à instância de banco de dados
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.PHPContent"></a>

Depois, adicione o conteúdo ao servidor Web Apache que se conecta à instância de banco de dados do Amazon RDS.

**Como adicionar o conteúdo ao servidor Web Apache que se conecta à instância de banco de dados**

1. Enquanto estiver conectado à instância do EC2, altere o diretório para `/var/www` e crie um novo subdiretório chamado `inc`.

   ```
   cd /var/www
   mkdir inc
   cd inc
   ```

1. Crie um novo arquivo no diretório `inc` chamado `dbinfo.inc` e edite o arquivo chamando nano (ou o editor de sua escolha).

   ```
   >dbinfo.inc
   nano dbinfo.inc
   ```

1. Adicione o conteúdo a seguir ao arquivo `dbinfo.inc`. Aqui, *db\$1instance\$1endpoint* é o endpoint de instância de banco de dados, sem a porta, para sua instância de banco de dados.
**nota**  
Recomendamos colocar as informações de nome de usuário e senha em uma pasta que não faça parte da raiz do documento do servidor Web. Isso reduz a possibilidade de suas informações de segurança serem expostas.  
Altere `master password` para uma senha adequada em sua aplicação.

   ```
   <?php
   
   define('DB_SERVER', 'db_instance_endpoint');
   define('DB_USERNAME', 'tutorial_user');
   define('DB_PASSWORD', 'master password');
   define('DB_DATABASE', 'sample');
   ?>
   ```

1. Salve e feche o arquivo `dbinfo.inc`. Se você estiver usando nano, salve e feche o arquivo usando Ctrl\$1S e Ctrl\$1X.

1. Altere o diretório para `/var/www/html`.

   ```
   cd /var/www/html
   ```

1. Crie um novo arquivo no diretório `html` chamado `SamplePage.php` e edite o arquivo chamando nano (ou o editor de sua escolha).

   ```
   >SamplePage.php
   nano SamplePage.php
   ```

1. Adicione o conteúdo a seguir ao arquivo `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. Salve e feche o arquivo `SamplePage.php`.

1. Verifique se o servidor Web se conecta com êxito à instância de banco de dados, abrindo um navegador da Web e navegando até `http://EC2 instance endpoint/SamplePage.php`, por exemplo: `http://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php`.

É possível usar `SamplePage.php` para adicionar dados à instância de banco de dados. Os dados que você adicionar serão exibidos na página. Para verificar se os dados foram inseridos na tabela, instale o cliente MySQL na instância do Amazon EC2. Depois, conecte-se à instância de banco de dados e consulte a tabela. 

Para obter informações sobre como instalar o cliente MySQL e conectar-se a uma instância de banco de dados, consulte [Conectar-se à instância de banco de dados do MySQL](USER_ConnectToInstance.md).

Para garantir que a instância de banco de dados seja o mais seguro possível, verifique se as fontes fora da VPC não podem se conectar à instância de banco de dados. 

Depois de terminar de testar o servidor web e o banco de dados, é necessário excluir a instância de banco de dados e a instância do Amazon EC2.
+ Para excluir uma instância de banco de dados, siga as instruções em [Excluir uma instância de banco de dados](USER_DeleteInstance.md). Não é necessário criar um snapshot final.
+ Para encerrar uma instância do Amazon EC2, siga as instruções em [Encerrar a instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

# Tutorial: Usar uma função do Lambda para acessar um banco de dados Amazon RDS
<a name="rds-lambda-tutorial"></a>

Neste tutorial, você usará uma função do Lambda para gravar dados em um banco de dados do [Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) (Amazon RDS) por meio do RDS Proxy. Sua função do Lambda lê registros de uma fila do Amazon Simple Queue Service (Amazon SQS) e grava um novo item em uma tabela no banco de dados sempre que uma mensagem é adicionada. Neste exemplo, você usa o Console de gerenciamento da AWS para adicionar mensagens manualmente à sua fila. O diagrama a seguir mostrará os recursos da AWS que você usará para concluir o tutorial.

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_1.png)


Com o Amazon RDS, você pode executar um banco de dados relacional gerenciado na nuvem usando produtos de banco de dados comuns, como Microsoft SQL Server, MariaDB, MySQL, Oracle Database e PostgresQL. Ao usar o Lambda para acessar seu banco de dados, você pode ler e gravar dados em resposta a eventos, como um novo cliente se registrando em seu site. Sua função, a instância de banco de dados e o proxy escalam automaticamente para atender a períodos de alta demanda.

Para concluir este tutorial, realize as seguintes tarefas:

1. Inicie uma instância de banco de dados do RDS para MySQL e um proxy na VPC padrão de sua Conta da AWS.

1. Crie e teste uma função do Lambda que cria uma nova tabela em seu banco de dados e grava dados nela.

1. Crie uma fila do Amazon SQS e configure-a para invocar sua função do Lambda sempre que uma nova mensagem for adicionada.

1. Teste a configuração completa adicionando mensagens à fila por meio do Console de gerenciamento da AWS e monitorando os resultados com o CloudWatch Logs.

Ao concluir essas etapas, você aprende a:
+ Como usar o Amazon RDS para criar uma instância de banco de dados e um proxy e conectar uma função do Lambda ao proxy.
+ Como usar o Lambda para realizar operações de criação e leitura em um banco de dados do Amazon RDS.
+ Como usar o Amazon SQS para invocar uma função do Lambda.

Você pode concluir este tutorial usando o Console de gerenciamento da AWS ou a AWS Command Line Interface (AWS CLI).

## Pré-requisitos
<a name="vpc-rds-prereqs"></a>

Antes de começar, conclua as etapas nas seguintes seções:
+ [Inscrever-se para uma Conta da AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](CHAP_SettingUp.md#create-an-admin)

## Criar uma instância de banco de dados do Amazon RDS
<a name="vpc-rds-create-RDS-instance"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step1.png)


Uma instância de banco de dados do Amazon RDS é um ambiente de banco de dados isolado em execução na Nuvem AWS. Uma instância pode conter um ou mais bancos de dados criados pelo usuário. A menos que você especifique o contrário, o Amazon RDS cria instâncias de banco de dados na VPC padrão incluída em sua Conta da AWS. Para receber mais informações sobre o Amazon VPC, consulte o [Guia do usuário do Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

Neste tutorial, você cria uma nova instância na VPC padrão de sua Conta da AWS e cria um banco de dados com o nome `ExampleDB` nessa instância. Você pode criar o banco de dados e a respectiva instância usando o Console de gerenciamento da AWS ou a AWS CLI.

**Como criar uma instância de banco de dados**

1. No console do Amazon RDS, selecione **Criar banco de dados**.

1. Deixe a opção **Criação padrão** selecionada e, em **Opções do mecanismo**, escolha **MySQL**.

1. Em **Modelos**, escolha **Nível gratuito** ou **Sandbox**. O **nível gratuito** aparece para contas do nível gratuito. **Sandbox** aparece para contas do plano pago.

1. Em **Configurações**, para o **identificador da instância de banco de dados**, digite **MySQLForLambda**.

1. Para definir seu nome de usuário e senha, faça o seguinte:

   1. Em **Configurações de credenciais**, deixe o **Nome do usuário principal** definido como `admin`.

   1. Para a **Senha mestra**, digite e confirme uma senha para acessar seu banco de dados.

1. Para especificar o nome do banco de dados, faça o seguinte:
   + Deixe todas as opções padrão restantes selecionadas e role para baixo até a seção **Configuração adicional**.
   + Expanda essa seção e insira **ExampleDB** como o **Nome do banco de dados inicial**.

1. Deixe todas as opções padrão restantes selecionadas e escolha **Criar banco de dados**.

## Criar a função do Lambda e o proxy
<a name="auto-create-Lambda"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step2.png)


É possível usar o console do RDS para criar uma função do Lambda e um proxy na mesma VPC do banco de dados. 

**nota**  
Você só pode criar esses recursos associados quando o banco de dados tiver concluído a criação e estiver no status **Disponível**.

**Como criar uma função e um proxy associados**

1. Na página **Bancos de dados**, confira se o banco de dados está no status **Disponível**. Se estiver, vá para a próxima etapa. Caso contrário, espere até que o banco de dados esteja disponível.

1. Selecione o banco de dados e escolha **Configurar conexão do Lambda** em **Ações**.

1. Na página **Configurar conexão do Lambda**, selecione **Criar nova função**.

   Defina o **Nome da nova função do Lambda** como **LambdaFunctionWithRDS**.

1. Na seção **RDS Proxy**, selecione a opção **Conectar usando o RDS Proxy**. Selecione ainda **Criar proxy**.
   + Em **Credenciais do banco de dados**, selecione **Nome do usuário e senha do banco de dados**.
   + Em **Nome do usuário**, especifique `admin`.
   + Em **Senha**, digite a senha que você criou para a instância de banco de dados. 

1. Selecione **Configurar** para concluir a criação da função do Lambda e do proxy.

O assistente conclui a configuração e fornece um link para o console do Lambda para você examinar a nova função. Observe o endpoint do proxy antes de mudar para o console do Lambda.

## Criar um perfil de execução de função
<a name="vpc-rds-create-execution-role"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step3.png)


Antes de criar sua função do Lambda, você cria um perfil de execução para dar à sua função as permissões necessárias. Neste tutorial, o Lambda precisa de permissão para gerenciar a conexão de rede com a VPC que contém a instância de banco de dados e para pesquisar mensagens de uma fila do Amazon SQS.

Para dar à sua função do Lambda as permissões necessárias, este tutorial usa políticas gerenciadas pelo IAM. Essas são políticas que concedem permissões para muitos casos de uso comuns e estão disponíveis na sua Conta da AWS. Para obter mais informações sobre políticas gerenciadas, consulte [Práticas recomendadas de política](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

**Para criar o perfil de execução do Lambda**

1. Abra a página [Perfis](https://console.aws.amazon.com/iamv2/home#/roles) do console do IAM e escolha **Criar perfil**.

1. Em **Tipo de entidade confiável**, selecione **Serviço da AWS** e, em **Caso de uso**, escolha **Lambda**.

1. Escolha **Próximo**.

1. Para adicionar as políticas gerenciadas do IAM, faça o seguinte:

   1. Usando a caixa de pesquisa de políticas, pesquise **AWSLambdaSQSQueueExecutionRole**.

   1. Na lista de resultados, marque a caixa de seleção ao lado do perfil e escolha **Limpar filtros**.

   1. Usando a caixa de pesquisa de políticas, pesquise **AWSLambdaVPCAccessExecutionRole**.

   1. Na lista de resultados, marque a caixa de seleção ao lado do perfil e escolha **Avançar**.

1. Em **Nome do perfil**, digite **lambda-vpc-sqs-role** e escolha **Criar perfil**.

Posteriormente no tutorial, você precisará do nome do recurso da Amazon (ARN) do perfil de execução que acabou de criar.

**Para encontrar o ARN do perfil de execução**

1. Abra a página [Perfis](https://console.aws.amazon.com/iamv2/home#/roles) do console do IAM e escolha o perfil (`lambda-vpc-sqs-role`).

1.  Copie o **ARN** exibido na seção **Resumo**.

## Criar o pacote de implantação do Lambda
<a name="vpc-rds-create-deployment-package"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step4.png)


O exemplo de código Python a seguir usa o pacote [PyMySQL](https://pymysql.readthedocs.io/en/latest/) para abrir uma conexão com seu banco de dados. Na primeira vez que você invoca sua função, ela também cria uma nova tabela chamada `Customer`. A tabela usa o seguinte esquema, em que `CustID` é a chave primária:

```
Customer(CustID, Name)
```

A função também usa a PyMySQL para adicionar registros a essa tabela. A função adiciona registros usando os IDs de clientes e nomes especificados nas mensagens que você adicionará à sua fila do Amazon SQS.

O código cria a conexão com seu banco de dados fora da função do manipulador. A criação da conexão no código de inicialização permite que a conexão seja reutilizada por invocações subsequentes de sua função e melhora o desempenho. Em um aplicativo de produção, você também pode usar a [simultaneidade provisionada](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) para inicializar um número solicitado de conexões de banco de dados. Essas conexões estão disponíveis assim que sua função é invocada.

```
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**  
Neste exemplo, suas credenciais de acesso ao banco de dados são armazenadas como variáveis ​​de ambiente. Em aplicações de produção, recomendamos que você use o [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) como uma opção mais segura. Observe que, se sua função do Lambda estiver em uma VPC, para se conectar ao Secrets Manager, será necessário criar um endpoint da VPC. Consulte [Como se conectar ao serviço Secrets Manager em uma nuvem privada virtual](https://aws.amazon.com/blogs/security/how-to-connect-to-aws-secrets-manager-service-within-a-virtual-private-cloud/) para saber mais. 

 Para incluir a dependência da PyMySQL em seu código de função, crie um pacote de implantação .zip. Os seguintes comandos funcionam para Linux, macOS ou Unix:

**Para criar um pacote de implantação .zip**

1. Salve o exemplo de código como um arquivo denominado `lambda_function.py`. 

1. No mesmo diretório em que você criou seu arquivo `lambda_function.py`, crie um novo diretório chamado `package` e instale a biblioteca PyMySQL. 

   ```
   mkdir package
   pip install --target package pymysql
   ```

1. Crie um arquivo zip contendo o código do seu aplicativo e a biblioteca PyMySQL. No Linux ou no macOS, execute os comandos da CLI a seguir. No Windows, use sua ferramenta de zip preferida para criar o arquivo `lambda_function.zip`. O arquivo de código-fonte `lambda_function.py` e as pastas que contêm as dependências devem ser instaladas na raiz do arquivo .zip.

   ```
   cd package
   zip -r ../lambda_function.zip .
   cd ..
   zip lambda_function.zip lambda_function.py
   ```

   Você também pode criar seu pacote de implantação usando um ambiente virtual Python. Consulte [Implementar funções do Lambda em Python com arquivos .zip](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-create-package-with-dependency).

## Atualizar a função do Lambda
<a name="vpc-rds-update-function"></a>

Com o pacote .zip que acabou de criar, você atualizará a função do Lambda usando o console do Lambda. Para permitir que a função acesse o banco de dados, você também precisa configurar variáveis ​​de ambiente com as credenciais de acesso.

**Como atualizar a função do Lambda**

1. Abra a página [Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda e selecione sua função `LambdaFunctionWithRDS`.

1. Na guia **Configurações de tempo de execução**, selecione **Editar** para alterar o **Tempo de execução** da função para **Python** 3.10.

1. Altere o **Manipulador** para `lambda_function.lambda_handler`.

1. Na guia **Código**, selecione **Fazer upload de** e, depois, **arquivo .zip**.

1. Selecione o arquivo `lambda_function.zip` que você criou no estágio anterior e escolha **Salvar**.

Agora configure a função com o perfil de execução que você criou anteriormente. Isso concede à função as permissões necessárias para acessar sua instância de banco de dados e pesquisar uma fila do Amazon SQS.

**Como configurar o perfil de execução da função.**

1. Na página [Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda, selecione a guia **Configuração** e escolha **Permissões**.

1. No painel **Papel de execução**, selecione **Editar**.

1. Em **Função existente**, selecione a função de execução (`lambda-vpc-sqs-role`).

1. Escolha **Salvar**.

**Como configurar as variáveis ​​de ambiente da função**

1. Na página [Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda, selecione a guia **Configuração** e, em seguida, escolha **Variáveis de ambiente**.

1. Escolha **Editar**.

1. Para adicionar as credenciais de acesso ao banco de dados, faça o seguinte:

   1. Escolha **Adicionar variável de ambiente** e, em seguida, para **Chave**, insira **USER\$1NAME**, e para **Valor**, insira **admin**.

   1. Escolha **Adicionar variável de ambiente** e, em seguida, para **Chave**, insira **DB\$1NAME**, e para **Valor**, insira **ExampleDB**.

   1. Escolha **Adicionar variável de ambiente** e, depois, para **Chave**, insira **PASSWORD**, e para **Valor**, insira a senha escolhida ao criar seu banco de dados.

   1. Selecione **Adicionar variável de ambiente**. Em **Chave**, insira **RDS\$1PROXY\$1HOST** e, em **Valor**, insira o endpoint do RDS Proxy que você anotou anteriormente.

   1. Escolha **Salvar**.

## Teste sua função do Lambda no console
<a name="vpc-rds-test-function"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step5.png)


Agora você pode usar o console do Lambda para testar sua função. Você cria um evento de teste que imita os dados que sua função receberá ao invocá-la usando o Amazon SQS na fase final do tutorial. Seu evento de teste contém um objeto JSON especificando um ID de cliente e um nome de cliente para adicionar à tabela `Customer` que sua função cria.

**Para testar a função do Lambda**

1. Abra a página [Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda e escolha sua função.

1. Selecione a seção **Testar**.

1. Selecione **Criar novo evento** e insira **myTestEvent** como nome do evento.

1. Copie o código a seguir no **JSON do evento** e escolha **Salvar**.

   ```
   {
     "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. Escolha **Testar**.

Na guia **Resultados da execução**, você verá resultados semelhantes aos seguintes exibidos nos **Logs da função**:

```
[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')
```

## Criar uma fila do Amazon SQS
<a name="vpc-rds-create-queue"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step6.png)


Você testou com sucesso a integração da sua função do Lambda e da instância do banco de dados do Amazon RDS. Agora você cria a fila do Amazon SQS que usará para invocar sua função do Lambda na fase final do tutorial.

**Para criar uma fila do Amazon SQS (console)**

1. Abra a página [Filas](https://console.aws.amazon.com/sqs/v2/home#/queues) do console do Amazon SQS e selecione **Criar fila**.

1. Deixe o **Tipo** como **Padrão** e insira **LambdaRDSQueue** como o nome da sua fila.

1. Mantenha todas as opções padrão selecionadas e escolha **Criar fila**.

## Crie um mapeamento da origem do evento para invocar sua função do Lambda
<a name="vpc-rds-create-event-source-mapping"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step7.png)


Um [mapeamento da origem do evento](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html) é um recurso no Lambda que lê itens de um fluxo ou de uma fila e invoca uma função do Lambda. Ao configurar um mapeamento da origem do evento, você pode especificar um tamanho de lote para que os registros do seu fluxo ou da sua fila sejam agrupados em uma única carga útil. Neste exemplo, você define o tamanho do lote como 1 para que sua função do Lambda seja invocada toda vez que você enviar uma mensagem para sua fila. Você pode configurar o mapeamento da origem do evento usando a AWS CLI ou o console do Lambda.

**Crie um mapeamento da origem do evento (console)**

1. Abra a página [Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda e escolha sua função (`LambdaFunctionWithRDS`).

1. Na seção **Visão geral da função**, selecione **Adicionar gatilho**.

1. Para a origem, selecione **Amazon SQS** e, depois, o nome da fila (`LambdaRDSQueue`).

1. Em **Tamanho do lote**, insira **1**.

1. Deixe todas as outras opções definidas com os valores padrão e escolha **Adicionar**.

Agora você está pronto para testar sua configuração completa adicionando uma mensagem à sua fila do Amazon SQS.

## Teste e monitore sua configuração
<a name="vpc-rds-test-setup"></a>

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step8.png)


Para testar sua configuração completa, adicione mensagens à sua fila do Amazon SQS usando o console. Em seguida, você usa o CloudWatch Logs para confirmar que sua função do Lambda está gravando registros em seu banco de dados conforme o esperado.

**Para testar e monitorar sua configuração**

1. Abra a página [Filas](https://console.aws.amazon.com/sqs/v2/home#/queues) do console do Amazon SQS e selecione sua fila (`LambdaRDSQueue`).

1. Selecione **Enviar e receber mensagens** e cole o JSON a seguir no **Corpo da mensagem** na seção **Enviar mensagem**.

   ```
   {
       "CustID": 1054,
       "Name": "Richard Roe"
   }
   ```

1. Escolha **Send Message (Enviar mensagem)**.

   Enviar sua mensagem para a fila fará com que o Lambda invoque sua função por meio do mapeamento da origem do evento. Para confirmar que o Lambda invocou sua função conforme o esperado, use o CloudWatch Logs para verificar se a função gravou o nome e o ID do cliente na tabela do banco de dados:

1. Abra a página [Grupos de logs](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups) do console do CloudWatch e selecione o grupo de logs para sua função (`/aws/lambda/LambdaFunctionWithRDS`).

1. No painel **Fluxos de logs**, selecione o fluxo de logs mais recente.

   Sua tabela deve conter dois registros de clientes, um de cada invocação de sua função. No fluxo de logs, você deverá ver mensagens semelhantes às seguintes:

   ```
   [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')
   ```

## Limpe os recursos
<a name="rds-tutorial-cleanup"></a>

Agora você pode excluir os recursos criados para este tutorial, a menos que queira mantê-los. Excluindo os recursos da AWS que você não está mais usando, você evita cobranças desnecessárias em sua conta da AWS.

**Como excluir a função do Lambda**

1. Abra a página [Functions](https://console.aws.amazon.com/lambda/home#/functions) (Funções) no console do Lambda.

1. Selecione a função que você criou.

1. Selecione **Ações**, **Excluir**.

1. Escolha **Excluir**.

**Para excluir a função de execução**

1. Abra a página [Roles](https://console.aws.amazon.com/iam/home#/roles) (Funções) no console do IAM.

1. Selecione a função de execução que você criou.

1. Clique em **Excluir função**.

1. Depois em **Sim, excluir**.

**Para excluir a instância de banco de dados MySQL do**

1. Abrir o[Página Bancos de dados](https://console.aws.amazon.com//rds/home#databases:)do console do Amazon RDS.

1. Selecione o banco de dados que você criou.

1. Selecione **Ações**, **Excluir**.

1. Desmarque a caixa de seleção **Create final snapshot** (Criar snapshot final).

1. Digite **delete me** na caixa de texto.

1. Escolha **Excluir**.

**Para excluir a fila do Amazon SQS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon SQS em [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/).

1. Selecione a fila que você criou.

1. Escolha **Excluir**.

1. Digite **delete** na caixa de texto.

1. Escolha **Excluir**.