ඇමසන් වෙබ් සේවා (AWS) හි යෙදුම් නිර්මාණය කිරීම පිළිබඳ නිබන්ධනය

ඇමසන් වෙබ් සේවා (AWS) හි යෙදුම් නිර්මාණය කිරීම පිළිබඳ නිබන්ධනය

ඇමසන් වෙබ් සේවා (AWS) යනු ලොව ජනප්‍රියම වලාකුළු පරිගණක වේදිකා වලින් එකකි. AWS සමඟින්, ඔබට භෞතික සේවාදායක මිලදී ගැනීමකින් තොරව, සේවාදායක අවකාශයක් සැකසීමෙන් හෝ ඔබේම යටිතල පහසුකම් පවත්වා ගැනීමෙන් තොරව යෙදුම් ගොඩනගා ක්‍රියාත්මක කළ හැකිය. මෙම ලිපිය මඟින් පොදු ප්‍රවේශයක් භාවිතා කරමින් AWS හි සරල යෙදුමක් නිර්මාණය කිරීම හරහා ඔබව ගෙන යනු ඇත: පරිගණක සේවා (EC2), කළමනාකරණ දත්ත සමුදායක් (RDS) විකල්පයක් ලෙස භාවිතා කරමින් වෙබ් යෙදුමක් යෙදවීම සහ අවශ්‍ය නම් ගබඩාව සහ වසමක්. පහත උදාහරණය සාමාන්‍ය වුවත්, ඔබට එය බොහෝ යෙදුම් වර්ග සඳහා යෙදිය හැකිය.

-

1. මූලික සූදානම: ගිණුම් සහ මූලික සංකල්ප

ඔබ ආරම්භ කිරීමට පෙර, ඔබට AWS ගිණුමක් ඇති බවට වග බලා ගන්න. බොහෝ AWS සේවාවන් පුහුණුවීම් සඳහා පරිපූර්ණ නිදහස් ස්ථරයක් (නිශ්චිත සීමාවන් තුළ නොමිලේ) පිරිනමයි.

ඔබ තේරුම් ගත යුතු වැදගත් සංකල්ප කිහිපයක්:

– කලාපය: AWS දත්ත මධ්‍යස්ථාන ස්ථානය (උදාහරණය: සිංගප්පූරුව/ap-southeast-1). අඩු ප්‍රමාදය සඳහා ආසන්නතම කලාපය තෝරන්න.
– IAM (අනන්‍යතාවය සහ ප්‍රවේශ කළමනාකරණය): ප්‍රවේශ කළමනාකරණ පද්ධතියකි. හොඳම පිළිවෙත: දෛනික වැඩ සඳහා root ගිණුම භාවිතා නොකරන්න.
– VPC (අතථ්‍ය පුද්ගලික වලාකුළු): ඔබේ සේවාවන් ක්‍රියාත්මක වන අතථ්‍ය ජාලයකි.
- ආරක්ෂක කණ්ඩායම: සේවාදායකයෙන් එන/පිටතට යන ප්‍රවේශය නියාමනය කිරීමට "ෆයර්වෝල්".

මෙම කරුණු හතර තේරුම් ගැනීමෙන්, AWS මූලික කරුණු සැරිසැරීම ඔබට වඩාත් පහසු වනු ඇත.

-

2. IAM පරිශීලකයින් සහ ආරක්ෂිත ගිණුම් සාදන්න

ආරක්ෂාව සැමවිටම අපගේ අංක එකේ ප්‍රමුඛතාවයයි. AWS කොන්සෝලය වෙත root ලෙස ලොග් වන්න, ඉන්පසු:

1. IAM සේවාව විවෘත කරන්න.
2. නව පරිශීලකයෙකු සාදන්න (උදා: `admin-dev`) සහ AWS කළමනාකරණ කොන්සෝලය වෙත පරිශීලක ප්‍රවේශය ලබා දෙන්න පරීක්ෂා කරන්න.
3. අවසර දෙන්න: ප්‍රායෝගිකව ඔබට AdministratorAccess භාවිතා කළ හැකිය (සැබෑ ව්‍යාපෘති වලදී එය වඩා සීමිත විය යුතු වුවද).
4. ආරක්ෂාව වැඩි කිරීම සඳහා MFA (බහු සාධක සත්‍යාපනය) සක්‍රීය කරන්න.

අවසන් වූ පසු, root වෙතින් ඉවත් වී අලුතින් සාදන ලද IAM පරිශීලකයා භාවිතයෙන් ලොග් වන්න.

-

3. යෙදුම් ගෘහ නිර්මාණ ශිල්පය තීරණය කරන්න

මෙම නිබන්ධනය සඳහා, අපි සරල ගෘහ නිර්මාණ ශිල්පයක් ගොඩනඟමු:

– EC2: වෙබ් යෙදුම් ධාවනය කිරීම (උදා: Node.js/Express, Python Flask, හෝ PHP).
- විකල්ප RDS: කළමනාකරණය කරන ලද MySQL/PostgreSQL දත්ත සමුදාය, එවිට දත්ත පිළිවෙලට ගබඩා වේ.
– S3 (විකල්ප): රූප, ලේඛන හෝ උපස්ථ වැනි ස්ථිතික ගොනු ගබඩා කරයි.
– මාර්ගය 53 (විකල්ප): වසම් කළමනාකරණය කරන්න.
- CloudWatch: මූලික අධීක්ෂණය.

කියවන්න  ව්‍යාපාර සඳහා වලාකුළු පරිගණකකරණය භාවිතා කිරීමේ ප්‍රතිලාභ

ඔබ අලුතින් පටන් ගන්නේ නම්, පළමුව ඔබේ යෙදුම් ක්‍රියාත්මක කිරීමට EC2 කෙරෙහි අවධානය යොමු කරන්න.

-

4. EC2 සේවාදායකයක් සාදන්න

අ) අවස්ථාවක් සාදන්න
1. EC2 සේවාවට ලොග් වන්න.
2. Launch Instance ක්ලික් කරන්න.
3. මෙහෙයුම් පද්ධතිය තෝරන්න, උදාහරණයක් ලෙස උබුන්ටු සර්වර් 22.04 LTS.
4. උදාහරණ වර්ගය තෝරන්න: නිදහස් ස්ථරය සඳහා `t2.micro` හෝ `t3.micro` භාවිතා කරන්න (ලබා ගත හැකි නම්).
5. යතුරු යුගලයක් සාදන්න හෝ තෝරන්න (උදා: `aws-key.pem`). `.pem` ගොනුව SSH සඳහා භාවිතා කරන බැවින් එය ආරක්ෂිතව තබා ගන්න.

b) ජාල සහ ෆයර්වෝල් වින්‍යාසය
– උදාහරණය පෙරනිමි VPC හි ඇති බවට වග බලා ගන්න (පුහුණුව සඳහා පමණි).
– ආරක්ෂක කණ්ඩායම සකසන්න:
– 22 වන වරාය (SSH) ඔබගේ IP ලිපිනයෙන් පමණි (උදා: `මගේ IP`)
– `0.0.0.0/0` හි 80 (HTTP) වරාය (පොදු)
– පසුව SSL භාවිතා කරන්නේ නම් `0.0.0.0/0` සිට 443 (HTTPS) තොට

සටහන: මහජනතාවට SSH විවෘත කිරීම අවදානම් සහගතයි. සැමවිටම IP ලිපින සීමා කරන්න.

දියත් කරන්න ක්ලික් කර උදාහරණය ක්‍රියාත්මක වන තෙක් රැඳී සිටින්න.

-

5. SSH හරහා සේවාදායකයට පිවිසෙන්න

Windows වලදී, ඔබට WSL හෝ PuTTY භාවිතා කළ හැකිය. macOS/Linux වලදී, ඔබට එය ටර්මිනලයෙන් කෙලින්ම කළ හැකිය.

1. අවසර යතුර වෙනස් කරන්න:
"`බෑෂ්
chmod 400 aws-key.pem
""
2. සේවාදායකයට SSH (EC2 වෙතින් පොදු IPv4 භාවිතා කරන්න):
"`බෑෂ්
ssh -i aws-key.pem ubuntu@PUBLIC_IP
""

සාර්ථක නම්, ඔබ AWS උබුන්ටු සේවාදායකයේ සිටී.

-

6. වෙබ් සේවාදායකය සහ යෙදුම් ධාවන කාලය ස්ථාපනය කරන්න

නවීන වෙබ් අඩවි සඳහා බහුලව භාවිතා වන Node.js යෙදුමක් සඳහා උදාහරණයක් මෙන්න.

අ) පරායත්තතා යාවත්කාලීන කර ස්ථාපනය කරන්න
"`බෑෂ්
sudo apt update && sudo apt update -y
sudo apt ස්ථාපනය කරන්න -y curl git
""

b) Node.js (LTS අනුවාදය) ස්ථාපනය කරන්න.
"`බෑෂ්
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt ස්ථාපනය කරන්න -y nodejs
node -v
npm -v
""

-

7. සරල යෙදුමක් සාදන්න

කියවන්න  ඊ-වාණිජ්‍යය වෙබ් අඩවි සඳහා SEO ප්‍රශස්ත කරන්නේ කෙසේද?

ව්‍යාපෘති ෆෝල්ඩරයක් සාදන්න:

"`බෑෂ්
mkdir myapp && cd myapp
npm init -y
npm ස්ථාපනය අධිවේගී
""

`index.js` ගොනුවක් සාදන්න:

"ජේඑස්
const express = require("express");
const app = express();

app.get(“/”, (req, res) => {
res.send(“හෙලෝ! ඔබගේ යෙදුම AWS EC2 මත ක්‍රියාත්මක වේ.”);
});

app.listen(3000, () => console.log(“3000 port එකේ ක්‍රියාත්මක වන සේවාදායකය”));
""

යෙදුම ක්‍රියාත්මක කරන්න:

"`බෑෂ්
නෝඩ් දර්ශකය.js
""

බ්‍රව්සරයකින් ප්‍රවේශ වීමට උත්සාහ කරන්න:
– `http://PUBLIC_IP:3000`

කෙසේ වෙතත්, ආරක්ෂක කණ්ඩායම තුළ 3000 වරාය දැනට විවෘතව නොමැත. ඔබට:
1) ආරක්ෂක කණ්ඩායමේ 3000 වරාය විවෘත කරන්න, හෝ
2) ප්‍රතිලෝම ප්‍රොක්සියක් භාවිතා කරන්න (වඩාත් නිර්දේශිතයි) එවිට යෙදුම අභ්‍යන්තර තොටෙහි පවතින නමුත් 80/443 තොට හරහා ප්‍රවේශ විය හැක.

-

8. ප්‍රතිලෝම ප්‍රොක්සියක් ලෙස Nginx භාවිතා කිරීම (80 වරාය හරහා ප්‍රවේශය)

Nginx ස්ථාපනය කරන්න:
"`බෑෂ්
sudo apt ස්ථාපනය කරන්න -y nginx
sudo systemctl nginx සක්‍රීය කරන්න
sudo systemctl nginx ආරම්භ කරන්න
""

Nginx වින්‍යාසය සකසන්න:
"`බෑෂ්
sudo nano /etc/nginx/sites-available/myapp
""

වින්‍යාස අන්තර්ගතය:
"`එන්ජින්ක්ස්
සේවාදායකය {
80 අහන්න;
සේවාදායක නම _;

ස්ථානය / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header උත්ශ්‍රේණි කිරීම $http_upgrade;
proxy_set_header සම්බන්ධතාවය 'උත්ශ්‍රේණි කිරීම';
proxy_set_header සත්කාරක $host;
proxy_cache_bypass $http_upgrade;
}
}
""

වින්‍යාසය සක්‍රීය කරන්න:
"`බෑෂ්
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl nginx නැවත පූරණය කරන්න
""

දැන් ප්‍රවේශය:
– `http://PUBLIC_IP/`

යෙදුම 3000 port මත ක්‍රියාත්මක වන නමුත් මහජනතාව එයට ප්‍රවේශ වන්නේ 80 port හරහාය.

-

9. PM2 සමඟ යෙදුම් නොනවත්වා ක්‍රියාත්මක කිරීම

SSH විසන්ධි වූ විට යෙදුම බිඳ වැටීම වැළැක්වීමට, PM2 භාවිතා කරන්න:

"`බෑෂ්
sudo npm ස්ථාපනය -g pm2
pm2 start index.js – myapp එකට නමක් දෙන්න
pm2 ඉතිරි කරන්න
pm2 ආරම්භය
""

`pm2 startup` විධානය මඟින් අමතර උපදෙස් ලබා දෙනු ඇත. සේවාදායකය නැවත ආරම්භ වන විට යෙදුම ස්වයංක්‍රීයව ක්‍රියාත්මක වීමට පෙන්වන විධානය ක්‍රියාත්මක කරන්න.

-

10. (විකල්ප) RDS සමඟ දත්ත සමුදායක් එකතු කිරීම

ඔබගේ යෙදුමට දත්ත සමුදායක් අවශ්‍ය නම්, AWS උපස්ථ, පැච් කිරීම සහ පරිමාණය කළමනාකරණය කරන බැවින් RDS එය පහසු කරයි.

කෙටි පියවර:
1. RDS සේවාව විවෘත කරන්න → දත්ත සමුදාය සාදන්න.
2. MySQL හෝ PostgreSQL තෝරන්න (නිදහස් ස්ථර නීති ඇතැම් වින්‍යාසයන් මත ලබා ගත හැකිය).
3. පරිශීලක නාමය/මුරපදය සකසන්න.
4. RDS අවස්ථාව EC2 හා සමාන VPC එකක ඇති බවට වග බලා ගන්න.
5. RDS ආරක්ෂක කණ්ඩායම EC2 ආරක්ෂක කණ්ඩායමෙන් පමණක් සම්බන්ධතා පිළිගන්නා ලෙස සකසන්න (මහජනතාවගෙන් නොවේ).

කියවන්න  Agile සමඟ මෘදුකාංග ව්‍යාපෘති කළමනාකරණය කරන්නේ කෙසේද?

දත්ත සමුදාය සජීවී වූ පසු, RDS අන්ත ලක්ෂ්‍යය අල්ලාගෙන දත්ත සමුදා ධාවකය භාවිතයෙන් ඔබේ යෙදුමෙන් එයට සම්බන්ධ වන්න.

-

11. (විකල්ප) SSL සහතිකය සමඟ HTTPS සක්‍රීය කරන්න

නිෂ්පාදනය සඳහා, HTTPS අනිවාර්ය වේ. සාමාන්‍ය ක්‍රමය:
– වසමක් භාවිතා කරන්න (උදා: මාර්ග 53 හෝ වෙනත් රෙජිස්ට්‍රාර්වරයෙකුගෙන්).
– EC2 මත Let's Encrypt (Certbot) හරහා SSL ස්ථාපනය කරන්න.

කෙටියෙන්:
"`බෑෂ්
sudo apt ස්ථාපනය කරන්න -y certbot python3-certbot-nginx
sudo සහතික බොට් –nginx
""

වසමක් තෝරා ගැනීමට සහ HTTPS යළි-යොමුවීම සක්‍රීය කිරීමට විශාරදයා අනුගමනය කරන්න.

-

12. අධීක්ෂණය සහ පිරිවැය

CPU, ජාලය සහ නිශ්චිත ලොග් වැනි මිනුම් බැලීමට AWS මඟින් CloudWatch සපයයි. අතපසු වීම වළක්වා ගැනීම සඳහා ඔබේ වියදම් නිරීක්ෂණය කිරීමටද ඔබට අවශ්‍ය වනු ඇත.

වැදගත් උපදෙස්:
– CloudWatch හි බිල්පත් අනතුරු ඇඟවීම සක්‍රීය කරන්න (උදා: ගාස්තු ඩොලර් 5 ඉක්මවන්නේ නම් අනතුරු ඇඟවීම).
– භාවිතයේ නොමැති විට අවස්ථාව අක්‍රිය කරන්න.
- භාවිතයට නොගත් සම්පත් (load balancers, EBS, elastic IPs, snapshots) ඉවත් කරන්න, මන්ද ඒවාට තවමත් පිරිවැය දැරීමට සිදුවිය හැකිය.

-

වසා දැමීම

සුභ පැතුම්! ඔබ EC2 භාවිතයෙන් AWS මත යෙදුමක් ගොඩනැගීම, වෙබ් යෙදුමක් ක්‍රියාත්මක කිරීම, Nginx ප්‍රතිලෝම ප්‍රොක්සියක් සැකසීම සහ PM2 සමඟ එය සැමවිටම ක්‍රියාත්මක කිරීම පිළිබඳ මූලික කරුණු ඉගෙන ගෙන ඇත. දත්ත සමුදායන් සඳහා RDS, ගබඩා කිරීම සඳහා S3 සහ ආරක්ෂාව සඳහා HTTPS සහතික වැනි අමතර සේවාවන් පිළිබඳ දළ විශ්ලේෂණයක් ද ඔබ ලබාගෙන ඇත.

ඔබට මට්ටම ඉහළ නැංවීමට අවශ්‍ය නම්, ඊළඟ පියවර සාමාන්‍යයෙන්:
– CI/CD සමඟ ස්වයංක්‍රීය යෙදවීම (GitHub ක්‍රියා + SSH, හෝ AWS CodeDeploy),
– ඩෝකර් සහිත බහාලුම් සහ ECS හෝ EKS වැනි වාද්‍ය වෘන්ද භාවිතා කිරීම,
- Lambda + API Gateway සමඟ සේවාදායක රහිත ගෘහ නිර්මාණ ශිල්පය භාවිතා කිරීම.

ඔබ කැමති නම්, කරුණාකර ඔබ ගොඩනඟන යෙදුම් වර්ගය (Node.js, Laravel, Django, React, ආදිය) සහ එහි අපේක්ෂිත අරමුණ (demo, නිෂ්පාදනය, මහා පරිමාණ) සඳහන් කරන්න. මට වඩාත් නිශ්චිත පියවර සමඟ නිබන්ධනය අභිරුචිකරණය කළ හැකිය.

අදහස අත්හැර