AWS पर अपना पायथन डेवलपमेंट एनवायरनमेंट सेट अप करने के लिए आपको पायथन, पिप, वर्चुअलएनवी, AWS वेब CLI और एक SSH क्लाइंट इंस्टॉल करने की आवश्यकता है। आप इन्हें इंस्टॉल करने के लिए https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html पर निर्देशों का पालन कर सकते हैं।
वर्चुअल एनवायरनमेंट सेट अप करें
एक बार जब आपके पास वे सभी इंस्टॉल हो जाएं, तो आपको एक वर्चुअल एनवायरनमेंट सेट अप करना होगा ताकि आपके ग्लोबल पैकेज प्रदूषित न हों। वर्चुअल एनवायरनमेंट सेट अप करने के लिए निम्न कमांड का उपयोग करें:
$ virtualenv -p python2.7 /tmp/hello-world
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /tmp/hello-world/bin/python2.7
Also creating executable in /tmp/hello-world/bin/python
Installing setuptools, pip...done.
वर्चुअल एनवायरनमेंट सक्रिय करें
एक बार आपका वर्चुअल एनवायरनमेंट तैयार हो जाए, तो एनवायरनमेंट के `bin` डायरेक्टरी में स्थित `activate` स्क्रिप्ट चलाकर इसे शुरू करें। उदाहरण के लिए, पिछले चरण में बनाए गए `hello-world` एनवायरनमेंट को शुरू करने के लिए, आप टाइप करेंगे:
$ . /tmp/hello-world/bin/activate
एक बार बन जाने के बाद, आप किसी भी समय इसकी `activate` स्क्रिप्ट को फिर से चलाकर वर्चुअल एनवायरनमेंट को पुनः आरंभ कर सकते हैं।
डिप्लॉयमेंट के लिए पायथन एप्लिकेशन कॉन्फ़िगर करें
अपने वर्चुअलएनवी के भीतर से, अपने प्रोजेक्ट के डायरेक्टरी ट्री के शीर्ष पर लौटें और एक `requirements.txt` फ़ाइल बनाएं जिसमें आपके ऐप की आवश्यकताएं (थर्ड-पार्टी मॉड्यूल जिन्हें आप इम्पोर्ट कर रहे हैं) उनके संस्करण संख्या के साथ हों (या बिना यदि आपको नवीनतम चाहिए)। उदाहरण के लिए:
Flask==0.8
Jinja2==2.6
Werkzeug==0.8.3
certifi==0.0.8
chardet==1.0.1
...
वैकल्पिक: pip freeze का उपयोग करें
$ pip freeze > requirements.txt
यह AWS को आपके एप्लिकेशन के पायथन वातावरण को उन्हीं पैकेज और संस्करणों का उपयोग करके दोहराने की अनुमति देता है जिनका उपयोग आपने अपने एप्लिकेशन को विकसित और परीक्षण करने के लिए किया था।
AWS EB CLI रिपॉजिटरी कॉन्फ़िगर करें
$ eb init -p python2.7 hello-world
Application hello-world has been created.
यह कमांड `hello-world` नाम का एक नया एप्लिकेशन बनाता है और आपके स्थानीय रिपॉजिटरी को नवीनतम पायथन 2.7 प्लेटफॉर्म कॉन्फ़िगरेशन के साथ एनवायरनमेंट बनाने के लिए कॉन्फ़िगर करता है। डिफ़ॉल्ट कीपेयर कॉन्फ़िगर करने के लिए `eb init` फिर से चलाएं ताकि आप अपने एप्लिकेशन को चलाने वाले EC2 इंस्टेंस से SSH से कनेक्ट कर सकें:
$ eb init
Do you want to set up SSH for your instances? (y/n): y
Select a keypair.
1) my-keypair
2) [ Create new KeyPair ]
यदि आपके पास पहले से एक कीपेयर है तो उसे चुनें, या एक नया बनाने के लिए प्रॉम्प्ट का पालन करें। यदि आपको प्रॉम्प्ट नहीं दिखता या बाद में सेटिंग्स बदलने की आवश्यकता है, तो `eb init -i` चलाएं।
एनवायरनमेंट बनाएं और डिप्लॉय करें
$ eb create hello-env
यह कमांड `hello-env` नाम का एक लोड-बैलेंस्ड इलास्टिक बीनस्टॉक एनवायरनमेंट बनाता है।
आधुनिक AWS दृष्टिकोण (2024+)
AWS SAM / CDK / Amplify
# SAM टेम्पलेट (template.yaml)
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: python3.11
Handler: app.lambda_handler
CodeUri: ./
Docker कंटेनर डिप्लॉयमेंट
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
AWS CodeBuild + CodePipeline
पूरी तरह से प्रबंधित CI/CD के लिए।
महत्वपूर्ण नोट
यह लेख Elastic Beanstalk CLI v3 (पुराना) संदर्भित करता है। आधुनिक AWS विकास के लिए, **AWS SAM, CDK, या Amplify** का उपयोग करें। Elastic Beanstalk अभी भी समर्थित है लेकिन नए प्रोजेक्ट्स के लिए सर्वरलेस/कंटेनर दृष्टिकोण प्राथमिकता दें।