[Документация Yandex Cloud](../../index.md) > [Практические руководства](../index.md) > [Построение Data Platform](index.md) > Создание кластера PostgreSQL для «1С:Предприятия»

# Создание кластера PostgreSQL для «1С:Предприятия»

{% note info %}

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

{% endnote %}

Managed Service for PostgreSQL позволяет создавать отказоустойчивые кластеры PostgreSQL, оптимизированные для работы с системой «1С:Предприятие». Для этого в сервисе поддерживаются версии PostgreSQL 14-1c, 15-1c, 16-1c, 17-1c, 18-1c, в которых установлены все необходимые [расширения](#extensions) и изменена конфигурация менеджера подключений.

{% note warning %}

Систему «1С:Предприятие» можно подключить только к кластерам версии 14-1c, 15-1c, 16-1c, 17-1c, 18-1c.

{% endnote %}

При выборе [класса хоста](../../managed-postgresql/concepts/instance-types.md) ориентируйтесь на количество пользователей вашей инсталляции «1С:Предприятия». На хостах класса **s2.small** смогут одновременно работать до 50 пользователей. Класс **s2.medium** рекомендуется использовать, если с базой будут работать 50 и более пользователей. Размер хранилища следует выбирать исходя из размеров вашей информационной базы — учитывайте возможный рост объемов данных.


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

В стоимость поддержки описываемого решения входит:

* Кластер Managed Service for PostgreSQL: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий ([тарифы Managed Service for PostgreSQL](../../managed-postgresql/pricing.md)).
* Публичные IP-адреса, если для хостов кластера включен публичный доступ ([тарифы Virtual Private Cloud](../../vpc/pricing.md)).


## Создайте кластер Managed Service for PostgreSQL {#create-cluster}

{% list tabs group=instructions %}

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

    [Создайте](../../managed-postgresql/operations/cluster-create.md#create-cluster) кластер Managed Service for PostgreSQL любой подходящей конфигурации со следующими настройками:

    * **Окружение** — `PRODUCTION`.
    * **Версия** — версия PostgreSQL для работы с системой «1С:Предприятия». Название таких версий заканчивается на `-1с`.
    * **Класс хоста** — не ниже `s2.small`.
    * **Хосты** — добавьте не меньше двух дополнительных хостов, разместив их в разных зонах доступности. Это обеспечит отказоустойчивость кластера. Репликация между хостами будет настроена автоматически. Подробнее в разделе [Репликация в Managed Service for PostgreSQL](../../managed-postgresql/concepts/replication.md).

- Terraform {#tf}

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

    1. Скачайте в ту же рабочую директорию файл конфигурации [postgresql-1c.tf](https://github.com/yandex-cloud-examples/yc-postgresql-1c/blob/main/postgresql-1c.tf).

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

        * [сеть](../../vpc/concepts/network.md#network);
        * [подсеть](../../vpc/concepts/network.md#subnet);
        * [группа безопасности](../../vpc/concepts/security-groups.md) и правило, разрешающее подключение к кластеру;
        * кластер Managed Service for PostgreSQL для «1С:Предприятия» с базой данных и пользователем.

    1. Укажите параметры инфраструктуры в файле конфигурации `postgresql-1c.tf` в блоке `locals`:

        * `cluster_name` — имя кластера.
        * `pg_version` — версия PostgreSQL для работы с системой «1С:Предприятия». Название таких версий заканчивается на `-1с`.
        * `db_name` — имя базы данных.
        * `username` и `password` — имя и пароль пользователя-владельца базы данных.

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

       ```bash
       terraform validate
       ```

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

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

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

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

{% endlist %}

Создание кластера БД может занять несколько минут.

## Подключите базу к «1С:Предприятию» {#connect-to-1c}

Подключите созданную базу в качестве информационной базы «1С:Предприятия». При добавлении базы используйте следующие параметры:

* **Кластер серверов** — имя сервера «1С:Предприятия», на котором будет создана информационная база.
* **Имя информационной базы в кластере** — имя создаваемой информационной базы на сервере «1С:Предприятия».
* **Защищенное соединение** — отключено.
* **Тип СУБД** — `PostgreSQL`.
* **Сервер баз данных** — `c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz port=6432`.
* **Имя базы данных** — имя базы данных, указанное при создании кластера Managed Service for PostgreSQL.
* **Пользователь базы данных** — имя пользователя-владельца базы данных.
* **Пароль пользователя** — пароль пользователя-владельца базы данных.
* **Создать базу данных в случае ее отсутствия** — отключено.

### Расширения PostgreSQL для поддержки системы «1С:Предприятие» {#extensions}

Список расширений, которые установлены в кластерах PostgreSQL версии 14-1c, 15-1c, 16-1c, 17-1c, 18-1c:

* [online_analyze](https://postgrespro.ru/docs/postgrespro/10/online-analyze)

* [plantuner](https://postgrespro.ru/docs/postgrespro/10/plantuner)

* [fasttrun](https://postgrespro.ru/docs/postgrespro/10/fasttrun)

* [fulleq](https://postgrespro.ru/docs/postgrespro/10/fulleq)

* [mchar](https://postgrespro.ru/docs/postgrespro/10/mchar)

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

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

{% list tabs group=instructions %}

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

    [Удалите кластер Managed Service for PostgreSQL](../../managed-postgresql/operations/cluster-delete.md).

- Terraform {#tf}

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

{% endlist %}