AWS Single Server
You can configure Posit Workbench to run on a single server, without requiring any additional storage resources, by hosting both Workbench and user sessions on the same server. This architecture is designed to provide a simple, cost-effective way to run Workbench for small teams or organizations.
Architectural overview
This architecture uses the following components:
- A single AWS Elastic Compute Cloud (EC2) instance running Workbench
- The local Elastic Block Store (EBS) storage provisioned for the EC2 instance
- SQLite as the application database
Because a standalone instance of Workbench includes user data as well as the internal Workbench SQLite database, we recommend you follow your organization’s backup and retention strategies to maintain snapshots of the EBS volume associated with the EC2 instance.
Architecture diagram
Sizing and performance
The performance of this architecture is dictated by EC2 type and the CPU, RAM, and storage characteristics of the machine.
Node
Ensure the EC2 instance is large enough to handle peak usage. The size and type of instance depend on the needs and workloads of end users. For the best experience, estimate the number of concurrent sessions expected and the compute resources required for each session, focusing on CPU and memory. Choose an instance type that supports the maximum number of concurrent sessions at any given time. In practice, a single-server implementation becomes resource-limited when servicing more than 10 to 20 concurrent users.
CPU
Workbench alone consumes only a small amount of system resources. However, when estimating needs, reserve two to six cores for Workbench itself, in addition to accounting for the Python and R processes running in user sessions or Workbench Jobs. Review the considerations in the Number of users section to estimate the total number of CPU cores needed.
RAM
User sessions and Workbench Jobs consume memory. The number of users and how they typically work with their data dictate the amount of memory needed. Review the Memory and disk requirements section to estimate the amount of memory needed.
Database
SQLite is the default database provider for Workbench and does not require any setup or maintenance. Its sizing is not configurable, and this database is wholy managed by Workbench. More information about SQLite, and the database generally, is found in the Database chapter. Additionally, the SQLite database has low latency because it is on disk.
Storage
In this configuration, user home directories are stored on the host EC2 node. The storage capacity of the EC2 instance should be large enough to accommodate the expected number of users and the size of their data.
A more detailed discussion on node sizing can be found in the Architecture considerations section.
Configuration details
Networking
The EC2 instance is placed in a public subnet with network controls such as use of TLS/SSL and accepted IP addresses for inbound connections. These settings are detailed in the Access and Security chapter. A private subnet may also be used with no impact to performance.
Resiliency and availability
This architecture does not provide high availability or fault tolerance. If the EC2 instance fails or there are outages within the Availability Zone, Posit Workbench is unavailable until service is restored.
As a best practice, conduct regular backups of the EBS volume associated with the EC2 instance to ensure that you can recover user data and the Workbench database in the event of a failure. Refer to the Backup Guide for more information.
Achieve a more robust architecture by utilizing a Postgres database for the product metadata and a shared file system for storage. This architecture positions Workbench for easier scaling and allows for more robust backup and recovery strategies. Review the Database chapter and Mount shared storage section for more information.