Развертывание 1С-Битрикс в AWS
AWS остаётся актуальным для компаний с международным присутствием или для тех, кто работает с иностранными клиентами и не хранит российские персональные данные. Регион eu-central-1 (Франкфурт) или eu-west-1 (Ирландия) дают приемлемую латентность из России. Для данных без ограничений по локализации — AWS даёт зрелую инфраструктуру, богатый набор managed-сервисов и предсказуемую работу.
Главная проблема для российских компаний: оплата через иностранные карты или через реселлеров. Это решается, но требует отдельного учёта.
Архитектура в AWS
Рекомендуемая продуктовая схема:
Route 53 → CloudFront → ALB → EC2 (Auto Scaling Group)
↓
RDS MySQL (Multi-AZ)
ElastiCache Redis
S3 (uploads)
Для небольших проектов достаточно: EC2 + RDS + S3 + CloudFront.
EC2: выбор типа инстанса
Для Битрикс-сайтов:
| Нагрузка | Тип инстанса | RAM | CPU |
|---|---|---|---|
| Старт / разработка | t3.medium | 4 GB | 2 vCPU |
| Средний трафик | c6i.xlarge | 8 GB | 4 vCPU |
| Высокий трафик | c6i.2xlarge | 16 GB | 8 vCPU |
Тип c6i (compute-optimized) предпочтительнее t3 для PHP — нет кредитов CPU, стабильная производительность.
# Создание через AWS CLI
aws ec2 run-instances \
--image-id ami-0faab6bdbac9486fb \
--instance-type c6i.xlarge \
--key-name my-keypair \
--security-group-ids sg-xxxxxxxx \
--subnet-id subnet-xxxxxxxx \
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":50,"VolumeType":"gp3","Iops":3000}}]' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=bitrix-web}]'
Тип диска — gp3 вместо gp2: дешевле и 3000 IOPS по умолчанию без доплаты.
VPC и группы безопасности
# Security Group для веб-сервера
aws ec2 create-security-group \
--group-name bitrix-web-sg \
--description "Bitrix web server" \
--vpc-id vpc-xxxxxxxx
# Разрешить HTTP, HTTPS, SSH
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxxx \
--ip-permissions \
'IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges=[{CidrIp=0.0.0.0/0}]' \
'IpProtocol=tcp,FromPort=443,ToPort=443,IpRanges=[{CidrIp=0.0.0.0/0}]' \
'IpProtocol=tcp,FromPort=22,ToPort=22,IpRanges=[{CidrIp=YOUR_IP/32}]'
RDS MySQL
# Создать RDS MySQL 8.0
aws rds create-db-instance \
--db-instance-identifier bitrix-db \
--db-instance-class db.t3.medium \
--engine mysql \
--engine-version 8.0.35 \
--master-username bitrix_admin \
--master-user-password 'STRONG_PASSWORD' \
--allocated-storage 50 \
--storage-type gp3 \
--vpc-security-group-ids sg-xxxxxxxx \
--db-subnet-group-name bitrix-subnet-group \
--no-publicly-accessible \
--backup-retention-period 7 \
--character-set-name utf8mb4
Подключение в bitrix/.settings.php:
'connections' => [
'value' => [
'default' => [
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => 'bitrix-db.xxxx.eu-central-1.rds.amazonaws.com',
'database' => 'bitrix',
'login' => 'bitrix_admin',
'password' => 'STRONG_PASSWORD',
'options' => 2,
],
],
],
S3 для загрузок
# Создать бакет
aws s3 mb s3://my-bitrix-uploads --region eu-central-1
# Включить версионирование
aws s3api put-bucket-versioning \
--bucket my-bitrix-uploads \
--versioning-configuration Status=Enabled
# Политика доступа для публичных файлов (только для /upload/)
aws s3api put-bucket-policy \
--bucket my-bitrix-uploads \
--policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::my-bitrix-uploads/*"}]}'
Интеграция с Битрикс через IAM-роль (не через ключи доступа — это безопаснее):
# Создать IAM-роль для EC2
aws iam create-role \
--role-name BitrixS3Role \
--assume-role-policy-document file://ec2-trust-policy.json
# Прикрепить политику доступа к S3
aws iam attach-role-policy \
--role-name BitrixS3Role \
--policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
CloudFront для статики и CDN
CloudFront — CDN от AWS с точками присутствия по всему миру. Для Битрикс — кэшировать статику (/bitrix/cache/, /upload/, CSS, JS), динамику не кэшировать.
# Создать дистрибьюцию CloudFront (упрощённо)
aws cloudfront create-distribution \
--distribution-config file://cloudfront-config.json
Ключевые настройки в cloudfront-config.json:
-
Origins: EC2 (для PHP) + S3 (для/upload/). -
CacheBehaviors: путь/upload/*→ S3-ориджин,/*.php→ EC2, по умолчанию → EC2. -
ViewerProtocolPolicy: redirect-to-https. -
Compress: true — автосжатие текстовых ресурсов.
ElastiCache Redis
aws elasticache create-cache-cluster \
--cache-cluster-id bitrix-redis \
--cache-node-type cache.t3.medium \
--engine redis \
--engine-version 7.0 \
--num-cache-nodes 1 \
--cache-subnet-group-name bitrix-cache-subnet
ACM: SSL-сертификат
AWS Certificate Manager выдаёт бесплатные сертификаты для использования с ALB и CloudFront:
aws acm request-certificate \
--domain-name example.com \
--validation-method DNS \
--subject-alternative-names "*.example.com"
После создания — добавить DNS-запись для валидации (ARN сертификата привязывается к ALB или CloudFront).
IAM-политика минимальных привилегий для Битрикс
Принцип наименьших привилегий: вместо AmazonS3FullAccess — только нужное:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
"Resource": "arn:aws:s3:::my-bitrix-uploads/*"
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-bitrix-uploads"
}
]
}
Сроки развертывания
| Вариант | Состав | Срок |
|---|---|---|
| EC2 + RDS + S3 | Базовая продуктовая инфраструктура | 2–3 дня |
| + CloudFront + ElastiCache | CDN, кэш сессий | 1–2 дня дополнительно |
| HA с Auto Scaling | ALB, ASG, Multi-AZ RDS, полный failover | 5–8 дней |







