Что такое AWS (Amazon Web Services)?

Amazon Web Services (AWS) — это самая популярная облачная платформа в мире, предоставляющая более 200 сервисов для вычислений, хранения данных, баз данных, аналитики, машинного обучения и многого другого. AWS позволяет компаниям любого размера быстро масштабировать свою инфраструктуру без капитальных затрат на оборудование.

Основные сервисы AWS

  • EC2 (Elastic Compute Cloud) — виртуальные серверы в облаке
  • S3 (Simple Storage Service) — объектное хранилище данных
  • RDS (Relational Database Service) — управляемые реляционные базы данных
  • Lambda — serverless вычисления
  • VPC (Virtual Private Cloud) — изолированные сетевые среды
  • CloudFront — глобальная сеть доставки контента (CDN)
  • IAM (Identity and Access Management) — управление доступом
  • CloudWatch — мониторинг и логирование

Создание первого EC2 инстанса

 1# Установка AWS CLI
 2curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
 3unzip awscliv2.zip
 4sudo ./aws/install
 5
 6# Настройка учетных данных
 7aws configure
 8# AWS Access Key ID: [ваш access key]
 9# AWS Secret Access Key: [ваш secret key]  
10# Default region name: us-west-2
11# Default output format: json
12
13# Создание ключевой пары
14aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
15chmod 400 MyKeyPair.pem
16
17# Запуск EC2 инстанса
18aws ec2 run-instances \
19  --image-id ami-0c55b159cbfafe1d0 \
20  --count 1 \
21  --instance-type t2.micro \
22  --key-name MyKeyPair \
23  --security-groups default
24
25# Просмотр запущенных инстансов
26aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]' --output table

Работа с S3 хранилищем

 1# Создание S3 bucket
 2aws s3 mb s3://my-unique-bucket-name-2025
 3
 4# Загрузка файла
 5aws s3 cp myfile.txt s3://my-unique-bucket-name-2025/
 6
 7# Синхронизация папки
 8aws s3 sync ./local-folder s3://my-unique-bucket-name-2025/remote-folder/
 9
10# Просмотр содержимого bucket
11aws s3 ls s3://my-unique-bucket-name-2025/
12
13# Скачивание файла
14aws s3 cp s3://my-unique-bucket-name-2025/myfile.txt ./downloaded-file.txt
15
16# Настройка публичного доступа (осторожно!)
17aws s3api put-bucket-acl --bucket my-unique-bucket-name-2025 --acl public-read

Создание Lambda функции

 1# lambda_function.py
 2import json
 3import boto3
 4from datetime import datetime
 5
 6def lambda_handler(event, context):
 7    """
 8    Простая Lambda функция для обработки HTTP запросов
 9    """
10    
11    # Получение параметров из события
12    name = event.get('queryStringParameters', {}).get('name', 'World')
13    
14    # Логирование
15    print(f"Processing request for: {name}")
16    
17    # Подготовка ответа
18    response_body = {
19        'message': f'Hello, {name}!',
20        'timestamp': datetime.now().isoformat(),
21        'requestId': context.aws_request_id
22    }
23    
24    return {
25        'statusCode': 200,
26        'headers': {
27            'Content-Type': 'application/json',
28            'Access-Control-Allow-Origin': '*'
29        },
30        'body': json.dumps(response_body)
31    }
 1# Создание deployment package
 2zip lambda-deployment.zip lambda_function.py
 3
 4# Создание IAM роли для Lambda
 5aws iam create-role --role-name lambda-execution-role \
 6  --assume-role-policy-document '{
 7    "Version": "2012-10-17",
 8    "Statement": [
 9      {
10        "Effect": "Allow",
11        "Principal": {
12          "Service": "lambda.amazonaws.com"
13        },
14        "Action": "sts:AssumeRole"
15      }
16    ]
17  }'
18
19# Присоединение базовой политики
20aws iam attach-role-policy --role-name lambda-execution-role \
21  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
22
23# Создание Lambda функции
24aws lambda create-function \
25  --function-name my-hello-function \
26  --runtime python3.9 \
27  --role arn:aws:iam::ACCOUNT-ID:role/lambda-execution-role \
28  --handler lambda_function.lambda_handler \
29  --zip-file fileb://lambda-deployment.zip
30
31# Тестирование функции
32aws lambda invoke \
33  --function-name my-hello-function \
34  --payload '{"queryStringParameters": {"name": "AWS User"}}' \
35  response.json

Настройка мониторинга с CloudWatch

 1# Создание CloudWatch алерта для высокой загрузки CPU
 2aws cloudwatch put-metric-alarm \
 3  --alarm-name "High-CPU-Usage" \
 4  --alarm-description "Alarm when CPU exceeds 80%" \
 5  --metric-name CPUUtilization \
 6  --namespace AWS/EC2 \
 7  --statistic Average \
 8  --period 300 \
 9  --threshold 80 \
10  --comparison-operator GreaterThanThreshold \
11  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
12  --evaluation-periods 2
13
14# Просмотр метрик
15aws cloudwatch get-metric-statistics \
16  --namespace AWS/EC2 \
17  --metric-name CPUUtilization \
18  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
19  --statistics Average \
20  --start-time 2025-01-20T00:00:00Z \
21  --end-time 2025-01-20T23:59:59Z \
22  --period 3600
23
24# Создание dashboard
25aws cloudwatch put-dashboard \
26  --dashboard-name "MyDashboard" \
27  --dashboard-body file://dashboard.json

Основные регионы AWS

  • us-east-1 (Вирджиния) — основной регион с самыми низкими ценами
  • us-west-2 (Орегон) — популярный выбор для западного побережья
  • eu-west-1 (Ирландия) — основной европейский регион
  • eu-central-1 (Франкфурт) — для соответствия немецким требованиям
  • ap-southeast-1 (Сингапур) — для азиатского рынка
  • ap-northeast-1 (Токио) — для японского рынка

Модель ценообразования AWS

  • Pay-as-you-go — платишь только за использованные ресурсы
  • Reserved Instances — скидки до 75% при долгосрочных обязательствах
  • Spot Instances — скидки до 90% на временно неиспользуемые ресурсы
  • Free Tier — бесплатный уровень для новых пользователей на 12 месяцев
  • Savings Plans — гибкие планы экономии на вычислительные ресурсы

Когда использовать AWS

  • Стартапы, которым нужна быстрая масштабируемость
  • Крупные корпорации с высокими требованиями к надежности
  • Проекты с непредсказуемой нагрузкой
  • Разработка и тестирование приложений
  • Backup и disaster recovery решения
  • Big Data и машинное обучение проекты
  • Глобальные приложения с пользователями по всему миру

Преимущества AWS

  • Самая большая экосистема облачных сервисов
  • Высокая надежность и доступность (99.99% SLA)
  • Глобальная инфраструктура в 31 регионе
  • Обширная документация и сообщество
  • Соответствие множеству стандартов безопасности
  • Непрерывное развитие и добавление новых сервисов
  • Интеграция с популярными инструментами разработки

Недостатки AWS

  • Сложность в изучении из-за огромного количества сервисов
  • Может быть дороже конкурентов при неправильной настройке
  • Vendor lock-in — привязка к экосистеме Amazon
  • Сложное ценообразование с множеством переменных
  • Требует экспертизы для оптимального использования

AWS vs конкуренты

  • AWS vs Azure — AWS лидирует по количеству сервисов, Azure лучше интегрируется с Microsoft продуктами
  • AWS vs Google Cloud — AWS более зрелый, GCP сильнее в машинном обучении и аналитике
  • AWS vs DigitalOcean — AWS для корпораций, DigitalOcean для простых проектов

Рекомендации по внедрению

Для успешного внедрения AWS рекомендуется:

  • Начать с Free Tier и простых сервисов (EC2, S3)
  • Пройти официальные курсы AWS Training
  • Изучить Well-Architected Framework
  • Настроить мониторинг расходов с помощью Cost Explorer
  • Использовать Infrastructure as Code (CloudFormation или Terraform)
  • Внедрить автоматизацию с помощью AWS CLI и SDK
  • Получить AWS сертификацию для команды

FAQ

Подходит ли AWS для продакшена?

Да, AWS используется миллионами компаний в production, включая Netflix, Airbnb, NASA и многие другие крупные организации.

Сколько стоит AWS для небольшого проекта?

Для небольших проектов стоимость может составлять $10-100 в месяц. Новые пользователи получают 12 месяцев бесплатного использования в рамках Free Tier.

Нужна ли команда DevOps для работы с AWS?

Для простых задач можно обойтись без DevOps экспертизы, но для production систем рекомендуется иметь специалистов с опытом работы в AWS.