เมื่อเขียนแอปพลิเคชัน ประเด็นสำคัญประการหนึ่งที่คุณต้องคำนึงถึงคือวิธีการแชร์แอปพลิเคชันกับคนทั่วโลก
วิธีการทั่วไปอย่างหนึ่งคือการเปิดตัว Heroku ตั้งค่าได้ง่ายและมีการจัดการเต็มรูปแบบ แต่ก็เป็นเรื่องปกติที่ทีมจะดร็อป Heroku ในภายหลัง เมื่อปริมาณการใช้งานเพิ่มขึ้น Heroku ก็มีราคาแพงและไม่ยืดหยุ่น
จะเกิดอะไรขึ้นถ้าเป็นไปได้ที่จะปรับใช้แอปพลิเคชันใหม่ด้วยความง่ายดายเหมือน Heroku โดยไม่สูญเสียความยืดหยุ่นและประหยัดค่าใช้จ่ายที่คุณได้รับจากแพลตฟอร์มเอนกประสงค์เช่น AWS เป็นไปได้โดยใช้ Elastic Beanstalk ซึ่งเป็นบริการจาก AWS
ในบทความนี้ ฉันจะแนะนำคุณเกี่ยวกับการตั้งค่าแอปพลิเคชัน Rails 6 และใช้งานบน AWS โดยใช้ Elasticbeanstalk เป็นฐานการคำนวณและ RDS (บริการฐานข้อมูลเชิงสัมพันธ์) โดยเฉพาะอย่างยิ่ง บริการ Postgres - เป็นที่เก็บข้อมูล
P>ในตอนท้ายของบทช่วยสอนนี้ คุณควรจะทำสิ่งต่อไปนี้ได้:
- ตั้งค่าแอป Rails 6 ด้วยเส้นทางสองสามเส้นทางและเรียกใช้ในเครื่อง
- สร้างบัญชี AWS
- ตั้งค่าและปรับใช้แอปกับ Elasticbeanstalk โดยใช้ทรัพยากรแบบฟรีเทียร์
มาดำน้ำกันเถอะ
Elasticbeanstalk และ RDS คืออะไร
เพื่อให้เข้าใจชัดเจนว่า Elasticbeanstalk คืออะไรและแก้ปัญหาได้ อันดับแรก เรามาพูดถึงข้อเสนอ EC2 ของ Amazon
EC2 ย่อมาจาก Elastic Compute Cloud 2 บริการนี้อนุญาตให้คุณจัดเตรียม VPC ซึ่งโดยพื้นฐานแล้วเป็นเพียงคอมพิวเตอร์ ใช้งานระบบปฏิบัติการใดก็ได้ที่คุณเลือก (เช่น Ubuntu) แอปของคุณจะอยู่ภายในคอมพิวเตอร์เครื่องนี้และเข้าถึงทรัพยากรต่างๆ เช่น ระบบไฟล์และ RAM เพื่อส่งมอบงาน ในท้ายที่สุด แอปของคุณจะทำงานคล้ายกับที่ทำงานบนเครื่องในพื้นที่ของคุณ เฉพาะในเครื่องที่เป็นของ Amazon และเข้าถึงได้ทางอินเทอร์เน็ตโดยใช้โครงสร้างพื้นฐานของ Amazon
ตอนนี้ ลองนึกภาพผู้ใช้ชื่อ Alice ที่ได้จัดเตรียมอินสแตนซ์บน EC2 อลิซจะต้องทำสิ่งต่อไปนี้:
- ตั้งกลุ่มความปลอดภัยเพื่ออนุญาตคำขอไปยังแอปของเธอ
- ตั้งค่าตัวโหลดบาลานซ์
- SSH ในอินสแตนซ์ ตั้งค่าแอปและข้อมูลลับของสภาพแวดล้อม และอื่นๆ
แม้ว่าวิธีนี้จะช่วยให้คุณควบคุมเครื่องได้อย่างเต็มที่ รวมถึงการทำงานและการทำงานอย่างไร ในบางครั้ง คุณต้องการมุ่งเน้นที่แอป ไม่ใช่โครงสร้างพื้นฐาน นี่คือที่มาของ Elasticbeanstalk
Elasticbeanstalk มี CLI ที่ช่วยให้ทำทั้งหมดนี้ได้ง่ายขึ้นและจะทำให้การทำงานส่วนใหญ่เป็นแบบอัตโนมัติ เช่น การสร้างกลุ่มความปลอดภัยและโหลดบาลานเซอร์ ในขณะที่โครงสร้างพื้นฐานพื้นฐานยังคงเป็น EC2 เลเยอร์ของสิ่งที่เป็นนามธรรมจะถูกเพิ่มเข้าไปด้านบนด้วยแดชบอร์ดภาพที่ช่วยให้คุณตั้งค่าตัวแปรสภาพแวดล้อม ฐานข้อมูล และการปรับขนาดอัตโนมัติ ตลอดจนรับบันทึกและดำเนินการฟังก์ชันอื่นๆ ใน ด้วยวิธีง่ายๆ
รางคืออะไร
สามารถใช้เครื่องมือหลายอย่างเพื่อทำให้เว็บแอปพลิเคชันทำงาน โดยปกติ ไลบรารีหรือเฟรมเวิร์กที่คุณใช้นั้นส่วนใหญ่จะกำหนดโดยภาษาที่มันถูกตั้งโปรแกรมไว้
หากภาษาที่คุณเลือกคือ Ruby เฟรมเวิร์กยอดนิยมที่คุณสามารถเลือกใช้ได้คือ Rails (เรียกอย่างเป็นทางการว่า Ruby on Rails) Rails ถูกสร้างขึ้นที่ Basecamp ในปี 2003 และในช่วงหลายปีที่ผ่านมาได้พัฒนาเป็นเฟรมเวิร์กที่มีคุณสมบัติครบถ้วนและสมบูรณ์มาก ซึ่งรวมถึงเกือบทุกอย่างที่คุณคิดเพื่อสร้างเว็บแอปที่ทันสมัย
บางสิ่งที่คุณสามารถสร้างด้วยรางได้นั้นรวมถึงบางสิ่งที่เรียบง่ายอย่างบล็อกส่วนตัวไปจนถึงบางสิ่งที่ซับซ้อนอย่าง Airbnb และ Github ฉันแน่ใจว่าคุณคุ้นเคยกับสองบริษัทนี้ และใช่ พวกเขาทำงานบน Rails!
แม้ว่าบทความนี้จะใช้ตัวอย่างของการปรับใช้แอป Rails กับ AWS แต่แนวคิดหลักส่วนใหญ่ยังคงเหมือนเดิมโดยไม่คำนึงถึงภาษาและเฟรมเวิร์กที่ใช้ เช่น Python/Django หรือ PHP/Laravel
การติดตั้งราง
โปรดทราบว่าคำสั่งที่แสดงไว้จะทำงานบนระบบที่ใช้ UNIX/Linux ได้ทันที หากคุณใช้ Windows ให้พิจารณาใช้ระบบย่อย Windows สำหรับ Linux และ/หรือ Microsoft Windows Terminal
สำหรับผู้เริ่มต้น ให้ตรวจสอบเวอร์ชัน Ruby ของคุณ:
ruby -v
อะไรก็ได้ 2.5.0
และข้างต้นเป็นสิ่งที่ดีที่จะไป ถ้าไม่ไปที่นี่เพื่อรับเวอร์ชันล่าสุด ฉันติดตั้งเวอร์ชัน 2.6.5 แล้ว
หากทุกอย่างลงตัวกับการติดตั้ง Ruby ของคุณ ให้ติดตั้ง Rails เลย
gem install rails
เมื่อคำสั่งนั้นทำงาน ให้ยืนยันเวอร์ชัน Rails ของคุณ:
rails --version
หากคุณเห็นสิ่งใดที่สูงกว่า 6.0.0 แสดงว่าคุณพร้อมที่จะอ่านบทแนะนำที่เหลือ
การตั้งค่า Postgres
เราจะใช้ Postgres DB เป็นที่เก็บข้อมูลสำหรับบทช่วยสอนนี้ นี่คือคำแนะนำที่ดีในการติดตั้งบนทุกแพลตฟอร์ม
การเพิ่มและเรียกใช้โค้ดของเรา
เราจะสร้าง API อย่างง่ายเพื่อเก็บข้อมูลภาพยนตร์ เช่น ชื่อ ปีที่ออกฉาย และประเภท API จะมีจุดปลาย 2 จุดเท่านั้น คือ GET &POST เพื่อวัตถุประสงค์ในการสาธิต
สร้างแอป Rails API ใหม่ด้วยคำสั่งต่อไปนี้:
rails new movie-api --api --database=postgresql
เมื่อคำสั่งดังกล่าวทำงานสำเร็จ อย่าลืมเปลี่ยนไดเร็กทอรีเป็นโฟลเดอร์โครงการที่สร้างขึ้นก่อนที่จะรันคำสั่งถัดไป
จากนั้น เราสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างโมเดลของเรา:
rails generate model Movie name:string year:integer genre:string
ตอนนี้มาตั้งค่าฐานข้อมูลและเรียกใช้การย้ายข้อมูล:
rails db:setup
rails db:migrate
หากสองคำสั่งนี้สำเร็จ คุณควรจะเห็นการโยกย้ายใหม่ใน db/migrate
โฟลเดอร์ที่มีรหัสคล้ายกับต่อไปนี้:
class CreateMovies < ActiveRecord::Migration[6.0]
def change
create_table :movies do |t|
t.string :name
t.integer :year
t.string :genre
t.timestamps
end
end
end
จากนั้นเราจะดำเนินการต่อและเพิ่มรหัสตรรกะตัวควบคุมสำหรับปลายทาง API ของเรา:
rails g controller api/Movies
จากนั้น เพิ่มโค้ดต่อไปนี้ลงในไฟล์ app/controllers/movies_controller.rb
:
class Api::MoviesController < ApplicationController
# GET /movies
def show
@movies = Movie.all
render json: @movies
end
# POST /movies
def create
@movie = Movie.new(movie_params)
if @movie.save
render json: @movie
else
render error: {error: 'Failed to add movie record'}, status: 400
end
end
private
def movie_params
params.require(:movie).permit(:name, :year, :genre)
end
end
มากำหนดเส้นทางกัน รหัสนี้จะเข้าไปที่ config/routes.rb.
Rails.application.routes.draw do
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
namespace :api do
resource :movies
end
end
ณ จุดนี้ คุณสามารถทำการตรวจสุขภาพโดยใช้rails routes
คำสั่งตรวจสอบว่าทุกอย่างทำงานอย่างถูกต้อง คุณควรเห็นผลลัพธ์ที่มีบางสิ่งที่คล้ายกับต่อไปนี้:
ก่อนเรียกใช้เซิร์ฟเวอร์ของเรา มาเพิ่มข้อมูลเมล็ดพันธุ์ใน db/seeds.rb
:
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the Rails db:seed command (or created alongside the database with db:setup).
movies = Movie.create([
{ name: 'Star Wars', year: 1977, genre: 'SCI-FI'},
{ name: 'Lord of the Rings', year: 2001, genre: 'Fantasy' }
])
เรียกใช้คำสั่งต่อไปนี้เพื่อเพิ่มข้อมูลลงในฐานข้อมูล:
rails db:seed
ตอนนี้คุณสามารถเรียกใช้ API ด้วยคำสั่งต่อไปนี้:
rails s
หากคุณไปที่ https://127.0.0.1:3000/api/movies,
คุณควรเห็นข้อมูลเมล็ดพันธุ์ของเรา:
[
{
"id": 1,
"name": "Star Wars",
"year": 1977,
"genre": "SCI-FI",
"created_at": "2020-01-01T10:04:56.100Z",
"updated_at": "2020-01-01T10:04:56.100Z"
},
{
"id": 2,
"name": "Lord of the Rings",
"year": 2001,
"genre": "Fantasy",
"created_at": "2020-01-01T10:04:56.108Z",
"updated_at": "2020-01-01T10:04:56.108Z"
}
]
การสร้างบัญชี AWS ของคุณ
สำหรับผู้เริ่มต้น ไปที่เว็บไซต์นี้ หากคุณยังไม่มีบัญชี หรือคุณยังไม่ได้ลงชื่อเข้าใช้จากเบราว์เซอร์ คุณควรเห็นหน้าคล้ายกับสิ่งนี้:
ไปข้างหน้าและคลิกสีส้ม Create an AWS Account
ปุ่มที่มุมบนขวา (หรือถ้าคุณมีบัญชี ให้ลงชื่อเข้าใช้คอนโซลของคุณ) เมื่อคุณกรอกแบบฟอร์มลงทะเบียนแล้ว (อย่าลืมเลือก Account Type
เป็น Personal
เมื่อกรอกที่อยู่ของคุณ) คุณจะถูกทิ้งลงในคอนโซล อย่าลืมยืนยันที่อยู่อีเมลของคุณ!
อย่ากังวลหากสิ่งต่างๆ ดูล้นหลาม UI นั้นค่อนข้างง่ายในการนำทางเมื่อคุณรู้ว่าคุณต้องการไปที่ไหน
ตั้งค่าผู้ใช้ IAM
สิ่งต่อไปที่เราต้องทำคือตั้งค่าผู้ใช้ IAM ซึ่งจะทำให้เราเข้าถึงคีย์ API ที่เราสามารถใช้กับ SSH และเข้าถึงทรัพยากรของเราจากภายนอก AWS ได้
ยังเป็นความคิดที่ดีที่จะมีผู้ใช้ IAM แยกต่างหากที่มีสิทธิ์เข้าถึงเฉพาะทรัพยากรที่ผู้ใช้ต้องการ แทนที่จะใช้ข้อมูลรับรองของผู้ดูแลระบบเริ่มต้นเพื่อความปลอดภัย
ในโฮมเพจ ค้นหา IAM และไปที่โฮมเพจ IAM
ในหน้าแรกของ IAM ใต้ IAM Resources,
คลิกที่ Users: 0.
หลังจากนั้น คลิก Add User.
คุณสามารถกรอกชื่อผู้ใช้ที่คุณต้องการ แล้วเลือกช่องทำเครื่องหมายสำหรับ Programmatic access.
ในหน้าจอถัดไป ให้เลือก Attach existing policies directly
แล้วใช้ช่องค้นหาเพื่อค้นหา AdministratorAccess.
ในหน้าถัดไป ให้เพิ่มแท็กชื่อเพื่อให้คุณสามารถระบุผู้ใช้ของคุณได้ในภายหลังจากรายการข้อมูลประจำตัว IAM:
สุดท้าย ในหน้ารีวิว ให้คลิกที่ Create User.
ในหน้าถัดไป ดาวน์โหลดไฟล์ CSV โดยใช้ข้อมูลประจำตัวของคุณ เราต้องการมันในช่วงสุดท้าย
เมื่อคุณมีไฟล์ชื่อ credentials.csv,
คุณสามารถเปิดในแอพสเปรดชีตหรือตัวแก้ไขเพื่อดูค่าในนั้น เราสนใจ Access key ID
และ Secret accesss key.
สิ่งสุดท้ายที่คุณต้องทำคือไปที่โฟลเดอร์ HOME และสร้างโฟลเดอร์ชื่อ .aws
. ภายในโฟลเดอร์นี้ ให้วางไฟล์ชื่อ config.
สังเกตว่าชื่อโฟลเดอร์ขึ้นต้นด้วย .
และไฟล์ไม่มีนามสกุล เส้นทางแบบเต็มควรมีลักษณะดังนี้ /Users/your-user/.aws/config.
หากคุณไม่สามารถสร้าง
.aws
โฟลเดอร์และconfig
ไฟล์ คุณสามารถข้ามไปได้เลย สิ่งสำคัญคือต้องมีไฟล์ CSV ที่มีข้อมูลประจำตัวอยู่ในมือเพื่อใช้ในภายหลัง
วางสิ่งต่อไปนี้ลงใน config
ไฟล์:
[profile eb-cli]
region = us-east-1
aws_access_key_id = your-aws-access-key-id
aws_secret_access_key = your-aws-secret-access-key
คุณสามารถค้นหาภูมิภาค AWS ของคุณได้ที่มุมบนขวาของหน้าบัญชี AWS เมื่อคุณลงชื่อเข้าใช้
สร้างฐานข้อมูล RDS
ตอนนี้เราจะดำเนินการต่อและสร้าง Postgres DB ซึ่งแอปของเราจะสื่อสาร เช่นเดียวกับ IAM คุณสามารถใช้ช่องค้นหาในหน้าแรกเพื่อค้นหา RDS และไปที่ช่องนั้นได้
ในหน้าแรกของ RDS ให้คลิกที่ Create database.
ในหน้าถัดไป ให้เลือก Standard Create
; จากนั้นภายใต้ Engine Options,
เลือก PostgreSQL.
ขณะที่คุณเลื่อนต่อไป ให้เลือก Free tier
ภายใต้ Templates
และภายใต้ Settings,
ให้ DB instance identifier
เป็น movie-api.
คุณสามารถฝาก Master username
เป็น postgres,
แต่ไปข้างหน้าและเพิ่มรหัสผ่าน
ข้ามส่วน DB instance size,
Storage,
และ Availability & durability.
ภายใต้ Connectivity,
เลือก Additional connectivity configuration
และตั้งค่า Publicly accessible
ถึง Yes
และ VPC Security group
เพื่อ Create new.
.
ดำเนินการต่อและข้าม Database authentication.
ภายใต้ Additional configuration,
อย่าลืมเพิ่ม Initial database name
; movie_api_db
จะทำ. เมื่อตั้งค่าแล้ว ให้ข้ามส่วนอื่นๆ แล้วคลิก Create database.
ที่ด้านล่างของหน้า
สุดท้าย กลับไปที่แดชบอร์ด RDS คลิกที่กลุ่มเริ่มต้นภายใต้ VPC Security group
ในคอลัมน์ขวา:
ที่ด้านล่างของหน้าถัดไป ให้เลือก Inbound
และแก้ไขกฎให้มีลักษณะดังนี้:
นอกจากนี้ ตรวจสอบให้แน่ใจว่า Outbound
กฎมีลักษณะดังนี้:
สร้างแอป Elasticbeanstalk
ไปที่โฮมเพจที่ยืดหยุ่นได้และคลิก Create New Application.
กรอกแบบฟอร์มใบสมัครใหม่ตามความจำเป็น
จากนั้นคุณจะเห็นหน้าที่มีข้อความ No environments currently exist for this application. Create one now.
คลิกที่ Create one now.
จากนั้นเลือก Web server environment.
ในส่วนถัดไป ให้เปลี่ยน Environment name
ถึง production-env.
ออกจาก Domain
ว่างเปล่า. จากนั้น ภายใต้ Base Configuration,
เลือก Preconfigured platform
แล้วเลือก Ruby
จากเมนูแบบเลื่อนลง สามารถฝาก Application code
ใน Sample application
; จากนั้นคลิก Create environment.
การดำเนินการนี้จะใช้เวลาสักครู่ ดังนั้นโปรดอดทนรอ
เมื่อเสร็จแล้ว คุณควรเห็นหน้าที่มีลักษณะดังนี้:
ค้นหา URL ที่ให้ไว้หลัง ID สภาพแวดล้อม คลิกเพื่อดูแอป Ruby เริ่มต้นบน elasticbeanstalk เร็วๆ นี้ API ของคุณจะทำงานบน URL เดียวกัน
ทำให้แอปของคุณพร้อมสำหรับการปรับใช้
เพื่อให้แอปพร้อมสำหรับการใช้งาน เราต้องกำหนดค่าเว็บเซิร์ฟเวอร์ของเราก่อน
เนื่องจาก Rails มาพร้อมกับ Puma ซึ่งเป็นเว็บเซิร์ฟเวอร์ที่พร้อมใช้งานจริงและเป็นเซิร์ฟเวอร์เริ่มต้น คุณจึงสามารถแก้ไขไฟล์ปรับแต่งได้โดยตรงที่ config/puma.rb.
แก้ไขไฟล์ของคุณให้มีลักษณะดังนี้:
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
port ENV.fetch("PORT") { 3000 }
# Specifies the `environment` that Puma will run in.
#
environment ENV.fetch("RAILS_ENV") { "development" }
# Specifies the `pidfile` that Puma will use.
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
# Specifies the number of `workers` to boot in clustered mode.
# Workers are forked web server processes. If using threads and workers together,
# the concurrency of the application would be max `threads` * `workers.`
# Workers do not work on JRuby or Windows (both of which do not support
# processes).
#
workers ENV.fetch("WEB_CONCURRENCY") { 2 } # <------ uncomment this line
# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
# process behavior so workers use less memory.
#
preload_app! # <------ uncomment this line
# Allow Puma to be restarted by the `Rails restart` command.
plugin :tmp_restart
แก้ไขด้านล่างของ config/database.yml
โดยการแสดงความคิดเห็น production
. ที่มีอยู่ config และใช้สิ่งนี้แทน:
production:
url: <%= ENV['DATABASE_URL'] %>
สุดท้าย ไปที่คอนโซล Elasticbeanstalk ของคุณบน AWS เลือก production-env
สภาพแวดล้อม จากนั้นไปที่ Configuration.
ในหน้าจอภาพรวมการกำหนดค่า ให้คลิกที่ Modify
สำหรับ Software
ส่วน:
.
ถัดไป เพิ่ม DATABASE_URL
และ RAILS_ENV
จากนั้นคลิกที่ 'Apply':
โปรดทราบว่า DB URL ของคุณสร้างขึ้นโดยใช้
Endpoint
คุณรับทราบก่อนหน้านี้จากแดชบอร์ด RDS อยู่ในรูปแบบpostgresql://postgres:YOURPASSWORD@ENDPOINT:5432/movie_api_db
. หากคุณจำรหัสผ่านที่เลือกไม่ได้ คุณสามารถเปลี่ยนได้ในModify
ของแดชบอร์ด RDS ของฐานข้อมูลของคุณ
การปรับใช้ด้วยตนเอง
ง่ายเหมือนการสร้างไฟล์ zip ของแอปจากบรรทัดคำสั่ง แล้วอัปโหลดบนคอนโซล Elasticbeanstalk ของคุณ
ก่อนอื่น cd
ลงในโฟลเดอร์โครงการ ในการสร้างไฟล์ zip คุณสามารถเรียกใช้คำสั่งต่อไปนี้:
zip -r deploy_1.zip .
deploy_1.zip
จะเป็นชื่อของโฟลเดอร์ zip ที่สร้างขึ้น และจะปรากฏในไดเร็กทอรีโครงการของคุณพร้อมกับไฟล์อื่นๆ เสร็จแล้ว? ยอดเยี่ยม. สู่ AWS
จากแดชบอร์ดของ Elasticbeanstalk ให้คลิกที่ Upload and Deploy
:
คุณสามารถเปลี่ยนป้ายกำกับเวอร์ชันเป็นสิ่งที่มีความหมายมากขึ้น:
เมื่อ Elasticbeanstalk อัปเดตสภาพแวดล้อมเสร็จแล้ว คุณสามารถเยี่ยมชม URL สภาพแวดล้อมของคุณเพื่อดู API ของคุณทำงาน! คุณสามารถใช้บริการฟรีเช่นนี้ เพื่อส่งคำขอบางส่วนและเติมฐานข้อมูลของคุณบน AWS
การทำให้ใช้งานได้ด้วย EB CLI
Elasticbeanstalk CLI ทำให้สิ่งที่คุณต้องทำด้วยตนเองเกือบทั้งหมดจนถึงจุดนี้ทำได้ง่ายมากด้วยคำสั่งเพียงไม่กี่คำสั่ง ฉันจะแสดงวิธีตั้งค่าและใช้งานในโครงการปัจจุบันของเรา ทั้งหมดนี้ขึ้นอยู่กับการตั้งค่าผู้ใช้ IAM ของคุณอย่างถูกต้อง ดังนั้นตรวจสอบให้แน่ใจว่าทุกอย่างจากขั้นตอนนั้นใช้ได้ หรือคุณมี CSV พร้อมข้อมูลรับรองของคุณพร้อม
สำหรับคอมพิวเตอร์ส่วนใหญ่ คุณควรติดตั้ง Python ไว้แล้ว การติดตั้งจึงทำได้ง่ายดังนี้:
pip install awsebcli --user
บน MacOS คุณยังสามารถใช้:
brew install awsebcli
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการติดตั้งได้ที่นี่
เมื่อการติดตั้งเสร็จสิ้น cd
ไปยังโฟลเดอร์โครงการของคุณและเรียกใช้ eb init.
ทำตามคำแนะนำตามสภาพแวดล้อม AWS ของคุณ เลือกภูมิภาคโดยป้อนการเลือกหมายเลขที่ถูกต้อง:
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) cn-northwest-1 : China (Ningxia)
14) us-east-2 : US East (Ohio)
15) ca-central-1 : Canada (Central)
16) eu-west-2 : EU (London)
17) eu-west-3 : EU (Paris)
สำหรับส่วนเวอร์ชัน Ruby ให้เลือกเวอร์ชันที่เกี่ยวข้องโดยใช้ Puma:
1) Ruby 2.6 (Passenger Standalone)
2) Ruby 2.6 (Puma)
3) Ruby 2.5 (Passenger Standalone)
4) Ruby 2.5 (Puma)
5) Ruby 2.4 (Passenger Standalone)
6) Ruby 2.4 (Puma)
7) Ruby 2.3 (Passenger Standalone)
8) Ruby 2.3 (Puma)
9) Ruby 2.2 (Passenger Standalone)
10) Ruby 2.2 (Puma)
11) Ruby 2.1 (Passenger Standalone)
12) Ruby 2.1 (Puma)
13) Ruby 2.0 (Passenger Standalone)
14) Ruby 2.0 (Puma)
15) Ruby 1.9.3
ฉันเลือก 2.
ทำตามข้อความแจ้งที่เหลือและเลือก 'ไม่' เพื่อใช้ CodeCommit
และ 'ไม่' เพื่อตั้งค่า SSH
หากคุณไม่ได้ตั้งค่าการกำหนดค่า AWS CLI จะแจ้งให้คุณใส่คีย์ AWS เพิ่มได้ตามต้องการ
เมื่อดำเนินการเสร็จแล้ว CLI จะออกจากการทำงาน จากนั้นคุณสามารถเรียกใช้คำสั่งต่างๆ เช่น eb status,
เพื่อตรวจสอบสถานะของแอปที่เราปรับใช้
Environment details for: production-env
Application name: movie-api
Region: us-east-2
Deployed Version: Deploy 2-2
Environment ID: e-mab3kjy6pp
Platform: arn:aws:elasticbeanstalk:us-east-2::platform/Puma with Ruby 2.6 running on 64bit Amazon Linux/2.11.1
Tier: WebServer-Standard-1.0
CNAME: production-env.qnbznvpp2t.us-east-2.elasticbeanstalk.com
Updated: 2020-01-22 23:37:17.183000+00:00
Status: Ready
Health: Green
ในการปรับใช้เวอร์ชันใหม่ เพียงเรียกใช้ eb deploy.
และนั่นแหล่ะ! คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคำสั่ง CLI อื่นๆ ที่คุณสามารถลองใช้ได้ที่นี่
สรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้วิธีตั้งค่า Rails API อย่างง่าย วิธีตั้งค่าทรัพยากร AWS เช่น Elasticbeanstalk และ RDS และวิธีปรับใช้แอปเพื่อใช้งาน
เรายังครอบคลุมถึงวิธีใช้ Elasticbeanstalk CLI ในการปรับใช้แอประบบคลาวด์ของเราโดยอัตโนมัติ ตอนนี้คุณได้เรียนรู้วิธีเปลี่ยนจากแอปที่ใช้งานได้บนเครื่องในพื้นที่ของคุณไปยังแอปที่ใช้งานได้ซึ่งแชร์กับคนทั้งโลกบน AWS