ບົດແນະນຳກ່ຽວກັບການສ້າງແອັບພລິເຄຊັນໃນ Amazon Web Services (AWS)
Amazon Web Services (AWS) ແມ່ນໜຶ່ງໃນແພລດຟອມການປະມວນຜົນແບບຄລາວທີ່ໄດ້ຮັບຄວາມນິຍົມຫຼາຍທີ່ສຸດໃນໂລກ. ດ້ວຍ AWS, ທ່ານສາມາດສ້າງ ແລະ ໃຊ້ງານແອັບພລິເຄຊັນໂດຍບໍ່ຕ້ອງຊື້ເຊີບເວີທາງກາຍະພາບ, ຕັ້ງຄ່າພື້ນທີ່ເຊີບເວີ, ຫຼື ຮັກສາໂຄງສ້າງພື້ນຖານຂອງທ່ານເອງ. ບົດຄວາມນີ້ຈະນຳພາທ່ານຜ່ານການສ້າງແອັບພລິເຄຊັນງ່າຍໆໃນ AWS ໂດຍໃຊ້ວິທີການທົ່ວໄປ: ການນຳໃຊ້ ແອັບພລິເຄຊັນເວັບ ໂດຍໃຊ້ການບໍລິການຄິດໄລ່ (EC2), ຖານຂໍ້ມູນທີ່ມີການຈັດການ (RDS) ເປັນທາງເລືອກ, ແລະ ບ່ອນເກັບຂໍ້ມູນ ແລະ ໂດເມນຖ້າຈຳເປັນ. ໃນຂະນະທີ່ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນທົ່ວໄປ, ທ່ານສາມາດນຳໃຊ້ມັນກັບແອັບພລິເຄຊັນຫຼາຍປະເພດ.
-
1. ການກະກຽມເບື້ອງຕົ້ນ: ບັນຊີ ແລະ ແນວຄວາມຄິດພື້ນຖານ
ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ, ໃຫ້ແນ່ໃຈວ່າທ່ານມີບັນຊີ AWS. ການບໍລິການ AWS ຫຼາຍຢ່າງສະເໜີ Free Tier (ຟຣີພາຍໃນຂອບເຂດຈຳກັດທີ່ແນ່ນອນ) ເຊິ່ງເໝາະສົມສຳລັບການປະຕິບັດຕົວຈິງ.
ບາງແນວຄວາມຄິດທີ່ສຳຄັນທີ່ທ່ານຈຳເປັນຕ້ອງເຂົ້າໃຈ:
– ພາກພື້ນ: ສະຖານທີ່ສູນຂໍ້ມູນ AWS (ຕົວຢ່າງ: Singapore/ap-southeast-1). ເລືອກພາກພື້ນທີ່ໃກ້ທີ່ສຸດສຳລັບຄວາມໜ່ວງເວລາຕ່ຳ.
– IAM (ການຄຸ້ມຄອງຕົວຕົນ ແລະ ການເຂົ້າເຖິງ): ລະບົບການຄຸ້ມຄອງການເຂົ້າເຖິງ. ວິທີປະຕິບັດທີ່ດີທີ່ສຸດ: ຢ່າໃຊ້ບັນຊີ root ສຳລັບວຽກງານປະຈຳວັນ.
– VPC (Virtual Private Cloud): ເຄືອຂ່າຍສະເໝືອນບ່ອນທີ່ການບໍລິການຂອງທ່ານດຳເນີນງານ.
– ກຸ່ມຄວາມປອດໄພ: “ໄຟວໍ” ເພື່ອຄວບຄຸມການເຂົ້າເຖິງເຂົ້າ/ອອກຈາກເຊີບເວີ.
ໂດຍການເຂົ້າໃຈສີ່ຢ່າງນີ້, ມັນຈະງ່າຍຂຶ້ນຫຼາຍສຳລັບທ່ານທີ່ຈະນຳທາງພື້ນຖານຂອງ AWS.
-
2. ສ້າງຜູ້ໃຊ້ IAM ແລະ ຮັກສາບັນຊີໃຫ້ປອດໄພ
ຄວາມປອດໄພແມ່ນບູລິມະສິດອັນດັບໜຶ່ງຂອງພວກເຮົາສະເໝີ. ເຂົ້າສູ່ລະບົບ AWS Console ໃນຖານະເປັນ root, ຈາກນັ້ນ:
1. ເປີດບໍລິການ IAM.
2. ສ້າງຜູ້ໃຊ້ໃໝ່ (ຕົວຢ່າງ: `admin-dev`) ແລະ ໝາຍຕິກໃສ່ Provide user access to the AWS Management Console.
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. ຄລິກ ເປີດໃຊ້ງານ Instance.
3. ເລືອກລະບົບປະຕິບັດການ, ຕົວຢ່າງເຊັ່ນ Ubuntu Server 22.04 LTS.
4. ເລືອກປະເພດອິນສະແຕນ: ສຳລັບ Free Tier ໃຫ້ໃຊ້ `t2.micro` ຫຼື `t3.micro` (ຂຶ້ນກັບຄວາມພ້ອມ).
5. ສ້າງ ຫຼື ເລືອກຄູ່ຄີ (ຕົວຢ່າງ, `aws-key.pem`). ຮັກສາໄຟລ໌ `.pem` ໃຫ້ປອດໄພ ເພາະມັນຈະຖືກໃຊ້ສຳລັບ SSH.
ຂ) ການຕັ້ງຄ່າເຄືອຂ່າຍ ແລະ ໄຟວໍລ
- ໃຫ້ແນ່ໃຈວ່າ instance ຢູ່ໃນ VPC ເລີ່ມຕົ້ນ (ສຳລັບການປະຕິບັດເທົ່ານັ້ນ).
– ຕັ້ງຄ່າກຸ່ມຄວາມປອດໄພ:
- ພອດ 22 (SSH) ຈາກ IP ຂອງທ່ານເທົ່ານັ້ນ (ຕົວຢ່າງ `IP ຂອງຂ້ອຍ`)
– ພອດ 80 (HTTP) ຂອງ `0.0.0.0/0` (ສາທາລະນະ)
– ພອດ 443 (HTTPS) ຈາກ `0.0.0.0/0` ຖ້າຫາກວ່າຕໍ່ມາໃຊ້ SSL
ໝາຍເຫດ: ການເປີດ SSH ໃຫ້ແກ່ສາທາລະນະຊົນມີຄວາມສ່ຽງ. ຈຳກັດທີ່ຢູ່ IP ສະເໝີ.
ກົດເປີດໃຊ້ ແລະລໍຖ້າໃຫ້ອິນສະແຕນສ໌ເຮັດວຽກ.
-
5. ເຂົ້າສູ່ລະບົບເຊີບເວີຜ່ານ SSH
ໃນ Windows, ທ່ານສາມາດໃຊ້ WSL ຫຼື PuTTY. ໃນ macOS/Linux, ທ່ານສາມາດເຮັດໄດ້ໂດຍກົງຈາກ terminal.
1. ປ່ຽນລະຫັດການອະນຸຍາດ:
“`ບ້າ
chmod 400 aws-key.pem
“ `
2. SSH ຫາເຊີບເວີ (ໃຊ້ Public IPv4 ຈາກ EC2):
“`ບ້າ
ssh -i aws-key.pem ubuntu@PUBLIC_IP
“ `
ຖ້າສຳເລັດ, ທ່ານຈະຢູ່ໃນເຊີບເວີ AWS Ubuntu.
-
6. ຕິດຕັ້ງເວັບເຊີບເວີ ແລະ ຣັນໄທມ໌ແອັບພລິເຄຊັນ
ນີ້ແມ່ນຕົວຢ່າງສຳລັບແອັບພລິເຄຊັນ Node.js, ຍ້ອນວ່າມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງສໍາລັບເວັບທີ່ທັນສະໄຫມ.
ກ) ອັບເດດ ແລະ ຕິດຕັ້ງ dependencies
“`ບ້າ
ປັບປຸງໃຫ້ທັນ apto apt & & sudo apt-apt -y
sudo apt install -y curl git
“ `
ຂ) ຕິດຕັ້ງ Node.js (ລຸ້ນ LTS)
“`ບ້າ
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
node -v
npm -v
“ `
-
7. ສ້າງແອັບພລິເຄຊັນງ່າຍໆ
ສ້າງໂຟນເດີໂຄງການ:
“`ບ້າ
mkdir myapp && cd myapp
npm init -y
npm ຕິດຕັ້ງດ່ວນ
“ `
ສ້າງໄຟລ໌ `index.js`:
"`js
const express = ຕ້ອງການ (“ດ່ວນ”);
const app = express();
app.get(“/”, (ຕ້ອງການ, res) => {
res.send(“ສະບາຍດີ! ແອັບພລິເຄຊັນຂອງທ່ານກຳລັງເຮັດວຽກຢູ່ໃນ AWS EC2.”);
});
app.listen(3000, () => console.log(“ເຊີບເວີກຳລັງເຮັດວຽກຢູ່ໃນພອດ 3000”));
“ `
ດໍາເນີນການແອັບພລິເຄຊັນ:
“`ບ້າ
ດັດຊະນີໂຫນດ.js
“ `
ລອງເຂົ້າເຖິງຈາກໂປຣແກຣມທ່ອງເວັບ:
– `http://PUBLIC_IP:3000`
ເຖິງຢ່າງໃດກໍ່ຕາມ, ພອດ 3000 ຍັງບໍ່ທັນໄດ້ເປີດຢູ່ໃນກຸ່ມຄວາມປອດໄພ. ທ່ານສາມາດ:
1) ເປີດພອດ 3000 ໃນກຸ່ມຄວາມປອດໄພ, ຫຼື
2) ໃຊ້ reverse proxy (ແນະນຳຫຼາຍກວ່າ) ເພື່ອໃຫ້ແອັບພລິເຄຊັນຍັງຄົງຢູ່ໃນພອດພາຍໃນ ແຕ່ສາມາດເຂົ້າເຖິງໄດ້ຜ່ານພອດ 80/443.
-
8. ການໃຊ້ Nginx ເປັນ Reverse Proxy (ເຂົ້າເຖິງຜ່ານ Port 80)
ຕິດຕັ້ງ Nginx:
“`ບ້າ
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
“ `
ຕັ້ງຄ່າການຕັ້ງຄ່າ Nginx:
“`ບ້າ
sudo nano /etc/nginx/sites-available/myapp
“ `
ເນື້ອໃນການຕັ້ງຄ່າ:
"`nginx
ເຊີບເວີ {
ຟັງ 80;
server_name _;
ສະຖານທີ່ / {
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 $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 ແຕ່ສາທາລະນະຊົນເຂົ້າເຖິງມັນໄດ້ຜ່ານພອດ 80.
-
9. ເປີດໃຊ້ແອັບພລິເຄຊັນຢ່າງຕໍ່ເນື່ອງດ້ວຍ PM2
ເພື່ອປ້ອງກັນບໍ່ໃຫ້ແອັບພລິເຄຊັນຂັດຂ້ອງເມື່ອ SSH ຖືກຕັດການເຊື່ອມຕໍ່, ໃຫ້ໃຊ້ PM2:
“`ບ້າ
sudo npm ຕິດຕັ້ງ -g pm2
pm2 ເລີ່ມ index.js –ຊື່ myapp
ບັນທຶກ pm2
ການເລີ່ມຕົ້ນ pm2
“ `
ຄຳສັ່ງ `pm2 startup` ຈະໃຫ້ຄຳແນະນຳເພີ່ມເຕີມ. ໃຫ້ໃຊ້ຄຳສັ່ງທີ່ສະແດງເພື່ອໃຫ້ແອັບພລິເຄຊັນເຮັດວຽກໂດຍອັດຕະໂນມັດເມື່ອເຊີບເວີເລີ່ມຕົ້ນໃໝ່.
-
10. (ທາງເລືອກ) ການເພີ່ມຖານຂໍ້ມູນດ້ວຍ RDS
ຖ້າແອັບພລິເຄຊັນຂອງທ່ານຕ້ອງການຖານຂໍ້ມູນ, RDS ເຮັດໃຫ້ມັນງ່າຍເພາະວ່າ AWS ຈັດການການສຳຮອງຂໍ້ມູນ, ການແກ້ໄຂ ແລະ ການຂະຫຍາຍ.
ຂັ້ນຕອນສັ້ນໆ:
1. ເປີດບໍລິການ RDS → ສ້າງຖານຂໍ້ມູນ.
2. ເລືອກ MySQL ຫຼື PostgreSQL (ກົດລະບຽບ Free Tier ແມ່ນມີໃຫ້ໃນການຕັ້ງຄ່າບາງຢ່າງ).
3. ກຳນົດຊື່ຜູ້ໃຊ້/ລະຫັດຜ່ານ.
4. ໃຫ້ແນ່ໃຈວ່າ RDS instance ຢູ່ໃນ VPC ດຽວກັນກັບ EC2.
5. ຕັ້ງຄ່າກຸ່ມຄວາມປອດໄພ RDS ໃຫ້ຍອມຮັບການເຊື່ອມຕໍ່ຈາກກຸ່ມຄວາມປອດໄພ EC2 ເທົ່ານັ້ນ (ບໍ່ແມ່ນຈາກສາທາລະນະ).
ເມື່ອຖານຂໍ້ມູນເປີດໃຊ້ງານແລ້ວ, ໃຫ້ຈັບເອົາຈຸດສິ້ນສຸດ RDS ແລະເຊື່ອມຕໍ່ກັບມັນຈາກແອັບພລິເຄຊັນຂອງທ່ານໂດຍໃຊ້ໄດຣເວີຖານຂໍ້ມູນ.
-
11. (ທາງເລືອກ) ເປີດໃຊ້ HTTPS ດ້ວຍໃບຢັ້ງຢືນ SSL
ສຳລັບການຜະລິດ, HTTPS ແມ່ນບັງຄັບ. ວິທີການທົ່ວໄປ:
– ໃຊ້ໂດເມນ (ຕົວຢ່າງ: ຈາກ Route 53 ຫຼື ຜູ້ລົງທະບຽນອື່ນ).
- ຕິດຕັ້ງ SSL ຜ່ານ Let's Encrypt (Certbot) ໃນ EC2.
ໂດຍຫຍໍ້:
“`ບ້າ
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
“ `
ປະຕິບັດຕາມຕົວຊ່ວຍສ້າງເພື່ອເລືອກໂດເມນ ແລະ ເປີດໃຊ້ການປ່ຽນເສັ້ນທາງ HTTPS.
-
12. ການຕິດຕາມກວດກາ ແລະ ຄ່າໃຊ້ຈ່າຍ
AWS ໃຫ້ບໍລິການ CloudWatch ເພື່ອເບິ່ງຕົວຊີ້ວັດຕ່າງໆເຊັ່ນ CPU, ເຄືອຂ່າຍ ແລະ ບັນທຶກສະເພາະ. ທ່ານຍັງຕ້ອງການຕິດຕາມກວດກາຄ່າໃຊ້ຈ່າຍຂອງທ່ານເພື່ອຫຼີກເວັ້ນການພາດໂອກາດຕ່າງໆ.
ຄຳແນະນຳທີ່ສຳຄັນ:
- ເປີດໃຊ້ການແຈ້ງເຕືອນການຮຽກເກັບເງິນໃນ CloudWatch (ຕົວຢ່າງ: ການແຈ້ງເຕືອນຖ້າຄ່າບໍລິການເກີນ $5).
- ປິດເຄື່ອງໃຊ້ໄຟຟ້າເມື່ອບໍ່ໄດ້ໃຊ້ງານ.
- ລຶບຊັບພະຍາກອນທີ່ບໍ່ໄດ້ໃຊ້ (load balancers, EBS, elastic IPs, snapshots) ອອກ ເພາະວ່າພວກມັນອາດຈະຍັງມີຄ່າໃຊ້ຈ່າຍ.
-
Penutup
ຊົມເຊີຍ! ທ່ານໄດ້ຮຽນຮູ້ພື້ນຖານຂອງການສ້າງແອັບພລິເຄຊັນໃນ AWS ໂດຍໃຊ້ EC2, ການໃຊ້ ງານແອັບພລິເຄຊັນເວັບ , ການຕັ້ງຄ່າ proxy reverse ຂອງ Nginx, ແລະ ເຮັດໃຫ້ມັນເປີດໃຊ້ງານໄດ້ຕະຫຼອດເວລາດ້ວຍ PM2. ທ່ານຍັງໄດ້ຮັບພາບລວມຂອງການບໍລິການເພີ່ມເຕີມເຊັ່ນ RDS ສຳລັບຖານຂໍ້ມູນ, S3 ສຳລັບການເກັບຮັກສາ, ແລະ ໃບຢັ້ງຢືນ HTTPS ສຳລັບຄວາມປອດໄພ.
ຖ້າທ່ານຕ້ອງການເລື່ອນລະດັບ, ຂັ້ນຕອນຕໍ່ໄປໂດຍປົກກະຕິແລ້ວແມ່ນ:
- ການນຳໃຊ້ແບບອັດຕະໂນມັດດ້ວຍ CI/CD (GitHub Actions + SSH, ຫຼື AWS CodeDeploy),
- ການໃຊ້ຄອນເທນເນີທີ່ມີ Docker ແລະ orchestrations ເຊັ່ນ ECS ຫຼື EKS,
- ການໃຊ້ສະຖາປັດຕະຍະກຳແບບບໍ່ມີເຊີບເວີກັບ Lambda + API Gateway.
ຖ້າທ່ານຕ້ອງການ, ກະລຸນາລະບຸປະເພດຂອງແອັບພລິເຄຊັນທີ່ທ່ານກຳລັງສ້າງ (Node.js, Laravel, Django, React, ແລະອື່ນໆ) ແລະຈຸດປະສົງທີ່ຕັ້ງໃຈໄວ້ (ການສາທິດ, ການຜະລິດ, ຂະໜາດໃຫຍ່). ຂ້ອຍສາມາດປັບແຕ່ງການສອນດ້ວຍຂັ້ນຕອນສະເພາະເຈາະຈົງຫຼາຍຂຶ້ນ.