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 uma aplicação Symfony no Elastic Beanstalk
O Symfony
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
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
Para obter informações sobre suporte e manutenção do Symfony, consulte o tópico lançamentos do symfony
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.
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.
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.
Instalar o Symfony e gerar um site
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
Implantar o aplicativo
Acesse o diretório do projeto.
~$ cd eb-symfony
Crie um pacote de origem 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
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.
nota
Para otimizar mais o pacote de origem, inicie um repositório Git e use o comando git
archivepara 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
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
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).
-
Para Document Root (Raiz do documento), insira
/public. -
Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.
-
Quando a atualização for concluída, clique no URL para reabrir seu site no navegador.
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.
Próximas etapas
Para obter mais informações sobre Symfony, consulte O que é o Symfony?
À 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.
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.
exemplo. ebextensions/composer.configuração
option_settings: aws:elasticbeanstalk:container:php:phpini: document_root: /public
Para obter mais informações, consulte Personalização avançada do ambiente com arquivos de configuração (.ebextensions).
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.
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.