Menggunakan platform Ruby Elastic Beanstalk - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan platform Ruby Elastic Beanstalk

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 NGNIX proxy 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
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

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

  3. Di panel navigasi, pilih Konfigurasi.

  4. 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 menyajikan 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 subdomain.elasticbeanstalk.com/public/logo.png dansubdomain.elasticbeanstalk.com/logo.png.

  • Jika sumber aplikasi Anda berisi file bernama logo.png dalam folder bernama assets di dalam public folder, server proxy menyajikannyasubdomain.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 (). subdomain.elasticbeanstalk.com/ Versi platform ini dirilis pada 21 Oktober 2021. Untuk informasi selengkapnya lihat Versi platform baru - Ruby di Catatan AWS Elastic Beanstalk Rilis.

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 titik dua untuk diabaikan saat menginstal dependensi dari Gemfile.

  • BUNDLER_ DEPLOYMENT _ MODE — Setel ke true (default) untuk menginstal dependensi dalam mode penerapan menggunakan Bundler. Atur ke false untuk menjalankan bundle install dalam mode pengembangan.

    catatan

    Properti lingkungan ini tidak ditentukan di cabang platform Amazon Linux AMI Ruby (sebelum Amazon Linux 2).

  • RAILS_ SKIP _ ASSET _ COMPILATION — Setel true untuk melewatkan berjalan rake assets:precompileselama penerapan.

  • RAILS_ SKIP _ MIGRATIONS — Setel true untuk melewatkan berjalan rake db:migrateselama penerapan.

  • RACK_ ENV — Tentukan tahap lingkungan untuk Rack. Misalnya, development, production, atau test.

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 ditentukan oleh layanan Elastic Beanstalk atau platform yang Anda gunakan dan disusun ke dalam namespace.

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 BUNDLER_DEPLOYMENT_MODE lingkungan dan aws:elasticbeanstalk:environment:proxy:staticfiles namespace tidak ditentukan di cabang platform Amazon Linux AMI Ruby (sebelum Amazon Linux 2).

Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol, konfigurasi tersimpan, EBCLI, atau file. AWS CLI Untuk informasi selengkapnya, lihat Opsi konfigurasi.