Camada de pilhas do servidor de aplicativos AWS OpsWorks Rails - AWS OpsWorks

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á.

Camada de pilhas do servidor de aplicativos AWS OpsWorks Rails

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

nota

Esta layer está disponível apenas para stacks baseadas em Linux.

A camada Rails App Server é uma camada AWS OpsWorks Stacks que fornece um plano para instâncias que funcionam como servidores de aplicativos Rails.

Instalação: o AWS OpsWorks Stacks usa o instalador de pacotes da instância para instalar os pacotes do servidor em seus locais padrão. Para obter mais informações sobre a instalação do Apache/Passenger, consulte Phusion Passenger. Para obter mais informações sobre conexão, consulte Arquivos de log. Para obter mais informações sobre a instalação do Nginx/Unicorn, consulte Unicorn.

A página Add Layer fornece as seguintes opções de configuração, todas delas opcionais.

Versão do Ruby

A versão do Ruby que será usada pelos aplicativos. O valor padrão é 2.3.

Você também pode especificar sua versão do Ruby preferida ao substituir o atributo [:opsworks][:ruby_version].

nota

AWS OpsWorks O Stacks instala um pacote Ruby separado para ser usado pelas receitas e pelo agente da instância. Para ter mais informações, consulte Versões do Ruby.

Pilha do Rails

A pilha padrão do Rails é o Apache2 com o Phusion Passenger. Você também pode usar o Nginx com o Unicorn.

nota

Se você usar o Nginx e o Unicorn, deve adicionar o gem unicorn no Gemfile do aplicativo, como no exemplo a seguir:

source 'https://rubygems.org' gem 'rails', '3.2.15' ... # Use unicorn as the app server gem 'unicorn' ...
Versão do Passenger

Se tiver especificado Apache2/Passenger, você deverá especificar a versão do Passenger. O valor padrão é 5.0.28.

Versão do Rubygems

A versão padrão do Rubygems é 2.5.1

Instalar e gerenciar o Bundler

Permite que você opte por instalar e gerenciar o Bundler. O valor padrão é Yes.

Versão do Bundler

A versão padrão do Bundler é 1.12.5.

Os grupos de segurança personalizados

Essa configuração aparece se você optar por não associar automaticamente um grupo de segurança embutido do AWS OpsWorks Stacks às suas camadas. Você deve especificar qual grupo de segurança associar com a camada. Para ter mais informações, consulte Criar uma nova pilha.

Elastic Load Balancer

Você pode anexar um balanceador de carga do Elastic Load Balancing às instâncias de camada.

Você pode modificar algumas configurações usando um JSON personalizado ou um arquivo de atributos personalizado. Para ter mais informações, consulte Sobrepor atributos. Para obter uma lista dos atributos do Apache, Nginx, Passenger e Phusion Unicorn que podem ser substituídos, consulte Atributos de livros de receitas integrados.

Importante

Se o seu aplicativo Ruby on Rails usa SSL, recomendamos desativar o SSLv3 se possível para responder às vulnerabilidades descritas em CVE-2014-3566. Para ter mais informações, consulte Desativação do SSLv3 para servidores do Rails.

Desativação do SSLv3 para servidores do Rails

Para desativar o SSLv3 para os servidores do Rails, atualize a configuração Ruby Version (Versão do Ruby) da layer para 2.1, que instala o Ruby 2.1.4 ou superior como a versão que os aplicativos usam.

  • Atualize a configuração Ruby Version (Versão do Ruby) para 2.1 ou superior.

  • Atualize o arquivo de configuração para a pilha do Rails, como a seguir.

Apache com Phusion Passenger

Atualize a SSLProtocol configuração do arquivo do servidor Apache ssl.conf do, conforme descrito em Desativação do SSLv3 para os servidores Apache.

Nginx com Unicorn

Adicione uma diretiva explícita ssl_protocols para arquivo do servidor Nginx nginx.conf. Para desativar o SSLv3, substitua o modelo de arquivo integrado do livro de receita do nginx nginx.conf.erb que a configuração de receitas da camada Rails App Server usa para criar o nginx.conf e adicione a seguinte diretiva:

ssl_protocols TLSv1.2;

Para obter mais informações sobre como configurar o nginx.conf, consulte Configurar servidores HTTPS. Para obter mais informações sobre como substituir um modelo integrado, consulte Uso de modelos personalizados.

Conectar-se a um banco de dados

Quando você implanta um aplicativo, o AWS OpsWorks Stacks cria um novo database.yml arquivo usando informações dos deployatributos do aplicativo. Se você anexar uma instância do MySQL ou do Amazon RDS ao aplicativo, o AWS OpsWorks Stacks adiciona as informações de conexão aos deploy atributos, para que contenha database.yml automaticamente os dados de conexão corretos.

Se um aplicativo não tiver um banco de dados anexado, por padrão, o AWS OpsWorks Stacks não adiciona nenhuma informação de conexão aos deploy atributos e não criadatabase.yml. Se você quiser usar um banco de dados diferente, pode usar um JSON personalizado para adicionar atributos de banco de dados aos deploy atributos do aplicativo com as informações de conexão. Os atributos estão todos abaixo["deploy"]["appshortname"]["database"], onde appshortname é o nome curto do aplicativo, que o AWS OpsWorks Stacks gera a partir do nome do aplicativo. Os valores especificados no JSON personalizado substituem as configurações padrão. Para ter mais informações, consulte Adição de aplicativos.

AWS OpsWorks Stacks incorpora os seguintes valores de [:...][:database]atributos em. database.yml Os atributos necessários dependem do banco de dados específico, mas você deve ter um host atributo ou AWS OpsWorks as pilhas não serão criadasdatabase.yml.

  • [:adapter] (String): o adaptador de banco de dados, como mysql.

  • [:database] (String): o nome do banco de dados.

  • [:encoding] (String): a codificação, que geralmente é definida como utf8.

  • [:host] (String): o URL do host, como railsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com.

  • [:reconnect] (Boolean): caso o aplicativo deva se reconectar se a conexão não existir mais.

  • [:password] (String): a senha do banco de dados.

  • [:port] (telefone). : o número da porta do banco de dados. Use esse atributo para substituir o número de porta padrão, que é definido pelo adaptador.

  • [:username] (String): o nome de usuário do banco de dados.

O exemplo a seguir mostra um JSON personalizado para um aplicativo cujo nome curto é myapp.

{ "deploy" : { "myapp" : { "database" : { "adapter" : "adapter", "database" : "databasename", "host" : "host", "password" : "password", "port" : portnumber "reconnect" : true/false, "username" : "username" } } } }

Para obter informações sobre como especificar um JSON personalizado, consulte Usar JSON personalizado. Para ver o modelo usado para criar database.yml (database.yml.erb), acesse o repositório integrado do livro de receita.

Implantar aplicativos Ruby on Rails

Você pode implantar aplicativos Ruby on Rails a partir de qualquer um dos repositórios suportados. As considerações a seguir mostram como implantar um exemplo de aplicativo Ruby on Rails em um servidor usando uma pilha Apache/Passenger Rails. O código de exemplo é armazenado em um GitHub repositório público, mas o procedimento básico é o mesmo para os outros repositórios compatíveis. Para obter mais informações sobre como criar e implantar aplicativos, consulte Apps. Para ver o código do exemplo, que inclui comentários extensos, acesse https://github.com/awslabs/ opsworks-demo-rails-photo -share-app.

Para implantar um aplicativo Ruby on Rails a partir de um repositório GitHub
  1. Crie uma pilha com uma camada Rails App Server com o Apache/Passenger como a pilha do Rails, adicione uma instância ininterrupta à camada e inicie-a.

  2. Depois que a instância estiver online, adicione um aplicativo à pilha e especifique as configurações a seguir:

    • Name – Qualquer nome que você quiser; o exemplo usa PhotoPoll.

      AWS OpsWorks O Stacks usa esse nome para fins de exibição e gera um nome curto para uso interno e para identificar o aplicativo na configuração da pilha e nos atributos de implantação. Por exemplo, o nome PhotoPoll curto é photopoll.

    • App typeRuby on Rails.

    • Rails environment – Os ambientes disponíveis são determinados pelo aplicativo.

      O aplicativo de exemplo tem três: development, test e produçãoproduction. Para este exemplo, defina o ambiente como development. Consulte o código de exemplo para obter descrições de cada ambiente.

    • URL do repositório: qualquer um dos tipos de repositório suportados. Especifique o Git para este exemplo

    • Repository URL – O repositório de implantação do código.

      Para este exemplo, defina o URL como git://github.com/awslabs/opsworks-demo-rails-photo-share-app.

    Use os valores padrão para as configurações restantes e clique em Add App para criar o aplicativo.

  3. Implante o aplicativo na instância Rails App Server.

  4. Quando a implantação for concluída, vá à página Instâncias e clique no endereço IP público da instância do Rails App Server. Você deve ver o seguinte:

Congratulatory message for deploying first app with AWS OpsWorks, with stylized logo.