Назад | Перейти на главную страницу

Улучшение настройки Magento на AWS

Итак, я задал вопрос Вот о том, как улучшить подключение к RDS из экземпляра EC2. До сих пор это было успешным.

В настоящее время у меня есть лучшая установка, чем та, что была у меня изначально, и я ищу способ ее улучшить. Текущая настройка указана ниже.

ELB с автомасштабированием для нескольких EC2 экземпляры, работающие на magento.

EC2 экземпляры, работающие на Magento с HHVM с участием varnish и NGINX

RDS все EC2 экземпляр, на котором запущен magento, подключен к этому хранилищу данных с 3 репликами чтения

Elastic cache Redis сессия со всех EC2 экземпляры хранятся здесь.

S3 все медиа и файлы хранятся здесь и монтируются на всех экземплярах EC2.

Настроив это до сих пор, я смог принести TTFB до 1,79 секунды с 7 секунд при первом запуске, но он все еще работает немного медленнее, чем на нашем голом железном сервере с TTFB 800 мс.

Как я могу улучшить эту архитектуру?

Пара быстрых предложений:

  1. Настройте CloudFront как CDN (при условии, что вы хотите оставаться в инфраструктуре AWS). Это помогает в следующих случаях:
    • Распределение медиаресурсов по регионам, чтобы обслуживать активы географически ближе к вашему клиенту
    • Выгрузите запросы ресурсов в отдельный домен, чтобы упростить ограничения браузера на одном узле
  2. Вы упомянули, что используете Redis для сеансов, но я не вижу, что у вас есть для кэширования серверной части / полной страницы / конфигурации и т. Д. Я бы рекомендовал использовать отдельную базу данных вашего экземпляра ElastiCache для каждого типа кеша.
  3. Отключите модули Magento, которые больше не используются. Это должно ускорить Magento, так как при загрузке страницы загружаются только необходимые модули.

При правильной настройке Magento и его инфраструктуры легко достичь скорости TTFB <100 мс. Также возможно, что после всех этих оптимизаций узким местом может стать сам код (нестандартный функционал, плохо написанный код и т. д.).