Что такое 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.