استقرار برنامه معماری سه لایه – جامعه Dev

1. بارگیری کد از Git Repo
پرونده repo کد را از Git-hub بارگیری کرده و آن را از حالت فشرده خارج کنید
نمونه:-(https://github.com/aws-samples/AWS-THREE-TIER-WEB-ARCHITECTURE-WORKSHOP.GIT)
git clone https://github.com/Naveen3251/AWS_3Tier.git
2. ایجاد سطل S3
یک سطل S3 ایجاد کنید
در حال حاضر دسترسی عمومی را مسدود کنید
3. نقش IAM را ایجاد کنید
iam> نقش ها> ایجاد نقش
از مورد استفاده کنید -> ec2
این 2 مجوز را اعمال کنید:
1.AmazonsSmmanagedInstancecore
2.Amazons3ReadOnlyAccess
نقش خود را به یک نام بدهید و سپس کلیک کنید ایجاد نقشبشر
4. ایجاد VPC
VPC> VPCS شما> ایجاد VPC VPC با موفقیت ایجاد کرد …
5. ایجاد زیر شبکه
6 زیر شبکه ایجاد کنید
توجه: به یاد داشته باشید ، محدوده CIDR شما برای زیر شبکه ها زیر مجموعه های VPC CIDR شما خواهد بود.
AZ-1
در دسترس بودن Zone-1 => (1-عمومی ، 2-خصوصی)AZ-2
زیر شبکه هایی را ایجاد کنید که در AZ-1 با دامنه CIDR مختلف ایجاد شده است.
در دسترس بودن Zone-2 => (1-عمومی ، 2-خصوصی)
6. ایجاد دروازه اینترنت
برای دسترسی به اینترنت به زیر شبکه های عمومی در VPC ما ، ما باید یک دروازه اینترنتی ایجاد و وصل کنیم.
VPC> دروازه اینترنت> ایجاد دروازه اینترنتی پس از ایجاد دروازه اینترنتی ، آن را به VPC خود وصل کنید.
- IGW> Actions> Attach to VPC را انتخاب کنید
- VPC صحیح را انتخاب کرده و روی کلیک کنید دروازه اینترنتی را ضمیمه کنید
7. NAT Gateway Creation
برای مواردی که در Subnet Private App Layer Private برای دسترسی به اینترنت وجود دارد ، آنها باید از یک دروازه NAT عبور کنند.
برای 2 زیر شبکه عمومی در 2 منطقه در دسترس بودن دو دروازه NAT ایجاد کنید
VPC> NAT Gateways> ایجاد NAT Gateway
- زیر شبکه عمومی صحیح را در AZ-1 انتخاب کنید
- IP الاستیک را اختصاص دهید
- کلیک کردن NAT Gateway را ایجاد کنیدبشر
- همان مراحل را برای ایجاد دروازه NAT دوم دنبال کنید
دو دروازه NAT در دو AZS با موفقیت ایجاد شده است …
8. پیکربندی مسیریابی
یک جدول مسیر را برای زیر شبکه های عمومی لایه وب ایجاد کنید.
VPC> جدول مسیر> ایجاد جدول مسیر
کلیک کردن جدول مسیر را ایجاد کنیدبشر
- به پایین بروید و روی کلیک کنید مسیر و روی کلیک کنید مسیرها را ویرایش کنید
- روی کلیک کنید مسیر را اضافه کنید
- مقصد را انتخاب کنید 0.0.0.0/0
- در هدف بخش ، انتخاب کنید دروازه اینترنتی
- سپس IGW ایجاد شده را انتخاب کنید
- سپس کلیک کنید تغییرات را ذخیره کنید
- انتخاب کردن انجمن های زیر شبکه و کلیک کنید انجمن های زیر شبکه را ویرایش کنیدبشر
- زیر شبکه های عمومی Layer را که ایجاد شده است انتخاب کنید
- سپس کلیک کنید انجمن ها را ذخیره کنید
2 جدول مسیر دیگر ایجاد کنید ، یکی برای هر زیر شبکه خصوصی در هر منطقه در دسترس بودن
جدول 1 مسیر خصوصی 1
- به پایین بروید و روی کلیک کنید مسیر و روی کلیک کنید مسیرها را ویرایش کنید
- روی کلیک کنید مسیر را اضافه کنید
- مقصد را انتخاب کنید 0.0.0.0/0
- در هدف بخش ، انتخاب کنید دروازه اینترنتی
- سپس دروازه NAT ایجاد شده را در AZ-1 انتخاب کنید
- سپس کلیک کنید تغییرات را ذخیره کنید
- انتخاب کردن انجمن های زیر شبکه و کلیک کنید انجمن های زیر شبکه را ویرایش کنیدبشر
- Subnet Private Layer App Layer را در AZ-1 انتخاب کنید
- سپس کلیک کنید انجمن ها را ذخیره کنید
2. مسیر خصوصی جدول 2
برای ایجاد مسیر خصوصی جدول 2 ، مراحل انجام شده در ایجاد جدول مسیر زیر زیر شبکه خصوصی را با منطقه در دسترس بودن آنها دنبال کنید.این جداول مسیر ، ترافیک لایه برنامه را که برای خارج از VPC به دروازه NAT در منطقه در دسترس بودن مربوطه اختصاص داده شده است ، مسیریابی می کنند ، بنابراین مسیرهای مناسب را برای آن اضافه کنید.
9 گروه های امنیتی
1 برای پایگاه داده
2 برای متعادل کننده بار
1 برای EC2 عمومی
1 برای EC2 خصوصی
در حین ایجاد SG ، در قوانین برون مرزی چیزی را تغییر ندهید.
1. گروه امنیتی برای اینترنت با بالانسر بار (رو به اینترنت)
10. ایجاد گروه زیر شبکه DB
شفق قطبی و RDS> گروههای زیر شبکه> ایجاد گروه زیر شبکه DB
VPC را که ایجاد کردیم انتخاب کنید.
در حین اضافه کردن زیر شبکه ، حتما زیر شبکه هایی را که در هر منطقه در دسترس برای لایه پایگاه داده خود ایجاد کرده ایم اضافه کنید. دوباره به داشبورد VPC بروید و بررسی کنید تا شناسه صحیح Subnet را انتخاب کنید.
11. ایجاد پایگاه داده
با یک ایجاد استاندارد برای این پایگاه داده سازگار با MySQL Amazon Aurora شروع کنید. بقیه پیش فرض ها را در گزینه های موتور به صورت پیش فرض بگذارید.
در بخش Templates Dev/Test را انتخاب کنید زیرا این در حال حاضر برای تولید استفاده نمی شود. در زیر تنظیمات یک نام کاربری و رمز عبور مورد نظر خود را تنظیم کرده و آنها را یادداشت کنید زیرا ما برای دسترسی به پایگاه داده خود از تأیید اعتبار رمز عبور استفاده می کنیم.
- در دسترس بودن و دوام ، گزینه ایجاد یک ماکت شفق قطبی یا گره خواننده را در یک منطقه در دسترس بودن متفاوت تغییر دهید.
- تحت اتصال ، VPC را انتخاب کنید ، گروه Subnet را که قبلاً ایجاد کردیم انتخاب کنید و NO را برای دسترسی عمومی انتخاب کنید.
12. ایجاد نمونه برنامه
EC2> نمونه ها> نمونه ای را راه اندازی کنیددر آخر روی “نمونه راه اندازی” کلیک کنید
اتصال
روی دکمه اتصال در گوشه بالا سمت راست داشبورد کلیک کنید. برگه Session Manager را انتخاب کرده و کلیک کنید وصل کردنبشر
- با اجرای دستور زیر در ترمینال مرورگر به EC2-USER بروید:
sudo -su ec2-user
2. اگر شبکه شما به درستی پیکربندی شده است تا این مرحله ، باید بتوانید سرورهای Google DNS را پینگ کنید:
ping 8.8.8.8
پایگاه داده را پیکربندی کنید
- با بارگیری MySQL CLI شروع کنید:
sudo yum install mysql -y
- اتصال DB خود را با نقطه پایانی نویسنده Aurora RDS خود آغاز کنید. دستور زیر را در مرورگر پس از تغییر در نقطه پایان RDS و نام کاربری خود اجرا کنید:
mysql -h CHANGE-TO-YOUR-RDS-ENDPOINT -u CHANGE-TO-USER-NAME -p
- یک پایگاه داده به نام WebAppDB در MySQL CLI ایجاد کنید:
CREATE DATABASE webappdb;
4. یک جدول داده را با حرکت در ابتدا به پایگاه داده ای که ایجاد کردیم ایجاد کنید:
USE webappdb;
5. جدول معاملات زیر را با اجرای این دستور ایجاد جدول ایجاد کنید:
CREATE TABLE IF NOT EXISTS transactions(id INT NOT NULL
AUTO_INCREMENT, amount DECIMAL(10,2), description
VARCHAR(100), PRIMARY KEY(id));
6. داده های اطلاعات در جدول:
INSERT INTO transactions (amount, description) VALUES ('400','groceries');
7.View داده های درج شده در جدول:
SELECT * FROM transactions;
8. پس از اتمام ، فقط تایپ کنید خروج و برای خروج از مشتری MySQL Enter را وارد کنید.
نمونه برنامه را پیکربندی کنید
1. اولین کاری که ما انجام خواهیم داد این است که اعتبار پایگاه داده ما را برای ردیف برنامه به روز کنید. برای انجام این کار ، پرونده Application-Code/App-Tier/DBConfig.js را باز کنید
2. این کار را با اعتبارنامه ای که برای پایگاه داده خود پیکربندی کرده اید ، نقطه پایانی نویسنده پایگاه داده خود به عنوان نام میزبان و WebAppDB برای پایگاه داده قرار دهید. فایل را ذخیره کنید.
- پوشه App-tier را در سطل S3 بارگذاری کنید
4. به جلسه SSM خود بروید. با نصب NVM (مدیر نسخه گره) شروع کنید
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc
- node.js را نصب کنید و مطمئن شوید که از آن استفاده می شود.
nvm install 16
nvm use 16
6. در نصب PM2. PM2 یک مدیر فرآیند Daemon است که هنگام خروج از نمونه ، برنامه Node.js ما را اجرا می کند.
npm install -g pm2
7. اکنون باید کد خود را از سطل S3 خود در نمونه خود بارگیری کنیم. دستور زیر را با تغییرات مناسب در نام سطل انجام دهید.
cd ~/
aws s3 cp s3://BUCKET_NAME/app-tier/ app-tier --recursive
8.NAVIGE به فهرست برنامه ، وابستگی ها را نصب کنید و برنامه را با PM2 شروع کنید.
cd ~/app-tier
npm install
pm2 start index.js
موارد زیر را اجرا کنید تا مطمئن شوید که برنامه به درستی در حال اجرا است
pm2 list
برای دیدن آخرین خطاها ، از این دستور استفاده کنید:
pm2 logs
9. اکنون ، PM2 فقط اطمینان حاصل می کند که برنامه ما هنگام ترک جلسه SSM در حال اجرا است. این همچنین برای AMI که ما ایجاد خواهیم کرد مهم است:
pm2 startup
بعد از اجرای آن ، لیست فعلی فرآیندهای گره را با دستور زیر ذخیره کنید:
pm2 save
ردیف برنامه تست
1. برای ضربه زدن به نقطه پایانی سلامت ، این دستور را در ترمینال SSM خود اجرا کنید.
curl http://localhost:4000/health
2. next ، اتصال پایگاه داده خود را آزمایش کنید. شما می توانید این کار را با ضربه زدن به نقطه پایانی زیر به صورت محلی انجام دهید:
curl http://localhost:4000/transaction
لایه برنامه شما کاملاً پیکربندی شده و آماده رفتن است.
App Tier ami
نمونه App Tier را انتخاب کنید و کلیک کنید اقدامات، انتخاب کنید تصویر و الگوهابشر کلیک کردن ایجاد تصویربشر
گروه هدف
EC2> Balancing Load> گروه های هدف> ایجاد گروه هدف
به سمت گروه های هدفبشر روی کلیک کنید گروه هدف را ایجاد کنیدبشر
متعادل کننده بار داخلی
EC2> Balancing Load> Balancers Load> ایجاد متعادل بار
مقیاس بندی خودکار
EC2> مقیاس گذاری خودکار> گروههای مقیاس گذاری خودکار> ایجاد گروه مقیاس خودکار
- الگوی پرتاب را که ما فقط ایجاد کرده ایم انتخاب کنید و کلیک کنید طرف دیگربشر
بعد از مرحله فوق کلیک کنید طرف دیگر، بعد در نهایت کلیک کنید گروه مقیاس گذاری خودکار ایجاد کنید
به روزرسانی پرونده پیکربندی
sudo -su ec2-user
2. اگر شبکه شما به درستی پیکربندی شده است تا این مرحله ، باید بتوانید سرورهای Google DNS را پینگ کنید:
ping 8.8.8.8
نمونه وب را پیکربندی کنید
1. اکنون ما باید تمام اجزای لازم مورد نیاز برای اجرای برنامه جلوی خود را نصب کنیم. دوباره ، با نصب NVM و Node شروع کنید
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc
nvm install 16
nvm use 16
2. اکنون باید کد ردیف وب خود را از سطل S3 ما بارگیری کنیم:
cd ~/
aws s3 cp s3://rafil3tierwebappbucket1/web-tier/ web-tier --recursive
3. به پوشه لایه وب مراجعه کرده و پوشه ساخت را برای برنامه React ایجاد کنید تا بتوانیم کد خود را ارائه دهیم:
cd ~/web-tier
npm install
npm run build
4.NginX می تواند برای موارد استفاده های مختلف مانند تعادل بار ، ذخیره محتوا استفاده شود. اما ما از آن به عنوان یک سرور وب استفاده خواهیم کرد که برای ارائه برنامه خود در پورت 80 پیکربندی خواهیم کرد ، و همچنین به هدایت تماس های API خود به متعادل بار داخلی کمک خواهیم کرد.
sudo amazon-linux-extras install nginx1 -y
5. ما اکنون مجبور به پیکربندی Nginx خواهیم شد. با دستورات زیر به پرونده پیکربندی NGINX بروید و پرونده ها را در فهرست لیست کنید
cd /etc/nginx
ls
6. شما باید یک پرونده nginx.conf را ببینید. ما قصد داریم این پرونده را حذف کنیم و از مواردی که در S3 بارگذاری کردیم استفاده کنیم.
sudo rm nginx.conf
sudo aws s3 cp s3://BUCKET_NAME/nginx.conf .
7.Restart nginx با دستور زیر:
sudo service nginx restart
8. برای اطمینان از NGINX اجازه دسترسی به پرونده های ما را برای اجرای این دستور دارد:
chmod -R 755 /home/ec2-user
9. سپس برای اطمینان از شروع سرویس در بوت ، این دستور را اجرا کنید:
sudo chkconfig nginx on
ami ami
نمونه وب را انتخاب کرده و کلیک کنید اقدامات، انتخاب کنید تصویر و الگوهابشر کلیک کردن ایجاد تصویربشر
گروه هدف
EC2> Balancing Load> گروه های هدف> ایجاد گروه هدف
با بالانسر بار در اینترنت
EC2> Balancing Load> Balancers Load> ایجاد متعادل بار
بالاخره ما خود را می گیریم “WebApp”