Amazon Web Services (AWS) üzərində tətbiqlərin yaradılması üzrə təlimat

Amazon Veb Xidmətlərində (AWS) Tətbiqlərin Yaradılması üzrə Təlim

Amazon Web Services (AWS) dünyanın ən populyar bulud hesablama platformalarından biridir. AWS ilə fiziki serverlər almadan, server sahəsi qurmadan və ya öz infrastrukturunuzu saxlamadan tətbiqlər qura və işlədə bilərsiniz. Bu məqalə, ümumi bir yanaşma istifadə edərək AWS-də sadə bir tətbiq yaratmağı sizə istiqamətləndirəcək: hesablama xidmətlərindən (EC2) istifadə edərək veb tətbiqini yerləşdirmək , seçim olaraq idarə olunan verilənlər bazası (RDS) və lazım olduqda yaddaş və domen. Aşağıdakı nümunə ümumi olsa da, onu bir çox tətbiq növünə tətbiq edə bilərsiniz.

-

1. İlkin Hazırlıq: Hesablar və Əsas Anlayışlar

Başlamazdan əvvəl, AWS hesabınızın olduğundan əmin olun. Bir çox AWS xidmətləri təcrübə üçün mükəmməl olan Pulsuz Səviyyə (müəyyən limitlər daxilində pulsuz) təklif edir.

Anlamalı olduğunuz bəzi vacib anlayışlar:

– Region: AWS məlumat mərkəzinin yeri (məsələn: Sinqapur/ap-cənub-şərq-1). Aşağı gecikmə üçün ən yaxın bölgəni seçin.
– IAM (İdentifikasiya və Giriş İdarəetməsi): giriş idarəetmə sistemi. Ən yaxşı təcrübə: gündəlik iş üçün kök hesabından istifadə etməyin.
– VPC (Virtual Şəxsi Bulud): xidmətlərinizin işlədiyi virtual şəbəkə.
– Təhlükəsizlik Qrupu: serverdən daxil olan/çıxan girişi tənzimləmək üçün “firewall”.

Bu dörd şeyi başa düşməklə, AWS əsaslarını öyrənmək sizin üçün daha asan olacaq.

-

2. IAM İstifadəçiləri Yaradın və Hesabları Təhlükəsizləşdirin

Təhlükəsizlik həmişə bizim bir nömrəli prioritetimizdir. AWS Konsoluna root olaraq daxil olun, sonra:

1. IAM xidmətini açın.
2. Yeni İstifadəçi yaradın (məsələn, `admin-dev`) və AWS İdarəetmə Konsoluna İstifadəçi Girişi Təmin Edin seçimini yoxlayın.
3. İcazə verin: təcrübə üçün AdministratorAccess-dən istifadə edə bilərsiniz (real layihələrdə daha məhdud olmalıdır).
4. Təhlükəsizliyi artırmaq üçün MFA (Çox Faktorlu Doğrulama) funksiyasını aktivləşdirin.

Bitdikdən sonra, root-dan çıxın və yeni yaradılmış IAM istifadəçisi ilə daxil olun.

-

3. Tətbiq Memarlığını Müəyyənləşdirin

Bu dərslik üçün sadə bir memarlıq quracağıq:

– EC2: veb tətbiqlərinin (məsələn, Node.js/Express, Python Flask və ya PHP) işlədilməsi.
– Əlavə RDS: məlumatların səliqəli şəkildə saxlanması üçün idarə olunan MySQL/PostgreSQL verilənlər bazası.
– S3 (isteğe bağlı): şəkillər, sənədlər və ya ehtiyat nüsxələr kimi statik faylları saxlayır.
– 53 nömrəli marşrut (isteğe bağlı): domenləri idarə edin.
– CloudWatch: əsas monitorinq.

Əgər yeni başlayırsınızsa, əvvəlcə tətbiqlərinizi işə salmaq üçün EC2-yə diqqət yetirin.

-

4. EC2 Serveri yaradın

a) Bir nümunə yaradın
1. EC2 xidmətinə daxil olun.
2. Nümunəni işə salın düyməsini basın.
3. ƏS seçin, məsələn, Ubuntu Server 22.04 LTS.
4. Nümunə növünü seçin: Pulsuz Səviyyə üçün `t2.micro` və ya `t3.micro` istifadə edin (mövcudluğa bağlıdır).
5. Açar Cütlüyü yaradın və ya seçin (məsələn, `aws-key.pem`). `.pem` faylını təhlükəsiz saxlayın, çünki o, SSH üçün istifadə olunacaq.

b) Şəbəkə və Firewall Konfiqurasiyası
– İnstansiyanın standart VPC-də olduğundan əmin olun (yalnız təcrübə üçün).
– Təhlükəsizlik Qrupunu təyin edin:
– Yalnız IP ünvanınızdan (məsələn, `Mənim IP ünvanım`) 22 nömrəli port (SSH)
– `0.0.0.0/0` portunun 80-ci portu (HTTP) (açıq)
– Daha sonra SSL istifadə edilərsə, `0.0.0.0/0`-dan 443 portu (HTTPS)

Qeyd: SSH-ı ictimaiyyətə açmaq risklidir. IP ünvanlarını həmişə məhdudlaşdırın.

"Başlat" düyməsini basın və nümunənin işə düşməsini gözləyin.

-

5. SSH vasitəsilə Serverə daxil olun

Windows-da WSL və ya PuTTY-dən istifadə edə bilərsiniz. macOS/Linux-da isə bunu birbaşa terminaldan edə bilərsiniz.

1. İcazə açarını dəyişdirin:
“`bash
chmod 400 aws-key.pem
""
2. Serverə SSH göndərin (EC2-dən Public IPv4 istifadə edin):
“`bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
""

Uğurlu olarsa, AWS Ubuntu serverindəsiniz.

-

6. Veb Server və Tətbiqin İşləmə Müddətini Quraşdırın

Müasir vebdə geniş istifadə olunan Node.js tətbiqinə bir nümunə.

a) Asılılıqları yeniləyin və quraşdırın
“`bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
""

b) Node.js-i quraşdırın (LTS versiyası)
“`bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
node-v
npm -v
""

-

7. Sadə bir tətbiq yaradın

Layihə qovluğu yaradın:

“`bash
mkdir myapp && cd myapp
npm init -y
npm ekspres quraşdırma
""

`index.js` faylı yaradın:

“`js
const express = tələb edir(“ifadə edir”);
const app = express();

app.get(“/”, (tələb, res) => {
res.send(“Salam! Tətbiqiniz AWS EC2 üzərində işləyir.”);
});

app.listen(3000, () => console.log(“Server 3000 portunda işləyir”));
""

Tətbiqi işə salın:

“`bash
node index.js
""

Brauzerdən daxil olmağa çalışın:
– `http://PUBLIC_IP:3000`

Lakin, 3000 portu hazırda Təhlükəsizlik Qrupunda açıq deyil. Siz aşağıdakıları edə bilərsiniz:
1) Təhlükəsizlik Qrupunda 3000 portunu açın və ya
2) tətbiqin daxili portda qalması, lakin 80/443 portu vasitəsilə daxil olması üçün tərs proksidən istifadə edin (daha çox tövsiyə olunur).

-

8. Nginx-in Tərs Proksi kimi İstifadəsi (80-ci Port vasitəsilə Giriş)

Nginx quraşdırın:
“`bash
sudo apt install -y nginx
sudo systemctl imkan nginx
sudo systemctl başla nginx
""

Nginx konfiqurasiyasını qurun:
“`bash
sudo nano /etc/nginx/sites-available/myapp
""

Konfiqurasiya məzmunu:
“`nginx
server {
80 qulaq asın;
server_adı _;

yer / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Təkmilləşdirin $http_upgrade;
proxy_set_header 'təkmilləşdirmə' bağlantısı;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
""

Konfiqurasiyanı aktivləşdirin:
“`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl yenidən yüklə nginx
""

İndi giriş:
– `http://PUBLIC_IP/`

Tətbiq 3000 portunda işləyir, lakin ictimaiyyət ona 80 portu vasitəsilə daxil olur.

-

9. PM2 ilə davamlı olaraq tətbiqlərin işə salınması

SSH bağlantısı kəsildikdə tətbiqin çökməsinin qarşısını almaq üçün PM2-dən istifadə edin:

“`bash
sudo npm quraşdırma -g pm2
pm2 start index.js –myapp adı
pm2 saxla
pm2 başlanğıcı
""

`pm2 startup` əmri əlavə təlimatlar verəcək. Server yenidən başladıqda tətbiqin avtomatik işləməsi üçün göstərilən əmri işlədin.

-

10. (İstəyə bağlı) RDS ilə verilənlər bazasının əlavə edilməsi

Tətbiqiniz verilənlər bazası tələb edirsə, RDS bunu asanlaşdırır, çünki AWS ehtiyat nüsxələrini, yamaqlamanı və miqyaslandırmanı idarə edir.

Qısa addımlar:
1. RDS xidmətini açın → Verilənlər bazası yaradın.
2. MySQL və ya PostgreSQL seçin (Pulsuz Tier qaydaları müəyyən konfiqurasiyalarda mövcuddur).
3. İstifadəçi adı/parolu təyin edin.
4. RDS instansiyasının EC2 ilə eyni VPC-də olduğundan əmin olun.
5. RDS Təhlükəsizlik Qrupunu yalnız EC2 Təhlükəsizlik Qrupundan (ictimai deyil) əlaqələri qəbul etmək üçün təyin edin.

Verilənlər bazası işə salındıqdan sonra, RDS son nöqtəsini götürün və verilənlər bazası drayverindən istifadə edərək tətbiqinizdən ona qoşulun.

-

11. (İstəyə bağlı) SSL Sertifikatı ilə HTTPS-i aktivləşdirin

İstehsal üçün HTTPS məcburidir. Tipik metod:
– Bir domendən istifadə edin (məsələn, 53 nömrəli marşrutdan və ya başqa bir qeydiyyatçıdan).
– EC2 üzərində Let's Encrypt (Certbot) vasitəsilə SSL quraşdırın.

Qısaca:
“`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
""

Domen seçmək və HTTPS yönləndirməsini aktivləşdirmək üçün sehrbazı izləyin.

-

12. Monitorinq və Xərclər

AWS, CPU, şəbəkə və xüsusi qeydlər kimi metriklərə baxmaq üçün CloudWatch təmin edir. Həmçinin, fürsəti əldən verməmək üçün xərclərinizi izləmək istəyəcəksiniz.

Vacib məsləhətlər:
– CloudWatch-da Ödəniş Siqnalını aktivləşdirin (məsələn, ödənişlər 5 dollardan çox olarsa siqnalizasiya).
– İstifadə edilmədikdə instansiyanı söndürün.
– İstifadə olunmamış resursları (yük balanslaşdırıcıları, EBS, elastik IP-lər, anlıq görüntülər) çıxarın, çünki onlar hələ də xərclərə səbəb ola bilər.

-

Bağlanır

Təbrik edirik! EC2 istifadə edərək AWS üzərində tətbiq qurmağın, veb tətbiqini işlətməyin, Nginx tərs proksi qurmağın və onu PM2 ilə daim aktivləşdirməyin əsaslarını öyrəndiniz . Həmçinin verilənlər bazaları üçün RDS, saxlama üçün S3 və təhlükəsizlik üçün HTTPS sertifikatları kimi əlavə xidmətlərə ümumi baxış əldə etdiniz.

Səviyyəni yüksəltmək istəyirsinizsə, növbəti addımlar adətən aşağıdakılardır:
– CI/CD ilə avtomatlaşdırılmış yerləşdirmə (GitHub Actions + SSH və ya AWS CodeDeploy),
– Docker və ECS və ya EKS kimi orkestrasiyalarla konteynerlərdən istifadə etməklə,
– Lambda + API Gateway ilə serversiz arxitekturadan istifadə.

İstəsəniz, zəhmət olmasa, qurduğunuz tətbiq növünü (Node.js, Laravel, Django, React və s.) və onun nəzərdə tutulan məqsədini (demo, istehsal, genişmiqyaslı) qeyd edin. Dərsliyi daha konkret addımlarla fərdiləşdirə bilərəm.

Şərh yazın