Men-deploy aplikasi sinatra ke 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.

Men-deploy aplikasi sinatra ke Elastic Beanstalk

Panduan ini menunjukkan cara men-deploy aplikasi web Sinatra ke AWS Elastic Beanstalk.

catatan

AWS akun yang dibuat setelah 1 Oktober 2024, sementara perlu menetapkan opsi untuk berhasil menciptakan lingkungan baru. Seperti akun baru, tetapi hanya untuk Wilayah di mana akun belum memiliki lingkungan, akun yang ada perlu mengambil tindakan yang sama. Untuk informasi selengkapnya, lihat Luncurkan Template.

Prasyarat

Tutorial ini mengasumsikan Anda memiliki pengetahuan tentang operasi Elastic Beanstalk dasar dan konsol Elastic Beanstalk. Jika belum, ikuti petunjuk di Memulai dengan Elastic Beanstalk untuk meluncurkan lingkungan Elastic Beanstalk pertama Anda.

Untuk mengikuti prosedur di panduan ini, Anda memerlukan terminal atau shell baris perintah untuk menjalankan perintah. Perintah ditampilkan dalam daftar yang diawali dengan simbol prompt ($) dan nama direktori saat ini, bila perlu.

~/eb-project$ this is a command this is output

Di Linux dan macOS, Anda dapat menggunakan shell dan manajer paket pilihan Anda. Pada Windows Anda dapat menginstal Windows Subsystem untuk Linux untuk mendapatkan versi Windows terintegrasi dari Ubuntu dan Bash.

Sinatra 2.1.0 membutuhkan Ruby 2.3.0 atau yang lebih baru. Dalam tutorial ini kita menggunakan Ruby 3.0.2 dan versi platform Elastic Beanstalk yang sesuai. Instal Ruby dengan mengikuti petunjuk di Menyiapkan lingkungan pengembangan Ruby Anda untuk Elastic Beanstalk.

Meluncurkan lingkungan Elastic Beanstalk

Gunakan konsol Elastic Beanstalk untuk membuat lingkungan Elastic Beanstalk. Pilih platform Ruby lalu terima pengaturan default dan kode sampel.

Untuk meluncurkan lingkungan (konsol)
  1. Buka konsol Elastic Beanstalk menggunakan tautan yang telah dikonfigurasi sebelumnya: console.aws.amazon. com/elasticbeanstalk/home#/newApplication? applicationName=tutorial& = environmentType LoadBalanced

  2. Untuk Platform, pilih platform dan cabang platform yang sesuai dengan bahasa yang digunakan oleh aplikasi Anda.

  3. Untuk Kode aplikasi, pilih Aplikasi sampel.

  4. Pilih Tinjau dan Luncurkan.

  5. Tinjau opsi yang tersedia. Pilih opsi tersedia yang ingin Anda gunakan, dan saat Anda siap, pilih Buat aplikasi.

Pembuatan lingkungan membutuhkan waktu sekitar 5 menit dan membuat sumber daya berikut:

  • EC2instance — Mesin virtual Amazon Elastic Compute Cloud (AmazonEC2) yang dikonfigurasi untuk menjalankan aplikasi web pada platform yang Anda pilih.

    Setiap platform menjalankan satu set perangkat lunak, file konfigurasi dan penulisan tertentu untuk mendukung versi bahasa, kerangka kerja, kontainer web tertentu, atau kombinasi dari semua ini. Sebagian besar platform menggunakan Apache atau NGINX sebagai proxy terbalik yang berada di depan aplikasi web Anda, meneruskan permintaan ke sana, menyajikan aset statis, dan menghasilkan akses dan log kesalahan.

  • Grup keamanan instans — Grup EC2 keamanan Amazon yang dikonfigurasi untuk memungkinkan lalu lintas masuk pada port 80. Sumber daya ini memungkinkan HTTP lalu lintas dari penyeimbang beban mencapai EC2 instance yang menjalankan aplikasi web Anda. Secara default, lalu lintas tidak diizinkan di port lain.

  • Penyeimbang beban – Penyeimbang beban Elastic Load Balancing yang dikonfigurasi untuk mendistribusikan permintaan ke instans yang menjalankan aplikasi Anda. Penyeimbang beban juga menghilangkan kebutuhan untuk mengekspos instans Anda langsung ke internet.

  • Grup keamanan penyeimbang beban - Grup EC2 keamanan Amazon yang dikonfigurasi untuk memungkinkan lalu lintas masuk di port 80. Sumber daya ini memungkinkan HTTP lalu lintas dari internet mencapai penyeimbang beban. Secara default, lalu lintas tidak diizinkan di port lain.

  • Grup Auto Scaling – Grup Auto Scaling yang dikonfigurasi untuk menggantikan instans jika diakhiri atau menjadi tidak tersedia.

  • Bucket Amazon S3 – Lokasi penyimpanan untuk kode sumber, log, dan artifact lainnya yang dibuat saat Anda menggunakan Elastic Beanstalk.

  • CloudWatch Alarm Amazon — Dua CloudWatch alarm yang memantau beban pada instans di lingkungan Anda dan yang dipicu jika beban terlalu tinggi atau terlalu rendah. Saat alarm terpicu, grup Auto Scaling Anda akan menaikkan atau menurunkan skala sebagai respons.

  • AWS CloudFormation stack - Elastic AWS CloudFormation Beanstalk digunakan untuk meluncurkan sumber daya di lingkungan Anda dan menyebarkan perubahan konfigurasi. Sumber daya ditentukan di sebuah templat yang dapat Anda lihat di Konsol AWS CloudFormation.

  • Nama domain — Nama domain yang merutekan ke aplikasi web Anda dalam formulir subdomain.region.elasticbeanstalk.com.

    Keamanan domain

    Untuk meningkatkan keamanan aplikasi Elastic Beanstalk Anda, domain elasticbeanstalk.com terdaftar di Daftar Akhiran Publik (). PSL

    Jika Anda perlu mengatur cookie sensitif di nama domain default untuk aplikasi Elastic Beanstalk Anda, kami sarankan Anda menggunakan cookie __Host- dengan awalan untuk meningkatkan keamanan. Praktik ini melindungi domain Anda dari upaya pemalsuan permintaan lintas situs (). CSRF Untuk informasi selengkapnya, lihat halaman Set-Cookie di Jaringan Pengembang Mozilla.

Semua sumber daya ini dikelola oleh Elastic Beanstalk. Ketika Anda mengakhiri lingkungan, Elastic Beanstalk mengakhiri semua sumber daya yang dimuatnya.

catatan

Bucket Amazon S3 yang dibuat Elastic Beanstalk dibagi antar lingkungan dan tidak dihapus selama pengakhiran lingkungan. Untuk informasi selengkapnya, lihat Menggunakan Elastic Beanstalk dengan Amazon S3.

Tulis situs web dasar sinatra

Untuk membuat dan men-deploy aplikasi sinatra
  1. Membuat file konfigurasi bernama config.ru dengan konten berikut.

    contoh config.ru
    require './helloworld' run Sinatra::Application
  2. Buat file kode Ruby bernama helloworld.rb dengan konten berikut.

    contoh helloworld.rb
    require 'sinatra' get '/' do "Hello World!" end
  3. Buat Gemfile dengan konten berikut.

    contoh Gemfile
    source 'https://rubygems.org' gem 'sinatra' gem 'puma'
  4. Jalankan pemasangan bundel untuk menghasilkan Gemfile.lock

    ~/eb-sinatra$ bundle install Fetching gem metadata from https://rubygems.org/.... Resolving dependencies... Using bundler 2.2.22 Using rack 2.2.3 ...
  5. Agar Elastic Beanstalk berhasil menyebarkan aplikasi pada platform Ruby, kita perlu memperbarui. Gemfile.lock Beberapa dependensi Gemfile.lock mungkin spesifik platform. Oleh karena itu, kita platform ruby perlu menambahkan Gemfile.lock sehingga semua dependensi yang diperlukan diinstal dengan penerapan.

    ~/eb-sinatra$ bundle lock --add-platform ruby Fetching gem metadata from https://rubygems.org/.... Resolving dependencies... Writing lockfile to /Users/janedoe/EBDPT/RubyApps/eb-sinatra/Gemfile.lock
  6. Buat Procfile dengan konten berikut.

    contoh Procfile
    web: bundle exec puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb

Men-deploy aplikasi Anda

Membuat paket sumber yang berisi file sumber Anda. Perintah berikut membuat paket sumber yang bernama sinatra-default.zip.

~/eb-sinatra$ zip ../sinatra-default.zip -r * .[^.]*

Unggah paket sumber ke Elastic Beanstalk untuk men-deploy Sinatra ke lingkungan Anda.

Untuk men-deploy paket sumber
  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 halaman gambaran umum lingkungan, pilih Unggah dan deploy.

  4. Gunakan kotak dialog di layar untuk mengunggah paket sumber.

  5. Pilih Deploy.

  6. Ketika penyebaran selesai, Anda dapat memilih situs URL untuk membuka situs web Anda di tab baru.

Pembersihan

Jika Anda sudah selesai bekerja dengan Elastic Beanstalk, Anda dapat mengakhiri lingkungan Anda. Elastic Beanstalk AWS menghentikan semua sumber daya yang terkait dengan lingkungan Anda, seperti instans EC2 Amazon, instans database, penyeimbang beban, grup keamanan,dan alarm.

Untuk mengakhiri lingkungan Elastic Beanstalk Anda dari konsol
  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 bar pencarian untuk memfilter daftar lingkungan.

  3. Pilih Tindakan, lalu pilih Terminate environment.

  4. Gunakan kotak dialog di layar untuk mengonfirmasi pengakhiran lingkungan.

Dengan Elastic Beanstalk, Anda dengan mudah dapat membuat lingkungan baru untuk aplikasi Anda kapan saja.

Langkah selanjutnya

Untuk informasi lebih lanjut tentang Sinatra, kunjungi sinatrarb.com.

Ketika aplikasi terus dikembangkan, Anda mungkin akan menginginkan sebuah cara untuk mengelola lingkungan dan men-deploy aplikasi Anda tanpa membuat file .zip secara manual dan mengunggahnya ke konsol Elastic Beanstalk. Elastic Beanstalk Command Line Interface CLI (EB easy-to-use) menyediakan perintah untuk membuat, mengkonfigurasi, dan menyebarkan aplikasi ke lingkungan Elastic Beanstalk dari baris perintah.

Terakhir, jika Anda berencana menggunakan aplikasi Anda di lingkungan produksi, Anda akan ingin mengonfigurasi nama domain khusus untuk lingkungan Anda dan mengaktifkan HTTPS koneksi yang aman.