Kev Qhia Txog Kev Tsim Cov Ntawv Thov Hauv Amazon Web Services (AWS)
Amazon Web Services (AWS) yog ib qho ntawm cov platform suav huab nrov tshaj plaws hauv ntiaj teb. Nrog AWS, koj tuaj yeem tsim thiab khiav cov ntawv thov yam tsis tas yuav yuav cov servers lub cev, teeb tsa qhov chaw server, lossis tswj koj tus kheej cov khoom siv. Tsab xov xwm no yuav coj koj mus txog kev tsim ib daim ntawv thov yooj yim ntawm AWS siv txoj hauv kev sib xws: xa tawm daim ntawv thov web siv cov kev pabcuam suav (EC2), lub hauv paus ntaub ntawv tswj hwm (RDS) ua ib qho kev xaiv, thiab qhov chaw cia khoom thiab lub npe sau yog tias xav tau. Txawm hais tias qhov piv txwv hauv qab no yog dav dav, koj tuaj yeem siv nws rau ntau hom ntawv thov.
-
1. Kev Npaj Thaum Pib: Cov Nyiaj Txiag thiab Cov Ntsiab Lus Tseem Ceeb
Ua ntej koj pib, xyuas kom tseeb tias koj muaj ib tus account AWS. Ntau cov kev pabcuam AWS muab Free Tier (dawb hauv qee qhov kev txwv) uas zoo meej rau kev xyaum.
Qee lub ntsiab lus tseem ceeb uas koj yuav tsum nkag siab:
– Cheeb Tsam: Qhov chaw nyob ntawm AWS lub chaw khaws ntaub ntawv (piv txwv li: Singapore/ap-southeast-1). Xaiv thaj tsam ze tshaj plaws rau qhov latency qis.
– IAM (Kev Tswj Xyuas Tus Kheej thiab Kev Nkag Mus): ib lub kaw lus tswj kev nkag mus. Kev coj ua zoo tshaj plaws: tsis txhob siv tus account hauv paus rau kev ua haujlwm txhua hnub.
– VPC (Virtual Private Cloud): lub network virtual uas koj cov kev pabcuam khiav.
– Pawg Kev Ruaj Ntseg: "firewall" los tswj kev nkag mus / tawm ntawm lub server.
Los ntawm kev nkag siab plaub yam no, nws yuav yooj yim dua rau koj los tshawb nrhiav cov hauv paus ntawm AWS.
-
2. Tsim Cov Neeg Siv IAM thiab Cov Nyiaj Ruaj Ntseg
Kev ruaj ntseg yeej ib txwm yog peb qhov tseem ceeb tshaj plaws. Nkag mus rau hauv AWS Console ua tus hauv paus, tom qab ntawd:
1. Qhib qhov kev pabcuam IAM.
2. Tsim ib tug Neeg Siv tshiab (piv txwv li `admin-dev`) thiab kos lub thawv Muab kev nkag mus rau AWS Management Console rau tus neeg siv.
3. Muab kev tso cai: rau kev xyaum koj tuaj yeem siv AdministratorAccess (txawm hais tias hauv cov haujlwm tiag tiag nws yuav tsum txwv ntau dua).
4. Qhib MFA (Multi-Factor Authentication) kom muaj kev ruaj ntseg ntxiv.
Thaum ua tiav lawm, tawm ntawm lub hauv paus thiab nkag mus siv tus neeg siv IAM tshiab tsim.
-
3. Txheeb xyuas cov qauv ntawm daim ntawv thov
Rau qhov kev qhia no, peb yuav tsim ib lub architecture yooj yim:
- EC2: khiav cov ntawv thov web (piv txwv li Node.js/Express, Python Flask, lossis PHP).
- Xaiv RDS: tswj hwm MySQL / PostgreSQL database, yog li cov ntaub ntawv khaws cia kom zoo.
- S3 (yeem xaiv tau): khaws cov ntaub ntawv zoo li qub xws li cov duab, cov ntaub ntawv, lossis cov thaub qab.
– Txoj Kev 53 (yeem xaiv tau): tswj cov npe sau.
- CloudWatch: kev saib xyuas yooj yim.
Yog tias koj nyuam qhuav pib, tsom mus rau EC2 kom khiav koj cov ntawv thov ua ntej.
-
4. Tsim ib lub EC2 Server
a) Tsim ib qho piv txwv
1. Nkag mus rau hauv EC2 kev pabcuam.
2. Nyem Pib Qhov Piv Txwv.
3. Xaiv OS, piv txwv li Ubuntu Server 22.04 LTS.
4. Xaiv hom piv txwv: rau Free Tier siv `t2.micro` lossis `t3.micro` (nyob ntawm seb puas muaj).
5. Tsim los yog xaiv ib tug Key Pair (piv txwv li, `aws-key.pem`). Khaws cov ntaub ntawv `.pem` kom zoo vim nws yuav raug siv rau SSH.
b) Kev Teeb tsa Network thiab Firewall
- Xyuas kom tseeb tias qhov piv txwv nyob hauv VPC uas twb muaj lawm (tsuas yog rau kev xyaum xwb).
– Teem Pawg Kev Ruaj Ntseg:
- Chaw nres nkoj 22 (SSH) tsuas yog los ntawm koj tus IP (piv txwv li `Kuv tus IP`)
– Chaw nres nkoj 80 (HTTP) ntawm `0.0.0.0/0` (pej xeem)
- Chaw nres nkoj 443 (HTTPS) los ntawm `0.0.0.0/0` yog tias tom qab siv SSL
Lus Cim: Kev qhib SSH rau pej xeem muaj kev pheej hmoo. Ib txwm txwv cov chaw nyob IP.
Nyem Launch thiab tos kom qhov piv txwv khiav.
-
5. Nkag mus rau hauv Server ntawm SSH
Hauv Windows, koj siv tau WSL los yog PuTTY. Hauv macOS/Linux, koj ua tau ncaj qha los ntawm lub davhlau ya nyob twg.
1. Hloov tus yuam sij tso cai:
"`bash
chmod 400 aws-key.pem
“
2. SSH rau lub server (siv Public IPv4 los ntawm EC2):
"`bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
“
Yog tias ua tiav, koj nyob ntawm AWS Ubuntu server.
-
6. Nruab Web Server thiab Application Runtime
Nov yog ib qho piv txwv rau daim ntawv thov Node.js, vim nws tau siv dav rau lub vev xaib niaj hnub no.
a) Hloov kho thiab teeb tsa cov kev vam khom
"`bash
sudo Apt hloov kho tshiab && sudo apt txawj tej yam ntxiv -y
sudo apt nruab -y curl git
“
b) Nruab Node.js (LTS version)
"`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt nruab -y nodejs
node -v
npm -v
“
-
7. Tsim ib daim ntawv thov yooj yim
Tsim ib daim nplaub tshev project:
"`bash
mkdir myapp && cd myapp
npm init -y
npm install express
“
Tsim ib daim ntawv `index.js`:
"`js
const qhia tawm = xav tau ("qhia tawm");
const app = express();
app.get(“/”, (req, res) => {
res.send(“Nyob zoo! Koj daim ntawv thov tab tom khiav ntawm AWS EC2.”);
});
app.mloog(3000, () => console.log(“Tus neeg rau zaub mov khiav ntawm qhov chaw nres nkoj 3000”));
“
Khiav daim ntawv thov:
"`bash
node index.js
“
Sim nkag mus los ntawm lub browser:
– `http://PUBLIC_IP:3000`
Txawm li cas los xij, qhov chaw nres nkoj 3000 tam sim no tsis tau qhib hauv Pawg Kev Ruaj Ntseg. Koj tuaj yeem:
1) qhib qhov chaw nres nkoj 3000 hauv Pawg Kev Ruaj Ntseg, lossis
2) siv ib lub reverse proxy (pom zoo dua) kom daim ntawv thov tseem nyob ntawm qhov chaw nres nkoj sab hauv tab sis tuaj yeem nkag mus tau ntawm qhov chaw nres nkoj 80/443.
-
8. Siv Nginx ua ib qho Reverse Proxy (Nkag mus rau ntawm Port 80)
Nruab Nginx:
"`bash
sudo apt nruab -y nginx
sudo systemctl pab kom nginx
sudo systemctl pib nginx
“
Teeb tsa Nginx configuration:
"`bash
sudo nano /etc/nginx/sites-available/myapp
“
Cov ntsiab lus teeb tsa:
"`nginx
neeg rau zaub mov {
mloog 80;
server_name _;
qhov chaw / {
proxy_pass http: // 127.0.0.1: 3000;
proxy_http_version 1.1;
proxy_set_header Hloov kho $http_upgrade;
proxy_set_header Kev Sib Txuas 'txhim kho';
proxy_set_header Hwm $host;
proxy_cache_bypass $http_upgrade;
}
}
“
Qhib kev teeb tsa:
"`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl rov qab thauj khoom nginx
“
Tam sim no nkag mus rau:
– `http://PUBLIC_IP/`
Daim ntawv thov khiav ntawm qhov chaw nres nkoj 3000 tab sis pej xeem nkag mus rau nws ntawm qhov chaw nres nkoj 80.
-
9. Khiav Cov Ntawv Thov tas li nrog PM2
Yuav kom tiv thaiv daim ntawv thov kom tsis txhob crashing thaum SSH raug txiav tawm, siv PM2:
"`bash
sudo npm nruab -g pm2
pm2 pib index.js - lub npe myapp
pm2 txuag
pm2 pib
“
Cov lus txib 'pm2 startup' yuav muab cov lus qhia ntxiv. Khiav cov lus txib uas tau tso tawm kom daim ntawv thov khiav tau thaum lub server rov pib dua.
-
10. (Xaiv tau) Ntxiv ib lub Database nrog RDS
Yog tias koj daim ntawv thov xav tau lub database, RDS ua rau nws yooj yim vim AWS tswj hwm cov thaub qab, kev kho, thiab kev ntsuas.
Cov kauj ruam luv luv:
1. Qhib RDS kev pabcuam → Tsim cov ntaub ntawv.
2. Xaiv MySQL lossis PostgreSQL (Cov cai ntawm Free Tier muaj nyob rau qee qhov kev teeb tsa).
3. Teem lub npe neeg siv/password.
4. Xyuas kom tseeb tias RDS instance nyob hauv tib lub VPC li EC2.
5. Teem RDS Security Group kom tsuas yog txais cov kev sib txuas los ntawm EC2 Security Group (tsis yog los ntawm pej xeem).
Thaum lub database nyob lawm, rub lub RDS endpoint thiab txuas rau nws los ntawm koj daim ntawv thov siv tus tsav tsheb database.
-
11. (Xaiv tau) Pab kom HTTPS nrog daim ntawv pov thawj SSL
Rau kev tsim khoom, HTTPS yog qhov yuav tsum tau ua. Txoj kev ib txwm muaj:
– Siv ib lub npe sau (piv txwv li los ntawm Route 53 lossis lwm tus neeg sau npe).
- Nruab SSL ntawm Let's Encrypt (Certbot) ntawm EC2.
Hauv luv luv:
"`bash
sudo apt nruab -y certbot python3-certbot-nginx
sudo certbot –nginx
“
Ua raws li tus wizard kom xaiv ib lub domain thiab qhib HTTPS redirect.
-
12. Kev Saib Xyuas thiab Cov Nqi
AWS muab CloudWatch los saib cov ntsuas xws li CPU, network, thiab cov ntawv teev tseg tshwj xeeb. Koj kuj tseem yuav xav saib xyuas koj cov nqi kom tsis txhob plam qee yam.
Cov lus qhia tseem ceeb:
- Qhib Lub Ceeb Toom Them Nqi hauv CloudWatch (piv txwv li lub tswb ceeb toom yog tias cov nqi tshaj $ 5).
- Tua lub tshuab thaum tsis siv.
- Tshem tawm cov peev txheej tsis siv (load balancers, EBS, elastic IPs, snapshots) vim tias lawv tseem yuav raug nqi.
-
Kev kaw
Zoo siab! Koj tau kawm txog cov hauv paus ntawm kev tsim ib daim ntawv thov ntawm AWS siv EC2, khiav ib daim ntawv thov web , teeb tsa Nginx reverse proxy, thiab ua kom nws nyob tas li nrog PM2. Koj kuj tau txais kev piav qhia txog cov kev pabcuam ntxiv xws li RDS rau cov ntaub ntawv khaws cia, S3 rau kev khaws cia, thiab daim ntawv pov thawj HTTPS rau kev ruaj ntseg.
Yog tias koj xav nce qib, cov kauj ruam tom ntej feem ntau yog:
- Kev xa tawm tsis siv neeg nrog CI/CD (GitHub Actions + SSH, lossis AWS CodeDeploy),
- Siv cov thawv nrog Docker thiab cov orchestrations zoo li ECS lossis EKS,
- Siv cov qauv serverless nrog Lambda + API Gateway.
Yog tias koj xav tau, thov qhia hom daim ntawv thov uas koj tab tom tsim (Node.js, Laravel, Django, React, thiab lwm yam) thiab nws lub hom phiaj (demo, production, large-scale). Kuv tuaj yeem kho qhov kev qhia nrog cov kauj ruam tshwj xeeb ntxiv.