Водич за креирање апликација на Amazon Web Services (AWS)

Водич за креирање апликација на Amazon Web Services (AWS)

Amazon Web Services (AWS) је једна од најпопуларнијих светских платформи за cloud computing. Са AWS-ом можете да креирате и покрећете апликације без куповине физичких сервера, подешавања серверског простора или одржавања сопствене инфраструктуре. Овај чланак ће вас провести кроз креирање једноставне апликације на AWS-у користећи уобичајени приступ: имплементација веб апликације помоћу рачунарских сервиса (EC2), управљане базе података (RDS) као опције, и складишта и домена ако је потребно. Иако је следећи пример општи, можете га применити на многе врсте апликација.

-

1. Почетна припрема: Рачуни и основни концепти

Пре него што почнете, уверите се да имате AWS налог. Многе AWS услуге нуде бесплатни ниво (бесплатно у одређеним границама) који је савршен за вежбање.

Неки важни концепти које треба да разумете:

– Регион: Локација AWS дата центра (пример: Сингапур/ap-southeast-1). Изаберите најближи регион за малу латенцију.
– IAM (Управљање идентитетом и приступом): систем за управљање приступом. Најбоља пракса: немојте користити root налог за свакодневни рад.
– VPC (Виртуелни приватни облак): виртуелна мрежа у којој се покрећу ваши сервиси.
– Безбедносна група: „заштитни зид“ за регулисање долазног/одлазног приступа са сервера.

Разумевањем ове четири ствари, биће вам много лакше да се снађете у основама 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@ЈАВНА_ИП АДРЕСА
„`

Ако је успешно, налазите се на AWS Ubuntu серверу.

-

6. Инсталирајте веб сервер и извршно окружење апликације

Ево примера за Node.js апликацију, јер се широко користи за модерни веб.

а) Ажурирајте и инсталирајте зависности
„`басх
судо апт упдате && судо апт надоградња -и
судо апт инсталл -и цурл гит
„`

б) Инсталирајте Node.js (LTS верзија)
„`басх
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
судо апт инсталл -и нодејс
чвор -в
нпм -в
„`

-

7. Направите једноставну апликацију

Направите фасциклу пројекта:

„`басх
mkdir myapp && cd myapp
нпм инит -и
нпм инсталл екпресс
„`

Направите датотеку `index.js`:

„`js
const express = require(“express”);
цонст апп = екпресс();

апликација.гет(“/”, (захтев, рес) => {
res.send(„Здраво! Ваша апликација ради на AWS EC2.“);
});

app.listen(3000, () => console.log(„Сервер ради на порту 3000“));
„`

Покрените апликацију:

„`басх
индекс чвора.јс
„`

Покушајте да приступите из прегледача:
– `http://PUBLIC_IP:3000`

Међутим, порт 3000 тренутно није отворен у Безбедносној групи. Можете:
1) отворите порт 3000 у Безбедносној групи, или
2) користите обрнути прокси (препоручује се више) тако да апликација остане на интерном порту, али да јој се може приступити преко порта 80/443.

-

8. Коришћење Nginx-а као обрнутог проксија (приступ преко порта 80)

Инсталирајте Нгинк:
„`басх
sudo apt install -y nginx
судо системцтл омогућити нгинк
судо системцтл старт нгинк
„`

Подесите Nginx конфигурацију:
„`басх
судо нано /етц/нгинкс/сајтови-авајл/миапп
„`

Садржај конфигурације:
„`нгинк
сервер {
слушај КСНУМКС;
сервер_наме _;

локација /
проки_пасс хттп://127.0.0.1:3000;
проки_хттп_версион 1.1;
проки_сет_хеадер Надоградња $хттп_упграде;
проки_сет_хеадер 'надоградња' везе;
проки_сет_хеадер Хост $ хост;
проки_цацхе_бипасс $хттп_упграде;
}
}
„`

Омогући конфигурацију:
„`басх
судо лн -с /етц/нгинкс/сајтови-авајл/миапп /етц/нгинкс/сајтови-енаблед/
судо нгинк -т
судо системцтл поново учитај нгинк
„`

Сада приступ:
– `http://PUBLIC_IP/`

Апликација ради на порту 3000, али јој јавност приступа преко порта 80.

-

9. Континуирано покретање апликација помоћу PM2

Да бисте спречили пад апликације када је SSH искључен, користите PM2:

„`басх
судо нпм инсталл -г пм2
pm2 start index.js –име моје апликације
пм2 саве
пм2 покретање
„`

Команда `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.

Укратко:
„`басх
судо апт инсталл -и цертбот пајтон3-цертбот-нгинкс
судо цертбот –нгинк
„`

Пратите чаробњака да бисте изабрали домен и омогућили HTTPS преусмеравање.

-

12. Праћење и трошкови

AWS пружа CloudWatch за преглед метрика као што су процесор, мрежа и одређени логови. Такође ћете желети да пратите своје трошкове како бисте избегли губитак.

Важни савети:
– Омогућите аларм за наплату у CloudWatch-у (нпр. аларм ако наплате пређу 5 долара).
– Искључите инстанцу када је не користите.
– Уклоните неискоришћене ресурсе (балансере оптерећења, EBS, еластичне IP адресе, снимке) јер они и даље могу стварати трошкове.

-

Пенутуп

Честитамо! Научили сте основе креирања апликације на AWS-у користећи EC2, покретања веб апликације , подешавања Nginx обрнутог проксија и његовог сталног укључивања помоћу PM2. Такође сте стекли преглед додатних сервиса као што су RDS за базе података, S3 за складиштење и HTTPS сертификати за безбедност.

Ако желите да подигнете ниво, следећи кораци су обично:
– Аутоматизовано распоређивање са CI/CD (GitHub Actions + SSH или AWS CodeDeploy),
– Коришћење контејнера са Докером и оркестрацијама попут ECS-а или EKS-а,
– Коришћење серверлесс архитектуре са Ламбда + API Gateway.

Ако желите, наведите тип апликације коју правите (Node.js, Laravel, Django, React, итд.) и њену намену (демо, продукцијска, велика). Могу прилагодити туторијал са прецизнијим корацима.

Оставите коментар