LogoLogo
Release notesAPI docsDocs homeEphemeral CloudTonic.ai
  • Tonic Ephemeral guide
  • About Tonic Ephemeral
  • Getting started with the Ephemeral free trial
  • Managing your Ephemeral account
  • Managing Databases
    • Viewing the list of databases
    • Starting a database
    • Changing the database configuration
    • Database configuration settings
      • Setting the required resources for a database
      • Setting the database expiration
      • Providing a custom configuration file
    • Connecting to a database
    • Resetting a database
    • Deactivating and reactivating databases
    • Managing auto snapshots
    • Tracking database activity
    • Deleting a database
  • Managing user snapshots
    • About user snapshots
    • Viewing the user snapshot list
    • Creating a user snapshot from an Ephemeral database
    • Creating a user snapshot from imported data
    • Editing a user snapshot
    • Creating a database from a user snapshot
    • Deleting a user snapshot
  • Installing and configuring Ephemeral
    • Ephemeral architecture
    • Configuring an allowlist for Ephemeral Cloud database connections
    • Installing a self-hosted instance of Ephemeral
      • System requirements
      • Deploying Ephemeral with Helm
    • Configuring database access on a self-hosted instance
    • Configuring tolerations and node selectors
    • Managing access to Ephemeral
      • Managing Ephemeral users
      • Enabling SSO on a self-hosted instance
        • Google
        • Okta
    • Setting the registry location for data volumes
    • Managing custom images
      • Creating, editing, and deleting custom images
      • Oracle image configuration
    • Configuring automatic deletion of snapshots
  • Monitoring and data collection
    • Monitoring your Ephemeral billed usage
    • Monitoring your disk storage
    • Data that Tonic.ai collects
  • Using the Ephemeral API
    • About the Ephemeral API
    • Configuring Ephemeral
    • Getting information about Ephemeral databases
    • Starting a database
    • Managing databases
    • Managing snapshots
Powered by GitBook
On this page
  • PostgreSQL application database
  • Cluster node type and block storage
  • Factors to consider
  • Example scenarios - AWS m6a.4xlarge node
  • Cluster runtime and software requirements

Was this helpful?

Export as PDF
  1. Installing and configuring Ephemeral
  2. Installing a self-hosted instance of Ephemeral

System requirements

A self-hosted instance of Tonic Ephemeral has the following requirements.

PostgreSQL application database

The Ephemeral application database stores information about Ephemeral objects and users.

For the application database, you must provide a PostgreSQL database with the following characteristics:

Version:

PostgreSQL 16+

Database user:

Must have permission to:

  • Create a database

  • Create tables

  • Insert

  • Select

Cluster node type and block storage

Your Kubernetes cluster supports your Ephemeral databases. For persistent storage, it uses one volume mount per database instance.

When you provision your Kubernetes cluster, it is important to select the appropriate node types and block storage types.

These recommendations are based on your workload requirements, and cover the following major cloud providers:

  • AWS

  • Azure

  • Google Cloud

Factors to consider

CPU and memory requirements

Determine the CPU and memory requirements of your Ephemeral database instances to ensure that the selected node types can handle the workload.

For information, go to Setting the required resources for a database.

Network performance

Evaluate the network performance requirements, especially if your application involves significant data transfer between nodes.

Cost

To balance performance and cost, select instance types that meet your requirements, but that do not over-provision resources.

Ephemeral deployment resources

resources:
    limits:
      memory: "3Gi"
    requests:
      memory: "512Mi"
      ephemeralStorage: "512Mi"

Volume attachment limits

Each instance type has volume attachment limits. When you select a node type, you need to consider these limits.

Each Ephemeral database requires one block storage volume attachment.

General-purpose compute options typically support between 20 and 30 volume attachments.

Large instance types support higher limits.

Block storage selection

When you configure block storage for Ephemeral database instances, select the appropriate block storage type based on your performance requirements.

Platform
Storage type
Notes

AWS

gp3

General-purpose solid-state drive (SSD). Suitable for most workloads.

Provides consistent performance with the ability to provision IOPS and throughput independently.

Azure

Standard SSD

Suitable for most workloads. Provides a balance between cost and performance.

Premium SSD

Suitable for I/O-intensive workloads that require low latency.

Provides consistent performance with high IOPS and throughput.

Google Cloud

SSD Persistent Disk

Suitable for I/O-intensive workloads that require low latency.

Provides consistent performance with high IOPS and throughput.

Example scenarios - AWS m6a.4xlarge node

The table below covers multiple scenarios for deploying an Ephemeral database in AWS on a single m6a.4xlarge node, which has 16 vCPU and 64 GB memory.

It demonstrates the factors to consider when you determine the number of databases that a node can support.

Note that this instance type can support a maximum of 28 Amazon Elastic Block Store (EBS) attachments. Because EBS attachments correspond one-to-one with Ephemeral databases, this instance type can support no more than 28 Ephemeral databases, regardless of the CPU and memory considerations.

  • Only Nano (0.125 vCPU / 0.5 GB memory)

  • Only Micro (0.250 vCPU / 2.0 GB memory)

  • Only Small (1 vCPU / 4.0 GB memory)

Only Nano

In the only Nano scenario, the instance has enough CPU and memory to support 128 databases. However, it will reach the limit of 28 EBS attachments before it reaches the other resource limits.

If you run many minimally resourced Ephemeral databases, you should instead deploy multiple smaller nodes that better balance the usage of CPU/memory and the EBS attachment limits.

Only Micro

In the only Micro scenario, the instance has enough CPU and memory to support 32 databases. However, similar to the only Nano scenario, the instance will reach the limit of 28 EBS attachments before it reaches the other resource limits.

While the CPU and memory are still not fully utilized, they are closer to full utilization.

This instance might be suitable for this scenario.

Only Small

In the only Small scenario, the instance has enough CPU and memory to support 16 databases. The memory and CPU are fully utilized before they are bottlenecked by the limit on EBS attachments.

This is an efficient use of the instance, and the instance is suitable for this scenario.

Database resource configuration

0.125 cores / 0.5 GiB (Only Nano)

0.500 cores / 2.0 GiB (Only Micro)

1.000 core / 4.0 GiB (Only Small)

CPU per pod

0.125

0.5

1

Memory per pod

0.5 GiB

2.0 GiB

4.0 GiB

Max pods by CPU

128

32

16

Max pods by memory

128

32

16

Max pods by EBS attachments

28

28

28

Max pods on node

28

28

16

Cluster runtime and software requirements

The Kubernetes cluster where you deploy Ephemeral has the following requirements:

  • Runtime is either:

PreviousInstalling a self-hosted instance of EphemeralNextDeploying Ephemeral with Helm

Last updated 3 months ago

Was this helpful?

When you , the baseline values for Kubernetes deployment resources are:

You might have any combination of for the databases on a node, but this simplified example covers the following scenarios:

AWS EKS - For this option, AWS EBS CSI driver must be installed and configured. For details, go to the .

Azure AKS - For this option, Azure Disk CSI driver must be installed and configured. For details, go to the .

Google Cloud Platform (GCP) Google Kubernetes Engine (GKE) - For this option, the Google Compute Engine persistent disk CSI driver must be installed and configured. For details, go to the .

Volume Snapshot CRDs and the Volume Snapshot controller are installed and configured. For installation instructions, go to the . For snapshotter documentation, go to the .

external-dns is installed and configured. For details, go to the .

(Optional) Kubernetes autoscaler is installed and configured. For details, go to the .

use Helm to install the Ephemeral application
AWS EBS documentation
Azure Disk documentation
GKE documentation
kubernetes-csi documentation
external-snapshotter GitHub repository
external-dns GitHub repository
autoscaler GitHub repository
provisioned compute resources