[Документация Yandex Cloud](../../index.md) > [Практические руководства](../index.md) > Построение Data Platform > Использование кластера Yandex Managed Service for Valkey™ в качестве хранилища кеша для «1С-Битрикс: Управление сайтом»

# Использование кластера Yandex Managed Service for Valkey™ в качестве хранилища кеша для «1С-Битрикс: Управление сайтом»

{% note info %}

В [регионе Казахстан](../../overview/concepts/region.md) доступна только [зона доступности](../../overview/concepts/geo-scope.md) `kz1-a`.

{% endnote %}

# Использование кластера Yandex Managed Service for Valkey™ в качестве хранилища кеша для «1С-Битрикс: Управление сайтом»

Кластер Yandex Managed Service for Valkey™ можно использовать как внешнее хранилище кеша для сайта на «1С-Битрикс: Управление сайтом».

Чтобы настроить кеширование:

1. [Подготовьте инфраструктуру](#deploy-infrastructure).
1. [Настройте «1С-Битрикс: Управление сайтом»](#configure-bitrix).
1. [Проверьте результат](#test).

Если созданные ресурсы вам больше не нужны, [удалите их](#clear-out).

## Перед началом работы {#before-you-begin}

Зарегистрируйтесь в Yandex Cloud и создайте [платежный аккаунт](../../billing/concepts/billing-account.md):
1. Перейдите в [консоль управления](https://kz.console.yandex.cloud), затем войдите в Yandex Cloud или зарегистрируйтесь.
1. На странице **[Yandex Cloud Billing](https://kz.console.yandex.cloud/billing)** убедитесь, что у вас подключен платежный аккаунт, и он находится в [статусе](../../billing/concepts/billing-account-statuses.md) `ACTIVE` или `TRIAL_ACTIVE`. Если платежного аккаунта нет, [создайте его](../../billing/quickstart/index.md) и [привяжите](../../billing/operations/pin-cloud.md) к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder), в котором будет работать ваша инфраструктура, на [странице облака](https://kz.console.yandex.cloud/cloud).

[Подробнее об облаках и каталогах](../../resource-manager/concepts/resources-hierarchy.md).


### Необходимые платные ресурсы {#paid-resources}

* Виртуальная машина: использование вычислительных ресурсов, хранилища, публичного IP-адреса и операционной системы ([тарифы Yandex Compute Cloud](../../compute/pricing.md)).
* Кластер Yandex Managed Service for Valkey™: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий ([тарифы Yandex Managed Service for Valkey™](../../managed-valkey/pricing.md)).

Для этого руководства используется пробная версия «1С-Битрикс» с ознакомительным периодом в 30 дней. Стоимость электронных версий продукта вы можете уточнить на официальном ресурсе [«1С-Битрикс»](https://www.1c-bitrix.ru).


## Подготовьте инфраструктуру {#deploy-infrastructure}

{% list tabs group="instructions" %}

- Вручную {#manual}

    1. [Создайте сеть](../../vpc/operations/network-create.md) с именем `network-1c`. При создании сети отключите опцию **Создать подсети**.
    1. В сети `network-1c` [создайте подсеть](../../vpc/operations/subnet-create.md) со следующими параметрами:

        * **Имя** — `subnet-a`.
        * **Зона доступности** — `kz1-a`.
        * **CIDR** — `192.168.0.0/24`.

    1. В сети `network-1c` [создайте группы безопасности](../../vpc/operations/security-group-create.md):

        1. С именем `bitrix-sg` для ВМ в облаке. [Задайте следующие правила](../../vpc/operations/security-group-add-rule.md) для этой группы безопасности:

            | Направление<br>трафика | Описание | Диапазон портов | Протокол | Источник /<br>Назначение | IPv4 CIDR |
            |------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
            | Исходящий              | `ANY`                                                                            | `Весь`                                                                          | `Любой`            | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |
            | Входящий               | `HTTP`                                                                           | `80`                                                                            | `TCP`                                       | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |
            | Входящий               | `EXT-HTTPS`                                                                      | `443`                                                                           | `TCP`                                       | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |
            | Входящий               | `SSH`                                                                            | `22`                                                                            | `TCP`                                       | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |

        1. С именем `valkey-sg` для кластера Yandex Managed Service for Valkey™. [Задайте следующие правила](../../vpc/operations/security-group-add-rule.md) для этой группы безопасности:

            | Направление<br>трафика | Описание | Диапазон портов | Протокол | Источник /<br>Назначение | IPv4 CIDR |
            |------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
            | Исходящий              | `ANY`                                                                            | `Весь`                                                                          | `Любой`            | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |
            | Входящий               | `EXT-HTTPS`                                                                      | `6379`                                                                          | `TCP`                                       | `Префикс`                                                                                    | `0.0.0.0/0`                                                                      |

    1. [Создайте виртуальную машину](../../compute/operations/images-with-pre-installed-software/create.md) в Compute Cloud со следующей конфигурацией:

        * В блоке **Образ загрузочного диска** выберите образ [1С-Битрикс](https://yandex.cloud/ru-kz/marketplace/products/yc/bitrix-1c-centos-7).
        * В блоке **Сетевые настройки** задайте настройки:

            * **Подсеть** — сеть `network-1c` и подсеть `subnet-a`.
            * **Публичный IP-адрес** — `Автоматически`.
            * **Группы безопасности** — `bitrix-sg`.
            * **Внутренний IPv4-адрес** — `Автоматически`.

    1. [Подключитесь к ВМ](../../compute/operations/images-with-pre-installed-software/operate.md#vm-connect) по SSH и установите зависимости:

        ```bash
        sudo yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo && \
        sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm && \
        sudo yum install yum-utils && \
        sudo yum-config-manager --enable remi-php74 && \
        sudo yum update && \
        php -v
        ```

        Последняя команда покажет версию PHP, которая установлена на ВМ. Для корректной работы «1С-Битрикс» необходима версия PHP 7.4 или выше.

    1. Установите «1С-Битрикс: Управление сайтом» на ВМ. Для этого в браузере перейдите по адресу `http://<публичный_IP-адрес_ВМ>/` и следуйте инструкциям установщика.

    1. Создайте тестовый сайт на «1С-Битрикс».

    1. [Создайте кластер](../../managed-valkey/operations/cluster-create.md) Yandex Managed Service for Valkey™ в следующей конфигурации:

        * **Версия Valkey** — `9.1`.
        * **Персистентность** — `На репликах`.
        * **Сетевые настройки** — сеть `network-1c` и группа безопасности `valkey-sg`.
        * **Настройки СУБД**:
            * **Пароль** — `default`.
            * **Настроить** → **Maxmemory policy** — `ALLKEYS LRU`. Эта настройка позволит Valkey™ удалять самые старые ключи при заполнении памяти.
        * **Доступ из WebSQL** — включен.


- Terraform {#tf}

  1. Если у вас еще нет Terraform, [установите его](terraform-quickstart.md#install-terraform).
  1. [Получите данные для аутентификации](terraform-quickstart.md#get-credentials). Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
  1. [Настройте и инициализируйте провайдер](terraform-quickstart.md#configure-provider). Чтобы не создавать конфигурационный файл с настройками провайдера вручную, [скачайте его](https://github.com/yandex-cloud-examples/yc-terraform-provider-settings/blob/main/provider.tf).
  1. Поместите конфигурационный файл в отдельную рабочую директорию и [укажите значения параметров](terraform-quickstart.md#configure-provider). Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
  1. Скачайте в ту же рабочую директорию файл конфигурации [yc-valkey-as-1c-cache-storage.tf](https://github.com/yandex-cloud-examples/yc-valkey-1c-locks/blob/main/yc-valkey-as-1c-cache-storage.tf).

      В этом файле описаны:

      * сеть;
      * подсети;
      * группы безопасности;
      * кластер Yandex Managed Service for Valkey™;
      * виртуальная машина с публичным доступом из интернета и предустановленным «1С-Битрикс: Управление сайтом».
      * Настройки для «1С-Битрикс: Управление сайтом».

          {% note info %}

          Конкретные настройки «1С-Битрикс» могут отличаться в зависимости от пользовательской реализации. Примеры конфигурации кеша приведены в [документации продукта](https://dev.1c-bitrix.ru/).

          {% endnote %}

  1. В файле `yc-valkey-as-1c-cache-storage.tf` укажите значение переменной `valkey_password` — пароль пользователя в кластере Yandex Managed Service for Valkey™.

  1. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      ```bash
      terraform validate
      ```
      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  1. Создайте необходимую инфраструктуру:

      1. Выполните команду для просмотра планируемых изменений:
      
         ```bash
         terraform plan
         ```
      
         Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
      
      1. Если вас устраивают планируемые изменения, внесите их:
      
         1. Выполните команду:
      
            ```bash
            terraform apply
            ```
      
         1. Подтвердите изменение ресурсов.
         1. Дождитесь завершения операции.

      В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления](https://kz.console.yandex.cloud).

  После создания ресурсов в терминале будут выведены параметры для подключения:

  * `valkey_endpoint` — эндпоинт для подключения к кластеру Yandex Managed Service for Valkey™.
  * `bitrix_vm_public_ip` — публичный IP-адрес виртуальной машины с «1С-Битрикс: Управление сайтом».


{% endlist %}

## Настройте «1С-Битрикс» {#configure-bitrix}

{% list tabs group="instructions" %}

- Вручную {#manual}

  1. [Подключитесь к ВМ](../../compute/operations/images-with-pre-installed-software/operate.md#vm-connect) с «1С-Битрикс» по SSH.

  1. Перейдите в каталог сайта и откройте файл дополнительных настроек `bitrix/.settings_extra.php`.

  1. Укажите, что для кеширования используется Redis, и задайте адрес кластера Yandex Managed Service for Valkey™:

      ```php
      <?php
      return [
          'cache' => [
              'value' => [
                  'type' => [
                      'class_name' => '\Bitrix\Main\Data\CacheEngineRedis',
                  ],
                  'redis' => [
                      'servers' => [
                          [
                              'host' => 'c-<идентификатор_кластера>.rw.mdb.yandexcloud.net',
                              'port' => 6379,
                          ],
                      ],
                      'serializer' => \Redis::SERIALIZER_IGATBINARY ?? null,
                  ],
              ],
              'readonly' => true,
          ],
      ];
      ```

      Идентификатор кластера можно получить со [списком кластеров](../../managed-valkey/operations/cluster-list.md#list-clusters) в каталоге.

      {% note info %}

      Конкретные настройки «1С-Битрикс» могут отличаться в зависимости от пользовательской реализации. Примеры конфигурации кеша приведены в [документации продукта](https://dev.1c-bitrix.ru/).

      {% endnote %}


- Terraform {#tf}

  Настройка «1С-Битрикс: Управление сайтом» происходит при создании ВМ. Дополнительная настройка не требуется.


{% endlist %}


## Проверьте результат {#test}

1. Авторизуйтесь на вашем сайте и перейдите в панель управления.
1. Откройте **Настройки** → **Настройки производительности** → **Панель производительности**.
1. На вкладке **Битрикс** проверьте, что кеширование включено и в качестве хранилища используется Redis.
1. Убедитесь, что данные действительно попадают в кластер:

    1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог с нужным кластером.
    1. [Перейдите](https://kz.console.yandex.cloud/link/managed-valkey) в сервис **Yandex Managed Service for&nbsp;Valkey™**.
    1. Нажмите на имя нужного кластера и выберите вкладку **Мониторинг**. На открывшейся странице будут отображены графики, отражающие состояние кластера.
    1. Убедитесь, что появились клиенты, растет объем хранимых данных и трафик, а на репликах есть активность записи на диск из-за включенной персистентности.

## Удалите созданные ресурсы {#clear-out}

Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:

{% list tabs group=instructions %}

- Вручную {#manual}

    1. [Удалите кластер Yandex Managed Service for Valkey™](../../managed-valkey/operations/cluster-delete.md).
    1. [Удалите виртуальную машину](../../compute/operations/vm-control/vm-delete.md).
    1. Если вы зарезервировали публичные статические IP-адреса, освободите и [удалите их](../../vpc/operations/address-delete.md).


- Terraform {#tf}

    1. В терминале перейдите в директорию с планом инфраструктуры.
    
        {% note warning %}
    
        Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
    
        {% endnote %}
    
    1. Удалите ресурсы:
    
        1. Выполните команду:
    
            ```bash
            terraform destroy
            ```
    
        1. Подтвердите удаление ресурсов и дождитесь завершения операции.
    
        Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.


{% endlist %}