Amazon Web Services (AWS)-ზე აპლიკაციების შექმნის ინსტრუქცია

Amazon Web Services-ზე (AWS) აპლიკაციების შექმნის სახელმძღვანელო

Amazon Web Services (AWS) მსოფლიოში ერთ-ერთი ყველაზე პოპულარული ღრუბლოვანი ტექნოლოგიების პლატფორმაა. AWS-ის საშუალებით თქვენ შეგიძლიათ შექმნათ და გაუშვათ აპლიკაციები ფიზიკური სერვერების შეძენის, სერვერული სივრცის დაყენების ან საკუთარი ინფრასტრუქტურის მოვლა-პატრონობის გარეშე. ეს სტატია გაგიძღვებათ AWS-ზე მარტივი აპლიკაციის შექმნის პროცესში, რომელიც მოიცავს საერთო მიდგომას: ვებ აპლიკაციის განლაგება გამოთვლითი სერვისების (EC2) გამოყენებით, მართული მონაცემთა ბაზის (RDS) გამოყენებით, საჭიროების შემთხვევაში, შენახვისა და დომენის გამოყენებით. მიუხედავად იმისა, რომ შემდეგი მაგალითი ზოგადია, მისი გამოყენება შეგიძლიათ მრავალი ტიპის აპლიკაციაზე.

-

1. საწყისი მომზადება: ანგარიშები და ძირითადი კონცეფციები

დაწყებამდე დარწმუნდით, რომ გაქვთ AWS ანგარიში. AWS-ის ბევრი სერვისი გთავაზობთ უფასო დონეს (უფასო გარკვეული ლიმიტების ფარგლებში), რომელიც იდეალურია ვარჯიშისთვის.

რამდენიმე მნიშვნელოვანი კონცეფცია, რომელთა გაგებაც გჭირდებათ:

– რეგიონი: AWS მონაცემთა ცენტრის მდებარეობა (მაგალითად: სინგაპური/ap-southeast-1). დაბალი შეყოვნებისთვის აირჩიეთ უახლოესი რეგიონი.
– IAM (იდენტობისა და წვდომის მართვა): წვდომის მართვის სისტემა. საუკეთესო პრაქტიკა: არ გამოიყენოთ root ანგარიში ყოველდღიური სამუშაოსთვის.
– VPC (ვირტუალური კერძო ღრუბელი): ვირტუალური ქსელი, სადაც თქვენი სერვისები მუშაობს.
– უსაფრთხოების ჯგუფი: „firewall“ სერვერიდან შემომავალი/გამავალი წვდომის რეგულირებისთვის.

ამ ოთხი რამის გაგებით, AWS-ის საფუძვლებში ნავიგაცია ბევრად უფრო ადვილი იქნება თქვენთვის.

-

2. შექმენით IAM მომხმარებლები და დაცული ანგარიშები

უსაფრთხოება ყოველთვის ჩვენი ნომერ პირველი პრიორიტეტია. შედით AWS კონსოლში root-ის სახელით, შემდეგ კი:

1. გახსენით IAM სერვისი.
2. შექმენით ახალი მომხმარებელი (მაგ. `admin-dev`) და მონიშნეთ AWS მართვის კონსოლზე მომხმარებლის წვდომის უზრუნველყოფა.
3. ნებართვის მინიჭება: პრაქტიკისთვის შეგიძლიათ გამოიყენოთ AdministratorAccess (თუმცა რეალურ პროექტებში ის უფრო შეზღუდული უნდა იყოს).
4. უსაფრთხოების გასაზრდელად ჩართეთ MFA (მრავალფაქტორიანი ავთენტიფიკაცია).

დასრულების შემდეგ, გამოდით root-დან და შედით სისტემაში ახლად შექმნილი IAM მომხმარებლის გამოყენებით.

-

3. აპლიკაციის არქიტექტურის განსაზღვრა

ამ გაკვეთილისთვის ჩვენ შევქმნით მარტივ არქიტექტურას:

– EC2: ვებ აპლიკაციების გაშვება (მაგ. Node.js/Express, Python Flask ან PHP).
– დამატებითი RDS: მართული MySQL/PostgreSQL მონაცემთა ბაზა, რათა მონაცემები მოწესრიგებულად იყოს შენახული.
– S3 (არასავალდებულო): ინახავს სტატიკურ ფაილებს, როგორიცაა სურათები, დოკუმენტები ან სარეზერვო ასლები.
– მარშრუტი 53 (არასავალდებულო): დომენების მართვა.
– CloudWatch: ძირითადი მონიტორინგი.

წაიკითხეთ  განსხვავება ვირტუალიზაციასა და კონტეინერიზაციას შორის

თუ ახლა იწყებთ, აპლიკაციების გასაშვებად პირველ რიგში EC2-ზე გაამახვილეთ ყურადღება.

-

4. შექმენით EC2 სერვერი

ა) ინსტანციის შექმნა
1. შედით EC2 სერვისში.
2. დააწკაპუნეთ ინსტანციის გაშვებაზე.
3. აირჩიეთ ოპერაციული სისტემა, მაგალითად, Ubuntu Server 22.04 LTS.
4. აირჩიეთ ეგზემპლარის ტიპი: თავისუფალი დონისთვის გამოიყენეთ `t2.micro` ან `t3.micro` (ხელმისაწვდომობის მიხედვით).
5. შექმენით ან აირჩიეთ გასაღებების წყვილი (მაგ., `aws-key.pem`). შეინახეთ `.pem` ფაილი უსაფრთხოდ, რადგან ის SSH-სთვის იქნება გამოყენებული.

ბ) ქსელისა და ფაირვოლის კონფიგურაცია
– დარწმუნდით, რომ ინსტანცია ნაგულისხმევ VPC-შია (უბრალოდ სავარჯიშოდ).
– უსაფრთხოების ჯგუფის დაყენება:
– მხოლოდ 22-ე პორტი (SSH) თქვენი IP-დან (მაგ. `ჩემი IP`)
– პორტი 80 (HTTP) `0.0.0.0/0`-დან (საჯარო)
– პორტი 443 (HTTPS) `0.0.0.0/0`-დან, თუ მოგვიანებით SSL-ს გამოიყენებთ

შენიშვნა: SSH-ის საჯაროდ გახსნა სარისკოა. ყოველთვის შეზღუდეთ IP მისამართები.

დააჭირეთ ღილაკს „გაშვება“ და დაელოდეთ ინსტანციის გაშვებას.

-

5. სერვერზე შესვლა SSH-ის საშუალებით

Windows-ზე შეგიძლიათ გამოიყენოთ WSL ან PuTTY. macOS/Linux-ზე კი ეს პირდაპირ ტერმინალიდან შეგიძლიათ გააკეთოთ.

1. ნებართვის გასაღების შეცვლა:
„ბაშ
chmod 400 aws-key.pem
""
2. SSH სერვერზე (გამოიყენეთ საჯარო IPv4 EC2-დან):
„ბაშ
ssh -i aws-key.pem ubuntu@PUBLIC_IP
""

წარმატების შემთხვევაში, თქვენ AWS Ubuntu სერვერზე ხართ.

-

6. ვებ სერვერის და აპლიკაციის გაშვების დროის ინსტალაცია

აქ მოცემულია Node.js აპლიკაციის მაგალითი, რადგან ის ფართოდ გამოიყენება თანამედროვე ვებს შორის.

ა) დამოკიდებულებების განახლება და ინსტალაცია
„ბაშ
sudo apt განახლება && sudo apt განახლება -y
sudo apt install -y curl git
""

ბ) დააინსტალირეთ Node.js (LTS ვერსია)
„ბაშ
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
კვანძი -v
npm -v
""

-

7. შექმენით მარტივი აპლიკაცია

წაიკითხეთ  ინსტრუქცია ვირტუალური მანქანით VirtualBox-სა და VMware-ში შექმნის შესახებ

შექმენით პროექტის საქაღალდე:

„ბაშ
mkdir myapp && cd myapp
npm init -y
npm ინსტალაციის ექსპრეს
""

შექმენით `index.js` ფაილი:

„js“
const express = require(“გამოხატვა”);
const app = express();

app.get(“/”, (მოთხოვნა, რეს) => {
res.send(“გამარჯობა! თქვენი აპლიკაცია მუშაობს AWS EC2-ზე.”);
});

app.listen(3000, () => console.log(“სერვერი მუშაობს 3000 პორტზე”);
""

აპლიკაციის გაშვება:

„ბაშ
კვანძის ინდექსი.js
""

სცადეთ ბრაუზერიდან წვდომა:
– `http://PUBLIC_IP:3000`

თუმცა, პორტი 3000 ამჟამად არ არის გახსნილი უსაფრთხოების ჯგუფში. თქვენ შეგიძლიათ:
1) გახსენით პორტი 3000 უსაფრთხოების ჯგუფში, ან
2) გამოიყენეთ საპირისპირო პროქსი (უფრო რეკომენდებულია), რათა აპლიკაცია დარჩეს შიდა პორტზე, მაგრამ მასზე წვდომა შესაძლებელი იყოს 80/443 პორტის საშუალებით.

-

8. Nginx-ის გამოყენება, როგორც უკუ პროქსი (წვდომა პორტ 80-ის მეშვეობით)

დააინსტალირეთ Nginx:
„ბაშ
sudo apt install -y nginx
sudo systemctl nginx-ის ჩართვა
sudo systemctl nginx-ის დაწყება
""

Nginx კონფიგურაციის დაყენება:
„ბაშ
sudo nano /etc/nginx/sites-available/myapp
""

კონფიგურაციის შინაარსი:
„ნგინქსი“
სერვერი {
მოუსმინე 80;
სერვერის_სახელი _;

ადგილმდებარეობა / {
proxy_pass http://127.0.0.1:3000;
პროქსი_http_ვერსია 1.1;
proxy_set_header განახლება $http_upgrade;
proxy_set_header კავშირის „განახლება“;
proxy_set_header მასპინძელი $host;
proxy_cache_bypass $http_upgrade;
}
}
""

კონფიგურაციის ჩართვა:
„ბაშ
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
""

ახლა წვდომა:
– `http://PUBLIC_IP/`

აპლიკაცია მუშაობს 3000 პორტზე, მაგრამ საზოგადოება მასზე წვდომას 80 პორტის საშუალებით იღებს.

-

9. PM2-ით აპლიკაციების მუდმივად გაშვება

SSH-ის გათიშვისას აპლიკაციის გათიშვის თავიდან ასაცილებლად გამოიყენეთ PM2:

„ბაშ
sudo npm install -g pm2
pm2-ის დაწყება index.js – სახელი myapp
pm2 შენახვა
pm2 სტარტაპი
""

`pm2 startup` ბრძანება დამატებით ინსტრუქციებს მოგაწვდით. გაუშვით ნაჩვენები ბრძანება, რათა აპლიკაცია ავტომატურად გაეშვას სერვერის გადატვირთვისას.

-

10. (არასავალდებულო) მონაცემთა ბაზის დამატება RDS-ის გამოყენებით

თუ თქვენს აპლიკაციას მონაცემთა ბაზა სჭირდება, RDS ამარტივებს ამას, რადგან AWS მართავს სარეზერვო ასლებს, პატჩებს და მასშტაბირებას.

მოკლე ნაბიჯები:
1. გახსენით RDS სერვისი → შექმენით მონაცემთა ბაზა.
2. აირჩიეთ MySQL ან PostgreSQL (თავისუფალი დონის წესები ხელმისაწვდომია გარკვეულ კონფიგურაციებზე).
3. დააყენეთ მომხმარებლის სახელი/პაროლი.
4. დარწმუნდით, რომ RDS ინსტანცია იმავე VPC-შია, რომელშიც EC2.
5. დააყენეთ RDS უსაფრთხოების ჯგუფი ისე, რომ მიიღოს კავშირები მხოლოდ EC2 უსაფრთხოების ჯგუფიდან (არა საჯარო).

წაიკითხეთ  როგორ ავირჩიოთ საუკეთესო ჰოსტინგი პირადი ვებსაიტისთვის

მონაცემთა ბაზის გააქტიურების შემდეგ, აიღეთ RDS საბოლოო წერტილი და დაუკავშირდით მას თქვენი აპლიკაციიდან მონაცემთა ბაზის დრაივერის გამოყენებით.

-

11. (არასავალდებულო) HTTPS-ის ჩართვა SSL სერტიფიკატით

წარმოებისთვის, HTTPS სავალდებულოა. ტიპიური მეთოდი:
– გამოიყენეთ დომენი (მაგ., 53-ე მარშრუტიდან ან სხვა რეგისტრატორიდან).
– დააინსტალირეთ SSL Let's Encrypt (Certbot)-ის მეშვეობით EC2-ზე.

მოკლედ:
„ბაშ
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
""

მიჰყევით ოსტატის მითითებებს დომენის ასარჩევად და HTTPS გადამისამართების ჩასართავად.

-

12. მონიტორინგი და ხარჯები

AWS უზრუნველყოფს CloudWatch-ს ისეთი მეტრიკების სანახავად, როგორიცაა CPU, ქსელი და კონკრეტული ჟურნალები. ასევე, თქვენ უნდა აკონტროლოთ თქვენი ხარჯები, რათა თავიდან აიცილოთ რაიმეს გამოტოვება.

მნიშვნელოვანი რჩევები:
– ჩართეთ გადახდის სიგნალიზაცია CloudWatch-ში (მაგ., სიგნალიზაცია, თუ გადასახადი 5 დოლარს აღემატება).
– გამორთეთ ეგზემპლარი, როდესაც არ იყენებთ.
– წაშალეთ გამოუყენებელი რესურსები (დატვირთვის დამაბალანსებლები, EBS, ელასტიური IP-ები, სნეპშოტები), რადგან მათ შეიძლება კვლავ დააკისრონ ხარჯები.

-

დახურვა

გილოცავთ! თქვენ შეისწავლეთ EC2-ის გამოყენებით AWS-ზე აპლიკაციის შექმნის, ვებ აპლიკაციის გაშვების, Nginx-ის უკუ პროქსის დაყენების და PM2-ზე მისი მუდმივად ჩართული რეჟიმის უზრუნველყოფის საფუძვლები. ასევე მიიღეთ მიმოხილვა დამატებითი სერვისების შესახებ, როგორიცაა RDS მონაცემთა ბაზებისთვის, S3 შენახვისთვის და HTTPS სერტიფიკატები უსაფრთხოებისთვის.

თუ გსურთ დონის ამაღლება, შემდეგი ნაბიჯები, როგორც წესი, ასეთია:
– ავტომატური განლაგება CI/CD-ის გამოყენებით (GitHub Actions + SSH, ან AWS CodeDeploy),
– Docker-თან და ECS ან EKS-ის მსგავსი ორკესტრაციებთან კონტეინერების გამოყენება,
– სერვერული არქიტექტურის გამოყენება Lambda + API Gateway-ით.

თუ გსურთ, გთხოვთ, მიუთითოთ აპლიკაციის ტიპი, რომელსაც ქმნით (Node.js, Laravel, Django, React და ა.შ.) და მისი დანიშნულება (დემო, წარმოება, მასშტაბური). შემიძლია სახელმძღვანელოს უფრო კონკრეტული ნაბიჯებით პერსონალიზება.

დატოვეთ კომენტარი