[Документация Yandex Cloud](../../../index.md) > [Практические руководства](../../index.md) > [Хранение и восстановление данных](../index.md) > [Развертывание Nextcloud в интеграции с Object Storage](index.md) > Развертывание Nextcloud на ВМ или в группе ВМ вручную

# Развертывание Nextcloud вручную на виртуальной машине или в группе виртуальных машин Yandex Compute Cloud в интеграции с Yandex Object Storage

В этом руководстве вы подключите [бакет](../../../storage/concepts/bucket.md) Object Storage к решению Nextcloud, развернутому на [виртуальной машине](../../../compute/concepts/vm.md) Compute Cloud с базой данных в [кластере](../../../managed-mysql/concepts/index.md) Yandex Managed Service for MySQL®. Для обеспечения отказоустойчивости и избыточности создаваемой под Nextcloud инфраструктуры вы масштабируете Nextcloud на [группу виртуальных машин](../../../compute/concepts/instance-groups/index.md) с распределением нагрузки при помощи [L7-балансировщика](../../../application-load-balancer/concepts/application-load-balancer.md) Yandex Application Load Balancer. В отказоустойчивой конфигурации Nextcloud будет доступен по доменному имени, для которого в Yandex Certificate Manager будет выпущен [TLS-сертификат](../../../certificate-manager/concepts/managed-certificate.md).

{% note info %}

Для реализации отказоустойчивой конфигурации Nextcloud вам понадобится домен, который будет использоваться L7-балансировщиком.

{% endnote %}

Схема отказоустойчивого решения:

![integrate-nextcloud](../../../_assets/tutorials/integrate-nextcloud/integrate-nextcloud.svg)

Где:
* `example.com` — ваш домен, для которого в Yandex Certificate Manager выпущен [сертификат](../../../certificate-manager/concepts/managed-certificate.md) и который подключен к [L7-балансировщику](../../../application-load-balancer/concepts/application-load-balancer.md) нагрузки.
* `nextcloud-alb` — L7-балансировщик, который равномерно распределяет входящий трафик от пользователей между хостами группы виртуальных машин.
* `nextcloud-instance-group` — [группа виртуальных машин](../../../compute/concepts/instance-groups/index.md), в которую входят хосты с развернутым решением Nextcloud.
* `nextcloud-db-cluster` — [кластер](../../../managed-mysql/concepts/index.md) Yandex Managed Service for MySQL®, в котором расположена служебная база данных Nextcloud.
* `my-nextcloud-bucket` — [бакет](../../../storage/concepts/bucket.md) Yandex Object Storage, подключенный к решению Nextcloud.

Чтобы развернуть Nextcloud в Yandex Cloud с интеграцией бакета Object Storage:

1. [Подготовьте облако к работе](#before-you-begin).
1. [Разверните Nextcloud в базовой конфигурации](#the-basic-variant):

    1. [Создайте и настройте облачную сеть](#setup-network).
    1. [Создайте сервисный аккаунт и статический ключ доступа](#setup-sa).
    1. [Создайте бакет Object Storage](#create-bucket).
    1. [Создайте виртуальную машину](#create-vm).
    1. [Создайте кластер Managed Service for MySQL®](#create-mysql-cluster).
    1. [Установите и настройте Nextcloud на виртуальной машине](#setup-nextcloud).
    1. [Протестируйте работу решения в базовой конфигурации](#test-simple).
1. [Разверните Nextcloud в отказоустойчивой конфигурации](#the-redundant-variant):

    1. [Масштабируйте кластер Managed Service for MySQL®](#expand-mysql-cluster).
    1. [Донастройте Nextcloud и создайте снимок диска виртуальной машины](#create-snapshot).
    1. [Добавьте TLS-сертификат в Yandex Certificate Manager](#issue-certificate).
    1. [Разверните группу виртуальных машин](#create-instance-group).
    1. [Создайте L7-балансировщик](#setup-balancer).
    1. [Создайте ресурсную A-запись в публичной зоне DNS вашего домена](#create-a-record).
    1. [Протестируйте работу решения в отказоустойчивой конфигурации](#test-redundant).

Если созданные ресурсы вам больше не нужны, [удалите их](#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}

В стоимость предлагаемого решения входят: 
* плата за [диски](../../../compute/concepts/disk.md), [снимки дисков](../../../compute/concepts/snapshot.md) и постоянно запущенные [ВМ](../../../compute/concepts/vm.md) ([тарифы Yandex Compute Cloud](../../../compute/pricing.md));
* плата за использование [публичных IP-адресов](../../../vpc/concepts/address.md#public-addresses) и [NAT-шлюзов](../../../vpc/concepts/gateways.md#nat-gateway) ([тарифы Yandex Virtual Private Cloud](../../../vpc/pricing.md));
* плата за [хранение данных](../../../storage/concepts/bucket.md) в Object Storage и [операции](../../../storage/operations/index.md) с ними ([тарифы Yandex Object Storage](../../../storage/pricing.md));
* плата за использование управляемой БД MySQL® ([тарифы Managed Service for MySQL®](../../../managed-mysql/pricing.md));
* при использовании Yandex Cloud DNS плата за [DNS-зоны](../../../dns/concepts/dns-zone.md#public-zones) и публичные DNS-запросы ([тарифы Cloud DNS](../../../dns/pricing.md));
* при использовании балансировщика нагрузки плата за количество ресурсных единиц [L7-балансировщика](../../../application-load-balancer/concepts/application-load-balancer.md) ([тарифы Yandex Application Load Balancer](../../../application-load-balancer/pricing.md));
* при использовании [лог-группы](../../../logging/concepts/log-group.md) для записи логов балансировщика плата за запись и хранение данных ([тарифы Yandex Cloud Logging](../../../logging/pricing.md)).

## Разверните Nextcloud в базовой конфигурации {#the-basic-variant}

Базовая конфигурация Nextcloud будет развернута на одной виртуальной машине, при этом служебная база данных Nextcloud будет создана в кластере Managed Service for MySQL® с одним хостом или непосредственно на ВМ с развернутым Nextcloud.

### Создайте и настройте облачную сеть {#setup-network}

1. Создайте [облачную сеть](../../../vpc/concepts/network.md#network) и [подсети](../../../vpc/concepts/network.md#subnet), необходимые для работы создаваемой облачной инфраструктуры:
   
   {% list tabs group=instructions %}
   
   - Консоль управления {#console}
   
     1. В [консоли управления](https://kz.console.yandex.cloud) выберите [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором вы будете создавать инфраструктуру.
     1. Перейдите в сервис **Virtual Private Cloud**.
     1. В правом верхнем углу нажмите **Создать сеть**.
     1. В поле **Имя** укажите имя сети `nextcloud-network`.
     1. Убедитесь, что опция **Создать подсети** включена, и нажмите **Создать сеть**.
   
   {% endlist %}
1. Создайте [группу безопасности](../../../vpc/concepts/security-groups.md), разрешающую необходимый для работы инфраструктуры Nextcloud трафик:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Virtual Private Cloud**.
      1. На панели слева выберите ![shield](../../../_assets/console-icons/shield.svg) **Группы безопасности**. 
      1. Нажмите **Создать группу безопасности**.
      1. В поле **Имя** укажите имя `nextcloud-sg`.
      1. В поле **Сеть** выберите созданную ранее сеть `nextcloud-network`.
      1. В блоке **Правила** [создайте](../../../vpc/operations/security-group-add-rule.md) следующие правила для управления трафиком:

          | Направление<br/>трафика | Описание | Диапазон портов | Протокол | Источник /<br/>Назначение | CIDR блоки /<br/>Группа безопасности |
          | --- | --- | --- | --- | --- | --- |
          | Входящий | `http`           | `80` | `TCP` | `CIDR` | `0.0.0.0/0` |
          | Входящий | `https`           | `443` | `TCP` | `CIDR` | `0.0.0.0/0` |
          | Входящий | `ssh`            | `22`   | `TCP`  | `CIDR` | `0.0.0.0/0` |
          | Входящий | `self`            | `Весь`   | `Любой`  | `Группа безопасности` | `Текущая` |
          | Входящий | `healthchecks`            | `Весь`   | `Любой`  | `Проверки состояния балансировщика` | `–` |
          | Исходящий | `any`           | `Весь` | `Любой` | `CIDR` | `0.0.0.0/0` |
      1. Нажмите **Создать**.

    {% endlist %}

1. Создайте [NAT-шлюз](../../../vpc/concepts/gateways.md#nat-gateway):

    Для доступа к бакетам Object Storage виртуальным машинам необходим доступ в интернет. Чтобы не назначать виртуальным машинам группы ВМ публичные IP-адреса, вы настроите для них доступ в интернет с помощью NAT-шлюза.

    {% note info %}

    Вы также можете настроить доступ ВМ к бакету с помощью [сервисных подключений](../../../vpc/concepts/private-endpoint.md).

    Эта функциональность находится на стадии [Preview](../../../overview/concepts/launch-stages.md).

    {% endnote %}

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Virtual Private Cloud**.
      1. На панели слева выберите ![arrows-opposite-to-dots](../../../_assets/console-icons/arrows-opposite-to-dots.svg) **Шлюзы** и нажмите кнопку **Создать шлюз**.
      1. В поле **Имя** задайте имя шлюза `nextcloud-gateway`. 
      1. В поле **Тип** выберите `NAT-шлюз` и нажмите кнопку **Сохранить**.

    {% endlist %}

1. Создайте [таблицу маршрутизации](../../../vpc/concepts/routing.md):

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Virtual Private Cloud**.
      1. На панели слева выберите ![route](../../../_assets/console-icons/route.svg) **Таблицы маршрутизации** и нажмите кнопку **Создать таблицу маршрутизации**.
      1. В поле **Имя** задайте имя `nextcloud-rt-table`.
      1. В поле **Cеть** выберите сеть `nextcloud-network`.
      1. Нажмите кнопку **Добавить маршрут** и в открывшемся окне:

          1. В поле **Next hop** выберите `Шлюз`.
          1. В поле **Шлюз** выберите созданный NAT-шлюз. Префикс назначения заполнится автоматически.
          1. Нажмите кнопку **Добавить**.
      1. Нажмите кнопку **Создать таблицу маршрутизации**. 

    {% endlist %}

1. Привяжите таблицу маршрутизации ко всем подсетям облачной сети `nextcloud-network`, чтобы направить трафик из них через NAT-шлюз:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Virtual Private Cloud**.
      1. На панели слева выберите ![image](../../../_assets/console-icons/nodes-right.svg) **Подсети**.
      1. В строке с нужной подсетью нажмите кнопку ![image](../../../_assets/console-icons/ellipsis.svg) и в контекстном меню выберите пункт **Привязать таблицу маршрутизации**.
      1. В открывшемся окне выберите созданную на предыдущем шаге таблицу маршрутизации и нажмите кнопку **Привязать**.

    {% endlist %}

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

### Создайте сервисный аккаунт и статический ключ доступа {#setup-sa}

Чтобы обеспечить доступ из Nextcloud к бакету Object Storage, создайте [сервисный аккаунт](../../../iam/concepts/users/service-accounts.md) и [статический ключ доступа](../../../iam/concepts/authorization/access-key.md).

1. Создайте сервисный аккаунт:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Identity and Access Management**.
      1. Нажмите кнопку **Создать сервисный аккаунт**.
      1. Укажите имя сервисного аккаунта — `nextcloud-sa`.
      1. Нажмите кнопку ![plus](../../../_assets/console-icons/plus.svg) **Добавить роль** и выберите [роль](../../../iam/roles-reference.md#editor) `editor`.
      1. Нажмите кнопку **Создать**.

    {% endlist %}

1. Создайте статический ключ доступа:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Identity and Access Management**.
      1. На панели слева выберите ![FaceRobot](../../../_assets/console-icons/face-robot.svg) **Сервисные аккаунты** и выберите созданный ранее сервисный аккаунт `nextcloud-sa`.
      1. На панели сверху нажмите кнопку ![plus](../../../_assets/console-icons/plus.svg) **Создать новый ключ** и выберите **Создать статический ключ доступа**.
      1. Нажмите кнопку **Создать**.
      1. Сохраните идентификатор и секретный ключ.

          {% note alert %}

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

          {% endnote %}

    {% endlist %}

### Создайте бакет Object Storage {#create-bucket}

Создайте бакет Object Storage, который вы будете подключать к Nextcloud:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Object Storage**.
  1. Справа сверху нажмите **Создать бакет**.
  1. В поле **Имя** укажите имя бакета. Например: `my-nextcloud-bucket`. Имя бакета должно быть [уникальным](../../../storage/concepts/bucket.md#naming) в пределах Yandex Object Storage.
  1. В поле **Макс. размер** задайте нужный размер бакета или включите опцию **Без ограничения**.
  1. Значения остальных параметров оставьте без изменений и нажмите **Создать бакет**.

{% endlist %}

### Создайте виртуальную машину {#create-vm}

Создайте виртуальную машину, на которой будет развернут Nextcloud:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/server.svg) **Виртуальные машины** и нажмите кнопку **Создать виртуальную машину**.
  1. В блоке **Образ загрузочного диска** в поле **Поиск продукта** введите `Ubuntu 24.04 LTS` и выберите публичный образ [Ubuntu 24.04 LTS](https://yandex.cloud/ru-kz/marketplace/products/yc/ubuntu-24-04-lts).
  1. В блоке **Расположение** выберите [зону доступности](../../../overview/concepts/geo-scope.md) `kz1-a`.
  1. В блоке **Вычислительные ресурсы** выберите конфигурацию `2 vCPU 4 ГБ RAM`.
  1. В блоке **Сетевые настройки**:

      * В поле **Подсеть** выберите сеть `nextcloud-network` и подсеть в зоне доступности виртуальной машины — `nextcloud-network-kz1-a`.
      * В поле **Публичный IP-адрес** оставьте значение `Автоматически`, чтобы назначить ВМ случайный публичный IP-адрес из пула Yandex Cloud.
      * В поле **Группы безопасности** выберите группу безопасности `nextcloud-sg`.
  1. В блоке **Доступ** выберите вариант **SSH-ключ** и укажите данные для доступа к ВМ:

      * В поле **Логин** введите имя пользователя, например: `yc-user`. Не используйте имя `root` или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду `sudo`.
      * В поле **SSH-ключ** выберите SSH-ключ, сохраненный в вашем профиле [пользователя организации](../../../organization/concepts/membership.md).
        
        Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
        
        1. Нажмите кнопку **Добавить ключ**.
        1. Задайте имя SSH-ключа.
        1. Выберите вариант:
        
            * `Ввести вручную` — вставьте содержимое открытого [SSH](../../../glossary/ssh-keygen.md)-ключа. Пару SSH-ключей необходимо [создать](../../../compute/operations/vm-connect/ssh.md#creating-ssh-keys) самостоятельно.
            * `Загрузить из файла` — загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно.
            * `Сгенерировать ключ` — автоматическое создание пары SSH-ключей.
            
              При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку `/home/<имя_пользователя>/.ssh`. В ОС Windows распакуйте архив в папку `C:\Users\<имя_пользователя>/.ssh`. Дополнительно вводить открытый ключ в консоли управления не требуется.
        
        1. Нажмите кнопку **Добавить**.
        
        SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации [отключена](../../../organization/operations/os-login-access.md) возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.
  1. В блоке **Общая информация** задайте имя ВМ: `nextcloud-vm`.
  1. Нажмите кнопку **Создать ВМ**.

{% endlist %}

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

Nextcloud использует базу данных MySQL® для хранения служебной информации. В этом руководстве база данных для Nextcloud развернута в [кластере](../../../managed-mysql/concepts/index.md) Yandex Managed Service for MySQL®.

{% note info %}

База данных MySQL® может быть создана на том же хосте, что и Nextcloud, но это менее надежно и не подходит для развертывания отказоустойчивой конфигурации. Если вы не планируете развертывать отказоустойчивую конфигурацию, вы можете пропустить этап создания кластера и позднее создать базу данных на одном хосте с Nextcloud.

{% endnote %}

Чтобы создать кластер Managed Service for MySQL®:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Managed Service for&nbsp;MySQL** и нажмите кнопку **Создать кластер**.
  1. В поле **Имя кластера** введите имя `nextcloud-db-cluster`.
  1. В блоке **База данных**:

      * В поле **Имя БД** введите `nextcloud`.
      * В поле **Имя пользователя** введите `user`.
      * В поле **Пароль** выберите `Ввести вручную` и введите пароль, который вы будете использовать для доступа к БД.
  1. В блоке **Сетевые настройки** выберите сеть `nextcloud-network` и группу безопасности `nextcloud-sg`.
  1. В блоке **Хосты** убедитесь, что в кластере создается один [хост](../../../managed-mysql/concepts/instance-types.md) в той же [зоне доступности](../../../overview/concepts/geo-scope.md), в которой вы создали виртуальную машину.

      {% note info %}

      Для тестирования Nextcloud в базовой конфигурации достаточно кластера с одним хостом. Позднее, при развертывании отказоустойчивой конфигурации, вы расширите созданный кластер на остальные зоны доступности.

      {% endnote %}

  1. В блоке **Настройки СУБД** нажмите кнопку **Настроить** и в открывшемся окне:

      1. В поле **character_set_server** выберите значение `utf8mb4`.
      1. В поле **collation_server** выберите значение `utf8mb4_general_ci`.
      1. Значения остальных параметров оставьте без изменения и нажмите кнопку **Сохранить**.
  1. Нажмите кнопку **Создать кластер**.

{% endlist %}

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

### Установите и настройте Nextcloud на виртуальной машине {#setup-nextcloud}

1. Установите Nextcloud на виртуальную машину `nextcloud-vm`:

    1. [Подключитесь](../../../compute/operations/vm-connect/ssh.md#vm-connect) к виртуальной машине `nextcloud-vm` по SSH.
    1. Обновите версии пакетов, установленные на ВМ:
       
       ```bash
       sudo apt update && sudo apt upgrade
       ```
    1. Установите необходимые пакеты программного обеспечения и зависимости:
       
       ```bash
       sudo apt install \
         apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring \
         php-intl php-gmp php-bcmath php-xml php-imagick php-zip php-fpm unzip
       ```
    1. (Опционально) Если вы хотите создать базу данных на одном хосте с Nextcloud:

        {% cut "**Если вы не создавали кластер MySQL® и не планируете развертывать отказоустойчивое решение**" %}

        1. Запустите MySQL:

            ```bash
            sudo mysql
            ```
        1. Выполните команды, чтобы создать базу данных и пользователя, а также выдать пользователю необходимые для работы с базой данных права:

            ```bash
            CREATE USER 'user'@'localhost' IDENTIFIED BY '<пароль>';
            CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
            GRANT ALL PRIVILEGES ON nextcloud.* TO 'user'@'localhost';
            FLUSH PRIVILEGES;
            quit;
            ```

            Где `<пароль>` — пароль, который вы будете использовать для доступа к БД.

        {% endcut %}

    1. Скачайте архив с последней версией Nextcloud:
       
       ```bash
       wget https://download.nextcloud.com/server/releases/latest.zip
       ```
    1. Распакуйте скачанный архив в директорию `/var/www`:
       
       ```bash
       sudo unzip latest.zip -d /var/www
       ```
    1. Измените права доступа к директории с Nextcloud:
       
       ```bash
       sudo chown -R www-data:www-data /var/www/nextcloud
       sudo chmod -R 755 /var/www/nextcloud/
       ```
    1. Настройте виртуальный хост по умолчанию:
       
       1. Откройте файл конфигурации виртуального хоста по умолчанию:
       
           ```bash
           sudo nano /etc/apache2/sites-available/000-default.conf
           ```
       1. Замените содержимое открытого файла конфигурации `000-default.conf` на следующее:
       
           ```text
           <VirtualHost *:80>
           DocumentRoot /var/www/nextcloud/
       
           <Directory /var/www/nextcloud/>
           Require all granted
           AllowOverride All
           Options FollowSymLinks MultiViews
       
           <IfModule mod_dav.c>
           Dav off
           </IfModule>
           </Directory>
           </VirtualHost>
           ```
    1. Включите необходимые модули [веб-сервера Apache](https://ru.wikipedia.org/wiki/Apache_HTTP_Server):
       
       ```bash
       sudo a2enmod rewrite
       sudo a2enmod headers
       a2enmod env
       a2enmod dir
       a2enmod mime
       ```
    1. Увеличьте до `512 МБ` объем оперативной памяти, доступной интерпретатору PHP при обработке запросов к Nextcloud:
       
       1. Откройте файл `.htaccess` в директории установки Nextcloud:
       
           ```bash
           sudo nano /var/www/nextcloud/.htaccess
           ```
       1. В конце открытого файла добавьте строку:
       
           ```bash
           php_value memory_limit 512M
           ```
       
           Не забудьте сохранить внесенные изменения.
    1. Перезапустите веб-сервер:
       
       ```bash
       sudo systemctl restart apache2
       ```
1. Настройте Nextcloud в графическом пользовательском интерфейсе:

    1. На вашем локальном компьютере откройте браузер и в адресной строке введите:
       
       ```text
       http://<публичный_IP-адрес_ВМ>
       ```
       
       Узнать публичный IP-адрес виртуальной машины вы можете в [консоли управления](https://kz.console.yandex.cloud) на странице с информацией о ВМ в блоке **Сеть** в поле **Публичный IPv4-адрес**.
    1. В открывшейся форме **Create an admin account**:

        1. В полях **New admin account name** и **New admin password** задайте учетные данные администратора Nextcloud, которые вы будете использовать для входа в систему.
        1. В поле **Database account** введите `user` — имя пользователя БД, которое вы задали при создании кластера MySQL® или локальной базы данных.
        1. В поле **Database password** введите пароль пользователя БД, который вы задали при создании кластера MySQL® или локальной базы данных.
        1. В поле **Database name** введите `nextcloud` — имя БД, которое вы задали при создании кластера MySQL® или локальной базы данных.
        1. В поле **Database host** укажите [FQDN](../../../glossary/fqdn.md) [текущего хост-мастера](../../../managed-mysql/operations/connect/fqdn.md#fqdn-master) кластера и порт в формате:

            ```text
            c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz:3306
            ```

            Узнать идентификатор кластера вы можете в [консоли управления](https://kz.console.yandex.cloud) на странице с информацией о кластере в поле **Идентификатор**.

            {% note info %}

            Если вы не будете развертывать отказоустойчивое решение, не создавали кластер MySQL®, а вместо этого создали базу данных на виртуальной машине `nextcloud-vm`, оставьте в поле **Database host** значение `localhost`.

            {% endnote %}

        1. Нажмите кнопку **Install**.

            Начнется развертывание базы данных Nextcloud. Дождитесь завершения этого процесса.
    1. После завершения установки в открывшемся окне с рекомендованными приложениями нажмите кнопку **Skip**. Вы сможете вернуться к установке необходимых приложений позднее.
    1. Закройте открывшееся окно с информацией об обновлениях в текущей версии Nextcloud.
    1. Откройте меню управления приложениями. Для этого в правом верхнем углу экрана нажмите на значок пользователя и в открывшемся контекстном меню выберите ![plus](../../../_assets/console-icons/plus.svg) **Apps**.
    1. В открывшемся окне на панели слева выберите ![person](../../../_assets/console-icons/person.svg) **Your apps**.
    1. В открывшемся списке найдите приложение `External storage support` и в строке с этим приложением нажмите кнопку **Enable**.
       
       При необходимости для подтверждения действия во всплывающем окне введите ваш пароль администратора Nextcloud.
    1. Откройте основное меню настроек. Для этого в правом верхнем углу экрана нажмите на значок пользователя и в открывшемся контекстном меню выберите ![admin-icon](../../../_assets/tutorials/integrate-nextcloud/admin-icon.svg) **Administration settings**.
    1. В открывшемся окне на панели слева в блоке **Administration** выберите ![app-dark-icon](../../../_assets/tutorials/integrate-nextcloud/app-dark-icon.svg) **External storage** и в открывшемся окне в блоке **External storage** задайте настройки интеграции с Object Storage:
       
       1. В секции **External storage** выберите `Amazon S3`.
       1. В секции **Authentication** выберите `Access key`.
       1. В секции **Configuration**:
       
           * В поле **Bucket** укажите имя созданного ранее бакета. Например: `my-nextcloud-bucket`.
           * В поле **Hostname** укажите `storage.yandexcloud.kz`.
           * В поле **Port** укажите `443`.
           * В поле **Access key** вставьте полученный ранее идентификатор статического ключа доступа.
           * В поле **Secret key** вставьте полученный ранее секретный ключ статического ключа доступа.
       1. В секции **Available for** включите опцию **All people**.
       1. В правой части редактируемого блока нажмите значок ![check](../../../_assets/console-icons/check.svg), чтобы сохранить изменения.
       
           Для подтверждения действия во всплывающем окне введите ваш пароль администратора Nextcloud.

### Протестируйте работу решения в базовой конфигурации {#test-simple}

Чтобы проверить работу интеграции Yandex Object Storage с Nextcloud на одном хосте:

1. На вашем локальном компьютере откройте браузер и в адресной строке введите публичный IPv4-адрес виртуальной машины, на которой развернут Nextcloud:

    ```text
    http://<публичный_IP-адрес_ВМ>
    ```
1. Аутентифицируйтесь в Nextcloud с помощью логина и пароля, созданных при настройке решения на предыдущем этапе.
1. В левой части верхнего меню выберите ![folder-fill](../../../_assets/console-icons/folder-fill.svg) **Files**.
1. В меню слева выберите **External storage** и выберите **AmazonS3**.
1. Нажмите ![plus](../../../_assets/console-icons/plus.svg) **New** и выберите ![arrow-shape-up-from-line](../../../_assets/console-icons/arrow-shape-up-from-line.svg) **Upload files**, чтобы загрузить в хранилище файл с локального компьютера.
1. Выберите файл на локальном компьютере и загрузите его в хранилище.

    Загруженный файл отобразится в хранилище `AmazonS3` Nextcloud.
1. В сервисе Yandex Object Storage [убедитесь](../../../storage/operations/objects/list.md), что файл был загружен в бакет.

На этом завершено развертывание базовой конфигурации Nextcloud. Если в базовой конфигурации вы использовали кластер MySQL®, теперь вы можете перейти к развертыванию отказоустойчивой конфигурации.

## Разверните Nextcloud в отказоустойчивой конфигурации {#the-redundant-variant}

Отказоустойчивая конфигурация Nextcloud будет развернута в группе из трех виртуальных машин, при этом нагрузка на хосты Nextcloud будет распределяться с помощью L7-балансировщика Yandex Application Load Balancer. Служебная база данных будет расположена в кластере MySQL®, состоящем из трех хостов. Хосты группы ВМ, балансировщика и кластера MySQL® будут равномерно распределены по трем [зонам доступности](../../../overview/concepts/geo-scope.md). Nextcloud будет доступен по доменному имени, для которого в Certificate Manager будет выпущен TLS-сертификат.

### Масштабируйте кластер Managed Service for MySQL® {#expand-mysql-cluster}


{% note info %}

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

{% endnote %}


Чтобы добавить дополнительные хосты в кластер Managed Service for MySQL®:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Managed Service for&nbsp;MySQL** и выберите кластер `nextcloud-db-cluster`.
  1. В меню слева выберите ![cube](../../../_assets/console-icons/cube.svg) **Хосты**.
  1. С помощью кнопки **Создать хост** добавьте дополнительные [хосты](../../../managed-mysql/concepts/instance-types.md), так чтобы в кластере было три хоста — по одному в каждой [зоне доступности](../../../overview/concepts/geo-scope.md).

        При создании хостов не включайте опцию **Публичный доступ**.

        {% note warning %}

        Прежде чем добавлять третий хост, дождитесь, когда второй хост перейдет в состояние `ALIVE`. Вы не сможете добавить в кластер новый хост до тех пор, пока не завершится операция добавления предыдущего хоста.

        {% endnote %}

{% endlist %}

### Донастройте Nextcloud и создайте снимок диска виртуальной машины {#create-snapshot}

Прежде чем создавать снимок виртуальной машины для последующего развертывания группы ВМ, добавьте ваш домен в список доверенных адресов и доменов Nextcloud:

1. [Подключитесь](../../../compute/operations/vm-connect/ssh.md#vm-connect) к виртуальной машине `nextcloud-vm` по SSH.
1. Добавьте ваш домен в массив доверенных адресов и доменов Nextcloud:
   
   1. В терминале ВМ откройте файл конфигурации Nextcloud:
   
       ```bash
       sudo nano /var/www/nextcloud/config/config.php
       ```
   1. В массиве `trusted_domains` замените IP-адрес хоста на имя вашего домена.
   
       Например:
   
       ```php
       'trusted_domains' =>
       array (
         0 => 'example.com',
       ),
       ```
   
       Массив значений `trusted_domains` позволяет задать ограничение на IP-адреса и/или домены, по которым вы можете обращаться к Nextcloud, и обеспечивает дополнительную защиту от несанкционированного доступа. Вы можете указать несколько адресов и/или доменов, а также ослабить или снять это ограничение с помощью символов подстановки:
   
       {% list tabs %}
   
       - Пример 1
   
         ```php
         'trusted_domains' =>
         array (
           0 => '*.example.com',
           1 => '198.168.*.*',
         ),
         ```
   
         В этом примере доступ разрешается с любых поддоменов домена `example.com`, а также с IP-адресов в диапазоне `192.168.0.0` — `192.168.255.255`.
   
       - Пример 2
   
         ```php
         'trusted_domains' =>
         array (
           0 => '*',
         ),
         ```
   
         В этом примере доступ разрешается с любых доменов и IP-адресов.
   
       {% endlist %}
   1. Удалите строку `'overwrite.cli.url' => 'http://<IP-адрес_ВМ>',`.
   1. Сохраните изменения и закройте редактор `nano`.
1. [Остановите](../../../compute/operations/vm-control/vm-stop-and-start.md#stop) виртуальную машину `nextcloud-vm`.
1. После остановки ВМ создайте снимок диска виртуальной машины `nextcloud-vm`:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Compute Cloud**.
      1. На панели слева выберите ![hard-drive](../../../_assets/console-icons/hard-drive.svg) **Диски**.
      1. В строке с нужным диском нажмите значок ![ellipsis](../../../_assets/console-icons/ellipsis.svg) и выберите **Создать снимок**.
      1. В поле **Имя** задайте имя снимка `nextcloud-vm-snapshot`.
      1. Нажмите кнопку **Создать**.
      1. Дождитесь завершения процесса создания снимка.
      
          Чтобы отследить статус снимка, на панели слева выберите ![image](../../../_assets/console-icons/picture.svg) **Снимки дисков**.

    {% endlist %}


### Добавьте TLS-сертификат в Yandex Certificate Manager {#issue-certificate}

Для того чтобы организовать доступ к Nextcloud по протоколу HTTPS, выпустите TLS-сертификат для вашего домена:

1. Добавьте в сервис Certificate Manager [сертификат](../../../certificate-manager/concepts/managed-certificate.md) от Let's Encrypt® для вашего домена:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Certificate Manager**.
      1. Нажмите **Добавить сертификат** и выберите **Сертификат от Let's Encrypt**.
      1. В открывшемся окне в поле **Имя** укажите `mymanagedcert`.
      1. В поле **Домены** укажите имя вашего домена, например `example.com`.
      1. В поле **Тип проверки** выберите `DNS` и нажмите кнопку **Создать**.

    {% endlist %}

    В списке сертификатов появится новый сертификат со статусом `Validating`. Этот статус означает, что запрос на выпуск сертификата от Let's Encrypt® создан и для его успешной обработки вам необходимо пройти [процедуру проверки прав на домены](../../../certificate-manager/operations/managed/cert-validate.md).
1. Для успешного выпуска сертификата пройдите проверку прав на домены:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Certificate Manager**.
      1. В списке сертификатов выберите `mymanagedcert`.
      1. В открывшемся окне в блоке **Проверка прав на домены** выберите `CNAME-запись`.
      1. Добавьте в публичную DNS-зону вашего домена [CNAME-запись](../../../dns/concepts/resource-record.md#cname), необходимую для проверки прав на домен. Порядок действий на этом шаге будет зависеть от того, управляет вашим доменом сервис Yandex Cloud DNS или сторонний DNS-провайдер:

          {% list tabs group=instructions %}
          
          - Yandex Cloud DNS {#dns}
          
            В разделе **Проверка прав на домены** в блоке с типом записи `CNAME` нажмите кнопку **Создать запись**. В открывшемся окне:
          
            1. Если в текущем каталоге есть подходящая зона DNS, она будет автоматически подставлена в поле **Зона**. Если подходящей зоны DNS нет, нажмите **Создать зону** и задайте ее параметры, чтобы [создать](../../../dns/operations/zone-create-public.md) зону.
            1. Нажмите кнопку **Создать**.
          
          - Сторонний DNS-провайдер {#third-party-dns-server}
          
            1. В разделе **Проверка прав на домены**, в блоке с типом записи `CNAME`, в поле **Значение** посмотрите значение записи для домена.
            1. Разместите у своего DNS-провайдера или на собственном [DNS-сервере](../../../glossary/dns.md#dns-server) `CNAME`-запись для делегирования прав управления на DNS-зону, используемую для проверки:
          
                ```
                _acme-challenge.example.com CNAME <значение>
                ```
                Строка `<значение>` формируется по шаблону `<идентификатор_сертификата>.cm.yandexcloud.net.`
          
          {% endlist %}
          
          {% note info %}
          
          Чтобы DNS-проверка прав на домен по записи `CNAME` прошла успешно, для поддомена `_acme-challenge` проверяемого доменного имени не должно быть других [ресурсных записей](../../../dns/concepts/resource-record.md), кроме `CNAME`. Например, для имени `_acme-challenge.example.com.` должна существовать только CNAME-запись и не должно быть TXT-записи.
          
          {% endnote %}

          Проверка прав на домены может занять от нескольких минут до нескольких дней — дождитесь ее успешного завершения. В результате сертификат будет выпущен и перейдет в статус `Issued`.

    {% endlist %}

### Разверните группу виртуальных машин {#create-instance-group}

Чтобы обеспечить отказоустойчивость развернутого решения Nextcloud, масштабируйте его на [группу виртуальных машин](../../../compute/concepts/instance-groups/index.md):

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/layers-3-diagonal.svg) **Группы виртуальных машин**.
  1. Нажмите кнопку **Создать группу виртуальных машин**.
  1. В поле **Имя** задайте имя группы `nextcloud-instance-group`.
  1. В поле **Сервисный аккаунт** выберите сервисный аккаунт `nextcloud-sa`.
  1. В блоке **Распределение** выберите все [зоны доступности](../../../overview/concepts/geo-scope.md), чтобы обеспечить максимальную отказоустойчивость.
  1. В блоке **Шаблон виртуальной машины** нажмите кнопку **Задать** и в открывшейся форме:

      1. В блоке **Образ загрузочного диска** перейдите на вкладку **Пользовательский** и нажмите кнопку **Выбрать**.

          В открывшемся окне выберите созданный ранее снимок `nextcloud-vm-snapshot` и нажмите кнопку **Добавить диск**.
      1. В блоке **Вычислительные ресурсы** выберите конфигурацию `2 vCPU 4 ГБ RAM`.
      1. В блоке **Сетевые настройки**:

          1. В поле **Сеть** выберите сеть `nextcloud-network`.
          1. В поле **Публичный адрес** выберите `Без адреса`.
          1. В поле **Группы безопасности** выберите `nextcloud-sg`.
      1. В блоке **Доступ** выберите вариант **SSH-ключ** и укажите данные для доступа к ВМ:
      
          * В поле **Логин** введите имя пользователя, например: `yc-user`. Не используйте имя `root` или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду `sudo`.
          * В поле **SSH-ключ** выберите SSH-ключ, сохраненный в вашем профиле [пользователя организации](../../../organization/concepts/membership.md).
            
            Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
            
            1. Нажмите кнопку **Добавить ключ**.
            1. Задайте имя SSH-ключа.
            1. Выберите вариант:
            
                * `Ввести вручную` — вставьте содержимое открытого [SSH](../../../glossary/ssh-keygen.md)-ключа. Пару SSH-ключей необходимо [создать](../../../compute/operations/vm-connect/ssh.md#creating-ssh-keys) самостоятельно.
                * `Загрузить из файла` — загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно.
                * `Сгенерировать ключ` — автоматическое создание пары SSH-ключей.
                
                  При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку `/home/<имя_пользователя>/.ssh`. В ОС Windows распакуйте архив в папку `C:\Users\<имя_пользователя>/.ssh`. Дополнительно вводить открытый ключ в консоли управления не требуется.
            
            1. Нажмите кнопку **Добавить**.
            
            SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации [отключена](../../../organization/operations/os-login-access.md) возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.
      1. Нажмите кнопку **Сохранить**.
  1. В блоке **Масштабирование** в поле **Размер** укажите `3`.
  1. В блоке **Интеграция с Application Load Balancer** включите опцию **Создать целевую группу** и в появившемся поле **Имя целевой группы** укажите имя `nextcloud-target-group`.
  1. В блоке **Проверка состояний**:

      1. Включите опцию **Активировать**.
      1. В поле **Тип** выберите `TCP`.
  1. Нажмите кнопку **Создать** и дождитесь создания и запуска группы ВМ.

{% endlist %}

### Создайте L7-балансировщик {#setup-balancer}

Чтобы обеспечить распределение трафика между хостами будущей группы ВМ с Nextcloud, создайте [балансировщик нагрузки уровня приложений](../../../application-load-balancer/concepts/application-load-balancer.md):

1. Создайте [группу бэкендов](../../../application-load-balancer/concepts/backend-group.md):

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Application Load Balancer**.
      1. На панели слева выберите ![image](../../../_assets/console-icons/cubes-3-overlap.svg) **Группы бэкендов** и нажмите кнопку **Создать группу бэкендов**.
      1. В поле **Имя** укажите имя группы `nextcloud-bg`.
      1. Включите опцию **Привязка сессий** и в появившемся поле **Режим привязки** выберите `По IP-адресу`.
      1. В блоке **Бэкенды** нажмите кнопку **Добавить** и в появившейся форме **Новый бэкенд**:

          1. В поле **Имя** задайте имя `nextcloud-backend`.
          1. В поле **Целевые группы** выберите созданную ранее целевую группу `nextcloud-target-group`.
          1. Разверните секцию **Настройки балансировки** и в поле **Режим балансировки** выберите `MAGLEV_HASH`.
          1. В секции **HTTP проверка состояния** нажмите кнопку ![ellipsis](../../../_assets/console-icons/ellipsis.svg) и выберите ![trash-bin](../../../_assets/console-icons/trash-bin.svg) **Удалить**.
      1. Нажмите кнопку **Создать**.

    {% endlist %}

1. Создайте [HTTP-роутер](../../../application-load-balancer/concepts/http-router.md):

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Application Load Balancer**.
      1. На панели слева выберите ![image](../../../_assets/console-icons/route.svg) **HTTP-роутеры** и нажмите кнопку **Создать HTTP-роутер**.
      1. В поле **Имя** укажите имя HTTP-роутера `nextcloud-router`.
      1. В блоке **Виртуальные хосты** нажмите кнопку **Добавить виртуальный хост** и в открывшейся форме **Новый виртуальный хост**:

          1. В поле **Имя** укажите имя виртуального хоста `nextcloud-vh` и нажмите кнопку **Добавить маршрут**.
          1. В открывшейся форме **Новый маршрут** в поле **Имя** задайте имя маршрута `nextcloud-route`.
          1. В поле **Группа бэкендов** выберите созданную на предыдущем шаге группу бэкендов `nextcloud-bg`.
          1. Значения остальных параметров оставьте без изменения и внизу страницы нажмите кнопку **Создать**.

    {% endlist %}

1. Создайте L7-балансировщик:

    {% list tabs group=instructions %}

    - Консоль управления {#console}

      1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
      1. Перейдите в сервис **Application Load Balancer**.
      1. Нажмите кнопку **Создать L7-балансировщик** и выберите **Вручную**.
      1. В поле **Имя** укажите имя балансировщика `nextcloud-alb`.
      1. В поле **Сеть** выберите сеть `nextcloud-network`.
      1. В поле **Группы безопасности** выберите `Из списка` и в появившемся списке выберите группу безопасности `nextcloud-sg`.
      1. В блоке **Размещение** убедитесь, что выбраны все зоны доступности.
      1. Если вы не хотите сохранять логи работы балансировщика в [лог-группу](../../../logging/concepts/log-group.md), отключите опцию **Запись логов**.
      1. В секции **Обработчики** нажмите кнопку **Добавить обработчик** и в открывшейся форме:

          1. В поле **Имя** укажите имя обработчика `nextcloud-listener`.
          1. В поле **Протокол** выберите `HTTPS`.
          1. В поле **Сертификаты** выберите созданный ранее сертификат `mymanagedcert`.
          1. В поле **HTTP-роутер** выберите созданный ранее HTTP-роутер `nextcloud-router`.
      1. Значения остальных параметров оставьте без изменения и внизу страницы нажмите кнопку **Создать**.

    {% endlist %}

    Дождитесь, когда статус балансировщика изменится на `Active`, и в поле **IP-адреса** скопируйте его IP-адрес.

### Создайте ресурсную A-запись в публичной зоне DNS вашего домена {#create-a-record}

Для того чтобы запросы, поступающие к вашему домену, направлялись на L7-балансировщик, создайте в вашей зоне DNS ресурсную [A-запись](../../../dns/concepts/resource-record.md#a), указывающую на полученный на предыдущем шаге IP-адрес балансировщика. Порядок действий на этом шаге будет зависеть от того, управляет вашим доменом сервис Yandex Cloud DNS или сторонний DNS-провайдер.

{% cut "**Если вашим доменом управляет сервис Yandex Cloud DNS**" %}
 
{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором вы создаете инфраструктуру.
  1. Перейдите в сервис **Cloud DNS**.
  1. Выберите нужную зону DNS, нажмите кнопку **Создать запись** и в открывшемся окне:

      1. В поле **Имя** выберите `Совпадает с именем зоны (@)`.
      1. В поле **Тип** выберите `A`.
      1. В поле **Значение** укажите сохраненный на предыдущем шаге IP-адрес балансировщика нагрузки.
      1. Значения других параметров оставьте без изменения и нажмите кнопку **Создать**.

{% endlist %}

{% endcut %}

{% cut "**Если вашим доменом управляет сторонний DNS-провайдер**" %}

Разместите у своего DNS-провайдера или на собственном [DNS-сервере](../../../glossary/dns.md#dns-server) ресурсную A-запись со следующими значениями:

* Хост — `@`.
* Тип — `A`.
* Значение — `<IP-адрес_балансировщика>`.

{% endcut %}

### Протестируйте работу решения в отказоустойчивой конфигурации {#test-redundant}

Чтобы проверить работу интеграции Yandex Object Storage с Nextcloud в отказоустойчивой конфигурации:

1. На вашем локальном компьютере откройте браузер и в адресной строке введите имя вашего домена, например:

    ```text
    https://example.com
    ```
1. Аутентифицируйтесь в Nextcloud с помощью логина и пароля, созданных при настройке решения.
1. В левой части верхнего меню выберите ![folder-fill](../../../_assets/console-icons/folder-fill.svg) **Files**.
1. В меню слева выберите **External storage** и выберите **AmazonS3**.
1. Убедитесь, что вы видите загруженный на предыдущем этапе проверки файл.
1. Скачайте загруженный ранее файл. Для этого в строке с именем файла нажмите значок ![ellipsis](../../../_assets/console-icons/ellipsis.svg) и выберите ![arrow-down](../../../_assets/console-icons/arrow-down.svg) **Download**.
1. Удалите файл. Для этого в строке с именем файла нажмите значок ![ellipsis](../../../_assets/console-icons/ellipsis.svg) и выберите ![trash-bin](../../../_assets/console-icons/trash-bin.svg) **Delete file**.
1. В сервисе Yandex Object Storage [убедитесь](../../../storage/operations/objects/list.md), что файл был удален из бакета.

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

1. Если вы создавали L7-балансировщик, [удалите](../../../application-load-balancer/operations/application-load-balancer-delete.md) его, затем последовательно удалите [HTTP-роутер](../../../application-load-balancer/operations/http-router-delete.md), [группу бэкендов](../../../application-load-balancer/operations/backend-group-delete.md) и [целевую группу](../../../application-load-balancer/operations/target-group-delete.md) балансировщика.
1. Если вы создавали группу ВМ, [удалите](../../../compute/operations/instance-groups/delete.md) ее.
1. Если вы создавали ресурсные записи, удалите их в [Yandex Cloud DNS](../../../dns/operations/resource-record-delete.md) или в личном кабинете вашего регистратора доменных имен.
1. Если вы создавали зону DNS, удалите ее в [Yandex Cloud DNS](../../../dns/operations/zone-delete.md) или в личном кабинете вашего регистратора доменных имен.
1. Если вы оставляли включенной опцию записи логов L7-балансировщика, [удалите](../../../logging/operations/delete-group.md) лог-группу.
1. [Удалите](../../../compute/operations/vm-control/vm-delete.md) виртуальную машину.
1. [Удалите](../../../managed-mysql/operations/cluster-delete.md) кластер БД MySQL®.
1. [Удалите](../../../storage/operations/objects/delete.md) созданные в бакете объекты, затем [удалите](../../../storage/operations/buckets/delete.md) сам бакет.
1. [Удалите](../../../compute/operations/snapshot-control/delete.md) снимок диска.
1. [Удалите](../../../iam/operations/sa/delete.md) сервисный аккаунт.
1. Последовательно удалите [подсети](../../../vpc/operations/subnet-delete.md), [группу безопасности](../../../vpc/operations/security-group-delete.md), [таблицу маршрутизации](../../../vpc/operations/delete-route-table.md), [NAT-шлюз](../../../vpc/operations/delete-nat-gateway.md) и [облачную сеть](../../../vpc/operations/network-delete.md).
1. При необходимости [удалите](../../../certificate-manager/operations/managed/cert-delete.md) TLS-сертификат, если вы создавали его.

#### Полезные ссылки {#see-also}

* [Развертывание Nextcloud на виртуальной машине Yandex Compute Cloud из образа Container Optimized Image в интеграции с Yandex Object Storage](coi-based.md)
* [Развертывание Nextcloud на виртуальной машине или в группе виртуальных машин Yandex Compute Cloud в интеграции с Yandex Object Storage с помощью Terraform](terraform.md)