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á.
Implantar um site Drupal de alta disponibilidade com um banco de dados externo do Amazon RDS no Elastic Beanstalk
Este tutorial mostra o processo de lançamento de uma instância de banco de dados do RDS 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 em vários ambientes, troque um banco de dados por outro ou realize uma implantação sem afetar seu banco de dados. blue/green
Seções
Pré-requisitos
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 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 ($) 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
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 (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 para obter instruções EC2-Classic e plataformas VPC 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 às AWS regiões, consulte Endpoints e cotas do Amazon Elastic File System 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
Executar uma instância de banco de dados no Amazon RDS
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 iniciar uma instância de banco de Multi-AZ dados MySQL. A escolha de uma Multi-AZ implantação garante que seu banco de dados sofra um failover e continue disponível se a instância de banco de dados de origem sair de serviço.
Para executar uma instância de banco de dados do RDS em uma VPC padrão
-
Abra o console do RDS
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Selecione Criar banco de dados.
-
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.
-
Em Additional configuration (Configuração adicional), para Initial database name (Nome do banco de dados inicial), digite
ebdb. -
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.
-
Multi-AZ implantação — Para alta disponibilidade, defina isso como Criar um Replica/Reader nó do 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.
-
-
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
-
Abra o console do Amazon RDS
. -
Escolha Databases (Bancos de dados).
-
Escolha o nome da sua instância de banco de dados para visualizar detalhes.
-
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.
-
Em Security (Segurança), você pode ver o grupo de segurança associado à instância de banco de dados. Abra o link para visualizar o grupo de segurança no console do Amazon EC2.
-
Nos detalhes do grupo de segurança, escolha a guia Inbound (Entrada).
-
Escolha Editar.
-
Escolha Add Rule.
-
Para Tipo, escolha o mecanismo de banco de dados usado pelo aplicativo.
-
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 instâncias do Amazon EC2 no ambiente possam ter acesso ao banco de dados.
-
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
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)
-
Abra o console do Elastic Beanstalk usando este link pré-configurado: console.aws.amazon. com/elasticbeanstalk/home #/Novo aplicativo? Nome do aplicativo = Tutoriais e tipo de ambiente = LoadBalanced
-
Em Platform (Plataforma), selecione a plataforma e a ramificação da plataforma que correspondem à linguagem usada pelo seu aplicativo.
-
Para Application code, escolha Sample application.
-
Selecione Review and launch.
-
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:
-
Beanstalk Standard — Para um ambiente executado no Amazon Elastic Compute Cloud (Amazon EC2), o Elastic Beanstalk provisiona os seguintes recursos:
-
Instância EC2 — Uma máquina virtual 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 de instância: um grupo de segurança do Amazon EC2 configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do load balancer chegue à instância do EC2 que executa seu aplicativo Web. Por padrão, o tráfego não é permitido em outras portas.
-
Grupo de segurança do balanceador de carga: um grupo de segurança do Amazon EC2 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.
-
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 estiver muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.
-
-
Cluster Beanstalk — Para um ambiente executado no Amazon EKS, o Elastic Beanstalk provisiona os seguintes recursos:
-
Cluster Amazon EKS — Um cluster Amazon EKS que o Elastic Beanstalk cria e opera. Ambientes na mesma conta que usam as mesmas sub-redes compartilham um cluster.
-
Computação — Capacidade de nós fornecida pelo Amazon EKS Auto Mode, que adiciona e remove nós para caber nas réplicas de aplicativos programadas no cluster.
-
Funções do IAM — As funções de cluster e node que você fornece para o Amazon EKS e a função de observabilidade que o Elastic Beanstalk usa para publicar as métricas, os logs e os rastreamentos do ambiente.
Para obter mais informações sobre essa infraestrutura, consulteArquitetura Beanstalk Cluster.
-
-
Balanceador de carga — Um balanceador de carga que distribui as solicitações recebidas em seu aplicativo. Um balanceador de carga também elimina a necessidade de expor seu aplicativo diretamente à Internet.
-
Bucket do Amazon S3: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.
-
CloudFormation stack — O Elastic Beanstalk é usado CloudFormation para iniciar os recursos em seu ambiente e propagar mudanças de configuração. Os recursos são definidos em um modelo que você pode visualizar no console do CloudFormation
. -
Nome de domínio — Um nome de domínio que direciona para seu aplicativo 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)
. 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 Set-Cookiepágina na Rede de Desenvolvedores da Mozilla.
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.
Definir configurações de segurança e propriedades de ambiente
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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
No painel de navegação, escolha Configuration (Configuração).
-
Na categoria de configuração Instances (Instâncias), escolha Edit (Editar).
-
Em EC2 security groups (Grupos de segurança do EC2), escolha o grupo de segurança a ser anexado às instâncias, além do grupo de segurança da instância que o Elastic Beanstalk criará.
-
Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.
-
Leia o aviso e escolha Confirm.
-
Para adicionar um grupo de segurança usando um arquivo de configuração, use o exemplo de arquivo
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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
No painel de navegação, escolha Configuration (Configuração).
-
Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).
-
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
. Nome da propriedade Descrição Valor da propriedade RDS_HOSTNAMEO 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_PORTA 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_NAMEO nome do banco de dado,
ebdb.Na guia Configuration (Configuração) no console do Amazon RDS: DB Name (Nome do banco de dados).
RDS_USERNAMEO 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_PASSWORDA senha que você configurou para seu banco de dados.
Não disponível para referência no console do Amazon RDS.
-
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
-
Se você ainda não tiver criado um par de chaves, abra a página de pares de chaves
do console do Amazon EC2 e siga as instruções para criar um. Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
No painel de navegação, escolha Configuration (Configuração).
-
Em Security (Segurança), escolha Edit (Editar).
-
Para EC2 key pair (Par de chaves EC2), escolha o par de chaves.
-
Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.
Configurar e implantar seu aplicativo
Para criar um projeto Drupal para o Elastic Beanstalk, baixe o código-fonte do Drupal e combine-o com os arquivos no repositório aws- -php-drupal ativado. samples/eb
Para criar um projeto Drupal
-
Execute o comando a seguir para baixar o Drupal em www.drupal. org/download. Para saber mais sobre downloads, consulte o site do Drupal
. 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.gzSe 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.gzPara obter mais informações sobre versões do Drupal e as versões do PHP compatíveis, consulte Requisitos do PHP
na documentação oficial do Drupal. As versões básicas que o Drupal recomenda estão listadas no site do Drupal . -
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 -
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-beanstalkSe você baixou o Drupal 9.1.5:
~$tar -xvf drupal.tar.gz~$mv drupal-9.1.5 drupal-beanstalk~$cd drupal-beanstalk -
Extraia os arquivos de configuração durante a instalação do Drupal.
~/drupal-beanstalk$unzip ../eb-php-drupal-v1.zipcreating: .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 com IDs apropriados e crie um pacote de origem.
Para atualizar os arquivos de configuração e criar um pacote de origem.
-
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 os IDs de sua VPC padrão e sub-rede no console da Amazon VPC.
-
-
Crie um pacote de origem 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 pastavendor, 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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
-
Na página de visão geral do ambiente, escolha Upload and deploy (Fazer upload e implantar).
-
Use a caixa de diálogo na tela para carregar o pacote de origem.
-
Escolha Deploy (Implantar).
-
Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.
Instalar o Drupal
Para concluir a instalação do Drupal
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
-
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.
-
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
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
-
Abra a página instâncias
do console do Amazon EC2. -
Escolha a instância do aplicativo. É a que recebeu o nome do seu ambiente do Elastic Beanstalk.
-
Selecione Conectar.
-
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.
Para configurar variáveis de ambiente no console do Elastic Beanstalk
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
No painel de navegação, escolha Configuration (Configuração).
-
Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).
-
Role para baixo até Variáveis de ambiente de runtime.
-
Selecione Adicionar variável de ambiente.
-
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 Beanstalk com AWS Secrets Manager and AWS Systems Manager Parameter Store.
-
Insira os pares de Nome da variável de ambiente e Valores da variável de ambiente.
-
Se for necessário adicionar mais variáveis, repita a Etapa 6 até a Etapa 8.
-
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
-
Exclua o arquivo
.ebextensions/loadbalancer-sg.configde seu diretório de projeto.~/drupal-beanstalk$rm .ebextensions/loadbalancer-sg.config -
Copie o arquivo
settings.phppersonalizado na pasta dos sites.~/drupal-beanstalk$cp beanstalk-settings.php sites/default/settings.php -
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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
-
Na página de visão geral do ambiente, escolha Upload and deploy (Fazer upload e implantar).
-
Use a caixa de diálogo na tela para carregar o pacote de origem.
-
Escolha Deploy (Implantar).
-
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
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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
No painel de navegação, escolha Configuration (Configuração).
-
Na categoria de configuração Capacity (Capacidade), escolha Edit (Editar).
-
Na seção Auto Scaling group (Grupo de Auto Scaling) defina Min instances (Mínimo de instâncias) como
2. -
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
Depois de terminar de trabalhar com o código de demonstração, você pode encerrar seu ambiente. O Elastic Beanstalk exclui todos os AWS recursos relacionados, como instâncias do Amazon EC2, instâncias de banco de dados, balanceadores de carga, grupos de segurança e alarmes.
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
Abra o console do Elastic Beanstalk e
, na lista Regiões, selecione seu. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
-
Escolha Actions (Ações) e depois Terminate Environment (Encerrar ambiente).
-
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
-
Abra o console do Amazon RDS
. -
Escolha Databases (Bancos de dados).
-
Escolha a instância de banco de dados.
-
Escolha Ações e, em seguida, escolha Excluir.
-
Escolha se deseja criar um snapshot. Depois, escolha Excluir.
Próximas etapas
À 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 Linhas de Comando do Elastic Beanstalk (CLI do EB) oferece comandos fáceis de usar para criar, configurar e implantar aplicações em ambientes do Elastic Beanstalk na 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 do ambiente com arquivos de configuração (.ebextensions) 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.
Se você precisa de um banco de dados de alta performance, considere usar o Amazon Aurora
Por fim, se você planeja usar seu aplicativo em um ambiente de produção, configure um nome de domínio personalizado para seu ambiente e habilite HTTPS para conexões seguras.