دیپلوی پروژه پایتون روی AWS EC2: راهنمای جامع
این مقاله به آموزش گام به گام دیپلوی یک پروژه پایتون بر روی Amazon Elastic Compute Cloud (EC2) میپردازد. هدف، ارائه یک راهنمای عملی و قابل فهم برای توسعهدهندگان پایتون است که میخواهند برنامههای خود را در محیط ابری AWS مستقر کنند. این آموزش در دسته ‘دیپلوی و DevOps با پایتون’ قرار میگیرد و بر روی جنبههای عملی و کاربردی تمرکز دارد.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:
- یک حساب کاربری فعال در AWS
- آشنایی اولیه با مفاهیم AWS EC2
- نصب و پیکربندی AWS CLI (Command Line Interface)
- یک پروژه پایتون آماده برای دیپلوی
- آشنایی با مفاهیم SSH
مرحله ۱: ایجاد یک Instance EC2
اولین قدم، ایجاد یک Instance EC2 است. برای این کار:
- وارد کنسول AWS شوید.
- به سرویس EC2 بروید.
- بر روی ‘Launch Instance’ کلیک کنید.
- یک AMI (Amazon Machine Image) مناسب انتخاب کنید. برای پروژههای پایتون، توصیه میشود از AMI های مبتنی بر لینوکس مانند Amazon Linux 2 یا Ubuntu استفاده کنید.
- نوع Instance را انتخاب کنید. بسته به نیازهای پروژه خود، میتوانید از انواع مختلف Instance مانند t2.micro (رایگان) یا t2.medium استفاده کنید.
- تنظیمات Instance را پیکربندی کنید. این شامل تنظیمات شبکه، ذخیرهسازی و امنیت میشود.
- گروه امنیتی (Security Group) را پیکربندی کنید. اطمینان حاصل کنید که پورتهای مورد نیاز برای پروژه شما (مانند پورت ۸۰ برای HTTP یا پورت ۴۴۳ برای HTTPS) باز هستند. همچنین، پورت ۲۲ برای دسترسی SSH را باز نگه دارید.
- کلید SSH (Key Pair) را انتخاب کنید. اگر کلید SSH ندارید، یک کلید جدید ایجاد کنید و فایل private key آن را در یک مکان امن ذخیره کنید.
- Instance را Launch کنید.
مرحله ۲: اتصال به Instance EC2 از طریق SSH
پس از ایجاد Instance، باید از طریق SSH به آن متصل شوید. برای این کار:
- آدرس IP عمومی (Public IP Address) Instance خود را از کنسول AWS EC2 پیدا کنید.
- از یک ترمینال یا SSH Client (مانند PuTTY) برای اتصال به Instance استفاده کنید.
- دستور زیر را در ترمینال وارد کنید:
ssh -i "path/to/your/private_key.pem" ec2-user@your_instance_public_ip
(به جای “path/to/your/private_key.pem” مسیر فایل private key خود را وارد کنید و به جای “your_instance_public_ip” آدرس IP عمومی Instance خود را وارد کنید.)
مرحله ۳: نصب پیشنیازهای پروژه پایتون
پس از اتصال به Instance، باید پیشنیازهای پروژه پایتون خود را نصب کنید. این شامل موارد زیر میشود:
- Python
- pip (Package Installer for Python)
- Virtualenv (برای ایجاد محیط مجازی)
- هر کتابخانه پایتون مورد نیاز پروژه
برای نصب این موارد، میتوانید از دستورات زیر استفاده کنید (بسته به AMI که انتخاب کردهاید، ممکن است نیاز به تغییر دستورات داشته باشید):
sudo yum update -y
sudo yum install python3 python3-pip -y
pip3 install virtualenv
مرحله ۴: انتقال فایلهای پروژه به Instance EC2
اکنون باید فایلهای پروژه پایتون خود را به Instance EC2 منتقل کنید. برای این کار میتوانید از ابزارهایی مانند scp (Secure Copy) یا rsync استفاده کنید.
به عنوان مثال، برای انتقال تمام فایلهای پروژه از دایرکتوری محلی به دایرکتوری /home/ec2-user/myproject در Instance، میتوانید از دستور زیر استفاده کنید:
scp -i "path/to/your/private_key.pem" -r /path/to/your/local/project ec2-user@your_instance_public_ip:/home/ec2-user/myproject
مرحله ۵: ایجاد و فعالسازی محیط مجازی
برای جداسازی وابستگیهای پروژه خود، توصیه میشود از یک محیط مجازی استفاده کنید. برای ایجاد و فعالسازی محیط مجازی:
- به دایرکتوری پروژه خود در Instance بروید:
cd /home/ec2-user/myproject - یک محیط مجازی ایجاد کنید:
virtualenv venv - محیط مجازی را فعال کنید:
source venv/bin/activate
مرحله ۶: نصب وابستگیهای پروژه در محیط مجازی
پس از فعالسازی محیط مجازی، باید وابستگیهای پروژه خود را نصب کنید. برای این کار، فایل requirements.txt پروژه خود را به Instance منتقل کنید (اگر وجود دارد) و از دستور زیر استفاده کنید:
pip3 install -r requirements.txt
مرحله ۷: اجرای پروژه پایتون
اکنون میتوانید پروژه پایتون خود را اجرا کنید. بسته به نوع پروژه، ممکن است نیاز به اجرای یک اسکریپت پایتون، یک وب سرور (مانند Flask یا Django) یا یک سرویس دیگر داشته باشید.
به عنوان مثال، برای اجرای یک اسکریپت پایتون به نام app.py، میتوانید از دستور زیر استفاده کنید:
python3 app.py
مرحله ۸: پیکربندی Web Server (اختیاری)
اگر پروژه شما یک وب اپلیکیشن است، باید یک Web Server مانند Nginx یا Apache را پیکربندی کنید تا درخواستهای HTTP را به پروژه پایتون شما هدایت کند.
برای مثال، برای پیکربندی Nginx:
- Nginx را نصب کنید:
sudo yum install nginx -y - فایل پیکربندی Nginx را ویرایش کنید تا درخواستها را به پروژه پایتون شما هدایت کند.
- Nginx را راهاندازی کنید:
sudo systemctl start nginx
مرحله ۹: مدیریت فرآیندها با Systemd (اختیاری)
برای اطمینان از اینکه پروژه پایتون شما پس از راهاندازی مجدد Instance به طور خودکار شروع به کار میکند، میتوانید از Systemd برای مدیریت فرآیندها استفاده کنید.
برای این کار:
- یک فایل service unit در /etc/systemd/system ایجاد کنید.
- فایل service unit را پیکربندی کنید تا پروژه پایتون شما را اجرا کند.
- service unit را فعال کنید:
sudo systemctl enable your_service_name.service - service unit را راهاندازی کنید:
sudo systemctl start your_service_name.service
نکات تکمیلی
- از ابزارهای مدیریت پیکربندی مانند Ansible یا Chef برای خودکارسازی فرآیند دیپلوی استفاده کنید.
- از سیستمهای مانیتورینگ مانند CloudWatch برای نظارت بر عملکرد پروژه خود استفاده کنید.
- از سرویسهای AWS مانند Elastic Load Balancing و Auto Scaling برای افزایش مقیاسپذیری و قابلیت اطمینان پروژه خود استفاده کنید.
- به طور منظم Instance خود را بهروزرسانی کنید تا از آخرین وصلههای امنیتی بهرهمند شوید.
این مقاله یک راهنمای جامع برای دیپلوی پروژه پایتون روی AWS EC2 ارائه میدهد. با دنبال کردن این مراحل، میتوانید برنامههای پایتون خود را به راحتی در محیط ابری AWS مستقر کنید و از مزایای آن بهرهمند شوید.

بدون دیدگاه