Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

AWS Elastic Beanstalk और RDS पर Rails 6 को सहजता से डेप्लॉय करें: एक पूर्ण गाइड

एक एप्लिकेशन लिखते समय, आपको जिन प्रमुख मुद्दों पर विचार करना होता है, उनमें से एक यह है कि एप्लिकेशन को बाकी दुनिया के साथ कैसे साझा किया जाएगा।

एक सामान्य दृष्टिकोण Heroku पर लॉन्च करना रहा है। इसे सेट अप करना आसान है और यह पूरी तरह से मैनेज्ड है। लेकिन, टीमों के लिए बाद में Heroku छोड़ना भी आम है। जैसे-जैसे उनका ट्रैफ़िक बढ़ता है, Heroku बहुत महंगा और अनम्य हो जाता है।

क्या होगा यदि Heroku जैसी आसानी से एक नया एप्लिकेशन डेप्लॉय करना संभव हो, बिना AWS जैसे अधिक सामान्य-उद्देश्य वाले प्लेटफ़ॉर्म से मिलने वाली लचीलापन और लागत बचत को छोड़े? यह संभव है, Elastic Beanstalk का उपयोग करके — AWS की एक सेवा।

इस लेख में, मैं आपको एक Rails 6 एप्लिकेशन सेट अप करने और इसे AWS पर Elastic Beanstalk को कंप्यूट बेस के रूप में और RDS (रिलेशनल डेटाबेस सर्विस) — विशेष रूप से Postgres सर्विस — को डेटा स्टोर के रूप में उपयोग करके चलाने की प्रक्रिया के बारे में बताऊंगा।

इस ट्यूटोरियल के अंत तक, आप निम्नलिखित करने में सक्षम होंगे:

  1. कुछ रूट्स के साथ एक Rails 6 ऐप सेट अप करें और इसे स्थानीय रूप से चलाएं।
  2. एक AWS अकाउंट बनाएं।
  3. फ्री-टियर संसाधनों का उपयोग करके Elastic Beanstalk पर ऐप सेट अप करें और डेप्लॉय करें।

आइए शुरू करते हैं।

Elastic Beanstalk और RDS क्या हैं?

Elastic Beanstalk क्या है और यह किस समस्या को हल करता है, इसकी स्पष्ट समझ पाने के लिए, पहले Amazon के EC2 ऑफरिंग के बारे में बात करते हैं।

EC2 का मतलब इलास्टिक कम्प्यूट क्लाउड 2 है। यह सेवा आपको VPCs प्रोविज़न करने की अनुमति देती है, जो मूल रूप से केवल कंप्यूटर हैं, जो आपकी पसंद का कोई भी OS (जैसे, Ubuntu) चला रहे हैं। आपका ऐप तब इस कंप्यूटर के अंदर रहता है और अपने कार्यों को पूरा करने के लिए इसके संसाधनों, जैसे फाइल सिस्टम और RAM, का उपयोग करता है। अंत में, आपका ऐप उसी तरह चलता है जैसे यह आपकी स्थानीय मशीन पर चलता है, केवल Amazon के स्वामित्व वाली मशीन पर और Amazon के इंफ्रास्ट्रक्चर का उपयोग करके इंटरनेट के माध्यम से एक्सेसिबल।

अब, एलिस नामक एक यूज़र की कल्पना करें, जिसने EC2 पर एक इंस्टेंस प्रोविज़न किया है। एलिस को निम्नलिखित करने की आवश्यकता होगी:

  • अपने ऐप पर रिक्वेस्ट्स की अनुमति देने के लिए एक सिक्योरिटी ग्रुप सेट अप करें।
  • एक लोड बैलेंसर सेट अप करें।
  • इंस्टेंस में SSH करें, अपना ऐप और एनवायरनमेंट सीक्रेट्स सेट अप करें, और इसी तरह।

हालांकि यह आपको अपनी मशीन और क्या और कैसे चलता है, इस पर पूर्ण नियंत्रण देता है, कभी-कभी आप ऐप पर ध्यान केंद्रित करना चाहते हैं न कि इंफ्रास्ट्रक्चर पर। यहीं पर Elastic Beanstalk आता है।

Elastic Beanstalk एक CLI प्रदान करता है जो यह सब करना आसान बनाता है और इसमें से अधिकांश को स्वचालित करता है, जैसे सिक्योरिटी ग्रुप्स और लोड बैलेंसर्स बनाना। जबकि अंतर्निहित इंफ्रास्ट्रक्चर अभी भी EC2 है, इसके ऊपर एक अमूर्त परत जोड़ी गई है, एक विज़ुअल डैशबोर्ड के साथ जो आपको एनवायरनमेंट वेरिएबल्स, डेटाबेस, और ऑटो-स्केलिंग सेट अप करने, साथ ही लॉग प्राप्त करने और अन्य फ़ंक्शन बहुत सरल तरीके से करने की अनुमति देता है।

Rails क्या है?

एक वेब एप्लिकेशन को चालू करने के लिए कई टूल्स का उपयोग किया जा सकता है। आमतौर पर, आप जिस लाइब्रेरी या फ्रेमवर्क का उपयोग करते हैं, वह ज्यादातर उस भाषा द्वारा निर्धारित होता है जिसमें इसे प्रोग्राम किया गया है।

यदि आपकी पसंद की भाषा Ruby होती है, तो एक लोकप्रिय फ्रेमवर्क जिसे आप उपयोग करना चुन सकते हैं, वह है Rails (आधिकारिक तौर पर Ruby on Rails कहा जाता है)। Rails को 2003 में 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 और उससे ऊपर कुछ भी ठीक है। यदि नहीं, तो नवीनतम वर्जन प्राप्त करने के लिए यहां जाएं। मेरे पास वर्जन 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
  # इस फ़ाइल में उपलब्ध DSL के विवरण के लिए, देखें https://guides.rubyonrails.org/routing.html
  namespace :api do
    resource :movies
  end
end

इस बिंदु पर, आप rails routes कमांड का उपयोग करके एक सैनिटी चेक चला सकते हैं ताकि यह वेरीफाई हो सके कि सब कुछ ठीक से काम कर रहा है। आपको आउटपुट में निम्न जैसा कुछ दिखाई देना चाहिए:

AWS Elastic Beanstalk और RDS पर Rails 6 को सहजता से डेप्लॉय करें: एक पूर्ण गाइड

अपना सर्वर चलाने से पहले, आइए db/seeds.rb में कुछ सीड डेटा जोड़ें:

# इस फ़ाइल में डेटाबेस को इसके डिफ़ॉल्ट वैल्यूज़ के साथ सीड करने के लिए आवश्यक सभी रिकॉर्ड निर्माण शामिल होने चाहिए।
# डेटा को फिर Rails db:seed कमांड के साथ लोड किया जा सकता है (या 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 को सहजता से डेप्लॉय करें: एक पूर्ण गाइड

अगले पेज पर, एक नेम टैग जोड़ें ताकि आप बाद में IAM क्रेडेंशियल्स की सूची से अपने यूज़र की पहचान कर सकें: AWS Elastic Beanstalk और RDS पर Rails 6 को सहजता से डेप्लॉय करें: एक पूर्ण गाइड

अंत में, रिव्यू पेज पर, Create User पर क्लिक करें।

अगले पेज पर, अपने क्रेडेंशियल्स का उपयोग करके 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 को सहजता से डेप्लॉय करें: एक पूर्ण गाइड

एनवायरनमेंट 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

# वह `port` निर्दिष्ट करता है जिस पर Puma रिक्वेस्ट प्राप्त करने के लिए सुनेगा; डिफ़ॉल्ट 3000 है।
# port ENV.fetch("PORT") { 3000 }

# वह `environment` निर्दिष्ट करता है जिसमें Puma चलेगा।
# environment ENV.fetch("RAILS_ENV") { "development" }

# वह `pidfile` निर्दिष्ट करता है जिसका Puma उपयोग करेगा।
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }

# क्लस्टर्ड मोड में बूट करने के लिए `workers` की संख्या निर्दिष्ट करता है।
# वर्कर्स फोर्क्ड वेब सर्वर प्रोसेस हैं। यदि थ्रेड्स और वर्कर्स एक साथ उपयोग कर रहे हैं,
# तो एप्लिकेशन की concurrency अधिकतम `threads` * `workers` होगी।
# वर्कर्स JRuby या Windows पर काम नहीं करते (जिनमें से कोई भी प्रोसेस का समर्थन नहीं करता)।
# workers ENV.fetch("WEB_CONCURRENCY") { 2 } # <------ इस लाइन को अनकमेंट करें

# `workers` नंबर निर्दिष्ट करते समय `preload_app!` मेथड का उपयोग करें।
# यह निर्देश Puma को पहले एप्लिकेशन को बूट करने और कोड लोड करने के लिए कहता है
# एप्लिकेशन को फोर्क करने से पहले। यह कॉपी ऑन राइट का लाभ उठाता है
# प्रोसेस व्यवहार ताकि वर्कर्स कम मेमोरी का उपयोग करें।
# preload_app! # <------ इस लाइन को अनकमेंट करें

# Puma को `Rails restart` कमांड द्वारा रीस्टार्ट करने की अनुमति दें।
plugin :tmp_restart

साथ ही, config/database.yml के नीचे एडिट करें मौजूदा production कॉन्फिग को कमेंट आउट करके और इसके बजाय इसका उपयोग करके:

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

अंत में, AWS पर अपने 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 के फॉर्मेट में है। यदि आप चुने गए पासवर्ड को याद नहीं रखते हैं, तो आप इसे अपने 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 चलते हुए देख सकते हैं! आप अपने AWS पर DB को पॉप्युलेट करने के लिए कुछ रिक्वेस्ट भेजने के लिए इस जैसी मुफ्त सेवा का उपयोग कर सकते हैं।

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

मैंने 2 चुना।

बाकी प्रॉम्प्ट्स से गुजरें और CodeCommit का उपयोग करने के लिए 'no' और 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. Windows 10 के साथ अपने फ़ोन को सहजता से सिंक करें: चरण-दर-चरण मार्गदर्शिका Windows 10 के साथ अपने फ़ोन को सहजता से सिंक करें: चरण-दर-चरण मार्गदर्शिका

    Windows 10 पर Your Phone ऐप, Android और iOS पर Your Phone Companion ऐप के साथ संयोजन में, आपके स्मार्टफोन से फोटो और टेक्स्ट संदेश को आपके Windows 10 PC पर सिंक्रनाइज़ करने का एकमात्र तरीका है। आप Windows 10 पर Your Phone ऐप का उपयोग करके टेक्स्ट संदेश पढ़ सकते हैं और उनका जवाब दे सकते हैं साथ ही अप

  1. iPad और iPhone पर QR कोड कैसे स्कैन करें - एक त्वरित गाइड iPad और iPhone पर QR कोड कैसे स्कैन करें - एक त्वरित गाइड

    2018 की शुरुआत में, टेक दिग्गज Apple ने अपने दिमाग को झकझोर देने वाले फीचर्स iOS 12 को रोल आउट किया। iPad और iPhone पर QR कोड स्कैन करना उन फीचर्स में से एक था जिसे Apple उपयोगकर्ताओं के अनुभव को अगले स्तर पर लाने के लिए जोड़ा गया था। यह फीचर न केवल आपके जीवन को आसान बनाने में सक्षम है बल्कि टिकट, क

  1. उत्पादकता अनलॉक करें: पर्सनल रिमाइंडर ऐप का उपयोग क्यों और कैसे करें उत्पादकता अनलॉक करें: पर्सनल रिमाइंडर ऐप का उपयोग क्यों और कैसे करें

    हे भगवान! मैं पूरी तरह भूल गया। मैं दिन में कम से कम एक-दो बार उपरोक्त कथन का उपयोग करता हूं क्योंकि मैं चीजें भूलता रहता हूं। अब मुझे पता है कि मेरे मस्तिष्क या स्वास्थ्य में कुछ भी गलत नहीं है और यह भूलने की बीमारी आज दुनिया के तेज गति से चलने के कारण है। करने के लिए बहुत कुछ है, मिलने के लिए बहुत