Verwenden der Elastic Beanstalk-Ruby-Plattform - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden der Elastic Beanstalk-Ruby-Plattform

In diesem Thema wird beschrieben, wie Sie Ihre Ruby-Anwendungen auf Elastic Beanstalk konfigurieren, erstellen und ausführen.

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformzweigen für verschiedene Versionen der Programmiersprache Ruby. Siehe Ruby in der AWS Elastic Beanstalk Eine vollständige Liste finden Sie im Dokument Plattformen.

Die Ruby-Webanwendung kann hinter einem NGINX Proxyserver unter einem Puma-Anwendungsserver ausgeführt werden. Wenn Sie dies verwenden RubyGems, können Sie a Gemfilein Ihr Quellpaket aufnehmen, um Pakete während der Bereitstellung zu installieren.

Anwendungsserverkonfiguration

Elastic Beanstalk installiert den Puma-Anwendungsserver basierend auf dem Zweig der Ruby-Plattform, den Sie bei der Erstellung Ihrer Umgebung auswählen. Weitere Informationen zu den Komponenten, die in den Ruby-Plattformversionen enthalten sind, finden Sie unter Unterstützte Plattformen im AWS Elastic Beanstalk Leitfaden für Plattformen.

Sie können Ihre Anwendung mit Ihrem eigenen Puma-Server konfigurieren. Dies bietet die Möglichkeit, eine andere Version von Puma als die, die mit dem Ruby-Plattformzweig vorinstalliert ist, zu verwenden. Sie können Ihre Anwendung auch so konfigurieren, dass sie einen anderen Anwendungsserver wie Passenger verwendet. Dazu müssen Sie einen Gemfile in Ihrer Bereitstellung einbinden und einstellen. Sie müssen auch einen Procfile konfigurieren, um den Anwendungsserver zu starten. Weitere Informationen finden Sie unter Configuring the application process with a Procfile (Konfigurieren der Anwendung mit einer Procfile-Datei).

Andere Konfigurationsoptionen

Elastic Beanstalk bietet Konfigurationsoptionen, mit denen Sie die Software anpassen können, die auf den Amazon Elastic Compute Cloud (AmazonEC2) -Instances in Ihrer Elastic Beanstalk Beanstalk-Umgebung ausgeführt wird. Sie können die für Ihre Anwendung erforderlichen Umgebungsvariablen konfigurieren, die Protokollrotation an Amazon S3 aktivieren und die Ordner in der Anwendungsquelle, die statische Dateien enthalten, den vom Proxy-Server verwendeten Pfaden zuordnen. Die Plattform verfügt auch über einige allgemeine Umgebungsvariablen für Rails und Rack, die eine einfache Erkennung und Nutzung ermöglichen.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das Ändern der Konfiguration einer ausgeführten Umgebung verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie gespeicherte Konfigurationen verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie Konfigurationsdateien einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, wenn vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe Konfigurationsoptionen.

Details zu den verschiedenen Möglichkeiten für das Erweitern einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Konfigurieren Ihrer Ruby-Umgebung

Mit der Elastic Beanstalk-Konsole können Sie die Protokollrotation für Amazon S3 aktivieren und Variablen konfigurieren, die die Anwendung in der Umgebung lesen kann.

So greifen Sie auf die Softwarekonfigurationseinstellungen für die Umgebung zu
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Regionenliste Ihre AWS-Region.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

Protokolloptionen

Im Abschnitt Log options (Protokolloptionen) sind zwei Einstellungen vorhanden:

  • Instance profile (Instance-Profil) – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.

  • Rotation der Protokolldateien nach Amazon S3 aktivieren — Gibt an, ob Protokolldateien für die EC2 Amazon-Instances Ihrer Anwendung in den Amazon S3-Bucket kopiert werden, der Ihrer Anwendung zugeordnet ist.

Statische Dateien

Um die Leistung zu verbessern, können Sie den Abschnitt Statische Dateien verwenden, um den Proxy-Server so zu konfigurieren, dass statische Dateien (z. HTML B. Bilder) aus einer Reihe von Verzeichnissen in Ihrer Webanwendung bereitgestellt werden. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter Bereitstellen von statischen Dateien.

Standardmäßig ist der Proxy-Server in einer Ruby-Umgebung so konfiguriert, dass er statische Dateien wie folgt bereitstellt:

  • Dateien impublic-Ordner werden vom /public-Pfad und vom Domänenstamm bedient (/-Pfad).

  • Dateien impublic/assetsUnterordner werden vom /assets-Pfad bedient.

Die Funktionsweise wird anhand der Funktionsweise der Standardkonfiguration deutlich:

  • Wenn beispielsweise die Anwendungsquelle eine Datei mit dem Namen logo.png im Ordner public enthält, leitet der Proxy-Server sie von subdomain.elasticbeanstalk.com/public/logo.png und subdomain.elasticbeanstalk.com/logo.png an die Benutzer weiter.

  • Wenn beispielsweise die Anwendungsquelle eine Datei mit dem Namen logo.png assets im public-Ordner enthält, leitet der Proxy-Server sie von subdomain.elasticbeanstalk.com/assets/logo.png weiter.

Sie können zusätzliche Zuordnungen für statische Dateien konfigurieren. Weitere Informationen finden Sie unter Namespaces der Ruby-Konfigurationen an späterer Stelle in diesem Thema.

Anmerkung

Für Plattformversionen vor Ruby 2.7 AL2 Version 3.3.7 unterstützt die standardmäßige Nginx-Proxy-Serverkonfiguration von Elastic Beanstalk die Bereitstellung statischer Dateien aus dem Domänenstamm () nicht. subdomain.elasticbeanstalk.com/ Diese Plattformversion wurde am 21. Oktober 2021 veröffentlicht. Weitere Informationen finden Sie unter Neue Plattformversionen — Ruby in AWS Elastic Beanstalk Hinweise zur Veröffentlichung.

Umgebungseigenschaften

Im Abschnitt Umgebungseigenschaften können Sie die Umgebungskonfigurationseinstellungen für die EC2 Amazon-Instances angeben, auf denen Ihre Anwendung ausgeführt wird. Umgebungseigenschaften werden als Schlüssel/Wert-Paare an die Anwendung weitergeleitet.

Die Ruby-Plattform definiert folgende Eigenschaften für die Umgebungskonfiguration:

  • BUNDLE_ WITHOUT — Eine durch Doppelpunkte getrennte Liste von Gruppen, die bei der Installation von Abhängigkeiten aus einem Gemfile ignoriert werden sollen.

  • BUNDLER_ DEPLOYMENT _ MODE — Auf true (Standard) setzen, um Abhängigkeiten im Bereitstellungsmodus mithilfe von Bundler zu installieren. Auf false gesetzt, um die bundle install im Entwicklungsmodus auszuführen.

    Anmerkung

    Diese Umgebungseigenschaft ist in Amazon Linux AMI Ruby-Plattformbranches (vor Amazon Linux 2) nicht definiert.

  • RAILS_ _ SKIP ASSET _ COMPILATION — Auf einstellen, true um die Ausführung rake assets:precompilewährend der Bereitstellung zu überspringen.

  • RAILS_ SKIP _ MIGRATIONS — Legt fest, dass die Ausführung rake db:migratewährend der Bereitstellung übersprungen werden true soll.

  • RACK_ ENV — Geben Sie die Umgebungsphase für das Rack an. Beispiel: development, production oder test.

Innerhalb der Ruby-Umgebung, die in Elastic Beanstalk ausgeführt wird, können Sie über das Objekt ENV auf Umgebungsvariablen zugreifen. Beispielsweise können Sie mit folgendem Code eine Eigenschaft mit dem Namen API_ENDPOINT als Variable lesen:

endpoint = ENV['API_ENDPOINT']

Weitere Informationen finden Sie unter Umgebungseigenschaften und andere Softwareeinstellungen.

Namespaces der Ruby-Konfigurationen

Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können plattformspezifisch sein oder für alle Plattformen im Elastic Beanstalk-Service als Ganzes gelten. Die Konfigurationsoptionen sind in Namespaces organisiert.

Sie können mithilfe des Namespace aws:elasticbeanstalk:environment:proxy:staticfiles den Umgebungsproxy so konfigurieren, dass statische Dateien bereitgestellt werden. Sie definieren Zuordnungen von virtuellen Pfaden zu Anwendungsverzeichnissen.

Die Ruby-Plattform definiert keine plattformspezifischen Namespaces. Stattdessen werden Umgebungseigenschaften für häufig verwendete Rails- und Rack-Optionen definiert.

Die folgende Konfigurationsdatei gibt eine Option für statische Dateien an, mit der das Verzeichnis staticimages dem Pfad /images zuordnet wird und die einzelnen plattformdefinierten Umgebungseigenschaften und eine zusätzliche Umgebungseigenschaft mit dem Namen LOGGING festlegt werden.

Beispiel .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
Anmerkung

Die BUNDLER_DEPLOYMENT_MODE Umgebungseigenschaft und der aws:elasticbeanstalk:environment:proxy:staticfiles Namespace sind in Amazon Linux AMI Ruby-Plattformzweigen (vor Amazon Linux 2) nicht definiert.

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie auch Konfigurationsoptionen mithilfe der Konsole, gespeicherten Konfigurationen, der EB CLI oder der AWS CLI. KonfigurationsoptionenWeitere Informationen finden Sie unter.