Oktatóanyag alkalmazások létrehozásához az Amazon Web Services (AWS) rendszeren
Az Amazon Web Services (AWS) a világ egyik legnépszerűbb felhőalapú számítástechnikai platformja. Az AWS segítségével alkalmazásokat hozhat létre és futtathat fizikai szerverek vásárlása, szerverterület beállítása vagy saját infrastruktúra fenntartása nélkül. Ez a cikk végigvezeti Önt egy egyszerű alkalmazás létrehozásán az AWS-en egy elterjedt megközelítéssel: webes alkalmazás telepítése számítási szolgáltatások (EC2), opcióként felügyelt adatbázis (RDS), valamint szükség esetén tárhely és domain használatával. Bár a következő példa általános, sokféle alkalmazásra alkalmazható.
-
1. Előkészületek: Számítások és alapfogalmak
Mielőtt elkezdenéd, győződj meg róla, hogy van AWS fiókod. Számos AWS szolgáltatás kínál ingyenes csomagot (bizonyos korlátok között ingyenes), amely tökéletes a gyakorláshoz.
Néhány fontos fogalom, amit meg kell értened:
– Régió: Az AWS adatközpont helye (például: Singapore/ap-southeast-1). Az alacsony késleltetés érdekében válassza a legközelebbi régiót.
– IAM (Identity and Access Management): hozzáférés-kezelő rendszer. Ajánlott gyakorlat: ne használj root fiókot a napi munkához.
– VPC (Virtual Private Cloud): egy virtuális hálózat, ahol a szolgáltatásai futnak.
– Biztonsági csoport: „tűzfal” a szerverről bejövő/kimenő hozzáférések szabályozására.
Ha megérted ezt a négy dolgot, sokkal könnyebb lesz eligazodni az AWS alapjaiban.
-
2. IAM-felhasználók létrehozása és fiókok biztosítása
A biztonság mindig az elsődleges prioritásunk. Jelentkezzen be az AWS konzolba root felhasználóként, majd:
1. Nyissa meg az IAM szolgáltatást.
2. Hozzon létre egy új felhasználót (pl. `admin-dev`), és jelölje be a Felhasználói hozzáférés biztosítása az AWS Management Console-hoz lehetőséget.
3. Engedély megadása: gyakorlásképpen használhatod az AdministratorAccess hozzáférést (bár a valós projektekben ennek korlátozottabbnak kell lennie).
4. Engedélyezze az MFA-t (többtényezős hitelesítést) a biztonság növelése érdekében.
Ha kész, jelentkezz ki rootként, és jelentkezz be az újonnan létrehozott IAM felhasználóval.
-
3. Az alkalmazásarchitektúra meghatározása
Ebben az oktatóanyagban egy egyszerű architektúrát fogunk felépíteni:
– EC2: webes alkalmazások futtatása (pl. Node.js/Express, Python Flask vagy PHP).
– Opcionális RDS: felügyelt MySQL/PostgreSQL adatbázis, így az adatok rendezetten tárolódnak.
– S3 (opcionális): statikus fájlokat, például képeket, dokumentumokat vagy biztonsági mentéseket tárol.
– 53-as útvonal (opcionális): domainek kezelése.
– CloudWatch: alapvető monitorozás.
Ha most kezded, először az EC2-re koncentrálj az alkalmazásaid futtatásához.
-
4. Hozz létre egy EC2 szervert
a) Példány létrehozása
1. Jelentkezzen be az EC2 szolgáltatásba.
2. Kattintson a Példány indítása gombra.
3. Válasszon operációs rendszert, például Ubuntu Server 22.04 LTS.
4. Válassza ki a példány típusát: az ingyenes szinthez használja a `t2.micro` vagy a `t3.micro` fájlt (elérhetőségtől függően).
5. Hozz létre vagy válassz ki egy kulcspárt (pl. `aws-key.pem`). A `.pem` fájlt őrizd meg biztonságos helyen, mivel azt fogod használni SSH-hoz.
b) Hálózati és tűzfalkonfiguráció
– Győződjön meg róla, hogy a példány az alapértelmezett VPC-ben van (csak gyakorlásképpen).
– Biztonsági csoport beállítása:
– Csak a saját IP-címedről (pl. `Saját IP`) 22-es porton (SSH)
– 80-as port (HTTP) `0.0.0.0/0` (nyilvános)
– 443-as port (HTTPS) a `0.0.0.0/0`-ról, ha később SSL-t használunk
Megjegyzés: Az SSH nyilvános megnyitása kockázatos. Mindig korlátozza az IP-címeket.
Kattintson az Indítás gombra, és várja meg, amíg a példány fut.
-
5. Jelentkezzen be a szerverre SSH-n keresztül
Windows rendszeren használhatod a WSL-t vagy a PuTTY-t. macOS/Linux rendszeren ezt közvetlenül a terminálból teheted meg.
1. Engedélykulcs módosítása:
„Bash
chmod 400 aws-key.pem
""
2. SSH-n keresztül a szerverhez (használd az EC2 nyilvános IPv4-jét):
„Bash
ssh -i aws-key.pem ubuntu@NYILVÁNOS_IP
""
Ha sikeres, akkor az AWS Ubuntu szerveren vagy.
-
6. Telepítse a webkiszolgálót és az alkalmazás futtatókörnyezetét
Íme egy példa egy Node.js alkalmazásra, ahogyan azt széles körben használják a modern weben.
a) Függőségek frissítése és telepítése
„Bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
""
b) Telepítse a Node.js-t (LTS verzió)
„Bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
csomópont -v
npm -v
""
-
7. Hozz létre egy egyszerű alkalmazást
Hozz létre egy projektmappát:
„Bash
mkdir alkalmazásom && cd alkalmazásom
npm init -y
npm install express
""
Hozz létre egy `index.js` fájlt:
„js”
constant express = require(„express”);
const app = express();
app.get(“/”, (kérés, válasz) => {
res.send(“Helló! Az alkalmazásod AWS EC2-n fut.”);
});
app.listen(3000, () => console.log(“A 3000-es porton futó szerver”));
""
Futtassa az alkalmazást:
„Bash
csomópont index.js
""
Próbáld meg böngészőből elérni:
– `http://PUBLIC_IP:3000`
A 3000-es port azonban jelenleg nincs nyitva a biztonsági csoportban. A következőket teheti:
1) nyissa meg a 3000-es portot a biztonsági csoportban, vagy
2) használjon fordított proxyt (ez ajánlottabb), hogy az alkalmazás a belső porton maradjon, de a 80/443-as porton keresztül elérhető legyen.
-
8. Nginx használata fordított proxyként (hozzáférés a 80-as porton keresztül)
Az Nginx telepítése:
„Bash
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
""
Nginx konfiguráció beállítása:
„Bash
sudo nano /etc/nginx/sites-available/myapp
""
Konfigurációs tartalom:
„nginx”
szerver {
hallgatni 80;
szerver név _;
Hely / {
proxy_pass http://127.0.0.1:3000;
proxy_http_verzió 1.1;
proxy_set_header Frissítés $http_upgrade;
proxy_set_header Kapcsolat 'frissítés';
proxy_set_header Host $ host;
proxy_cache_bypass $http_upgrade;
}
}
""
Konfiguráció engedélyezése:
„Bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl újratöltés nginx
""
Most hozzáférés:
– `http://NYILVÁNOS_IP/`
Az alkalmazás a 3000-es porton fut, de a nyilvánosság a 80-as porton keresztül férhet hozzá.
-
9. Alkalmazások folyamatos futtatása PM2-vel
Az alkalmazás SSH-kapcsolat leválasztásakor történő összeomlásának megakadályozásához használja a PM2 parancsot:
„Bash
sudo npm install -g pm2
pm2 start index.js –név az alkalmazásom
pm2 mentés
pm2 indítás
""
A `pm2 startup` parancs további utasításokat biztosít. Futtassa a megjelenített parancsot, hogy az alkalmazás automatikusan elinduljon a szerver újraindításakor.
-
10. (Opcionális) Adatbázis hozzáadása RDS-sel
Ha az alkalmazásod adatbázist igényel, az RDS megkönnyíti a dolgodat, mivel az AWS kezeli a biztonsági mentéseket, a javításokat és a skálázást.
Rövid lépések:
1. Nyissa meg az RDS szolgáltatást → Adatbázis létrehozása.
2. Válassza a MySQL vagy a PostgreSQL lehetőséget (bizonyos konfigurációk esetén ingyenes szintű szabályok érhetők el).
3. Felhasználónév/jelszó beállítása.
4. Győződjön meg arról, hogy az RDS példány ugyanabban a VPC-ben van, mint az EC2.
5. Állítsa be az RDS biztonsági csoportot úgy, hogy csak az EC2 biztonsági csoporttól fogadjon kapcsolatokat (a nyilvánosaktól ne).
Miután az adatbázis éles, csatlakozzon az RDS-végponthoz az alkalmazásból az adatbázis-illesztőprogram használatával.
-
11. (Opcionális) HTTPS engedélyezése SSL tanúsítvánnyal
Éles környezetben a HTTPS kötelező. Tipikus módszer:
– Használjon domaint (pl. az 53-as úttól vagy egy másik regisztrátortól).
– Telepítsd az SSL-t a Let's Encrypt (Certbot) segítségével az EC2-n.
Röviden:
„Bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
""
Kövesse a varázsló utasításait egy domain kiválasztásához és a HTTPS átirányítás engedélyezéséhez.
-
12. Monitoring és költségek
Az AWS a CloudWatch segítségével olyan mérőszámokat tekinthet meg, mint a CPU, a hálózat és az egyes naplók. A költségeket is érdemes figyelemmel kísérni, hogy elkerülje a lemaradást.
Fontos tippek:
– Számlázási riasztás engedélyezése a CloudWatch-ban (pl. riasztás, ha a díjak meghaladják az 5 dollárt).
– Kapcsolja ki a példányt, ha nem használja.
– Távolítsa el a nem használt erőforrásokat (terheléselosztók, EBS, rugalmas IP-címek, pillanatképek), mivel azok továbbra is költségeket okozhatnak.
-
Záró
Gratulálunk! Megtanultad az AWS-en EC2 használatával történő alkalmazásfejlesztés, webes alkalmazás futtatásának, Nginx fordított proxy beállításának és PM2 segítségével történő always-on bekapcsolásának alapjait. Áttekintést kaptál a további szolgáltatásokról is, mint például az RDS az adatbázisokhoz, az S3 a tároláshoz és a HTTPS tanúsítványok a biztonság érdekében.
Ha szintet szeretnél lépni, a következő lépések általában a következők:
– Automatizált telepítés CI/CD segítségével (GitHub Actions + SSH, vagy AWS CodeDeploy),
– Konténerek használata Dockerrel és olyan vezénylésekkel, mint az ECS vagy az EKS,
– Kiszolgáló nélküli architektúra használata Lambda + API Gateway segítségével.
Ha szeretnéd, kérlek, add meg az általad fejlesztett alkalmazás típusát (Node.js, Laravel, Django, React stb.) és a tervezett célját (demó, éles, nagyméretű). A bemutatót személyre szabhatom konkrétabb lépésekkel.