PostgreSQL በአንድ ትዕዛዝ ይጫናል። ሰዎች የሚሳሳቱት በርቀት መዳረሻ ላይ ነው፦ ፖርት 5432ን ለመላው ዓለም ይከፍታሉ፣ የይለፍ ቃል ያስቀምጣሉ፣ ከዚያ logs ለምን በመግቢያ ሙከራዎች እንደሞሉ ይገረማሉ። ይህ መመሪያ Postgresን በUbuntu 24.04 ላይ ይጭናል፣ database ይፈጥራል፣ እና ከውጭ ለመገናኘት ሁለት ደህንነቱ የተጠበቁ መንገዶችን ያሳያል።
1. መጫን
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
በUbuntu 24.04 ላይ ይህ PostgreSQL 16 ነው። በነባሪ የሚያዳምጠው localhostን ብቻ ነው፤ ምክንያት ከሌለዎት እንዲሁ ይተዉት።
2. ተጠቃሚ እና database ይፍጠሩ
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
በተመሳሳይ server ላይ ያሉ apps በpostgresql://app:PASSWORD@localhost:5432/appdb ይገናኛሉ።
3. ከላፕቶፕዎ ይገናኙ፦ SSH tunnel (የሚመከር)
የሚከፈት ምንም ነገር የለም፣ በserverሩ ላይ የሚዋቀር ምንም ነገር የለም። tunnelኡ አካባቢያዊ ፖርትን በSSH በኩል ያስተላልፋል፦
ssh -N -L 5433:localhost:5432 root@203.0.113.10
በNAT ዕቅድ ላይ የግል SSH ፖርትዎን ከፓነሉ ያክሉ፦
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
tunnelኡ ክፍት እስከሆነ ድረስ የdatabase clientዎን ወደ localhost:5433 ያመልክቱ። SSH ሁሉንም ነገር ያመስጥራል እና ፖርት 5432 ለኢንተርኔት ተዘግቶ ይቆያል። እንደ DBeaver እና pgAdmin ያሉ ግራፊክ tools ተመሳሳዩን የሚያደርግ «SSH tunnel» tab አላቸው።
4. ለሌላ server ቀጥተኛ መዳረሻ (የፈቃድ ዝርዝር)
በሌላ ቦታ ያለ የapp server በቀጥታ መገናኘት ካለበት የእሱን IP ብቻ ይፍቀዱ። ይህ የdatabase serverሩ dedicated IP ባለው ዕቅድ ላይ እንዲሆን ይፈልጋል፣ ምክንያቱም የNAT ዕቅዶች ከSSH በስተቀር ገቢ ግንኙነቶችን አይቀበሉም።
በ/etc/postgresql/16/main/postgresql.conf ውስጥ፦
listen_addresses = '*'
በ/etc/postgresql/16/main/pg_hba.conf መጨረሻ ላይ፦
hostssl appdb app 198.51.100.20/32 scram-sha-256
firewallኡን ለዚያ አንድ አድራሻ ብቻ ይክፈቱ እና ዳግም ያስጀምሩ፦
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl የተመሰጠሩ ግንኙነቶችን ያስገድዳል፤ የUbuntu package self-signed certificate አለው፣ ስለዚህ clients በsslmode=require መገናኘት አለባቸው።
5. ምክንያታዊ የመነሻ ቅንብሮች
2 GB RAM ላለው server፣ በpostgresql.conf ውስጥ፦
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
ከለውጡ በኋላ ዳግም ያስጀምሩ። ለአብዛኞቹ ትናንሽ apps ይህ በቂ ነው፤ እውነተኛ queries ካዩ በኋላ በጥንቃቄ ያስተካክሉ።
6. Backups
በየሌሊቱ አንድ dump፣ ለአንድ ሳምንት የሚቀመጥ፦
mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF
-Fc በpg_restore የሚመለስ የተጨመቀ dump ይፈጥራል። dumpsን ከserverሩ ውጭም ይቅዱ፤ Managed Backups የሙሉውን ማሽን ዕለታዊ የመመለሻ ነጥቦችን ይጨምራሉ።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።