برنامه نویسی

استقرار برنامه معماری سه لایه – جامعه 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 را انتخاب کرده و کلیک کنید وصل کردنبشر

  1. با اجرای دستور زیر در ترمینال مرورگر به EC2-USER بروید:
 sudo -su ec2-user
حالت تمام صفحه را وارد کنید

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

2. اگر شبکه شما به درستی پیکربندی شده است تا این مرحله ، باید بتوانید سرورهای Google DNS را پینگ کنید:

 ping 8.8.8.8
حالت تمام صفحه را وارد کنید

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

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

  1. با بارگیری MySQL CLI شروع کنید:
 sudo yum install mysql -y
حالت تمام صفحه را وارد کنید

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

  1. اتصال DB خود را با نقطه پایانی نویسنده Aurora RDS خود آغاز کنید. دستور زیر را در مرورگر پس از تغییر در نقطه پایان RDS و نام کاربری خود اجرا کنید:
 mysql -h CHANGE-TO-YOUR-RDS-ENDPOINT -u CHANGE-TO-USER-NAME -p
حالت تمام صفحه را وارد کنید

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

  1. یک پایگاه داده به نام 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 برای پایگاه داده قرار دهید. فایل را ذخیره کنید.

  1. پوشه App-tier را در سطل S3 بارگذاری کنید
    شرح تصویر4. به جلسه SSM خود بروید. با نصب NVM (مدیر نسخه گره) شروع کنید
 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
 source ~/.bashrc
حالت تمام صفحه را وارد کنید

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

  1. 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”

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

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

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

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