Information for: DEVELOPERS   PARTNERS   SUPPORT

Using Web Elastic IP addresses

Important

This feature is applicable for applications running on Cloud Next technologies.

If your Cloud Next application must communicate to a remote HTTP or HTTPS service, and the service requires inbound connections to come from static and known IP addresses, Acquia can provision Web IPs for your application environments.

Without Web EIPs, the IP addresses associated with Cloud Next’s infrastructure are subject to change at any time.

Note

  • Cloud Classic customers who already have elastic IPs will receive Web EIPs as part of their Cloud Next upgrade.
  • Cloud Next customers who need Web EIPs added to an environment must contact Acquia Support.

Web EIP features

  • HTTP and HTTPS requests come from dedicated IP addresses:

    Web EIPs are designed for applications that must make external requests to services that require allowlisted-inbound connections.

  • No application changes are needed:

    When using APIs provided by Drupal core for making requests to external services, Web EIPs are automatically utilized.

  • Dedicated IP addresses through autoscaling and periods of high traffic or elevated resource consumption:

    The Web EIPs that are assigned to the application environment persist even as your application scales, eliminating the need to edit IP allowlists before extra capacity can be used at Acquia.

Limitations

  • Web EIPs are limited to HTTP and HTTPS requests from Drupal applications:

    Except HTTP, other protocols and services such as SMTP and LDAP are not supported. Usually, these requests operate normally but do not leverage the dedicated IP addresses provided by Web EIPs.

  • Non-Drupal applications, PHP scripts and 3rd party libraries are not supported:

    Web EIPs require application support to function properly. Acquia does not support custom integrations.

Web EIP compatibility

Drupal

Web EIPs are compatible with the APIs provided by Drupal core for making requests to external services, such as:

  • drupal_http_request() in Drupal 7
  • Drupal::httpClient in Drupal 9 or later

Best practice: Use any contributed or custom modules to use these Drupal-provided methods for making external requests. Ensure that you review any custom modules that make external requests.

Note

  • Drush is fully supported if requests are made using compatible functions and libraries.
  • To enable Web EIP support in Drupal 7, Acquia overrides the drupal_http_request_function variable. You must disable any contributed or custom modules that override this function to use Web EIPs.

Curl and the curl PHP extension

Web EIPs are compatible with the curl command line utility and the curl PHP extension:

  • curl_exec() and related functions from the curl PHP extension
  • curl on the command line or through exec('curl') in PHP

Known incompatibilities

Wget

The wget command line utility does not support Web EIPs. If wget is used in an application environment where Web EIPs are enabled, the utility returns an error message.

Best practice: When making requests on the command line, Acquia recommends that you use curl.

file_get_contents() and PHP I/O stream wrappers

Certain PHP internal functions, such as file_get_contents(), that use I/O streams for HTTP/HTTPS requests are incompatible with Web EIPs. Usually, these requests operate normally but do not leverage the dedicated IP addresses provided by Web EIPs.

Best practice: Acquia recommends that you use the curl PHP extension or one of the internal Drupal API functions to make external requests with Web EIPs.