Розгортання 1С-Bitrix в 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: вибір типу інстансу
Для Bitrix-сайтів:
| Навантаження | Тип інстансу | 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/*"}]}'
Інтеграція з Bitrix через 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 — кешувати статику (/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-політика мінімальних привілеїв для Bitrix
Принцип найменших привілеїв: замість 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 днів |







