ບົດແນະນຳກ່ຽວກັບການສ້າງແອັບພລິເຄຊັນໃນ Amazon Web Services (AWS)

ບົດແນະນຳກ່ຽວກັບການສ້າງແອັບພລິເຄຊັນໃນ 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, ແລະອື່ນໆ) ແລະຈຸດປະສົງທີ່ຕັ້ງໃຈໄວ້ (ການສາທິດ, ການຜະລິດ, ຂະໜາດໃຫຍ່). ຂ້ອຍສາມາດປັບແຕ່ງການສອນດ້ວຍຂັ້ນຕອນສະເພາະເຈາະຈົງຫຼາຍຂຶ້ນ.

ຂຽນຄຳເຫັນ