Retool-managed deployment architecture
Learn about the system architecture for Retool-managed, self-hosted deployments.
Retool-managed, self-hosted deployments are available for invoiced customers. Contact your Retool account manager to learn more.
A self-hosted and Retool-managed deployment is a customer-owned VPC that's hosted on Amazon Web Services (AWS) and contains a self-hosted instance. You retain full ownership of, and control over, your data, encryption keys, access, and network infrastructure.
Infrastructure layers
A Retool-managed, self-hosted deployment consists of two infrastructure layers that operate on a dedicated AWS account.
- The support layer: The foundation of a Retool-managed, self-hosted deployment.
- The services layer: The resources needed by the self-hosted instance.
You have full ownership and control over every aspect of the deployment. Retool only has access to what's required for managing the self-hosted instance.
Support layer
The support layer represents the dedicated VPC, resources, and configuration necessary for the deployment. It includes:
| Resource | Description |
|---|---|
| VPC | The environment that contains the Runner VM and Retool-managed self-hosted instance. |
| AWS Secrets Manager | The resource in which secrets and environment variables are stored. |
| Runner VM | The service that allows Retool to manage the self-hosted instance without having access to your larger infrastructure or data. |
| IAM roles and policies | The resources that govern the scope of access granted to the Runner VM for Retool. |
| DNS and private network configuration | Resources related to routing user traffic to the VPC. |
Retool cannot directly access nor manage any resources within the support layer, and works with you to create them. To ensure that the resources are configured exactly as intended, Retool uses an Infrastructure as Code approach; a CloudFormation template is provided to your AWS admin that automatically provisions and configures the VPC, Runner VM, and IAM resources.
Secrets and environment variables
AWS Secrets Manager is used to securely store secrets and environment variables needed for the deployment. Resources needing to use these values retrieves them directly from Secrets Manager, to which Retool has no access.
For instance, your AWS admin adds the following secrets to Secrets Manager which are required by the CloudFormation template:
- Retool Encryption Key
- Retool JWT Secret
Unless you are migrating from an Retool Cloud to a BYOC instance, the Retool encryption key and JWT secret values can be randomly generated. Retool recommends using openssl rand -base64 32. Customers who are migrating from Retool Cloud are provided values to use instead.
Using Secrets Manager for environment variables also allows customers to make changes to update their instance configuration without directly modifying it.
Runner VM
The Runner VM is a dedicated virtual server that operates within the VPC and functions as an agent for Retool's management services. It allows Retool to manage the instance without the need for broader access to your cloud environment. The Runner VM receives instructions from Retool—such as performing an update—and then executes them on the Retool-managed, self-hosted instance.
Any temporary disruption to the Runner VM does not impact the instance itself. If the Runner VM is unavailable, Retool loses access, and cannot remotely monitor or manage the instance.
IAM roles and policies
The Runner VM requires access that's managed using IAM roles and policies. These are used to securely manage Retool's access, prevents any escalation of privileges, and any configuration changes that might compromise the scope of access.
The Runner VM depends on three IAM roles to function correctly and have sufficient access to Retool-managed, self-hosted resources.
| Role | Description |
|---|---|
| Provision | Used at initial setup time, primarily to create new resources. The customer disables this role after initial setup is complete for maximum data security. |
| Maintenance | Used after setup for the lifetime of the Retool-managed, self-hosted instance. This role is typically used to perform GET or describe-action to monitor the health of the instance. The Runner VM may also need to create or delete resources as part of ongoing maintenance. This role is subject to tighter restrictions that prevent access to customer data. This role is subject to additional restrictions that prevent access to customer data and credentials. |
| Deprovision | Used to delete all cloud resources if the customer has decommissioned their instance. This role can remain disabled and only enabled if needed. |