Dzidziso yekugadzira maApplication paAmazon Web Services (AWS)
Amazon Web Services (AWS) ndeimwe yemapuratifomu anozivikanwa pasi rose e cloud computing. NeAWS, unogona kuvaka nekushandisa maapplication usingatenge ma physical servers, kugadzira server space, kana kuchengetedza zvivakwa zvako wega. Chinyorwa chino chichakutungamira mukugadzira application iri nyore paAWS uchishandisa nzira yakajairika: kuisa web application uchishandisa compute services (EC2), managed database (RDS) sesarudzo, uye storage ne domain kana zvichidikanwa. Kunyange zvazvo muenzaniso unotevera uri wevanhu vose, unogona kuushandisa kune marudzi akawanda emaapplication.
-
1. Kugadzirira Kwekutanga: Nhoroondo nepfungwa dzekutanga
Usati watanga, iva nechokwadi chekuti une account yeAWS. Masevhisi mazhinji eAWS anopa Free Tier (yemahara mukati memimwe miganhu) yakakodzera kushandiswa.
Dzimwe pfungwa dzinokosha dzaunofanira kunzwisisa:
– Dunhu: Nzvimbo yedata reAWS (muenzaniso: Singapore/ap-southeast-1). Sarudza dunhu riri pedyo kuti pave nekunonoka kwakaderera.
– IAM (Identity and Access Management): sisitimu yekutarisira kuwanikwa. Nzira yakanakisisa: usashandise root account pabasa rezuva nezuva.
– VPC (Virtual Private Cloud): network chaiyo inoshandira masevhisi ako.
– Boka rekuchengetedza: "firewall" yekudzora kupinda kwesevha kubva mukupinda/kubuda.
Nekunzwisisa zvinhu izvi zvina, zvichava nyore kwauri kuti ushandise AWS basics.
-
2. Gadzira Vashandisi veIAM uye Chengetedza Maakaundi
Kuchengetedzwa ndiko kwatinonyanya kukoshesa. Pinda muAWS Console semudzi, wobva wa:
1. Vhura sevhisi yeIAM.
2. Gadzira Mushandisi mutsva (semuenzaniso `admin-dev`) wobva watarisa Provide user access kuAWS Management Console.
3. Ipa mvumo: pakudzidzira unogona kushandisa AdministratorAccess (kunyange zvazvo mumapurojekiti chaiwo inofanira kunge yakaganhurirwa).
4. Shandisa MFA (Multi-Factor Authentication) kuti uwedzere kuchengetedzeka.
Kana wapedza, buda kubva pamudzi wopinda uchishandisa mushandisi weIAM achangobva kugadzirwa.
-
3. Sarudza Magadzirirwo Ekushandisa
Pachidzidzo ichi, tichavaka dhizaini iri nyore:
– EC2: kushandisa mawebhusaiti (semuenzaniso Node.js/Express, Python Flask, kana PHP).
- Sarudzo yeRDS: dhatabhesi reMySQL/PostgreSQL rinochengetwa zvakanaka, kuitira kuti data richengetwe zvakanaka.
– S3 (sarudzo): inochengetedza mafaira asingachinjiki akadai semifananidzo, magwaro, kana mabackup.
– Nzira 53 (sarudzo): gadzirisa madhomini.
– CloudWatch: kuongorora kwakakosha.
Kana uchangotanga, tarisa paEC2 kuti utange watanga kushandisa mapurogiramu ako.
-
4. Gadzira Sevha yeEC2
a) Gadzira Muenzaniso
1. Pinda musevhisi yeEC2.
2. Dzvanya Launch Instance.
3. Sarudza OS, semuenzaniso Ubuntu Server 22.04 LTS.
4. Sarudza rudzi rwemuenzaniso: kuti uwane Free Tier shandisa `t2.micro` kana `t3.micro` (zvichienderana nekuwanikwa).
5. Gadzira kana kusarudza Key Pair (semuenzaniso, `aws-key.pem`). Chengetedza faira re `.pem` sezvo richizoshandiswa paSSH.
b) Kugadziriswa kweNetwork neFirewall
- Ita shuwa kuti muenzaniso uri muVPC yakajairika (yekudzidzira chete).
- Boka rekuchengetedza rakaiswa:
– Port 22 (SSH) kubva kuIP yako chete (semuenzaniso `My IP`)
– Port 80 (HTTP) ye `0.0.0.0/0` (yeruzhinji)
– Port 443 (HTTPS) kubva pa`0.0.0.0/0` kana ukashandisa SSL gare gare
Cherechedza: Kuvhura SSH kune veruzhinji kune njodzi. Gara uchidzora ma IP address.
Dzvanya Launch uye mirira kuti muenzaniso utange.
-
5. Pinda kuServer kuburikidza neSSH
PaWindows, unogona kushandisa WSL kana PuTTY. PamacOS/Linux, unogona kuzviita zvakananga kubva paterminal.
1. Chinja kiyi yemvumo:
"`bash
chmod 400 aws-key.pem
``
2. SSH kuseva (shandisa Public IPv4 kubva kuEC2):
"`bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
``
Kana ukabudirira, uri paAWS Ubuntu server.
-
6. Isa Web Server uye Application Runtime
Heino muenzaniso weNode.js application, sezvo ichishandiswa zvakanyanya pawebhu yemazuva ano.
a) Gadziridza uye isa zvinoenderana
"`bash
sudo apt kugadzirisa && sudo apt kusimudzira -y
sudo apt install -y curl git
``
b) Isa Node.js (vhezheni yeLTS)
"`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
node -v
npm-v
``
-
7. Gadzira Chikumbiro Chiri Nyore
Gadzira folda yepurojekiti:
"`bash
mkdir myapp && cd myapp
npm init -y
npm install express
``
Gadzira faira re `index.js`:
"`js"
const express = inoda ("express");
const app = express();
app.get(“/”, (zvinoda, zvinodikanwa) => {
res.send(“Mhoro! Chikumbiro chako chiri kushanda paAWS EC2.”);
});
app.listen(3000, () => console.log(“Seva iri kushanda pachiteshi 3000”));
``
Mhanya application:
"`bash
node index.js
``
Edza kushandisa browser:
– `http://PUBLIC_IP:3000`
Zvisinei, port 3000 haisi kuvhurwa muSecurity Group. Unogona:
1) chiteshi chakavhurika 3000 muSecurity Group, kana
2) shandisa reverse proxy (inokurudzirwa zvakanyanya) kuitira kuti application irambe iri painternal port asi ikwanise kuwanikwa kuburikidza neport 80/443.
-
8. Kushandisa Nginx seReverse Proxy (Access via Port 80)
Isa Nginx:
"`bash
sudo apt install -y nginx
sudo systemctl inogonesa nginx
sudo systemctl kutanga nginx
``
Gadzirisa Nginx configuration:
"`bash
sudo nano /etc/nginx/sites-available/myapp
``
Zvemukati zvekugadzirisa:
"`nginx
sevha {
teerera 80;
server_zita _;
nzvimbo / {
proxy_pass http://127.0.0.1:3000;
mumiriri_http_vhezheni 1.1;
proxy_set_header Simudzira $http_upgrade;
proxy_set_header Kubatanidza 'kusimudzira';
proxy_set_header Host $ host;
proxy_cache_bypass $http_upgrade;
}
}
``
Gonesa kugadzirisa:
"`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl rodhazve nginx
``
Zvino pinda:
– `http://PUBLIC_IP/`
Chishandiso ichi chinoshanda pachiteshi 3000 asi veruzhinji vanochiwana kuburikidza nechiteshi 80.
-
9. Kumhanya Mapurogiramu Nguva Dzose nePM2
Kuti udzivise kuti application isarove kana SSH yadzimwa, shandisa PM2:
"`bash
sudo npm install -g pm2
pm2 tanga index.js –zita rangu reapp
pm2 chengetedza
kutanga kwe pm2
``
Murairo wekuti `pm2 startup` uchapa mimwe mirairo. Mhanya murairo unoratidzwa kuti application ishande yega kana server yatangazve.
-
10. (Sarudzo) Kuwedzera Database neRDS
Kana application yako ichida database, RDS inoita kuti zvive nyore nekuti AWS inotarisira backups, patching, uye scaling.
Matanho mapfupi:
1. Vhura sevhisi yeRDS → Gadzira dhatabhesi.
2. Sarudza MySQL kana PostgreSQL (Mitemo yeFree Tier inowanikwa pane mamwe magadzirirwo).
3. Isa zita rekushandisa/pasiwedhi.
4. Iva nechokwadi chekuti RDS instance iri muVPC imwecheteyo neEC2.
5. Ita kuti RDS Security Group igamuchire kubatana kubva kuEC2 Security Group chete (kwete kubva kune veruzhinji).
Kana dhatabhesi yatanga kushanda, tora RDS endpoint woibatanidza nayo kubva kuapplication yako uchishandisa dhatabhesi dhiraivha.
-
11. (Sarudzo) Shandisa HTTPS neSSL Certificate
Pakugadzira, HTTPS inosungirwa. Nzira yakajairika:
- Shandisa domain (semuenzaniso kubva kuRoute 53 kana mumwe munyori wemabhuku).
- Isa SSL kuburikidza neLet's Encrypt (Certbot) paEC2.
Muchidimbu:
"`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
``
Tevedzera muroyi kuti usarudze domain uye ugone kugonesa HTTPS kuti itungamirezve.
-
12. Kutarisa uye Mari
AWS inopa CloudWatch kuti ione zviyero zvakaita seCPU, network, uye mamwe ma log. Uchadawo kutarisa mitengo yako kuti usapotsa.
Mazano akakosha:
- Batidza Alarm yeKubhadhara muCloudWatch (semuenzaniso alarm kana muripo uchidarika $5).
- Dzima chinhu chacho kana chisiri kushandiswa.
- Bvisa zviwanikwa zvisina kushandiswa (load balancers, EBS, elastic IPs, snapshots) sezvo zvichiri kukonzera mari.
-
Penutup
Makorokoto! Madzidza zvinhu zvekutanga pakugadzira application paAWS muchishandisa EC2, kushandisa web application , kugadzira Nginx reverse proxy, uye kuita kuti igare yakabatidzwa nePM2. Mawanawo ruzivo rwemamwe masevhisi akaita seRDS yemadatabase, S3 yekuchengetedza, uye HTTPS certificates yekuchengetedza.
Kana uchida kukwira nhanho, matanho anotevera anowanzo kuve:
- Kuiswa otomatiki neCI/CD (GitHub Actions + SSH, kana AWS CodeDeploy),
- Kushandisa midziyo ine Docker uye ma orchestrations akaita seECS kana EKS,
- Kushandisa serverless architecture neLambda + API Gateway.
Kana muchida, ndapota taurai rudzi rweapplication yamuri kugadzira (Node.js, Laravel, Django, React, nezvimwewo) nechinangwa chayo (demo, kugadzira, hombe). Ndinogona kugadzirisa tutorial nematanho chaiwo.