একটি অ্যাপ্লিকেশন লেখার সময়, আপনাকে একটি প্রধান সমস্যা নিয়ে ভাবতে হবে তা হল অ্যাপ্লিকেশনটি বিশ্বের অন্যান্য অংশের সাথে কীভাবে ভাগ করা হবে৷
একটি সাধারণ পদ্ধতি হল Heroku চালু করা। এটি সেট আপ করা সহজ এবং সম্পূর্ণরূপে পরিচালিত হয়৷ কিন্তু, দলগুলোর জন্য পরে Heroku বাদ দেওয়াও সাধারণ ব্যাপার। তাদের ট্রাফিক বাড়ার সাথে সাথে হেরোকু খুব ব্যয়বহুল এবং অনমনীয় হয়ে ওঠে।
যদি AWS-এর মতো সাধারণ-উদ্দেশ্য প্ল্যাটফর্ম থেকে আপনি যে নমনীয়তা এবং খরচ-সঞ্চয় পান তা ছেড়ে না দিয়ে Heroku-এর মতো সহজে একটি নতুন অ্যাপ্লিকেশন স্থাপন করা সম্ভব হলে কী হবে? এটি সম্ভব, ইলাস্টিক বিনস্টক ব্যবহার করে -- AWS থেকে একটি পরিষেবা।
এই নিবন্ধে, আমি আপনাকে একটি Rails 6 অ্যাপ্লিকেশন সেট আপ করতে এবং এটিকে এলাস্টিকবিনস্টাল্ক কম্পিউট বেস হিসাবে এবং RDS (রিলেশনাল ডেটাবেস পরিষেবা)- বিশেষ করে পোস্টগ্রেস পরিষেবা - ডেটা স্টোর হিসাবে ব্যবহার করে AWS-এ চালাতে যাচ্ছি৷ পি>
এই টিউটোরিয়ালের শেষে, আপনি নিম্নলিখিতগুলি করতে সক্ষম হবেন:
- কিছু রুট সহ একটি Rails 6 অ্যাপ সেট আপ করুন এবং এটি স্থানীয়ভাবে চালান।
- একটি AWS অ্যাকাউন্ট তৈরি করুন।
- মুক্ত-স্তরের সংস্থানগুলি ব্যবহার করে ইলাস্টিকবিনস্টালকে একটি অ্যাপ সেট আপ এবং স্থাপন করুন৷
চলো ডুব দিই।
Elasticbeanstalk এবং RDS কি?
Elasticbeanstalk কী এবং এটি যে সমস্যার সমাধান করে সে সম্পর্কে একটি পরিষ্কার ধারণা পেতে, প্রথমে আমাজনের EC2 অফার সম্পর্কে কথা বলা যাক৷
EC2 এর অর্থ হল ইলাস্টিক কম্পিউট ক্লাউড 2। এই পরিষেবাটি আপনাকে ভিপিসি সরবরাহ করার অনুমতি দেয়, যা মূলত শুধুমাত্র কম্পিউটার, আপনি যে ওএস চয়ন করেন (যেমন, উবুন্টু) চালান। আপনার অ্যাপটি তখন এই কম্পিউটারের অভ্যন্তরে বাস করবে এবং এর কাজগুলি প্রদান করতে ফাইল সিস্টেম এবং RAM এর মতো সংস্থানগুলি অ্যাক্সেস করবে৷ শেষ পর্যন্ত, আপনার অ্যাপটি আপনার স্থানীয় মেশিনে যেভাবে চলে ঠিক সেভাবেই চলবে, শুধুমাত্র অ্যামাজনের মালিকানাধীন একটি মেশিনে এবং অ্যামাজনের অবকাঠামো ব্যবহার করে ইন্টারনেটের মাধ্যমে অ্যাক্সেসযোগ্য৷
এখন, এলিস নামের একজন ব্যবহারকারীকে কল্পনা করুন, যিনি EC2 এ একটি উদাহরণ প্রদান করেছেন। অ্যালিসকে নিম্নলিখিতগুলি করতে হবে:
- তার অ্যাপে অনুরোধ করার জন্য একটি নিরাপত্তা গ্রুপ সেট আপ করুন।
- একটি লোড ব্যালেন্সার সেট আপ করুন৷
- উদাহরণে SSH, তার অ্যাপ এবং পরিবেশের গোপনীয়তা সেট আপ করুন এবং আরও অনেক কিছু।
যদিও এটি আপনাকে আপনার মেশিনের সম্পূর্ণ নিয়ন্ত্রণ দেয় এবং এটি কী এবং কীভাবে চলে, কখনও কখনও, আপনি অবকাঠামো নয় বরং অ্যাপে ফোকাস করতে চান। এখানেই ইলাস্টিকবিনস্টক আসে।
Elasticbeanstalk একটি CLI প্রদান করে যা এই সব করা সহজ করে এবং এর বেশিরভাগই স্বয়ংক্রিয় করে, যেমন নিরাপত্তা গোষ্ঠী এবং লোড ব্যালেন্সার তৈরি করা। যদিও অন্তর্নিহিত অবকাঠামোটি এখনও EC2, বিমূর্ততার একটি স্তর এটির উপরে যোগ করা হয়েছে, একটি ভিজ্যুয়াল ড্যাশবোর্ড সহ যা আপনাকে পরিবেশের ভেরিয়েবল, ডাটাবেস এবং স্বয়ংক্রিয়-স্কেলিং সেট আপ করার পাশাপাশি লগগুলি পেতে এবং অন্যান্য ফাংশন সম্পাদন করতে দেয়। একটি খুব সহজ পদ্ধতি।
রেল কি?
একটি ওয়েব অ্যাপ্লিকেশন চালু এবং চালু করার জন্য অনেক সরঞ্জাম ব্যবহার করা যেতে পারে। সাধারণত, আপনি যে লাইব্রেরি বা ফ্রেমওয়ার্কটি ব্যবহার করেন সেটি বেশিরভাগ ভাষা দ্বারা নির্ধারিত হয় যেটিতে এটি প্রোগ্রাম করা হয়।
আপনার পছন্দের ভাষা যদি রুবি হয়, তাহলে আপনি ব্যবহার করতে বেছে নিতে পারেন একটি জনপ্রিয় ফ্রেমওয়ার্ক হল রেল (আনুষ্ঠানিকভাবে রুবি অন রেল বলা হয়)। 2003 সালে বেসক্যাম্পে রেলগুলি তৈরি করা হয়েছিল, এবং বছরের পর বছর ধরে, এটি একটি পূর্ণ-বৈশিষ্ট্যযুক্ত এবং খুব পরিপক্ক ফ্রেমওয়ার্কে বিকশিত হয়েছে যাতে একটি আধুনিক ওয়েব অ্যাপ তৈরি করার জন্য আপনি যা ভাবতে পারেন তা প্রায় সবই অন্তর্ভুক্ত করে৷
আপনি রেল দিয়ে তৈরি করতে পারেন এমন কিছু জিনিস যা একটি ব্যক্তিগত ব্লগের মতো সহজ এবং Airbnb এবং Github-এর মতো জটিল কিছু অন্তর্ভুক্ত করে। আমি নিশ্চিত আপনি এই দুটি কোম্পানির সাথে পরিচিত, এবং হ্যাঁ, তারা রেলে চলে!
যদিও এই নিবন্ধটি AWS-এ একটি Rails অ্যাপ স্থাপনের উদাহরণ ব্যবহার করে, তবে Python/Django বা PHP/Laravel-এর মতো ব্যবহৃত ভাষা এবং কাঠামো নির্বিশেষে বেশিরভাগ মূল ধারণা একই থাকে৷
রেল সেট আপ করা
৷মনে রাখবেন যে নির্দেশিত কমান্ডগুলি বাক্সের বাইরে একটি UNIX/Linux-ভিত্তিক সিস্টেমে কাজ করবে। আপনি যদি উইন্ডোজে থাকেন, তাহলে Linux এবং/অথবা Microsoft Windows টার্মিনালের জন্য Windows সাবসিস্টেম ব্যবহার করার কথা বিবেচনা করুন৷
শুরুর জন্য, আপনার রুবি সংস্করণ যাচাই করুন:
ruby -v
যেকোনো কিছু 2.5.0
এবং উপরে যেতে ভাল. যদি না হয়, সর্বশেষ সংস্করণ পেতে এখানে যান. আমার 2.6.5 সংস্করণ ইনস্টল করা আছে।
আপনার রুবি ইনস্টলেশনের সাথে সবকিছু ঠিকঠাক থাকলে, এগিয়ে যান এবং রেলগুলি ইনস্টল করুন৷
৷gem install 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' }
])
DB-তে ডেটা যোগ করতে নিম্নলিখিত কমান্ডটি চালান:
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.
আপনাকে যা করতে হবে তা হল আপনার হোম ফোল্ডারে গিয়ে .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 DB তৈরি করুন
আমরা এখন এগিয়ে যাব এবং 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 groups
এর অধীনে ডিফল্ট গ্রুপে ক্লিক করুন ডান কলামে:
পরবর্তী পৃষ্ঠার নীচে, 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.
এ ক্লিক করুন এটি কিছুটা সময় নেবে, তাই ধৈর্য ধরুন।
একবার হয়ে গেলে, আপনার এমন একটি পৃষ্ঠা দেখতে হবে যা এইরকম দেখাচ্ছে:
এনভায়রনমেন্ট আইডির পরে দেওয়া ইউআরএল খুঁজুন। ইলাস্টিকবিনস্টালকের ডিফল্ট রুবি অ্যাপটি পরীক্ষা করতে এটিতে ক্লিক করুন। খুব শীঘ্রই, আপনার API একই URL-এ চলবে৷
৷আপনার অ্যাপকে স্থাপনার জন্য প্রস্তুত করুন
অ্যাপটিকে স্থাপনের জন্য প্রস্তুত করতে, আমাদের প্রথমে আমাদের ওয়েব সার্ভার কনফিগার করতে হবে।
যেহেতু রেলগুলি 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
মন্তব্য করে কনফিগার করুন এবং এর পরিবর্তে এটি ব্যবহার করুন:
production:
url: <%= ENV['DATABASE_URL'] %>
সবশেষে, AWS-এ আপনার Elasticbeanstalk কনসোলে যান, production-env
নির্বাচন করুন পরিবেশ, এবং তারপর Configuration.
এ যান
কনফিগারেশন ওভারভিউ স্ক্রিনে, Modify
এ ক্লিক করুন Software
এর জন্য অংশ:
।
এরপর, DATABASE_URL
যোগ করুন এবং RAILS_ENV
, এবং তারপর 'প্রয়োগ করুন'-এ ক্লিক করুন:
মনে রাখবেন যে আপনার DB URL টি
Endpoint
ব্যবহার করে তৈরি করা হয়েছে আপনি RDS ড্যাশবোর্ড থেকে আগে নোট করেছেন। এটিpostgresql://postgres:YOURPASSWORD@ENDPOINT:5432/movie_api_db
ফর্ম্যাটে রয়েছে . আপনার বেছে নেওয়া পাসওয়ার্ড মনে না থাকলে, আপনিModify
এ পরিবর্তন করতে পারেন আপনার DB এর RDS ড্যাশবোর্ডের বিভাগ।
ম্যানুয়াল স্থাপনা
এটি কমান্ড লাইন থেকে আপনার অ্যাপের একটি জিপ ফাইল তৈরি করা এবং তারপর এটিকে আপনার ইলাস্টিকবিনস্টালক কনসোলে আপলোড করার মতোই সহজ৷
প্রথমত, cd
প্রকল্প ফোল্ডারে। একটি জিপ ফাইল তৈরি করতে, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:
zip -r deploy_1.zip .
deploy_1.zip
তৈরি করা জিপ ফোল্ডারের নাম হবে এবং এটি অন্যান্য ফাইলের সাথে আপনার প্রকল্প ডিরেক্টরিতে প্রদর্শিত হবে। সম্পন্ন? চমৎকার। AWS-এ।
Elasticbeanstalk এর ড্যাশবোর্ড থেকে, Upload and Deploy
এ ক্লিক করুন :
আপনি সংস্করণ লেবেলটিকে আরও অর্থপূর্ণ কিছুতে পরিবর্তন করতে পারেন:
একবার Elasticbeanstalk পরিবেশ আপডেট করা শেষ হলে, আপনি আপনার API চলমান দেখতে আপনার পরিবেশ URL দেখতে পারেন! কিছু অনুরোধ পাঠাতে এবং AWS-এ আপনার DB পূরণ করতে আপনি একটি বিনামূল্যের পরিষেবা ব্যবহার করতে পারেন, যেমন এটি৷
EB CLI এর সাথে স্থাপনা
Elasticbeanstalk CLI কিছু কমান্ডের সাহায্যে এই মুহুর্তে আপনাকে ম্যানুয়ালি যা করতে হয়েছে তার বেশিরভাগই সহজ করে তোলে। আমি আপনাকে দেখাব কিভাবে এটি সেট আপ করবেন এবং আমাদের বর্তমান প্রকল্পে এটি ব্যবহার করবেন। এটি সব আপনার IAM ব্যবহারকারীর সঠিকভাবে সেট আপ করার উপর নির্ভর করে, তাই নিশ্চিত করুন যে এই ধাপ থেকে সবকিছু ঠিক আছে বা আপনার কাছে আপনার শংসাপত্র সহ CSV প্রস্তুত আছে।
বেশিরভাগ কম্পিউটারের জন্য, আপনার ইতিমধ্যেই পাইথন ইনস্টল করা উচিত। ইনস্টলেশন, তাই, নিম্নলিখিত হিসাবে সহজ হবে:
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)
রুবি সংস্করণ অংশের জন্য, 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, এবং কিভাবে অ্যাপটি ব্যবহার করতে হয়।
আমাদের ক্লাউড অ্যাপে ডিপ্লয়মেন্ট স্বয়ংক্রিয় করতে ইলাস্টিকবিনস্টালক সিএলআই কীভাবে ব্যবহার করবেন তাও আমরা কভার করেছি। আপনি এখন শিখেছেন কিভাবে আপনার স্থানীয় মেশিনে কাজ করা অ্যাপ থেকে AWS-এ বিশ্বের সাথে শেয়ার করা একটি কার্যকরী অ্যাপে যেতে হয়।