Prerequisites
- An account on the target cloud with permission to launch VM instances (no special IAM roles are required by this product unless stated below — IAM required: none).
- An SSH key pair registered in the target cloud (all access is key-only; password SSH is disabled).
- Instance size ≥ 4 vCPU (pricing floor; 8 vCPU recommended).
- No internet access or external dependency is required at deploy time — the image is self-contained.
AWS
- Subscribe and launch; same local-only posture applies.
Expected result `sudo -u postgres pg_isready` → accepting connections.
Google Cloud
- Deploy from the Marketplace listing (or the deployment package): shielded VM, OS Login, IAP-only SSH — 5432 is NOT exposed by the package by default.
Expected result gcloud compute ssh <vm> --tunnel-through-iap works; `sudo -u postgres pg_isready` reports accepting connections. - For in-VPC clients: set listen_addresses in postgresql.conf, add a pg_hba.conf rule for your subnet, restart postgresql, and add a firewall rule for 5432 from that subnet only.
Expected result psql from an app VM in the subnet connects; the internet cannot.
Validate
sudo -u postgres pg_isready → 'accepting connections'
First boot: Cluster is initialized by the distro packages; service enabled. Ready when pg_isready succeeds (seconds after boot).
Secure it
- Restrict SSH (22) to your own IP range in the cloud firewall/security group.
- Open application ports only per the ports table — closed-by-default is deliberate.
- Volume encryption: use your cloud's native volume encryption (enabled by default on most accounts); the image adds no proprietary encryption layer.
Costs & quotas
Software is billed by the marketplace at the listed rate; infrastructure (VM, storage, egress) is billed
by your cloud at its standard rates. The recommended size fits default service quotas in most accounts —
if you scale out, review your cloud's quota console before launch.
Next: configuration · troubleshooting · security notes