Some applications depend on external services that are not provided directly by AWS. External services include:
- Software as a service (SaaS) providers like New Relic
- Custom API applications in the same git repository
Applications that depend on external services need access to the public internet via a NAT (Network Address Translation) gateway. This document describes how to configure public internet access for your application. The setup process will:
- Create a NAT gateway for each availability zone in your virtual network
Note: To access services that are provided directly by AWS, you can access them over the public internet by enabling public internet access, or you can alternatively use VPC endpoints to keep network traffic entirely within the VPC.
In the infra/<app_name>/app-config module, set has_external_non_aws_service to true.
If you are creating new network(s), follow the instructions in set up network
If you are updating existing networks, run the following command for each network used by your application's environments (look at network_name for each environment in your application's app-config module).
make infra-update-network NETWORK_NAME=<NETWORK_NAME>Check that your application can access the internet. If your application already has an endpoint or background job that calls the internet, you can exercise that code path without needing to re-deploy the application. If not, you can test internet access by introducing a simple endpoint that accesses some public URL (e.g. google.com).
Repeat this step for each application environment.