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

Questo argomento descrive come configurare, creare ed eseguire le applicazioni Ruby su Elastic Beanstalk.

AWS Elastic Beanstalk supporta una serie di rami di piattaforma per diverse versioni del linguaggio di programmazione Ruby. Vedi Ruby nel documento AWS Elastic Beanstalk Piattaforme per un elenco completo.

L'applicazione web Ruby può essere eseguita dietro un server NGINX proxy su un server di applicazioni Puma. Se lo utilizzi RubyGems, puoi includere Gemfilenel tuo pacchetto sorgente un pacchetto per installare i 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 Piattaforme AWS 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 offre opzioni di configurazione che puoi utilizzare per personalizzare il software che viene eseguito sulle istanze Amazon Elastic Compute Cloud (EC2Amazon) nel tuo 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 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 Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), 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.

  • Abilita la rotazione dei file di registro su Amazon S3: specifica se i file di log per le EC2 istanze Amazon dell'applicazione vengono copiati nel bucket Amazon S3 associato all'applicazione.

File statici

Per migliorare le prestazioni, puoi utilizzare la sezione File statici per configurare il server proxy in modo che serva file statici (ad esempio HTML o immagini) da un set di directory all'interno della tua 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, consulta Spazi dei nomi della configurazione Ruby più avanti in questo argomento.

Nota

Per le versioni della piattaforma precedenti alla AL2versione 3.3.7 di Ruby 2.7, la configurazione predefinita del server proxy Elastic Beanstalk nginx non supporta l'invio di file statici dal dominio root (). 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 consente di specificare le impostazioni di configurazione dell'ambiente sulle EC2 istanze Amazon su cui è in esecuzione 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:

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, consulta 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 possono essere specifiche della piattaforma o essere applicate a tutte le piattaforme del servizio Elastic Beanstalk nel suo complesso. Le opzioni di configurazione sono organizzate in namespace.

È 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à BUNDLER_DEPLOYMENT_MODE dell'ambiente e lo spazio dei aws:elasticbeanstalk:environment:proxy:staticfiles nomi non sono definiti sui rami della piattaforma Amazon Linux AMI Ruby (prima di Amazon Linux 2).

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