Ответ
Да, проект использовал облачную инфраструктуру AWS (Amazon Web Services).
Используемые сервисы и их назначение:
- Вычисления: Amazon EC2 для виртуальных серверов бэкенда.
- База данных: Amazon RDS (PostgreSQL) как managed СУБД с автоматическими бэкапами и патчами.
- Хранилище: Amazon S3 для статических файлов (изображения, документы).
- Контейнеризация: Amazon ECS (Elastic Container Service) с запуском задач на Fargate (serverless). Это избавило от управления серверами для контейнеров.
Пример инфраструктуры как код (Terraform):
resource "aws_ecs_cluster" "main" {
name = "production-cluster"
}
resource "aws_ecs_task_definition" "app" {
family = "api-task"
cpu = "256"
memory = "512"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
container_definitions = file("task-definition.json")
}
Преимущества такого подхода:
- Масштабируемость: Автоскейлинг групп EC2 и сервисов ECS.
- Отказоустойчивость: Размещение в нескольких Availability Zones.
- DevOps: Полный CI/CD цикл через AWS CodePipeline и CodeBuild.
Ответ 18+ 🔞
Ну, смотри, как мы там всё по-взрослому развернули, на облаках амазонских, блядь. AWS, сука, то есть. Не какая-то там подвал-инфраструктура, а всё по-белому.
Что и куда воткнули, чтоб работало:
- Вычисления: Взяли Amazon EC2 — это такие виртуальные тачки, на них наш бэкенд и бегал. Крепкие, надёжные.
- База данных: Amazon RDS на PostgreSQL. Чтобы не ебаться с бэкапами и обновлениями в три часа ночи — за тебя всё делает, красота.
- Хранилище: Amazon S3 — туда все картинки, документы и прочий статический хлам летел. Дешево и сердито, ёпта.
- Контейнеризация: А это, сука, вообще песня. Amazon ECS на Fargate. То есть контейнеры крутятся, а серверов под них нихуя нет, serverless, блядь. Вообще не надо думать, на какой машине что виснет. Гениально, в рот меня чих-пых!
Вот, смотри, как мы это кодом, как взрослые, описывали (Terraform):
resource "aws_ecs_cluster" "main" {
name = "production-cluster"
}
resource "aws_ecs_task_definition" "app" {
family = "api-task"
cpu = "256"
memory = "512"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
container_definitions = file("task-definition.json")
}
И какие, нахуй, от этого плюсы вылезли:
- Масштабируемость: Нагрузка подскочила — система сама новые инстансы накрутит. Упала — сама же и прибьёт лишние. Автомат, блядь.
- Живучесть: Всё раскидали по разным дата-центрам (Availability Zones). Один сдох — остальные работают. Не то что наши, сука, щит-роутеры.
- DevOps: Полный цикл, ёбушки-воробушки! Залил код — AWS CodePipeline с CodeBuild сами его соберут, протестят и на прод выкатят. Руками почти ничего не трогаешь.