Pivotal Cloud Foundry v1.9

Deploying Elastic Runtime on AWS

Page last updated:

This topic describes how to install and configure Elastic Runtime after deploying the CloudFormation template for Pivotal Cloud Foundry (PCF) on Amazon Web Services (AWS). Use this topic when installing Pivotal Cloud Foundry on AWS.

Before beginning this procedure, ensure that you have successfully completed all steps in the Deploying the CloudFormation Template for PCF on AWS and Configuring Ops Manager Director after Deploying PCF on AWS using CloudFormation topics.

Note: If you plan to install the PCF IPsec add-on, you must do so before installing any other tiles. Pivotal recommends installing IPsec immediately after Ops Manager, and before installing the Elastic Runtime tile.

Step 1: Open the Outputs Tab in AWS

  1. In the dashboard of your AWS Console, click CloudFormation. The Stacks Dashboard displays.

  2. Select the pcf-stack checkbox, then select the Outputs tab.

    Aws cloudform stacks

    In the steps described below, use the information from the Value column of the Outputs tab to configure your PCF installation.

Step 2: Add Elastic Runtime to Ops Manager

  1. Navigate to the Pivotal Cloud Foundry Operations Manager Installation Dashboard.

  2. If you have not downloaded Elastic Runtime, click the Pivotal Network link on the left to download the Elastic Runtime .pivotal file. Click Import a Product to add the tile to Ops Manager. For more information, refer to the Adding and Deleting Products topic.

  3. Click the Elastic Runtime tile in the Installation Dashboard.

    Er tile

Step 3: Assign Availability Zones and Networks

  1. Select Assign AZ and Networks. These are the Availability Zones that you create when configuring Ops Manager Director.

  2. Select an Availability Zone under Place singleton jobs. Ops Manager runs any job with a single instance in this Availability Zone.

  3. Select one or more Availability Zones under Balance other jobs. Ops Manager balances instances of jobs with more than one instance across the Availability Zones that you specify.

    Note: Pivotal recommends at least three Availability Zones for a highly available installation of Elastic Runtime.

  4. From the Network drop-down box, choose the network on which you want to run Elastic Runtime. Er az

  5. Click Save.

    Note: When you save this form, a verification error displays because the PCF security group blocks ICMP. You can ignore this error.

    Er network error

Step 4: Add CNAME Record for Your Custom Domain

In the Use the AWS CLI to upload your SSL Cert step, you uploaded an SSL certificate for your PCF wildcard domain to AWS. In this step you redirect all wildcard queries for your domain to the DNS name of your ELB.

Note: Do not point your wildcard domain at the numeric IP address for your ELB because this changes frequently.

  1. Find the DNS hostname of your ELB. The Output tab of the CloudFormation page in the AWS dashboard lists this as the value for the key PcfElbDnsName.

  2. Log in to the DNS registrar that hosts your domain (for example, Network Solutions, GoDaddy, or

  3. Create a CNAME record with your DNS registrar that points * to the DNS hostname of your ELB.

  4. Save changes within the web interface of your DNS registrar.

  5. In the terminal, run the following dig command to confirm that you created your CNAME record successfully:

    dig xyz.MY-DOMAIN.COM

    You should see the CNAME record that you just created:

    xyz.MY-DOMAIN.COM.      1767    IN  CNAME

Note: You must complete this step before proceeding to Cloud Controller configuration. A problem that is difficult to resolve can occur if the wildcard domain is improperly cached before the CNAME is registered.

Step 5: Configure Domains

  1. Select Domains.


  2. Enter the system and application domains.

    • The System Domain defines your target when you push apps to Elastic Runtime.
    • The Apps Domain defines where Elastic Runtime should serve your apps.

    Note: Pivotal recommends that you use the same domain name but different subdomain names for your system and app domains. This prevents system and apps routes from overlapping. You will require two wildcard DNS entries: one for the system and the other for apps. For example, *.system.EXAMPLE.COM and *.apps.EXAMPLE.COM. Point both wildcard domains at your internal router IP address, which can be found under the status tab in the Elastic Runtime tile.

    Note: You configured a wildcard DNS record for these domains in an earlier step.

  3. Click Save.

Step 6: Configure Networking

  1. Select Networking.

  2. Leave the Router IPs, SSH Proxy IPs, HAProxy IPs, and TCP Router IPs fields blank. You do not need to complete these fields when deploying PCF to AWS with Elastic Load Balancers (ELBs).

    Note: You specify load balancers in the Resource Config section of Elastic Runtime later in the installation process. See the Configure Router to Elastic Load Balancer section of this topic for more information.

  3. Under Configure the point-of-entry to this environment, choose one of the following options:

    Note: For details about the different SSL/TLS termination point options, how they correspond to different points-of-entry for Elastic Runtime, and related certificate requirements, see the Providing a Certificate for your SSL Termination Point topic.

    • Forward SSL to Elastic Runtime Router: Select this option if your deployment uses an external load balancer that can forward encrypted traffic to the Elastic Runtime Router, or for a development environment that does not require load balancing. Complete the fields for the Router SSL Termination Certificate and Private Key and Router SSL Ciphers. Ert lb encrypted certs
    • Forward unencrypted traffic to Elastic Runtime Router: Select this option if your deployment uses an external load balancer that cannot forward encrypted traffic to the Elastic Runtime Router, or for a development environment that does not require load balancing. Ert lb unencrypted
    • Forward SSL to HAProxy: Select this option to use HAProxy as your first point of entry. Complete the fields for SSL Certificate and Private Key, and HAProxy SSL Ciphers. Select Disable HTTP traffic to HAProxy if you want the HAProxy to only allow HTTPS traffic. For more information, on configuring HAProxy, see Configuring SSL/TLS Termination at HAProxy. Ert haproxy certs
  4. If you are not using SSL encryption or if you are using self-signed certificates, select Disable SSL certificate verification for this environment. Selecting this checkbox also disables SSL verification for route services.

    Note: For production deployments, Pivotal does not recommend disabling SSL certificate verification.

  5. Select the Disable insecure cookies on the Router checkbox to set the secure flag for cookies generated by the router.

  6. To disable the addition of Zipkin tracing headers on the Gorouter, deselect the Enable Zipkin tracing headers on the router checkbox. Zipkin tracing headers are enabled by default. For more information about using Zipkin trace logging headers, see the Zipkin Tracing in HTTP Headers topic.

    Ert disable ssl cookies zipkin

  7. In the Choose whether or not to enable route services section, choose either Enable route services or Disable route services. Route services are a class of marketplace services that perform filtering or content transformation on application requests and responses. See the Route Services topic for details.

  8. For Loggregator Port, you must enter 4443. In AWS deployments, port 4443 forwards SSL traffic that supports WebSockets from the ELB. Do not use the default port of 443.

  9. (Optional) Use the Applications Subnet field if you need to avoid address collision with a third-party service on the same subnet as your apps. Enter a CIDR subnet mask specifying the range of available IP addresses assigned to your app containers. The IP range must be different from the network used by the system VMs.

  10. (Optional) You can change the value in the Applications Network Maximum Transmission Unit (MTU) field. Pivotal recommends setting the MTU value for your application network to 1454. Some configurations, such as networks that use GRE tunnels, may require a smaller MTU value.

    Ert log port mtu aws

  11. (Optional) Increase the value of Load Balancer Unhealthy Threshold to specify the amount of time, in seconds, that the router continues to accept connections before shutting down. During this period, healthchecks may report the router as unhealthy, which causes load balancers to failover to other routers. Set this value to an amount greater than or equal to the maximum time it takes your load balancer to consider a router instance unhealthy, given contiguous failed healthchecks.

  12. (Optional) Modify the value of Load Balancer Healthy Threshold. This field specifies the amount of time, in seconds, to wait until declaring the Router instance started. This allows an external load balancer time to register the Router instance as healthy.

    Router lb thresholds

  13. (Optional) If app developers in your organization want certain HTTP headers to appear in their app logs with information from the Gorouter, specify them in the HTTP Headers to Log field. For example, to support app developers that deploy Spring apps to PCF, you can enter Spring-specific HTTP headers.

    Http Headers to Log

  14. TCP Routing is disabled by default. To enable this feature, perform the following steps:

    1. Select the Enable TCP Routing radio button.
    2. In TCP Routing Ports, enter a range of ports to be allocated for TCP Routes.

      For each TCP route you want to support, you must reserve a range of ports. This is the same range of ports you configured your load balancer with in the Pre-Deployment Steps, unless you configured DNS to resolve the TCP domain name to the TCP router directly.

      The TCP Routing Ports field accepts a comma-delimited list of individual ports and ranges, for example 1024-1099,30000,60000-60099. Configuration of this field is only applied on the first deploy, and update updates to the port range are made using the cf CLI. For details about modifying the port range, see the Router Groups topic. Ert tcp routing enable

    3. For AWS, you also need to specify the name of a TCP ELB in the LOAD BALANCER column of TCP Router job of the Resource Config screen. You configure this later on in Elastic Runtime. See Configure Router to Elastic Load Balancer.

  15. To disable TCP routing, select the Select this option if you prefer to enable TCP Routing at a later time radio button. For more information, see the Configuring TCP Routing in Elastic Runtime topic.

  16. Click Save.

Step 7: Configure Application Containers

  1. Select Application Containers.

    Er config app containers

  2. The Enable Custom Buildpacks checkbox governs the ability to pass a custom buildpack URL to the -b option of the cf push command. By default, this ability is enabled, letting developers use custom buildpacks when deploying apps. Disable this option by disabling the checkbox. For more information about custom buildpacks, refer to the buildpacks section of the PCF documentation.

  3. The Allow SSH access to app containers checkbox controls SSH access to application instances. Enable the checkbox to permit SSH access across your deployment, and disable it to prevent all SSH access. See the Application SSH Overview topic for information about SSH access permissions at the space and app scope.

  4. You can configure Elastic Runtime to run app instances in Docker containers by supplying their IP address range(s) in the Private Docker Insecure Registry Whitelist textbox. See the Using Docker Registries topic for more information.

  5. Select your preference for Docker Images Disk-Cleanup Scheduling on Cell VMs. If you choose Clean up disk-space once threshold is reached, enter a Threshold of Disk-Used in megabytes. For more information about the configuration options and how to configure a threshold, see Configuring Docker Images Disk-Cleanup Scheduling.

  6. Click Save.

Step 8: Configure Application Developer Controls

  1. Select Application Developer Controls.

    Er17 config appdevctrl

  2. Enter your intended maximum file upload size.

  3. Enter your default RAM memory allocation per app.

  4. Enter your default total RAM memory (RAM) quota per Org. You can change this in the CLI.

  5. Enter your maximum and default disk quotas per app.

  6. Enter your default service instances quota per Org. You can change this in the CLI.

  7. Click Save.

Step 9: Review Application Security Groups

Setting appropriate Application Security Groups is critical for a secure deployment. Type X in the box to acknowledge that once the Elastic Runtime deployment completes, you will review and set the appropriate application security groups. See Restricting App Access to Internal PCF Components for instructions.


Step 10: Configure Authentication and Enterprise SSO

  1. Select Authentication and Enterprise SSO.

    Er17 config authsso uaa

  2. To authenticate user sign-ons, your deployment can use one of three types of user database: the UAA server’s internal user store, an external SAML identity provider, or an external LDAP server.

    • To use the internal UAA, select the Internal option and follow the instructions in the Configuring UAA Password Policy topic to configure your password policy.
    • To connect to an external identity provider through SAML, scroll down to select the SAML Identity Provider option and follow the instructions in the Configuring PCF for SAML section of the Configuring Authentication and Enterprise SSO for Elastic Runtime topic.
    • To connect to an external LDAP server, scroll down to select the LDAP Server option and follow the instructions in the Configuring LDAP section of the Configuring Authentication and Enterprise SSO for Elastic Runtime topic.
  3. Under Service Provider Credentials, enter a certificate and private key to be used by UAA as a SAML Service Provider for signing outgoing SAML authentication requests. You can provide an existing certificate and private key from your trusted Certificate Authority or generate a self-signed certificate. The following domains must be associated with the certificate: login.YOUR-SYSTEM-DOMAIN and *.login.YOUR-SYSTEM-DOMAIN.

    Note: The Pivotal Single Sign-On Service and Pivotal Spring Cloud Services tiles require the *.login.YOUR-SYSTEM-DOMAIN.

  4. If the private key specified under Service Provider Credentials is password-protected, enter the password under Service Provider Password. Service provider

  5. (Optional) In the Apps Manager Access Token Lifetime, Apps Manager Refresh Token Lifetime, Cloud Foundry CLI Access Token Lifetime, and Cloud Foundry CLI Refresh Token Lifetime fields, change the lifetimes of tokens granted for Apps Manager and Cloud Foundry Command Line Interface (cf CLI) login access and refresh. Most deployments use the defaults.

  6. (Optional) Customize the text prompts used for username and password from the cf CLI and Apps Manager login popup.

  7. (Optional) The Proxy IPs Regular Expression field contains a pipe-delimited set of regular expressions that UAA considers to be reverse proxy IP addresses. UAA respects the x-forwarded-for and x-forwarded-proto headers coming from IP addresses that match these regular expressions. To configure UAA to respond properly to Router or HAProxy requests coming from a public IP address, append a regular expression or regular expressions to match the public IP address.

    Authsso uaa bottom

  8. Click Save.

Step 11: Configure System Databases

You can configure Elastic Runtime to use the internal MySQL database provided with PCF, or you can configure an external database provider for the databases required by Elastic Runtime.

Note: If you are performing an upgrade, do not modify your existing internal database configuration or you may lose data. You must migrate your existing data first before changing the configuration. See Upgrading Pivotal Cloud Foundry for additional upgrade information.

Internal Database Configuration

If you want to use internal databases for your deployment, perform the following steps:

  1. Select Databases.

  2. Select Internal Databases - MySQL. Sys db

  3. Click Save.

Then proceed to Step 12: (Optional) Configure Internal MySQL to configure high availability and automatic backups for your internal MySQL databases.

Create External System Databases

If you want to use an external database provider for your Elastic Runtime databases, you must first create the databases on the RDS instance provided by the CloudFormation script.

To create the required databases on an AWS RDS instance, perform the following steps.

  1. Add the AWS-provided key pair to your SSH profile so that you can access the Ops Manager VM:

    ssh-add aws-keypair.pem
  2. SSH in to your Ops Manager using the Ops Manager FQDN and the username ubuntu:

    ssh ubuntu@OPS_MANAGER_FQDN
  3. Run the following terminal command to log in to your RDS instance through the MySQL client, using values from your AWS dashboard Outputs tab to fill in the following keys:

    mysql --host=PcfRdsAddress --user=PcfRdsUsername --password=PcfRdsPassword

  4. Run the following MySQL commands to create databases for the seven Elastic Runtime components that require a relational database:

    CREATE database uaa;
    CREATE database ccdb;
    CREATE database notifications;
    CREATE database autoscale;
    CREATE database app_usage_service;
    CREATE database routing;
    CREATE database diego;

  5. Type exit to quit the MySQL client, and exit again to close your connection to the Ops Manager VM.

  6. In Elastic Runtime, select Databases.

  7. Select the External Databases option.

    Sys db

  8. For the Hostname and TCP Port fields, enter the corresponding values from the Outputs tab in the AWS Console, according to the following table:

    Elastic Runtime Field Outputs Key
    Hostname PcfRdsAddress
    TCP Port PcfRdsPort

  9. For each database username and database password field, enter the corresponding values from the Outputs tab in the AWS Console, according to the following table:

    Elastic Runtime Field Outputs Key
    DATABASE-NAME database username PcfRdsUsername
    DATABASE-NAME database password PcfRdsPassword

  10. Click Save.

Step 12: (Optional) Configure Internal MySQL

Note: You only need to configure this section if you have selected Internal Databases - MySQL in the Databases section.

  1. Select Internal MySQL.

  2. In the MySQL Proxy IPs field, enter one or more comma-delimited IP addresses that are not in the reserved CIDR range of your network. If a MySQL node fails, these proxies re-route connections to a healthy node. See the Proxy section of the MySQL for PCF topic for more information.

    Mysql config

  3. For MySQL Service Hostname, enter an IP address or hostname for your load balancer. If a MySQL proxy fails, the load balancer re-routes connections to a healthy proxy. If you leave this field blank, components are configured with the IP address of the first proxy instance entered above.

  4. In the Replication canary time period field, leave the default of 30 seconds or modify the value based on the needs of your deployment. Lower numbers cause the canary to run more frequently, which means that the canary reacts more quickly to replication failure but adds load to the database.

  5. In the Replication canary read delay field, leave the default of 20 seconds or modify the value based on the needs of your deployment. This field configures how long the canary waits, in seconds, before verifying that data is replicating across each MySQL node. Clusters under heavy load can experience a small replication lag as write-sets are committed across the nodes.

  6. (Required): In the E-mail address field, enter the email address where the MySQL service sends alerts when the cluster experiences a replication issue or when a node is not allowed to auto-rejoin the cluster.

    Mysql replication canary

  7. Under Automated Backups Configuration, choose one of three options for MySQL backups:

    • Disable automatic backups of MySQL
    • Enable automated backups from MySQL to an S3 bucket or other S3-compatible file store saves your backups to an existing Amazon Web Services (AWS) or Ceph S3-compatible blobstore. Mysql backups s3 This option requires the following fields:
      • For S3 Bucket Name, enter the name of your S3 bucket. Do not include an s3:// prefix, a trailing /, or underscores. If the bucket does not already exist, it will be created automatically.
      • For Bucket Path, specify a folder within the bucket to hold your MySQL backups. Do not include a trailing /.
      • For AWS Access Key ID and AWS Secret Access Key, enter your AWS or Ceph credentials.
      • For Cron Schedule, enter a valid cron expression to schedule your automated backups. Cron uses your computer’s local time zone.
    • Enable automated backups from MySQL to a remote host via SCP saves your backups to a remote host using secure copy protocol (SCP). Mysql backups scp This option requires the following fields:
      • For Hostname, enter the name of your SCP host.
      • For Port, enter your SCP port. This should be the TCP port that your SCP host uses for SSH. The default port is 22.
      • For Username, enter your SSH username for the SCP host.
      • For Private key, paste in your SSH private key.
      • For Destination directory, enter the directory on the SCP host where you want to save backup files.
      • For Cron Schedule, enter a valid cron expression to schedule your automated backups. Cron uses your computer’s local time zone.
      • Enable Backup All Nodes to make unique backups from each instance of the MySQL server rather than just the first MySQL server instance.

        Note: If you choose to enable automated MySQL backups, set the number of instances for the Backup Prepare Node under the Resource Config section of the Elastic Runtime tile to 1.

  8. If you want to log audit events for internal MySQL, select Enable server activity logging under Server Activity Logging.

    1. For the Event types field, you can enter the events you want the MySQL service to log. By default, this field includes connect and query, which tracks who connects to the system and what queries are processed. For more information, see the Logging Events section of the MariaDB documentation.

      Audit Event Logging Config

  9. Click Save.

Step 13: Configure File Storage

Pivotal recommends using highly resilient and redundant external filestores for your Elastic Runtime file storage. This approach minimizes system downtime.

When configuring file storage for the Cloud Controller in Elastic Runtime, you can select:

  • Internal WebDAV filestore
  • External S3 or Ceph-compatible filestore
  • External Google Cloud Storage

For PCF deployments on AWS, the recommended selection is External S3-Compatible File Store.

Internal Filestore

Internal file storage is only appropriate for small, non-production deployments.

To use the PCF internal filestore, perform the following steps:

  1. In the Elastic Runtime tile, select File Storage.

  2. Select Internal WebDAV, and click Save.

External S3 or Ceph Filestore

To use an external S3-compatible filestore for your Elastic Runtime file storage, perform the following steps:

  1. In the Elastic Runtime tile, select File Storage. External filestore config
  2. Select the External S3-Compatible Filestore option and complete the following fields:

    • For URL Endpoint:
      1. In a browser, open the Amazon Simple Storage Service (Amazon S3) table.
      2. Prepend https:// to the Endpoint for your region and copy it into the Ops Manager URL Endpoint field.
        For example, in the us-west-2 region, use
    • For S3 Signature Version and Region, use the V4 Signature values. AWS recommends using Signature Version 4.
    • Select Server-side Encryption (available for AWS S3 only) to encrypt the contents of your S3 filestore. See the AWS S3 documentation for more information.
    • Use the values in your AWS Outputs tab to complete the remaining fields as follows:
      Ops Manager Field Outputs Key
      Buildpacks Bucket Name PcfElasticRuntimeS3BuildpacksBucket
      Droplets Bucket Name PcfElasticRuntimeS3DropletsBucket
      Packages Bucket Name PcfElasticRuntimeS3PackagesBucket
      Resources Bucket Name PcfElasticRuntimeS3ResourcesBucket
      Access Key ID PcfIamUserAccessKey
      AWS Secret Key PcfIamUserSecretAccessKey

    Note: For more information regarding AWS S3 Signatures, please see the Authenticating Requests documentation for additional information.

  3. Click Save.

Other IaaS Storage Options

Google Cloud Storage is also available as a file storage option but is not recommended for typical PCF on AWS installations.

Step 14: (Optional) Configure System Logging

If you forward logging messages to an external Reliable Event Logging Protocol (RELP) server, complete the following steps:

  1. Select System Logging. Sys logging
  2. If you want to include security events in your log stream, select the Enable Cloud Controller security event logging checkbox. This logs all API requests, including the endpoint, user, source IP address, and request result, in the Common Event Format (CEF).
  3. Enter the IP address of your syslog server in External Syslog Aggregator Hostname and its port in External Syslog Aggregator Port. The default port for a syslog server is 514.

    Note: The host must be reachable from the Elastic Runtime network, accept TCP connections, and use the RELP protocol. Ensure your syslog server listens on external interfaces.

  4. Select an External Syslog Network Protocol to use when forwarding logs.

  5. For the Syslog Drain Buffer Size, enter the number of messages the Doppler server can hold from Metron agents before the server starts to drop them. See the Loggregator Guide for Cloud Foundry Operators topic for more details.

  6. Click Save.

Step 15: (Optional) Customize Apps Manager

The Custom Branding and Apps Manager sections customize the appearance and functionality of Apps Manager. Refer to Custom Branding Apps Manager for descriptions of the fields on these pages and for more information about customizing Apps Manager.

  1. Select Custom Branding. Use this section to configure the text, colors, and images of the interface that developers see when they log in, create an account, reset their password, or use Apps Manager. Custombranding

  2. Click Save to save your settings in this section.

  3. Select Apps Manager. Config apps man

  4. Select Enable Invitations to enable invitations in Apps Manager. Space Managers can invite new users for a given space, Org Managers can invite new users for a given org, and Admins can invite new users across all orgs and spaces. See the Inviting New Users section of the Managing User Roles with Apps Manager topic for more information.

  5. Select Display Marketplace Service Plan Prices to display the prices for your services plans in the Marketplace.

  6. Enter the Supported currencies as json to appear in the Marketplace. Use the format {"CURRENCY-CODE":"SYMBOL"}. This defaults to {"usd": "$", "eur": "€"}.

  7. Use Product Name, Marketplace Name, and Customize Sidebar Links to configure page names and sidebar links in the Apps Manager and Marketplace pages.

  8. Click Save to save your settings in this section.

Step 16: (Optional) Configure Email Notifications

Elastic Runtime uses SMTP to send invitations and confirmations to Apps Manager users. You must complete the Email Notifications page if you want to enable end-user self-registration.

  1. Select Email Notifications.


  2. Enter your reply-to and SMTP email information.

  3. For SMTP Authentication Mechanism, select none.

  4. Click Save.

Note: If you do not configure the SMTP settings using this form, the administrator must create orgs and users using the cf CLI tool. See Creating and Managing Users with the cf CLI for more information.

Step 17: (Optional) Add CCDB Restore Key

Perform this step if all of the following are true:

  • You deployed Elastic Runtime previously.
  • You then stopped Elastic Runtime or it crashed.
  • You are re-deploying Elastic Runtime with a backup of your Cloud Controller database.
  1. Click Restore CCDB Encryption Key.

  2. Enter your Cloud Controller DB Encryption Key.

Er18 config ccdb closeup

See Backing Up Pivotal Cloud Foundry for more information.

Step 18: Configure Smoke Tests

The Smoke Tests errand runs basic functionality tests against your Elastic Runtime deployment after an installation or update. In this section, choose where to run smoke tests. In the Errands section, you can choose whether or not to run the Smoke Tests errand.

  1. Select Smoke Tests.

  2. If you have a shared apps domain, select Temporary org and space, which creates an ad-hoc org and space for running smoke tests and deletes them afterwards. Otherwise, select Specified org and space and complete the fields to specify where you want to run smoke tests.

    Smoke test er config

  3. Click Save.

Step 19: (Optional) Enable Advanced Features

The Advanced Features section of Elastic Runtime includes new functionality that may have certain constraints. Although these features are fully supported, Pivotal recommends caution when using them in production environments.

Diego Cell Memory and Disk Overcommit

If your apps do not use the full allocation of disk space and memory set in the Resource Config tab, you might want use this feature. These fields control the amount to overcommit disk and memory resources to each Diego Cell VM.

For example, you might want to use the overcommit if your apps use a small amount of disk and memory capacity compared to the amounts set in the Resource Config settings for Diego Cell.

Note: Due to the risk of app failure and the deployment-specific nature of disk and memory use, Pivotal has no recommendation about how much, if any, memory or disk space to overcommit.

To enable overcommit, follow these steps:

  1. Select Advanced Features.

    Disk memory overcommit

  2. Enter the total desired amount of Diego cell memory value in the Cell Memory Capacity (MB) field. Refer to the Diego Cell row in the Resource Config tab for the current Cell memory capacity settings that this field overrides.

  3. Enter the total desired amount of Diego cell disk capacity value in the Cell Disk Capacity (MB) field. Refer to the Diego Cell row in the Resource Config tab for the current Cell disk capacity settings that this field overrides.

  4. Click Save.

Note: Entries made to each of these two fields set the total amount of resources allocated, not the overage.

Whitelist for Non-RFC-1918 Private Networks

Some private networks require extra configuration so that internal file storage (WebDAV) can communicate with other PCF processes.

The Whitelist for non-RFC-1918 Private Networks field is provided for deployments that use a non-RFC 1918 private network. This is typically a private network other than,, or

Most PCF deployments do not require any modifications to this field.

To add your private network to the whitelist, perform the following steps:

  1. Select Advanced Features.

  2. Append a new allow rule to the existing contents of the Whitelist for non-RFC-1918 Private Networks field. Nonrfc whitelist Include the word allow, the network CIDR range to allow, and a semi-colon (;) at the end. For example:


  3. Click Save.

CF CLI Connection Timeout

The CF CLI Connection Timeout field allows you to override the default five second timeout of the Cloud Foundry Command Line Interface (cf CLI) used within your PCF deployment. This timeout affects the cf CLI command used to push Elastic Runtime errand apps such as Notifications, Autoscaler, and Apps Manager.

Set the value of this field to a higher value, in seconds, if you are experiencing domain name resolution timeouts when pushing errands in Elastic Runtime.

To modify the value of the CF CLI Connection Timeout, perform the following steps:

  1. Select Advanced Features.

  2. Add a value, in seconds, to the CF CLI Connection Timeout field. Cf cli connection timeout

  3. Click Save.

Step 20: Configure Errands Page

Errands are scripts that Ops Manager runs to automate tasks. By default, Ops Manager runs the post-install errands listed below when you deploy Elastic Runtime. However, you can prevent a specific post-install errand from running by deselecting its checkbox on the Errands page.

Note: Several errands deploy apps that provide services for your deployment, such as Autoscaling and Notifications. Once one of these apps is running, deselecting the checkbox for the corresponding errand on a subsequent deployment does not stop the app.


  • Run Smoke Tests verifies that your deployment can do the following:

    • Push, scale, and delete apps
    • Create and delete orgs and spaces
  • Push Apps Manager deploys the Apps Manager, a dashboard for managing apps, services, orgs, users, and spaces. Until you deploy Apps Manager, you must perform these functions through the cf CLI. After Apps Manager has been deployed, Pivotal recommends deselecting the checkbox for this errand on subsequent Elastic Runtime deployments. For more information about the Apps Manager, see the Getting Started with the Apps Manager topic.

  • Notifications deploys an API for sending email notifications to your PCF platform users.

    Note: The Notifications app requires that you configure SMTP with a username and password, even if you set the value of SMTP Authentication Mechanism to none.

  • Notifications-UI deploys a dashboard for users to manage notification subscriptions.

  • Push Pivotal Account deploys Pivotal Account, a dashboard that allows users to create and manage their accounts. In the Pivotal Account dashboard, users can launch applications, manage their profiles, manage account security, manage notifications, and manage approvals. See the Enabling Pivotal Account topic for more information.

  • Push Autoscaling enables you to configure your apps to automatically scale in response to changes in their usage load. See the Scaling an Application Using Autoscaler topic for more information.

  • Register Autoscaling Service Broker makes the Autoscaling service available to your applications. Without this errand, you cannot bind the Autoscaling app to your apps.

Step 21: Configure Router to Elastic Load Balancer

  1. If you do not know it, find the name of your Elastic Load Balancer (ELB) by clicking Load Balancers in the AWS EC2 dashboard. This example shows three ELBs:

    • pcf-stack-pcf-ssh-elb: An SSH load balancer
    • pcf-stack-pcf-elb: A load balancer
    • pcf-stack-pcf-tcp-elb: A TCP load balancer

    Aws elb names

  2. In the Elastic Runtime tile, click Resource Config. Er aws resource config

  3. In the ELB Name field of the Diego Brain row, enter the name of your SSH load balancer. Specify multiple load balancers by entering the names separated by commas. Er aws resource config diego brain

  4. In the ELB Name field of the Router row, enter the name of your load balancer. Specify multiple load balancers by entering the names separated by commas. Er aws resource config router

  5. In the ELB Name field of the TCP Router row, enter the name of your TCP load balancer if you enabled TCP routing in the Advanced Features pane. Specify multiple load balancers by entering the names separated by commas. Er aws resource config tcprouter

  6. Click Save.

Step 22: (Optional) Disable Unused Resources

By default, Elastic Runtime uses an internal filestore and internal databases. If you configure Elastic Runtime to use external resources, you can disable the corresponding system-provided resources in Ops Manager to reduce costs and administrative overhead.

For more information regarding scaling instances, see the Zero Downtime Deployment and Scaling in CF and the Scaling Instances in Elastic Runtime topics.

Complete the following procedures to disable specific VMs in Ops Manager:

  1. Click Resource Config.

  2. If you configure Elastic Runtime to use an external S3-compatible filestore, edit the following fields:

    • File Storage: Enter 0 in Instances.
  3. If you configure Elastic Runtime to use an external Relational Database Service (RDS), edit the following fields:

    • MySQL Proxy: Enter 0 in Instances.
    • MySQL Server: Enter 0 in Instances.
    • Cloud Controller Database: Enter 0 in Instances.
    • UAA Database: Enter 0 in Instances.
  4. If you are using an External Load Balancer instead of HAProxy, enter 0 in the Instances field for HAProxy.

  5. Click Save.

Step 23: Download Stemcell

This step is only required if your Ops Manager does not already have the Stemcell version required by Elastic Runtime.

  1. Select Stemcell.

  2. Log into the Pivotal Network and click on Stemcells.

  3. Download the appropriate stemcell version targeted for your IaaS.

  4. In Ops Manager, import the downloaded stemcell .tgz file.

    Stemcell 18

Step 24: Complete the Elastic Runtime Installation

  1. Click the Installation Dashboard link to return to the Installation Dashboard.

  2. Click Apply Changes. If the following ICMP error message appears, click Ignore errors and start the install.

    Install error

    The install process generally requires a minimum of 90 minutes to complete. The image shows the Changes Applied window that displays when the installation process successfully completes.

    Ops manager complete

Return to Installing Pivotal Cloud Foundry Using AWS CloudFormation.

Create a pull request or raise an issue on the source for this page in GitHub