Manifest settings for databases

Overview

This reference doc details all the Manifest settings for data, caching and storage components. If you’re unfamiliar with Manifest files and how they work, please follow our getting started guide and detailed how-to guide.

If you’re looking for the Manifest settings for webservers & frameworks or load balancers, please see our respective reference documents for those components.

Specifying external databases via your manifest

If your app uses databases that aren’t managed by Cloud 66 you can still specify them via your Manifest. To set a database as external via your manifest, use the following syntax:

# For example, an external MySQL server
mysql: 
  server: external

Key to table headings

ElasticSearch

Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.

The following settings are available via the Manifest file:

Option Applied on Description Clouds
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
groups
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. All
operating_system
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of Ubuntu to install on the server that hosts ElasticSearch. Accepted values ubuntu1604, ubuntu1804 All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by ElasticSearch. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by ElasticSearch, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of ElasticSearch you want to install.
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All

Example YAML for ElasticSearch

elasticsearch:
  configuration:
    iam_instance_profile_name: elastic-perms
    version: 0.90.7
    root_disk_size: 1000
    root_disk_type: ssd

If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.

GlusterFS

GlusterFS is a scalable network filesystem suitable for data-intensive tasks such as cloud storage and media streaming.

The version of GlusterFS currently offered via the Cloud 66 Add-in is not supported by Ubuntu 18.04. To use this add-in please ensure that all of your application components are installed on servers running Ubuntu 16.04.

Restrictions with GlusterFS

The following settings are available via the Manifest file:

Option Applied on Description Clouds
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
mount_targets
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
List of servers and server groups on which GlusterFS should be mounted. You can specify the name of the server or server group (e.g. rails or mysql). You can also use app and db keywords: app is your main app server group (e.g. rails) and db is your database server groups (e.g. mysql or redis). The default value is app. All
replica_count
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The number of nodes in the GlusterFS cluster to which data will be replicated (e.g. 2 means your data exist on two nodes). Default value is 1. All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by GlusterFS. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by GlusterFS, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of GlusterFS you wish to install.
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All
volumes
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
List of volumes you want in your GlusterFS cluster. By default we create a volume called cloud66-vol and mount it to /mnt/data-store. All
volumes / mount
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
Specify the mount point of the volume on clients. All
volumes / name
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
Specify the name of volume. All

Example YAML for GlusterFS

glusterfs:
  configuration:
    version: 3.7
    replica_count: 2
    mount_targets: ['app','redis']
    volumes:
      -  volume:
         name: images-data
         mount: "/mnt/images"
         access_control:
           read: ['web', 'api']
           write: ['web']
      -  volume:
         name: videos
         mount: /mnt-data/videos
         access_control:
           read: ['web']
           write: ['web']

Memcached

Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read.

The following settings are available via the Manifest file :

Option Applied on Description Clouds
listen_ip
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
Specify which IP address to listen on (default value is 0.0.0.0) All
memory
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
Specify maximum memory (in MB) that can be used (default is 64) All
port
Redeploy ⓘChanges to this setting will be applied when you next deploy your application
Specify connection port (default is 11211) All

Example YAML for Memcached

memcached:
  configuration:
    memory: 1024
    port: 11211
    listen_ip: 127.0.0.1

MongoDB

MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas.

The following settings are available via the Manifest file :

Option Applied on Description Clouds
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
groups
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. All
operating_system
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of Ubuntu to install on the server that hosts MongoDB. Accepted values ubuntu1604, ubuntu1804 All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by MongoDB. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by MongoDB, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the version of MongoDB you want to install.
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All

Example YAML for MongoDB

mongodb:
  configuration:
    version: 2.4.8
    root_disk_size: 100
    root_disk_type: ssd

If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.

MySQL

MySQL is an open-source relational database management system.

The following settings are available via the Manifest file :

Option Applied on Description Clouds
engine
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the MySQL engine you want to install. Valid values are mysql and percona All
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
groups
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. All
operating_system
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of Ubuntu to install on the server that hosts MySQL. Accepted values ubuntu1604, ubuntu1804 All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by MySQL. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by MySQL, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the version of MySQL you want to install. Valid values are 5.7 or 8.0
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All

Example YAML for MySQL

mysql:
  configuration:
    version: 5.7
    root_disk_size: 100
    root_disk_type: ssd
    engine: percona
    iam_instance_profile_name: mysql-perms

If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.

PostgreSQL

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

The following settings are available via the Manifest file :

Option Applied on Description Clouds
groups
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. All
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
operating_system
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of Ubuntu to install on the server that hosts PostgreSQL. Accepted values ubuntu1604, ubuntu1804 All
postgis
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify whether to include PostGIS All
postgis / version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the version of PostGIS you want to install. Must be nested in postgres settings All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by PostgreSQL. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by PostgreSQL, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the version of PostgreSQL you want to install.
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All

Example YAML for PostgreSQL

postgresql:
  configuration:
    iam_instance_profile_name: psql-perms
    version: 9.3.4
    postgis: true
    root_disk_size: 100
    root_disk_type: ssd

If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.

Example YAML for PostGIS

postgresql:
  configuration:
    postgis:
      version: 2.1.1

Redis

Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.

The following settings are available via the Manifest file :

Option Applied on Description Clouds
iam_instance_profile_name
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The name of the IAM instance profile that should be used when provisioning this server. AWS
groups
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. All
operating_system
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
The version of Ubuntu to install on the server that hosts Redis. Accepted values ubuntu1604, ubuntu1804 All
root_disk_size
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Default size of root disk (in GB) for servers used by Redis. Default value is 50. AWS, Azure, GCE
root_disk_type
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Disk type for servers used by Redis, accepted values being ssd and magnetic. Default value is ssd. AWS, GCE
version
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added.
Specify the version of Redis you want to install.
NOTE: You can use database groups to run different versions of the same database in parallel with each other.
All

Example YAML for Redis

redis:
  configuration:
    version: 5.0.5
    root_disk_size: 100
    root_disk_type: ssd
    iam_instance_profile_name: redis-perms

If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.

More on Manifest files