Data storage settings overview
This topic provides an overview of data storage and management configurations for Terraform Enterprise.
Overview
You can configure Terraform Enterprise to run as a self-contained application that manages the associated data storage or as an integrated installation that connects to externally-managed data storage systems. Complete the following steps:
- Decide on a Terraform Enterprise architecture and determine which data storage systems you must deploy and maintain externally.
- Determine which operational mode aligns with how you want to manage data storage for your organization.
- Deploy the external data storage systems and connect to them in your deployment configuration file.
Data storage systems
Terraform Enterprise uses the following types of storage systems to store data associated with your deployment:
- PostgreSQL database: Terraform Enterprise stores stateful application data, workspace settings, organization settings, run information, and user information in a PostgreSQL database.
- S3-compatible storage service: Terraform Enterprise stores artifacts that it produces during operation, such as state files, plan files, run logs, and configuration versions, in an S3-compatible storage service.
- Vault: Terraform Enterprise stores encryption keys in Vault that encrypt and decrypt data objects. By default, Terraform Enterprise stores the keys in the internal Vault server, but if your organization has specific data encryption and auditing requirements, you can connect to an external Vault server to manage the data instead.
- Redis data store: You can configure Terraform to cache application data in a Redis data store. This system is optional but recommended to improve performance.
Operational modes
You must choose an operational mode before you install and deploy Terraform Enterprise. The operation mode determines where Terraform Enterprise stores its data. Where you store Terraform Enterprise data can impact your backup and restore procedures, disaster recovery procedures, and scaling options.
The following table provides an overview of how the operational mode directs Terraform Enterprise to store data. Refer to Configure the operational mode for instructions:
Mode | PostgreSQL | Object storage | Vault | Redis |
---|---|---|---|---|
external | External. You manage outside of Terraform Enterprise. | External. You manage outside of Terraform Enterprise. | PostgreSQL database unless you specify an external Vault server. | Docker volume on the instance. |
active-active | External. You manage outside of Terraform Enterprise. | External. You manage outside of Terraform Enterprise. | PostgreSQL database unless you specify an external Vault server. | External. You manage outside of Terraform Enterprise. |
disk | Internal directory on the instance. You manage persistent storage. | Internal directory on the instance. You manage persistent storage. | PostgreSQL database unless you specify an external Vault server. | Docker volume on the instance. |