سایت خبرکاو

جستجوگر هوشمند اخبار و مطالب فناوری

نحوه استفاده از Elastic Beanstalk برای استقرار یک برنامه Node.js

image-20-1.png
ساخت و مدیریت برنامه های کاربردی در فضای ابری می تواند یک کار دلهره آور باشد. این امر به ویژه در مورد مدیریت محیط‌های مختلف، مقیاس‌بندی و به‌روزرسانی‌ها صادق است. اما سرویسی در AWS وجود دارد که می تواند این کار را ساده کند. AWS Elastic Beanstalk اینجاست تا زندگی شما را آسان‌تر کند. این یک پلتفرم با کاربری آسان برای استقرار، مدیریت و مقیاس‌بندی برنامه‌های شما در AWS Cloud فراهم می‌کند. در این آموزش، ما به اصول اولیه ...

ساخت و مدیریت برنامه های کاربردی در فضای ابری می تواند یک کار دلهره آور باشد. این امر به ویژه در مورد مدیریت محیط‌های مختلف، مقیاس‌بندی و به‌روزرسانی‌ها صادق است.

اما سرویسی در AWS وجود دارد که می تواند این کار را ساده کند. AWS Elastic Beanstalk اینجاست تا زندگی شما را آسان‌تر کند. این یک پلتفرم با کاربری آسان برای استقرار، مدیریت و مقیاس‌بندی برنامه‌های شما در AWS Cloud فراهم می‌کند.

در این آموزش، ما به اصول اولیه Elastic Beanstalk می پردازیم و سپس شما را در فرآیند استقرار یک برنامه NodeJS متصل به پایگاه داده RDS راهنمایی می کنیم. بیا شروع کنیم!

Elastic Beanstalk چیست؟

AWS Elastic Beanstalk یک سرویس کاملاً مدیریت شده است که به شما کمک می کند تا برنامه های کاربردی را در AWS استقرار، مدیریت و مقیاس بندی کنید. از تامین منابع مورد نیاز مانند نمونه های EC2، پایگاه داده های RDS و بار متعادل کننده مراقبت می کند.

Elastic Beanstalk همچنین وظایف استقرار، نظارت و نگهداری برنامه را انجام می دهد تا بتوانید روی نوشتن کد و ارائه ویژگی ها تمرکز کنید.

Elastic Beanstalk از CloudFormation برای تهیه منابع استفاده می کند. خوبی این است که شما نیازی به نوشتن قالب های CloudFormation ندارید. Elastic Beanstalk به طور خودکار از آن مراقبت می کند.

اکنون که درک اولیه ای از Elastic Beanstalk داریم، بیایید به استقرار برنامه NodeJS خود با اتصال RDS بپردازیم.

نحوه تهیه کد منبع NodeJS

ما نمی توانیم برنامه خود را مستقیماً در Elastic Beanstalk (مشابه استقرار در EC2) مستقر کنیم. قبل از استقرار باید چند مرحله را دنبال کنیم. ساعت ها طول کشید تا من متوجه این موضوع شوم، اما به شما کمک می کنم تا آن را در ۵ دقیقه اجرا کنید.

در این مقاله، ما این برنامه Node.js را مستقر خواهیم کرد. اما برای استقرار کد خود نیازی به مخزن نداریم، در عوض به کد منبع خود نیاز داریم. فایل زیپ مخزن فوق را می توانید از اینجا دانلود کنید.

اگر می خواهید برنامه خود را راه اندازی کنید، مراحل را در اینجا اضافه کنید. اما اگر می‌خواهید فقط کد بالا را اجرا کنید، می‌توانید به بخش بعدی ( نحوه ایجاد برنامه Elastic Beanstalk ) بروید.

نحوه استقرار اپلیکیشن خود

ابتدا مطمئن شوید که فایل package.json شما دستور start را دارد و این دستور start باید برای اجرای برنامه شما پیکربندی شود. Beanstalk به صورت پیش فرض npm start اجرا می کند و اگر نتواند آن را پیدا کند خطا می دهد.

تصویر-20
فایل package.json با دستور start

یک چیز بسیار مهم در مورد پیکربندی متغیرهای محیطی وجود دارد. AWS از متغیرهای محیطی از پیش تعریف شده برای اتصالات RDS پیروی می کند. مطمئن شوید که از نامگذاری درست استفاده کرده اید. برای اطلاعات بیشتر می توانید این مقاله AWS را بخوانید.

یک مثال سریع برای شما اگر این نکته را متوجه نشدید. برای پیکربندی نام میزبان برای RDS، باید از متغیر محیطی RDS_HOSTNAME استفاده کنید. اگر از نام متغیر دیگری (به عنوان مثال DB_HOSTNAME ) استفاده کرده باشید، برنامه شما نمی‌تواند متصل شود.

می توانید متغیرهای محیطی سفارشی را در کنسول AWS Elastic Beanstalk بر اساس نیاز خود تعریف کنید.

در اینجا نحوه پیکربندی اتصال DB شما باید به نظر برسد:

اسکرین شات-از-2023-05-06-23-39-39
پیکربندی Elastic Beanstalk DB

Elastic Beanstalk (EBS) به طور پیش‌فرض روی پورت ۸۰۸۰ اجرا می‌شود. پس باید برنامه‌مان را طوری پیکربندی کنیم که روی پورت ۸۰۸۰ اجرا شود. گفت ن شماره پورت در متغیرهای محیطی و پیکربندی آن در کنسول EBS همیشه بهترین روش است.

تصویر-22
بندر Elastic Beanstalk

برای اینکه Elastic Beanstalk متغیرهای محیطی ما را بخواند، باید فایلی به نام .ebextensions با کد زیر در فهرست اصلی پروژه اضافه کنیم:

 commands: setvars: command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local packages: yum: jq: []
.ebextension برای دریافت متغیرهای env

با اجرای npm install وابستگی ها را نصب کنید و کد خود را به همراه node_modules با اجرای دستور زیر زیپ کنید:

 zip [filename].zip -r ./
دستور فشرده سازی فایل ها در حالت فشرده

به یاد داشته باشید که فایل زیپ شده باید شامل تمام فایل ها و زیر شاخه های موجود در پوشه ریشه باشد و نباید داخل هیچ پوشه دیگری باشد. این به این دلیل است که Elastic Beanstalk فایل package.json را در پوشه ریشه تحلیل می کند و اگر نتواند آن را پیدا کند، خطا می دهد.

اسکرین شات-از-2023-05-07-00-04-50
نمونه ای از ساختار پوشه Elastic Beanstalk صحیح nodejs
تصویر-21
ساختار پوشه اشتباه است (همه فایل ها داخل پوشه ای به نام کد منبع هستند)

اکنون برنامه ما آماده است، پس بیایید برنامه Elastic Beanstalk را ایجاد کنیم.

نحوه ایجاد اپلیکیشن Elastic Beanstalk

مرحله ۱: محیط خود را پیکربندی کنید

ابتدا به کنسول مدیریت AWS بروید و Elastic Beanstalk را از منوی Services انتخاب کنید. بر روی دکمه "ایجاد برنامه" کلیک کنید.

سپس محیط وب سرور را انتخاب کرده و نامی برای برنامه خود در نظر بگیرید.

تصویر-10
شروع کار با AWS Elastic Beanstalk
تصویر-11
به برنامه خود یک نام بدهید

Managed platform در «نوع پلتفرم» و Node.js در «پلتفرم» انتخاب کنید و بقیه را به همان شکلی که هست رها کنید.

سپس در قسمت «کد برنامه» گزینه Upload your code انتخاب کرده و فایل zip را آپلود کنید.

تصویر-12
اسکرین شات انتخاب های بالا را نشان می دهد

سپس برچسب نسخه را روی ۱ تنظیم کنید و در قسمت "Presets" گزینه Single instance را انتخاب کنید و روی Next کلیک کنید.

توجه: High availability برای محیط تولید ترجیح دهید.

تصویر-13
تنظیمات تنظیمات بیشتر

مرحله ۲: دسترسی سرویس را پیکربندی کنید

در این بخش باید نقش های IAM را پیکربندی کنیم. ما باید دو نقش IAM ایجاد کنیم، یکی برای Elastic Beanstalk و دیگری برای EC2

برای نقش سرویس، Create and use new service role انتخاب کنید. به طور خودکار مجوزهای لازم را ایجاد و ارائه می کند

اگر می خواهید از طریق ترمینال به نمونه EC2 خود وارد شوید، یک جفت کلید-مقدار ایجاد کنید و آن را انتخاب کنید. اگر نمی خواهید وارد EC2 شوید، این مرحله را نادیده بگیرید.

یک نقش IAM با مجوزهای زیر ایجاد کنید و نقش را به "نمونه نمایه EC2" اضافه کنید و بعد ادامه دهید.

AWSElasticBeanstalkWebTier

AWSElasticBeanstalkWorkerTier

AWSElasticBeanstalkMulticontainerDocker

تصویر-14
صفحه دسترسی به سرویس را پیکربندی کنید

مرحله ۳: شبکه، پایگاه داده و برچسب ها را تنظیم کنید

اکنون کلید Enable database را روشن کرده و mysql Engine را انتخاب کنید. فیلدهای دیگر را بر اساس نیاز خود پر کنید.

تصویر-15
پر کردن گزینه های دیگر

هنگام انتخاب "خط مشی حذف پایگاه داده" بسیار مراقب باشید. همانطور که من در حال ایجاد برنامه نمونه هستم، گزینه Delete را انتخاب کردم که با حذف برنامه Elastic Beanstalk پایگاه داده را حذف می کند.

اگر روی یک پایگاه داده تولید کار می کنید، انتخاب گزینه Create Snapshot یا Retain همیشه بهترین روش است.

تصویر-16
سیاست حذف پایگاه داده

مرحله ۴: ترافیک نمونه و مقیاس بندی را پیکربندی کنید

شما نیازی به تغییر چیزی در اینجا ندارید، مگر اینکه به آن نیاز خاصی داشته باشید. اگر در حال ساختن این نمونه برنامه هستید، فیلدها را با مقادیر پیش فرض رها کنید. به طور پیش فرض Elastic Beanstalk یک ماشین لینوکس آمازون ایجاد می کند.

تصویر-17
شما می توانید مقادیر پیش فرض را رها کنید مگر اینکه به چیزی خاص نیاز داشته باشید.

مرحله ۵: پیکربندی به روز رسانی، نظارت و ورود به سیستم

در «گزارش‌دهی سلامت» Basic انتخاب کنید و علامت فعال‌سازی به‌روزرسانی‌های مدیریت‌شده را بردارید.

تصویر-18
تنظیمات بیشتر

متغیرهای محیط خود را اضافه کنید و روی Next کلیک کنید.

تصویر-23
اضافه کردن متغیرهای محیطی

در نهایت، تمام تنظیمات خود را تحلیل کرده و به مراحل بعدی ادامه دهید. تهیه RDS زمان می برد، پس بنشینید و قهوه خود را بنوشید

تصویر-19
تنظیمات را مرور کنید و پس از آماده شدن ادامه دهید.

شاید تا به حال متوجه شده باشید که چرا من برای اولین بار ساعت ها را صرف این فرآیند کردم 😂. هر بار که اشتباه می کردم باید حدود ۱۰ تا ۱۵ دقیقه صبر می کردم تا نتیجه را تحلیل کنم و اگر مشکلی پیش آمد تمام مراحل بالا را دوباره انجام دهم. Elastic Beanstalk قطعا صبر شما را آزمایش خواهد کرد، پس آرام باشید و آرام باشید.

هنگامی که همه چیز انجام شد، باید بتوانید ببینید که سلامتی سبز می شود 🎉 و یک URL دامنه تولید می شود 🥳

تصویر-24
موفقیت!

اگر از مخزن نمونه من استفاده کرده باشید، صفحه زیر را در باز کردن URL مشاهده خواهید کرد.

تصویر-25

وقتی domain-url/hikes را می زنید، می توانید صفحه زیر را ببینید. مقداری داده را تایپ کنید و دکمه Record Hike را بزنید، داده ها در جدول hikes در RDS MySQL ذخیره می شوند.

تصویر-26
سایت مستقر شده

نتیجه

در این مقاله، ما با موفقیت یک برنامه NodeJS را با اتصال RDS با استفاده از AWS Elastic Beanstalk اجرا کردیم. این سرویس قدرتمند فرآیند استقرار و مدیریت را ساده می کند و به شما امکان می دهد بر روی توسعه و مقیاس بندی برنامه های خود تمرکز کنید.

اگر در هر نقطه ای گیر کردید، می توانید سوالات خود را در ایمیل من به من ارسال کنید. من خوشحال خواهم شد که به شما کمک کنم.

امیدواریم از خواندن این مقاله لذت برده باشید!

اگر می خواهید درباره AWS بیشتر بدانید، در خبرنامه من ( https://5minslearn.gogosoon.com/ ) مشترک شوید و من را در رسانه های اجتماعی دنبال کنید.