برنامه نویسی

ایجاد یک برنامه وب وردپرس بسیار در دسترس: پروژه AWS

Summarize this content to 400 words in Persian Lang

پروژه AWS: یک برنامه وب وردپرس بسیار در دسترس ایجاد کنید

مقدمه

این پروژه بر طراحی یک برنامه وب وردپرس انعطاف پذیر و مقیاس پذیر بر روی AWS تمرکز دارد. با استفاده از سرویس‌های کلیدی AWS مانند Amazon VPC، Amazon RDS، Amazon EFS، EC2 و Application Load Balancer (ALB)، یک معماری قوی ایجاد می‌کند که در دسترس بودن، مقیاس‌پذیری و تحمل خطا را برای یک سایت وردپرس تضمین می‌کند و آن را برای سایت‌های وردپرسی مناسب می‌سازد. برنامه های کاربردی ترافیک

با استقرار وردپرس در یک معماری چند لایه، یاد گرفتم که چگونه از زیرساخت AWS برای رفع نیازهای برنامه‌های پرترافیک استفاده کنم و از در دسترس بودن و تحمل خطا اطمینان حاصل کنم.

پشته فناوری

آمازون VPC: محیط های شبکه ایزوله و کنترل های امنیتی را فراهم می کند.
آمازون RDS: میزبان یک پایگاه داده MySQL قابل اعتماد و بسیار در دسترس برای وردپرس است.
آمازون EFS: یک راه حل ذخیره سازی مشترک و مقیاس پذیر برای محتوای پویا که چندین نمونه EC2 را قادر می سازد به داده های مشابه دسترسی داشته باشند.
آمازون EC2: نمونه های وردپرس را میزبانی می کند و به صورت پویا با گروه های مقیاس خودکار مقیاس می شود.
Application Load Balancer (ALB): ترافیک ورودی را در چندین نمونه برای دسترسی بیشتر توزیع می کند.

پیش نیازها

حساب AWS: برای دسترسی و پیکربندی خدمات AWS مورد نیاز است.
AWS CLI: برای مدیریت منابع و وظایف استقرار.
دانش اولیه شبکه AWS: آشنایی با VPC ها، زیرشبکه ها و گروه های امنیتی.
دانش راه اندازی وردپرس: آشنایی با نصب و پیکربندی وردپرس.

بیان مشکل یا مورد استفاده

مشکل: برنامه های وردپرس اغلب با چالش هایی روبرو هستند مقیاس پذیری و در دسترس بودن، به خصوص در محیط های میزبانی سنتی که ظرفیت ممکن است به طور خودکار با نیازهای ترافیک تنظیم نشود.

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

ارتباط با دنیای واقعی: این رویکرد برای برنامه های وردپرس درجه تولید با ترافیک بالا، مانند سایت های تجارت الکترونیک، پلت فرم های خبری و وبلاگ های شرکتی ایده آل است. با پیاده سازی این معماری، شرکت ها می توانند مدیریت دستی، کاهش هزینه ها و بهبود قابلیت اطمینان و سرعت برنامه وردپرس خود را کاهش دهند.

پیاده سازی گام به گام

شبکه را پیکربندی کنید

به عنوان نقطه شروع کارگاه، باید به حساب AWS خود وارد شوید، منطقه مورد نظر خود را انتخاب کنید و یک VPC جدید ایجاد کنید.

برای انجام این کار بر روی آن کلیک کنید VPC های شما در سمت چپ کنسول کلیک کنید VPC ایجاد کنید. wordpress-workshop را به عنوان نام VPC خود و محدوده CIDR مانند زیر وارد کنید. وقتی کارتان تمام شد کلیک کنید ایجاد کنید.

پس از ایجاد VPC، در صفحه جزئیات VPC بر روی آن کلیک کنید اقدامات و سپس انتخاب کنید تنظیمات VPC را ویرایش کنید.مطمئن شوید که هر دو را فعال کنید وضوح DNS و نام میزبان DNS زیر تنظیمات DNS و کلیک کنید ذخیره کنید.

هنگامی که VPC ایجاد شد، گام بعدی ایجاد زیرشبکه هایی است که برای میزبانی برنامه در دو منطقه در دسترس بودن مختلف استفاده می شود. همانطور که در نمودار زیر نشان داده شده است، در مجموع شش زیرشبکه، سه زیر شبکه برای هر AZ ایجاد می کنیم:

اولین جفت زیرشبکه، عمومی، از طریق اینترنت قابل دسترسی خواهد بود و حاوی متعادل کننده های بار و دروازه های NAT است. جفت دوم، برنامه، شامل سرورهای برنامه و سیستم فایل EFS مشترک شما خواهد بود. سرورهای برنامه شما می‌توانند از طریق دروازه‌های NAT با اینترنت ارتباط برقرار کنند، اما فقط از طریق متعادل‌کننده‌های بار آدرس‌پذیر خواهند بود. در نهایت پایگاه داده جفت زیرشبکه پایگاه داده رابطه ای فعال / غیرفعال شما را نگه می دارند. برای سایر منابع موجود در VPC قابل دسترسی خواهد بود، اما به اینترنت دسترسی نخواهد داشت و نمی‌تواند توسط اینترنت یا متعادل‌کننده‌های بار مورد بررسی قرار گیرد.

برای ایجاد هر یک از شش زیرشبکه لطفاً انتخاب کنید زیر شبکه ها در سمت چپ کنسول AWS VPC، سپس بر روی آن کلیک کنید زیر شبکه ایجاد کنید و از جزئیات جدول زیر برای تعریف ویژگی های هر یک از زیرشبکه های خود استفاده کنید. اطمینان حاصل کنید که همیشه انتخاب کنید وردپرس-کارگاه VPC هنگام ایجاد زیرشبکه ها.

اسکرین شات ها در این آزمایشگاه از یک استقرار در ایرلند (eu-west-1) منطقه، اگر در یک منطقه AWS متفاوت می‌سازید، لطفاً مطمئن شوید که زیرشبکه‌های خود را در 2 منطقه در دسترس متفاوت در همان منطقه ایجاد کرده‌اید، مانند us-west-2a و us-west-2b.

برای هر زیر شبکه یک نام و یک محدوده CIDR برای زیرشبکه مشخص کنید. مطمئن شوید و یک زیرشبکه عمومی، برنامه و داده در هر یک از دو منطقه در دسترس ایجاد کنید که در جدول زیر توضیح داده شده است.

در این مرحله همه زیرشبکه‌های صحیح ایجاد شده‌اند و می‌توانند ترافیک شبکه را بین خود هدایت کنند. در مجموعه مراحل بعدی شما یک دروازه اینترنتی ایجاد می کنید که امکان ارتباط بین VPC و اینترنت را فراهم می کند. شما همچنین جداول مسیریابی خود را طوری پیکربندی خواهید کرد که فقط با زیرشبکه های عمومی و نه برنامه های خصوصی یا زیرشبکه های داده اجازه ارتباط اینترنتی را بدهد.

مراحل زیر امکان اتصال از اینترنت به زیرشبکه های عمومی و همچنین اتصال از زیر شبکه های خصوصی به اینترنت از طریق دروازه های NAT را فراهم می کند.

ابتدا باید یک دروازه اینترنتی جدید (IGW) از داشبورد VPC خود ایجاد کنید و آن را به VPC wordpress-workshop متصل کنید. با کلیک کردن شروع کنید دروازه های اینترنت در سمت چپ کنسول VPC و سپس روی آن کلیک کنید ایجاد دروازه اینترنت دکمه یک نام برای IGW خود مانند WP Internet Gateway وارد کنید و کلیک کنید ایجاد دروازه اینترنت.

پس از ایجاد IGW، باید آن را با VPC خود با وصل کردن آن به VPC خود مرتبط کنید.انتخاب کنید به VPC وصل کنید از اقدامات منوی کشویی و سپس wordpress-workshop VPC را از لیست کشویی VPC های موجود انتخاب کنید و بر روی دروازه اینترنت را وصل کنید.

این دروازه توسط نمونه ها و سرویس های در حال اجرا در زیرشبکه های عمومی (مانند زیرشبکه عمومی A و زیرشبکه عمومی B) برای برقراری ارتباط با اینترنت استفاده می شود.

هنگامی که دروازه ایجاد شد، باید یک جدول مسیریابی جدید ایجاد کنید و آن را با زیرشبکه های عمومی مرتبط کنید.با انتخاب یک جدول مسیر جدید ایجاد کنید جداول مسیر در منوی سمت چپ کنسول و سپس روی دکمه کلیک کنید جدول مسیر را ایجاد کنید دکمهبه آن یک نام و wordpress-workshop را از منوی بازشو انتخاب کرده و بر روی آن کلیک کنید جدول مسیر را ایجاد کنید.

پس از ایجاد جدول مسیر، آن را از قسمت انتخاب کنید جداول مسیر بخش داشبورد VPC خود را، سپس بر روی آن کلیک کنید اقدامات -> مسیرها را ویرایش کنید و از طریق Internet Gateway ایجاد شده در مرحله قبل یک مسیر پیش فرض اضافه کنید و بر روی آن کلیک کنید ذخیره تغییرات.

در نهایت، شما باید جدول مسیر جدید ایجاد شده را با زیرشبکه های عمومی مرتبط کنید. برای انجام این کار، روی جدول مسیر عمومی کلیک کنید، سپس بر روی آن کلیک کنید انجمن های زیر شبکه، با کلیک بر روی آن ویرایش کنید پیوندهای زیر شبکه را ویرایش کنید و دو زیرشبکه عمومی که قبلا ایجاد شده اند را انتخاب کرده و بر روی آن کلیک کنید ذخیره انجمن ها.

نمونه های WordPress باید بتوانند به اینترنت متصل شوند و برنامه ها و به روز رسانی های سیستم عامل را دانلود کنند. برای جلوگیری از وابستگی در مناطق در دسترس، شما می خواهید دو دروازه NAT ایجاد کنید، یکی برای هر منطقه در دسترس که در آن برنامه مستقر است.

برای انجام این کار، یک دروازه NAT در هر منطقه دسترسی ایجاد می‌کنید، سپس یک جدول مسیر برای هر زیر شبکه برنامه ایجاد می‌کنید، جدول مسیر را با یک مسیر پیش‌فرض از طریق دروازه NAT در همان منطقه AZ به روز می‌کنید و سپس جدول مسیر را به زیر شبکه برنامه مربوطه

به داشبورد VPC در حساب خود بروید، انتخاب کنید دروازه های NAT و در هر یک از دو زیرشبکه عمومی (یعنی زیرشبکه عمومی A و عمومی B) یک دروازه ایجاد کنید. همیشه هنگام ایجاد دروازه مطمئن شوید که زیرشبکه عمومی صحیح را انتخاب کرده اید.

اکنون باید جداول مسیر را برای هر یک از دو زیرشبکه Application ایجاد کنیم و از دروازه‌های NAT که قبلاً ایجاد شده‌اند به عنوان دروازه پیش‌فرض استفاده کنیم:

جدول مسیر را ویرایش کنید و مسیر پیش فرض را از طریق دروازه NAT در زیر شبکه Application A اضافه کنید:

جدول مسیر را با برنامه زیرشبکه A مرتبط کنید:

سه مرحله آخر را تکرار کنید تا یک جدول مسیر برای برنامه زیرشبکه B نیز ایجاد کنید که از دروازه NAT مستقر در منطقه دسترسی دوم استفاده می کند.

اکنون یک شبکه ابری خصوصی مجازی در دو منطقه در دسترس در یک منطقه AWS ایجاد کرده اید. شما شش زیرشبکه ایجاد کرده‌اید، سه زیرشبکه در هر منطقه در دسترس، و مسیری را پیکربندی کرده‌اید تا اینترنت بتواند با منابع موجود در زیرشبکه‌های عمومی و بالعکس ارتباط برقرار کند. زیرشبکه های برنامه از طریق جدول مسیریابی برای ارتباط با اینترنت از طریق دروازه های NAT در زیرشبکه های عمومی پیکربندی شده اند و زیرشبکه های داده فقط می توانند با منابع در شش زیرشبکه ارتباط برقرار کنند، اما نه اینترنت.

لطفاً توجه داشته باشید که اطلاعات زیر بر اساس یک VPC مستقر در آن است ایرلند (eu-west-1) منطقه اگر منطقه دیگری را برای تنظیم خود انتخاب کرده بودید، باید نام منطقه را بر این اساس تنظیم کنید.

می‌توانید پیکربندی خود را بر اساس تصویر زیر مقایسه کنید و زمانی که تنظیمات خود را تأیید کردید، حرکت کنید.

بررسی کنید نقشه منابع بخشی از VPC شما که VPC، زیرشبکه‌ها، جداول مسیر، دروازه‌های اینترنت، دروازه‌های NAT را نشان می‌دهد که به شما کمک می‌کند منابع را تجسم کنید.

ساخت ردیف داده

پایگاه داده RDS را راه اندازی کنید

شما 2 گروه امنیتی ایجاد خواهید کرد:

از کنسول VPC آمازون دیدن کنید و 2 گروه امنیتی ایجاد کنید.

ابتدا گروه امنیتی WP Database Clients را ایجاد کنید:

را کلیک کنید ایجاد گروه امنیتی
را پر کنید نام گروه امنیتی و توضیحات زمینه ها
wordpress-workshop را از منوی کشویی انتخاب کنید
به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

اکنون گروه امنیتی WP Database را ایجاد کنید:

در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید
نوع را انتخاب کنید MySQL/Aurora که اجازه تردد در پورت 3306 را می دهد سفارشی منبع مشتریان پایگاه داده WP گروه امنیتی

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

اکنون آماده ایجاد پایگاه داده RDS خود هستید.

Amazon RDS یک سرویس پایگاه داده رابطه ای آسان برای مدیریت است. هنگامی که از Amazon RDS برای استقرار یک پایگاه داده در یک راه اندازی بسیار در دسترس استفاده می کنید، 2 نمونه در 2 منطقه در دسترس بودن مختلف ایجاد می کند. برای انجام این کار، هنگامی که یک پایگاه داده ایجاد می کنید، یک گروه زیر شبکه را مشخص می کنید که به RDS می گوید که در کدام زیرشبکه ها می تواند نمونه های پایگاه داده شما را مستقر کند.

برای ایجاد یک گروه زیرشبکه DB، به کنسول RDS آمازون مراجعه کنید، روی آن کلیک کنید گروه های زیر شبکه **در پانل سمت چپ خود، روی **ایجاد گروه زیرشبکه DB کلیک کنید را فشار دهید و از جزئیات زیر استفاده کنید:

به پایین اسکرول کنید و این دو را اضافه کنید زیرشبکه های داده قبلا (یکی برای هر AZ) به گروه زیر شبکه جدید خود ایجاد کرده و کلیک کنید ایجاد کنید.

لطفاً توجه داشته باشید، برای دریافت شناسه زیرشبکه‌های داده، می‌توانید یک تب دوم را باز کنید و به بخش **زیر شبکه**های کنسول VPC بروید. از لیست زیرشبکه ها، زیرشبکه مورد نظر خود را انتخاب کنید. در پایین صفحه می توانید آن را کپی کنید. شناسه زیر شبکه با کلیک بر روی نماد Copy to clipboard در کنار شناسه.

پس از ایجاد گروه زیرشبکه، آماده راه اندازی پایگاه داده تحت مدیریت RDS هستید.به کنسول RDS آمازون بروید، انتخاب کنید پایگاه های داده **از منوی سمت چپ و روی **ایجاد پایگاه داده کلیک کنید.

جزئیات زیر را وارد کنید:

روش ایجاد پایگاه داده: ایجاد استاندارد
گزینه های موتور: Aurora (سازگار با MySQL)
نسخه موتور پیش فرض را حفظ کنید

از wpadminas استفاده کنید نام کاربری اصلی
هنگامی که از شما خواسته شد پسورد اصلی را انتخاب کنید، می توانید روی Auto create a password کلیک کنید یا رمز عبور خود را ایجاد کنید – در هر صورت لطفاً مطمئن شوید که رمز عبور را یادداشت کرده اید زیرا چند مرحله بعد هنگام تنظیم اتصال نمونه های WordPress لازم است. به پایگاه داده

اندازه نمونه DB را همراه با استقرار Multi-AZ انتخاب کنید، که برای در دسترس بودن بالا لازم است. برای پایین نگه داشتن هزینه ها، برای این کارگاه استفاده از کلاس نمونه انفجاری (db.t4g.medium یا مشابه) را توصیه می کنیم. نمونه های انفجاری ممکن است برای محیط های تولید مناسب نباشند.

در بخش اتصال، مطمئن شوید که wordpress-workshop VPC را به همراه گروه زیرشبکه aurora-wordpress DB و گروه امنیتی WP Database که قبلاً ایجاد شده است را انتخاب کنید:

در نظارت بخش، علامت را بردارید DevOps Guru را روشن کنید

گسترش دهید پیکربندی اضافی بخش و یک را مشخص کنید نام پایگاه داده اولیه از وردپرس.

در نهایت بر روی آن کلیک کنید ایجاد پایگاه داده برای شروع ساخت خوشهتهیه و در دسترس قرار گرفتن پایگاه داده چند دقیقه طول می کشد.

پایگاه داده فعال/غیرفعال اکنون باید در دسترس باشد و در دو ناحیه در دسترس بودن متفاوت اجرا شود و منتظر اتصالات از هر منبع EC2 با گروه امنیتی کلاینت مرتبط با آن باشد.لطفاً پیکربندی خود را بر اساس اسکرین شات های زیر مقایسه کنید و پس از تأیید تنظیمات خود، به سمت آن حرکت کنید.

گروه های امنیتی

گروه زیر شبکه

راه اندازی پایگاه داده

فایل سیستم مشترک را ایجاد کنید

Amazon Elastic File System (Amazon EFS) یک سیستم فایل ساده، مقیاس پذیر و الاستیک را برای بارهای کاری عمومی برای استفاده با خدمات AWS Cloud و منابع داخلی ارائه می دهد. در این آزمایشگاه شما یک کلاستر EFS ایجاد می کنید که یک سیستم فایل مشترک برای محتوای وردپرس شما فراهم می کند.

هنگام استفاده از Amazon EFS، گروه‌های امنیتی Amazon EC2 را برای نمونه‌های EC2 خود و گروه‌های امنیتی را برای اهداف نصب EFS مرتبط با سیستم فایل مشخص می‌کنید. یک گروه امنیتی به عنوان یک فایروال عمل می کند و قوانینی که اضافه می کنید جریان ترافیک را مشخص می کند.

در این کارگاه شما 2 گروه امنیتی ایجاد خواهید کرد:

برای ایجاد 2 گروه امنیتی از کنسول VPC آمازون دیدن کنید.

ابتدا گروه امنیتی WP EFS Clients را ایجاد کنید:

را کلیک کنید ایجاد گروه امنیتی
را پر کنید نام گروه امنیتی و توضیحات زمینه ها
از منوی کشویی wordpress-workshop VPC را انتخاب کنید
به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

Amazon EFS یک سیستم فایل مشترک ایجاد می کند و آن را به عنوان یک اشتراک NFS در معرض نمایش قرار می دهد. گروه امنیتی متصل به نقاط اتصال EFS باید به اتصالات ورودی در پورت NFS TCP 2049 اجازه دهد.

ایجاد گروه امنیتی WP EFS:

در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید
نوع را انتخاب کنید NFS و مشخص کنید سفارشی منبع مشتریان WP EFS گروه امنیتی

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

اکنون شما آماده ایجاد سیستم فایل EFS هستید.

برای ایجاد یک فایل سیستم EFS به کنسول آمازون EFS مراجعه کرده و کلیک کنید ایجاد سیستم فایل.

WordPress-EFSin را وارد کنید نام زمینهاز منوی کشویی VPC، wordpress-workshop VPC را انتخاب کرده و کلیک کنید سفارشی کنید.

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

تمام تنظیمات دیگر را بدون تغییر نگه دارید و کلیک کنید بعدی.

در دسترسی به شبکه صفحه، زیر اهداف را سوار کنید، دو زیرشبکه ایجاد شده برای ردیف داده (زیر شبکه داده A و B) را انتخاب کنید. در سمت راست، زیر گروه های امنیتی، گروه امنیتی WP EFS ایجاد شده در بالا را به هر هدف mount مرتبط کنید و ارتباط را با آن حذف کنید پیش فرض گروه امنیتیکلیک کنید بعدی.

پیش فرض ها را در صفحه بعدی بپذیرید سیاست سیستم فایل

کلیک کنید بعدی، ایجاد سیستم فایل را با کلیک کردن بررسی و تایید کنید ایجاد کنید.

با این کار دو هدف mount در زیرشبکه های Data ایجاد می شود و پس از چند لحظه سیستم فایل تبدیل می شود موجود است.

لایه برنامه را بسازید

متعادل کننده بار را ایجاد کنید

برای توزیع ترافیک در سرورهای برنامه وردپرس خود به یک متعادل کننده بار نیاز دارید. در این آزمایشگاه شما یک Application Load Balancer ایجاد خواهید کرد.

Application Load Balancer در سطح درخواست (لایه 7)، مسیریابی ترافیک به اهداف (نمونه های EC2، کانتینرها، آدرس های IP و توابع Lambda) بر اساس محتوای درخواست عمل می کند.

برای ایجاد گروه های امنیتی از کنسول VPC آمازون دیدن کنید.

ابتدا گروه امنیتی WP Load Balancer را ایجاد کنید:

را کلیک کنید ایجاد گروه امنیتی
را پر کنید نام گروه امنیتی و توضیحات زمینه ها
از منوی کشویی wordpress-workshop را انتخاب کنید
در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید
نوع را انتخاب کنید HTTP که اجازه تردد در پورت 80 را می دهد آی پی من منبع برای محدود کردن دسترسی به IP عمومی فعلی شما.
به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

در خارج از محیط کارگاه، احتمالاً می خواهید گروه امنیتی را تغییر دهید تا از هر آدرس IP اجازه دسترسی داشته باشید. برای کسب اطلاعات بیشتر در مورد امنیت در فضای ابری و فضای ابری، لطفاً به وب سایت AWS Cloud Security مراجعه کنید.

اکنون گروه امنیتی WP Web Servers را ایجاد کنید:

در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید
نوع را انتخاب کنید HTTP که اجازه تردد در پورت 80 را می دهد سفارشی منبع WP Load Balancer گروه امنیتی

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

یک متعادل کننده بار ترافیک ورودی برنامه را در چندین هدف، مانند نمونه های EC2، در چندین منطقه در دسترس توزیع می کند و در دسترس بودن پلت فرم وردپرس را افزایش می دهد.

از کنسول EC2 کلیک کنید Load Balancers **در منوی سمت چپ و سپس روی **Create load balancer کلیک کنید.کلیک کنید **زیر **Application Load Balancer ایجاد کنید.

یک نام و زیر به بار متعادل کننده خود بدهید نقشه برداری شبکه wordpress-workshop VPC را انتخاب کنید.سپس چک باکس هر دو منطقه در دسترس را علامت بزنید و زیرشبکه های عمومی ایجاد شده در اولین آزمایشگاه را انتخاب کنید.

زیر گروه های امنیتی را انتخاب کنید WP Load Balancer قبلا ایجاد شده و هر گروه امنیتی پیش فرض را حذف کنید.

زیر شنوندگان و مسیریابی روی لینک کلیک کنید گروه هدف ایجاد کنید.

این یک پنجره جدید برای ایجاد یک گروه هدف جدید برای شما باز می کند. از جزئیات زیر استفاده کنید

سپس، در بررسی های سلامت بخش، مسیر زیر را وارد کنید:

/phpinfo.php در آزمایشگاه بعدی شما الگوی راه اندازی را برای سرورهای برنامه وب ایجاد می کنید که phpinfo.php را به عنوان بخشی از اجرای اسکریپت UserData در هنگام بوت نمونه ایجاد می کند. اگر بررسی‌های سلامت ناموفق باشد، اسکریپت داده‌های کاربر به احتمال زیاد شکست خورده است.

را کلیک کنید بعدی و سپس در گروه هدف ایجاد کنید بدون تعیین هدف

پنجره را ببندید، شنونده را رفرش کنید تا گروه هدف ایجاد شده را انتخاب کنید.

در خلاصه بخش، بررسی و کلیک کنید ایجاد متعادل کننده بار برای ایجاد متعادل کننده بار.

را یادداشت کنید نام DNS برای متعادل کننده بار شما ایجاد شده است زیرا در مراحل زیر به آن نیاز خواهید داشت.

یک الگوی راه اندازی ایجاد کنید

شما یک شبکه نرم‌افزاری تعریف‌شده در چندین منطقه دسترسی ایزوله شده با خطا ایجاد کرده‌اید، یک پایگاه داده Aurora MySQL بسیار در دسترس و یک سیستم فایل EFS را برای ذخیره‌سازی مشترک مستقر کرده‌اید. در این آزمایشگاه، قالب‌هایی را برای سرورهای برنامه‌ای که PHP را اجرا می‌کنند، به عنوان بخشی از نصب وردپرس مقیاس‌پذیر تعریف می‌کنید.

یک الگوی راه‌اندازی اطلاعات پیکربندی نمونه‌ای است که به شما امکان می‌دهد یک پیکربندی نمونه ذخیره‌شده ایجاد کنید که می‌تواند برای راه‌اندازی نمونه‌ها در زمان بعدی استفاده شود. این شامل شناسه تصویر ماشین آمازون (AMI)، نوع نمونه، یک جفت کلید، گروه‌های امنیتی و سایر پارامترهای مورد استفاده برای راه‌اندازی نمونه‌های EC2 است. علاوه بر این، به شما امکان می دهد چندین نسخه از یک الگوی راه اندازی را داشته باشید.

انتخاب کنید قالب ها را راه اندازی کنید در پنل سمت چپ کنسول EC2 خود، سپس بر روی آن کلیک کنید ایجاد قالب راه اندازی.

به الگوی Launch نام WP-WebServers-LT بدهید

را انتخاب کنید لینوکس آمازون AMI پس از انتخاب شروع سریع در تصاویر برنامه و سیستم عامل (Amazon Machine Image) بخش

نوع نمونه t3.micro را انتخاب کنید:

جفت کلید را وارد نکنید و موارد زیر را انتخاب کنید گروه های امنیتی برای پیوست کردن به نمونه‌های راه‌اندازی شده از این الگوی راه‌اندازی:
سرورهای وب WP برای اجازه اتصال از Application Load Balancer
سرویس گیرندگان پایگاه داده WP برای اجازه دادن به نمونه ها برای اتصال به Aurora MySQL DB
سرویس گیرندگان WP EFS به نمونه ها اجازه می دهد تا صادرات NFS سیستم فایل EFS را نصب کنند.

گسترش دهید جزئیات پیشرفته و از اسکریپت زیر برای پر کردن قسمت User Data به عنوان متن استفاده کنید.

متغیرهای موجود در اسکریپت Bash زیر را با مقادیر محیط خود به روز کنید.

EFS_FS_ID
این باید روی شناسه سیستم فایل Elastic Filesystem مستقر در آزمایشگاه قبلی تنظیم شود. برای دریافت شناسه فایل سیستم به کنسول EFS مراجعه کنید.
DB_NAME
این نام پایگاه داده ای است که وردپرس باید از آن برای ذخیره داده های خود استفاده کند. اگر مقادیر پیش‌فرض را در آزمایشگاه 2 وارد کرده‌اید، باید مقدار wordpress باشد. برای تأیید، از صفحه جزئیات پایگاه داده RDS خود دیدن کنید و به دنبال آن بگردید نام DB زیر پیکربندی.
DB_HOST
این نام میزبان نمونه Writer پایگاه داده شما است. برای به دست آوردن این، از صفحه جزئیات پایگاه داده RDS خود دیدن کنید و به زیر نگاه کنید اتصال و امنیت. استفاده کنید نویسنده نمونه hostname را تایپ کنید، مقداری مانند wordpress-workshop.cluster-ctdnyvvewl6s.eu-west-1.rds.amazonaws.com.
DB_USERNAME
این نام کاربری پایگاه داده ای خواهد بود که در آزمایشگاه 2 مشخص کرده اید. می توان آن را به صورت پیدا کرد نام کاربری اصلی زیر پیکربندی در صفحه جزئیات برای نمونه RDS شما.
DB_PASSWORD
این رمز عبور برای کاربر پایگاه داده ایجاد شده در آزمایشگاه 2 است.

#!/bin/bash

DB_NAME=”wordpress”
DB_USERNAME=”wpadmin”
DB_PASSWORD=””
DB_HOST=”wordpress-workshop.cluster-xxxxxxxxxx.eu-west-1.rds.amazonaws.com”
EFS_FS_ID=”fs-xxxxxxxxx”

dnf update -y

#install wget, apache server, php and efs utils
dnf install -y httpd wget php-fpm php-mysqli php-json php amazon-efs-utils

#create wp-content mountpoint
mkdir -p /var/www/html/wp-content
mount -t efs $EFS_FS_ID:/ /var/www/html/wp-content

#install wordpress
cd /var/www
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
cp wordpress/wp-config-sample.php wordpress/wp-config.php
rm -f latest.tar.gz

#change wp-config with DB details
cp -rn wordpress/* /var/www/html/
sed -i “s/database_name_here/$DB_NAME/g” /var/www/html/wp-config.php
sed -i “s/username_here/$DB_USERNAME/g” /var/www/html/wp-config.php
sed -i “s/password_here/$DB_PASSWORD/g” /var/www/html/wp-config.php
sed -i “s/localhost/$DB_HOST/g” /var/www/html/wp-config.php

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

#تغییر فایل httpd.conf به allowoverride# فایل های .htaccess را در پیکربندی آپاچی با استفاده از دستور sed فعال کنیدsed -i '//,// s/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf

# create phpinfo file
echo “” > /var/www/html/phpinfo.php

# Recursively change OWNER of directory /var/www and all its contents
chown -R apache:apache /var/www

systemctl restart httpd
systemctl enable httpd

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تنظیمات نهایی را در زیر مرور کنید خلاصه و کلیک کنید ایجاد قالب راه اندازی. شما می توانید هشدارهای مربوط به امکان SSH را به سرور نادیده بگیرید و همچنین می توانید انتخاب کنید بدون جفت کلید ادامه دهید زیرا نیازی به دسترسی از راه دور به این سرورها نخواهید داشت.

سرور برنامه را ایجاد کنید

در این آزمایشگاه شما از load balancer و راه اندازی پیکربندی از 2 آزمایشگاه قبلی برای ایجاد یک ناوگان مقیاس خودکار از سرورهای برنامه وردپرس استفاده خواهید کرد.

هنگامی که پیکربندی راه اندازی را ایجاد کردید، می توانید به ایجاد گروه مقیاس خودکار برای سرورهای وب وردپرس ادامه دهید.برای انجام آن را انتخاب کنید گروه های مقیاس خودکار در کنسول EC2 بر روی آن کلیک کنید یک گروه مقیاس خودکار ایجاد کنید نامی را مشخص کنید و الگوی راه اندازی قبلی ایجاد شده را انتخاب کنید:

در صفحه بعدی مطمئن شوید که wordpress-workshop VPC به همراه زیرشبکه های Application Subnet A و Application Subnet B برای سرورهای وب انتخاب شده است:

در صفحه بعدی گزینه های پیشرفته را پیکربندی کنید گزینه را انتخاب کنید به یک بار متعادل کننده موجود وصل کنید و گروه هدفی را که قبلاً ایجاد کردید از بین انتخاب کنید گروه های هدف متعادل کننده بار موجود فهرست

در بررسی های سلامت بخش، حتما بررسی های سلامتی Elastic Load Balancing را روشن کنید.

کلیک کنید بعدی برای پیکربندی سیاست های اندازه و مقیاس بندی گروه با مقادیر زیر:

در اندازه گروه بخش، 2 را در قسمت وارد کنید ظرفیت مورد نظر زمینه
در مقیاس بندی بخش، 2 را به عنوان وارد کنید حداقل ظرفیت مورد نظر و 4 به عنوان حداکثر ظرفیت مورد نظر
انتخاب کنید سیاست مقیاس گذاری ردیابی هدف و عدد 80 را به عنوان وارد کنید ارزش هدف برای میانگین استفاده از CPU

کلیک کنید و پیش فرض های باقیمانده را بپذیرید تا با کلیک کردن بر روی ایجاد Auto Scaling Group تکمیل شود ایجاد گروه مقیاس خودکار.

گروه مقیاس خودکار اکنون شروع به ایجاد تعداد مورد نظر از نمونه های EC2 بر اساس الگوی راه اندازی می کند که شما ایجاد کرده اید. همانطور که سیستم ها آنلاین می شوند، گروه هدف با جزئیات نمونه برای نمونه های EC2 شما به روز می شود و متعادل کننده بار شروع به توزیع ترافیک در بین نمونه ها می کند. همانطور که نمونه‌ها اضافه یا حذف می‌شوند، گروه مقیاس خودکار و متعادل‌کننده بار با یکدیگر هماهنگ کار خواهند کرد تا اطمینان حاصل کنند که فقط نمونه‌های سالم ترافیک دریافت می‌کنند.

هنگامی که اهداف شما در گروه هدف شما سالم تلقی می شوند، می توانید نام DNS را برای Application Load Balancer در مرورگر وب خود باز کنید تا نصب وردپرس تازه ایجاد شده خود را مشاهده کنید.

شما اکنون یک استقرار مقیاس خودکار بسیار در دسترس از وردپرس ایجاد کرده‌اید که در پاسخ به ترافیک مشتری که به وب‌سایت برخورد می‌کند، به داخل و خارج می‌شود.

پاک کردن

اگر از حساب شخصی خود برای دنبال کردن این کارگاه استفاده کرده‌اید، لطفاً اقدامات زیر را انجام دهید تا همه منابعی که ایجاد کرده‌اید حذف کنید و هزینه‌ای برای آنها تحمیل نکنید.

برو به گروه های مقیاس خودکار بخش EC2 Console، Autoscaling Group ایجاد شده در آزمایشگاه 6 را انتخاب کنید، آن را باز کنید اقدامات ** منو و انتخاب کنید **حذف. برای تایید حذف، در فیلد متنی که باز می شود، delete را تایپ کرده و کلیک کنید حذف کنید.

در کنسول EC2، به این قسمت بروید متعادل کننده های بار بخش، Application Load Balancer ایجاد شده در Lab 4 را انتخاب کنید، آن را باز کنید اقدامات **منو و **حذف متعادل کننده بار را انتخاب کنید. برای تایید حذف، در فیلد متنی دیالوگی که باز می شود، تایید را تایپ کرده و کلیک کنید حذف کنید.

برو به گروه های هدف بخش، گروه هدف ایجاد شده در آزمایشگاه 4 را انتخاب کنید، آن را باز کنید اقدامات ** منو و انتخاب کنید **حذف. را کلیک کنید بله حذف کنید در گفتگویی که باز می شود.

حرکت به قالب ها را راه اندازی کنید بخش Launch Template ایجاد شده در Lab 5 را انتخاب کرده و باز کنید منوی اقدامات **و **حذف الگو را انتخاب کنید.برای تایید حذف، Delete را در فیلد تایپ کرده و کلیک کنید حذف کنید

پس از حذف Auto Scaling Group، نمونه‌ها شروع به خاموش شدن می‌کنند و در نهایت خاتمه می‌یابند. بررسی کنید که تمام نمونه‌های راه‌اندازی شده توسط Auto Scaling Group به درستی خاتمه یافته‌اند.می توانید استفاده کنید aws:autoscaling:groupName ویژگی برای فیلتر نمونه‌های راه‌اندازی شده توسط Auto Scaling Group ایجاد شده در آزمایشگاه 6.

به کنسول RDS بروید، آن را انتخاب کنید wordpress-workshop ***خوشه منطقه ای *و روی **Modify کلیک کنید.
به پایین صفحه بروید، تیک آن را بردارید حفاظت حذف را فعال کنید و بر روی کلیک کنید ادامه دهید

گزینه را انتخاب کنید بلافاصله درخواست دهید و کلیک کنید خوشه را اصلاح کنید

در کنسول RDS، را انتخاب کنید نمونه خواننده، برو به اقدامات ** منو و انتخاب کنید **حذف. برای تایید حذف، delete me را در فیلد تایپ کرده و کلیک کنید حذف کنید.

حالا گزینه را انتخاب کنید به عنوان مثال Writer، به **اقدامات بروید* منو و انتخاب کنید حذف کنید.برای تایید حذف، delete me را در فیلد تایپ کرده و کلیک کنید حذف کنید.
شما می توانید حذف کنید خوشه منطقه ای اکنون آن را انتخاب کنید، به اقدامات منو و انتخاب کنید حذف کنید.مطمئن شوید که

برای تایید حذف، Delete me را در فیلد تایپ کنید و روی آن کلیک کنید حذف خوشه DB

هنگامی که RDS Aurora Cluster به طور کامل حذف شد، به صفحه RDS Snapshots بروید، سیستم را بزنید و مطمئن شوید که هیچ عکس فوری خودکاری برای خوشه Aurora ایجاد شده در طول کارگاه وجود ندارد.

به کنسول EFS بروید، سیستم فایل ایجاد شده در Lab 3 را انتخاب کنید و کلیک کنید حذف کنید.با وارد کردن شناسه فایل سیستم در گفتگوی ظاهر شده، حذف را تأیید کنید و کلیک کنید تایید کنید.

Gateway های NAT را حذف کنید

به صفحه دروازه های NAT کنسول VPC بروید، هر بار یک دروازه NAT را انتخاب کنید، به اقدامات **منو و **حذف دروازه NAT را انتخاب کنید.برای تایید حذف، حذف را در فیلد تایپ کرده و کلیک کنید حذف کنید

VPC را حذف کنید

VPC wordpress-workshop را از صفحه VPCs خود در کنسول VPC انتخاب کنید. برو به اقدامات ** منو و انتخاب کنید **حذف VPC.

تنها در صورتی می‌توانید VPC را حذف کنید که هنوز هیچ واسط شبکه در هیچ یک از زیرشبکه‌های VPC وجود نداشته باشد. گفتگویی که با کلیک بر روی آن ظاهر می شود VPC را حذف کنید ENI های باقی مانده را نشان می دهد.

بر روی کلیک کنید رابط های شبکه برای بررسی اینکه کدام سرویس‌ها هنوز از VPC استفاده می‌کنند پیوند دهید و اقدامات لازم را انجام دهید.

هنگامی که تمام ENI ها حذف شدند، می توانید VPC را حذف کنید.گفتگوی ظاهر شده نشان می دهد که پس از حذف VPC کدام منابع حذف خواهند شد.برای تایید حذف، حذف را در فیلد تایپ کرده و کلیک کنید حذف کنید

آی پی های الاستیک را آزاد کنید

به صفحه Elastic IP های کنسول VPC بروید، همه IP های الاستیک غیر مرتبط را انتخاب کنید (شناسه ارتباط *مقدار – است)، منوی **اقدامات** را باز کرده و **آدرسهای IP الاستیک را انتخاب کنید.*.

اگر کاربر IAM کاربر کارگاه را برای دنبال کردن آزمایشگاه‌های کارگاه ایجاد کرده‌اید، مطمئن شوید که آن را از کنسول IAM حذف کرده‌اید که با یک کاربر IAM یا نقش IAM با مجوزهای مناسب وارد سیستم می‌شود.

چالش های پیش رو و راه حل ها

مشکلات اتصال پایگاه داده: هنگام تنظیم RDS، برخی از مشکلات پیکربندی با کنترل دسترسی وجود داشت.
راه حل: گروه های امنیتی VPC را تنظیم کرد و اطمینان حاصل کرد که نمونه های EC2 دارای مجوزهای صحیح برای دسترسی به RDS هستند.
مدیریت فایل وردپرس: مدیریت فایل های رسانه ای وردپرس در چندین نمونه در ابتدا چالش برانگیز بود.
راه حل: Amazon EFS را به‌عنوان یک سیستم فایل مشترک پیاده‌سازی کرد که مدیریت یکپارچه رسانه را در بین نمونه‌ها امکان‌پذیر می‌کند.

نتیجه گیری

این پروژه AWS نحوه ایجاد یک محیط وردپرس بسیار در دسترس و مقیاس پذیر را نشان می دهد که برای سایت های درجه تولید با ترافیک بالا ایده آل است. این قابلیت‌های AWS را در مدیریت زیرساخت برای به حداقل رساندن مداخله دستی و در عین حال به حداکثر رساندن زمان کار به نمایش می‌گذارد.

مخزن GitHub من را کاوش کنید.

شوبهام مورتی — مهندس امنیت ابر مشتاق | آموزش ابری هفتگی!!

بیایید وصل شویم: لینکدین، توییتر، گیت‌هاب

پروژه AWS: یک برنامه وب وردپرس بسیار در دسترس ایجاد کنید

مقدمه

این پروژه بر طراحی یک برنامه وب وردپرس انعطاف پذیر و مقیاس پذیر بر روی AWS تمرکز دارد. با استفاده از سرویس‌های کلیدی AWS مانند Amazon VPC، Amazon RDS، Amazon EFS، EC2 و Application Load Balancer (ALB)، یک معماری قوی ایجاد می‌کند که در دسترس بودن، مقیاس‌پذیری و تحمل خطا را برای یک سایت وردپرس تضمین می‌کند و آن را برای سایت‌های وردپرسی مناسب می‌سازد. برنامه های کاربردی ترافیک

با استقرار وردپرس در یک معماری چند لایه، یاد گرفتم که چگونه از زیرساخت AWS برای رفع نیازهای برنامه‌های پرترافیک استفاده کنم و از در دسترس بودن و تحمل خطا اطمینان حاصل کنم.

پشته فناوری

  • آمازون VPC: محیط های شبکه ایزوله و کنترل های امنیتی را فراهم می کند.

  • آمازون RDS: میزبان یک پایگاه داده MySQL قابل اعتماد و بسیار در دسترس برای وردپرس است.

  • آمازون EFS: یک راه حل ذخیره سازی مشترک و مقیاس پذیر برای محتوای پویا که چندین نمونه EC2 را قادر می سازد به داده های مشابه دسترسی داشته باشند.

  • آمازون EC2: نمونه های وردپرس را میزبانی می کند و به صورت پویا با گروه های مقیاس خودکار مقیاس می شود.

  • Application Load Balancer (ALB): ترافیک ورودی را در چندین نمونه برای دسترسی بیشتر توزیع می کند.

پیش نیازها

  • حساب AWS: برای دسترسی و پیکربندی خدمات AWS مورد نیاز است.

  • AWS CLI: برای مدیریت منابع و وظایف استقرار.

  • دانش اولیه شبکه AWS: آشنایی با VPC ها، زیرشبکه ها و گروه های امنیتی.

  • دانش راه اندازی وردپرس: آشنایی با نصب و پیکربندی وردپرس.

بیان مشکل یا مورد استفاده

مشکل: برنامه های وردپرس اغلب با چالش هایی روبرو هستند مقیاس پذیری و در دسترس بودن، به خصوص در محیط های میزبانی سنتی که ظرفیت ممکن است به طور خودکار با نیازهای ترافیک تنظیم نشود.

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

ارتباط با دنیای واقعی: این رویکرد برای برنامه های وردپرس درجه تولید با ترافیک بالا، مانند سایت های تجارت الکترونیک، پلت فرم های خبری و وبلاگ های شرکتی ایده آل است. با پیاده سازی این معماری، شرکت ها می توانند مدیریت دستی، کاهش هزینه ها و بهبود قابلیت اطمینان و سرعت برنامه وردپرس خود را کاهش دهند.

پیاده سازی گام به گام

شبکه را پیکربندی کنید

به عنوان نقطه شروع کارگاه، باید به حساب AWS خود وارد شوید، منطقه مورد نظر خود را انتخاب کنید و یک VPC جدید ایجاد کنید.

برای انجام این کار بر روی آن کلیک کنید VPC های شما در سمت چپ کنسول کلیک کنید VPC ایجاد کنید. wordpress-workshop را به عنوان نام VPC خود و محدوده CIDR مانند زیر وارد کنید. وقتی کارتان تمام شد کلیک کنید ایجاد کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkij6b6059utabc77eql

پس از ایجاد VPC، در صفحه جزئیات VPC بر روی آن کلیک کنید اقدامات و سپس انتخاب کنید تنظیمات VPC را ویرایش کنید.
مطمئن شوید که هر دو را فعال کنید وضوح DNS و نام میزبان DNS زیر تنظیمات DNS و کلیک کنید ذخیره کنید.

https%3A%2F%2Fdev to

هنگامی که VPC ایجاد شد، گام بعدی ایجاد زیرشبکه هایی است که برای میزبانی برنامه در دو منطقه در دسترس بودن مختلف استفاده می شود. همانطور که در نمودار زیر نشان داده شده است، در مجموع شش زیرشبکه، سه زیر شبکه برای هر AZ ایجاد می کنیم:

https%3A%2F%2Fdev to

اولین جفت زیرشبکه، عمومی، از طریق اینترنت قابل دسترسی خواهد بود و حاوی متعادل کننده های بار و دروازه های NAT است. جفت دوم، برنامه، شامل سرورهای برنامه و سیستم فایل EFS مشترک شما خواهد بود. سرورهای برنامه شما می‌توانند از طریق دروازه‌های NAT با اینترنت ارتباط برقرار کنند، اما فقط از طریق متعادل‌کننده‌های بار آدرس‌پذیر خواهند بود. در نهایت پایگاه داده جفت زیرشبکه پایگاه داده رابطه ای فعال / غیرفعال شما را نگه می دارند. برای سایر منابع موجود در VPC قابل دسترسی خواهد بود، اما به اینترنت دسترسی نخواهد داشت و نمی‌تواند توسط اینترنت یا متعادل‌کننده‌های بار مورد بررسی قرار گیرد.

برای ایجاد هر یک از شش زیرشبکه لطفاً انتخاب کنید زیر شبکه ها در سمت چپ کنسول AWS VPC، سپس بر روی آن کلیک کنید زیر شبکه ایجاد کنید و از جزئیات جدول زیر برای تعریف ویژگی های هر یک از زیرشبکه های خود استفاده کنید. اطمینان حاصل کنید که همیشه انتخاب کنید وردپرس-کارگاه VPC هنگام ایجاد زیرشبکه ها.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3u26jjoweiwo6n0l1ti

اسکرین شات ها در این آزمایشگاه از یک استقرار در ایرلند (eu-west-1) منطقه، اگر در یک منطقه AWS متفاوت می‌سازید، لطفاً مطمئن شوید که زیرشبکه‌های خود را در 2 منطقه در دسترس متفاوت در همان منطقه ایجاد کرده‌اید، مانند us-west-2a و us-west-2b.

برای هر زیر شبکه یک نام و یک محدوده CIDR برای زیرشبکه مشخص کنید. مطمئن شوید و یک زیرشبکه عمومی، برنامه و داده در هر یک از دو منطقه در دسترس ایجاد کنید که در جدول زیر توضیح داده شده است.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzt4whfgza1njvitamnw

در این مرحله همه زیرشبکه‌های صحیح ایجاد شده‌اند و می‌توانند ترافیک شبکه را بین خود هدایت کنند. در مجموعه مراحل بعدی شما یک دروازه اینترنتی ایجاد می کنید که امکان ارتباط بین VPC و اینترنت را فراهم می کند. شما همچنین جداول مسیریابی خود را طوری پیکربندی خواهید کرد که فقط با زیرشبکه های عمومی و نه برنامه های خصوصی یا زیرشبکه های داده اجازه ارتباط اینترنتی را بدهد.

مراحل زیر امکان اتصال از اینترنت به زیرشبکه های عمومی و همچنین اتصال از زیر شبکه های خصوصی به اینترنت از طریق دروازه های NAT را فراهم می کند.

ابتدا باید یک دروازه اینترنتی جدید (IGW) از داشبورد VPC خود ایجاد کنید و آن را به VPC wordpress-workshop متصل کنید. با کلیک کردن شروع کنید دروازه های اینترنت در سمت چپ کنسول VPC و سپس روی آن کلیک کنید ایجاد دروازه اینترنت دکمه یک نام برای IGW خود مانند WP Internet Gateway وارد کنید و کلیک کنید ایجاد دروازه اینترنت.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F24ot51ttieffjpon526l

پس از ایجاد IGW، باید آن را با VPC خود با وصل کردن آن به VPC خود مرتبط کنید.
انتخاب کنید به VPC وصل کنید از اقدامات منوی کشویی و سپس wordpress-workshop VPC را از لیست کشویی VPC های موجود انتخاب کنید و بر روی دروازه اینترنت را وصل کنید.

https%3A%2F%2Fdev to

این دروازه توسط نمونه ها و سرویس های در حال اجرا در زیرشبکه های عمومی (مانند زیرشبکه عمومی A و زیرشبکه عمومی B) برای برقراری ارتباط با اینترنت استفاده می شود.

هنگامی که دروازه ایجاد شد، باید یک جدول مسیریابی جدید ایجاد کنید و آن را با زیرشبکه های عمومی مرتبط کنید.
با انتخاب یک جدول مسیر جدید ایجاد کنید جداول مسیر در منوی سمت چپ کنسول و سپس روی دکمه کلیک کنید جدول مسیر را ایجاد کنید دکمه
به آن یک نام و wordpress-workshop را از منوی بازشو انتخاب کرده و بر روی آن کلیک کنید جدول مسیر را ایجاد کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgi1ypftge2gp67skuamq

پس از ایجاد جدول مسیر، آن را از قسمت انتخاب کنید جداول مسیر بخش داشبورد VPC خود را، سپس بر روی آن کلیک کنید اقدامات -> مسیرها را ویرایش کنید و از طریق Internet Gateway ایجاد شده در مرحله قبل یک مسیر پیش فرض اضافه کنید و بر روی آن کلیک کنید ذخیره تغییرات.

https%3A%2F%2Fdev to

در نهایت، شما باید جدول مسیر جدید ایجاد شده را با زیرشبکه های عمومی مرتبط کنید. برای انجام این کار، روی جدول مسیر عمومی کلیک کنید، سپس بر روی آن کلیک کنید انجمن های زیر شبکه، با کلیک بر روی آن ویرایش کنید پیوندهای زیر شبکه را ویرایش کنید و دو زیرشبکه عمومی که قبلا ایجاد شده اند را انتخاب کرده و بر روی آن کلیک کنید ذخیره انجمن ها.

https%3A%2F%2Fdev to

نمونه های WordPress باید بتوانند به اینترنت متصل شوند و برنامه ها و به روز رسانی های سیستم عامل را دانلود کنند. برای جلوگیری از وابستگی در مناطق در دسترس، شما می خواهید دو دروازه NAT ایجاد کنید، یکی برای هر منطقه در دسترس که در آن برنامه مستقر است.

برای انجام این کار، یک دروازه NAT در هر منطقه دسترسی ایجاد می‌کنید، سپس یک جدول مسیر برای هر زیر شبکه برنامه ایجاد می‌کنید، جدول مسیر را با یک مسیر پیش‌فرض از طریق دروازه NAT در همان منطقه AZ به روز می‌کنید و سپس جدول مسیر را به زیر شبکه برنامه مربوطه

https%3A%2F%2Fdev to

به داشبورد VPC در حساب خود بروید، انتخاب کنید دروازه های NAT و در هر یک از دو زیرشبکه عمومی (یعنی زیرشبکه عمومی A و عمومی B) یک دروازه ایجاد کنید. همیشه هنگام ایجاد دروازه مطمئن شوید که زیرشبکه عمومی صحیح را انتخاب کرده اید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fjv6l0t3algiwwcbzq3

اکنون باید جداول مسیر را برای هر یک از دو زیرشبکه Application ایجاد کنیم و از دروازه‌های NAT که قبلاً ایجاد شده‌اند به عنوان دروازه پیش‌فرض استفاده کنیم:

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65ghvioa8147hy6r469p

جدول مسیر را ویرایش کنید و مسیر پیش فرض را از طریق دروازه NAT در زیر شبکه Application A اضافه کنید:

https%3A%2F%2Fdev to

جدول مسیر را با برنامه زیرشبکه A مرتبط کنید:

https%3A%2F%2Fdev to

سه مرحله آخر را تکرار کنید تا یک جدول مسیر برای برنامه زیرشبکه B نیز ایجاد کنید که از دروازه NAT مستقر در منطقه دسترسی دوم استفاده می کند.

اکنون یک شبکه ابری خصوصی مجازی در دو منطقه در دسترس در یک منطقه AWS ایجاد کرده اید. شما شش زیرشبکه ایجاد کرده‌اید، سه زیرشبکه در هر منطقه در دسترس، و مسیری را پیکربندی کرده‌اید تا اینترنت بتواند با منابع موجود در زیرشبکه‌های عمومی و بالعکس ارتباط برقرار کند. زیرشبکه های برنامه از طریق جدول مسیریابی برای ارتباط با اینترنت از طریق دروازه های NAT در زیرشبکه های عمومی پیکربندی شده اند و زیرشبکه های داده فقط می توانند با منابع در شش زیرشبکه ارتباط برقرار کنند، اما نه اینترنت.

لطفاً توجه داشته باشید که اطلاعات زیر بر اساس یک VPC مستقر در آن است ایرلند (eu-west-1) منطقه اگر منطقه دیگری را برای تنظیم خود انتخاب کرده بودید، باید نام منطقه را بر این اساس تنظیم کنید.

می‌توانید پیکربندی خود را بر اساس تصویر زیر مقایسه کنید و زمانی که تنظیمات خود را تأیید کردید، حرکت کنید.

بررسی کنید نقشه منابع بخشی از VPC شما که VPC، زیرشبکه‌ها، جداول مسیر، دروازه‌های اینترنت، دروازه‌های NAT را نشان می‌دهد که به شما کمک می‌کند منابع را تجسم کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwy117yiof7j2cq4dlaek

ساخت ردیف داده

پایگاه داده RDS را راه اندازی کنید

شما 2 گروه امنیتی ایجاد خواهید کرد:

از کنسول VPC آمازون دیدن کنید و 2 گروه امنیتی ایجاد کنید.

ابتدا گروه امنیتی WP Database Clients را ایجاد کنید:

  • را کلیک کنید ایجاد گروه امنیتی

  • را پر کنید نام گروه امنیتی و توضیحات زمینه ها

  • wordpress-workshop را از منوی کشویی انتخاب کنید

  • به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

https%3A%2F%2Fdev to

اکنون گروه امنیتی WP Database را ایجاد کنید:

  • در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید

  • نوع را انتخاب کنید MySQL/Aurora که اجازه تردد در پورت 3306 را می دهد سفارشی منبع مشتریان پایگاه داده WP گروه امنیتی

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r1sykfgk2eqcynquvkg

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

اکنون آماده ایجاد پایگاه داده RDS خود هستید.

Amazon RDS یک سرویس پایگاه داده رابطه ای آسان برای مدیریت است. هنگامی که از Amazon RDS برای استقرار یک پایگاه داده در یک راه اندازی بسیار در دسترس استفاده می کنید، 2 نمونه در 2 منطقه در دسترس بودن مختلف ایجاد می کند. برای انجام این کار، هنگامی که یک پایگاه داده ایجاد می کنید، یک گروه زیر شبکه را مشخص می کنید که به RDS می گوید که در کدام زیرشبکه ها می تواند نمونه های پایگاه داده شما را مستقر کند.

برای ایجاد یک گروه زیرشبکه DB، به کنسول RDS آمازون مراجعه کنید، روی آن کلیک کنید گروه های زیر شبکه **در پانل سمت چپ خود، روی **ایجاد گروه زیرشبکه DB کلیک کنید را فشار دهید و از جزئیات زیر استفاده کنید:

https%3A%2F%2Fdev to

به پایین اسکرول کنید و این دو را اضافه کنید زیرشبکه های داده قبلا (یکی برای هر AZ) به گروه زیر شبکه جدید خود ایجاد کرده و کلیک کنید ایجاد کنید.

https%3A%2F%2Fdev to

لطفاً توجه داشته باشید، برای دریافت شناسه زیرشبکه‌های داده، می‌توانید یک تب دوم را باز کنید و به بخش **زیر شبکه**های کنسول VPC بروید. از لیست زیرشبکه ها، زیرشبکه مورد نظر خود را انتخاب کنید. در پایین صفحه می توانید آن را کپی کنید. شناسه زیر شبکه با کلیک بر روی نماد Copy to clipboard در کنار شناسه.

پس از ایجاد گروه زیرشبکه، آماده راه اندازی پایگاه داده تحت مدیریت RDS هستید.
به کنسول RDS آمازون بروید، انتخاب کنید پایگاه های داده **از منوی سمت چپ و روی **ایجاد پایگاه داده کلیک کنید.

جزئیات زیر را وارد کنید:

  • روش ایجاد پایگاه داده: ایجاد استاندارد

  • گزینه های موتور: Aurora (سازگار با MySQL)

  • نسخه موتور پیش فرض را حفظ کنید

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7inkm3t5n647ph2hbrtd

  • از wpadminas استفاده کنید نام کاربری اصلی

  • هنگامی که از شما خواسته شد پسورد اصلی را انتخاب کنید، می توانید روی Auto create a password کلیک کنید یا رمز عبور خود را ایجاد کنید – در هر صورت لطفاً مطمئن شوید که رمز عبور را یادداشت کرده اید زیرا چند مرحله بعد هنگام تنظیم اتصال نمونه های WordPress لازم است. به پایگاه داده

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkvz6n814vv6m56j689n

اندازه نمونه DB را همراه با استقرار Multi-AZ انتخاب کنید، که برای در دسترس بودن بالا لازم است. برای پایین نگه داشتن هزینه ها، برای این کارگاه استفاده از کلاس نمونه انفجاری (db.t4g.medium یا مشابه) را توصیه می کنیم. نمونه های انفجاری ممکن است برای محیط های تولید مناسب نباشند.

https%3A%2F%2Fdev to

در بخش اتصال، مطمئن شوید که wordpress-workshop VPC را به همراه گروه زیرشبکه aurora-wordpress DB و گروه امنیتی WP Database که قبلاً ایجاد شده است را انتخاب کنید:

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq712lti34a9he8w9p1wy

https%3A%2F%2Fdev to

در نظارت بخش، علامت را بردارید DevOps Guru را روشن کنید

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa160gojn2filgop3vfrm

گسترش دهید پیکربندی اضافی بخش و یک را مشخص کنید نام پایگاه داده اولیه از وردپرس.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hadfsl8759s7zw1c5ja

در نهایت بر روی آن کلیک کنید ایجاد پایگاه داده برای شروع ساخت خوشه
تهیه و در دسترس قرار گرفتن پایگاه داده چند دقیقه طول می کشد.

پایگاه داده فعال/غیرفعال اکنون باید در دسترس باشد و در دو ناحیه در دسترس بودن متفاوت اجرا شود و منتظر اتصالات از هر منبع EC2 با گروه امنیتی کلاینت مرتبط با آن باشد.
لطفاً پیکربندی خود را بر اساس اسکرین شات های زیر مقایسه کنید و پس از تأیید تنظیمات خود، به سمت آن حرکت کنید.

گروه های امنیتی

https%3A%2F%2Fdev to

گروه زیر شبکه

https%3A%2F%2Fdev to

راه اندازی پایگاه داده

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46oup4tdckzle126ek5k

فایل سیستم مشترک را ایجاد کنید

Amazon Elastic File System (Amazon EFS) یک سیستم فایل ساده، مقیاس پذیر و الاستیک را برای بارهای کاری عمومی برای استفاده با خدمات AWS Cloud و منابع داخلی ارائه می دهد. در این آزمایشگاه شما یک کلاستر EFS ایجاد می کنید که یک سیستم فایل مشترک برای محتوای وردپرس شما فراهم می کند.

هنگام استفاده از Amazon EFS، گروه‌های امنیتی Amazon EC2 را برای نمونه‌های EC2 خود و گروه‌های امنیتی را برای اهداف نصب EFS مرتبط با سیستم فایل مشخص می‌کنید. یک گروه امنیتی به عنوان یک فایروال عمل می کند و قوانینی که اضافه می کنید جریان ترافیک را مشخص می کند.

در این کارگاه شما 2 گروه امنیتی ایجاد خواهید کرد:

برای ایجاد 2 گروه امنیتی از کنسول VPC آمازون دیدن کنید.

ابتدا گروه امنیتی WP EFS Clients را ایجاد کنید:

  • را کلیک کنید ایجاد گروه امنیتی

  • را پر کنید نام گروه امنیتی و توضیحات زمینه ها

  • از منوی کشویی wordpress-workshop VPC را انتخاب کنید

  • به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

https%3A%2F%2Fdev to

Amazon EFS یک سیستم فایل مشترک ایجاد می کند و آن را به عنوان یک اشتراک NFS در معرض نمایش قرار می دهد. گروه امنیتی متصل به نقاط اتصال EFS باید به اتصالات ورودی در پورت NFS TCP 2049 اجازه دهد.

ایجاد گروه امنیتی WP EFS:

  • در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید

  • نوع را انتخاب کنید NFS و مشخص کنید سفارشی منبع مشتریان WP EFS گروه امنیتی

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzqggif0bzl4u5v3lvwv

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

اکنون شما آماده ایجاد سیستم فایل EFS هستید.

برای ایجاد یک فایل سیستم EFS به کنسول آمازون EFS مراجعه کرده و کلیک کنید ایجاد سیستم فایل.

WordPress-EFSin را وارد کنید نام زمینه
از منوی کشویی VPC، wordpress-workshop VPC را انتخاب کرده و کلیک کنید سفارشی کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnb2hyq2qsi0zy0t2qer

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

تمام تنظیمات دیگر را بدون تغییر نگه دارید و کلیک کنید بعدی.

https%3A%2F%2Fdev to

در دسترسی به شبکه صفحه، زیر اهداف را سوار کنید، دو زیرشبکه ایجاد شده برای ردیف داده (زیر شبکه داده A و B) را انتخاب کنید. در سمت راست، زیر گروه های امنیتی، گروه امنیتی WP EFS ایجاد شده در بالا را به هر هدف mount مرتبط کنید و ارتباط را با آن حذف کنید پیش فرض گروه امنیتی
کلیک کنید بعدی.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j0nz8b2ovd92m3u17i0

پیش فرض ها را در صفحه بعدی بپذیرید سیاست سیستم فایل

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzw2ub352dfzy0u9im0qd

کلیک کنید بعدی، ایجاد سیستم فایل را با کلیک کردن بررسی و تایید کنید ایجاد کنید.

با این کار دو هدف mount در زیرشبکه های Data ایجاد می شود و پس از چند لحظه سیستم فایل تبدیل می شود موجود است.

https%3A%2F%2Fdev to

لایه برنامه را بسازید

متعادل کننده بار را ایجاد کنید

برای توزیع ترافیک در سرورهای برنامه وردپرس خود به یک متعادل کننده بار نیاز دارید. در این آزمایشگاه شما یک Application Load Balancer ایجاد خواهید کرد.

Application Load Balancer در سطح درخواست (لایه 7)، مسیریابی ترافیک به اهداف (نمونه های EC2، کانتینرها، آدرس های IP و توابع Lambda) بر اساس محتوای درخواست عمل می کند.

برای ایجاد گروه های امنیتی از کنسول VPC آمازون دیدن کنید.

ابتدا گروه امنیتی WP Load Balancer را ایجاد کنید:

  • را کلیک کنید ایجاد گروه امنیتی

  • را پر کنید نام گروه امنیتی و توضیحات زمینه ها

  • از منوی کشویی wordpress-workshop را انتخاب کنید

  • در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید

  • نوع را انتخاب کنید HTTP که اجازه تردد در پورت 80 را می دهد آی پی من منبع برای محدود کردن دسترسی به IP عمومی فعلی شما.

  • به پایین صفحه بروید و روی آن کلیک کنید ایجاد گروه امنیتی

در خارج از محیط کارگاه، احتمالاً می خواهید گروه امنیتی را تغییر دهید تا از هر آدرس IP اجازه دسترسی داشته باشید. برای کسب اطلاعات بیشتر در مورد امنیت در فضای ابری و فضای ابری، لطفاً به وب سایت AWS Cloud Security مراجعه کنید.

https%3A%2F%2Fdev to

اکنون گروه امنیتی WP Web Servers را ایجاد کنید:

  • در قوانین ورودی بخش، روی آن کلیک کنید قانون اضافه کنید

  • نوع را انتخاب کنید HTTP که اجازه تردد در پورت 80 را می دهد سفارشی منبع WP Load Balancer گروه امنیتی

https%3A%2F%2Fdev to

لطفاً توجه داشته باشید که می توانید گروه امنیتی را با نام در قسمت منبع قانون گروه امنیتی جستجو کنید.

یک متعادل کننده بار ترافیک ورودی برنامه را در چندین هدف، مانند نمونه های EC2، در چندین منطقه در دسترس توزیع می کند و در دسترس بودن پلت فرم وردپرس را افزایش می دهد.

از کنسول EC2 کلیک کنید Load Balancers **در منوی سمت چپ و سپس روی **Create load balancer کلیک کنید.
کلیک کنید **زیر **Application Load Balancer ایجاد کنید.

https%3A%2F%2Fdev to

یک نام و زیر به بار متعادل کننده خود بدهید نقشه برداری شبکه wordpress-workshop VPC را انتخاب کنید.
سپس چک باکس هر دو منطقه در دسترس را علامت بزنید و زیرشبکه های عمومی ایجاد شده در اولین آزمایشگاه را انتخاب کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenmlz8o65cyivkzn7o2b

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8o4cjle16ocm4n0rjgf

زیر گروه های امنیتی را انتخاب کنید WP Load Balancer قبلا ایجاد شده و هر گروه امنیتی پیش فرض را حذف کنید.

https%3A%2F%2Fdev to

زیر شنوندگان و مسیریابی روی لینک کلیک کنید گروه هدف ایجاد کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1iawr38efzybulgh1mdz

این یک پنجره جدید برای ایجاد یک گروه هدف جدید برای شما باز می کند. از جزئیات زیر استفاده کنید

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faf61o3hmmq5cha0jpp99

سپس، در بررسی های سلامت بخش، مسیر زیر را وارد کنید:

  • /phpinfo.php در آزمایشگاه بعدی شما الگوی راه اندازی را برای سرورهای برنامه وب ایجاد می کنید که phpinfo.php را به عنوان بخشی از اجرای اسکریپت UserData در هنگام بوت نمونه ایجاد می کند. اگر بررسی‌های سلامت ناموفق باشد، اسکریپت داده‌های کاربر به احتمال زیاد شکست خورده است.

https%3A%2F%2Fdev to

را کلیک کنید بعدی و سپس در گروه هدف ایجاد کنید بدون تعیین هدف

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv5kg2sfr73kwzzw92r8

پنجره را ببندید، شنونده را رفرش کنید تا گروه هدف ایجاد شده را انتخاب کنید.

https%3A%2F%2Fdev to

در خلاصه بخش، بررسی و کلیک کنید ایجاد متعادل کننده بار برای ایجاد متعادل کننده بار.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9h4ltdmw4cm81msip6z

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22k7b8p33ocr09tm2tln

را یادداشت کنید نام DNS برای متعادل کننده بار شما ایجاد شده است زیرا در مراحل زیر به آن نیاز خواهید داشت.

یک الگوی راه اندازی ایجاد کنید

شما یک شبکه نرم‌افزاری تعریف‌شده در چندین منطقه دسترسی ایزوله شده با خطا ایجاد کرده‌اید، یک پایگاه داده Aurora MySQL بسیار در دسترس و یک سیستم فایل EFS را برای ذخیره‌سازی مشترک مستقر کرده‌اید. در این آزمایشگاه، قالب‌هایی را برای سرورهای برنامه‌ای که PHP را اجرا می‌کنند، به عنوان بخشی از نصب وردپرس مقیاس‌پذیر تعریف می‌کنید.

یک الگوی راه‌اندازی اطلاعات پیکربندی نمونه‌ای است که به شما امکان می‌دهد یک پیکربندی نمونه ذخیره‌شده ایجاد کنید که می‌تواند برای راه‌اندازی نمونه‌ها در زمان بعدی استفاده شود. این شامل شناسه تصویر ماشین آمازون (AMI)، نوع نمونه، یک جفت کلید، گروه‌های امنیتی و سایر پارامترهای مورد استفاده برای راه‌اندازی نمونه‌های EC2 است. علاوه بر این، به شما امکان می دهد چندین نسخه از یک الگوی راه اندازی را داشته باشید.

انتخاب کنید قالب ها را راه اندازی کنید در پنل سمت چپ کنسول EC2 خود، سپس بر روی آن کلیک کنید ایجاد قالب راه اندازی.

  • به الگوی Launch نام WP-WebServers-LT بدهید

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pzhtt5ug2cn6p58b8kq

  • را انتخاب کنید لینوکس آمازون AMI پس از انتخاب شروع سریع در تصاویر برنامه و سیستم عامل (Amazon Machine Image) بخش

https%3A%2F%2Fdev to

  • نوع نمونه t3.micro را انتخاب کنید:

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs6r4yihtjhbca889hpi

  • جفت کلید را وارد نکنید و موارد زیر را انتخاب کنید گروه های امنیتی برای پیوست کردن به نمونه‌های راه‌اندازی شده از این الگوی راه‌اندازی:

  • سرورهای وب WP برای اجازه اتصال از Application Load Balancer

  • سرویس گیرندگان پایگاه داده WP برای اجازه دادن به نمونه ها برای اتصال به Aurora MySQL DB

  • سرویس گیرندگان WP EFS به نمونه ها اجازه می دهد تا صادرات NFS سیستم فایل EFS را نصب کنند.

https%3A%2F%2Fdev to

گسترش دهید جزئیات پیشرفته و از اسکریپت زیر برای پر کردن قسمت User Data به عنوان متن استفاده کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr9sp0w5bqot18c3t725

متغیرهای موجود در اسکریپت Bash زیر را با مقادیر محیط خود به روز کنید.

  • EFS_FS_ID

  • این باید روی شناسه سیستم فایل Elastic Filesystem مستقر در آزمایشگاه قبلی تنظیم شود. برای دریافت شناسه فایل سیستم به کنسول EFS مراجعه کنید.

  • DB_NAME

  • این نام پایگاه داده ای است که وردپرس باید از آن برای ذخیره داده های خود استفاده کند. اگر مقادیر پیش‌فرض را در آزمایشگاه 2 وارد کرده‌اید، باید مقدار wordpress باشد. برای تأیید، از صفحه جزئیات پایگاه داده RDS خود دیدن کنید و به دنبال آن بگردید نام DB زیر پیکربندی.

  • DB_HOST

  • این نام میزبان نمونه Writer پایگاه داده شما است. برای به دست آوردن این، از صفحه جزئیات پایگاه داده RDS خود دیدن کنید و به زیر نگاه کنید اتصال و امنیت. استفاده کنید نویسنده نمونه hostname را تایپ کنید، مقداری مانند wordpress-workshop.cluster-ctdnyvvewl6s.eu-west-1.rds.amazonaws.com.

  • DB_USERNAME

  • این نام کاربری پایگاه داده ای خواهد بود که در آزمایشگاه 2 مشخص کرده اید. می توان آن را به صورت پیدا کرد نام کاربری اصلی زیر پیکربندی در صفحه جزئیات برای نمونه RDS شما.

  • DB_PASSWORD

  • این رمز عبور برای کاربر پایگاه داده ایجاد شده در آزمایشگاه 2 است.

    #!/bin/bash

    DB_NAME="wordpress"
    DB_USERNAME="wpadmin"
    DB_PASSWORD=""
    DB_HOST="wordpress-workshop.cluster-xxxxxxxxxx.eu-west-1.rds.amazonaws.com"
    EFS_FS_ID="fs-xxxxxxxxx"

    dnf update -y

    #install wget, apache server, php and efs utils
    dnf install -y httpd wget php-fpm php-mysqli php-json php amazon-efs-utils

    #create wp-content mountpoint
    mkdir -p /var/www/html/wp-content
    mount -t efs $EFS_FS_ID:/ /var/www/html/wp-content

    #install wordpress
    cd /var/www
    wget https://wordpress.org/latest.tar.gz
    tar -xzf latest.tar.gz
    cp wordpress/wp-config-sample.php wordpress/wp-config.php
    rm -f latest.tar.gz

    #change wp-config with DB details
    cp -rn wordpress/* /var/www/html/
    sed -i "s/database_name_here/$DB_NAME/g" /var/www/html/wp-config.php
    sed -i "s/username_here/$DB_USERNAME/g" /var/www/html/wp-config.php
    sed -i "s/password_here/$DB_PASSWORD/g" /var/www/html/wp-config.php
    sed -i "s/localhost/$DB_HOST/g" /var/www/html/wp-config.php
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

#تغییر فایل httpd.conf به allowoverride
# فایل های .htaccess را در پیکربندی آپاچی با استفاده از دستور sed فعال کنید
sed -i '//,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf

# create phpinfo file
echo "" > /var/www/html/phpinfo.php

# Recursively change OWNER of directory /var/www and all its contents
chown -R apache:apache /var/www

systemctl restart httpd
systemctl enable httpd
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تنظیمات نهایی را در زیر مرور کنید خلاصه و کلیک کنید ایجاد قالب راه اندازی. شما می توانید هشدارهای مربوط به امکان SSH را به سرور نادیده بگیرید و همچنین می توانید انتخاب کنید بدون جفت کلید ادامه دهید زیرا نیازی به دسترسی از راه دور به این سرورها نخواهید داشت.

سرور برنامه را ایجاد کنید

در این آزمایشگاه شما از load balancer و راه اندازی پیکربندی از 2 آزمایشگاه قبلی برای ایجاد یک ناوگان مقیاس خودکار از سرورهای برنامه وردپرس استفاده خواهید کرد.

هنگامی که پیکربندی راه اندازی را ایجاد کردید، می توانید به ایجاد گروه مقیاس خودکار برای سرورهای وب وردپرس ادامه دهید.
برای انجام آن را انتخاب کنید گروه های مقیاس خودکار در کنسول EC2 بر روی آن کلیک کنید یک گروه مقیاس خودکار ایجاد کنید نامی را مشخص کنید و الگوی راه اندازی قبلی ایجاد شده را انتخاب کنید:

https%3A%2F%2Fdev to

در صفحه بعدی مطمئن شوید که wordpress-workshop VPC به همراه زیرشبکه های Application Subnet A و Application Subnet B برای سرورهای وب انتخاب شده است:

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22k79cvyu6ccq8o7kzqh

در صفحه بعدی گزینه های پیشرفته را پیکربندی کنید گزینه را انتخاب کنید به یک بار متعادل کننده موجود وصل کنید و گروه هدفی را که قبلاً ایجاد کردید از بین انتخاب کنید گروه های هدف متعادل کننده بار موجود فهرست

https%3A%2F%2Fdev to

در بررسی های سلامت بخش، حتما بررسی های سلامتی Elastic Load Balancing را روشن کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenb9g56ge21ufh9bfvil

کلیک کنید بعدی برای پیکربندی سیاست های اندازه و مقیاس بندی گروه با مقادیر زیر:

  • در اندازه گروه بخش، 2 را در قسمت وارد کنید ظرفیت مورد نظر زمینه

  • در مقیاس بندی بخش، 2 را به عنوان وارد کنید حداقل ظرفیت مورد نظر و 4 به عنوان حداکثر ظرفیت مورد نظر

  • انتخاب کنید سیاست مقیاس گذاری ردیابی هدف و عدد 80 را به عنوان وارد کنید ارزش هدف برای میانگین استفاده از CPU

https%3A%2F%2Fdev to

کلیک کنید و پیش فرض های باقیمانده را بپذیرید تا با کلیک کردن بر روی ایجاد Auto Scaling Group تکمیل شود ایجاد گروه مقیاس خودکار.

گروه مقیاس خودکار اکنون شروع به ایجاد تعداد مورد نظر از نمونه های EC2 بر اساس الگوی راه اندازی می کند که شما ایجاد کرده اید. همانطور که سیستم ها آنلاین می شوند، گروه هدف با جزئیات نمونه برای نمونه های EC2 شما به روز می شود و متعادل کننده بار شروع به توزیع ترافیک در بین نمونه ها می کند. همانطور که نمونه‌ها اضافه یا حذف می‌شوند، گروه مقیاس خودکار و متعادل‌کننده بار با یکدیگر هماهنگ کار خواهند کرد تا اطمینان حاصل کنند که فقط نمونه‌های سالم ترافیک دریافت می‌کنند.

https%3A%2F%2Fdev to

هنگامی که اهداف شما در گروه هدف شما سالم تلقی می شوند، می توانید نام DNS را برای Application Load Balancer در مرورگر وب خود باز کنید تا نصب وردپرس تازه ایجاد شده خود را مشاهده کنید.

https%3A%2F%2Fdev to

شما اکنون یک استقرار مقیاس خودکار بسیار در دسترس از وردپرس ایجاد کرده‌اید که در پاسخ به ترافیک مشتری که به وب‌سایت برخورد می‌کند، به داخل و خارج می‌شود.

پاک کردن

اگر از حساب شخصی خود برای دنبال کردن این کارگاه استفاده کرده‌اید، لطفاً اقدامات زیر را انجام دهید تا همه منابعی که ایجاد کرده‌اید حذف کنید و هزینه‌ای برای آنها تحمیل نکنید.

برو به گروه های مقیاس خودکار بخش EC2 Console، Autoscaling Group ایجاد شده در آزمایشگاه 6 را انتخاب کنید، آن را باز کنید اقدامات ** منو و انتخاب کنید **حذف. برای تایید حذف، در فیلد متنی که باز می شود، delete را تایپ کرده و کلیک کنید حذف کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b7jinbsnbvfjuj9g22u

در کنسول EC2، به این قسمت بروید متعادل کننده های بار بخش، Application Load Balancer ایجاد شده در Lab 4 را انتخاب کنید، آن را باز کنید اقدامات **منو و **حذف متعادل کننده بار را انتخاب کنید. برای تایید حذف، در فیلد متنی دیالوگی که باز می شود، تایید را تایپ کرده و کلیک کنید حذف کنید.

https%3A%2F%2Fdev to

برو به گروه های هدف بخش، گروه هدف ایجاد شده در آزمایشگاه 4 را انتخاب کنید، آن را باز کنید اقدامات ** منو و انتخاب کنید **حذف. را کلیک کنید بله حذف کنید در گفتگویی که باز می شود.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88crha9w4zm8dku2n96a

حرکت به قالب ها را راه اندازی کنید بخش Launch Template ایجاد شده در Lab 5 را انتخاب کرده و باز کنید منوی اقدامات **و **حذف الگو را انتخاب کنید.
برای تایید حذف، Delete را در فیلد تایپ کرده و کلیک کنید حذف کنید

https%3A%2F%2Fdev to

پس از حذف Auto Scaling Group، نمونه‌ها شروع به خاموش شدن می‌کنند و در نهایت خاتمه می‌یابند. بررسی کنید که تمام نمونه‌های راه‌اندازی شده توسط Auto Scaling Group به درستی خاتمه یافته‌اند.
می توانید استفاده کنید aws:autoscaling:groupName ویژگی برای فیلتر نمونه‌های راه‌اندازی شده توسط Auto Scaling Group ایجاد شده در آزمایشگاه 6.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyswm6phpykvb4qo0nrnr

  1. به کنسول RDS بروید، آن را انتخاب کنید wordpress-workshop ***خوشه منطقه ای *و روی **Modify کلیک کنید.

  2. به پایین صفحه بروید، تیک آن را بردارید حفاظت حذف را فعال کنید و بر روی کلیک کنید ادامه دهید

https%3A%2F%2Fdev to

  1. گزینه را انتخاب کنید بلافاصله درخواست دهید و کلیک کنید خوشه را اصلاح کنید

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1z7gy8ipo26l1v3jw5t3

  1. در کنسول RDS، را انتخاب کنید نمونه خواننده، برو به اقدامات ** منو و انتخاب کنید **حذف. برای تایید حذف، delete me را در فیلد تایپ کرده و کلیک کنید حذف کنید.

https%3A%2F%2Fdev to

  1. حالا گزینه را انتخاب کنید به عنوان مثال Writer، به **اقدامات بروید* منو و انتخاب کنید حذف کنید.
    برای تایید حذف، delete me را در فیلد تایپ کرده و کلیک کنید حذف کنید.

  2. شما می توانید حذف کنید خوشه منطقه ای اکنون آن را انتخاب کنید، به اقدامات منو و انتخاب کنید حذف کنید.
    مطمئن شوید که

برای تایید حذف، Delete me را در فیلد تایپ کنید و روی آن کلیک کنید حذف خوشه DB

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62kmm9rbh4gnn6j6uh28

هنگامی که RDS Aurora Cluster به طور کامل حذف شد، به صفحه RDS Snapshots بروید، سیستم را بزنید و مطمئن شوید که هیچ عکس فوری خودکاری برای خوشه Aurora ایجاد شده در طول کارگاه وجود ندارد.

به کنسول EFS بروید، سیستم فایل ایجاد شده در Lab 3 را انتخاب کنید و کلیک کنید حذف کنید.
با وارد کردن شناسه فایل سیستم در گفتگوی ظاهر شده، حذف را تأیید کنید و کلیک کنید تایید کنید.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefo5zfl6vhh8pkifooqr

Gateway های NAT را حذف کنید

به صفحه دروازه های NAT کنسول VPC بروید، هر بار یک دروازه NAT را انتخاب کنید، به اقدامات **منو و **حذف دروازه NAT را انتخاب کنید.
برای تایید حذف، حذف را در فیلد تایپ کرده و کلیک کنید حذف کنید

https%3A%2F%2Fdev to

VPC را حذف کنید

VPC wordpress-workshop را از صفحه VPCs خود در کنسول VPC انتخاب کنید. برو به اقدامات ** منو و انتخاب کنید **حذف VPC.

https%3A%2F%2Fdev to uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc77i8zcbegmzmw1a8f2p

تنها در صورتی می‌توانید VPC را حذف کنید که هنوز هیچ واسط شبکه در هیچ یک از زیرشبکه‌های VPC وجود نداشته باشد. گفتگویی که با کلیک بر روی آن ظاهر می شود VPC را حذف کنید ENI های باقی مانده را نشان می دهد.

https%3A%2F%2Fdev to

بر روی کلیک کنید رابط های شبکه برای بررسی اینکه کدام سرویس‌ها هنوز از VPC استفاده می‌کنند پیوند دهید و اقدامات لازم را انجام دهید.

هنگامی که تمام ENI ها حذف شدند، می توانید VPC را حذف کنید.
گفتگوی ظاهر شده نشان می دهد که پس از حذف VPC کدام منابع حذف خواهند شد.
برای تایید حذف، حذف را در فیلد تایپ کرده و کلیک کنید حذف کنید

https%3A%2F%2Fdev to

آی پی های الاستیک را آزاد کنید

به صفحه Elastic IP های کنسول VPC بروید، همه IP های الاستیک غیر مرتبط را انتخاب کنید (شناسه ارتباط *مقدار – است)، منوی **اقدامات** را باز کرده و **آدرسهای IP الاستیک را انتخاب کنید.*.

https%3A%2F%2Fdev to

اگر کاربر IAM کاربر کارگاه را برای دنبال کردن آزمایشگاه‌های کارگاه ایجاد کرده‌اید، مطمئن شوید که آن را از کنسول IAM حذف کرده‌اید که با یک کاربر IAM یا نقش IAM با مجوزهای مناسب وارد سیستم می‌شود.

https%3A%2F%2Fdev to

چالش های پیش رو و راه حل ها

  • مشکلات اتصال پایگاه داده: هنگام تنظیم RDS، برخی از مشکلات پیکربندی با کنترل دسترسی وجود داشت.

  • راه حل: گروه های امنیتی VPC را تنظیم کرد و اطمینان حاصل کرد که نمونه های EC2 دارای مجوزهای صحیح برای دسترسی به RDS هستند.

  • مدیریت فایل وردپرس: مدیریت فایل های رسانه ای وردپرس در چندین نمونه در ابتدا چالش برانگیز بود.

  • راه حل: Amazon EFS را به‌عنوان یک سیستم فایل مشترک پیاده‌سازی کرد که مدیریت یکپارچه رسانه را در بین نمونه‌ها امکان‌پذیر می‌کند.

نتیجه گیری

این پروژه AWS نحوه ایجاد یک محیط وردپرس بسیار در دسترس و مقیاس پذیر را نشان می دهد که برای سایت های درجه تولید با ترافیک بالا ایده آل است. این قابلیت‌های AWS را در مدیریت زیرساخت برای به حداقل رساندن مداخله دستی و در عین حال به حداکثر رساندن زمان کار به نمایش می‌گذارد.

مخزن GitHub من را کاوش کنید.

شوبهام مورتی — مهندس امنیت ابر مشتاق | آموزش ابری هفتگی!!

بیایید وصل شویم: لینکدین، توییتر، گیت‌هاب

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا