Tutorja dwar il-ħolqien ta' applikazzjonijiet fuq Amazon Web Services (AWS)

Tutorja dwar il-Ħolqien ta' Applikazzjonijiet fuq Amazon Web Services (AWS)

Amazon Web Services (AWS) hija waħda mill-aktar pjattaformi popolari tal-cloud computing fid-dinja. Bl-AWS, tista' tibni u tħaddem applikazzjonijiet mingħajr ma tixtri servers fiżiċi, twaqqaf spazju għas-server, jew iżżomm l-infrastruttura tiegħek stess. Dan l-artiklu ser jiggwidak fil-ħolqien ta' applikazzjoni sempliċi fuq l-AWS bl-użu ta' approċċ komuni: l-iskjerament ta' applikazzjoni tal-web bl-użu ta' servizzi tal-kompjuter (EC2), database ġestita (RDS) bħala għażla, u ħażna u dominju jekk meħtieġ. Filwaqt li l-eżempju li ġej huwa ġenerali, tista' tapplikah għal ħafna tipi ta' applikazzjonijiet.

-

1. Tħejjija Inizjali: Kontijiet u Kunċetti Bażiċi

Qabel ma tibda, kun żgur li għandek kont tal-AWS. Ħafna servizzi tal-AWS joffru Livell B'Xejn (bla ħlas sa ċerti limiti) li huwa perfett għall-prattika.

Xi kunċetti importanti li trid tifhem:

– Reġjun: Il-post taċ-ċentru tad-dejta tal-AWS (eżempju: Singapor/ap-southeast-1). Agħżel l-eqreb reġjun għal latency baxxa.
– IAM (Identity and Access Management): sistema ta' ġestjoni tal-aċċess. L-aħjar prattika: tużax il-kont tal-għerq għax-xogħol ta' kuljum.
– VPC (Virtual Private Cloud): netwerk virtwali fejn jaħdmu s-servizzi tiegħek.
– Grupp tas-Sigurtà: “firewall” biex jirregola l-aċċess li jkun dieħel/ħiereġ mis-server.

Billi tifhem dawn l-erba' affarijiet, ikun ħafna aktar faċli għalik li tinnaviga l-bażiċi tal-AWS.

-

2. Oħloq Utenti tal-IAM u Żgura l-Kontijiet

Is-sigurtà hija dejjem il-prijorità numru wieħed tagħna. Idħol fil-Konsola tal-AWS bħala root, imbagħad:

1. Iftaħ is-servizz IAM.
2. Oħloq Utent ġdid (eż. `admin-dev`) u agħżel l-għażla Ipprovdi aċċess lill-utent għall-AWS Management Console.
3. Agħti permess: għall-prattika tista' tuża AdministratorAccess (għalkemm fi proġetti reali għandu jkun aktar limitat).
4. Ippermetti l-MFA (Awtentikazzjoni b'ħafna Fatturi) biex iżżid is-sigurtà.

Ladarba tkun lest, oħroġ mir-root u idħol billi tuża l-utent IAM li għadek kif ħloqt.

-

3. Iddetermina l-Arkitettura tal-Applikazzjoni

Għal dan it-tutorja, se nibnu arkitettura sempliċi:

– EC2: tħaddim ta' applikazzjonijiet tal-web (eż. Node.js/Express, Python Flask, jew PHP).
– RDS fakultattiva: database MySQL/PostgreSQL immaniġġjata, sabiex id-dejta tinħażen b'mod pulit.
– S3 (mhux obbligatorju): jaħżen fajls statiċi bħal immaġnijiet, dokumenti, jew backups.
– Rotta 53 (mhux obbligatorja): immaniġġja d-dominji.
– CloudWatch: monitoraġġ bażiku.

READ  Id-differenza bejn il-virtualizzazzjoni u l-kontejnerizzazzjoni

Jekk għadek kif bdejt, iffoka fuq l-EC2 biex tħaddem l-applikazzjonijiet tiegħek l-ewwel.

-

4. Oħloq Server EC2

a) Oħloq Istanza
1. Idħol fis-servizz EC2.
2. Ikklikkja Niedi l-Istanza.
3. Agħżel OS, pereżempju Ubuntu Server 22.04 LTS.
4. Agħżel it-tip ta' istanza: għal Free Tier uża `t2.micro` jew `t3.micro` (skont id-disponibbiltà).
5. Oħloq jew agħżel Par ta' Ċwievet (eż., `aws-key.pem`). Żomm il-fajl `.pem` sigur għax se jintuża għall-SSH.

b) Konfigurazzjoni tan-Netwerk u l-Firewall
– Kun żgur li l-istanza tinsab fil-VPC default (biss għall-prattika).
– Issettja l-Grupp tas-Sigurtà:
– Port 22 (SSH) biss mill-IP tiegħek (eż. `L-IP tiegħi`)
– Port 80 (HTTP) ta' `0.0.0.0/0` (pubbliku)
– Port 443 (HTTPS) minn `0.0.0.0/0` jekk aktar tard tuża SSL

Nota: Il-ftuħ tal-SSH għall-pubbliku huwa riskjuż. Dejjem irrestrinġi l-indirizzi IP.

Ikklikkja Tnedija u stenna li l-istanza taħdem.

-

5. Idħol fis-Server permezz ta' SSH

Fuq Windows, tista' tuża WSL jew PuTTY. Fuq macOS/Linux, tista' tagħmel dan direttament mit-terminal.

1. Ibdel iċ-ċavetta tal-permess:
"`bash
chmod 400 aws-key.pem
""
2. SSH mas-server (uża Public IPv4 minn EC2):
"`bash
ssh -i aws-key.pem ubuntu@IP_PUBLIKU
""

Jekk tirnexxi, int fuq is-server tal-AWS Ubuntu.

-

6. Installa s-Server tal-Web u r-Runtime tal-Applikazzjoni

Hawn eżempju għal applikazzjoni Node.js, peress li tintuża ħafna għall-web modern.

a) Aġġorna u installa d-dipendenzi
"`bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
""

b) Installa Node.js (verżjoni LTS)
"`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
node -v
npm -v
""

-

7. Oħloq Applikazzjoni Sempliċi

READ  Tutorja dwar il-ħolqien ta' VM f'VirtualBox u VMware

Oħloq fowlder tal-proġett:

"`bash
mkdir myapp && cd myapp
npm init -y
npm install express
""

Oħloq fajl `index.js`:

"`js
const express = require("express");
const app = express();

app.get("/", (req, res) => {
res.send("Bongu! L-applikazzjoni tiegħek qed taħdem fuq AWS EC2.");
});

app.listen(3000, () => console.log("Is-server qed jaħdem fuq il-port 3000"));
""

Mexxi l-applikazzjoni:

"`bash
node index.js
""

Ipprova aċċess minn browser:
– `http://PUBLIC_IP:3000`

Madankollu, il-port 3000 bħalissa mhux miftuħ fil-Grupp tas-Sigurtà. Tista':
1) iftaħ il-port 3000 fil-Grupp tas-Sigurtà, jew
2) uża reverse proxy (aktar rakkomandat) sabiex l-applikazzjoni tibqa' fuq il-port intern iżda tkun tista' tiġi aċċessata permezz tal-port 80/443.

-

8. L-Użu ta' Nginx bħala Reverse Proxy (Aċċess permezz tal-Port 80)

Installa Nginx:
"`bash
sudo apt install -y nginx
sudo systemctl jippermettu nginx
sudo systemctl start nginx
""

Issettja l-konfigurazzjoni ta' Nginx:
"`bash
sudo nano /etc/nginx/sites-available/myapp
""

Kontenut tal-konfigurazzjoni:
"`nginx
server {
isma '80;
isem_server _;

post / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Aġġorna $http_upgrade;
proxy_set_header Konnessjoni 'upgrade';
proxy_set_header Ospitanti $ ospitanti;
proxy_cache_bypass $http_upgrade;
}
}
""

Ippermetti l-konfigurazzjoni:
"`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
""

Issa aċċessa:
– `http://IP_PUBLIKU/`

L-applikazzjoni taħdem fuq il-port 3000 iżda l-pubbliku jaċċessaha permezz tal-port 80.

-

9. Tħaddim ta' Applikazzjonijiet b'mod Persistenti bil-PM2

Biex tevita li l-applikazzjoni tiġġarraf meta l-SSH ikun skonnettjat, uża PM2:

"`bash
sudo npm install -g pm2
pm2 start index.js –isem myapp
pm2 ħlief
istartjar pm2
""

Il-kmand `pm2 startup` se jipprovdi struzzjonijiet addizzjonali. Mexxi l-kmand muri biex l-applikazzjoni taħdem awtomatikament meta s-server jerġa' jibda.

-

10. (Mhux obbligatorju) Żieda ta' Database b'RDS

Jekk l-applikazzjoni tiegħek teħtieġ database, RDS tagħmilha faċli għax AWS timmaniġġja l-backups, il-patching, u l-iskalar.

Passi qosra:
1. Iftaħ is-servizz RDS → Oħloq database.
2. Agħżel MySQL jew PostgreSQL (ir-regoli tal-Free Tier huma disponibbli fuq ċerti konfigurazzjonijiet).
3. Issettja l-isem tal-utent/il-password.
4. Kun żgur li l-istanza RDS tinsab fl-istess VPC bħall-EC2.
5. Issettja l-Grupp tas-Sigurtà RDS biex jaċċetta biss konnessjonijiet mill-Grupp tas-Sigurtà EC2 (mhux mill-pubbliku).

READ  Kif tagħżel l-aħjar hosting għal websajt personali

Ladarba d-database tkun attiva, aqbad l-endpoint tal-RDS u qabbad miegħu mill-applikazzjoni tiegħek billi tuża d-drajver tad-database.

-

11. (Mhux obbligatorju) Ippermetti l-HTTPS b'Ċertifikat SSL

Għall-produzzjoni, l-HTTPS huwa obbligatorju. Metodu tipiku:
– Uża dominju (eż. minn Route 53 jew minn reġistratur ieħor).
– Installa SSL permezz ta' Let's Encrypt (Certbot) fuq EC2.

Fil-qosor:
"`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
""

Segwi l-wizard biex tagħżel dominju u tippermetti r-ridirezzjoni HTTPS.

-

12. Monitoraġġ u Spejjeż

AWS jipprovdi CloudWatch biex tara metriċi bħas-CPU, in-netwerk, u logs speċifiċi. Ikollok bżonn ukoll timmonitorja l-ispejjeż tiegħek biex tevita li titlef xi ħaġa.

Pariri importanti:
– Ippermetti l-Allarm tal-Kontijiet f'CloudWatch (eż. allarm jekk il-ħlasijiet jaqbżu l-$5).
– Itfi l-istanza meta ma tkunx qed tintuża.
– Neħħi r-riżorsi mhux użati (load balancers, EBS, IPs elastiċi, snapshots) għax xorta jistgħu jġarrbu spejjeż.

-

Għeluq

Prosit! Tgħallimt il-bażiċi tal-bini ta' applikazzjoni fuq AWS bl-użu tal-EC2, it-tħaddim ta' applikazzjoni tal-web, it-twaqqif ta' reverse proxy Nginx, u kif tagħmilha dejjem mixgħula bil-PM2. Ksibt ukoll ħarsa ġenerali lejn servizzi addizzjonali bħal RDS għal databases, S3 għall-ħażna, u ċertifikati HTTPS għas-sigurtà.

Jekk trid titla' livell 'il fuq, il-passi li jmiss ġeneralment ikunu:
– Implimentazzjoni awtomatizzata b'CI/CD (GitHub Actions + SSH, jew AWS CodeDeploy),
– L-użu ta' kontejners b'Docker u orkestrazzjonijiet bħal ECS jew EKS,
– L-użu ta' arkitettura mingħajr server b'Lambda + API Gateway.

Jekk tixtieq, jekk jogħġbok speċifika t-tip ta' applikazzjoni li qed tibni (Node.js, Laravel, Django, React, eċċ.) u l-iskop maħsub tagħha (demo, produzzjoni, fuq skala kbira). Nista' nippersonalizza t-tutorja b'passi aktar speċifiċi.

Ħalli kumment