Guides
Flightcontrol
Redis

Configuring Redis Services with flightcontrol.json

In addition to the Service Configuration attributes that are common to all services, the following attributes are specific to Redis/ElastiCache services.

Overview of Redis Service Type

This service will create a Redis instance using AWS Elasticache with AUTH and Encryption in transit (TLS) enabled by default.

The password and the connection URL(s) will be stored in the SSM Parameter Store in your AWS Account - Flightcontrol does not store it. The connection URL can also be made available to the other services in the same environment by setting up connectionStringEnvVarName (see the docs below for an example).

Besides the AWS Elasticache resource and the SSM Parameter, there are a couple of other AWS resources needed for the architecture which we abstract away, like Subnets and Security Group.

Limitations for the Redis Service Type

We do not currently support:

  • Changing the cluster configuration after creation, i.e.: the engine version or the instance size. This means if you need to make changes after deployment, you will need to delete the service and add a new one with a different ID.

  • AWS Cluster Mode, which includes sharding and multiple clusters under the same service

Redis Service Attributes

The type for all database services is elasticache, and should be specified like the following:

type: 'elasticache'

In addition, there are several other attributes that are specific to Redis services:

Required Properties

engine: string

The cache engine to be created. Supported values: "redis"

  • Example: "engine": "redis"

instanceSize: string

engineVersion: string

  • Cannot be changed after initial deployment
  • Supported values:
    • Redis: "7.1", "7.0", "6.2", "6.0", "5.0.6", "5.0.5", "5.0.4", "5.0.3", "5.0.0", "4.0.10", "3.2.10", "3.2.6", "3.2.4", "2.8.24", "2.8.23", "2.8.22", "2.8.21", "2.8.19", "2.8.6", "2.6.13"
  • Default: 7.1
  • Example: "engineVersion": "6.2"

Optionals Properties

numberOfReplicas: number

  • The number of replicas you want in your Redis service
  • Optional with default: 1

connectionStringEnvVarName: string

  • The name of the environment variable that will contain the URL for connecting to Redis.
  • When this is set, Flightcontrol automatically injects the environment variable to other services in the same environment.
  • Optional with NO default
  • Example: "connectionStringEnvVarName": "REDIS_URL" (In this case, REDIS_URL will be available as an env var for any other service in the same environment)

autoUpgradeMinorVersions: boolean

  • Example: “autoUpgradeMinorVersions": true
  • Optional with default: true

port: int

  • Example: "port": 6379
  • Optional with default:
    • Redis: 6379

encryptionAtRest: boolean

  • Enable or disable encryption of Redis at rest.
  • Example: "encryptionAtRest": true
  • Optional with default: true

Configuration Example

Note:

  • name is what will be displayed in your FC dashboard
  • id should be unique and is used by FC as the source of truth for your service, changing this will create a new service under the same environment
{
  "id": "redis",
  "type": "elasticache",
  "engine": "redis",
  "name": "My Redis Service",
  "engineVersion": "7.0",
  "instanceSize": "cache.t4g.small"
}