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

Platform AWS Elastic Beanstalk Ruby adalah seperangkat konfigurasi lingkungan untuk aplikasi web Ruby yang dapat berjalan di belakang server proxy NGNIX di bawah server aplikasi Puma. Setiap cabang platform sesuai dengan versi Ruby. Jika Anda menggunakanRubyGems, Anda dapat menyertakan Gemfile file dalam bundel sumber Anda untuk menginstal paket selama penyebaran.

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 dengan versi platform Ruby, lihat Platform yang Didukung di panduan AWS Elastic BeanstalkPlatform.

Anda dapat mengkonfigurasi aplikasi Anda dengan server Puma Anda sendiri disediakan. Ini menyediakan opsi untuk menggunakan versi Puma selain yang sudah diinstal sebelumnya dengan cabang platform Ruby. Anda juga dapat mengkonfigurasi aplikasi Anda untuk menggunakan server aplikasi yang berbeda, seperti Penumpang. Untuk melakukannya, Anda harus menyertakan dan menyesuaikan Gemfile dalam penyebaran Anda. Anda juga diminta untuk mengkonfigurasi Procfile untuk memulai server aplikasi. Untuk informasi selengkapnya, lihat Mengkonfigurasi 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 (Amazon EC2) 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. Untuk menghindari kehilangan konfigurasi lingkungan ketika Anda mengakhirinya, Anda dapat menggunakan konfigurasi tersimpan untuk menyimpan pengaturan Anda 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 dalam daftar Regions, pilih Anda. 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 Pembaruan, pemantauan, dan konfigurasi logging, 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 instans Amazon EC2 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 sekumpulan 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 dalam lingkungan Ruby dikonfigurasi untuk melayani file statis sebagai berikut:

  • File dalam public folder disajikan dari /public path dan root domain (/path).

  • File dalam public/assets subfolder disajikan dari /assets jalur.

Contoh berikut menggambarkan bagaimana konfigurasi default bekerja:

  • 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 akan menyajikannyasubdomain.elasticbeanstalk.com/assets/logo.png.

Anda dapat mengkonfigurasi 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 di instans Amazon EC2 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 deployment menggunakan Bundler. Atur ke false untuk menjalankan bundle 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 menjalankan rake assets:precompile selama deployment.

  • RAILS_SKIP_MIGRATIONS – Atur ke true agar tidak menjalankan rake db:migrate selama deployment.

  • RACK_ENV – Menentukan 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 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. Lihat Opsi konfigurasi untuk informasi selengkapnya.