কম্পিউটার টিউটোরিয়াল

AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

একটি অ্যাপ্লিকেশন লিখার সময় আপনার চিন্তা করতে হবে বড় একটি বিষয় হলো — অ্যাপটি কীভাবে বিশ্বের সাথে শেয়ার করা যাবে।

একটি সাধারণ পদ্ধতি হলো Heroku-এ লঞ্চ করা। এটি সেটআপ করা সহজ এবং ফুলি ম্যানেজড। কিন্তু ট্রাফিক বাড়ার সাথে সাথে Heroku খুব ব্যয়বহুল এবং অনমনীয় হয়ে যায়, তাই অনেক টিম পরে Heroku ছেড়ে দেয়।

কি হবে যদি Heroku-এর মতো সহজে ডিপ্লয় করা যায়, কিন্তু AWS-এর মতো জেনারেল-পারপাস প্ল্যাটফর্মের ফ্লেক্সিবিলিটি এবং খরচ বাঁচাওও পাওয়া যায়? এটি সম্ভব Elastic Beanstalk দিয়ে — AWS-এর একটি সার্ভিস।

এই আর্টিকেলে আমি আপনাকে দেখাব কীভাবে একটি Rails 6 অ্যাপ্লিকেশন সেটআপ করে AWS-এ Elastic Beanstalk কম্পিউট বেস এবং RDS (Relational Database Service) — বিশেষ করে Postgres সার্ভিস — ডেটা স্টোর হিসেবে ব্যবহার করে রান করানো যায়।

এই টিউটোরিয়ালের শেষে আপনি নিচের কাজগুলো করতে পারবেন:

  1. কয়েকটি রাউট সহ একটি Rails 6 অ্যাপ সেটআপ করে লোকালি রান করুন।
  2. AWS একাউন্ট তৈরি করুন।
  3. ফ্রি-টিয়ার রিসোর্স ব্যবহার করে Elastic Beanstalk-এ অ্যাপ ডিপ্লয় করুন।

চলুন শুরু করি।

Elastic Beanstalk এবং RDS কী?

Elastic Beanstalk কী এবং এটি কী সমস্যা সমাধান করে সেটি বুঝতে প্রথমে Amazon-এর EC2 অফারিং সম্পর্কে কথা বলি।

EC2 মানে Elastic Compute Cloud 2। এই সার্ভিস আপনাকে VPC প্রোভিশন করতে দেয়, যা বেসিকলি আপনার পছন্দমত OS (যেমন Ubuntu) চালিত কম্পিউটার। আপনার অ্যাপ এই কম্পিউটারের ভিতরে থাকবে এবং ফাইল সিস্টেম, RAM এর মতো রিসোর্স ব্যবহার করে টাস্ক সম্পন্ন করবে। শেষ পর্যন্ত আপনার অ্যাপ আপনার লোকাল মেশিনের মতোই চলবে, শুধু Amazon-এর মালিকানাধীন একটি মেশিনে এবং Amazon-এর ইনফ্রাস্ট্রাকচার ব্যবহার করে ইন্টারনেট থেকে অ্যাক্সেসযোগ্য।

এখন কল্পনা করুন Alice নামের একটি ইউজার EC2-এ একটি ইন্সট্যান্স প্রোভিশন করেছে। Alice-এর করতে হবে:

  • তাকের অ্যাপে রিকোয়েস্টের জন্য সিকিউরিটি গ্রুপ সেটআপ।
  • লোড ব্যালেন্সার সেটআপ।
  • ইন্সট্যান্সে SSH করে অ্যাপ এবং এনভায়রনমেন্ট সিক্রেটস সেটআপ করা।

এটি আপনাকে আপনার মেশিন এবং সেটি কী ও কীভাবে রান করবে সেটির পূর্ণ নিয়ন্ত্রণ দেয়, কিন্তু иногда আপনি ইনফ্রাস্ট্রাকচারের বদলে অ্যাপে ফোকাস করতে চান। এখানেই Elastic Beanstalk কাজে লাগে।

Elastic Beanstalk একটি CLI প্রদান করে যা সব কিছু সহজ করে তোলে এবং অধিকাংশটিকে অটোমেট করে, যেমন সিকিউরিটি গ্রুপ এবং লোড ব্যালেন্সার তৈরি করা। নিচের ইনফ্রাস্ট্রাকচার হলেও EC2, কিন্তু এর উপরে একটি অ্যাবস্ট্রাকশন লেয়ার যোগ করা হয়েছে, যেখানে একটি ভিজুয়াল ড্যাশবোর্ড থাকে যায় এনভায়রনমেন্ট ভেরিয়েবল, ডাটাবেস, অটো-স্কেলিং, লগ পাওয়া এবং অন্যান্য ফাংশন খুব সহজে করা যায়।

Rails কী?

ওয়েব অ্যাপ্লিকেশন চালু করার জন্য অনেক টুল ব্যবহার করা যায়। সাধারণত আপনি কোন লাইব্রেরি বা ফ্রেমওয়ার্ক ব্যবহার করবেন সেটি প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা নির্ধারিত হয়।

যদি আপনার পছন্দের ভাষা Ruby হয়, তবে একটি জনপ্রিয় ফ্রেমওয়ার্ক হলো Rails (আফিসিয়ালি Ruby on Rails)। Rails ২০০৩ সালে Basecamp-এ তৈরি হয়েছিল এবং বছরের পর বছর এটি একটি পূর্ণাঙ্গ ও খুব পরিপক্ব ফ্রেমওয়ার্ক হিসেবে বিকশিত হয়েছে যা আধুনিক ওয়েব অ্যাপ বানাতে প্রয়োজনীয় প্রায় সব কিছু অন্তর্ভুক্ত করে।

Rails দিয়ে আপনি একটি সিম্পল পার্সনাল ব্লগ থেকে Airbnb এবং GitHub এর মতো জটিল সিস্টেম পর্যন্ত বানাতে পারেন। আমি নিশ্চিত আপনি এই দুটি কোম্পানির সাথে পরিচিত, এবং হ্যাঁ, তারা Rails-এ রান করে!

যদিও এই আর্টিকেলে Rails অ্যাপ AWS-এ ডিপ্লয় করার উদাহরণ দেওয়া হয়েছে, কিন্তু মূল কনসেপ্টগুলো ভাষা এবং ফ্রেমওয়ার্ক নির্বিশেষে একই থাকে, যেমন Python/Django বা PHP/Laravel।

Rails সেটআপ

নোট: নিচের কমান্ডগুলো UNIX/Linux-বেসড সিস্টেমে আউট-অফ-দ-বক্স কাজ করবে। আপনি যদি Windows-এ থাকেন, তবে Windows Subsystem for Linux বা Microsoft Windows Terminal ব্যবহার করুন।

প্রথমে আপনার Ruby ভার্সন যাচাই করুন:

ruby -v 

2.5.0 বা তার উপরের ভার্সন থাকলে চলে। না থাকলে এখান থেকে লেটেস্ট ভার্সন ইনস্টল করুন। আমার ইনস্টলড ভার্সন ২.৬.৫।

Ruby ইনস্টলেশন ঠিক থাকলে Rails ইনস্টল করুন:

gem install rails 

এবার Rails ভার্সন কনফার্ম করুন:

rails --version 

6.0.0 বা তার উপরে থাকলে আপনি এই টিউটোরিয়ালের বাকি অংশের জন্য প্রস্তুত।

Postgres সেটআপ

এই টিউটোরিয়ালে আমরা Postgres DB ডেটা স্টোর হিসেবে ব্যবহার করব। যেকোনো প্ল্যাটফর্মে ইনস্টল করার জন্য এই গাইডটি ফলো করুন।

কোড যোগ করা এবং রান করা

আমরা একটি সিম্পল API বানাব যা মুভির ডেটা স্টোর করবে — নাম, রিলিজ ইয়ার, জেনর। API-তে শুধু ২টি এন্ডপয়েন্ট থাকবে, GET এবং POST, ডেমো için।

নিচের কমান্ড দিয়ে একটি নতুন Rails API অ্যাপ তৈরি করুন:

rails new movie-api --api --database=postgresql 

উপরের কমান্ড সফল হলে নিশ্চিত করুন যে আপনি প্রজেক্ট ফোল্ডারে `cd` করে আছেন পরবর্তী কমান্ডগুলো চালানোর আগে।

মডেল জেনারেট করুন:

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 কমান্ড দিয়ে স্যানিটি চেক করুন। আউটপুটে এরকম কিছু দেখতে পাবেন:

AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

সার্ভার চালানোর আগে `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 একাউন্ট তৈরি করুন

এই ওয়েবসাইটে যান। যদি একাউন্ট না থাকে বা ব্রাউজার থেকে সাইন-ইন না থাকেন, তবে এরকম পেজ দেখতে পাবেন:

AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

উপরের ডান কোণার নারঙ্গি Create an AWS Account বাটনে ক্লিক করুন (বা একাউন্ট থাকলে কনসোলে সাইন-ইন করুন)। সাইন-আপ ফর্ম ফিল-আপ করুন (ঠিকানা দিতে সময় Account Type হিসেবে Personal সিলেক্ট করুন)। ফর্ম পূরণের পর আপনি কনসোলে যাবেন। ইমেইল ভেরিফাই করা فرামোশ করবেন না!

UI দেখে ভয় পাবেন না। একবার জানলে নেভিগেট করা খুব সহজ।

IAM ইউজার সেটআপ করুন

এখন একটি IAM ইউজার তৈরি করতে হবে। এতে আমাদের API কী मिलবে যাতে AWS-এর বাইর থেকে SSH এবং রিসোর্স অ্যাক্সেস করা যায়।

সিকিউরিটির জন্য ডিফল্ট অ্যাডমিন ক্রেডেনশিয়ালের বদলে আলাদা একটি IAM ইউজার রাখা ভালো, যাকে শুধু প্রয়োজনীয় রিসোর্সের এক্সেস দিয়ে দিয়ে রাখা যায়।

হোম পেজে IAM সার্চ করে IAM হোম পেজে যান। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

IAM হোম পেজে IAM Resources-এর নিচে Users: 0-এ ক্লিক করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

তারপর Add User-এ ক্লিক করুন। পছন্দমত ইউজার নাম দিন এবং Programmatic access চেকবক্স সিলেক্ট করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

পরবর্তী স্ক্রিনে Attach existing policies directly সিলেক্ট করুন এবং সার্চ বক্সে AdministratorAccess সার্চ করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

পরবর্তী পেজে একটি نیم ট্যাগ দিন যাতে পরবর্তীতে ইউজার আইডেনটিফাই করতে পারেন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

রিভিউ পেজে Create User-এ ক্লিক করুন।

পরবর্তী পেজে credentials.csv ফাইল ডাউনলোড করুন। এটি পরে কাজে লাগবে।

credentials.csv ফাইল পাওয়া যাতে, সেটি যেকোনো স্প্রেডশিট অ্যাপ বা এডিটরে খুলে মানগুলো দেখুন। আমাদের মূলত Access key ID এবং Secret access 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 DB তৈরি করুন

এখন আমাদের অ্যাপ যা Postgres DB-এর সাথে কমিউনিকেট করবে সেটি তৈরি করুন। IAM-এর মতো হোম পেজের সার্চবক্সে RDS সার্চ করে নেভিগেট করুন।

RDS হোম পেজে Create database-এ ক্লিক করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

পরবর্তী পেজে Standard Create সিলেক্ট করুন; Engine Options-এ PostgreSQL সিলেক্ট করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

নিচে স্ক্রল করে Templates-এ Free tier বাছাই করুন, Settings-এ DB instance identifier হিসেবে movie-api রাখুন। Master username কে postgres রেখে একটি পাসওয়ার্ড দিন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

DB instance size, Storage, Availability & durability সেকশনগুলো স্কিপ করুন। Connectivity-এ Additional connectivity configuration সিলেক্ট করুন এবং Publicly accessible কে Yes এবং VPC Security group কে Create new সেট করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড।

Database authentication স্কিপ করুন। Additional configuration-এ Initial database name যোগ করুন; movie_api_db দিয়ে দিন। বাকি স্কিপ করে পেজের নিচে Create Database-এ ক্লিক করুন।

শেষে RDS ড্যাশবোর্ডে ফিরে ডান কলামের VPC Security groups-এ ডিফল্ট গ্রুপে ক্লিক করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

পরবর্তী পেজের নিচে Inbound সিলেক্ট করুন এবং রুলগুলো নিচের মতো করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

Outbound রুলগুলোও নিচের মতো করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

Elastic Beanstalk অ্যাপ তৈরি করুন

Elastic Beanstalk হোম পেজে যান এবং Create New Application-এ ক্লিক করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

নিউ অ্যাপ্লিকেশন ফর্ম প্রয়োজনীয়ভাবে ফিল-আপ করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

No environments currently exist for this application. Create one now. মেসেজের পেজে Create one now-এ ক্লিক করুন।

পরবর্তীতে Web server environment সিলেক্ট করুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

পরবর্তী সেকশনে Environment name কে production-env করুন। Domain খালি রাখুন। Base Configuration-এ Preconfigured platform সিলেক্ট করুন এবং ড্রপডাউন থেকে Ruby বাছাই করুন। Application code-কে Sample application-এ রেখে Create environment-এ ক্লিক করুন। কিছু সময় লাগবে, ধৈর্য ধরুন। AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

হোয়ার পর আপনি এরকম পেজ দেখবেন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

Environment ID-এর পর দেওয়া URL খুঁজে বের করুন। সেটিতে ক্লিক করে Elastic Beanstalk-এ ডিফল্ট Ruby অ্যাপ চেক করুন। খুব দ্রুত আপনার 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 } # <------ এই লাইন আনকমেন্ট করুন
# 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! # <------ এই লাইন আনকমেন্ট করুন
# Allow Puma to be restarted by the `Rails restart` command.
plugin :tmp_restart 

config/database.yml-এর নিচের প্রোডাকশন কনফিগ কমেন্ট আউট করে নিচেরটি ব্যবহার করুন:

production:
  url: <%= ENV['DATABASE_URL'] %> 

Elastic Beanstalk কনসোলে যান, production-env এনভায়রনমেন্ট সিলেক্ট করুন, তারপর Configuration-এ যান।

কনফিগারেশন ওভারভিউ স্ক্রিনে Software পোर्शनের Modify-এ ক্লিক করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড.

এবার DATABASE_URL এবং RAILS_ENV যোগ করে Apply-এ ক্লিক করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

নোট: আপনার DB URL RDS ড্যাশবোর্ড থেকে নেওয়া Endpoint দিয়ে বানানো হয়। ফরম্যাট: postgresql://postgres:YOURPASSWORD@ENDPOINT:5432/movie_api_db। পাসওয়ার্ড ভুলে গেলে RDS ড্যাশবোর্ডের Modify সেকশন থেকে চেঞ্জ করুন।

ম্যানুয়াল ডিপ্লয়মেন্ট

এটি খুব সহজ: কমান্ড লাইন থেকে অ্যাপের জিপ ফাইল বানান এবং Elastic Beanstalk কনসোলে আপলোড করুন।

প্রথমে প্রজেক্ট ফোল্ডারে cd করুন। জিপ ফাইল বানাতে:

zip -r deploy_1.zip . 

deploy_1.zip নামে জিপ ফোল্ডার বने যাবে এবং প্রজেক্ট ডিরেক্টরিতে দিবে। হয়ে গেলো? চমৎকার। এবার AWS-এ।

Elastic Beanstalk ড্যাশবোর্ড থেকে Upload and Deploy-এ ক্লিক করুন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

ভার্সন লেবেল অর্থবহ করতে পারেন: AWS Elastic Beanstalk এবং RDS-এ Rails 6 স্মূথলি ডিপ্লয় করুন: সম্পূর্ণ গাইড

Elastic Beanstalk এনভায়রনমেন্ট আপডেট করা শেষ হলে আপনার এনভায়রনমেন্ট URL-এ গিয়ে API রান হচ্ছে কিনা চেক করুন। ফ্রি সার্ভিস (যেমন Postman) ব্যবহার করে রিকোয়েস্ট পাঠিয়ে AWS-এ ডেটা পপুলেট করুন।

EB CLI দিয়ে ডিপ্লয়মেন্ট

Elastic Beanstalk 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 

আমি ২ নম্বর বাছাই করেছিলাম।

বাকি প্রম্পটগুলো ফলো করুন এবং CodeCommit এবং SSH সেটআপের জন্য no দিন।

আপনি যদি 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 রিসোর্স যেমন Elastic Beanstalk এবং RDS সেটআপ করতে হয়, এবং অ্যাপটি সেগুলো ব্যবহার করতে ডিপ্লয় করতে হয়।

আমরা Elastic Beanstalk CLI ব্যবহার করে ক্লাউড অ্যাপে ডিপ্লয়মেন্ট অটোমেট করার পদ্ধতিও দেখলাম। এখন আপনি জানেন লোকাল মেশিনে কাজ করছে অ্যাপ থেকে বিশ্বব্যাপী AWS-এ শেয়ার করা অ্যাপ পর্যন্ত যাওয়ার পথ।

  1. ম্যালওয়্যারবাইটস ৩.০ দিয়ে পিসি ইনস্টল ও ক্লিন করুন – আন্টিম্যালওয়্যার ও অ্যান্টিভাইরাসের परम সমাধান

  2. Windows 10-এ আপনার ফোন সিন্ক করুন: ধাপে ধাপে গাইড

  3. আইপ্যাড ও আইফোনে QR কোড স্ক্যান করার পদ্ধতি: একটি কুইক গাইড

  4. ব্যক্তিগত রিমাইন্ডার অ্যাপ কেন ও কিভাবে ব্যবহার করবেন: উৎপাদনশীলতা আনলক করুন