Учебное пособие по созданию приложений на платформе Amazon Web Services (AWS)

Учебное пособие по созданию приложений на Amazon Web Services (AWS)

Amazon Web Services (AWS) — одна из самых популярных в мире платформ облачных вычислений. С AWS вы можете создавать и запускать приложения, не приобретая физические серверы, не выделяя серверное пространство и не поддерживая собственную инфраструктуру. В этой статье мы рассмотрим создание простого приложения на AWS, используя распространенный подход: развертывание веб-приложения с помощью вычислительных сервисов (EC2), управляемой базы данных (RDS) в качестве опции, а также хранилища и домена при необходимости. Хотя приведенный ниже пример является общим, его можно применять ко многим типам приложений.

-

1. Начальная подготовка: Бухгалтерский учет и основные понятия

Прежде чем начать, убедитесь, что у вас есть учетная запись AWS. Многие сервисы AWS предлагают бесплатный уровень (бесплатно в определенных пределах), который идеально подходит для практики.

Вот несколько важных понятий, которые вам необходимо понимать:

– Регион: местоположение центра обработки данных AWS (например: Singapore/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.

b) Настройка сети и брандмауэра
– Убедитесь, что экземпляр находится в 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 update && sudo apt upgrade -y
sudo apt install -y curl git
«`

b) Установите Node.js (версия LTS).
«баш»
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
узел -v
npm -v
«`

-

7. Создайте простое приложение.

ЧИТАТЬ  Как оптимизировать SEO для сайтов электронной коммерции

Создайте папку проекта:

«баш»
mkdir myapp && cd myapp
инициализация npm -y
npm установить экспресс
«`

Создайте файл `index.js`:

«`js
const express = require («экспресс»);
константное приложение = экспресс();

app.get("/", (req, res) => {
res.send(“Привет! Ваше приложение работает на AWS EC2.”);
});

app.listen(3000, () => console.log(“Сервер запущен на порту 3000”));
«`

Запустите приложение:

«баш»
узел index.js
«`

Попробуйте зайти через браузер:
– `http://PUBLIC_IP:3000`

Однако порт 3000 в данный момент не открыт в группе безопасности. Вы можете:
1) открыть порт 3000 в группе безопасности, или
2) Используйте обратный прокси (более рекомендуется), чтобы приложение оставалось на внутреннем порту, но было доступно через порты 80/443.

-

8. Использование Nginx в качестве обратного прокси (доступ через порт 80)

Установите Нгинкс:
«баш»
sudo apt install -y nginx
sudo systemctl включить nginx
sudo systemctl start nginx
«`

Настройка конфигурации Nginx:
«баш»
sudo nano /etc/nginx/sites-available/myapp
«`

Содержимое конфигурации:
«`nginx
сервер {
слушать 80;
имя сервера _;

местоположение /
прокси_пасс http://127.0.0.1:3000;
прокси_http_версия 1.1;
proxy_set_header Обновить $ http_upgrade;
proxy_set_header Соединение «обновление»;
proxy_set_header Host $ host;
proxy_cache_bypass $http_upgrade;
}
}
«`

Включить конфигурацию:
«баш»
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl перезагрузить nginx
«`

Доступно сейчас:
– `http://PUBLIC_IP/`

Приложение работает на порту 3000, но доступ к нему для широкой публики осуществляется через порт 80.

-

9. Постоянный запуск приложений с помощью PM2

Чтобы предотвратить сбои приложения при отключении SSH, используйте PM2:

«баш»
sudo npm установить -g pm2
pm2 start index.js –name myapp
pm2 сохранить
запуск pm2
«`

Команда `pm2 startup` предоставит дополнительные инструкции. Выполните указанную команду, чтобы приложение автоматически запускалось при перезагрузке сервера.

-

10. (Необязательно) Добавление базы данных с RDS

Если вашему приложению требуется база данных, RDS упрощает этот процесс, поскольку AWS управляет резервным копированием, обновлением и масштабированием.

Короткие шаги:
1. Откройте службу RDS → Создать базу данных.
2. Выберите MySQL или PostgreSQL (правила бесплатного уровня доступны для определенных конфигураций).
3. Установите имя пользователя/пароль.
4. Убедитесь, что экземпляр RDS находится в той же VPC, что и EC2.
5. Настройте группу безопасности RDS так, чтобы она принимала подключения только от группы безопасности EC2 (а не от общедоступных серверов).

ЧИТАТЬ  Как управлять программными проектами с помощью Agile

После запуска базы данных получите доступ к конечной точке RDS и подключитесь к ней из своего приложения, используя драйвер базы данных.

-

11. (Необязательно) Включите HTTPS с SSL-сертификатом.

Для использования в производственной среде HTTPS является обязательным. Типичный метод:
– Используйте доменное имя (например, от Route 53 или другого регистратора).
– Установите SSL-сертификат через Let's Encrypt (Certbot) на EC2.

Вкратце:
«баш»
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
«`

Следуйте инструкциям мастера, чтобы выбрать домен и включить перенаправление HTTPS.

-

12. Мониторинг и затраты

AWS предоставляет CloudWatch для просмотра таких метрик, как загрузка ЦП, использование сети и отдельные журналы. Вам также следует отслеживать свои расходы, чтобы ничего не упустить.

Важные советы:
– Включите оповещение о платежах в CloudWatch (например, оповещение, если сумма платежа превышает 5 долларов).
– Выключайте экземпляр, когда он не используется.
– Удалите неиспользуемые ресурсы (балансировщики нагрузки, EBS, эластичные IP-адреса, снимки), поскольку они могут по-прежнему нести расходы.

-

обложка

Поздравляем! Вы освоили основы создания приложений на AWS с использованием EC2, запуска веб-приложений, настройки обратного прокси-сервера Nginx и обеспечения его постоянной доступности с помощью PM2. Вы также получили общее представление о дополнительных сервисах, таких как RDS для баз данных, S3 для хранения данных и HTTPS-сертификаты для обеспечения безопасности.

Если вы хотите перейти на следующий уровень, обычно выполняются следующие шаги:
– Автоматизированное развертывание с использованием CI/CD (GitHub Actions + SSH или AWS CodeDeploy),
– Использование контейнеров с Docker и систем оркестровки, таких как ECS или EKS.
– Использование бессерверной архитектуры с Lambda + API Gateway.

Если хотите, пожалуйста, укажите тип разрабатываемого вами приложения (Node.js, Laravel, Django, React и т. д.) и его предназначение (демо-версия, продакшн, крупномасштабное приложение). Я смогу адаптировать руководство, добавив более конкретные шаги.

Тинггалкан комментарий