Tutorial despre crearea de aplicații pe Amazon Web Services (AWS)

Tutorial despre crearea de aplicații pe Amazon Web Services (AWS)

Amazon Web Services (AWS) este una dintre cele mai populare platforme de cloud computing din lume. Cu AWS, puteți construi și rula aplicații fără a achiziționa servere fizice, a configura spațiu pe server sau a vă întreține propria infrastructură. Acest articol vă va ghida prin crearea unei aplicații simple pe AWS folosind o abordare comună: implementarea unei aplicații web folosind servicii de calcul (EC2), o bază de date gestionată (RDS) ca opțiune și spațiu de stocare și un domeniu, dacă este necesar. Deși următorul exemplu este general, îl puteți aplica la multe tipuri de aplicații.

-

1. Pregătire inițială: Conturi și concepte de bază

Înainte de a începe, asigură-te că ai un cont AWS. Multe servicii AWS oferă un nivel gratuit (gratuit în anumite limite), perfect pentru practică.

Câteva concepte importante pe care trebuie să le înțelegeți:

– Regiune: Locația centrului de date AWS (exemplu: Singapore/ap-southeast-1). Alegeți cea mai apropiată regiune pentru o latență redusă.
– IAM (Identity and Access Management): un sistem de gestionare a accesului. Cea mai bună practică: nu utilizați contul de root pentru munca zilnică.
– VPC (Virtual Private Cloud): o rețea virtuală unde rulează serviciile tale.
– Grup de securitate: „firewall” pentru a regla accesul de intrare/ieșire de pe server.

Înțelegând aceste patru lucruri, îți va fi mult mai ușor să navighezi prin elementele de bază ale AWS.

-

2. Creați utilizatori IAM și securizați conturi

Securitatea este întotdeauna prioritatea noastră numărul unu. Conectați-vă la consola AWS ca root, apoi:

1. Deschideți serviciul IAM.
2. Creați un utilizator nou (de exemplu, `admin-dev`) și bifați opțiunea Furnizați acces utilizatorului la consola de administrare AWS.
3. Acordați permisiunea: pentru practică puteți utiliza AdministratorAccess (deși în proiectele reale ar trebui să fie mai limitat).
4. Activați MFA (autentificarea multi-factor) pentru a crește securitatea.

După ce ați terminat, deconectați-vă de pe contul root și conectați-vă folosind utilizatorul IAM nou creat.

-

3. Determinați arhitectura aplicației

Pentru acest tutorial, vom construi o arhitectură simplă:

– EC2: rularea aplicațiilor web (de exemplu, Node.js/Express, Python Flask sau PHP).
– RDS opțional: bază de date MySQL/PostgreSQL gestionată, astfel încât datele să fie stocate în mod ordonat.
– S3 (opțional): stochează fișiere statice precum imagini, documente sau copii de rezervă.
– Ruta 53 (opțional): gestionarea domeniilor.
– CloudWatch: monitorizare de bază.

CITIT  Diferența dintre IPv4 și IPv6 explicată

Dacă abia începi, concentrează-te mai întâi pe EC2 pentru a rula aplicațiile tale.

-

4. Creați un server EC2

a) Creați o instanță
1. Conectați-vă la serviciul EC2.
2. Faceți clic pe Lansare instanță.
3. Selectați sistemul de operare, de exemplu Ubuntu Server 22.04 LTS.
4. Selectați tipul de instanță: pentru nivelul gratuit, utilizați `t2.micro` sau `t3.micro` (în funcție de disponibilitate).
5. Creați sau selectați o pereche de chei (de exemplu, `aws-key.pem`). Păstrați fișierul `.pem` în siguranță, deoarece va fi utilizat pentru SSH.

b) Configurarea rețelei și a firewall-ului
– Asigurați-vă că instanța se află în VPC-ul implicit (doar pentru exersare).
– Setați grupul de securitate:
– Portul 22 (SSH) doar de pe IP-ul dvs. (de exemplu, `IP-ul meu`)
– Portul 80 (HTTP) al `0.0.0.0/0` (public)
– Portul 443 (HTTPS) de la `0.0.0.0/0` dacă se utilizează ulterior SSL

Notă: Deschiderea SSH către public este riscantă. Restricționați întotdeauna adresele IP.

Faceți clic pe Lansare și așteptați ca instanța să ruleze.

-

5. Conectați-vă la server prin SSH

Pe Windows, poți folosi WSL sau PuTTY. Pe macOS/Linux, poți face asta direct din terminal.

1. Schimbați cheia de permisiune:
„`bash
chmod 400 aws-key.pem
„`
2. Conectați-vă prin SSH la server (folosiți IPv4 public de la EC2):
„`bash
ssh -i aws-key.pem ubuntu@IP_PUBLIC
„`

Dacă reușește, vă aflați pe serverul AWS Ubuntu.

-

6. Instalați serverul web și runtime-ul aplicațiilor

Iată un exemplu pentru o aplicație Node.js, deoarece este utilizată pe scară largă pentru web-ul modern.

a) Actualizarea și instalarea dependențelor
„`bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
„`

b) Instalați Node.js (versiunea LTS)
„`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt instalează-nodejs
nod -v
npm -v
„`

-

7. Creați o aplicație simplă

CITIT  Cele mai bune metode de dezvoltare software pentru echipe mici

Creați un folder de proiect:

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

Creați un fișier `index.js`:

„`js”
const express = require(„express”);
const app = expres();

app.get("/", (req, res) => {
res.send(„Bună ziua! Aplicația dvs. rulează pe AWS EC2.”);
});

app.listen(3000, () => console.log("Serverul rulează pe portul 3000"));
„`

Rulați aplicația:

„`bash
nod index.js
„`

Încercați să accesați dintr-un browser:
– `http://IP_PUBLIC:3000`

Totuși, portul 3000 nu este deschis în prezent în Grupul de Securitate. Puteți:
1) deschideți portul 3000 în Grupul de Securitate sau
2) folosiți un proxy invers (mai recomandat) astfel încât aplicația să rămână pe un port intern, dar să poată fi accesată prin portul 80/443.

-

8. Utilizarea Nginx ca proxy invers (acces prin portul 80)

Instalați Nginx:
„`bash
sudo apt install -y nginx
sudo systemctl permite nginx
sudo systemctl începe nginx
„`

Configurarea Nginx:
„`bash
sudo nano /etc/nginx/sites-available/myapp
„`

Conținutul configurării:
„`nginx
Server {
asculta 80;
numele serverului _;

Locație / {
proxy_pass http://127.0.0.1:3000;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_cache_bypass $http_upgrade;
}
}
„`

Activează configurația:
„`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reîncărcare nginx
„`

Acum accesați:
– `http://IP_PUBLIC/`

Aplicația rulează pe portul 3000, dar publicul o accesează prin portul 80.

-

9. Rularea persistentă a aplicațiilor cu PM2

Pentru a preveni blocarea aplicației atunci când SSH este deconectat, utilizați PM2:

„`bash
sudo npm install -g pm2
pm2 start index.js –name myapp
pm2 salvare
pornire pm2
„`

Comanda `pm2 startup` va oferi instrucțiuni suplimentare. Rulați comanda afișată pentru ca aplicația să ruleze automat la repornirea serverului.

-

10. (Opțional) Adăugarea unei baze de date cu RDS

Dacă aplicația dvs. necesită o bază de date, RDS vă ușurează procesul, deoarece AWS gestionează copiile de rezervă, aplicarea de patch-uri și scalarea.

Pași scurți:
1. Deschideți serviciul RDS → Creare bază de date.
2. Selectați MySQL sau PostgreSQL (regulile Free Tier sunt disponibile pentru anumite configurații).
3. Setați numele de utilizator/parola.
4. Asigurați-vă că instanța RDS se află în același VPC ca și EC2.
5. Setați Grupul de securitate RDS să accepte doar conexiuni de la Grupul de securitate EC2 (nu de la public).

CITIT  Cum se fac backup și restaurarea bazelor de date în SQL Server

După ce baza de date este activă, accesați endpoint-ul RDS și conectați-vă la acesta din aplicație utilizând driverul bazei de date.

-

11. (Opțional) Activați HTTPS cu certificat SSL

Pentru producție, HTTPS este obligatoriu. Metodă tipică:
– Folosește un domeniu (de exemplu, de la Route 53 sau de la un alt registrator).
– Instalați SSL prin Let's Encrypt (Certbot) pe EC2.

Pe scurt:
„`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
„`

Urmați instrucțiunile expertului pentru a selecta un domeniu și a activa redirecționarea HTTPS.

-

12. Monitorizare și costuri

AWS oferă CloudWatch pentru a vizualiza valori precum CPU, rețea și jurnalele specifice. De asemenea, veți dori să monitorizați costurile pentru a evita pierderea unor rezultate.

Sfaturi importante:
– Activați alarma de facturare în CloudWatch (de exemplu, alarma dacă taxele depășesc 5 USD).
– Opriți instanța atunci când nu este utilizată.
– Eliminați resursele neutilizate (echilibratoare de sarcină, EBS, IP-uri elastice, snapshot-uri), deoarece acestea pot genera în continuare costuri.

-

Închidere

Felicitări! Ați învățat elementele de bază ale construirii unei aplicații pe AWS folosind EC2, rularea unei aplicații web, configurarea unui proxy invers Nginx și activarea permanentă a acestuia cu PM2. De asemenea, ați dobândit o prezentare generală a serviciilor suplimentare, cum ar fi RDS pentru baze de date, S3 pentru stocare și certificate HTTPS pentru securitate.

Dacă vrei să treci la un nivel superior, următorii pași sunt de obicei:
– Implementare automată cu CI/CD (GitHub Actions + SSH sau AWS CodeDeploy),
– Utilizarea containerelor cu Docker și orchestrații precum ECS sau EKS,
– Utilizarea arhitecturii serverless cu Lambda + API Gateway.

Dacă doriți, vă rog să specificați tipul de aplicație pe care o construiți (Node.js, Laravel, Django, React etc.) și scopul acesteia (demo, producție, la scară largă). Pot personaliza tutorialul cu pași mai specifici.

Tinggalkan comentariu