Utilizzo della piattaforma Ruby di Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo della piattaforma Ruby di Elastic Beanstalk

La piattaforma Ruby AWS Elastic Beanstalk è un insieme di configurazioni dell'ambiente per applicazioni Web Ruby che possono essere eseguite su un server proxy NGNIX sotto un server di applicazioni Puma. Ogni ramo della piattaforma corrisponde a una versione di Ruby. Se utilizzi RubyGems, puoi includere un file Gemfile nel bundle di origine per installare pacchetti durante la distribuzione.

Configurazione del server delle applicazioni

Elastic Beanstalk installa il server delle applicazioni Puma in base al ramo della piattaforma Ruby che scegli quando crei il tuo ambiente. Per ulteriori informazioni sui componenti forniti con le versioni della piattaforma Ruby, consulta la sezione Piattaforme supportate nella guida PiattaformeAWS Elastic Beanstalk.

È possibile configurare l'applicazione con il server Puma fornito. Ciò offre la possibilità di utilizzare una versione di Puma diversa da quella preinstallata con il ramo della piattaforma Ruby. È inoltre possibile configurare l'applicazione per utilizzare un server di applicazioni diverso, ad esempio Passenger. A tale scopo, devi includere e personalizzare un Gemfile nella tua implementazione. Dovresti inoltre configurare un Procfile per avviare il server delle applicazioni. Per ulteriori informazioni, consulta Configurazione del processo dell'applicazione con un Procfile.

Altre opzioni di configurazione

Elastic Beanstalk fornisce le opzioni di configurazione che puoi utilizzare per personalizzare il software in esecuzione sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) nell'ambiente Elastic Beanstalk. Puoi configurare le variabili di ambiente necessarie per la tua applicazione, accedere alla rotazione dei log su Amazon S3 e mappare le cartelle nel codice sorgente dell'applicazione che contengono i file statici ai percorsi serviti dal server proxy. La piattaforma, inoltre, predefinisce alcune variabili di ambiente comuni relative a Rails e Rack per facilitare il rilevamento e l'utilizzo.

Sono disponibili opzioni di configurazione specifiche della piattaforma nella console Elastic Beanstalk per la modifica della configurazione di un ambiente in esecuzione. Per conservare la configurazione dell'ambiente una volta terminata, puoi utilizzare configurazioni salvate per salvare le impostazioni e applicarle successivamente a un altro ambiente.

Per salvare le impostazioni nel codice sorgente, puoi includere i file di configurazione. Le impostazioni nei file di configurazione vengono applicate ogni volta che crei un ambiente o distribuisci l'applicazione. Puoi inoltre utilizzare i file di configurazione per installare pacchetti, eseguire script o altre operazioni di personalizzazione delle istanze durante le distribuzioni.

Le impostazioni applicate nella console Elastic Beanstalk sostituiscono le stesse impostazioni nei file di configurazione, se esistenti. Ciò ti consente di disporre di impostazioni predefinite nei file di configurazione, sostituibili con impostazioni specifiche per l'ambiente nella console. Per ulteriori informazioni sulla precedenza e altri metodi di modifica delle impostazioni, consulta Opzioni di configurazione.

Per informazioni dettagliate sui vari modi in cui è possibile estendere una piattaforma Elastic Beanstalk basata su Linux, consulta Estensione delle piattaforme Elastic Beanstalk Linux.

Configurazione dell'ambiente Ruby

Puoi utilizzare la console Elastic Beanstalk per attivare la rotazione dei log in Amazon S3 e configurare variabili che l'applicazione è in grado di leggere dall'ambiente.

Per accedere alle impostazioni di configurazione software per l'ambiente
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (Regioni) seleziona la tua Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Monitoring  (Monitoraggio), scegli Edit (Modifica).

Opzioni di log

La sezione Log Options (Opzioni di log) ha due impostazioni:

  • Instance profile (Profilo dell'istanza): specifica il profilo dell'istanza che dispone dell'autorizzazione ad accedere al bucket Amazon S3 associato all'applicazione.

  • Enable log file rotation to Amazon S3 (Abilita rotazione file di log in Amazon S3): specifica se i file di log per le istanze Amazon EC2 dell'applicazione debbano essere copiati nel bucket Amazon S3 associato all'applicazione.

File statici

Per migliorare le prestazioni, la sezione Static files (File statici) consente di configurare il server proxy affinché fornisca file statici (ad esempio, HTML o immagini) da un set di directory all'interno dell'applicazione Web. Per ogni directory, è possibile impostare il percorso virtuale per la mappatura delle directory. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Per informazioni dettagliate sulla configurazione di file statici utilizzando file di configurazione o la console Elastic Beanstalk, consulta Fornire i file statici.

Per impostazione predefinita, il server proxy in un ambiente Ruby è configurato per servire file statici nel modo seguente:

  • I file nelle cartelle public sono serviti dal percorso /public e dalla radice del dominio (percorso /).

  • I file nelle sottocartelle public/assets sono serviti dal percorso /assets.

Negli esempi seguenti viene illustrato il funzionamento della configurazione predefinita:

  • Se il codice sorgente dell'applicazione contiene un file con nome logo.png in una cartella chiamata public, il server proxy lo servirà agli utenti da subdomain.elasticbeanstalk.com/public/logo.png e subdomain.elasticbeanstalk.com/logo.png.

  • Se il codice sorgente dell'applicazione contiene un file con nome logo.png in una cartella chiamata assets nella cartella public, il server proxy lo servirà agli utenti da subdomain.elasticbeanstalk.com/assets/logo.png.

È possibile configurare mappature aggiuntive per file statici. Per ulteriori informazioni, consultare Spazi dei nomi della configurazione Ruby più avanti in questo argomento.

Nota

Per le versioni della piattaforma precedenti a Ruby 2.7 AL2 versione 3.3.7, la configurazione predefinita del server proxy Elastic Beanstalk nginx non supporta la gestione di file statici dalla radice del dominio (subdomain.elasticbeanstalk.com/). Questa versione della piattaforma è stata rilasciata il 21 ottobre 2021. Per ulteriori informazioni, consulta Nuove versioni della piattaforma - Ruby nelle Note di rilascio di AWS Elastic Beanstalk.

Proprietà dell'ambiente

La sezione Environment Properties (Proprietà ambiente) consente di specificare le impostazioni di configurazione dell'ambiente nelle istanze Amazon EC2 che eseguono l'applicazione. Le proprietà di ambiente sono passate come coppie chiave-valore all'applicazione.

La piattaforma Ruby definisce le seguenti proprietà per la configurazione dell'ambiente:

  • BUNDLE_WITHOUT: elenco di gruppi separati da due punti da ignorare quando si installano dipendenze da un Gemfile.

  • BUNDLER_DEPLOYMENT_MODE: impostato su true (predefinito) per installare le dipendenze in deployment mode mediante Bundler. Imposta su false per eseguire bundle install in modalità di sviluppo.

    Nota

    Questa proprietà di ambiente non è definita sui rami della piattaforma Ruby AMI Amazon Linux (in precedenza Amazon Linux 2).

  • RAILS_SKIP_ASSET_COMPILATION: impostalo su true per omettere l'esecuzione di rake assets:precompile durante la distribuzione.

  • RAILS_SKIP_MIGRATIONS: impostalo su true per omettere l'esecuzione di rake db:migrate durante la distribuzione.

  • RACK_ENV: specifica la fase di ambiente per Rack. Ad esempio, development, production o test.

All'interno dell'ambiente Ruby in esecuzione in Elastic Beanstalk, le variabili di ambiente sono accessibili tramite l'oggetto ENV. Ad esempio, è possibile leggere una proprietà denominata API_ENDPOINT su una variabile con il codice seguente:

endpoint = ENV['API_ENDPOINT']

Per ulteriori informazioni, consultare Proprietà dell'ambiente e altre impostazioni software.

Spazi dei nomi della configurazione Ruby

È possibile utilizzare un file di configurazione per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione, che possono essere definite dal servizio Elastic Beanstalk o dalla piattaforma utilizzata, sono organizzate in spazi dei nomi.

È possibile utilizzare lo spazio dei nomi aws:elasticbeanstalk:environment:proxy:staticfiles dei nomi per configurare il proxy di ambiente per servire file statici. È possibile definire i mapping dei percorsi virtuali alle directory dell'applicazione.

La piattaforma Ruby non definisce spazi dei nomi specifici della piattaforma. ma proprietà di ambiente per opzioni comuni di Rails e Rack.

Il seguente file di configurazione specifica un'opzione file statici che esegue il mapping di una directory denominata staticimages al percorso /images, imposta ciascuna delle proprietà di ambiente definite dalla piattaforma e imposta una proprietà di ambiente aggiuntiva denominata LOGGING.

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

La proprietà dell'ambiente BUNDLER_DEPLOYMENT_MODE e lo spazio dei nomi aws:elasticbeanstalk:environment:proxy:staticfiles non sono definiti sui rami della piattaforma Ruby AMI Amazon Linux (in precedenza Amazon Linux 2).

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi impostare le opzioni di configurazione tramite la console, le configurazioni salvate, la CLI EB o AWS CLI. Per ulteriori informazioni, consultare Opzioni di configurazione.