terraform apply.
When to use this vs. single-node
Choose your cloud
Observal ships Terraform modules for both AWS and GCP. They provision equivalent architectures using each cloud’s native managed services.AWS
Full walkthrough: AWS deployment with Terraform
Quick start:
GCP
Full walkthrough: GCP deployment with Terraform
Quick start:
Day-2 operations
These apply to both AWS and GCP. Cloud-specific commands are in the respective guides.Upgrade to a new release
Roll back
Setimage_tag to the previous version and terraform apply. Database data is not affected. If the failed version ran a destructive migration (rare, always called out in the CHANGELOG), restore from the pre-upgrade database backup.
Scale up
Adjust variables interraform.tfvars:
Tear down
Cost comparison
AWS (us-east-1, on-demand)
Set
environment = "staging" to halve the bill (single-AZ RDS, one Redis node, no deletion protection).
GCP (us-central1, on-demand)
GCP is typically cheaper due to Cloud Run’s per-request billing and no NAT Gateway equivalent charge.
Production hardening checklist
Applies to both clouds. See the cloud-specific guides for implementation details.- Enable remote Terraform state (S3 + DynamoDB on AWS, GCS on GCP)
- Restrict load balancer ingress to known CIDRs
- Enable cloud security services (GuardDuty + Config on AWS, Security Command Center on GCP)
- Set up alerting on database CPU, memory, and 5xx error rates
- Attach a WAF to the load balancer
- Enable Redis transit encryption
- Configure SSO (SAML or OIDC)
- Test the backup and restore procedure end-to-end
- Replace the GitHub tarball pull in the data host bootstrap with an artifact you control
Next
- AWS deployment with Terraform — full AWS walkthrough
- GCP deployment with Terraform — full GCP walkthrough
- Configuration — environment variables reference
- Upgrades — upgrade and rollback procedures
- Backup and restore — detailed restore procedures

