

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos avançados de PHP no Elastic Beanstalk
<a name="php-samples"></a>

Para começar a usar aplicativos PHP AWS Elastic Beanstalk, você precisa fazer o upload de um [pacote de origem](applications-sourcebundle.md) do aplicativo como sua primeira versão do aplicativo a ser implantada em um ambiente. 

Recomendamos o [QuickStart para PHP](php-quickstart.md) para que você comece com uma aplicação PHP simples implantada com a EB CLI.

**Topics**
+ [Adicionar um banco de dados](create_deploy_PHP.rds.md)
+ [Tutorial - Laravel](php-laravel-tutorial.md)
+ [Tutorial – CakePHP](php-cakephp-tutorial.md)
+ [Tutorial - Symfony](php-symfony-tutorial.md)
+ [Tutorial – produção de HA](php-ha-tutorial.md)
+ [Tutorial - HA WordPress](php-hawordpress-tutorial.md)
+ [Tutorial – Drupal de alta disponibilidade](php-hadrupal-tutorial.md)

# Adicionar uma instância de banco de dados do Amazon RDS ao seu ambiente PHP Elastic Beanstalk
<a name="create_deploy_PHP.rds"></a>

Este tópico fornece instruções para criar o Amazon RDS usando o console do Elastic Beanstalk. É possível usar uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para armazenar dados coletados e modificados pela aplicação. O banco de dados pode ser acoplado ao seu ambiente e gerenciado pelo Elastic Beanstalk ou pode ser criado como desacoplado e gerenciado externamente por outro serviço. Nestas instruções, o banco de dados é acoplado ao ambiente e gerenciado pelo Elastic Beanstalk. Para obter mais informações sobre como integrar um Amazon RDS com o Elastic Beanstalk, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

**Topics**
+ [Adicionar uma instância de banco de dados ao seu ambiente](#php-rds-create)
+ [Download de um driver](#php-rds-drivers)
+ [Conectando-se a um banco de dados com um PDO ou My SQLi](#php-rds-connect)
+ [Conexão a um banco de dados com Symfony](#php-rds-symfony)

## Adicionar uma instância de banco de dados ao seu ambiente
<a name="php-rds-create"></a>

**Para adicionar uma instância de banco de dados ao ambiente**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Database (Banco de dados)**, escolha **Edit (Editar)**.

1. Escolha um mecanismo de banco de dados e insira um nome de usuário e senha.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

A adição de uma instância de banco de dados leva cerca de 10 minutos. Quando a atualização do ambiente for concluída, o nome de host da instância de banco de dados e outras informações de conexão estarão disponíveis para o seu aplicativo por meio das seguintes propriedades de ambiente:


| Nome da propriedade | Descrição | Valor da propriedade | 
| --- | --- | --- | 
|  `RDS_HOSTNAME`  |  O nome do host da instância de banco de dados.  |  Na guia **Connectivity & security (Conectividade e segurança)** no console do Amazon RDS: **Endpoint**.  | 
|  `RDS_PORT`  |  A porta na qual a instância de banco de dados aceita conexões. O valor padrão varia entre os mecanismos de banco de dados.  |  Na guia **Connectivity & security (Conectividade e segurança)** do console do Amazon RDS: **Port (Porta)**.  | 
|  `RDS_DB_NAME`  |  O nome do banco de dado, **ebdb**.  |  Na guia **Configuration (Configuração)** no console do Amazon RDS: **DB Name (Nome do banco de dados)**.  | 
|  `RDS_USERNAME`  |  O nome de usuário que você configurou para seu banco de dados.  |  Na guia **Configuration (Configuração)** do console do Amazon RDS: **Nome de usuário primário**.  | 
|  `RDS_PASSWORD`  |  A senha que você configurou para seu banco de dados.  |  Não disponível para referência no console do Amazon RDS.  | 

Para obter mais informações sobre como configurar uma instância de banco de dados acoplada a um ambiente Elastic Beanstalk, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

## Download de um driver
<a name="php-rds-drivers"></a>

Para usar Objetos de dados PHP (PDO) para se conectar ao banco de dados, instale o driver que corresponde ao mecanismo de banco de dados que você escolheu.
+ **MySQL** – [http://php.net/manual/en/ref.pdo-mysql.php](http://php.net/manual/en/ref.pdo-mysql.php)
+ **PostgreSQL** – [http://php.net/manual/en/ref.pdo-pgsql.php](http://php.net/manual/en/ref.pdo-pgsql.php)
+ **Oracle**: [http://php.net/manual/en/ref.pdo-oci.php](http://php.net/manual/en/ref.pdo-oci.php)
+ **SQL Server** – [http://php.net/manual/en/ref.pdo-sqlsrv.php](http://php.net/manual/en/ref.pdo-sqlsrv.php)

Para obter mais informações, consulte [http://php.net/manual/en/pdo.installation.php](http://php.net/manual/en/pdo.installation.php).

## Conectando-se a um banco de dados com um PDO ou My SQLi
<a name="php-rds-connect"></a>

Você pode usar `$_SERVER[`VARIABLE`]` para ler as informações de conexão do ambiente.

Para obter um PDO, crie um Nome da Fonte de Dados (DSN) do host, porta e nome. Passe o DSN para o [construtor do PDO](https://php.net/manual/en/pdo.construct.php) com o nome de usuário e senha do banco de dados.

**Example Conexão com banco de dados RDS com PDO - MySQL**  

```
<?php
$dbhost = $_SERVER['RDS_HOSTNAME'];
$dbport = $_SERVER['RDS_PORT'];
$dbname = $_SERVER['RDS_DB_NAME'];
$charset = 'utf8' ;

$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset={$charset}";
$username = $_SERVER['RDS_USERNAME'];
$password = $_SERVER['RDS_PASSWORD'];

$pdo = new PDO($dsn, $username, $password);
?>
```

Para outros drivers, substitua `mysql` pelo nome do driver: `pgsql`, `oci` ou `sqlsrv`.

Para MySQLi, passe o nome do host, o nome do usuário, a senha, o nome do banco de dados e a porta para o `mysqli` construtor.

**Example Conexão com banco de dados RDS com mysqli\$1connect()**  

```
$link = new mysqli($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);
```

## Conexão a um banco de dados com Symfony
<a name="php-rds-symfony"></a>

Para o Symfony versão 3.2 e mais recente, é possível usar `%env(PROPERTY_NAME)%` para definir os parâmetros de banco de dados em um arquivo de configuração com base nas propriedades do ambiente definidas pelo Elastic Beanstalk.

**Example app/config/parameters.yml**  

```
parameters:
    database_driver:   pdo_mysql
    database_host:     '%env(RDS_HOSTNAME)%'
    database_port:     '%env(RDS_PORT)%'
    database_name:     '%env(RDS_DB_NAME)%'
    database_user:     '%env(RDS_USERNAME)%'
    database_password: '%env(RDS_PASSWORD)%'
```

Consulte [Parâmetros externos (Symfony 3.4)](http://symfony.com/doc/3.4/configuration/external_parameters.html) para obter mais informações.

Para versões anteriores do Symfony, as variáveis de ambiente estão acessíveis somente se elas começarem com `SYMFONY__`. Isso significa que as propriedades do ambiente definidas pelo Elastic Beanstalk não podem ser acessadas, e você deve definir suas próprias propriedades do ambiente para passar as informações de conexão para o Symfony.

Para se conectar a um banco de dados com o Symfony 2, [Crie uma propriedade de ambiente](create_deploy_PHP.container.md#php-console-properties) para cada parâmetro. Em seguida, use `%property.name%` para acessar a variável transformada por Symfony em um arquivo de configuração. Por exemplo, uma propriedade de ambiente chamada `SYMFONY__DATABASE__USER` é acessível como `database.user`.

```
    database_user:     "%database.user%"
```

Consulte [Parâmetros externos (Symfony 2.8)](http://symfony.com/doc/2.8/configuration/external_parameters.html) para obter mais informações.

# Implantar uma aplicação Laravel no Elastic Beanstalk
<a name="php-laravel-tutorial"></a>

O Laravel é uma estrutura de código aberto model-view-controller (MVC) para PHP. Este tutorial mostra o processo de geração de um aplicativo Laravel, sua implantação em um AWS Elastic Beanstalk ambiente e sua configuração para se conectar a uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS).

**Topics**
+ [Pré-requisitos](#php-laravel-tutorial-prereqs)
+ [Iniciar um ambiente do Elastic Beanstalk](#php-laravel-tutorial-launch)
+ [Instalar o Laravel e gerar um site](#php-laravel-tutorial-generate)
+ [Implantar o aplicativo](#php-laravel-tutorial-deploy)
+ [Definir as configurações do Composer](#php-laravel-tutorial-configure)
+ [Adicionar um banco de dados ao seu ambiente](#php-laravel-tutorial-database)
+ [Limpeza](#php-laravel-tutorial-cleanup)
+ [Próximas etapas](#php-laravel-tutorial-nextsteps)

## Pré-requisitos
<a name="php-laravel-tutorial-prereqs"></a>

Este tutorial pressupõe que você tenha conhecimento das operações básicas e do console do Elastic Beanstalk. Caso ainda não tenha, siga as instruções em [Saiba como começar a usar o Elastic Beanstalk](GettingStarted.md) para iniciar seu primeiro ambiente do Elastic Beanstalk.

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt (\$1) e pelo nome do diretório atual, quando apropriado.

```
~/eb-project$ this is a command
this is output
```

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode [instalar o subsistema Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obter uma versão do Ubuntu e Bash integrada ao Windows.

O Laravel 6 requer PHP 7.2 ou posterior. Ele também requer as extensões PHP listadas no tópico [requisitos do servidor](https://laravel.com/docs/6.x/installation#server-requirements) na documentação oficial do Laravel. Siga as instruções para instalar o PHP e o Composer.

Para obter informações sobre suporte e manutenção do Laravel, consulte o tópico [política de suporte](https://laravel.com/docs/master/releases#support-policy) na documentação oficial do Laravel.

## Iniciar um ambiente do Elastic Beanstalk
<a name="php-laravel-tutorial-launch"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Escolha a configuração da Plataforma **PHP** e aceite as configurações padrão e código de exemplo.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação de ambiente leva cerca de 5 minutos e cria os seguintes recursos:
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Instalar o Laravel e gerar um site
<a name="php-laravel-tutorial-generate"></a>

O Composer pode instalar o Laravel e criar um projeto de trabalho com um comando:

```
~$ composer create-project --prefer-dist laravel/laravel eb-laravel
```

O Composer instala o Laravel e suas dependências, e gera um projeto padrão.

[Se você tiver algum problema ao instalar o Laravel, acesse o tópico de instalação na documentação oficial: https://laravel.com/docs/ 6.x.](https://laravel.com/docs/6.x) 

## Implantar o aplicativo
<a name="php-laravel-tutorial-deploy"></a>

Crie um [pacote de origem](applications-sourcebundle.md) com os arquivos criados pelo Composer. O comando a seguir cria um pacote de origem chamado `laravel-default.zip`. Ele exclui arquivos na pasta `vendor`, que tomam muito espaço e não são necessários para implantação da aplicação no Elastic Beanstalk.

```
~/eb-laravel$ zip ../laravel-default.zip -r * .[^.]* -x "vendor/*"
```

Faça upload do pacote de origem para o Elastic Beanstalk para implantar o Laravel no ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

**nota**  
Para otimizar mais o pacote de origem, inicie um repositório Git e use o comando [`git archive`](applications-sourcebundle.md#using-features.deployment.source.git)para criar o pacote de origem. O projeto do Laravel padrão inclui um arquivo `.gitignore` que diz para o Git excluir a pasta `vendor` e outros arquivos que não são necessários para implantação.

## Definir as configurações do Composer
<a name="php-laravel-tutorial-configure"></a>

Quando a implantação for concluída, clique no URL para abrir o aplicativo Laravel no navegador:

![\[Error message indicating no permission to access or on this server.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/php-laravel-403.png)


O que é isso? Por padrão, o Elastic Beanstalk fornece a raiz do seu projeto no caminho raiz do site. Neste caso, contudo, a página padrão (`index.php`) está em um nível abaixo na pasta `public`. Você pode verificar isso adicionando `/public` ao URL. Por exemplo, .`http://laravel.us-east-2.elasticbeanstalk.com/public`

Para fornecer a aplicação Laravel no caminho raiz, use o console do Elastic Beanstalk para configurar a *raiz do documento* para o site.

**Para configurar a raiz do documento do seu site**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Para **Document Root (Raiz do documento)**, insira **/public**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

1. Quando a atualização for concluída, clique no URL para reabrir seu site no navegador.

![\[Laravel logo with navigation menu items: Documentation, Laracasts, News, Forge, GitHub.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/php-laravel-defaultnodb.png)


Até agora, tudo tranquilo. Em seguida, adicione um banco de dados ao ambiente e configure o Laravel para se conectar a ele.

## Adicionar um banco de dados ao seu ambiente
<a name="php-laravel-tutorial-database"></a>

Execute uma instância de banco de dados do RDS no ambiente do Elastic Beanstalk. Você pode usar bancos de dados MySQL ou PostgreSQL com o Laravel no Elastic Beanstalk. SQLServer Neste exemplo, usaremos MySQL.

**Como adicionar uma instância de banco de dados do RDS ao ambiente do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Database (Banco de dados)**, escolha **Edit (Editar)**.

1. Em **Engine (Mecanismo)**, escolha **mysql**.

1. Digite um **username (nome de usuário)** e uma **password (senha)** principais. O Elastic Beanstalk fornecerá esses valores para a aplicação usando propriedades de ambiente.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

A criação de uma instância de banco de dados leva cerca de 10 minutos. Para obter mais informações sobre bancos de dados acoplados a um ambiente do Elastic Beanstalk, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

Enquanto isso, atualize o código-fonte para ler as informações de conexão do ambiente. O Elastic Beanstalk fornece detalhes de conexão usando variáveis de ambiente, como `RDS_HOSTNAME`, que você pode acessar na aplicação.

A configuração de banco de dados do Laravel é armazenada em um arquivo chamado `database.php` na pasta `config` no código do projeto. Encontre a entrada `mysql` e modifique as variáveis de `host`, `database`, `username`, `and password` para ler os valores correspondentes do Elastic Beanstalk:

**Example \$1/Eb- .php laravel/config/database**  

```
...
    'connections' => [

        'sqlite' => [
            'driver' => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
        ],

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('RDS_HOSTNAME', '127.0.0.1'),
            'port' => env('RDS_PORT', '3306'),
            'database' => env('RDS_DB_NAME', 'forge'),
            'username' => env('RDS_USERNAME', 'forge'),
            'password' => env('RDS_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
...
```

Para verificar se a conexão de banco de dados está configurada corretamente, adicione código a `index.php` para conectar ao banco de dados e adicionar código à resposta padrão:

**Example \$1/Eb- .php laravel/public/index**  

```
...
if(DB::connection()->getDatabaseName())
{
   echo "Connected to database ".DB::connection()->getDatabaseName();
}
$response->send();
...
```

Quando a instância de banco de dados tiver iniciado, empacote e implante o aplicativo atualizado em seu ambiente.

**Como atualizar o ambiente do Elastic Beanstalk**

1. Crie um novo pacote de origem:

   ```
   ~/eb-laravel$ zip ../laravel-v2-rds.zip -r * .[^.]* -x "vendor/*"
   ```

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Upload and Deploy**.

1. Escolha **Browse** e faça upload de `laravel-v2-rds.zip`.

1. Escolha **Implantar**.

Implantar uma nova versão do seu aplicativo leva menos de um minuto. Quando a implantação for concluída, atualize a página da web novamente para verificar se a conexão com o banco de dados foi bem-sucedida:

![\[Laravel website header with navigation menu items for Documentation, Laracasts, News, Forge, and GitHub.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/php-laravel-defaultwdb.png)


## Limpeza
<a name="php-laravel-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

Além disso, é possível encerrar recursos do banco de dados que você criou fora do ambiente do Elastic Beanstalk. Ao encerrar uma instância de banco de dados do Amazon RDS, você poderá criar um snapshot e restaurar os dados em outra instância posteriormente.

**Para encerrar sua instância de banco de dados do RDS**

1. Abra o [console do Amazon RDS](https://console.aws.amazon.com/rds).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados.

1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Escolha se deseja criar um snapshot. Depois, escolha **Excluir**.

## Próximas etapas
<a name="php-laravel-tutorial-nextsteps"></a>

Para obter mais informações sobre o Laravel, acesse o site oficial do Laravel em [laravel.com](https://laravel.com/).

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

Neste tutorial, você usou o console do Elastic Beanstalk para configurar as opções do Composer. Para tornar essa configuração parte de origem do aplicativo, você pode usar um arquivo de configuração, como o seguinte.

**Example .ebextensions/composer.config**  

```
option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
```

Para obter mais informações, consulte [Personalização avançada de ambiente com arquivos de configuração (`.ebextensions`)](ebextensions.md).

A execução de uma instância de banco de dados do Amazon RDS no ambiente do Elastic Beanstalk é ideal para desenvolvimento e teste, mas vincula o ciclo de vida do banco de dados ao ambiente. Para obter instruções sobre como se conectar a um banco de dados em execução fora de seu ambiente, consulte [Adicionar uma instância de banco de dados do Amazon RDS ao seu ambiente PHP Elastic Beanstalk](create_deploy_PHP.rds.md).

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.

# Implantar uma aplicação CakePHP no Elastic Beanstalk
<a name="php-cakephp-tutorial"></a>

CakePHP é uma framework MVC de código aberto para PHP. Este tutorial orienta você no processo de gerar um projeto CakePHP, implantá-lo em um ambiente do Elastic Beanstalk e configurá-lo para se conectar a uma instância de banco de dados do Amazon RDS.

**Topics**
+ [Pré-requisitos](#php-cakephp-tutorial-prereqs)
+ [Iniciar um ambiente do Elastic Beanstalk](#php-cakephp-tutorial-launch)
+ [Instalar o CakePHP e gerar um site](#php-cakephp-tutorial-generate)
+ [Implantar o aplicativo](#php-cakephp-tutorial-deploy)
+ [Adicionar um banco de dados ao seu ambiente](#php-cakephp-tutorial-database)
+ [Limpeza](#php-cakephp-tutorial-cleanup)
+ [Próximas etapas](#php-cakephp-tutorial-nextsteps)

## Pré-requisitos
<a name="php-cakephp-tutorial-prereqs"></a>

Este tutorial pressupõe que você tenha conhecimento das operações básicas e do console do Elastic Beanstalk. Caso ainda não tenha, siga as instruções em [Saiba como começar a usar o Elastic Beanstalk](GettingStarted.md) para iniciar seu primeiro ambiente do Elastic Beanstalk.

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt (\$1) e pelo nome do diretório atual, quando apropriado.

```
~/eb-project$ this is a command
this is output
```

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode [instalar o subsistema Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obter uma versão do Ubuntu e Bash integrada ao Windows.

O CakePHP 4 requer PHP 7.4 ou posterior. Ele também requer as extensões PHP listadas na documentação oficial de [instalação do CakePHP](https://book.cakephp.org/4/en/installation.html). Você deve instalar o PHP e o Composer.

## Iniciar um ambiente do Elastic Beanstalk
<a name="php-cakephp-tutorial-launch"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Escolha a configuração da Plataforma **PHP** e aceite as configurações padrão e código de exemplo.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação de ambiente leva cerca de 5 minutos e cria os seguintes recursos:
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Instalar o CakePHP e gerar um site
<a name="php-cakephp-tutorial-generate"></a>

O Composer pode instalar o CakePHP e criar um projeto de trabalho com um comando:

```
~$ composer create-project --prefer-dist cakephp/app eb-cake
```

O Composer instala o CakePHP e cerca de 20 dependências e gera um projeto padrão.

Se tiver problemas ao instalar o CakePHP, visite o tópico de instalação na documentação oficial: [http://book.cakephp.org/4.0/en/installation.html](http://book.cakephp.org/4.0/en/installation.html)

## Implantar o aplicativo
<a name="php-cakephp-tutorial-deploy"></a>

Crie um [pacote de origem](applications-sourcebundle.md) com os arquivos criados pelo Composer. O comando a seguir cria um pacote de origem chamado `cake-default.zip`. Ele exclui arquivos na pasta `vendor`, que tomam muito espaço e não são necessários para implantação da aplicação no Elastic Beanstalk.

```
eb-cake zip ../cake-default.zip -r * .[^.]* -x "vendor/*"
```

Faça upload do pacote de origem para o Elastic Beanstalk para implantar o CakePHP no ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

**nota**  
Para otimizar mais o pacote de origem, inicie um repositório Git e use o comando [`git archive`](applications-sourcebundle.md#using-features.deployment.source.git)para criar o pacote de origem. O projeto do Symfony padrão inclui um arquivo `.gitignore` que diz para o Git excluir a pasta `vendor` e outros arquivos que não são necessários para implantação.

Quando o processo for concluído, clique na URL para abrir a aplicação CakePHP no navegador:

Até agora, tudo tranquilo. Em seguida, adicione um banco de dados ao ambiente e configure o CakePHP para se conectar a ele.

## Adicionar um banco de dados ao seu ambiente
<a name="php-cakephp-tutorial-database"></a>

Execute uma instância de banco de dados do Amazon RDS no ambiente do Elastic Beanstalk. Você pode usar bancos de dados MySQL ou PostgreSQL com o CakePHP no Elastic Beanstalk. SQLServer Neste exemplo, usaremos o PostgreSQL.

**Como adicionar uma instância de banco de dados do Amazon RDS ao ambiente do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Em **Database (Banco de dados)**, escolha **Edit (Editar)**.

1. Em **DB engine**, escolha **postgres**.

1. Digite um **username (nome de usuário)** e uma **password (senha)** principais. O Elastic Beanstalk fornecerá esses valores para a aplicação usando propriedades de ambiente.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

A criação de uma instância de banco de dados leva cerca de 10 minutos. Enquanto isso, atualize o código-fonte para ler as informações de conexão do ambiente. O Elastic Beanstalk fornece detalhes de conexão usando variáveis de ambiente, como `RDS_HOSTNAME`, que você pode acessar na aplicação.

A configuração de banco de dados do CakePHP é armazenada em um arquivo chamado `app.php` na pasta `config` no código do projeto. Abra este arquivo e adicione um código que leia as variáveis de ambiente do `$_SERVER` e as atribua às variáveis locais. Insira as linhas realçadas no exemplo abaixo após a primeira linha (`<?php`):

**Example \$1/Eb- .php cake/config/app**  

```
<?php
if (!defined('RDS_HOSTNAME')) {
  define('RDS_HOSTNAME', $_SERVER['RDS_HOSTNAME']);
  define('RDS_USERNAME', $_SERVER['RDS_USERNAME']);
  define('RDS_PASSWORD', $_SERVER['RDS_PASSWORD']);
  define('RDS_DB_NAME', $_SERVER['RDS_DB_NAME']);
}
return [
...
```

A conexão do banco de dados está configurada mais abaixo no arquivo `app.php`. Encontre a seção a seguir e modifique a configuração de fontes de dados padrão com o nome do driver que corresponde ao seu mecanismo de banco de dados (`Mysql`, `Sqlserver` ou `Postgres`) e defina as variáveis `host`, `username`, `password` e `database` para ler os valores correspondentes do Elastic Beanstalk:

**Example \$1/Eb- .php cake/config/app**  

```
...
     /**
     * Connection information used by the ORM to connect
     * to your application's datastores.
     * Drivers include Mysql Postgres Sqlite Sqlserver
     * See vendor\cakephp\cakephp\src\Database\Driver for complete list
     */
    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Postgres',
            'persistent' => false,
            'host' => RDS_HOSTNAME,
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => RDS_USERNAME,
            'password' => RDS_PASSWORD,
            'database' => RDS_DB_NAME,
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,
...
```

Quando a instância de banco de dados tiver iniciado, crie um pacote e implante o aplicativo atualizado no ambiente:

**Como atualizar o ambiente do Elastic Beanstalk**

1. Crie um novo pacote de origem:

   ```
   ~/eb-cake$ zip ../cake-v2-rds.zip -r * .[^.]* -x "vendor/*"
   ```

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Upload and Deploy**.

1. Escolha **Browse** e faça upload de `cake-v2-rds.zip`.

1. Escolha **Implantar**.

Implantar uma nova versão do seu aplicativo leva menos de um minuto. Quando a implantação for concluída, atualize a página da web novamente para verificar se a conexão com o banco de dados foi bem-sucedida:

![\[Green checkmark icon indicating successful database connection for CakePHP.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/php-cakephp-defaultwdb.png)


## Limpeza
<a name="php-cakephp-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

Além disso, é possível encerrar recursos do banco de dados que você criou fora do ambiente do Elastic Beanstalk. Ao encerrar uma instância de banco de dados do Amazon RDS, você poderá criar um snapshot e restaurar os dados em outra instância posteriormente.

**Para encerrar sua instância de banco de dados do RDS**

1. Abra o [console do Amazon RDS](https://console.aws.amazon.com/rds).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados.

1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Escolha se deseja criar um snapshot. Depois, escolha **Excluir**.

## Próximas etapas
<a name="php-cakephp-tutorial-nextsteps"></a>

Para obter mais informações sobre o CakePHP, leia o livro em [book.cakephp.org](http://book.cakephp.org/4.0/en/index.html).

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

A execução de uma instância de banco de dados do Amazon RDS no ambiente do Elastic Beanstalk é ideal para desenvolvimento e teste, mas vincula o ciclo de vida do banco de dados ao ambiente. Para obter instruções sobre como se conectar a um banco de dados em execução fora de seu ambiente, consulte [Adicionar uma instância de banco de dados do Amazon RDS ao seu ambiente PHP Elastic Beanstalk](create_deploy_PHP.rds.md).

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.

# Implantar uma aplicação Symfony no Elastic Beanstalk
<a name="php-symfony-tutorial"></a>

O [Symfony](http://symfony.com/) é uma framework de código aberto para o desenvolvimento de aplicações web de PHP dinâmico. Este tutorial mostra o processo de geração de um aplicativo Symfony e sua implantação em um ambiente. AWS Elastic Beanstalk 

**Topics**
+ [Pré-requisitos](#php-symfony-tutorial-prereqs)
+ [Iniciar um ambiente do Elastic Beanstalk](#php-symfony-tutorial-launch)
+ [Instalar o Symfony e gerar um site](#php-symfony-tutorial-generate)
+ [Implantar o aplicativo](#php-symfony-tutorial-deploy)
+ [Definir as configurações do Composer](#php-symfony-tutorial-configure)
+ [Limpeza](#php-symfony-tutorial-cleanup)
+ [Próximas etapas](#php-symfony-tutorial-nextsteps)

## Pré-requisitos
<a name="php-symfony-tutorial-prereqs"></a>

Este tutorial pressupõe que você tenha conhecimento das operações básicas e do console do Elastic Beanstalk. Caso ainda não tenha, siga as instruções em [Saiba como começar a usar o Elastic Beanstalk](GettingStarted.md) para iniciar seu primeiro ambiente do Elastic Beanstalk.

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt (\$1) e pelo nome do diretório atual, quando apropriado.

```
~/eb-project$ this is a command
this is output
```

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode [instalar o subsistema Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obter uma versão do Ubuntu e Bash integrada ao Windows.

O Symfony 4.4.9 requer PHP 7.1.3 ou posterior. Ele também requer as extensões PHP listadas no tópico [requisitos técnicos](https://symfony.com/doc/4.4/setup.html ) na documentação de instalação oficial do Symfony. Neste tutorial, usamos o PHP 7.2 e a [versão correspondente da plataforma](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.PHP) do Elastic Beanstalk. Antes de continuar, você deve instalar o PHP e o Composer.

Para obter informações sobre suporte e manutenção do Symfony, consulte o tópico [lançamentos do symfony](https://symfony.com/releases) no site do Symfony. Para obter mais informações sobre atualizações relacionadas ao suporte à versão do PHP para o Symfony 4.4.9, consulte o tópico [notas de release do Symfony 4.4.9](https://symfony.com/blog/symfony-4-4-9-released) no site do Symfony.

## Iniciar um ambiente do Elastic Beanstalk
<a name="php-symfony-tutorial-launch"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Escolha a configuração da Plataforma **PHP** e aceite as configurações padrão e código de exemplo.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação de ambiente leva cerca de 5 minutos e cria os seguintes recursos:
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Instalar o Symfony e gerar um site
<a name="php-symfony-tutorial-generate"></a>

O Composer pode instalar o Symfony e criar um projeto de trabalho com um comando:

```
~$ composer create-project symfony/website-skeleton eb-symfony
```

O Composer instala o Symfony e suas dependências e gera um projeto padrão.

Se tiver problemas com a instalação do Symfony, consulte o tópico [instalação](https://symfony.com/doc/4.4/setup.html) na documentação oficial do Symfony.

## Implantar o aplicativo
<a name="php-symfony-tutorial-deploy"></a>

Acesse o diretório do projeto.

```
~$ cd eb-symfony
```

Crie um [pacote de origem](applications-sourcebundle.md) com os arquivos criados pelo Composer. O comando a seguir cria um pacote de origem chamado `symfony-default.zip`. Ele exclui arquivos na pasta `vendor`, que tomam muito espaço e não são necessários para implantação da aplicação no Elastic Beanstalk.

```
eb-symfony$ zip ../symfony-default.zip -r * .[^.]* -x "vendor/*"
```

Faça upload do pacote de origem para o Elastic Beanstalk para implantar o Symfony no ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

**nota**  
Para otimizar mais o pacote de origem, inicie um repositório Git e use o comando [`git archive`](applications-sourcebundle.md#using-features.deployment.source.git)para criar o pacote de origem. O projeto do Symfony padrão inclui um arquivo `.gitignore` que diz para o Git excluir a pasta `vendor` e outros arquivos que não são necessários para implantação.

## Definir as configurações do Composer
<a name="php-symfony-tutorial-configure"></a>

Quando a implantação for concluída, clique na URL para abrir a aplicação Symfony no navegador:

O que é isso? Por padrão, o Elastic Beanstalk fornece a raiz do seu projeto no caminho raiz do site. Neste caso, contudo, a página padrão (`app.php`) está em um nível abaixo na pasta `web`. Você pode verificar isso adicionando `/public` ao URL. Por exemplo, .`http://symfony.us-east-2.elasticbeanstalk.com/public`

Para fornecer a aplicação Symfony no caminho raiz, use o console do Elastic Beanstalk para configurar a *raiz do documento* para o site.

**Para configurar a raiz do documento do seu site**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Para **Document Root (Raiz do documento)**, insira **/public**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

1. Quando a atualização for concluída, clique no URL para reabrir seu site no navegador.

## Limpeza
<a name="php-symfony-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

## Próximas etapas
<a name="php-symfony-tutorial-nextsteps"></a>

Para obter mais informações sobre Symfony, consulte [O que é o Symfony?](https://symfony.com/what-is-symfony) no site symfony.com.

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

Neste tutorial, você usou o console do Elastic Beanstalk para configurar as opções do Composer. Para tornar essa configuração parte de origem do aplicativo, você pode usar um arquivo de configuração, como o seguinte.

**Example .ebextensions/composer.config**  

```
option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
```

Para obter mais informações, consulte [Personalização avançada de ambiente com arquivos de configuração (`.ebextensions`)](ebextensions.md).

O Symfony usa seus próprios arquivos de configuração para configurar as conexões do banco de dados. Para obter instruções sobre como se conectar a um banco de dados com o Symfony, consulte [Conexão a um banco de dados com Symfony](create_deploy_PHP.rds.md#php-rds-symfony).

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.

# Implantar uma aplicação PHP de alta disponibilidade com um banco de dados externo do Amazon RDS no Elastic Beanstalk
<a name="php-ha-tutorial"></a>

Este tutorial mostra o processo de [iniciar uma instância de banco de dados RDS](AWSHowTo.RDS.md) externa e configurar um ambiente de alta disponibilidade executando um aplicativo PHP para se conectar a ela. AWS Elastic Beanstalk A execução de uma instância de banco de dados externa ao Elastic Beanstalk desvincula o banco de dados do ciclo de vida do ambiente. Com isso, é possível se conectar ao mesmo banco de dados de vários ambientes, trocar um banco de dados por outro ou realizar uma implantação azul/verde sem afetar seu banco de dados.

O tutorial usa um [exemplo de aplicativo PHP](https://github.com/awslabs/eb-demo-php-simple-app) que usa um banco de dados MySQL para armazenar dados de texto fornecidos pelo usuário. O aplicativo de exemplo usa [arquivos de configuração](ebextensions.md) para definir as [configurações de PHP](create_deploy_PHP.container.md#php-namespaces) e para criar uma tabela no banco de dados para o aplicativo usar. Ele também mostra como usar um [arquivo do Composer](create_deploy_PHP.container.md#php-configuration-composer) para instalar pacotes durante a implantação.

**Topics**
+ [Pré-requisitos](#php-hawrds-tutorial-prereqs)
+ [Executar uma instância de banco de dados no Amazon RDS](#php-hawrds-tutorial-database)
+ [Criar um ambiente do Elastic Beanstalk](#php-hawrds-tutorial-create)
+ [Configurar grupos de segurança, propriedades de ambiente e escalabilidade](#php-hawrds-tutorial-configure)
+ [Implantar o aplicativo de exemplo](#php-hawrds-tutorial-deploy)
+ [Limpeza](#php-hawrds-tutorial-cleanup)
+ [Próximas etapas](#php-hawrds-tutorial-nextsteps)

## Pré-requisitos
<a name="php-hawrds-tutorial-prereqs"></a>

[Antes de começar, baixe o pacote de origem do aplicativo de amostra em GitHub: -app-1.3.zip eb-demo-php-simple](https://github.com/aws-samples/eb-demo-php-simple-app/releases/download/v1.3/eb-demo-php-simple-app-v1.3.zip)

Os procedimentos neste tutorial para tarefas do Amazon Relational Database Service (Amazon RDS) assumem que você esteja iniciando recursos em uma [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) padrão. Todas as novas contas incluem uma VPC padrão em cada região. Se você não tem uma VPC padrão, os procedimentos podem variar. Consulte [Usar o Elastic Beanstalk com o Amazon RDS](AWSHowTo.RDS.md) para obter instruções sobre EC2 plataformas VPC clássicas e personalizadas.

## Executar uma instância de banco de dados no Amazon RDS
<a name="php-hawrds-tutorial-database"></a>

Para usar um banco de dados externo com uma aplicação em execução no Elastic Beanstalk, primeiro execute uma instância de banco de dados com o Amazon RDS. Quando uma instância é executada com o Amazon RDS, ela é completamente independente do Elastic Beanstalk e dos seus ambientes do Elastic Beanstalk e não será encerrada nem monitorada pelo Elastic Beanstalk.

Use o console do Amazon RDS para executar uma instância de banco de dados **MySQL** Multi-AZ. Escolha uma implantação Multi-AZ para garantir que seu banco de dados execute o failover e continue disponível se a instância de banco de dados de origem ficar fora de serviço.

**Para executar uma instância de banco de dados do RDS em uma VPC padrão**

1. Abra o [console do RDS](https://console.aws.amazon.com/rds/home).

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

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

1. Escolha **Standard Create (Criação padrão)**.
**Importante**  
Não escolha **Easy Create (Criação fácil)**. Se o escolher, você não poderá definir as configurações necessárias para iniciar esse banco de dados do RDS.

1. Em **Additional configuration (Configuração adicional)**, para **Initial database name (Nome do banco de dados inicial)**, digite **ebdb**. 

1. Revise as configurações padrão e ajuste essas configurações de acordo com seus requisitos específicos. Preste atenção às seguintes opções:
   + **DB instance class** (Classe de instância de banco de dados): escolha um tamanho de instância que tem uma quantidade apropriada de memória e energia de CPU para sua workload.
   + **Implantação Multi-AZ** — Para alta disponibilidade, defina isso como **Criar um nó Replica/Reader Aurora em uma** AZ diferente.
   + **Master username (Nome do usuário principal)** e **Master password (Senha principal)**:o nome de usuário do banco de dados e senha. Anote essas configurações porque você vai usá-las mais tarde.

1. Verifique as configurações padrão para as opções restantes e selecione **Create database (Criar banco de dados)**.

Em seguida, modifique o security group anexado à sua instância de banco de dados para permitir o tráfego de entrada na porta apropriada. Este é o mesmo grupo de segurança a ser anexado ao ambiente do Elastic Beanstalk mais tarde, para que a regra adicionada conceda permissão de entrada a outros recursos no mesmo grupo de segurança.

**Para modificar as regras de entrada no grupo de segurança anexado à instância do RDS**

1. Abra o [ console do Amazon RDS](https://console.aws.amazon.com/rds/home).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha o nome da sua instância de banco de dados para visualizar detalhes.

1. Na seção **Conectividade**, anote as **Sub-redes**, os **Grupos de segurança** e o **Endpoint** que são exibidos nesta página. Faça isso para poder usar essas informações mais tarde.

1. Em **Security** (Segurança), você pode ver o grupo de segurança associado à instância de banco de dados. Abra o link para ver o grupo de segurança no EC2 console da Amazon.

1. Nos detalhes do grupo de segurança, escolha a guia **Inbound (Entrada)**.

1. Escolha **Editar**.

1. Escolha **Add Rule**.

1. Para **Tipo**, escolha o mecanismo de banco de dados usado pelo aplicativo.

1. Em **Source (Origem)**, digite **sg-** para exibir uma lista dos grupos de segurança disponíveis. Escolha o grupo de segurança associado ao grupo do Auto Scaling usado com seu ambiente do Elastic Beanstalk. Isso é para que as EC2 instâncias da Amazon no ambiente possam ter acesso ao banco de dados.  
![\[Imagem da tela para editar as regras de entrada para um grupo de segurança no EC2 console da Amazon.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/ec2-securitygroup-rds.png)

1. Escolha **Salvar**.

A criação de uma instância de banco de dados leva cerca de 10 minutos. Enquanto isso, crie o ambiente do Elastic Beanstalk.

## Criar um ambiente do Elastic Beanstalk
<a name="php-hawrds-tutorial-create"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Escolha a configuração da Plataforma **PHP** e aceite as configurações padrão e código de exemplo. Depois de iniciar o ambiente, você pode configurar o ambiente para se conectar ao banco de dados e, em seguida, implantar o aplicativo de amostra do qual você baixou GitHub.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação de ambiente leva cerca de 5 minutos e cria os seguintes recursos:
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele. A instância de banco de dados RDS que você executou está fora do seu ambiente, portanto você é responsável por gerenciar o ciclo de vida dela.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Configurar grupos de segurança, propriedades de ambiente e escalabilidade
<a name="php-hawrds-tutorial-configure"></a>

Adicione o security group da instância de banco de dados ao seu ambiente em execução. Esse procedimento faz com que o Elastic Beanstalk provisione novamente todas as instâncias no ambiente com o grupo de segurança adicional anexado.

**Para adicionar um security group ao seu ambiente**
+ Execute um destes procedimentos:
  + Como adicionar um grupo de segurança usando o console do Elastic Beanstalk

    1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

    1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

    1. No painel de navegação, escolha **Configuration (Configuração)**.

    1. Na categoria de configuração **Instances (Instâncias)**, escolha **Edit (Editar)**.

    1. Em **grupos EC2 de segurança**, escolha o grupo de segurança a ser anexado às instâncias, além do grupo de segurança de instâncias que o Elastic Beanstalk cria.

    1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

    1. Leia o aviso e escolha **Confirm**.
  + Para adicionar um grupo de segurança usando um [arquivo de configuração](ebextensions.md), use o exemplo de arquivo [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config).

Em seguida, use as propriedades do ambiente para passar as informações de conexão para o ambiente. A aplicação demonstrativa usa um conjunto padrão de propriedades que correspondem àquelas que o Elastic Beanstalk configura quando você provisiona um banco de dados no ambiente.

**Como configurar as propriedades do ambiente para uma instância de banco de dados do Amazon RDS**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Na seção **Environment properties**, defina as variáveis que seu aplicativo lê para construir uma string de conexão. Para compatibilidade com ambientes que têm uma instância de banco de dados do RDS integrada, use os seguintes nomes e valores. É possível encontrar todos os valores, exceto sua senha, no [console do RDS](https://console.aws.amazon.com/rds/home).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/php-ha-tutorial.html)  
![\[Seção de configuração de propriedades de ambiente com a adição de propriedades do RDS\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/environment-cfg-envprops-rds.png)

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Por fim, configure o grupo de Auto Scaling do seu ambiente com uma contagem mínima de instâncias mais alta. Execute pelo menos duas instâncias o tempo todo para impedir que os servidores Web em seu ambiente sejam um ponto único de falha e para permitir que você implante alterações sem colocar seu site fora do serviço.

**Para configurar o grupo de Auto Scaling de seu ambiente para alta disponibilidade**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Capacity (Capacidade)**, escolha **Edit (Editar)**.

1. Na seção **Auto Scaling group (Grupo de Auto Scaling)** defina **Min instances (Mínimo de instâncias)** como **2**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

## Implantar o aplicativo de exemplo
<a name="php-hawrds-tutorial-deploy"></a>

Agora, o ambiente está pronto para executar a aplicação demonstrativa e conectar-se ao Amazon RDS. Implante o aplicativo de exemplo em seu ambiente.

**nota**  
[Faça o download do pacote de origem em GitHub, se ainda não o fez: eb-demo-php-simple -app-1.3.zip](https://github.com/aws-samples/eb-demo-php-simple-app/releases/download/v1.3/eb-demo-php-simple-app-v1.3.zip)

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

O site coleta os comentários do usuário e usa um banco de dados MySQL para armazenar os dados. Para adicionar um comentário, escolha **Share Your Thought (Compartilhar sua opinião)**, insira um comentário e escolha **Submit Your Thought (Enviar sua opinião)**. O aplicativo Web grava o comentário no banco de dados para que qualquer instância do ambiente possa ler e ele não será perdido se as instâncias ficarem fora de serviço.

![\[User interface for sharing thoughts, with a posted comment about Elastic Beanstalk on AWS.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/php-ha-tutorial-app.png)


## Limpeza
<a name="php-hawrds-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

Além disso, é possível encerrar recursos do banco de dados que você criou fora do ambiente do Elastic Beanstalk. Ao encerrar uma instância de banco de dados do Amazon RDS, você poderá criar um snapshot e restaurar os dados em outra instância posteriormente.

**Para encerrar sua instância de banco de dados do RDS**

1. Abra o [console do Amazon RDS](https://console.aws.amazon.com/rds).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados.

1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Escolha se deseja criar um snapshot. Depois, escolha **Excluir**.

## Próximas etapas
<a name="php-hawrds-tutorial-nextsteps"></a>

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

O aplicativo de exemplo usa os arquivos de configuração para especificar as configurações de PHP e criar uma tabela no banco de dados, se ainda não existir. Você também pode usar um arquivo de configuração para definir as configurações de security group das instâncias durante a criação do ambiente para evitar atualizações de configuração demoradas. Consulte [Personalização avançada de ambiente com arquivos de configuração (`.ebextensions`)](ebextensions.md) para obter mais informações.

Para desenvolvimento e teste, convém usar a funcionalidade do Elastic Beanstalk para adicionar uma instância de banco de dados gerenciada diretamente ao seu ambiente. Para obter instruções sobre como configurar um banco de dados no ambiente, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

Se você precisa de um banco de dados de alta performance, considere usar o [Amazon Aurora](https://aws.amazon.com/rds/aurora/). O Amazon Aurora é um mecanismo de banco de dados compatível com MySQL que oferece recursos de banco de dados comerciais a baixo custo. Para conectar seu aplicativo a outro banco de dados, repita as etapas de [configuração de grupo de segurança](#php-hawrds-tutorial-database) e [atualize as propriedades de ambiente relacionadas ao RDS](#php-hawrds-tutorial-configure). 

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.

# Implantação de um WordPress site de alta disponibilidade com um banco de dados externo do Amazon RDS no Elastic Beanstalk
<a name="php-hawordpress-tutorial"></a>

Este tutorial descreve como [iniciar uma instância de banco de dados Amazon RDS](AWSHowTo.RDS.md) externa e, em seguida AWS Elastic Beanstalk, como configurar um ambiente de alta disponibilidade executando um WordPress site para se conectar a ela. O site usa o Amazon Elastic File System (Amazon EFS) como o armazenamento compartilhado para arquivos carregados.

A execução de uma instância de banco de dados externa ao Elastic Beanstalk desvincula o banco de dados do ciclo de vida do ambiente. Com isso, é possível se conectar ao mesmo banco de dados de vários ambientes, trocar um banco de dados por outro ou realizar uma [implantação azul/verde](using-features.CNAMESwap.md) sem afetar seu banco de dados.

**nota**  
Para obter informações atuais sobre a compatibilidade das versões do PHP com WordPress versões, consulte [Compatibilidade e WordPress versões do PHP](https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/) no WordPress site. Você deve consultar essas informações antes de atualizar para uma nova versão do PHP para suas WordPress implementações.

**Topics**
+ [Pré-requisitos](#php-wordpress-tutorial-prereqs)
+ [Executar uma instância de banco de dados no Amazon RDS](#php-hawordpress-tutorial-database)
+ [Baixar WordPress](#php-hawordpress-tutorial-download)
+ [Iniciar um ambiente do Elastic Beanstalk](#php-hawordpress-tutorial-launch)
+ [Configurar grupos de segurança e propriedades de ambiente](#php-wordpress-tutorial-configure)
+ [Configurar e implantar seu aplicativo](#php-wordpress-tutorial-deploy)
+ [Instalar WordPress](#php-hawordpress-tutorial-install)
+ [Atualizar chaves e salts](#php-hawordpress-tutorial-updatesalts)
+ [Remover restrições de acesso](#php-hawordpress-tutorial-updateenv)
+ [Configurar o grupo de Auto Scaling](#php-hawordpress-tutorial-autoscaling)
+ [Atualizar WordPress](#php-hawordpress-tutorial-upgrade)
+ [Limpeza](#php-hawordpress-tutorial-cleanup)
+ [Próximas etapas](#php-hawordpress-tutorial-nextsteps)

## Pré-requisitos
<a name="php-wordpress-tutorial-prereqs"></a>

Este tutorial pressupõe que você tenha conhecimento das operações básicas e do console do Elastic Beanstalk. Caso ainda não tenha, siga as instruções em [Saiba como começar a usar o Elastic Beanstalk](GettingStarted.md) para iniciar seu primeiro ambiente do Elastic Beanstalk.

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt (\$1) e pelo nome do diretório atual, quando apropriado.

```
~/eb-project$ this is a command
this is output
```

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode [instalar o subsistema Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obter uma versão do Ubuntu e Bash integrada ao Windows.

**VPC padrão**  
Os procedimentos do Amazon Relational Database Service (Amazon RDS) neste tutorial assumem que você esteja iniciando recursos em uma [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) padrão. Todas as novas contas incluem uma VPC padrão em cada AWS região. Se você não tem uma VPC padrão, os procedimentos podem variar. Consulte [Usar o Elastic Beanstalk com o Amazon RDS](AWSHowTo.RDS.md) para obter instruções sobre EC2 plataformas VPC clássicas e personalizadas.

**AWS Regiões**  
O aplicativo de amostra usa o Amazon EFS, que só funciona em AWS regiões que oferecem suporte ao Amazon EFS. Para saber mais sobre AWS as regiões suportadas, consulte os [endpoints e cotas do Amazon Elastic File System](https://docs.aws.amazon.com/general/latest/gr/elasticfilesystem.html) no. *Referência geral da AWS*

## Executar uma instância de banco de dados no Amazon RDS
<a name="php-hawordpress-tutorial-database"></a>

Quando uma instância é executada com o Amazon RDS, ela é completamente independente do Elastic Beanstalk e dos seus ambientes do Elastic Beanstalk e não será encerrada nem monitorada pelo Elastic Beanstalk.

Nas etapas a seguir, você usará o console do Amazon RDS para:
+ Iniciar um banco de dados com o mecanismo **MySQL** .
+ Habilitar uma **Multi-AZ deployment (Implantação Multi-AZ)**. Isso cria um modo de espera em uma zona de disponibilidade (AZ) diferente para fornecer redundância de dados, eliminar I/O congelamentos e minimizar picos de latência durante os backups do sistema.

**Para executar uma instância de banco de dados do RDS em uma VPC padrão**

1. Abra o [console do RDS](https://console.aws.amazon.com/rds/home).

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

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

1. Escolha **Standard Create (Criação padrão)**.
**Importante**  
Não escolha **Easy Create (Criação fácil)**. Se o escolher, você não poderá definir as configurações necessárias para iniciar esse banco de dados do RDS.

1. Em **Additional configuration (Configuração adicional)**, para **Initial database name (Nome do banco de dados inicial)**, digite **ebdb**. 

1. Revise as configurações padrão e ajuste essas configurações de acordo com seus requisitos específicos. Preste atenção às seguintes opções:
   + **DB instance class** (Classe de instância de banco de dados): escolha um tamanho de instância que tem uma quantidade apropriada de memória e energia de CPU para sua workload.
   + **Implantação Multi-AZ** — Para alta disponibilidade, defina isso como **Criar um nó Replica/Reader Aurora em uma** AZ diferente.
   + **Master username (Nome do usuário principal)** e **Master password (Senha principal)**:o nome de usuário do banco de dados e senha. Anote essas configurações porque você vai usá-las mais tarde.

1. Verifique as configurações padrão para as opções restantes e selecione **Create database (Criar banco de dados)**.

Depois que sua instância de banco de dados for criada, modifique o grupo de segurança anexado a ela para permitir o tráfego de entrada na porta apropriada.

**nota**  
Este é o mesmo grupo de segurança a ser anexado ao ambiente do Elastic Beanstalk mais tarde, para que a regra adicionada agora conceda permissão de entrada a outros recursos no mesmo grupo de segurança.

**Para modificar as regras de entrada no grupo de segurança anexado à instância do RDS**

1. Abra o [ console do Amazon RDS](https://console.aws.amazon.com/rds/home).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha o nome da sua instância de banco de dados para visualizar detalhes.

1. Na seção **Conectividade**, anote as **Sub-redes**, os **Grupos de segurança** e o **Endpoint** que são exibidos nesta página. Faça isso para poder usar essas informações mais tarde.

1. Em **Security** (Segurança), você pode ver o grupo de segurança associado à instância de banco de dados. Abra o link para ver o grupo de segurança no EC2 console da Amazon.

1. Nos detalhes do grupo de segurança, escolha a guia **Inbound (Entrada)**.

1. Escolha **Editar**.

1. Escolha **Add Rule**.

1. Para **Tipo**, escolha o mecanismo de banco de dados usado pelo aplicativo.

1. Em **Source (Origem)**, digite **sg-** para exibir uma lista dos grupos de segurança disponíveis. Escolha o grupo de segurança associado ao grupo do Auto Scaling usado com seu ambiente do Elastic Beanstalk. Isso é para que as EC2 instâncias da Amazon no ambiente possam ter acesso ao banco de dados.  
![\[Imagem da tela para editar as regras de entrada para um grupo de segurança no EC2 console da Amazon.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/ec2-securitygroup-rds.png)

1. Escolha **Salvar**.

A criação de uma instância de banco de dados leva cerca de 10 minutos. Enquanto isso, baixe WordPress e crie seu ambiente do Elastic Beanstalk.

## Baixar WordPress
<a name="php-hawordpress-tutorial-download"></a>

Para se preparar para a implantação WordPress usando AWS Elastic Beanstalk, você deve copiar os WordPress arquivos para o seu computador e fornecer as informações de configuração corretas.

**Para criar um WordPress projeto**

1. Baixe WordPress em [wordpress.org](https://wordpress.org/download/).

   ```
   ~$curl https://wordpress.org/wordpress-6.2.tar.gz -o wordpress.tar.gz
   ```

1. Faça download dos arquivos de configuração no repositório de exemplo.

   ```
   ~$ wget https://github.com/aws-samples/eb-php-wordpress/releases/download/v1.1/eb-php-wordpress-v1.zip
   ```

1. Extraia WordPress e altere o nome da pasta.

   ```
    ~$ tar -xvf wordpress.tar.gz
    ~$ mv wordpress wordpress-beanstalk
    ~$ cd wordpress-beanstalk
   ```

1. Extraia os arquivos de configuração durante a WordPress instalação.

   ```
    ~/wordpress-beanstalk$ unzip ../eb-php-wordpress-v1.zip
     creating: .ebextensions/
    inflating: .ebextensions/dev.config
    inflating: .ebextensions/efs-create.config
    inflating: .ebextensions/efs-mount.config
    inflating: .ebextensions/loadbalancer-sg.config
    inflating: .ebextensions/wordpress.config
    inflating: LICENSE
    inflating: README.md
    inflating: wp-config.php
   ```

## Iniciar um ambiente do Elastic Beanstalk
<a name="php-hawordpress-tutorial-launch"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Depois de iniciar o ambiente, você pode configurá-lo para se conectar ao banco de dados e, em seguida, implantar o WordPress código no ambiente.

Nas etapas a seguir, você usará o console do Elastic Beanstalk para:
+ Criar uma aplicação do Elastic Beanstalk usando a plataforma **PHP** gerenciada.
+ Aceitar as configurações padrão e o código de exemplo.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação do ambiente leva cerca de cinco minutos e cria os seguintes recursos. 

### Recursos criados do Elastic Beanstalk
<a name="php-hawordpress-tutorial-launch.EB-resources"></a>
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

Como a instância de banco de dados do Amazon RDS executada está fora do ambiente, você é responsável por gerenciar o ciclo de vida dela.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Configurar grupos de segurança e propriedades de ambiente
<a name="php-wordpress-tutorial-configure"></a>

Adicione o security group da instância de banco de dados ao seu ambiente em execução. Esse procedimento faz com que o Elastic Beanstalk provisione novamente todas as instâncias no ambiente com o grupo de segurança adicional anexado.

**Para adicionar um security group ao seu ambiente**
+ Execute um destes procedimentos:
  + Como adicionar um grupo de segurança usando o console do Elastic Beanstalk

    1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

    1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

    1. No painel de navegação, escolha **Configuration (Configuração)**.

    1. Na categoria de configuração **Instances (Instâncias)**, escolha **Edit (Editar)**.

    1. Em **grupos EC2 de segurança**, escolha o grupo de segurança a ser anexado às instâncias, além do grupo de segurança de instâncias criado pelo Elastic Beanstalk.

    1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

    1. Leia o aviso e escolha **Confirm**.
  + Para adicionar um grupo de segurança usando um [arquivo de configuração](ebextensions.md), use o exemplo de arquivo [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config).

Em seguida, use as propriedades do ambiente para passar as informações de conexão para o ambiente.

O WordPress aplicativo usa um conjunto padrão de propriedades que correspondem às que o Elastic Beanstalk configura quando você provisiona um banco de dados em seu ambiente.

**Como configurar as propriedades do ambiente para uma instância de banco de dados do Amazon RDS**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Na seção **Environment properties**, defina as variáveis que seu aplicativo lê para construir uma string de conexão. Para compatibilidade com ambientes que têm uma instância de banco de dados do RDS integrada, use os seguintes nomes e valores. É possível encontrar todos os valores, exceto sua senha, no [console do RDS](https://console.aws.amazon.com/rds/home).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/php-hawordpress-tutorial.html)  
![\[Seção de configuração de propriedades de ambiente com a adição de propriedades do RDS\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/environment-cfg-envprops-rds.png)

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

## Configurar e implantar seu aplicativo
<a name="php-wordpress-tutorial-deploy"></a>

Verifique se a estrutura da pasta `wordpress-beanstalk` está correta, conforme exibido.

```
wordpress-beanstalk$ tree -aL 1
.
├── .ebextensions
├── index.php
├── LICENSE
├── license.txt
├── readme.html
├── README.md
├── wp-activate.php
├── wp-admin
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config.php
├── wp-config-sample.php
├── wp-content
├── wp-cron.php
├── wp-includes
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php
```

O arquivo `wp-config.php` personalizado do repositório do projeto usa as variáveis de ambiente que você definiu na etapa anterior para configurar a conexão do banco de dados. A pasta `.ebextensions` contém arquivos de configuração que criam recursos adicionais no ambiente do Elastic Beanstalk.

Os arquivos de configuração devem ser modificados para funcionar com sua conta. Substitua os valores do espaço reservado nos arquivos pelos apropriados IDs e crie um pacote de origem.

**Como atualizar os arquivos de configuração e criar um pacote de origem**

1. Modifique os arquivos de configuração da seguinte forma.
   + `.ebextensions/dev.config`— Restringe o acesso ao seu ambiente para protegê-lo durante o processo WordPress de instalação. Substitua o endereço IP do espaço reservado próximo à parte superior do arquivo pelo endereço IP público do computador que você usará para acessar o site do seu ambiente e concluir a WordPress instalação. 
**nota**  
Dependendo da sua rede, pode ser necessário usar um bloco de endereços IP.
   + `.ebextensions/efs-create.config`— Cria um sistema de arquivos EFS e pontos de montagem em cada disponibilidade Zone/subnet em sua VPC. Identifique sua VPC e sub-rede padrão no console IDs da Amazon [VPC](https://console.aws.amazon.com/vpc/home#subnets:filter=default).

1. Crie um [pacote de origem](applications-sourcebundle.md) com os arquivos em sua pasta de projeto. O comando a seguir cria um pacote de origem chamado `wordpress-beanstalk.zip`.

   ```
   ~/eb-wordpress$ zip ../wordpress-beanstalk.zip -r * .[^.]*
   ```

Faça o upload do pacote de origem para o Elastic WordPress Beanstalk para implantá-lo em seu ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

## Instalar WordPress
<a name="php-hawordpress-tutorial-install"></a>

**Para concluir sua WordPress instalação**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha o URL do ambiente para abrir seu site em um navegador. Você é redirecionado para um assistente WordPress de instalação porque ainda não configurou o site.

1. Execute uma instalação padrão. O arquivo `wp-config.php` já está presente no código-fonte e configurado para ler as informações de conexão do banco de dados do ambiente, portanto você não deve ser solicitado para configurar a conexão.

A instalação leva cerca de um minuto para ser concluída.

## Atualizar chaves e salts
<a name="php-hawordpress-tutorial-updatesalts"></a>

O arquivo WordPress de configuração `wp-config.php` também lê valores de chaves e sais das propriedades do ambiente. Atualmente, essas propriedades são todas definidas como `test` pelo arquivo `wordpress.config` na pasta `.ebextensions`.

O salt de hash pode ser qualquer valor que atenda aos [requisitos de propriedade de ambiente](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console), mas você não deve armazená-lo no controle de origem. Use o console do Elastic Beanstalk para definir essas propriedades diretamente no ambiente.

**Para atualizar propriedades de ambiente**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

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

1. Em **Software (Software)**, escolha **Edit (Editar)**.

1. Para `Environment properties`, modifique as seguintes propriedades:
   + `AUTH_KEY`: o valor escolhido para `AUTH_KEY`.
   + `SECURE_AUTH_KEY`: o valor escolhido para `SECURE_AUTH_KEY`.
   + `LOGGED_IN_KEY`: o valor escolhido para `LOGGED_IN_KEY`.
   + `NONCE_KEY`: o valor escolhido para `NONCE_KEY`.
   + `AUTH_SALT`: o valor escolhido para `AUTH_SALT`.
   + `SECURE_AUTH_SALT`: o valor escolhido para `SECURE_AUTH_SALT`.
   + `LOGGED_IN_SALT`: o valor escolhido para `LOGGED_IN_SALT`.
   + `NONCE_SALT`: o valor escolhido para `NONCE_SALT`.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

**nota**  
A definição de propriedades no ambiente substitui os valores diretamente em `wordpress.config`.

## Remover restrições de acesso
<a name="php-hawordpress-tutorial-updateenv"></a>

O projeto de exemplo inclui o arquivo de configuração `loadbalancer-sg.config`. Ele cria um grupo de segurança e o atribui ao load balancer do ambiente, usando o endereço IP que você configurou no `dev.config`. Ele restringe o acesso HTTP na porta 80 às conexões da sua rede. Caso contrário, uma pessoa externa poderia se conectar ao seu site antes de você instalar WordPress e configurar sua conta de administrador.

Agora que você instalou WordPress, remova o arquivo de configuração para abrir o site para o mundo.

**Para remover a restrição e atualizar seu ambiente**

1. Exclua o arquivo `.ebextensions/loadbalancer-sg.config` de seu diretório de projeto.

   ```
   ~/wordpress-beanstalk$ rm .ebextensions/loadbalancer-sg.config
   ```

1. Criar um pacote de origem.

   ```
   ~/eb-wordpress$ zip ../wordpress-beanstalk-v2.zip -r * .[^.]*
   ```

Faça o upload do pacote de origem para o Elastic WordPress Beanstalk para implantá-lo em seu ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

## Configurar o grupo de Auto Scaling
<a name="php-hawordpress-tutorial-autoscaling"></a>

Por fim, configure o grupo de Auto Scaling do seu ambiente com uma contagem mínima de instâncias mais alta. Execute pelo menos duas instâncias em todos os momentos para evitar que os servidores da web no seu ambiente sejam um único ponto de falha. Isso também permite que você implante alterações sem colocar seu site fora do serviço.

**Para configurar o grupo de Auto Scaling de seu ambiente para alta disponibilidade**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Capacity (Capacidade)**, escolha **Edit (Editar)**.

1. Na seção **Auto Scaling group (Grupo de Auto Scaling)** defina **Min instances (Mínimo de instâncias)** como **2**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Para oferecer suporte a uploads de conteúdo em várias instâncias, o projeto demonstrativo usa o Amazon EFS para criar um sistema de arquivos compartilhados. Crie uma postagem no site e faça upload de conteúdo para armazená-lo no sistema de arquivos compartilhados. Visualize a publicação e atualize a página várias vezes para atingir ambas as instâncias e verificar se o sistema de arquivos compartilhado está funcionando.

## Atualizar WordPress
<a name="php-hawordpress-tutorial-upgrade"></a>

Para atualizar para uma nova versão do WordPress, faça backup do seu site e implante-o em um novo ambiente.

**Importante**  
Não use a funcionalidade de atualização em seus arquivos de origem WordPress nem atualize seus arquivos de origem para usar uma nova versão. Ambas as ações podem fazer com que sua postagem URLs retorne erros 404, mesmo que eles ainda estejam no banco de dados e no sistema de arquivos.

**Para atualizar WordPress**

1. No console do WordPress administrador, use a ferramenta de exportação para exportar suas publicações para um arquivo XML.

1. Implante e instale a nova versão do WordPress Elastic Beanstalk com as mesmas etapas que você usou para instalar a versão anterior. Para evitar o tempo de inatividade, é possível criar um ambiente com a nova versão.

1. Na nova versão, instale a ferramenta WordPress Importador no console administrativo e use-a para importar o arquivo XML contendo suas publicações. Se as postagens foram criadas pelo usuário administrador na versão antiga, as atribua para o usuário administrador no novo site em vez de tentar importar o usuário administrador.

1. Se você implantou a nova versão em um ambiente separado, faça uma troca de [CNAME](using-features.CNAMESwap.md) para redirecionar os usuários de um local antigo para o novo site.

## Limpeza
<a name="php-hawordpress-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

Além disso, é possível encerrar recursos do banco de dados que você criou fora do ambiente do Elastic Beanstalk. Ao encerrar uma instância de banco de dados do Amazon RDS, você poderá criar um snapshot e restaurar os dados em outra instância posteriormente.

**Para encerrar sua instância de banco de dados do RDS**

1. Abra o [console do Amazon RDS](https://console.aws.amazon.com/rds).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados.

1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Escolha se deseja criar um snapshot. Depois, escolha **Excluir**.

## Próximas etapas
<a name="php-hawordpress-tutorial-nextsteps"></a>

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

O aplicativo de exemplo usa os arquivos de configuração para especificar as configurações de PHP e criar uma tabela no banco de dados, se ainda não existir. Você também pode usar um arquivo de configuração para definir as configurações de security group das instâncias durante a criação do ambiente para evitar atualizações de configuração demoradas. Consulte [Personalização avançada de ambiente com arquivos de configuração (`.ebextensions`)](ebextensions.md) para obter mais informações.

Para desenvolvimento e teste, convém usar a funcionalidade do Elastic Beanstalk para adicionar uma instância de banco de dados gerenciada diretamente ao seu ambiente. Para obter instruções sobre como configurar um banco de dados no ambiente, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

Se você precisa de um banco de dados de alta performance, considere usar o [Amazon Aurora](https://aws.amazon.com/rds/aurora/). O Amazon Aurora é um mecanismo de banco de dados compatível com MySQL que oferece recursos de banco de dados comerciais a baixo custo. Para conectar seu aplicativo a outro banco de dados, repita as etapas de [configuração de grupo de segurança](php-ha-tutorial.md#php-hawrds-tutorial-database) e [atualize as propriedades de ambiente relacionadas ao RDS](php-ha-tutorial.md#php-hawrds-tutorial-configure). 

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.

# Implantar um site Drupal de alta disponibilidade com um banco de dados externo do Amazon RDS no Elastic Beanstalk
<a name="php-hadrupal-tutorial"></a>

Este tutorial mostra o processo de [execução de uma instância de banco de dados RDS](AWSHowTo.RDS.md) externa a. AWS Elastic Beanstalk Em seguida, ele descreve como configurar um ambiente de alta disponibilidade que executa um site do Drupal para se conectar a ele. O site usa o Amazon Elastic File System (Amazon EFS) como o armazenamento compartilhado para arquivos carregados. A execução de uma instância de banco de dados externa ao Elastic Beanstalk separa o banco de dados do ciclo de vida do seu ambiente e permite que você se conecte ao mesmo banco de dados a partir de vários ambientes, troque um banco de dados por outro ou execute uma implantação sem afetar seu banco de dados. blue/green 

**Topics**
+ [Pré-requisitos](#php-hadrupal-tutorial-prereqs)
+ [Executar uma instância de banco de dados no Amazon RDS](#php-hadrupal-tutorial-database)
+ [Iniciar um ambiente do Elastic Beanstalk](#php-hadrupal-tutorial-launch)
+ [Definir configurações de segurança e propriedades de ambiente](#php-hadrupal-tutorial-configure)
+ [Configurar e implantar seu aplicativo](#php-hadrupal-tutorial-deploy)
+ [Instalar o Drupal](#php-hadrupal-tutorial-install)
+ [Atualizar a configuração de Drupal e remover as restrições de acesso](#php-hadrupal-tutorial-updateenv)
+ [Configurar o grupo de Auto Scaling](#php-hadrupal-tutorial-autoscaling)
+ [Limpeza](#php-hadrupal-tutorial-cleanup)
+ [Próximas etapas](#php-hadrupal-tutorial-nextsteps)

## Pré-requisitos
<a name="php-hadrupal-tutorial-prereqs"></a>

Este tutorial pressupõe que você tenha conhecimento das operações básicas e do console do Elastic Beanstalk. Caso ainda não tenha, siga as instruções em [Saiba como começar a usar o Elastic Beanstalk](GettingStarted.md) para iniciar seu primeiro ambiente do Elastic Beanstalk.

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt (\$1) e pelo nome do diretório atual, quando apropriado.

```
~/eb-project$ this is a command
this is output
```

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode [instalar o subsistema Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obter uma versão do Ubuntu e Bash integrada ao Windows.

Os procedimentos neste tutorial para tarefas do Amazon Relational Database Service (Amazon RDS) assumem que você esteja iniciando recursos em uma [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) padrão. Todas as novas contas incluem uma VPC padrão em cada região. Se você não tem uma VPC padrão, os procedimentos podem variar. Consulte [Usar o Elastic Beanstalk com o Amazon RDS](AWSHowTo.RDS.md) para obter instruções sobre EC2 plataformas VPC clássicas e personalizadas.

A aplicação demonstrativa usa o Amazon EFS. Ele só funciona em AWS regiões que oferecem suporte ao Amazon EFS. Para saber mais sobre o suporte a AWS regiões, consulte [Amazon Elastic File System Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/elasticfilesystem.html) no. *Referência geral da AWS*

Se a plataforma do seu ambiente do Elastic Beanstalk usa PHP 7.4 ou anterior, recomendamos que você use o Drupal versão 8.9.13 para este tutorial. Para plataformas instaladas com PHP 8.0 ou posterior, recomendamos que você use o Drupal 9.1.5.

Para obter mais informações sobre versões do Drupal e as versões do PHP compatíveis, consulte [Requisitos do PHP](https://www.drupal.org/docs/system-requirements/php-requirements#php_required) no site do Drupal. [As versões principais recomendadas pelo Drupal estão listadas no site https://www.drupal. org/project/drupal](https://www.drupal.org/project/drupal). 

## Executar uma instância de banco de dados no Amazon RDS
<a name="php-hadrupal-tutorial-database"></a>

Para usar um banco de dados externo com uma aplicação em execução no Elastic Beanstalk, primeiro execute uma instância de banco de dados com o Amazon RDS. Quando uma instância é executada com o Amazon RDS, ela é completamente independente do Elastic Beanstalk e dos seus ambientes do Elastic Beanstalk e não será encerrada nem monitorada pelo Elastic Beanstalk.

Use o console do Amazon RDS para executar uma instância de banco de dados **MySQL** Multi-AZ. Escolha uma implantação Multi-AZ para garantir que seu banco de dados execute o failover e continue disponível se a instância de banco de dados de origem ficar fora de serviço.

**Para executar uma instância de banco de dados do RDS em uma VPC padrão**

1. Abra o [console do RDS](https://console.aws.amazon.com/rds/home).

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

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

1. Escolha **Standard Create (Criação padrão)**.
**Importante**  
Não escolha **Easy Create (Criação fácil)**. Se o escolher, você não poderá definir as configurações necessárias para iniciar esse banco de dados do RDS.

1. Em **Additional configuration (Configuração adicional)**, para **Initial database name (Nome do banco de dados inicial)**, digite **ebdb**. 

1. Revise as configurações padrão e ajuste essas configurações de acordo com seus requisitos específicos. Preste atenção às seguintes opções:
   + **DB instance class** (Classe de instância de banco de dados): escolha um tamanho de instância que tem uma quantidade apropriada de memória e energia de CPU para sua workload.
   + **Implantação Multi-AZ** — Para alta disponibilidade, defina isso como **Criar um nó Replica/Reader Aurora em uma** AZ diferente.
   + **Master username (Nome do usuário principal)** e **Master password (Senha principal)**:o nome de usuário do banco de dados e senha. Anote essas configurações porque você vai usá-las mais tarde.

1. Verifique as configurações padrão para as opções restantes e selecione **Create database (Criar banco de dados)**.

Em seguida, modifique o security group anexado à sua instância de banco de dados para permitir o tráfego de entrada na porta apropriada. Este é o mesmo grupo de segurança a ser anexado ao ambiente do Elastic Beanstalk mais tarde, para que a regra adicionada conceda permissão de entrada a outros recursos no mesmo grupo de segurança.

**Para modificar as regras de entrada no grupo de segurança anexado à instância do RDS**

1. Abra o [ console do Amazon RDS](https://console.aws.amazon.com/rds/home).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha o nome da sua instância de banco de dados para visualizar detalhes.

1. Na seção **Conectividade**, anote as **Sub-redes**, os **Grupos de segurança** e o **Endpoint** que são exibidos nesta página. Faça isso para poder usar essas informações mais tarde.

1. Em **Security** (Segurança), você pode ver o grupo de segurança associado à instância de banco de dados. Abra o link para ver o grupo de segurança no EC2 console da Amazon.

1. Nos detalhes do grupo de segurança, escolha a guia **Inbound (Entrada)**.

1. Escolha **Editar**.

1. Escolha **Add Rule**.

1. Para **Tipo**, escolha o mecanismo de banco de dados usado pelo aplicativo.

1. Em **Source (Origem)**, digite **sg-** para exibir uma lista dos grupos de segurança disponíveis. Escolha o grupo de segurança associado ao grupo do Auto Scaling usado com seu ambiente do Elastic Beanstalk. Isso é para que as EC2 instâncias da Amazon no ambiente possam ter acesso ao banco de dados.  
![\[Imagem da tela para editar as regras de entrada para um grupo de segurança no EC2 console da Amazon.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/ec2-securitygroup-rds.png)

1. Escolha **Salvar**.

A criação de uma instância de banco de dados leva cerca de 10 minutos. Enquanto isso, inicie o ambiente do Elastic Beanstalk.

## Iniciar um ambiente do Elastic Beanstalk
<a name="php-hadrupal-tutorial-launch"></a>

Use o console do Elastic Beanstalk para criar um ambiente do Elastic Beanstalk. Escolha a configuração da Plataforma **PHP** e aceite as configurações padrão e código de exemplo. Depois de iniciar o ambiente, você poderá configurá-lo para conectar-se ao banco de dados e implantar o código Drupal no ambiente.

**Para iniciar um ambiente (console)**

1. [Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? Nome do aplicativo = Tutoriais](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced) e tipo de ambiente = LoadBalanced

1. Em **Platform (Plataforma)**, selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.

1. Para **Application code**, escolha **Sample application**.

1. Selecione **Review and launch**.

1. Examine as opções disponíveis. Escolha a opção disponível que deseja usar e, quando estiver pronto, escolha **Create app (Criar aplicativo)**.

A criação de ambiente leva cerca de 5 minutos e cria os seguintes recursos:
+ **EC2 instância** — Uma máquina virtual Amazon Elastic Compute Cloud (Amazon EC2) configurada para executar aplicativos web na plataforma que você escolher.

  Cada plataforma executa um conjunto específico de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou o NGINX como um proxy reverso que fica na frente da aplicação Web, encaminha solicitações para ela, atende ativos estáticos e gera logs de acesso e de erro.
+ **Grupo de segurança da instância** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do balanceador de carga chegue à EC2 instância que executa seu aplicativo web. Por padrão, o tráfego não é permitido em outras portas.
+ **Balanceador de carga**: um balanceador de carga do Elastic Load Balancing configurado para distribuir solicitações para as instâncias que executam a aplicação. Um load balancer também elimina a necessidade de expor suas instâncias diretamente à Internet.
+ **Grupo de segurança do balanceador de carga** — Um grupo EC2 de segurança da Amazon configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP da Internet acesse o load balancer. Por padrão, o tráfego não é permitido em outras portas.
+ **Grupo de Auto Scaling**: grupo de Auto Scaling configurado para substituir uma instância se ela for encerrada ou ficar indisponível.
+ **Bucket do Amazon S3**: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
+ ** CloudWatch Alarmes da Amazon** — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e que são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
+ **CloudFormation stack** — O Elastic CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no [console do CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nome de domínio** — Um nome de domínio que é direcionado para seu aplicativo da web no formulário **subdomain*. *region*.elasticbeanstalk.com*.
**Segurança de domínios**  
Para aumentar a segurança de suas aplicações do Elastic Beanstalk, o domínio *elasticbeanstalk.com* é registrado na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/).  
Se precisar definir cookies confidenciais no nome de domínio padrão para suas aplicações Elastic Beanstalk, recomendamos usar cookies com um prefixo `__Host-` para maior segurança. Essa prática defende seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Todos esses recursos são gerenciados pelo Elastic Beanstalk. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele. A instância de banco de dados RDS que você executou está fora do seu ambiente, portanto você é responsável por gerenciar o ciclo de vida dela.

**nota**  
O bucket do Amazon S3 que o Elastic Beanstalk cria é compartilhado entre ambientes e não é excluído durante o encerramento do ambiente. Para obter mais informações, consulte [Usar o Elastic Beanstalk com o Amazon S3](AWSHowTo.S3.md).

## Definir configurações de segurança e propriedades de ambiente
<a name="php-hadrupal-tutorial-configure"></a>

Adicione o security group da instância de banco de dados ao seu ambiente em execução. Esse procedimento faz com que o Elastic Beanstalk provisione novamente todas as instâncias no ambiente com o grupo de segurança adicional anexado.

**Para adicionar um security group ao seu ambiente**
+ Execute um destes procedimentos:
  + Como adicionar um grupo de segurança usando o console do Elastic Beanstalk

    1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

    1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

    1. No painel de navegação, escolha **Configuration (Configuração)**.

    1. Na categoria de configuração **Instances (Instâncias)**, escolha **Edit (Editar)**.

    1. Em **grupos EC2 de segurança**, escolha o grupo de segurança a ser anexado às instâncias, além do grupo de segurança de instâncias que o Elastic Beanstalk cria.

    1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

    1. Leia o aviso e escolha **Confirm**.
  + Para adicionar um grupo de segurança usando um [arquivo de configuração](ebextensions.md), use o exemplo de arquivo [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config).

Em seguida, use as propriedades do ambiente para passar as informações de conexão para o ambiente. A aplicação demonstrativa usa um conjunto padrão de propriedades que correspondem àquelas que o Elastic Beanstalk configura quando você provisiona um banco de dados no ambiente.

**Como configurar as propriedades do ambiente para uma instância de banco de dados do Amazon RDS**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Na seção **Environment properties**, defina as variáveis que seu aplicativo lê para construir uma string de conexão. Para compatibilidade com ambientes que têm uma instância de banco de dados do RDS integrada, use os seguintes nomes e valores. É possível encontrar todos os valores, exceto sua senha, no [console do RDS](https://console.aws.amazon.com/rds/home).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/php-hadrupal-tutorial.html)  
![\[Seção de configuração de propriedades de ambiente com a adição de propriedades do RDS\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/environment-cfg-envprops-rds.png)

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Após a instalação do Drupal, você precisa se conectar à instância com o SSH para recuperar alguns detalhes de configuração. Atribua uma chave SSH às instâncias do ambiente.

**Para configurar SSH**

1. Se você ainda não criou um par de chaves, abra a [página de pares de chaves](https://console.aws.amazon.com/ec2/v2/home#KeyPairs) do EC2 console da Amazon e siga as instruções para criar um.

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Em **Security (Segurança)**, escolha **Edit (Editar)**.

1. Para **par de EC2 chaves**, escolha seu par de chaves.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

## Configurar e implantar seu aplicativo
<a name="php-hadrupal-tutorial-deploy"></a>

[Para criar um projeto do Drupal para o Elastic Beanstalk, baixe o código-fonte do Drupal e combine-o com os arquivos no repositório aws-samples/ em. eb-php-drupal](https://github.com/aws-samples/eb-php-drupal) GitHub

**Para criar um projeto Drupal**

1. Execute o comando a seguir para baixar o Drupal em *www.drupal.org/download*. Para saber mais sobre downloads, consulte o [site do Drupal](https://www.drupal.org/download).

   Se a plataforma do seu ambiente do Elastic Beanstalk usa PHP 7.4 ou anterior, recomendamos que você faça o download da versão 8.9.13 do Drupal para este tutorial. Execute o comando a seguir para fazer o download.

   ```
   ~$ curl https://ftp.drupal.org/files/projects/drupal-8.9.13.tar.gz -o drupal.tar.gz
   ```

   Se sua plataforma usa PHP 8.0 ou posterior, recomendamos que você faça o download do Drupal 9.1.5. Você pode usar este comando para fazer o download.

   ```
   ~$ curl https://ftp.drupal.org/files/projects/drupal-9.1.5.tar.gz -o drupal.tar.gz
   ```

   Para obter mais informações sobre versões do Drupal e as versões do PHP compatíveis, consulte [Requisitos do PHP](https://www.drupal.org/docs/system-requirements/php-requirements#php_required) na documentação oficial do Drupal. As versões básicas que o Drupal recomenda estão listadas no site [do Drupal](https://www.drupal.org/project/drupal).

1. Use o seguinte comando para fazer o download dos arquivos de configuração do repositório de exemplo:

   ```
   ~$ wget https://github.com/aws-samples/eb-php-drupal/releases/download/v1.1/eb-php-drupal-v1.zip
   ```

1. Extraia o Drupal e mude o nome da pasta.

   Se você baixou o Drupal 8.9.13:

   ```
    ~$ tar -xvf drupal.tar.gz
    ~$ mv drupal-8.9.13 drupal-beanstalk
    ~$ cd drupal-beanstalk
   ```

   Se você baixou o Drupal 9.1.5:

   ```
    ~$ tar -xvf drupal.tar.gz
    ~$ mv drupal-9.1.5 drupal-beanstalk
    ~$ cd drupal-beanstalk
   ```

1. Extraia os arquivos de configuração durante a instalação do Drupal.

   ```
    ~/drupal-beanstalk$ unzip ../eb-php-drupal-v1.zip
     creating: .ebextensions/
     inflating: .ebextensions/dev.config
     inflating: .ebextensions/drupal.config
     inflating: .ebextensions/efs-create.config
     inflating: .ebextensions/efs-filesystem.template
     inflating: .ebextensions/efs-mount.config
     inflating: .ebextensions/loadbalancer-sg.config
     inflating: LICENSE
     inflating: README.md
     inflating: beanstalk-settings.php
   ```

Verifique se a estrutura da pasta `drupal-beanstalk` está correta, conforme exibido.

```
drupal-beanstalk$ tree -aL 1
.
├── autoload.php
├── beanstalk-settings.php
├── composer.json
├── composer.lock
├── core
├── .csslintrc
├── .ebextensions
├── .ebextensions
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── example.gitignore
├── .gitattributes
├── .htaccess
├── .ht.router.php
├── index.php
├── LICENSE
├── LICENSE.txt
├── modules
├── profiles
├── README.md
├── README.txt
├── robots.txt
├── sites
├── themes
├── update.php
├── vendor
└── web.config
```

O arquivo `beanstalk-settings.php` do repositório do projeto usa as variáveis de ambiente que você definiu na etapa anterior para configurar a conexão do banco de dados. A pasta `.ebextensions` contém arquivos de configuração que criam recursos adicionais no ambiente do Elastic Beanstalk.

Os arquivos de configuração devem ser modificados para funcionar com sua conta. Substitua os valores do espaço reservado nos arquivos pelos apropriados IDs e crie um pacote de origem.

**Para atualizar os arquivos de configuração e criar um pacote de origem.**

1. Modifique os arquivos de configuração da seguinte forma.
   + `.ebextensions/dev.config`: restringe o acesso ao seu ambiente para o seu endereço IP a fim de protegê-lo durante o processo de instalação do Drupal. Substitua o endereço IP de espaço reservado próximo à parte superior do arquivo pelo seu endereço IP público.
   + `.ebextensions/efs-create.config`: cria um sistema de arquivos EFS e pontos de montagem em cada zona de disponibilidade/sub-rede na VPC. Identifique sua VPC e sub-rede padrão no console IDs da Amazon [VPC](https://console.aws.amazon.com/vpc/home#subnets:filter=default).

1. Crie um [pacote de origem](applications-sourcebundle.md) com os arquivos em sua pasta de projeto. O comando a seguir cria um pacote de origem chamado `drupal-beanstalk.zip`. Ele exclui arquivos na pasta `vendor`, que tomam muito espaço e não são necessários para implantação da aplicação no Elastic Beanstalk.

   ```
   ~/eb-drupal$ zip ../drupal-beanstalk.zip -r * .[^.]* -x "vendor/*"
   ```

Faça upload do pacote de origem para o Elastic Beanstalk para implantar o Drupal no ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

## Instalar o Drupal
<a name="php-hadrupal-tutorial-install"></a>

**Para concluir a instalação do Drupal**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha o URL do ambiente para abrir seu site em um navegador. Você será redirecionado para um assistente de instalação do Drupal, pois o site ainda não foi configurado.

1. Realize a instalação padrão usando as seguintes configurações para o banco de dados:
   + **Nome do banco de dados**: o **DB Name (Nome do banco de dados)** exibido no console do Amazon RDS.
   + **Nome de usuário e senha do banco de dados**: os valores de **Master username (Nome do usuário principal)** e **Master Password (Senha principal)** inseridos ao criar o banco de dados.
   + **Advanced Options (Opções avançadas) > Host**: o **Endpoint** da instância de banco de dados exibida no console do Amazon RDS.

A instalação leva cerca de um minuto para ser concluída.

## Atualizar a configuração de Drupal e remover as restrições de acesso
<a name="php-hadrupal-tutorial-updateenv"></a>

O processo de instalação do Drupal criou um arquivo chamado `settings.php` na pasta `sites/default` na instância. Você precisa desse arquivo em seu código-fonte para evitar redefinir seu site em implantações subsequentes, mas o arquivo atualmente contém segredos os quais você não deseja confirmar a origem. Conecte-se à instância do aplicativo para recuperar informações do arquivo de configurações.

**Para conectar sua instância de aplicativo com SSH**

1. Abra a [página de instâncias](https://console.aws.amazon.com/ec2/v2/home#Instances:sort=tag:Name) do EC2 console da Amazon.

1. Escolha a instância do aplicativo. É a que recebeu o nome do seu ambiente do Elastic Beanstalk.

1. Selecione **Conectar**.

1. Siga as instruções para conectar a instância com SSH. O comando será semelhante à seguinte.

   ```
   $ ssh -i ~/.ssh/mykey ec2-user@ec2-00-55-33-222.us-west-2.compute.amazonaws.com
   ```

Obtenha o id do diretório de sincronização da última linha do arquivo de configurações.

```
[ec2-user ~]$ tail -n 1 /var/app/current/sites/default/settings.php
$config_directories['sync'] = 'sites/default/files/config_4ccfX2sPQm79p1mk5IbUq9S_FokcENO4mxyC-L18-4g_xKj_7j9ydn31kDOYOgnzMu071Tvc4Q/sync';
```

O arquivo também contém os sites da chave de hash atual, mas você pode ignorar o valor atual e usar seu próprio.

Atribua o caminho do diretório de sincronização e chave de hash para as propriedades de ambiente. O arquivo de configurações personalizadas do repositório do projeto lê essas propriedades para configurar o site durante a implantação, além das propriedades de conexão de banco de dados que você definiu anteriormente.

**Propriedades de configuração do Drupal**
+ `SYNC_DIR`: o caminho para o diretório de sincronização.
+ `HASH_SALT`: qualquer valor de string que atenda aos [requisitos de propriedade de ambiente](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console).

**Para configurar variáveis de ambiente no console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

1. Role para baixo até **Variáveis de ambiente de runtime**.

1. Selecione **Adicionar variável de ambiente**.

1. Em **Origem**, selecione **Texto sem formatação**.
**nota**  
Os valores do **Secrets Manager** e do **SSM Parameter Store** no menu suspenso servem para configurar variáveis de ambiente como segredos para armazenar dados sensíveis, como credenciais e chaves de API. Para obter mais informações, consulte [Usando o Elastic AWS Secrets Manager AWS Systems Manager Beanstalk com um Parameter Store](AWSHowTo.secrets.md). 

1. Insira os pares de **Nome da variável de ambiente** e **Valores da variável de ambiente**.

1. Se for necessário adicionar mais variáveis, repita a **Etapa 6** até a **Etapa 8**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Finalmente, o projeto de amostra inclui um arquivo de configuração (`loadbalancer-sg.config`) que cria um security group e o atribui ao load balancer do ambiente, usando o endereço IP configurado em `dev.config` para restringir o acesso HTTP na porta 80 às conexões da sua rede. Caso contrário, uma parte externa pode se conectar em seu sites antes de você ter instalado o Drupal e configurado sua conta de admin.

**Para atualizar a configuração do Drupal e remover restrições de acesso**

1. Exclua o arquivo `.ebextensions/loadbalancer-sg.config` de seu diretório de projeto.

   ```
   ~/drupal-beanstalk$ rm .ebextensions/loadbalancer-sg.config
   ```

1. Copie o arquivo `settings.php` personalizado na pasta dos sites.

   ```
   ~/drupal-beanstalk$ cp beanstalk-settings.php sites/default/settings.php
   ```

1. Criar um pacote de origem.

   ```
   ~/eb-drupal$ zip ../drupal-beanstalk-v2.zip -r * .[^.]* -x "vendor/*"
   ```

Faça upload do pacote de origem para o Elastic Beanstalk para implantar o Drupal no ambiente.

**Para implantar um pacote de origem**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Na página de visão geral do ambiente, escolha **Upload and deploy (Fazer upload e implantar)**.

1. Use a caixa de diálogo na tela para carregar o pacote de origem.

1. Escolha **Deploy (Implantar)**.

1. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

## Configurar o grupo de Auto Scaling
<a name="php-hadrupal-tutorial-autoscaling"></a>

Por fim, configure o grupo de Auto Scaling do seu ambiente com uma contagem mínima de instâncias mais alta. Execute pelo menos duas instâncias o tempo todo para impedir que os servidores Web em seu ambiente sejam um ponto único de falha e para permitir que você implante alterações sem colocar seu site fora do serviço.

**Para configurar o grupo de Auto Scaling de seu ambiente para alta disponibilidade**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Capacity (Capacidade)**, escolha **Edit (Editar)**.

1. Na seção **Auto Scaling group (Grupo de Auto Scaling)** defina **Min instances (Mínimo de instâncias)** como **2**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Para oferecer suporte a uploads de conteúdo em várias instâncias, o projeto demonstrativo usa o Amazon Elastic File System para criar um sistema de arquivos compartilhados. Crie uma postagem no site e faça upload de conteúdo para armazená-lo no sistema de arquivos compartilhados. Visualize a publicação e atualize a página várias vezes para atingir ambas as instâncias e verificar se o sistema de arquivos compartilhado está funcionando.

## Limpeza
<a name="php-hadrupal-tutorial-cleanup"></a>

Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. [O Elastic Beanstalk exclui todos os recursos AWS relacionados, [como instâncias da EC2 Amazon](using-features.managing.ec2.md), [instâncias de banco de dados, balanceadores de carga[,](using-features.managing.elb.md)](using-features.managing.db.md) grupos de segurança e alarmes.](using-features.alarms.md#using-features.alarms.title) 

Como a remoção de recursos não exclui a aplicação Elastic Beanstalk, é possível criar ambientes para a aplicação a qualquer momento.

**Para encerrar seu ambiente Elastic Beanstalk do console**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. Escolha **Actions** (Ações) e depois **Terminate Environment** (Encerrar ambiente).

1. Use a caixa de diálogo na tela para confirmar o encerramento do ambiente.

Além disso, é possível encerrar recursos do banco de dados que você criou fora do ambiente do Elastic Beanstalk. Ao encerrar uma instância de banco de dados do Amazon RDS, você poderá criar um snapshot e restaurar os dados em outra instância posteriormente.

**Para encerrar sua instância de banco de dados do RDS**

1. Abra o [console do Amazon RDS](https://console.aws.amazon.com/rds).

1. Escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados.

1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Escolha se deseja criar um snapshot. Depois, escolha **Excluir**.

## Próximas etapas
<a name="php-hadrupal-tutorial-nextsteps"></a>

À medida que você desenvolva a aplicação, provavelmente vai precisar de uma maneira de gerenciar ambientes e implantá-la sem criar manualmente um arquivo .zip e carregá-la no console do Elastic Beanstalk. A interface de [linha de comando do Elastic Beanstalk](eb-cli3.md) (EB CLI easy-to-use) fornece comandos para criar, configurar e implantar aplicativos nos ambientes do Elastic Beanstalk a partir da linha de comando.

O aplicativo de exemplo usa os arquivos de configuração para especificar as configurações de PHP e criar uma tabela no banco de dados, se ainda não existir. Você também pode usar um arquivo de configuração para definir as configurações de security group da instância durante a criação do ambiente para evitar atualizações de configuração demoradas. Consulte [Personalização avançada de ambiente com arquivos de configuração (`.ebextensions`)](ebextensions.md) para obter mais informações.

Para desenvolvimento e teste, convém usar a funcionalidade do Elastic Beanstalk para adicionar uma instância de banco de dados gerenciada diretamente ao seu ambiente. Para obter instruções sobre como configurar um banco de dados no ambiente, consulte [Adição de um banco de dados ao seu ambiente do Elastic Beanstalk](using-features.managing.db.md).

Se você precisa de um banco de dados de alta performance, considere usar o [Amazon Aurora](https://aws.amazon.com/rds/aurora/). O Amazon Aurora é um mecanismo de banco de dados compatível com MySQL que oferece recursos de banco de dados comerciais a baixo custo. Para conectar seu aplicativo a outro banco de dados, repita as etapas de [configuração de grupo de segurança](php-ha-tutorial.md#php-hawrds-tutorial-database) e [atualize as propriedades de ambiente relacionadas ao RDS](php-ha-tutorial.md#php-hawrds-tutorial-configure). 

Por fim, se você planeja usar seu aplicativo em um ambiente de produção, [configure um nome de domínio personalizado](customdomains.md) para seu ambiente e [habilite HTTPS](configuring-https.md) para conexões seguras.