Návod na vytváranie aplikácií v službách Amazon Web Services (AWS)

Výukový program o vytváraní aplikácií v službách Amazon Web Services (AWS)

Amazon Web Services (AWS) je jednou z najpopulárnejších cloudových platforiem na svete. S AWS môžete vytvárať a spúšťať aplikácie bez nutnosti nákupu fyzických serverov, nastavovania serverového priestoru alebo údržby vlastnej infraštruktúry. Tento článok vás prevedie vytvorením jednoduchej aplikácie na AWS pomocou bežného prístupu: nasadenie webovej aplikácie pomocou výpočtových služieb (EC2), voliteľne spravovanej databázy (RDS) a v prípade potreby úložiska a domény. Hoci je nasledujúci príklad všeobecný, môžete ho použiť na mnoho typov aplikácií.

-

1. Počiatočná príprava: Účty a základné pojmy

Predtým, ako začnete, sa uistite, že máte účet AWS. Mnoho služieb AWS ponúka bezplatnú úroveň (bezplatné v rámci určitých limitov), ​​ktorá je ideálna na precvičovanie.

Niektoré dôležité koncepty, ktorým musíte porozumieť:

– Región: Umiestnenie dátového centra AWS (príklad: Singapur/ap-southeast-1). Vyberte najbližší región pre nízku latenciu.
– IAM (Správa identít a prístupov): systém správy prístupov. Osvedčený postup: nepoužívajte root účet na každodennú prácu.
– VPC (virtuálny súkromný cloud): virtuálna sieť, v ktorej bežia vaše služby.
– Bezpečnostná skupina: „firewall“ na reguláciu prichádzajúceho/odchádzajúceho prístupu zo servera.

Pochopením týchto štyroch vecí bude pre vás oveľa jednoduchšie zorientovať sa v základoch AWS.

-

2. Vytvorte používateľov IAM a zabezpečené účty

Bezpečnosť je vždy našou prioritou číslo jeden. Prihláste sa do konzoly AWS ako root a potom:

1. Otvorte službu IAM.
2. Vytvorte nového používateľa (napr. `admin-dev`) a začiarknite políčko Poskytnúť používateľovi prístup ku konzole AWS Management Console.
3. Udeľte oprávnenie: na precvičenie môžete použiť AdministratorAccess (hoci v reálnych projektoch by malo byť obmedzenejšie).
4. Povoľte MFA (Multi-Factor Authentication) pre zvýšenie bezpečnosti.

Po dokončení sa odhláste z root účtu a prihláste sa pomocou novovytvoreného používateľa IAM.

-

3. Určenie architektúry aplikácie

V tomto tutoriáli si vytvoríme jednoduchú architektúru:

– EC2: spúšťanie webových aplikácií (napr. Node.js/Express, Python Flask alebo PHP).
– Voliteľné RDS: spravovaná databáza MySQL/PostgreSQL, aby boli dáta uložené prehľadne.
– S3 (voliteľné): ukladá statické súbory, ako sú obrázky, dokumenty alebo zálohy.
– Trasa 53 (voliteľné): správa domén.
– CloudWatch: základné monitorovanie.

Ak práve začínate, zamerajte sa najprv na spúšťanie svojich aplikácií na EC2.

-

4. Vytvorte server EC2

a) Vytvorenie inštancie
1. Prihláste sa do služby EC2.
2. Kliknite na Spustiť inštanciu.
3. Vyberte operačný systém, napríklad Ubuntu Server 22.04 LTS.
4. Vyberte typ inštancie: pre bezplatnú úroveň použite `t2.micro` alebo `t3.micro` (v závislosti od dostupnosti).
5. Vytvorte alebo vyberte pár kľúčov (napr. `aws-key.pem`). Súbor `.pem` uschovajte v bezpečí, pretože sa bude používať pre SSH.

b) Konfigurácia siete a brány firewall
– Uistite sa, že inštancia je v predvolenom VPC (len pre cvik).
– Nastaviť bezpečnostnú skupinu:
– Port 22 (SSH) iba z vašej IP adresy (napr. `Moja IP adresa`)
– Port 80 (HTTP) s adresou `0.0.0.0/0` (verejný)
– Port 443 (HTTPS) z `0.0.0.0/0`, ak neskôr použijete SSL

Poznámka: Verejné otvorenie SSH je riskantné. Vždy obmedzte IP adresy.

Kliknite na Spustiť a počkajte, kým sa inštancia spustí.

-

5. Prihláste sa na server cez SSH

Vo Windowse môžete použiť WSL alebo PuTTY. V macOS/Linuxe to môžete urobiť priamo z terminálu.

1. Zmena kľúča oprávnení:
„bash“
chmod 400 aws-key.pem
"`
2. SSH k serveru (použite verejný IPv4 z EC2):
„bash“
ssh -i aws-key.pem ubuntu@VEREJNÁ_IP
"`

Ak bude úspešný, ste na serveri AWS Ubuntu.

-

6. Inštalácia webového servera a runtime aplikácií

Tu je príklad aplikácie Node.js, keďže sa bežne používa pre moderný web.

a) Aktualizácia a inštalácia závislostí
„bash“
sudo apt aktualizácia && sudo apt aktualizácia -y
sudo apt install -y curl git
"`

b) Nainštalujte Node.js (LTS verzia)
„bash“
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
uzol -v
npm -v
"`

-

7. Vytvorte jednoduchú aplikáciu

Vytvorte priečinok projektu:

„bash“
mkdir mojaaplikácia && cd mojaaplikácia
npm init -y
npm install express
"`

Vytvorte súbor `index.js`:

„js“
const expres = require(„express“);
const app = express();

app.get(“/”, (požiadavka, res) => {
res.send(„Dobrý deň! Vaša aplikácia beží na AWS EC2.“);
});

app.listen(3000, () => console.log(„Server beží na porte 3000“));
"`

Spustite aplikáciu:

„bash“
node index.js
"`

Skúste prístup z prehliadača:
– `http://PUBLIC_IP:3000`

Port 3000 však momentálne nie je v bezpečnostnej skupine otvorený. Môžete:
1) otvorte port 3000 v bezpečnostnej skupine alebo
2) použite reverzný proxy server (odporúča sa viac), aby aplikácia zostala na internom porte, ale aby k nej bolo možné pristupovať cez port 80/443.

-

8. Použitie Nginxu ako reverzného proxy servera (prístup cez port 80)

Nainštalujte Nginx:
„bash“
sudo apt install -y nginx
sudo systemctl umožňujú nginx
sudo systemctl spustiť nginx
"`

Nastavenie konfigurácie Nginx:
„bash“
sudo nano /etc/nginx/sites-available/myapp
"`

Obsah konfigurácie:
„nginx“
server {
počúvajte 80;
názov servera _;

Poloha / {
proxy_pass http://127.0.0.1:3000;
proxy_http_verzia 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Pripojenie 'aktualizácia';
proxy_set_header Hosť $ host;
proxy_cache_bypass $http_upgrade;
}
}
"`

Povoliť konfiguráciu:
„bash“
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx-t
sudo systemctl reload nginx
"`

Teraz prístup:
– `http://VEREJNÁ_IP/`

Aplikácia beží na porte 3000, ale verejnosť k nej pristupuje cez port 80.

-

9. Trvalé spúšťanie aplikácií pomocou PM2

Ak chcete zabrániť pádu aplikácie pri odpojení SSH, použite PM2:

„bash“
sudo npm install -g pm2
pm2 start index.js –názov mojej aplikácie
uložiť pm2
spustenie pm2
"`

Príkaz `pm2 startup` poskytne ďalšie pokyny. Spustením zobrazeného príkazu sa aplikácia automaticky spustí po reštarte servera.

-

10. (Voliteľné) Pridanie databázy pomocou RDS

Ak vaša aplikácia vyžaduje databázu, RDS to uľahčí, pretože AWS spravuje zálohy, opravy a škálovanie.

Krátke kroky:
1. Otvorte službu RDS → Vytvoriť databázu.
2. Vyberte MySQL alebo PostgreSQL (pravidlá pre bezplatnú úroveň sú k dispozícii v určitých konfiguráciách).
3. Nastavte používateľské meno/heslo.
4. Uistite sa, že inštancia RDS je v rovnakom VPC ako EC2.
5. Nastavte bezpečnostnú skupinu RDS tak, aby akceptovala iba pripojenia zo bezpečnostnej skupiny EC2 (nie z verejných zdrojov).

Keď je databáza spustená, získajte koncový bod RDS a pripojte sa k nemu z aplikácie pomocou ovládača databázy.

-

11. (Voliteľné) Povoľte HTTPS pomocou SSL certifikátu

Pre produkčné prostredie je HTTPS povinný. Typická metóda:
– Použite doménu (napr. od spoločnosti Route 53 alebo iného registrátora).
– Nainštalujte SSL cez Let's Encrypt (Certbot) na EC2.

Stručne povedané:
„bash“
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
"`

Postupujte podľa pokynov sprievodcu a vyberte doménu a povoľte presmerovanie HTTPS.

-

12. Monitorovanie a náklady

AWS poskytuje službu CloudWatch na zobrazenie metrík, ako je CPU, sieť a špecifické protokoly. Mali by ste tiež sledovať svoje náklady, aby ste sa vyhli stratám.

Dôležité tipy:
– Povoliť alarm fakturácie v CloudWatch (napr. alarm, ak poplatky presiahnu 5 USD).
– Vypnite inštanciu, keď ju nepoužívate.
– Odstráňte nepoužívané zdroje (vyrovnávače záťaže, EBS, elastické IP adresy, snímky), pretože môžu stále predstavovať náklady.

-

Zatváranie

Gratulujeme! Naučili ste sa základy tvorby aplikácie na AWS pomocou EC2, spustenia webovej aplikácie , nastavenia reverznej proxy Nginx a jej neustáleho zapnutia pomocou PM2. Získali ste tiež prehľad o ďalších službách, ako sú RDS pre databázy, S3 pre úložisko a HTTPS certifikáty pre zabezpečenie.

Ak chcete prejsť na vyššiu úroveň, ďalšie kroky sú zvyčajne:
– Automatizované nasadenie s CI/CD (GitHub Actions + SSH alebo AWS CodeDeploy),
– Používanie kontajnerov s Dockerom a orchestráciami ako ECS alebo EKS,
– Používanie bezserverovej architektúry s Lambda + API Gateway.

Ak chcete, uveďte typ aplikácie, ktorú vytvárate (Node.js, Laravel, Django, React atď.) a jej zamýšľaný účel (demo, produkčná, rozsiahla). Tutoriál môžem prispôsobiť s konkrétnejšími krokmi.

Zanechajte komentár