You are reading the documentation for version 2.2. Magento 2.3 is the latest version available. Ensure you are reading the documentation for your version of Magento.

Services

The services.yaml file defines the services supported and used by Magento Commerce Cloud, such as MySQL, Redis, and ElasticSearch. You do not need to subscribe to external service providers. This file is in the .magento directory of your project.

The deploy script uses the configuration files in the .magento directory to provision the environment with the configured services. A service becomes available to your application if it is included in the relationships property of the .magento.app.yaml file. The services.yaml file contains the type and disk values. Service type defines the service name and version. Changing a service configuration causes a deployment to provision the environment with the updated services.

This affects the following environments:

  • All Starter environments including Production master
  • Pro Integration environments

For Pro, you must enter a Support ticket to install or update services in the Staging and Production environments. Indicate the service changes needed and include your updated .magento.app.yaml and services.yaml files in the ticket.

Default and supported services

We support and deploy the following services:

You can view default versions and disk values in the the current, default services.yaml file. The following sample shows the mysql, redis, and elasticsearch services defined in the services.yaml configuration file:

1
2
3
4
5
6
7
8
9
10
mysql:
    type: mysql:<version>
    disk: 2048

redis:
    type: redis:<version>

elasticsearch:
    type: elasticsearch:<version>
    disk: 1024

Service values

You must provide the type values: service name and version. If the service uses persistent storage, then you must provide a disk value. Use the following format:

1
2
3
<name>:
    type: <name>:<version>
    disk: <value-MB>

name

The name value identifies the service in the project. You can only use lower case alphanumeric characters: a to z and 0 to 9, such as redis.

This name value is used in the relationships property of the .magento.app.yaml configuration file:

1
2
relationships:
    redis: "<name>:redis"

You can name multiple instances of each service type. For example, we could use multiple Redis instances—one for session and one for cache.

1
2
3
4
5
redis:
    type: redis:<version>

redis2:
    type: redis:<version>

Renaming a service in the services.yaml file permanently removes the following:

  • The existing service before creating a new service with the new name you specify.
  • All existing data for the service is removed. We strongly recommend you snapshot your environment before you change the name of an existing service.

type

The type value specifies the service name and version. For example:

1
2
mysql:
    type: mysql:10.2

disk

The disk value specifies the size of the persistent disk storage (in MB) to allocate to the service. Services that use persistent storage, such as MySQL, must provide a disk value. Services that use memory instead of persistent storage, such as Redis, do not require a disk value.

1
2
3
mysql:
    type: mysql:10.2
    disk: 2048

The current default storage amount per project is 5GB, or 5120MB. You can distribute this amount between your application and each of its services.

Service relationships

Magento Commerce Cloud uses the $MAGENTO_CLOUD_RELATIONSHIPS environment variable to retrieve environment-related relationships. For services to be available to an application in your project, you must specify relationships between applications and services in the .magento.app.yaml file.

To verify relationships in local environment:

  1. In your local environment, show the relationships for the active environment.

    1
    
     magento-cloud relationships
    
  2. Confirm the service and type from the response. The response provides connection information, such as the IP address and port number.

    Abbreviated sample response:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     redis:
         -
     ...
             type: 'redis:3.2'
             port: 6379
     elasticsearch:
         -
     ...
             type: 'elasticsearch:6.5'
             port: 9200
     database:
         -
     ...
             type: 'mysql:10.0'
             port: 3306
    
    

To verify relationships in remote environments:

  1. Use SSH to log in to the remote environment.

  2. Create pretty-print to show all relationships for services and configuration data for that environment.

    1
    
     php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
    
  3. Confirm the service and type from the response. The response provides connection information, such as the IP address and port number.

Service versions

The following table lists the services used in Magento Commerce Cloud and their version compatibility with the Magento Cloud template.

Service Magento 2.3 Magento 2.2
elasticsearch Magento 2.3.1 and later—1.7, 2.4, 5.2, 6.5
Magento 2.3.0—1.7, 2.4, 5.2
Magento versions 2.2.8 and later—1.7, 2.4, 5.2, 6.5
Magento 2.2.0 to 2.2.7—1.7, 2.4, 5.2
mariadb 10.0 to 10.2 10.0 to 10.2
nginx 1.9 1.9
node 6, 8, 10, 11 6, 8, 10, 11
php Magento 2.3.3 and later—7.1, 7.2, 7.3
Magento 2.3.0 to 2.3.2—7.1, 7.2
Magento 2.2.10 and later—7.1, 7.2
Magento 2.2.5 to 2.2.9—7.0, 7.1
Magento 2.2.4 and earlier—7.0.2, 7.0.4, ~7.0.6, 7.1
rabbitmq 3.5, 3.7 3.5
redis 3.2, 4.0, 5.0 3.2, 4.0, 5.0
varnish Magento 2.3.3 and later—4.0, 5.0, 6.2
Magento 2.3.0 to 2.3.2—4.0, 5.0
4.0, 5.0