Еуропадағы PostgreSQL үшін бұлт сервері: GDPR бойынша баптау
PostgreSQL - сенімділік, күрделі сұраныстар және деректердің қатаң тұтастығы керек қосымшалардың таңдауы. Егер пайдаланушыларыңыз немесе бизнесіңіз Еуропада болса, PostgreSQL-ді ЕО бұлт серверінде іске қосу техникалық қалау емес, GDPR бойынша заңдық және коммерциялық қажеттілік.
Бұл нұсқаулық PostgreSQL-ге қандай жабдық қажет, талапқа сай ЕО бұлт серверін қалай көтеру керек және данасын бір сағаттан аз уақытта жұмысқа енгізуді баяндайды.
Деректердің ЕО ішінде сақталуы PostgreSQL үшін неге маңызды
GDPR ЕО тұрғындарының дербес деректері ЕО юрисдикциясында өңделуін талап етеді. PostgreSQL базасын физикалық түрде ЕО ішінде тұрған және ЕО компаниясы қызмет көрсететін серверде орналастыру АҚШ гипермасштабты провайдерлерімен күрделі деректерді өңдеу келісімдерінсіз деректердің сақталу орны талаптарын орындайды.
Талапқа сәйкестіктен басқа, ЕО серверлері еуропалық пайдаланушыларға кешігуді азайтады. Франкфурттегі немесе Прагадағы база берлиндік қосымшаға Вирджинияда орналасқаннан 30-80 мс жылдам жауап береді. Транзакциялық жүктемелерде бұл айырма пайдаланушы тәжірибесінің байқалатын жақсаруына жинақталады.
PostgreSQL үшін серверге қойылатын ең аз талаптар
Дұрыс конфигурация жүктемеге байланысты, бірақ практикалық бастау нүктелері мынадай:
- Шағын (әзірлеу мен стейджинг, секундына 10 мыңнан аз жол) - 4 vCPU, 8 ГБ RAM, 100 ГБ NVMe SSD
- Орташа (продакшен қосымша, секундына 10-100 мың жол) - 8 vCPU, 32 ГБ RAM, 500 ГБ NVMe SSD
- Ірі (аналитика немесе жазуы қарқынды OLTP) - 16 және одан көп vCPU, 64-128 ГБ RAM, 1 ТБ және одан көп NVMe SSD
PostgreSQL RAM-нан қатты ұтады: shared_buffers және effective_cache_size үлкен болған сайын, дискілік енгізу-шығаруды соғұрлым аз жасайсыз. NVMe қоры жазуы қарқынды жүктемелер үшін маңызды, себебі WAL жазулары тізбекті, бірақ жиі.
Ұсынылатын DCXV конфигурациясы
DCXV бұлт серверлері ЕО ішінде Tier III бойынша сертификатталған инфрақұрылымда, NVMe қорына негізделген сақтаумен және бөлінген желі арналарымен жұмыс істейді. DCXV-де PostgreSQL үшін практикалық продакшен сызбасы:
- 8 vCPU, 32 ГБ RAM, 500 ГБ NVMe - SaaS-тың продакшен базаларының көпшілігін көтереді
- 16 vCPU, 64 ГБ RAM, 1 ТБ NVMe - қатарлас есеп сұраныстары бар аналитикалық базалар
- Деректердің ISO 27001 бойынша сертификатталған дата-орталықтарында толық ЕО ішінде сақталуы
- Қосымша және база серверлерінің арасында үстеме ақысыз жеке желі
Жүктемеңізді талқылап, конфигурация бойынша ұсыныс алу үшін sales@dcxv.com адресіне жазыңыз.
Жылдам орнатуға арналған командалар
# Ubuntu 22.04-ке PostgreSQL 16 орнату
sudo apt update && sudo apt install -y postgresql-16
# Қызметті іске қосу және қосулы қалдыру
sudo systemctl start postgresql
sudo systemctl enable postgresql
# postgres пайдаланушысына өту және psql ашу
sudo -u postgres psql
# База мен пайдаланушы жасау
CREATE DATABASE myapp;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strongpassword';
GRANT ALL PRIVILEGES ON DATABASE myapp TO myapp_user;
\q
# 32 ГБ RAM серверіне postgresql.conf-тың негізгі параметрлері
# /etc/postgresql/16/main/postgresql.conf файлын түзетіңіз
# Жад параметрлері
shared_buffers = 8GB # RAM-ның 25%
effective_cache_size = 24GB # RAM-ның 75%
work_mem = 64MB # әр сұрыптауға немесе хешке
maintenance_work_mem = 2GB # VACUUM, CREATE INDEX үшін
# Жазу өнімділігі
wal_buffers = 64MB
checkpoint_completion_target = 0.9
max_wal_size = 4GB
# Қосылымдар
max_connections = 200
# Өзгерістен кейін қайта жіберіңіз
sudo systemctl restart postgresql
# Қашықтан қосылуға рұқсат беру (pg_hba.conf түзетіңіз)
# Қосымша серверіңіздің жеке адресін қосыңыз
echo "host myapp myapp_user 10.0.0.0/24 scram-sha-256" | sudo tee -a /etc/postgresql/16/main/pg_hba.conf
# Жеке адресті тыңдау үшін postgresql.conf-ты да жаңартыңыз
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '10.0.0.5,localhost'/" /etc/postgresql/16/main/postgresql.conf
sudo systemctl reload postgresql
Әр жад параметрі шынымен не істейді
Сол конфигурация блогындағы төрт мән кездейсоқ таңдалмаған, олардың біреуі ғана серверге қойылған шектеу. Осы айырманы дұрыс түсінбеу - RAM көлемі үлкен машинаның своп-қа кетуінің жолы:
| Параметр | Ол нені қамтиды | Жоғарыдағы мән | Оның дұрыс емесін қалай білеміз |
|---|---|---|---|
| shared_buffers | Ортақ бет кеші, серверге бір рет | 8 ГБ | Оқулар дискіге баруын қоймайды, ал бос жад қараусыз тұрады |
| work_mem | Бір сұрыптау немесе хеш, операцияға | 64 МБ | Журналда уақытша файлдар пайда болады немесе сервер жүктеме астында своп-қа кетеді |
| maintenance_work_mem | VACUUM және индекс құру, әр жұмыс процесіне | 2 ГБ | Автовакуум ең ірі кестеде жұмысын ешқашан бітірмейді |
| effective_cache_size | Ештеңе - бұл жоспарлаушыға берілген белгі | 24 ГБ | Жоспарлаушы әбден келетін индекстің орнына тізбекті сканерлеуді таңдайды |
Тісі бататыны нақ work_mem. Ол қосылымға емес, әр сұрыптауға қолданылады, сондықтан елу қосылымда жүрген үш сұрыптауы бар сұраныс қойған мәннен жүз елу есе көп сұрауы мүмкін. Оны бүкіл сервер үшін емес, керек болған бір есеп сұранысы үшін, сол сеанс ішінде көтеріңіз.
Күтілетін өнімділік көрсеткіштері
PostgreSQL 16 дұрыс бапталған 8 vCPU / 32 ГБ RAM / NVMe данасында:
- pgbench, секундына транзакция (тек оқу, масштаб 100) - 12 000-18 000
- pgbench, секундына транзакция (оқу мен жазу, масштаб 100) - 4 000-7 000
- Бір жолды таңдау кешігуі (индекс бойынша) - 0,5 мс-тен аз
- Пакеттік INSERT (1 млн жол) - 60 секундтан аз
Бұл цифрлар жұмыс жиыны shared_buffers-ке сыяды деп болжайды. RAM-нан үлкен деректер жиындарында тар жол SSD өткізу қабілеті болады: NVMe қоры секундына 3 000 МБ-тан асатын тұрақты тізбекті оқуды ұстайды, бұл кеш өтіп кеткенде де кешігуді қолайлы қалпында сақтайды.
Бұл осы кластағы жабдыққа күтілетін шамалар, өз зертханамыздағы өлшемдер емес. Оларды есептеудің бастау нүктесі деп санап, өз жүктемеңізді өлшеңіз: нақты цифрлар провайдерден гөрі сіздің деректеріңізге, сұраныстарыңызға және баптауыңызға әлдеқайда күштірек байланысты.
Түйін
ЕО бұлт серверіндегі PostgreSQL GDPR-ға сәйкестікті, еуропалық пайдаланушыларға төмен кешігуді және деректеріңізге толық бақылауды береді. Дұрыс есептелген DCXV данасынан бастаңыз, жоғарыдағы баптау параметрлерін қолданыңыз, сонда бір сағаттан айтарлықтай тез продакшенге дайын база болады.
