AWS Elastic Beanstalk روند استقرار یک برنامه و آن را نیز در چند مرحله ساده ساده می کند.
فرآیند زمان بر پیکربندی منابع مورد نیاز یک به یک دیگر برای استقرار برنامه های کاربردی وب و سرورها ضروری نیست.
محصولات پلتفرم بهعنوان سرویس (PaaS) مانند AWS Elastic Beanstalk و Heroku ایجاد شدهاند تا به برنامهها اجازه استقرار و در دسترس کاربران را بدون کد و با چند کلیک دکمه بدهند.
بنابراین، AWS Elastic Beanstalk چیست و چگونه می توانید برنامه های وب Go خود را در فضای ابری با Elastic Beanstalk مستقر کنید؟
AWS Elastic Beanstalk چیست؟
AWS Elastic Beanstalk (AWS EB) یک محصول پلت فرم به عنوان یک سرویس است که توسط وب سرویس آمازون ارائه شده است که امکان استقرار و مدیریت سریع و آسان برنامه ها و منابع مورد نیاز را فراهم می کند.
با Elastic Beanstalk، به راحتی می توان یک برنامه کاربردی را بدون نیاز به راه اندازی تمام منابع مورد نیاز آن مانند یک سرور لینوکس در EC2، یا یک سرویس نظارتی در ساعت ابری اجرا کرد. Elastic Beanstalk تمام فرآیندهای تنظیم منابع را مدیریت می کند و به شما امکان می دهد انواع مختلفی از برنامه ها را از جمله Node.js، Golang، PHP، Docker و غیره را مستقر کنید.
ایجاد یک وب سرور ساده Golang
برای هدف این آموزش، شما باید یک برنامه Golang فعال برای استقرار در AWS Elastic Beanstalk داشته باشید، بنابراین در این بخش، یک وب سرور ساده Go ایجاد می شود.
شما باید یک محیط توسعه Golang بر روی دستگاه خود تنظیم کنید تا در این بخش دنبال کنید.
اولین قدم این است که یک پروژه Golang جدید را راه اندازی کنید که می تواند از ترمینال با اجرای دستورات زیر انجام شود:
پس از اتمام، می توانید فهرست پروژه را در IDE دلخواه خود باز کنید. در دایرکتوری پروژه ریشه خود، یک پوشه به نام static ایجاد کنید و یک فایل index.html در آن ایجاد کنید. کد زیر را کپی کرده و در فایل HTML قرار داده و ذخیره کنید.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello world!</title>
</head>
<body>
<h1>Hello World from Elastic Beanstalk</h1>
</body>
</html>
به فهرست اصلی پروژه خود برگردید و یک فایل application.go ایجاد کنید. کد زیر را کپی کرده و در فایل application.go خود قرار دهید و آن را ذخیره کنید. شما باید فایل اصلی را application.go نامگذاری کنید زیرا این فایلی است که Elastic Beanstalk برای ساخت برنامه شما در طول فرآیند استقرار به دنبال آن خواهد بود.
package main
import (
"log"
"net/http"
)
func main() {
static := http.FileServer(http.Dir("./static"))
http.Handle("/", static)
log.Fatal(http.ListenAndServe(":5000", nil))
}
Elastic Beanstalk به طور پیش فرض از یک پیکربندی NGINX استفاده می کند که درخواست ها را فقط در پورت 5000 به برنامه شما ارسال می کند. به جز اینکه پیکربندیهای پیشفرض NGINX را نادیده میگیرید، برنامه Golang شما باید همیشه برای درخواستها به پورت 5000 گوش دهد.
اگر فایل را ذخیره کنید و برنامه را در ترمینال با go run application.go اجرا کنید، می توانید با باز کردن آدرس localhost:5000 در مرورگر خود، صفحه وب ثابت را پیش نمایش کنید.
اکنون نمونه برنامه خود را ساخته و آماده استقرار دارید. در بخش بعدی، برنامه را در AWS Elastic Beanstalk مستقر خواهید کرد.
استقرار یک برنامه Go در AWS Elastic Beanstalk
برای استقرار یک برنامه در هر سرویس AWS، مانند Elastic Beanstalk، به یک حساب ابری AWS نیاز دارید. اگر در حال حاضر حساب AWS ندارید، به صفحه ثبت نام AWS بروید تا یک حساب جدید به صورت رایگان ایجاد کنید.
راههای مختلفی برای استقرار برنامهها در Elastic Beanstalk وجود دارد، از جمله AWS CLI، رابط خط فرمان Elastic Beanstalk (EB CLI) و از طریق کنسول وب، اما در این آموزش، نحوه استقرار در Elastic Beanstalk را از ترمینال با استفاده از ترمینال یاد خواهید گرفت. ابزار EB CLI
میتوانید راهنمای نصب AWS EB CLI را برای راهنمای دقیق نحوه نصب و پیکربندی EB CLI بررسی کنید تا در این بخش دنبال کنید. پس از اتمام نصب و پیکربندی EB CLI، اکنون می توانید ادامه دهید و مراحل زیر را برای استقرار برنامه Golang خود دنبال کنید.
- یک پنجره ترمینال جدید باز کنید و به پوشه پروژه برنامه Go بروید تا با استفاده از دستور cd اجرا شود.
- eb init را برای مقداردهی اولیه یک مخزن جدید Elastic Beanstalk CLI اجرا کنید. EB CLI که برای اولین بار این دستور را پس از نصب اجرا میکنید، گزینههای راهاندازی اولیه را همانطور که در مراحل بعدی مشاهده میکنید، از شما میخواهد.
- پس از انتخاب منطقه ترجیحی، باید اعتبار هویت امنیتی خود را تنظیم کنید (شناسه کلید دسترسی و کلید مخفی). راهنمای جامعی توسط AWS در مورد تولید اعتبارنامه های امنیتی در کنسول AWS ارائه شده است.
- در مرحله بعد، شما باید نام برنامه ای را که در حال اجرا هستید تعریف کنید. به طور پیش فرض، این از نام پوشه پروژه فعلی شما استفاده می کند.
- مرحله بعدی این است که پلتفرم اپلیکیشنی را که می خواهید استقرار دهید، انتخاب کنید، در این صورت، از آنجایی که در حال استقرار یک برنامه Golang هستید، باید گزینه چهارم را انتخاب کنید.
- درخواست بعدی از شما می پرسد که آیا می خواهید یک اتصال SSH را برای برنامه مستقر شده خود فعال کنید. این توصیه می شود زیرا امکان دسترسی از راه دور و اشکال زدایی آسان را برای برنامه شما فراهم می کند، اما در این آموزش، No انتخاب شده است، زیرا این فقط یک برنامه کاربردی ساده است. خطی که نشان میدهد CodeCommit نمیتواند راهاندازی شود جای نگرانی نیست، زیرا به دلیل این واقعیت است که Git یا هر کنترل منبع دیگری در پروژه در این مثال استفاده نمیشود.
- پس از تکمیل مراحل بالا، یک مخزن جدید Elastic Beanstalk CLI ایجاد می شود و اکنون می توانید یک محیط Elastic Beanstalk برای استقرار برنامه خود در مراحل بعدی ایجاد کنید.
- eb create “environment name” را اجرا کنید تا یک محیط جدید به نام محیط مشخص شده ایجاد کنید. محیط با تمام منابع مورد نیاز از جمله یک نمونه EC2، گروه مقیاس خودکار، سطل S3، متعادل کننده بار و غیره ایجاد می شود. این فرآیند بسته به سرعت شبکه حدود 5-10 دقیقه طول می کشد. درست مانند زمانی که یک وب سایت استاتیک را در AWS مستقر می کنید، به برنامه EB شما نیز یک URL اختصاص داده می شود (که در کادر قرمز در تصویر بالا مشخص شده است) که می توانید از آن برای دسترسی به برنامه وب خود استفاده کنید.
- پس از انجام موفقیت آمیز، برنامه برای پیش نمایش آماده است و می توانید eb را باز کنید تا برنامه مستقر شده را در مرورگر خود باز کنید. اکنون باید Hello World را با استفاده از URL اختصاص داده شده توسط Elastic Beanstalk در مرورگر وب خود مشاهده کنید.
خطی که نشان میدهد CodeCommit نمیتواند راهاندازی شود جای نگرانی نیست، زیرا به دلیل این واقعیت است که Git یا هر کنترل منبع دیگری در پروژه در این مثال استفاده نمیشود.
درست مانند زمانی که یک وب سایت استاتیک را در AWS مستقر می کنید، به برنامه EB شما نیز یک URL اختصاص داده می شود (که در کادر قرمز در تصویر بالا مشخص شده است) که می توانید از آن برای دسترسی به برنامه وب خود استفاده کنید.
هر زمان که تغییری در برنامه خود ایجاد می کنید، می توانید eb deploy را اجرا کنید تا آخرین به روز رسانی های Elastic Beanstalk را ارائه کنید. و برای خاموش کردن برنامه و تمام منابع آن، می توانید eb terminate را اجرا کنید.
اکنون با استفاده از ابزار Elastic Beanstalk CLI یک برنامه وب Golang را با موفقیت در AWS Elastic Beanstalk مستقر کرده اید. این فرآیند بسیار آسان است و می توان آن را برای استقرار هر شکلی از برنامه وب Golang در Elastic Beanstalk دنبال کرد.
می توانید داشبورد Elastic Beanstalk خود را در کنسول AWS بررسی کنید تا وضعیت یا هر گونه اطلاعات دیگری در مورد محیط و برنامه خود را مشاهده کنید.
استقرار برنامه های کاربردی وب در Elastic Beanstalk
Elastic Beanstalk یک راه قابل اعتماد برای انتقال برنامه های کاربردی شما از محلی به زندگی در مراحل بسیار آسان است. شما به راحتی می توانید برنامه های کوچک و بزرگ خود را با استفاده از هر یک از ابزارهای موجود توسط AWS از جمله کنسول وب، AWS CLI، EB CLI، API های AWS یا AWS SDK اجرا و مدیریت کنید.
برای تمرین بیشتر با دانش به دست آمده از این مقاله، می توانید یک CRUD API با Go بسازید و آن را در Elastic Beanstalk بکار ببرید.