What Is It?
PostgreSQL is a fully managed, open-source relational database service offering versions 14, 15, and 16 with support for advanced extensions including PostGIS, TimescaleDB, and pgvector. The service provides high availability through configurable replication modes (asynchronous or strictly synchronous; the older plain synchronous mode is deprecated), automated backups with a configurable retention window (1 to 365 days, 7 days by default) and point-in-time recovery, and cluster topologies with up to 5 instances (1 primary + 4 standbys). Clusters run on private LANs only and include built-in monitoring via Prometheus-style metrics.
Quick Facts
| Aspect | Details |
|---|---|
| Type | Managed relational database (open-source PostgreSQL) |
| Versions | PostgreSQL 14, 15, and 16 (major version upgrades supported in-place) |
| Replication Modes | Asynchronous (lowest latency), Strictly Synchronous (durability over availability); plain Synchronous is deprecated |
| High Availability | 1 primary + 0-4 standby instances (max 5 instances per cluster) |
| Scaling | Vertical (CPU, RAM, storage per instance) and horizontal (add standby replicas) |
| Storage | SSD Premium (recommended), SSD, or HDD, with shared space for WAL files |
| Extensions | Pre-installed set including PostGIS, TimescaleDB, pgvector, pg_stat_statements, plpgsql, and more |
| Network Access | Private LAN only (no public internet exposure) |
Resource Configuration
| Component | Options |
|---|---|
| CPU Cores | Configurable per instance (subject to quota) |
| RAM | Configurable per instance (subject to quota) |
| Storage Type | SSD Premium (recommended for production), SSD, or HDD |
| Storage Size | Configurable in GB, shared with WAL files |
| Instances per Cluster | 1-5 (1 primary + up to 4 standbys) |
Replication Mode Comparison
| Mode | Latency | Data Loss Risk | Availability | Use Case |
|---|---|---|---|---|
| Asynchronous | Lowest | Possible loss of recent transactions | Highest | Development, read-heavy workloads |
| Synchronous (deprecated) | Higher | No data loss on failover | High | Legacy clusters only; use Strictly Synchronous for new clusters |
| Strictly Synchronous | Highest | Zero data loss guarantee | Lower (requires at least 3 replicas) | Mission-critical data with absolute durability requirements |
Pre-installed Extensions (PostgreSQL 15+)
| Extension | Default Active | Purpose |
|---|---|---|
| pg_stat_statements | Yes | Query performance tracking |
| setuser | Yes | Secure user switching |
| plpgsql | Yes | Procedural SQL language |
| pg_stat_kcache | Yes | Kernel cache statistics |
| pg_trgm | No | Trigram text search |
| postgis | No | Geospatial data types and functions |
| timescaledb | No | Time-series database optimization |
| vector | No | Vector similarity search for AI/ML workloads |
Extensions marked "No" must be activated manually with CREATE EXTENSION command.
What You Can Do
Advanced SQL and Data Types
Execute complex queries with full PostgreSQL SQL support. Use native JSON/JSONB data types, array types, geospatial data (PostGIS extension), and time-series optimizations (TimescaleDB extension). Create custom functions, triggers, and stored procedures.
High Availability Clustering
Deploy clusters with one primary and up to four standby instances. Choose replication mode based on your durability and latency requirements. Automatic failover promotes a standby to primary during hardware failures or maintenance. Planned failovers signal clients via closed TCP connections.
Note: Strictly synchronous mode sacrifices availability (requires at least 3 replicas) to guarantee zero data loss.
Automated Backups and Point-in-Time Recovery
Automatic backups use base backup plus continuous WAL (Write-Ahead Log) archiving. Backups are encrypted and stored in an IONOS Cloud Object Storage bucket in the same region (or in eu-central-2 if Object Storage is unavailable in that region), with a configurable retention window of 1 to 365 days (7 days by default). Restore to any point within the retention window. Backups are automatically created during cluster creation, version upgrades, and before PITR operations.
Note: Up to 30 minutes or 16 MB of data may be lost if the last WAL segment is not archived before a failure.
Extension Ecosystem
Activate pre-installed extensions for specialized functionality. Use PostGIS for location-based applications, TimescaleDB for time-series analytics, pgvector for AI/ML similarity search, and pg_stat_statements for query performance analysis. Extensions can be activated per-cluster on PostgreSQL 15+ using standard CREATE EXTENSION commands.
Vertical and Horizontal Scaling
Scale vertically by adjusting CPU, RAM, and storage per instance. Scale horizontally by adding standby replicas (up to 4 standbys). Maintenance operations on multi-replica clusters update only standbys first, allowing switchover to keep primary online during minor version patches.
Role-Based Access Control
Create roles as privilege containers and users as roles with LOGIN capability. Revoke PUBLIC rights on databases and grant specific privileges (CONNECT, USAGE, SELECT, INSERT, UPDATE, DELETE) as needed. Use ALTER DEFAULT PRIVILEGES to control permissions on future objects.
Note: Initial admin username and password can only be set during cluster creation. Subsequent password changes require SQL commands.
Performance Monitoring and Metrics
Built-in Prometheus-style metrics track CPU load (5-minute average), RAM and storage utilization, instance count, transaction rate, index vs sequential scans, and per-instance load. Access metrics via DCD dashboard or Telemetry API (2-week retention). Use pg_stat_statements extension for detailed query performance analysis.
Access Logs and Auditing
Connection, disconnection, lock-wait, DDL, long-running queries (>500ms), and error statements are logged on-disk (max ~175 MB) and shipped to central storage with 30-day retention. Fetch logs via API with optional time range, direction, and limit parameters.
Maintenance Windows
Schedule weekly 4-hour maintenance window (day + UTC start time) for patches and minor version upgrades. Minor upgrades are automatic and backward-compatible. Major version upgrades are manual and require testing on cloned cluster, sufficient free storage, and planned downtime.
Kubernetes Integration
Attach Kubernetes node pools to the same private LAN as the database cluster. Use standard PostgreSQL client libraries from pods to connect. Verify connectivity with pg_isready command.
Best For
| Scenario | Why It Fits |
|---|---|
| ACID-compliant applications | Full transaction support with configurable durability guarantees (synchronous replication) |
| Geospatial applications | PostGIS extension provides native support for location data, spatial queries, and GIS functions |
| Time-series analytics | TimescaleDB extension optimizes storage and queries for time-series data at scale |
| AI/ML workloads | pgvector extension enables vector similarity search for embeddings and semantic search |
| Data warehousing | Advanced SQL features, complex queries, and horizontal read scaling via standby replicas |
| Mission-critical systems | Strictly synchronous replication guarantees zero data loss with automatic failover |
| Regulatory compliance | Encrypted backups, access logs with 30-day retention, role-based access control |
| Multi-tenant applications | Fine-grained privilege management and database-level isolation |
Key Considerations
Billing & Costs
- Main billing: CPU cores and RAM are billed per hour; storage and backup storage are billed per GB per 30 days, all provisioned per instance
- When stopped: Billing continues even when cluster is stopped (resources remain reserved)
- Additional costs: Storage for WAL files (shares allocated storage), backup storage in IONOS Cloud Object Storage (billed per GB / 30 days)
Limitations
- Maximum 5 instances per cluster (1 primary + 4 standbys)
- Automatic backup retention defaults to 7 days but is configurable from 1 to 365 days; point-in-time recovery is limited to the currently configured backup retention window.
- Up to 30 minutes or 16 MB of data may be lost if last WAL segment is not archived before failure
- Storage is shared between database files and WAL files (plan capacity accordingly)
- Initial admin username and password can only be set during cluster creation
- Major version upgrades are not automatic (requires manual testing and planning)
- Strictly synchronous mode requires at least 3 replicas (sacrifices availability for durability)
- Private IP must be from LAN /24 subnet and avoid DHCP range (typically x.x.x.3-10)
- Extensions require PostgreSQL 15+ for manual activation
- Access logs retained for 30 days (max ~175 MB on-disk)
- Metrics via Telemetry API have 2-week retention
Management Options
- IONOS Data Center Designer (DCD) web interface for cluster creation and management
- IONOS DBaaS REST API for programmatic control
- PostgreSQL client tools (psql, pgAdmin, DBeaver, etc.)
- Standard PostgreSQL drivers for application integration
- Prometheus-style metrics API for monitoring
- Access logs API for auditing and troubleshooting
- ionosctl CLI for Kubernetes node pool attachment