نحوه استقرار یک برنامه Multi Container Docker Compose در Amazon EC2
این مقاله در اصل در Everything DevOps ارسال شده است.
فناوری کانتینر نحوه ساخت، آزمایش و استقرار نرمافزار را از محیطهای محلی، به ابر یا مراکز داده داخلی سادهسازی میکند. اما با بهره مندی از ساخت برنامه های کاربردی با فناوری کانتینر، مشکل راه اندازی و توقف دستی هر کانتینر در حین ساخت برنامه های کاربردی چند کانتینری وجود داشت.
برای حل این مشکل، Docker Inc Docker Compose را ایجاد کرد. شما می توانید از Docker Compose برای ساده کردن اجرای برنامه های چند کانتینری با حداقل دو دستور استفاده کنید. docker-compose up
و docker-compose down
.
در این مقاله یاد خواهید گرفت
- آمازون EC2 چیست،
- نحوه ایجاد و اتصال به یک نمونه آمازون EC2 و
- نحوه استقرار یک برنامه نوشتن Docker در EC2
پیش نیازها
برای پیگیری این مقاله، باید موارد زیر را داشته باشید:
- دانش اولیه ترمینال
- مقداری تجربه با Docker و Docker Compose.
- یک حساب AWS – نحوه ایجاد آن را در اینجا بیاموزید.
آمازون EC2 چیست؟
Amazon Elastic Compute Cloud (EC2) ظرفیت محاسباتی ایمن، قابل تغییر اندازه و مقیاسپذیر را برای تقریباً هر حجم کاری در سرویسهای وب آمازون (AWS) Cloud فراهم میکند. با استفاده از آمازون EC2، میتوانید هزینههای سربار سرمایهگذاری روی سختافزار را حذف کنید تا بتوانید روی توسعه و گسترش سریعتر برنامههای خود تمرکز کنید.
با آمازون EC2، می توانید به تعداد مورد نیاز سرور مجازی (نمونه) راه اندازی کنید، امنیت و شبکه را پیکربندی کنید و فضای ذخیره سازی را مدیریت کنید. همچنین، Amazon EC2 شما را قادر میسازد تا به راحتی برنامههای خود را برای مدیریت تغییرات در نیازمندیها یا افزایش محبوبیت، مقیاسبندی کنید و نیاز شما به پیشبینی ترافیک را کاهش دهد.
برای کسب اطلاعات بیشتر در مورد Amazon EC2، به صفحه محصول Amazon EC2 مراجعه کنید.
ایجاد و اتصال به یک نمونه آمازون EC2
پس از ایجاد یک حساب کاربری AWS، یک نمونه EC2 آمازون را با مراحل زیر ایجاد کرده و به آن متصل می شوید:
- منطقه مورد نظر خود را برای نمونه انتخاب کنید
- به کنسول EC2 بروید
- نمونه را راه اندازی کنید
- از طریق رایانه محلی خود از طریق SSH به نمونه متصل شوید
منطقه مورد نظر خود را برای استقرار انتخاب کنید
برای انتخاب یک منطقه در کنسول AWS خود، روی منوی کشویی همانطور که در گوشه سمت راست بالای تصویر زیر توضیح داده شده است کلیک کنید و منطقه مورد نظر خود را انتخاب کنید.
ممکن است بپرسید، “چگونه می توانم بدانم کدام منطقه برای برنامه من بهترین است؟” برای دانستن بهترین منطقه برای استقرار برنامه خود، این مقاله را در مورد «در انتخاب منطقه برای حجم کاری خود چه مواردی باید در نظر بگیرید» بررسی کنید.
پیمایش به کنسول EC2
پس از انتخاب منطقه AWS مورد نظر خود، برای رفتن به کنسول EC2، مانند تصویر زیر عبارت “EC2” را در کادر جستجو جستجو کنید.
هنگامی که به کنسول EC2 رسیدید، محل را پیدا کنید راه اندازی نمونه را فشار دهید و روی آن کلیک کنید تا یک جریان راه اندازی نمونه EC2 جدید شروع شود.
نمونه را راه اندازی کنید
در جریان راه اندازی نمونه EC2، از شما خواسته می شود که نمونه خود را با موارد زیر پیکربندی کنید:
تصاویر برنامه و سیستم عامل (Amazon Machine Image): تصویر ماشین آمازون (AMI) الگویی است که شامل پیکربندی نرم افزار (سیستم عامل، سرور برنامه و برنامه های کاربردی) مورد نیاز برای راه اندازی نمونه شما می باشد.
این مقاله از سرور لینوکس Ubuntu 22.04 با تنظیماتی که در تصویر زیر مشاهده می شود استفاده می کند.
نوع نمونه: نوع نمونه ترکیبی از CPU، حافظه، ذخیره سازی و ظرفیت شبکه است. انواع مختلفی از نمونه های EC2 وجود دارد که به شما این امکان را می دهد تا ترکیب مناسبی از منابع را برای برنامه های خود انتخاب کنید.
این مقاله از الف استفاده خواهد کرد t2.micro با CPU و حافظه که در تصویر زیر مشاهده می شود. برای کسب اطلاعات بیشتر در مورد انواع نمونه آمازون EC2، این مستند را بررسی کنید.
- جفت کلید (ورود به سیستم): می توانید از یک جفت کلید برای اتصال ایمن به نمونه خود از راه دور از رایانه محلی خود استفاده کنید. برای ایجاد یک جفت کلید، روی آن کلیک کنید جفت کلید جدید ایجاد کنید همانطور که در تصویر زیر مشاهده می شود.
بعد از کلیک کردن جفت کلید جدید ایجاد کنید، یک پاپ آپ خواهید دید. در پنجره بازشو، جفت خود را نام ببرید و بقیه تنظیمات را به عنوان پیش فرض رها کنید (اگر رایانه محلی شما دارای سیستم عامل ویندوز است، انتخاب کنید .ppk
فرمت فایل کلید خصوصی)، سپس کلیک کنید جفت کلید ایجاد کنید
بعد از کلیک کردن جفت کلید ایجاد کنید، آ .pem
فایل کلید خصوصی به طور خودکار در رایانه شما دانلود می شود. کلید خصوصی را در مکانی امن و قابل دسترس در رایانه خود ذخیره کنید. بعداً برای اتصال به نمونه خود به آن نیاز خواهید داشت.
برای کسب اطلاعات بیشتر در مورد جفت کلیدهای آمازون EC2، این مستند را بررسی کنید.
- تنظیمات شبکه: می توانید ترک کنید تنظیمات شبکه به عنوان پیش فرض تنظیمات شبکه پیش فرض مانند تصویر زیر از موارد زیر استفاده می کند:
- VPC و زیرشبکه پیشفرض حساب AWS شما و تخصیص خودکار یک آدرس عمومی به نمونه شما را فعال میکند.
- همچنین یک گروه امنیتی جدید ایجاد می کند، مجموعه ای از قوانین فایروال که ترافیک را برای نمونه شما کنترل می کند. پیشفرض، اجازه ترافیک SSH از هر نقطه است. این برای این مقاله کار می کند، اما در موارد استفاده از تولید، باید قوانین سخت گیرانه تری تعیین کنید.
- پیکربندی ذخیره سازی: می توانید پیکربندی ذخیره سازی را به عنوان پیش فرض برای این مقاله بگذارید.
آخرین تنظیمات تنظیمات پیشرفته هستند، می توانید آنها را نادیده بگیرید زیرا خارج از محدوده این مقاله هستند. برای کسب اطلاعات بیشتر در مورد آنها، روی آن کلیک کنید اطلاعات متنی که در تصویر زیر مشاهده می شود.
بعد از تمام تنظیمات بالا، روی آن کلیک کنید نمونه راه اندازی و چند دقیقه صبر کنید تا نمونه شما مانند تصویر زیر راه اندازی شود.
سپس بر روی آن کلیک کنید مشاهده همه موارد مانند تصویر بالا و نمونه مورد نظر را مانند تصویر زیر انتخاب کنید.
به نمونه آمازون EC2 خود متصل شوید
با انتخاب نمونه EC2، در بالا همانطور که در تصویر زیر توضیح داده شده است، کلیک کنید اتصال.
بعد از کلیک کردن اتصال صفحه ای با گزینه هایی برای اتصال به نمونه خود خواهید دید. این مقاله گزینه سرویس گیرنده SSH را در اختیار ما قرار می دهد.
مراحلی را که در صفحه می بینید مانند تصویر زیر با استفاده از .pem
کلید خصوصی که با ایجاد جفت کلید شما دانلود شد.
پس از انجام مراحل بالا، باید مانند تصویر زیر به نمونه خود متصل شوید.
در مرحله بعد، یک برنامه Docker Compose چند کانتینری را که دارای React frontend، باطن Node.js و کانتینرهای پایگاه داده MongoDB است، مستقر خواهید کرد و آن را در اینترنت در دسترس قرار خواهید داد.
استقرار یک برنامه Docker Compose چند کانتینری در Amazon EC2
قبل از اینکه بتوانید برنامه Docker Compose را اجرا کنید، باید:
- ابتدا Docker Engine و Docker compose را روی نمونه EC2 خود نصب کنید.
- سپس برای این مقاله برنامه آزمایشی Todo Docker Compose را از Github در نمونه خود شبیه سازی کنید
- و سپس برنامه را مستقر کنید
نصب Docker Engine در یک نمونه اوبونتو EC2
سریعترین راه برای نصب موتور داکر استفاده از get-docker.sh
اسکریپت bash در get.docker.com. دستور زیر را برای دانلود اسکریپت در نمونه EC2 خود اجرا کنید.
$ curl -fsSL https://get.docker.com -o get-docker.sh
پس از اجرای دستور بالا تایید کنید که دانلود شده است get-docker.sh
مانند تصویر زیر
برای اجرای اسکریپت دستور زیر را اجرا کنید:
$ sh get-docker.sh
و پس از مدتی داکر بر روی نمونه اوبونتو EC2 نصب خواهد شد. برای تایید اجرای نصب $ docker
--
version
و باید نسخه Docker را مانند تصویر زیر ببینید.
اگر از AMI دیگری استفاده میکنید، اسناد نصب Docker را بررسی کنید تا نحوه نصب بر روی AMI انتخابی خود را بیاموزید.
نصب Docker Compose در یک نمونه Ubuntu EC2
اکنون برای نصب Docker Compose، دستور زیر را برای دریافت نسخه از Github اجرا کنید:\
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
و سپس دستور زیر را اجرا کنید:
$ sudo chmod +x /usr/local/bin/docker-compose
با انجام این کار، وقتی می دوید $ docker-compose -v
، باید نسخه ای را که به تازگی نصب کرده اید مانند تصویر زیر ببینید.
شبیه سازی برنامه آزمایشی Docker Compose
برنامه چند کانتینری todo که شما مستقر خواهید کرد یکی از نمونه های مخزن Awesome Docker Compose Github است.
برای دسترسی به برنامه، مخزن موجود در نمونه خود را با دستور زیر کلون کنید:
$ git clone https://github.com/docker/awesome-compose.git
پس از کلون کردن پروژه، دستور زیر را اجرا کنید تا به react-express-mongodb
دایرکتوری که برنامه todo در آن قرار دارد:
$ cd awesome-compose/react-express-mongodb
هنگامی که در فهرست پروژه، برای شروع کانتینرها با استفاده از compose.yaml
فایل همانطور که در بالا توضیح داده شد اجرا کنید:
$ docker compose up -d
و بعد از اینکه داکر تصاویر را کشیده و شبکه ای را برای ارتباط کانتینرها با یکدیگر ایجاد کرد، خروجی مانند تصویر زیر را مشاهده خواهید کرد.
برای تأیید اینکه 3 کانتینر در حال اجرا هستند، اجرا کنید $ docker ps
و باید خروجی مشابه تصویر زیر را مشاهده کنید.
در مرحله بعد، استقرار را آزمایش خواهید کرد تا مطمئن شوید که برنامه todo کار می کند.
آزمایش استقرار شما
برنامه ای که شما به تازگی مستقر کرده اید در پورت صحبت می کند 3000
اما اگر از بندر بازدید کنید 3000
با آدرس عمومی نمونه EC2 خود، نمیتوانید آن را مشاهده کنید. این به دلیل تنظیمات گروه امنیتی است که در حال حاضر فقط به ترافیک ورودی از SSH اجازه می دهد.
برای فعال کردن مشاهده برنامه خود، در کنسول نمونه EC2، با انتخاب نمونه EC2، به امنیت برگه و سپس مانند تصویر زیر روی گروه امنیتی کلیک کنید.
پس از کلیک بر روی گروه امنیتی، در منوی بعدی بر روی کلیک کنید قوانین ورودی را ویرایش کنید برای اضافه کردن قاعده ای که به ترافیک ورودی از طریق پورت اجازه می دهد 3000
.
و سپس، قانون را همانطور که در تصویر زیر مشاهده می کنید اضافه کنید.
با انجام آن، هنگامی که شما بازدید از your_instance_public_ip:3000
باید اپلیکیشن Todo را مانند تصویر زیر ببینید.
نتیجه
در این مقاله، یاد گرفتید که Amazon EC2 چیست، چگونه یک نمونه آمازون EC2 را ایجاد و به آن متصل شوید، و چگونه یک برنامه کامپوزی Docker را در EC2 استقرار دهید.
چیزهای بیشتری برای یادگیری در مورد Amazon EC2 وجود دارد. برای کسب اطلاعات بیشتر، منابع زیر را بررسی کنید: