

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
<a name="create_deploy_Ruby.container"></a>

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](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.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 [`Gemfile`](ruby-platform-gemfile.md)dalam 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)*.*

**Opsi konfigurasi lainnya**  
Elastic Beanstalk menyediakan [opsi konfigurasi](command-options.md) 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](environment-configuration-methods-after.md). Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan [konfigurasi tersimpan](environment-configuration-savedconfig.md) untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan [file konfigurasi](ebextensions.md). 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](command-options.md).

Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).

## Mengonfigurasi lingkungan Ruby Anda
<a name="create-deploy_Ruby.container.CON"></a>

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](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

### Opsi log
<a name="create_deploy_Ruby.container.console.logoptions"></a>

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
<a name="create_deploy_Ruby.container.console.staticfiles"></a>

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](environment-cfg-staticfiles.md)

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 bernama`public`, server proxy menyajikannya kepada pengguna dari `subdomain.elasticbeanstalk.com/public/logo.png` dan`subdomain.elasticbeanstalk.com/logo.png`.
+ Jika sumber aplikasi Anda berisi file bernama `logo.png` dalam folder bernama `assets` di dalam `public` 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](#ruby-namespaces) 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2021-10-21-linux.html#release-2021-10-21-linux.platforms.ruby) di *Catatan AWS Elastic Beanstalk Rilis*.

### Properti lingkungan
<a name="create_deploy_Ruby.env.console.ruby.envprops"></a>

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\$1WITHOUT** – Daftar grup yang dipisahkan oleh titik dua untuk diabaikan ketika [menginstal dependensi](http://bundler.io/bundle_install.html) dari [Gemfile](http://bundler.io/v1.15/man/gemfile.5.html).
+ **BUNDLER\$1DEPLOYMENT\$1MODE** – Atur ke `true` (default) untuk menginstal dependensi dalam [mode deployment](https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE) 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\$1SKIP\$1ASSET\$1COMPILATION** – Atur ke `true` agar tidak menjalankan [http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets](http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets) selama deployment.
+  **RAILS\$1SKIP\$1MIGRATIONS** – Atur ke `true` agar tidak menjalankan [http://guides.rubyonrails.org/active_record_migrations.html#running-migrations](http://guides.rubyonrails.org/active_record_migrations.html#running-migrations) selama deployment.
+  **RACK\$1ENV** – 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 [Variabel lingkungan dan pengaturan perangkat lunak lainnya](environments-cfg-softwaresettings.md) untuk informasi selengkapnya.

## Namespace konfigurasi Ruby
<a name="ruby-namespaces"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa [platform khusus](command-options-specific.md) atau berlaku untuk [semua platform di layanan](command-options-general.md) 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`.

**Example .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](command-options.md).