Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Topik ini menjelaskan cara mengonfigurasi, membangun, dan menjalankan aplikasi Ruby Anda di Elastic Beanstalk.
AWS Elastic Beanstalk mendukung sejumlah cabang platform untuk berbagai versi bahasa pemrograman Ruby. Lihat Ruby di dokumen AWS Elastic Beanstalk Platform untuk daftar lengkapnya.
Aplikasi web Ruby dapat berjalan di belakang server proxy NGINX di bawah server aplikasi Puma. Jika Anda menggunakan RubyGems, Anda dapat menyertakan Gemfiledalam bundel sumber Anda untuk menginstal paket selama penerapan.
Konfigurasi server aplikasi
Elastic Beanstalk menginstal server aplikasi Puma berdasarkan cabang platform Ruby yang Anda pilih saat Anda membuat lingkungan Anda. Untuk informasi selengkapnya tentang komponen yang disediakan bersama versi platform Ruby, lihat Platform yang Didukung dalam panduan AWS Elastic Beanstalk Platform.
Anda dapat mengonfigurasi aplikasi Anda dengan server Puma yang Anda sediakan sendiri. Ini memberikan opsi untuk menggunakan versi Puma selain yang sudah diinstal sebelumnya dengan cabang platform Ruby. Anda juga dapat mengonfigurasi aplikasi Anda untuk menggunakan server aplikasi yang berbeda, seperti Passenger. Untuk melakukannya, Anda harus menyertakan dan menyesuaikan a Gemfile
dalam penerapan Anda. Anda juga diharuskan mengonfigurasi a Procfile
untuk memulai server aplikasi. Untuk informasi selengkapnya lihat Mengonfigurasi proses aplikasi dengan Procfile.
Opsi konfigurasi lainnya
Elastic Beanstalk menyediakan opsi konfigurasi yang dapat Anda gunakan untuk menyesuaikan perangkat lunak yang berjalan pada instans Amazon Elastic Compute Cloud ( EC2Amazon) di lingkungan Elastic Beanstalk Anda. Anda dapat mengonfigurasi variabel lingkungan yang diperlukan aplikasi Anda, mengaktifkan rotasi log ke Amazon S3, dan memetakan folder dalam sumber aplikasi Anda yang berisi file statis ke jalur yang disajikan server proksi. Platform ini juga telah menentukan beberapa variabel lingkungan umum sebelumnya yang terkait Rails dan Rack untuk kemudahan dalam penemuan dan penggunaannya.
Pilihan konfigurasi tersedia di konsol Elastic Beanstalk untuk memodifikasi konfigurasi dari lingkungan yang sedang berjalan. Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan konfigurasi tersimpan untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.
Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan file konfigurasi. Pengaturan di file konfigurasi diterapkan setiap kali Anda membuat lingkungan atau men-deploy aplikasi Anda. Anda juga dapat menggunakan file konfigurasi untuk menginstal paket, menjalankan penulisan, dan melakukan operasi penyesuaian instans lainnya selama deployment.
Pengaturan yang diterapkan di konsol Elastic Beanstalk mengganti pengaturan yang sama di file konfigurasi, jika ada. Hal tersebut memungkinkan Anda memiliki pengaturan default di file konfigurasi, dan mengganti keduanya dengan pengaturan khusus lingkungan di konsol tersebut. Untuk informasi selengkapnya tentang yang diutamakan, dan metode lain untuk mengubah pengaturan, lihat Opsi konfigurasi.
Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat Memperluas platform Linux Elastic Beanstalk.
Mengonfigurasi lingkungan Ruby Anda
Anda dapat menggunakan konsol Elastic Beanstalk untuk mengaktifkan rotasi log ke Amazon S3, mengonfigurasi variabel yang dapat dibaca aplikasi Anda dari lingkungan.
Untuk mengakses pengaturan konfigurasi perangkat lunak untuk lingkungan Anda
Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic
Beanstalk. Wilayah AWS -
Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.
catatan
Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.
Di panel navigasi, pilih Konfigurasi.
-
Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.
Opsi log
Bagian opsi Log memiliki dua pengaturan:
-
Profil instans– Menentukan profil instans yang memiliki izin untuk mengakses bucket Amazon S3 yang terkait dengan aplikasi Anda.
-
Aktifkan rotasi file log ke Amazon S3 — Menentukan apakah file log untuk EC2 instans Amazon aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.
File statis
Untuk meningkatkan kinerja, Anda dapat menggunakan bagian File statis untuk mengkonfigurasi server proxy untuk melayani file statis (misalnya, HTML atau gambar) dari satu set direktori di dalam aplikasi web Anda. Untuk setiap direktori, Anda mengatur jalur virtual ke pemetaan direktori. Saat server proksi menerima permintaan untuk file di jalur yang ditentukan, server langsung menyajikan file daripada merutekan permintaan ke aplikasi Anda.
Untuk detail tentang mengonfigurasi file statis menggunakan file konfigurasi atau konsol Elastic Beanstalk, lihat. Menyajikan file statis
Secara default, server proxy di lingkungan Ruby dikonfigurasi untuk melayani file statis sebagai berikut:
-
File dalam
public
folder disajikan dari/public
jalur dan root domain (/
path). -
File di
public/assets
subfolder disajikan dari/assets
jalur.
Contoh berikut menggambarkan cara kerja konfigurasi default:
-
Jika sumber aplikasi Anda berisi file bernama
logo.png
dalam folder bernamapublic
, server proxy menyajikannya kepada pengguna dari
dansubdomain
.elasticbeanstalk.com/public/logo.png
.subdomain
.elasticbeanstalk.com/logo.png -
Jika sumber aplikasi Anda berisi file bernama
logo.png
dalam folder bernamaassets
di dalampublic
folder, server proxy menyajikannya
.subdomain
.elasticbeanstalk.com/assets/logo.png
Anda dapat mengonfigurasi pemetaan tambahan untuk file statis. Untuk informasi selengkapnya, lihat Namespace konfigurasi Ruby dalam topik ini.
catatan
Untuk versi platform sebelum Ruby 2.7 AL2 versi 3.3.7, konfigurasi server proxy Elastic Beanstalk nginx default tidak mendukung penyajian file statis dari root domain ().
Versi platform ini dirilis pada 21 Oktober 2021. Untuk informasi selengkapnya lihat Versi platform baru - Ruby di Catatan AWS Elastic Beanstalk Rilis.subdomain
.elasticbeanstalk.com/
Properti lingkungan
Bagian Properti Lingkungan memungkinkan Anda menentukan pengaturan konfigurasi lingkungan pada EC2 instance Amazon yang menjalankan aplikasi Anda. Properti lingkungan diberikan sebagai pasangan nilai kunci ke aplikasi.
Platform Ruby menetapkan properti berikut untuk konfigurasi lingkungan:
-
BUNDLE_WITHOUT – Daftar grup yang dipisahkan oleh titik dua untuk diabaikan ketika menginstal dependensi
dari Gemfile . -
BUNDLER_DEPLOYMENT_MODE – Atur ke
true
(default) untuk menginstal dependensi dalam mode deploymentmenggunakan Bundler. Atur ke false
untuk menjalankanbundle install
dalam mode pengembangan.catatan
Properti lingkungan ini tidak ditentukan pada cabang platform Ruby Amazon Linux AMI (Amazon Linux 2 yang terdahulu).
-
RAILS_SKIP_ASSET_COMPILATION – Atur ke
true
agar tidak menjalankanrake assets:precompile
selama deployment. -
RAILS_SKIP_MIGRATIONS – Atur ke
true
agar tidak menjalankanrake db:migrate
selama deployment. -
RACK_ENV – Menentukan tahap lingkungan untuk Rack. Misalnya,
development
,production
, atautest
.
Di dalam lingkungan Ruby yang berjalan di Elastic Beanstalk, variabel lingkungan dapat diakses menggunakan objek ENV
. Sebagai contoh, Anda dapat membaca properti bernama API_ENDPOINT
ke variabel dengan kode berikut:
endpoint = ENV['API_ENDPOINT']
Lihat Properti lingkungan dan pengaturan perangkat lunak lainnya untuk informasi selengkapnya.
Namespace konfigurasi Ruby
Anda dapat menggunakan file konfigurasi untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa platform khusus atau berlaku untuk semua platform di layanan Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam ruang nama.
Anda dapat menggunakan namespace aws:elasticbeanstalk:environment:proxy:staticfiles
untuk mengonfigurasi proksi lingkungan untuk menyajikan file statis. Anda menentukan pemetaan jalur virtual ke direktori aplikasi.
Platform Ruby tidak menentukan namespace tertentu platform. Sebagai gantinya, platform Ruby menentukan properti lingkungan untuk opsi umum Rails dan Rack.
File konfigurasi berikut menentukan opsi file statis yang memetakan direktori bernama staticimages
ke jalur /images
, menetapkan setiap properti lingkungan yang ditentukan platform, dan menetapkan properti lingkungan tambahan bernama LOGGING
.
contoh .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
catatan
Properti lingkungan BUNDLER_DEPLOYMENT_MODE
dan namespace aws:elasticbeanstalk:environment:proxy:staticfiles
tidak tetapditentukan pada cabang platform Ruby Amazon Linux AMI (Amazon Linux 2 yang terdahulu).
Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol tersebut, konfigurasi tersimpan, EB CLI, atau AWS CLI. Untuk informasi selengkapnya, lihat Opsi konfigurasi.