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á.
Este tópico descreve como configurar, criar e executar aplicações Ruby no Elastic Beanstalk.
AWS Elastic Beanstalk suporta várias ramificações de plataforma para diferentes versões da linguagem de programação Ruby. Consulte Ruby no documento sobre Plataformas do AWS Elastic Beanstalk para obter uma lista completa.
A aplicação Web Ruby pode ser executada por trás de um servidor proxy NGINX em um servidor de aplicações Puma. Se você usar RubyGems, você pode incluir um Gemfileem seu pacote de origem para instalar pacotes durante a implantação.
Configuração do servidor de aplicações
O Elastic Beanstalk instala o servidor de aplicações Puma com base na ramificação da plataforma Ruby que você escolhe ao criar o ambiente. Para obter mais informações sobre os componentes fornecidos com as versões da plataforma Ruby, consulte Plataformas compatíveis no guia Plataformas do AWS Elastic Beanstalk .
Você pode configurar a aplicação com seu próprio servidor Puma. Isso permite usar uma versão do Puma diferente da que é pré-instalada com a ramificação da plataforma Ruby. Você também pode configurar a aplicação para usar um servidor de aplicações diferente, como o Passenger. Para isso, você deve incluir e personalizar um Gemfile
em sua implantação. Você também precisa configurar um Procfile
para iniciar o servidor de aplicações. Para obter mais informações, consulte Configurar o processo da aplicação com um Procfile.
Outras opções de configuração
O Elastic Beanstalk fornece opções de configuração que você pode usar para personalizar o software executado nas instâncias do Amazon Elastic Compute Cloud ( EC2Amazon) em seu ambiente do Elastic Beanstalk. Você pode configurar variáveis de ambiente necessárias à aplicação, habilitar a alternância de logs para o Amazon S3 e mapear pastas da origem da aplicação que contenham arquivos estáticos para caminhos atendidos pelo servidor de proxy. A plataforma também predefine algumas variáveis de ambiente comuns relacionadas ao Rails e ao Rack para facilitar a descoberta e o uso.
As opções de configuração estão disponíveis no console do Elastic Beanstalk para modificar a configuração de um ambiente em execução. Para evitar a perda da configuração do ambiente quando você terminá-la, você pode usar configurações salvas para salvar as configurações e depois aplicá-las a outro ambiente.
Para salvar as configurações no código-fonte, você pode incluir arquivos de configuração. As definições em arquivos de configuração são aplicadas sempre que você cria um ambiente ou implementa a aplicação. Você também pode usar arquivos de configuração para instalar pacotes, executar scripts e realizar outras operações de personalização da instância em implantações.
As configurações aplicadas no console do Elastic Beanstalk substituem as mesmas configurações em arquivos de configuração, caso elas existam. Isso permite que você tenha configurações padrão em arquivos de configuração e as substitua por configurações específicas de ambiente no console. Para obter mais informações sobre precedência e outros métodos de alteração das configurações, consulte Opções de configuração.
Para obter detalhes sobre as várias maneiras de estender uma plataforma do Elastic Beanstalk baseada em Linux, consulte Estender as plataformas Linux do Elastic Beanstalk.
Configurar o ambiente Ruby
É possível usar o console do Elastic Beanstalk para habilitar a alternância de logs para o Amazon S3 e configurar variáveis que sua aplicação pode ler no ambiente.
Para acessar as definições de configuração de software para seu ambiente
Abra o console do Elastic
Beanstalk e, na lista Regiões, selecione sua. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
nota
Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.
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).
Opções de log
A seção Log options (Opções de log) tem duas configurações:
-
Instance profile (Perfil da instância): especifica o perfil da instância que tem permissão para acessar o bucket do Amazon S3 associado à sua aplicação.
-
Habilitar a rotação de arquivos de log para o Amazon S3 — Especifica se os arquivos de log das EC2 instâncias da Amazon do seu aplicativo são copiados para o bucket do Amazon S3 associado ao seu aplicativo.
Arquivos estáticos
Para melhorar a performance, você pode usar a seção Static files (Arquivos estáticos) para configurar o servidor proxy para servir arquivos estáticos (por exemplo, HTML ou imagens) de um conjunto de diretórios dentro da aplicação Web. Defina, para cada diretório, o caminho virtual para mapeamento de diretórios. Quando o servidor de proxy recebe uma solicitação para um arquivo no caminho especificado, ele atende o arquivo diretamente em vez de rotear solicitação para seu aplicativo.
Para ver detalhes sobre como configurar arquivos estáticos usando arquivos de configuração ou o console do Elastic Beanstalk, consulte Fornecer arquivos estáticos.
Por padrão, o servidor de proxy em um ambiente Ruby é configurado para atender arquivos estáticos da seguinte maneira:
-
Arquivos na pasta
public
são atendidos a partir do caminho/public
e a raiz do domínio (caminho/
). -
Arquivos da subpasta
public/assets
são atendidos a partir do caminho/assets
.
Os exemplos a seguir ilustram como funciona a configuração padrão:
-
Por exemplo, se a origem da aplicação-fonte contiver um arquivo chamado
logo.png
em uma pasta chamadapublic
, o servidor de proxy o servirá a usuários a partir de
esubdomain
.elasticbeanstalk.com/public/logo.png
.subdomain
.elasticbeanstalk.com/logo.png -
Se a origem da aplicação-fonte contiver um arquivo nomeado
logo.png
em uma pasta nomeadaassets
, dentro da pastapublic
, o servidor de proxy o servirá a partir de
.subdomain
.elasticbeanstalk.com/assets/logo.png
Você pode configurar mais mapeamentos para arquivos estáticos. Para obter mais informações, consulte Namespaces de configuração do Ruby mais adiante neste tópico.
nota
Para versões da plataforma anteriores à AL2 versão 3.3.7 do Ruby 2.7, a configuração padrão do servidor proxy nginx do Elastic Beanstalk não oferece suporte ao serviço de arquivos estáticos do domínio root ().
Esta versão da plataforma foi lançada em 21 de outubro de 2021. Para obter mais informações, consulte Novas versões da plataforma - Ruby nas Notas de Release do AWS Elastic Beanstalk .subdomain
.elasticbeanstalk.com/
Propriedades de ambiente
A seção Propriedades do ambiente permite que você especifique as configurações do ambiente nas EC2 instâncias da Amazon que estão executando seu aplicativo. As propriedades de ambiente são passadas para o aplicativo como pares de chave-valor.
A plataforma Ruby define as seguintes propriedades de configuração do ambiente:
-
BUNDLE_WITHOUT: uma lista separada por dois pontos de grupos a ignorar ao instalar dependências
de um Gemfile . -
BUNDLER_DEPLOYMENT_MODE: defina como
true
(padrão) para instalar as dependências no modo de implantaçãousando o Bundler. Defina como false
para executarbundle install
no modo de desenvolvimento.nota
Essa propriedade de ambiente não é definida nas ramificações da plataforma Ruby da AMI do Amazon Linux (anteriores ao Amazon Linux 2).
-
RAILS_SKIP_ASSET_COMPILATION: definido como
true
para ignorar a execução derake assets:precompile
durante a implantação. -
RAILS_SKIP_MIGRATIONS: definido como
true
para ignorar a execução derake db:migrate
durante a implantação. -
RACK_ENV: especifique o estágio do ambiente para o Rack. Por exemplo,
development
,production
outest
.
No ambiente Ruby executado no Elastic Beanstalk, as variáveis de ambiente podem ser acessadas usando o objeto ENV
. Por exemplo, você pode ler uma propriedade denominada API_ENDPOINT
em uma variável com o seguinte código:
endpoint = ENV['API_ENDPOINT']
Consulte Propriedades de ambientes e outras configurações de software para obter mais informações.
Namespaces de configuração do Ruby
Você pode usar um arquivo de configuração para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. Opções de configuração podem ser específicas da plataforma ou aplicáveis a todas as plataformas no serviço Elastic Beanstalk como um todo. As opções de configuração são organizadas em namespaces.
É possível usar o namespace aws:elasticbeanstalk:environment:proxy:staticfiles
para configurar o proxy de ambiente para servir arquivos estáticos. Defina mapeamentos de caminhos virtuais para diretórios de aplicativos.
A plataforma Ruby não define nenhum namespace específico da plataforma. Em vez disso, ela define as propriedades do ambiente para opções de Rails e Rack comuns.
O arquivo de configuração a seguir especifica uma opção de arquivos estáticos que mapeia um diretório chamado staticimages
para o caminho /images
, define cada uma das propriedades de ambiente definidas pela plataforma e define uma propriedade de ambiente adicional chamada LOGGING
.
exemplo .ebextensions/ruby-settings.config
option_settings:
aws:elasticbeanstalk:environment:proxy:staticfiles:
/images: staticimages
aws:elasticbeanstalk:application:environment:
BUNDLE_WITHOUT: test
BUNDLER_DEPLOYMENT_MODE: true
RACK_ENV: development
RAILS_SKIP_ASSET_COMPILATION: true
RAILS_SKIP_MIGRATIONS: true
LOGGING: debug
nota
A propriedade de ambiente BUNDLER_DEPLOYMENT_MODE
e o namespace aws:elasticbeanstalk:environment:proxy:staticfiles
não são definidos nas ramificações da plataforma Ruby de AMI do Amazon Linux (anterior ao Amazon Linux 2).
O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além de arquivos de configuração, você também pode definir opções de configuração usando o console, configurações salvas, a EB CLI ou a AWS CLI. Consulte Opções de configuração para obter mais informações.