AWS: обзор сервисов для веб-разработчика

AWS (Amazon Web Services) — облачная платформа с сотнями сервисов; для веб-разработчика наиболее релевантны EC2, S3, RDS, Lambda, CloudFront, Route 53 и ECS.

Зачем нужно

AWS позволяет запустить веб-приложение любого масштаба без покупки физического железа. Разработчик получает готовую инфраструктуру: сервера, хранилище, CDN, управляемые БД — всё настраивается через API или консоль. Глубокое знание AWS востребовано на рынке и часто является требованием вакансий.

Где используется

  • Хостинг backend API (EC2, ECS, Lambda)
  • Хранение статических файлов и медиа (S3 + CloudFront)
  • Управляемые базы данных (RDS — PostgreSQL, MySQL)
  • Serverless-функции (Lambda)
  • DNS и домены (Route 53)

Основной контент

Ключевые сервисы AWS для веб-разработчика

Сервис Категория Назначение
EC2 Compute Виртуальные серверы (VPS в облаке)
S3 Storage Объектное хранилище (файлы, статика)
RDS Database Управляемые реляционные БД
Lambda Serverless Функции без сервера
ECS / Fargate Containers Запуск Docker-контейнеров
CloudFront CDN Дистрибуция контента (CDN)
Route 53 DNS Управление доменами и DNS
IAM Security Управление доступом и ролями
CloudWatch Monitoring Логи и метрики
SES Email Отправка email

AWS CLI — базовые команды

# Установка
pip install awscli

# Конфигурация
aws configure
# AWS Access Key ID:
# AWS Secret Access Key:
# Default region: eu-west-1
# Default output format: json

# Проверка
aws sts get-caller-identity

# S3
aws s3 ls                                    # список бакетов
aws s3 cp file.txt s3://my-bucket/           # загрузить файл
aws s3 sync ./dist s3://my-bucket/ --delete  # синхронизация папки

# EC2
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]'

Типичный стек для веб-приложения на AWS

Пользователь
    → Route 53 (DNS)
    → CloudFront (CDN + HTTPS)
    → S3 (статика: React/Next.js)
    → ALB (Application Load Balancer)
    → ECS / EC2 (Node.js API)
    → RDS PostgreSQL (БД)
    → ElastiCache Redis (кэш)
    → S3 (медиафайлы)
    → SES (email)
    → CloudWatch (логи)

IAM — безопасность

# Никогда не используй root-аккаунт для программного доступа!
# Создай IAM-пользователя с минимальными правами
# Используй IAM Roles для EC2/Lambda (не хардкоди ключи в коде)

# Просмотр политик роли
aws iam list-role-policies --role-name MyAppRole

Terraform для создания ресурсов AWS (декларативно)

provider "aws" {
  region = "eu-west-1"
}

resource "aws_s3_bucket" "static" {
  bucket = "my-app-static-files"
}

resource "aws_instance" "api" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
  tags = {
    Name = "my-api-server"
  }
}

Частые ошибки

  • Хардкодить AWS Access Key / Secret в коде или .env — использовать IAM Roles
  • Открывать Security Group на все порты (0.0.0.0/0) — минимально необходимые порты
  • Не настраивать биллинг-алерты — можно получить неожиданный счёт
  • Запускать всё в одном AZ (Availability Zone) — нет отказоустойчивости

Связанные темы

Ресурсы