Tutoriaal oor die skep van toepassings op Amazon Web Services (AWS)

Tutoriaal oor die skep van toepassings op Amazon Web Services (AWS)

Amazon Web Services (AWS) is een van die wêreld se gewildste wolkrekenaarplatforms. Met AWS kan jy toepassings bou en laat loop sonder om fisiese bedieners te koop, bedienerruimte op te stel of jou eie infrastruktuur te onderhou. Hierdie artikel sal jou deur die skep van 'n eenvoudige toepassing op AWS lei deur 'n algemene benadering te gebruik: die ontplooiing van 'n webtoepassing met behulp van rekenaardienste (EC2), 'n bestuurde databasis (RDS) as 'n opsie, en berging en 'n domein indien nodig. Terwyl die volgende voorbeeld algemeen is, kan jy dit op baie soorte toepassings toepas.

-

1. Aanvanklike voorbereiding: Rekeninge en basiese konsepte

Voordat jy begin, maak seker dat jy 'n AWS-rekening het. Baie AWS-dienste bied 'n gratis vlak (gratis binne sekere perke) wat perfek is vir oefening.

'n Paar belangrike konsepte wat jy moet verstaan:

– Streek: AWS-datasentrumligging (voorbeeld: Singapoer/ap-suidoos-1). Kies die naaste streek vir lae latensie.
– IAM (Identiteits- en Toegangsbestuur): 'n toegangsbestuurstelsel. Beste praktyk: moenie die root-rekening vir daaglikse werk gebruik nie.
– VPC (Virtuele Privaatwolk): 'n virtuele netwerk waar jou dienste loop.
– Sekuriteitsgroep: “firewall” om inkomende/uitgaande toegang vanaf die bediener te reguleer.

Deur hierdie vier dinge te verstaan, sal dit vir jou baie makliker wees om die AWS-basiese beginsels te navigeer.

-

2. Skep IAM-gebruikers en beveilig rekeninge

Sekuriteit is altyd ons nommer een prioriteit. Meld aan by die AWS-konsole as root, en doen dan:

1. Maak die IAM-diens oop.
2. Skep 'n nuwe gebruiker (bv. `admin-dev`) en merk Verskaf gebruikertoegang tot die AWS-bestuurskonsole.
3. Verleen toestemming: vir oefening kan jy AdministratorAccess gebruik (alhoewel dit in werklike projekte meer beperk behoort te wees).
4. Aktiveer MFA (Multi-Faktor Authentication) om sekuriteit te verhoog.

Sodra dit klaar is, meld af vanaf root en meld aan met die nuutgeskepte IAM-gebruiker.

-

3. Bepaal die Toepassingsargitektuur

Vir hierdie tutoriaal sal ons 'n eenvoudige argitektuur bou:

– EC2: die uitvoer van webtoepassings (bv. Node.js/Express, Python Flask of PHP).
– Opsionele RDS: bestuurde MySQL/PostgreSQL-databasis, sodat data netjies gestoor word.
– S3 (opsioneel): stoor statiese lêers soos beelde, dokumente of rugsteun.
– Roete 53 (opsioneel): bestuur domeine.
– CloudWatch: basiese monitering.

As jy nou net begin, fokus eers op EC2 om jou toepassings te laat loop.

-

4. Skep 'n EC2-bediener

a) Skep 'n Instansie
1. Meld aan by die EC2-diens.
2. Klik op Begin Instansie.
3. Kies bedryfstelsel, byvoorbeeld Ubuntu Server 22.04 LTS.
4. Kies die instansietipe: vir die Vrye Vlak gebruik `t2.micro` of `t3.micro` (onderhewig aan beskikbaarheid).
5. Skep of kies 'n sleutelpaar (bv. `aws-key.pem`). Hou die `.pem`-lêer veilig, aangesien dit vir SSH gebruik sal word.

b) Netwerk- en Firewall-konfigurasie
– Maak seker dat die instansie in die standaard VPC is (net vir oefening).
– Stel Sekuriteitsgroep in:
– Poort 22 (SSH) slegs vanaf jou IP (bv. `My IP`)
– Poort 80 (HTTP) van `0.0.0.0/0` (publiek)
– Poort 443 (HTTPS) vanaf `0.0.0.0/0` indien later SSL gebruik word

Let wel: Dit is riskant om SSH vir die publiek oop te maak. Beperk altyd IP-adresse.

Klik op Begin en wag totdat die instansie loop.

-

5. Meld aan by die bediener via SSH

Op Windows kan jy WSL of PuTTY gebruik. Op macOS/Linux kan jy dit direk vanaf die terminaal doen.

1. Verander toestemmingsleutel:
"` bash
chmod 400 aws-sleutel.pem
''
2. SSH na die bediener (gebruik Publieke IPv4 van EC2):
"` bash
ssh -i aws-sleutel.pem ubuntu@PUBLIC_IP
''

Indien suksesvol, is jy op die AWS Ubuntu-bediener.

-

6. Installeer webbediener en toepassingslooptyd

Hier is 'n voorbeeld vir 'n Node.js-toepassing, aangesien dit wyd gebruik word vir die moderne web.

a) Opdateer en installeer afhanklikhede
"` bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
''

b) Installeer Node.js (LTS-weergawe)
"` bash
krul -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
Sudo apt installeer -y nodejs
node -v
npm-v
''

-

7. Skep 'n eenvoudige toepassing

Skep 'n projekmap:

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

Skep 'n `index.js`-lêer:

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

app.get(“/”, (req, res) => {
res.send(“Hallo! Jou toepassing loop op AWS EC2.”);
});

app.listen(3000, () => console.log(“Bediener loop op poort 3000”));
''

Begin die toepassing:

"` bash
node index.js
''

Probeer om toegang vanaf 'n blaaier te verkry:
– `http://PUBLIC_IP:3000`

Poort 3000 is egter tans nie oop in die Sekuriteitsgroep nie. Jy kan:
1) maak poort 3000 oop in die Sekuriteitsgroep, of
2) gebruik 'n omgekeerde instaanbediener (meer aanbeveel) sodat die toepassing op 'n interne poort bly, maar via poort 80/443 toeganklik is.

-

8. Gebruik van Nginx as 'n omgekeerde proxy (toegang via poort 80)

Installeer Nginx:
"` bash
sudo apt installeer -y nginx
sudo systemctl aktiveer nginx
sudo systemctl begin nginx
''

Stel Nginx-konfigurasie op:
"` bash
sudo nano /etc/nginx/sites-available/myapp
''

Konfigurasie-inhoud:
"`nginx
bediener {
luister 80;
bedienernaam _;

ligging / {
proxy_pass http://127.0.0.1:3000;
proxy_http_weergawe 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Verbinding 'opgradering';
proxy_set_header Gasheer $host;
proxy_cache_bypass $http_upgrade;
}
}
''

Aktiveer konfigurasie:
"` bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl herlaai nginx
''

Nou toegang:
– `http://PUBLIC_IP/`

Die toepassing loop op poort 3000, maar die publiek kry toegang daartoe via poort 80.

-

9. Toepassings aanhoudend met PM2 laat loop

Om te verhoed dat die toepassing vasval wanneer SSH ontkoppel word, gebruik PM2:

"` bash
sudo npm installeer -g pm2
pm2 begin index.js –naam myapp
pm2 spaar
pm2 begin
''

Die `pm2 startup`-opdrag sal bykomende instruksies verskaf. Voer die vertoonde opdrag uit om die toepassing outomaties te laat loop wanneer die bediener herbegin.

-

10. (Opsioneel) Voeg 'n databasis met RDS by

As jou toepassing 'n databasis benodig, maak RDS dit maklik, want AWS bestuur rugsteun, opdaterings en skalering.

Kort stappe:
1. Maak RDS-diens oop → Skep databasis.
2. Kies MySQL of PostgreSQL (Free Tier-reëls is beskikbaar op sekere konfigurasies).
3. Stel gebruikersnaam/wagwoord.
4. Maak seker dat die RDS-instansie in dieselfde VPC as die EC2 is.
5. Stel die RDS-sekuriteitsgroep om slegs verbindings van die EC2-sekuriteitsgroep te aanvaar (nie van die publiek nie).

Sodra die databasis lewendig is, gryp die RDS-eindpunt en koppel daarmee vanaf jou toepassing deur die databasisdrywer te gebruik.

-

11. (Opsioneel) Aktiveer HTTPS met SSL-sertifikaat

Vir produksie is HTTPS verpligtend. Tipiese metode:
– Gebruik 'n domein (bv. van Route 53 of 'n ander registrateur).
– Installeer SSL via Let's Encrypt (Certbot) op EC2.

Kortliks:
"` bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
''

Volg die assistent om 'n domein te kies en HTTPS-herleiding te aktiveer.

-

12. Monitering en Koste

AWS bied CloudWatch om statistieke soos SVE, netwerk en spesifieke logboeke te bekyk. Jy sal ook jou kostes wil monitor om te verhoed dat jy iets misloop.

Belangrike wenke:
– Aktiveer Faktuuralarm in CloudWatch (bv. alarm as koste $5 oorskry).
– Skakel die instansie af wanneer dit nie gebruik word nie.
– Verwyder ongebruikte hulpbronne (lasbalanseerders, EBS, elastiese IP's, kiekies) aangesien dit steeds kostes kan aangaan.

-

Sluiting

Baie geluk! Jy het die basiese beginsels geleer van die bou van 'n toepassing op AWS met behulp van EC2, die bestuur van 'n webtoepassing , die opstel van 'n Nginx-omgekeerde instaanbediener, en die altyd-aan-maak daarvan met PM2. Jy het ook 'n oorsig gekry van bykomende dienste soos RDS vir databasisse, S3 vir berging en HTTPS-sertifikate vir sekuriteit.

As jy 'n vlak wil opskuif, is die volgende stappe gewoonlik:
– Outomatiese ontplooiing met CI/CD (GitHub Actions + SSH, of AWS CodeDeploy),
– Deur houers met Docker en orkestrasies soos ECS of EKS te gebruik,
– Gebruik bedienerlose argitektuur met Lambda + API Gateway.

Indien u wil, spesifiseer asseblief die tipe toepassing wat u bou (Node.js, Laravel, Django, React, ens.) en die beoogde doel daarvan (demonstrasie, produksie, grootskaalse). Ek kan die tutoriaal met meer spesifieke stappe aanpas.

Lewer kommentaar