Сервис PostgreSQL
This commit is contained in:
@@ -0,0 +1,87 @@
|
|||||||
|
# Cloud PostgreSQL
|
||||||
|
|
||||||
|
## Назначение сервиса
|
||||||
|
|
||||||
|
**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости.
|
||||||
|
|
||||||
|
PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений.
|
||||||
|
|
||||||
|
В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически.
|
||||||
|
|
||||||
|
Сервис самостоятельно:
|
||||||
|
- управляет ролями серверов базы данных (основной сервер и реплики);
|
||||||
|
- отслеживает состояние узлов;
|
||||||
|
- автоматически переключает основной сервер при сбоях.
|
||||||
|
|
||||||
|
Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов:
|
||||||
|
- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах;
|
||||||
|
- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов;
|
||||||
|
- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами.
|
||||||
|
|
||||||
|
Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа.
|
||||||
|
|
||||||
|
Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер.
|
||||||
|
|
||||||
|
## Конфигурации кластера
|
||||||
|
|
||||||
|
Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно.
|
||||||
|
|
||||||
|
Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает:
|
||||||
|
|
||||||
|
- синхронную репликацию данных;
|
||||||
|
- повышенную отказоустойчивость.
|
||||||
|
|
||||||
|
В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий:
|
||||||
|
|
||||||
|
- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных;
|
||||||
|
- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя.
|
||||||
|
|
||||||
|
Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT).
|
||||||
|
|
||||||
|
В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования.
|
||||||
|
|
||||||
|
## Режимы репликации
|
||||||
|
|
||||||
|
По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик.
|
||||||
|
|
||||||
|
Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения.
|
||||||
|
|
||||||
|
При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой.
|
||||||
|
|
||||||
|
## Доступ к серверам и оптимизация соединений
|
||||||
|
|
||||||
|
Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом.
|
||||||
|
|
||||||
|
На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных.
|
||||||
|
|
||||||
|
::: warning Примечание
|
||||||
|
|
||||||
|
Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Возможности сервиса
|
||||||
|
|
||||||
|
**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры.
|
||||||
|
|
||||||
|
Сервис обеспечивает:
|
||||||
|
|
||||||
|
- автоматическое управление кластером PostgreSQL;
|
||||||
|
- высокую доступность за счёт репликации и автоматического переключения primary-узла;
|
||||||
|
- единую точку подключения к базе данных через прокси;
|
||||||
|
- автоматическое переключение при отказе узлов кластера без вмешательства пользователя;
|
||||||
|
- web-доступ к управлению базами данных и пользователями через pgAdmin;
|
||||||
|
- совместимость со стандартными клиентскими инструментами PostgreSQL;
|
||||||
|
- возможность установки расширений PostgreSQL в базу данных.
|
||||||
|
|
||||||
|
## Сценарии использования сервиса
|
||||||
|
|
||||||
|
**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных.
|
||||||
|
|
||||||
|
Сервис может применяться в следующих сценариях:
|
||||||
|
|
||||||
|
- размещение production-баз данных с высокими требованиями к доступности;
|
||||||
|
- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных;
|
||||||
|
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры;
|
||||||
|
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover;
|
||||||
|
- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера.
|
||||||
@@ -0,0 +1,205 @@
|
|||||||
|
# О разделе
|
||||||
|
|
||||||
|
Данный раздел содержит описание технических параметров кластера PostgreSQL и порядок их первичной конфигурации.
|
||||||
|
|
||||||
|
Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке.
|
||||||
|
|
||||||
|
Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями.
|
||||||
|
|
||||||
|
## Выбор типа и размера дискового хранилища
|
||||||
|
|
||||||
|
Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика.
|
||||||
|
|
||||||
|
**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы.
|
||||||
|
|
||||||
|
## Доступные типы хранилищ:
|
||||||
|
|
||||||
|
| Название | Лимит IOPS | Время отклика |
|
||||||
|
| ---------------| ------------------ | ------------- |
|
||||||
|
| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс |
|
||||||
|
| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс |
|
||||||
|
| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс |
|
||||||
|
| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс |
|
||||||
|
|
||||||
|
::: warning Примечание
|
||||||
|
|
||||||
|
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Конфигурация вычислительных ресурсов
|
||||||
|
|
||||||
|
В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL.
|
||||||
|
|
||||||
|
### Количество нод в кластере
|
||||||
|
|
||||||
|
Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения.
|
||||||
|
|
||||||
|
Количество нод выбирается в диапазоне **от 1 до 5**.
|
||||||
|
|
||||||
|
### Процессор (CPU)
|
||||||
|
|
||||||
|
Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет:
|
||||||
|
|
||||||
|
- обрабатывать запросы;
|
||||||
|
- выполнять сложные операции (сортировки, объединения таблиц);
|
||||||
|
- обслуживать одновременные подключения.
|
||||||
|
|
||||||
|
Доступный диапазон: **от 2 до 24 vCPU** на ноду.
|
||||||
|
|
||||||
|
### Оперативная память (RAM)
|
||||||
|
|
||||||
|
Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску.
|
||||||
|
|
||||||
|
Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду.
|
||||||
|
|
||||||
|
### Доступ в интернет
|
||||||
|
|
||||||
|
При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет.
|
||||||
|
|
||||||
|
**Доступные варианты скорости:**
|
||||||
|
- 50 Мбит/с;
|
||||||
|
- 100 Мбит/с;
|
||||||
|
- 200 Мбит/с;
|
||||||
|
- 300 Мбит/с;
|
||||||
|
- 400 Мбит/с;
|
||||||
|
- 500 Мбит/с;
|
||||||
|
- 1000 Мбит/с (1 Гбит/с).
|
||||||
|
|
||||||
|
::: warning Примечание
|
||||||
|
|
||||||
|
Для выбранного канала предоставляется статический белый IP-адрес.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Параметры конфигурации IPSEC
|
||||||
|
|
||||||
|
Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению.
|
||||||
|
|
||||||
|
### Данные о конфигурации IPSEC
|
||||||
|
|
||||||
|
Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком.
|
||||||
|
|
||||||
|
### Версия IKE (Internet Key Exchange)
|
||||||
|
|
||||||
|
Версия IKE выбирается из выпадающего списка, который содержит два значения:
|
||||||
|
|
||||||
|
- **IKE v1** — более ранняя версия протокола;
|
||||||
|
- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок.
|
||||||
|
|
||||||
|
Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает.
|
||||||
|
|
||||||
|
### Метод аутентификации
|
||||||
|
|
||||||
|
Метод аутентификации выбирается из выпадающего списка, который содержит два варианта:
|
||||||
|
|
||||||
|
- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа;
|
||||||
|
- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов.
|
||||||
|
|
||||||
|
## Этап 1 - установка защищенного соединения
|
||||||
|
|
||||||
|
На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков.
|
||||||
|
|
||||||
|
### Алгоритм хэширования
|
||||||
|
|
||||||
|
Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка:
|
||||||
|
|
||||||
|
- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием.
|
||||||
|
- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью.
|
||||||
|
- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности.
|
||||||
|
- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии.
|
||||||
|
|
||||||
|
### Шифрование (Hash)
|
||||||
|
|
||||||
|
Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка:
|
||||||
|
|
||||||
|
AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач.
|
||||||
|
AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU.
|
||||||
|
AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа.
|
||||||
|
|
||||||
|
### DH Group (группа Диффи — Хеллмана)
|
||||||
|
|
||||||
|
Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения.
|
||||||
|
|
||||||
|
Параметр заполняется вручную из выпадающего списка:
|
||||||
|
|
||||||
|
group 2;
|
||||||
|
group 5;
|
||||||
|
group 14;
|
||||||
|
group 15;
|
||||||
|
group 16;
|
||||||
|
group 19;
|
||||||
|
group 20;
|
||||||
|
group 21.
|
||||||
|
|
||||||
|
### IKE Mode (только для IKEv1)
|
||||||
|
|
||||||
|
Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1.
|
||||||
|
|
||||||
|
Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных.
|
||||||
|
|
||||||
|
- **Main Mode** — стандартный и более безопасный режим работы IKEv1;
|
||||||
|
- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных.
|
||||||
|
|
||||||
|
### Время жизни (Lifetime)
|
||||||
|
|
||||||
|
Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей.
|
||||||
|
|
||||||
|
## Этап 2 - передача данных
|
||||||
|
|
||||||
|
Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных.
|
||||||
|
|
||||||
|
### Алгоритм хэширование (Hash)
|
||||||
|
|
||||||
|
Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы:
|
||||||
|
|
||||||
|
- SHA1;
|
||||||
|
- SHA2-256;
|
||||||
|
- SHA2-384;
|
||||||
|
- SHA2-512.
|
||||||
|
|
||||||
|
## Шифрование
|
||||||
|
|
||||||
|
Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы:
|
||||||
|
|
||||||
|
- AES 128;
|
||||||
|
- AES 256;
|
||||||
|
- AES GCM 128;
|
||||||
|
- AES GCM 192;
|
||||||
|
- AES GCM 256.
|
||||||
|
|
||||||
|
### PFS
|
||||||
|
|
||||||
|
**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе.
|
||||||
|
|
||||||
|
Данный параметр представлен в виде чекбокса. При его включении:
|
||||||
|
|
||||||
|
- на этапе 2 выполняется дополнительный обмен ключами DH;
|
||||||
|
- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет;
|
||||||
|
- ключи шифрования пользовательского трафика не зависят от ключей этапа 1.
|
||||||
|
|
||||||
|
### DH Group (группа Диффи — Хеллмана)
|
||||||
|
|
||||||
|
Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена.
|
||||||
|
|
||||||
|
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
|
||||||
|
|
||||||
|
- group 2;
|
||||||
|
- group 5;
|
||||||
|
- group 14;
|
||||||
|
- group 15;
|
||||||
|
- group 16;
|
||||||
|
- group 19;
|
||||||
|
- group 20;
|
||||||
|
- group 21.
|
||||||
|
|
||||||
|
### Время жизни (Lifetime)
|
||||||
|
|
||||||
|
Определяет, как долго действуют согласованные ключи в рамках второй фазы.
|
||||||
|
|
||||||
|
- рекомендуемое значение: 3600 секунд (1 час);
|
||||||
|
- после истечения времени выполняется повторная генерация ключей.
|
||||||
|
|
||||||
|
### Префиксы локальной сети заказчика
|
||||||
|
|
||||||
|
Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов.
|
||||||
+24
-21
@@ -1,15 +1,15 @@
|
|||||||
## Общая схема подключения
|
# Общая схема подключения
|
||||||
|
|
||||||
Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется.
|
Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется.
|
||||||
|
|
||||||
Подключение к кластеру Cloud PostgreSQL осуществляется через прокси-сервер.
|
Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей.
|
||||||
Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. В зависимости от выбранного порта прокси автоматически направляет трафик:
|
|
||||||
|
В зависимости от выбранного порта прокси автоматически направляет трафик:
|
||||||
- на активный primary-узел - для операций чтения и записи
|
- на активный primary-узел - для операций чтения и записи
|
||||||
- на реплики - для операций только чтения
|
- на реплики - для операций только чтения
|
||||||
|
|
||||||
Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер.
|
Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер.
|
||||||
|
|
||||||
------
|
|
||||||
## Подключение к базе данных
|
## Подключение к базе данных
|
||||||
|
|
||||||
Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги.
|
Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги.
|
||||||
@@ -18,29 +18,29 @@
|
|||||||
|
|
||||||
Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены.
|
Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены.
|
||||||
|
|
||||||
------
|
|
||||||
## Доступные порты
|
## Доступные порты
|
||||||
|
|
||||||
Для разных типов нагрузки используются разные порты:
|
Для разных типов нагрузки используются разные порты:
|
||||||
|
|
||||||
|Порт |Назначение |
|
|Порт |Назначение |
|
||||||
|---|---|
|
|------|-----------------------------------------|
|
||||||
|5432 |Primary (чтение и запись) |
|
|5432 |Primary (чтение и запись) |
|
||||||
|15432 |Replica (только чтение) |
|
|15432 |Replica (только чтение) |
|
||||||
|6432 |Primary через PgBouncer (чтение и запись)|
|
|6432 |Primary через PgBouncer (чтение и запись)|
|
||||||
|16432 |Replica через PgBouncer (только чтение) |
|
|16432 |Replica через PgBouncer (только чтение) |
|
||||||
|
|
||||||
### Особенности работы портов
|
### Особенности работы портов
|
||||||
|
|
||||||
- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически.
|
- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически;
|
||||||
- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin.
|
- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin;
|
||||||
- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается.
|
- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается.
|
||||||
|
|
||||||
### Рекомендации по выбору порта
|
### Рекомендации по выбору порта
|
||||||
|
|
||||||
- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать порты PgBouncer (6432 или 16432).
|
- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**;
|
||||||
- Для операций записи используйте master-порты (5432 или 6432).
|
- Для операций записи используйте **master-порты (5432 или 6432)**;
|
||||||
- Для read-only запросов можно использовать replica-порты (15432 или 16432).
|
- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**.
|
||||||
|
|
||||||
------
|
|
||||||
## Доступ к pgAdmin
|
## Доступ к pgAdmin
|
||||||
|
|
||||||
Для администрирования базы данных используется web-интерфейс pgAdmin.
|
Для администрирования базы данных используется web-интерфейс pgAdmin.
|
||||||
@@ -52,13 +52,14 @@
|
|||||||
|
|
||||||
Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису.
|
Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису.
|
||||||
|
|
||||||
### Важно
|
::: warning Важно
|
||||||
|
|
||||||
- Подключение к базе данных возможно только через указанный прокси-IP.
|
- подключение к базе данных возможно только через указанный прокси-IP;
|
||||||
- В интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных.
|
- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных;
|
||||||
- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде.
|
- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде.
|
||||||
|
|
||||||
------
|
:::
|
||||||
|
|
||||||
## Примеры подключения к PostgreSQL
|
## Примеры подключения к PostgreSQL
|
||||||
|
|
||||||
Подключение к primary:
|
Подключение к primary:
|
||||||
@@ -66,14 +67,16 @@
|
|||||||
|
|
||||||
Подключение через PgBouncer:
|
Подключение через PgBouncer:
|
||||||
`psql -h 10.X.X.4 -p 6432 -U <username> -d <database>`
|
`psql -h 10.X.X.4 -p 6432 -U <username> -d <database>`
|
||||||
|
|
||||||
### Подключение через DBeaver / DataGrip
|
### Подключение через DBeaver / DataGrip
|
||||||
|
|
||||||
При создании подключения укажите:
|
При создании подключения укажите:
|
||||||
- Host: 10.X.X.4
|
- Host: 10.X.X.4;
|
||||||
- Port: 5432 или 6432
|
- Port: 5432 или 6432;
|
||||||
- Database: `<database>`
|
- Database: `<database>`;
|
||||||
- User / Password: согласно выданным доступам
|
- User / Password: согласно выданным доступам;
|
||||||
- Тип подключения: PostgreSQL
|
- Тип подключения: PostgreSQL.
|
||||||
|
|
||||||
### Пример строки подключения
|
### Пример строки подключения
|
||||||
|
|
||||||
Primary:
|
Primary:
|
||||||
+18
-7
@@ -1,8 +1,9 @@
|
|||||||
Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса Cloud PostgreSQL, а также перечень административных операций, доступных ему для самостоятельного выполнения.
|
# Создание сервиса Cloud PostgreSQL
|
||||||
|
|
||||||
|
Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQ**L**, а также перечень административных операций, доступных ему для самостоятельного выполнения.
|
||||||
|
|
||||||
При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL.
|
При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL.
|
||||||
|
|
||||||
------
|
|
||||||
## Общая информация о пользователе
|
## Общая информация о пользователе
|
||||||
|
|
||||||
При инициализации сервиса автоматически создаётся пользователь:
|
При инициализации сервиса автоматически создаётся пользователь:
|
||||||
@@ -13,10 +14,10 @@ client
|
|||||||
|
|
||||||
Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий.
|
Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий.
|
||||||
|
|
||||||
------
|
|
||||||
## Выданные права и ограничения
|
## Выданные права и ограничения
|
||||||
|
|
||||||
Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных.
|
Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных.
|
||||||
|
|
||||||
### Атрибуты роли
|
### Атрибуты роли
|
||||||
|
|
||||||
Пользователь создаётся со следующими атрибутами:
|
Пользователь создаётся со следующими атрибутами:
|
||||||
@@ -24,11 +25,13 @@ client
|
|||||||
- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их.
|
- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их.
|
||||||
|
|
||||||
Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует.
|
Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует.
|
||||||
|
|
||||||
### Права на системную базу postgres:
|
### Права на системную базу postgres:
|
||||||
|
|
||||||
К стандартной базе данных `postgres` пользователю предоставлено только право подключения:
|
К стандартной базе данных `postgres` пользователю предоставлено только право подключения:
|
||||||
- `CONNECT`
|
- `CONNECT`
|
||||||
Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются.
|
Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются.
|
||||||
|
|
||||||
### Мониторинг и системные представления:
|
### Мониторинг и системные представления:
|
||||||
|
|
||||||
Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены:
|
Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены:
|
||||||
@@ -40,7 +43,6 @@ pg_catalog.pg_stat_replication
|
|||||||
|
|
||||||
Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно.
|
Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно.
|
||||||
|
|
||||||
------
|
|
||||||
## Обязательная смена пароля
|
## Обязательная смена пароля
|
||||||
|
|
||||||
После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля.
|
После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля.
|
||||||
@@ -74,10 +76,10 @@ ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...';
|
|||||||
|
|
||||||
Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище.
|
Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище.
|
||||||
|
|
||||||
------
|
|
||||||
## Создание новой базы данных
|
## Создание новой базы данных
|
||||||
|
|
||||||
Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL.
|
Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL.
|
||||||
|
|
||||||
### Пример создания базы данных
|
### Пример создания базы данных
|
||||||
|
|
||||||
Для создания базы данных используется стандартная команда:
|
Для создания базы данных используется стандартная команда:
|
||||||
@@ -87,6 +89,7 @@ CREATE DATABASE app_db;
|
|||||||
```
|
```
|
||||||
|
|
||||||
Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает.
|
Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает.
|
||||||
|
|
||||||
### Пример создания базы данных с указанием владельца
|
### Пример создания базы данных с указанием владельца
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
@@ -95,10 +98,10 @@ CREATE DATABASE app_db OWNER client;
|
|||||||
|
|
||||||
В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение.
|
В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение.
|
||||||
|
|
||||||
------
|
|
||||||
## Создание пользователей и ролей
|
## Создание пользователей и ролей
|
||||||
|
|
||||||
Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа.
|
Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа.
|
||||||
|
|
||||||
### Создание роли без логина
|
### Создание роли без логина
|
||||||
|
|
||||||
Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду:
|
Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду:
|
||||||
@@ -106,6 +109,7 @@ CREATE DATABASE app_db OWNER client;
|
|||||||
```sql
|
```sql
|
||||||
CREATE ROLE app_role;
|
CREATE ROLE app_role;
|
||||||
```
|
```
|
||||||
|
|
||||||
### Создание пользователя с паролем
|
### Создание пользователя с паролем
|
||||||
|
|
||||||
Для создания пользователя с паролем используется команда:
|
Для создания пользователя с паролем используется команда:
|
||||||
@@ -115,6 +119,7 @@ CREATE USER app_user WITH PASSWORD 'app_password';
|
|||||||
```
|
```
|
||||||
|
|
||||||
После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль.
|
После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль.
|
||||||
|
|
||||||
### Назначение роли пользователю
|
### Назначение роли пользователю
|
||||||
|
|
||||||
Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли:
|
Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли:
|
||||||
@@ -124,6 +129,7 @@ GRANT app_role TO app_user;
|
|||||||
```
|
```
|
||||||
|
|
||||||
После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью.
|
После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью.
|
||||||
|
|
||||||
### Передача владельца базы данных
|
### Передача владельца базы данных
|
||||||
|
|
||||||
Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды:
|
Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды:
|
||||||
@@ -133,9 +139,11 @@ ALTER DATABASE app_db OWNER TO app_user;
|
|||||||
```
|
```
|
||||||
|
|
||||||
Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней.
|
Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней.
|
||||||
|
|
||||||
### Управление правами доступа
|
### Управление правами доступа
|
||||||
|
|
||||||
После создания пользователей и ролей необходимо назначить им соответствующие права доступа.
|
После создания пользователей и ролей необходимо назначить им соответствующие права доступа.
|
||||||
|
|
||||||
### Выдача прав на подключение к базе данных
|
### Выдача прав на подключение к базе данных
|
||||||
|
|
||||||
Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права:
|
Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права:
|
||||||
@@ -155,6 +163,7 @@ GRANT USAGE, CREATE ON SCHEMA public TO app_user;
|
|||||||
```
|
```
|
||||||
|
|
||||||
Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё.
|
Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё.
|
||||||
|
|
||||||
### Права на существующие таблицы
|
### Права на существующие таблицы
|
||||||
|
|
||||||
Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду:
|
Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду:
|
||||||
@@ -164,6 +173,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
|
|||||||
```
|
```
|
||||||
|
|
||||||
Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`.
|
Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`.
|
||||||
|
|
||||||
### Права на будущие таблицы
|
### Права на будущие таблицы
|
||||||
|
|
||||||
Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду:
|
Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду:
|
||||||
@@ -175,10 +185,10 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;
|
|||||||
|
|
||||||
Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных.
|
Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных.
|
||||||
|
|
||||||
------
|
|
||||||
## Мониторинг репликации
|
## Мониторинг репликации
|
||||||
|
|
||||||
Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL.
|
Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL.
|
||||||
|
|
||||||
### Просмотр состояния репликации
|
### Просмотр состояния репликации
|
||||||
|
|
||||||
Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению:
|
Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению:
|
||||||
@@ -187,6 +197,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;
|
|||||||
SELECT * FROM pg_stat_replication;
|
SELECT * FROM pg_stat_replication;
|
||||||
```
|
```
|
||||||
Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу.
|
Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу.
|
||||||
|
|
||||||
### Ограничения доступа
|
### Ограничения доступа
|
||||||
|
|
||||||
Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации.
|
Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации.
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
## О разделе
|
|
||||||
|
|
||||||
Данный раздел описывает технические параметры кластера PostgreSQL и порядок их первичной конфигурации.
|
|
||||||
|
|
||||||
Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке.
|
|
||||||
|
|
||||||
Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями.
|
|
||||||
|
|
||||||
-----
|
|
||||||
## Выбор типа и размера дискового хранилища
|
|
||||||
|
|
||||||
Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика.
|
|
||||||
|
|
||||||
_IOPS_ - количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы.
|
|
||||||
### Доступные типы хранилищ:
|
|
||||||
|
|
||||||
| Название | Лимит IOPS | Время отклика |
|
|
||||||
| -------------- | ------------------ | ------------- |
|
|
||||||
| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс |
|
|
||||||
| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс |
|
|
||||||
| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс |
|
|
||||||
| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс |
|
|
||||||
|
|
||||||
**После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.**
|
|
||||||
|
|
||||||
## Конфигурация вычислительных ресурсов
|
|
||||||
|
|
||||||
В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL.
|
|
||||||
|
|
||||||
### Количество нод в кластере
|
|
||||||
|
|
||||||
Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 1 до 5.
|
|
||||||
|
|
||||||
### Процессор (CPU)
|
|
||||||
|
|
||||||
Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт.
|
|
||||||
|
|
||||||
### Оперативная память (RAM)
|
|
||||||
|
|
||||||
Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ.
|
|
||||||
|
|
||||||
## Интернет
|
|
||||||
|
|
||||||
При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет.
|
|
||||||
|
|
||||||
**Доступные варианты скорости:**
|
|
||||||
- 50 Мбит/с
|
|
||||||
- 100 Мбит/с
|
|
||||||
- 200 Мбит/с
|
|
||||||
- 300 Мбит/с
|
|
||||||
- 400 Мбит/с
|
|
||||||
- 500 Мбит/с
|
|
||||||
- 1000 Мбит/с (1 Гбит/с)
|
|
||||||
|
|
||||||
*Для выбранного канала предоставляется статический белый IP-адрес.*
|
|
||||||
|
|
||||||
-----
|
|
||||||
## Параметры конфигурации IPSEC
|
|
||||||
|
|
||||||
Ниже приведены основные параметры, задаваемые при развертывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению.
|
|
||||||
|
|
||||||
### Данные о конфигурации IPSEC
|
|
||||||
|
|
||||||
Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком.
|
|
||||||
### Версия IKE (Internet Key Exchange)
|
|
||||||
|
|
||||||
Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - _v1_ и _v2_. Разница заключается в том, что _IKE v1_ - более ранняя версия протокола.
|
|
||||||
_IKE v2_ - более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает.
|
|
||||||
|
|
||||||
### Метод аутентификации
|
|
||||||
|
|
||||||
Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта: _PSK_ (Pre-Shared Key) и _Certificate_ (Сертификат).
|
|
||||||
- _PSK (Pre-Shared Key)_ - метод аутентификации, при котором используется заранее согласованный общий ключ.
|
|
||||||
- _Certificate_ - аутентификация с использованием цифровых сертификатов.
|
|
||||||
|
|
||||||
------
|
|
||||||
## Этап 1 - установка защищенного соединения
|
|
||||||
|
|
||||||
### Hash
|
|
||||||
|
|
||||||
Определяет алгоритм хэширования для защиты управляющего канала. Данный параметр заполняется вручную из выпадающего списка следующего содержания:
|
|
||||||
- _SHA 1_ - Формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием.
|
|
||||||
- _SHA 2 - 256_ - Формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем.
|
|
||||||
- _SHA 2 - 384_ - Длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности.
|
|
||||||
- _SHA 2 - 512_ - Длина хэша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии.
|
|
||||||
|
|
||||||
### Шифрование
|
|
||||||
|
|
||||||
Определяет алгоритм симметричного шифрования. Данный параметр заполняется вручную из выпадающего списка следующего содержания:
|
|
||||||
- _AES 128_ - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач.
|
|
||||||
- _AES 256_ - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU.
|
|
||||||
- _AES GCM 128_ / _AES GCM 192_ / _AES GCM 256_ - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа.
|
|
||||||
|
|
||||||
### DH Group - группа Деффи Хеллмана
|
|
||||||
|
|
||||||
Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети.
|
|
||||||
Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения.
|
|
||||||
|
|
||||||
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
|
|
||||||
- _group 2_
|
|
||||||
- _group 5_
|
|
||||||
- _group 14_
|
|
||||||
- _group 15_
|
|
||||||
- _group 16_
|
|
||||||
- _group 19_
|
|
||||||
- _group 20_
|
|
||||||
- _group 21_
|
|
||||||
### IKE Mode (только для IKEv1)
|
|
||||||
|
|
||||||
Параметр IKE Mode определяет способ установления соединения на этапе 1 при использовании протокола IKEv1.
|
|
||||||
|
|
||||||
Доступны два режима: _Main_ и _Aggressive_. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных.
|
|
||||||
- Main Mode - является стандартным и более безопасным режимом работы IKEv1.
|
|
||||||
- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных)
|
|
||||||
|
|
||||||
### Время жизни
|
|
||||||
|
|
||||||
Определяет, как долго действуют согласованные ключи в рамках первой фазы.
|
|
||||||
- Рекомендуемое значение: 86400 секунд (24 часа).
|
|
||||||
- После истечения времени выполняется повторная генерация ключей.
|
|
||||||
|
|
||||||
------
|
|
||||||
## Этап 2 - передача данных
|
|
||||||
|
|
||||||
Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных.
|
|
||||||
## Hash
|
|
||||||
|
|
||||||
Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку, что данные не были изменены при передаче. Содержит такой же перечень элементов для выбора:
|
|
||||||
- _SHA 1_
|
|
||||||
- _SHA 2 - 256_
|
|
||||||
- _SHA 2 - 384_
|
|
||||||
- _SHA 2 - 512_
|
|
||||||
|
|
||||||
## Шифрование
|
|
||||||
|
|
||||||
Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы:
|
|
||||||
- _AES 128_
|
|
||||||
- _AES 256_
|
|
||||||
- _AES GCM 128_
|
|
||||||
- _AES GCM 192_
|
|
||||||
- _AES GCM 256_
|
|
||||||
### PFS
|
|
||||||
|
|
||||||
_Enable perfect forward secrecy (PFS)_ - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе.
|
|
||||||
Данный параметр представлен в виде чекбокса. При его включении:
|
|
||||||
|
|
||||||
- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman.
|
|
||||||
- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет.
|
|
||||||
- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1.
|
|
||||||
|
|
||||||
### DH Group - группа Деффи Хеллмана
|
|
||||||
|
|
||||||
Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена.
|
|
||||||
|
|
||||||
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
|
|
||||||
- _group 2_
|
|
||||||
- _group 5_
|
|
||||||
- _group 14_
|
|
||||||
- _group 15_
|
|
||||||
- _group 16_
|
|
||||||
- _group 19_
|
|
||||||
- _group 20_
|
|
||||||
- _group 21_
|
|
||||||
|
|
||||||
### Время жизни (в секундах)
|
|
||||||
|
|
||||||
Определяет, как долго действуют согласованные ключи в рамках второй фазы.
|
|
||||||
|
|
||||||
- Рекомендуемое значение: 3600 секунд (1 час).
|
|
||||||
- После истечения времени выполняется повторная генерация ключей.
|
|
||||||
### Префиксы локальной сети заказчика
|
|
||||||
|
|
||||||
Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов.
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
## Cloud PostgreSQL
|
|
||||||
|
|
||||||
## О сервисе
|
|
||||||
|
|
||||||
Cloud PostgreSQL - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости.
|
|
||||||
|
|
||||||
PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений.
|
|
||||||
|
|
||||||
В Cloud PostgreSQL все основные операции по управлению кластером выполняются автоматически.
|
|
||||||
Сервис самостоятельно:
|
|
||||||
- управляет ролями серверов базы данных (основной сервер и реплики)
|
|
||||||
- отслеживает состояние узлов
|
|
||||||
- автоматически переключает основной сервер при сбоях
|
|
||||||
|
|
||||||
Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов:
|
|
||||||
- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах
|
|
||||||
- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов
|
|
||||||
- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами
|
|
||||||
|
|
||||||
Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера.
|
|
||||||
Для управления базами данных и пользователями в сервисе доступен web-интерфейс **pgAdmin**, который позволяет выполнять администрирование через браузер.
|
|
||||||
|
|
||||||
---
|
|
||||||
## Конфигурации кластера
|
|
||||||
|
|
||||||
Сервис Cloud PostgreSQL поддерживает версии PostgreSQL с 13 по 17.
|
|
||||||
|
|
||||||
Сервис предоставляется в виде кластера базы данных в конфигурации Primary–Standby, которая обеспечивает репликацию данных и повышенную отказоустойчивость.
|
|
||||||
В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий:
|
|
||||||
- Primary (основной сервер) - обязательный узел, на котором выполняются операции записи данных
|
|
||||||
- Replica (реплики) - дополнительные узлы, которые создаются по желанию пользователя
|
|
||||||
|
|
||||||
Количество реплик может составлять от 0 до 4. Реплики являются частью кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). В многонодовой конфигурации серверы кластера размещаются на разных хостах гипервизора, что повышает устойчивость сервиса к отказам.
|
|
||||||
|
|
||||||
По умолчанию фиксация изменений выполняется в синхронном режиме репликации. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на реплике.
|
|
||||||
При наличии нескольких реплик синхронный режим применяется только к одной из них, для остальных используется асинхронный режим.
|
|
||||||
|
|
||||||
При необходимости режим репликации может быть изменён на асинхронный. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой, без ожидания подтверждения от них.
|
|
||||||
|
|
||||||
Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через предоставленные сервисом точки подключения.
|
|
||||||
|
|
||||||
На каждом узле кластера установлен пулер соединений PgBouncer, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами.
|
|
||||||
|
|
||||||
---
|
|
||||||
## Возможности сервиса
|
|
||||||
|
|
||||||
Cloud PostgreSQL предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры.
|
|
||||||
|
|
||||||
Сервис обеспечивает:
|
|
||||||
- автоматическое управление кластером PostgreSQL
|
|
||||||
- высокую доступность за счёт репликации и автоматического переключения primary-узла
|
|
||||||
- единую точку подключения к базе данных через прокси
|
|
||||||
- автоматическое переключение при отказе узлов кластера без вмешательства пользователя
|
|
||||||
- web-доступ к управлению базами данных и пользователями через pgAdmin
|
|
||||||
- совместимость со стандартными клиентскими инструментами PostgreSQL
|
|
||||||
- возможность установки расширений PostgreSQL в базу данных
|
|
||||||
|
|
||||||
---
|
|
||||||
## Сценарии использования сервиса
|
|
||||||
|
|
||||||
Cloud PostgreSQL подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных.
|
|
||||||
|
|
||||||
Сервис может применяться в следующих сценариях:
|
|
||||||
- размещение production-баз данных с высокими требованиями к доступности
|
|
||||||
- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных
|
|
||||||
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры
|
|
||||||
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover
|
|
||||||
- администрирование баз данных через web-интерфейс без прямого доступа к серверам кластера
|
|
||||||
Reference in New Issue
Block a user