Развертывание 1С-Битрикс на AWS: архитектура и оптимизация под ключ

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Развертывание 1С-Битрикс на AWS: архитектура и оптимизация под ключ
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    833
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

AWS — зрелая платформа для международных проектов на 1С-Битрикс. Если ваши пользователи распределены по всему миру, а данные не подпадают под локализационные требования, регион eu-central-1 или eu-west-1 даёт латентность ~50 мс из Европы и ~150 мс из России. Главная головная боль — оплата. Мы решаем её через проверенных реселлеров, снимая с вас администрирование платежей.

Недавно мы разворачивали Битрикс24 для компании с 500 сотрудниками, использующей CRM и портал. После миграции на AWS время загрузки страниц сократилось с 3 секунд до 800 мс благодаря CloudFront и Redis. Серверная нагрузка снизилась вдвое за счёт Auto Scaling и кэширования. Оцените, сколько ресурсов сэкономит ваша команда — свяжитесь с нами для бесплатного аудита.

Почему AWS подходит для 1С-Битрикс?

AWS предоставляет managed-сервисы, которые сокращают администрирование и повышают отказоустойчивость. Согласно документации 1С-Битрикс, рекомендованный стек — PHP 8.1+, MySQL 8.0 и кэширование Redis. CDN CloudFront ускоряет загрузку страниц для пользователей по всему миру, а Auto Scaling автоматически добавляет ресурсы при пиках. Для российских компаний с международным присутствием AWS — экономически выгодное решение: нет привязки к локальным провайдерам, и вы платите только за использованные ресурсы.

Как выглядит архитектура развертывания 1С-Битрикс в AWS?

Рекомендуемая продуктовая схема:

Route 53 → CloudFront → ALB → EC2 (Auto Scaling Group) → RDS MySQL (Multi-AZ)
                                 ↓
                         ElastiCache Redis, S3 (uploads)

Для небольших проектов достаточно: EC2 + RDS Multi-AZ + 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, стабильная производительность. Тип диска — gp3 вместо gp2: дешевле и 3000 IOPS по умолчанию.

RDS MySQL

Создайте Multi-AZ RDS MySQL 8.0 для автоматического failover. Подключение в 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 для загрузок

Создайте бакет и настройте IAM-роль для EC2 (не ключи доступа — это безопаснее):

{
  "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"
    }
  ]
}

CloudFront

Настройте дистрибьюцию с двумя ориджинами: EC2 (для PHP-динамики) и S3 (для /upload/). Включите сжатие и HTTPS. Кэшируйте статику, динамику — нет.

ElastiCache Redis

Redis-кластер для сессий и кэша данных. Битрикс подключается через модуль memcached.

ACM SSL

AWS Certificate Manager выдаёт бесплатные сертификаты для ALB и CloudFront.

VPC и Security Groups

Все компоненты размещаются в VPC с частными subnet для RDS и Redis. Security Groups ограничивают доступ: только EC2 может обращаться к RDS (порт 3306) и Redis (порт 6379). Для EC2 открыт только порт 80/443 от ALB.

Все компоненты настраиваются через IaC (Terraform/CloudFormation) — воспроизводимость гарантирована.

Как обеспечить отказоустойчивость?

Для высокой доступности используйте Auto Scaling Group с минимум двумя EC2 в разных зонах, Multi-AZ RDS и ElastiCache с репликой. ALB распределяет трафик. CloudFront служит дополнительным буфером при пиках. Такая архитектура выдерживает отказ целой зоны доступности без потери сервиса. Гарантия SLA — 99.99%.

Процесс и сроки развертывания

  1. Аналитика требований — 1 день
  2. Проектирование схемы — 1–2 дня
  3. Настройка через IaC — 1–2 дня
  4. Развёртывание и нагрузочное тестирование — 1–2 дня
  5. Передача документации и обучение — 1 день
Вариант Состав Срок
EC2 + RDS Multi-AZ + S3 Базовая продуктовая инфраструктура 2–3 дня
+ CloudFront + ElastiCache CDN, кэш сессий 1–2 дня дополнительно
HA с Auto Scaling ALB, ASG, Multi-AZ RDS, полный failover 5–8 дней

Что входит в развертывание под ключ

  • Архитектурная схема инфраструктуры с указанием всех компонентов
  • Конфигурация EC2 и RDS с оптимизацией под Битрикс
  • Настройка S3 и CloudFront с правилами кэширования
  • Сертификаты SSL через ACM
  • IAM-политика минимальных привилегий
  • Настройка CloudWatch для мониторинга и алертов
  • Руководство по эксплуатации
  • Техническая поддержка 30 дней после запуска

Оценим ваш проект за 1 день. Закажите развертывание и получите готовую инфраструктуру с документацией.

Дополнительно можем интегрировать мониторинг через CloudWatch и настроить автоматические бекапы RDS с retention 30 дней. Для критичных проектов предлагаем Disaster Recovery в другом регионе. Получите консультацию по архитектуре — свяжитесь с нами.

Разработка и настройка модулей 1С-Битрикс

Главная ловушка Битрикса — init.php. Сунул туда обработчик OnBeforeIBlockElementUpdate, потом ещё один — через год файл на 2000 строк, и при каждом хите весь этот ком выполняется. Мы переносим бизнес-логику в полноценные модули с D7 ORM, собственными таблицами и административным интерфейсом. Модуль можно отключить, перенести на другой проект, покрыть тестами — с init.php ничего из этого не получится. Опыт команды — 10+ лет в Битрикс, сертифицированные специалисты, гарантия на код 6 месяцев. Закажите консультацию — расскажем, как перевести legacy-код в модульную архитектуру.

Почему init.php — худшее место для бизнес-логики?

Init.php не поддерживает автозагрузку классов, не имеет изолированного пространства имён, не поддаётся модульному тестированию и не отключается без правки самого файла. Каждый обработчик, написанный там, срабатывает на каждом запросе, даже если он не нужен. В модуле вы регистрируете обработчика через EventManager, и он выполняется только при наступлении события. Разница в производительности — до 3 раз при 10+ обработчиках.

Стандартные модули: типовые проблемы и решения

Информационные блоки. Архитектура ИБ — первое, что мы ревьюим на любом проекте. Классическая ошибка: один инфоблок каталога с 80 свойствами, из которых 30 — множественные. Таблица b_iblock_element_property раздувается до миллионов строк, CIBlockElement::GetList на фильтрации по трём свойствам уходит в полное сканирование. Переносим справочники в Highload-блоки, убираем множественные свойства где можно, проектируем структуру с прицелом на то, что каталог вырастет в 5 раз.

Интернет-магазин (sale). Бизнес-правила корзины — отдельная история. Настраиваем приоритеты скидок, чтобы две акции не дали 60% вместо 30%, подключаем платёжные обработчики, прописываем кастомную валидацию через OnSaleOrderBeforeSaved.

Поиск. Встроенный модуль search с морфологией работает до 10–15 тысяч элементов. Дальше — Elasticsearch. Настраиваем через API модуля поиска Битрикс, индексируем через CSearchFullText или кастомные индексаторы.

Highload-блоки для справочников, логов, пользовательских данных — вместо раздутых ИБ. Прямые запросы через Bitrix\Highloadblock\HighloadBlockTable, собственные таблицы вместо EAV-структуры стандартных инфоблоков. Миллион записей — без деградации.

Почтовые события. Настройка — не только шаблоны в b_event_message. Главное — SPF, DKIM, DMARC на DNS, иначе транзакционные письма летят в спам. Проверяем доставляемость, настраиваем bounce-обработку.

Проектирование инфоблоков для производительности

Используем Highload-блоки для справочных данных (цвета, размеры, производители), которые не участвуют в сложных выборках. Для торговых предложений — отдельный инфоблок с привязкой через IBLOCK_ELEMENT_PROPERTY. Включаем INDEX_PROPERTY для часто фильтруемых свойств. Кэширование тегированное: при изменении элемента сбрасывается только связанный кеш. Highload-блоки обрабатывают до 10 раз быстрее, чем инфоблоки с множественными свойствами, на объёмах от 100 000 записей.

Разработка кастомных модулей

Каждый модуль — по структуре /local/modules/vendor.modulename/:

  • install/index.php — класс установки, создание таблиц через $DB->RunSQLBatch()
  • lib/ — классы D7 ORM, наследники Bitrix\Main\ORM\Data\DataManager
  • admin/ — административные страницы через CAdminList, CAdminForm
  • include.php — автозагрузка, регистрация обработчиков через EventManager::getInstance()->registerEventHandler()
  • REST API endpoints через \Bitrix\Rest\RestManager

Модуль регистрируется в системе, появляется в списке «Установленные решения», имеет свои настройки в /bitrix/admin/settings.php?mid=vendor.modulename. Его можно включать, отключать, обновлять через UpdateSystem или свой механизм миграций.

Примеры реализованных задач:

  • Управление акциями — визуальный конструктор условий через CAdminCalendar, таймеры через агенты (CAgent::AddAgent), аналитика эффективности в связке с модулем sale
  • Калькулятор стоимости — React-виджет на фронте, REST API в модуле, формулы хранятся в Highload-блоке
  • Система бронирования — real-time календарь, блокировка через $DB->StartTransaction() / $DB->Commit() при одновременных запросах, синхронизация с channel manager через webhook

Компоненты и композитный кэш

Кастомизация компонентов — через result_modifier.php и component_epilog.php, не через правку template.php стандартного шаблона. Так ядро обновляется безболезненно.

Композитный кэш (технология «Композитный сайт») — сервер отдаёт готовый HTML, минуя PHP-роутинг. Динамические зоны (корзина, авторизация) подгружаются через CBitrixComponent::setFrameMode(true) и AJAX. TTFB падает до 30–50 мс. Но есть нюансы: не все компоненты совместимы, $APPLICATION->ShowPanel() ломает композит, нужна аккуратная разметка <div id="bx-composite-...">.

Маркетплейс: аудит перед установкой

Перед установкой модуля с маркетплейса — обязательный аудит. Проверяем: SQL-запросы без подготовленных выражений (привет, SQL-инъекции), прямое обращение к $_REQUEST без фильтрации, использование устаревшего API старого ядра вместо D7, конфликты с модулем композитного кэширования. Модуль без обновлений больше года и с парой десятков установок — скорее всего, проблема на ближайшем обновлении PHP. Типичный случай: модуль вызывает CIBlockElement::GetList с несброшенным кешем — сайт падает при 5000 элементов.

Миграция на D7

При обновлении PHP или переходе на новую редакцию — рефакторинг устаревших вызовов:

  • CIBlockElement::GetList()Bitrix\Iblock\Elements\ElementTable::getList()
  • CSaleOrder::GetList()Bitrix\Sale\Order::getList()
  • CModule::IncludeModule()Bitrix\Main\Loader::includeModule() Тестирование на staging, откат через git при проблемах.

Согласно официальной документации 1С-Битрикс, D7 ORM является рекомендуемым средством для работы с данными, обеспечивая безопасность типов и автогенерацию запросов.

Сравнение подходов: Init.php vs Модуль

Критерий Init.php Модуль с D7 ORM
Производительность Выполняется на каждом хите Выполняется только при событии
Тестируемость Нет автозагрузки, тесты невозможны Полная поддержка PHPUnit
Поддерживаемость Кодовая база растёт бесконтрольно Изолированная структура, версионирование
Миграции Нет Собственные таблицы, управление через install
Кэширование Не поддерживает автоинвалидацию Тегированное кэширование, сброс по событию

Стоимость и состав разработки модулей

Что входит в разработку модуля?

  • Техническое задание и архитектурная схема
  • Код с соблюдением PSR-4 и код-стайла Битрикс
  • Unit-тесты (PHPUnit) на бизнес-логику
  • Интеграционные тесты на события и REST API
  • Документация по установке, настройке и API
  • Передача доступов к репозиторию и документации
  • Обучение администраторов работе с модулем
  • Гарантийная поддержка 6 месяцев

Ориентировочные сроки и сложность:

Сложность Примеры Сроки
Простой Виджет обратного звонка, баннерная система, простой калькулятор 3–5 дней
Средний Система бронирования, конфигуратор товаров, модуль отзывов с модерацией 1–2 недели
Сложный Мультирегиональность, кастомная программа лояльности, интеграция с ERP 2–4 недели
Enterprise Маркетплейс-платформа, сложные бизнес-процессы с множеством ролей 1–3 месяца

Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки вашего проекта.

Тестирование модулей

Unit-тесты через PHPUnit покрывают бизнес-логику: расчёт скидок, валидацию, формирование документов. Моки для Bitrix\Main\Application::getConnection() позволяют тестам не зависеть от БД. Интеграционные тесты проверяют обработчики событий на реальной базе — OnAfterIBlockElementAdd, OnSaleOrderSaved и другие. REST API endpoints тестируем через curl или PHPUnit HTTP-клиент. Критично для модулей, работающих с b_sale_order, b_catalog_price — где ошибка стоит денег.

Совместимость проверяется на PHP 7.4, 8.0, 8.1, 8.2 и редакциях: Стандарт, Малый бизнес, Бизнес. Проверяем конфликты с популярными модулями маркетплейса — они любят перехватывать те же события. Нагрузочное тестирование: замеры на 10K, 100K, 1M записей, профилирование через Xdebug на предмет утечек памяти и N+1 запросов.

Примеры из практики

Модуль акций для сети электроники. Штатные скидки модуля sale не покрывали сценарии «2+1», подарок при покупке от суммы, комбинированные условия. Собрали визуальный конструктор: маркетолог создаёт правила через drag-and-drop, без тикетов в разработку. Календарь акций, автодеактивация через агенты, аналитика в привязке к b_sale_order — конверсия, средний чек, количество применений. Время запуска новой акции упало с двух дней до получаса.

Калькулятор для строителей. Параметры (площадь, материалы, этажность) → формула → предварительная смета → заявка в CRM через CRest::call('crm.lead.add'). Региональные коэффициенты и сезонные наценки — из Highload-блока, цены материалов — из обмена с 1С. Количество целевых заявок выросло на треть: клиенты видят разбивку по статьям до звонка менеджеру.

Бронирование для сети отелей. Real-time доступность через AJAX-запросы к кастомной таблице vendor_booking_slots, расчёт тарифов по сезону, синхронизация с Booking.com через channel manager API. Блокировка номера при одновременном бронировании — через SELECT ... FOR UPDATE в транзакции. Таймзоны обрабатываются через \DateTimeZone — гость из Владивостока и менеджер из Москвы видят одну картину.

Оценим проект за 1 день. Пишите — расскажем, что входит в разработку под ключ. Свяжитесь с нами для консультации по вашему проекту. Закажите разработку модуля под ключ — получите готовое решение с документацией и поддержкой.