1

I have a Load Balanced Web service deployed:

About

  Application      my-app
  Name              api
  Type              Load Balanced Web Service

Configurations

  Environment       Tasks               CPU (vCPU)          Memory (MiB)        Port
  -----------       -----               ----------          ------------        ----
  production        1                   0.25                512                 80

Routes

  Environment       URL
  -----------       ---
  production        http://xxxxx.us-east-1.elb.amazonaws.com

Service Discovery

  Environment       Namespace
  -----------       ---------
  production       api.my-app.local:80

Variables

  Name                                Container           Environment         Value
  ----                                ---------           -----------         -----
  COPILOT_APPLICATION_NAME              "                   "                 my-app
  COPILOT_ENVIRONMENT_NAME              "                   "                 production
  COPILOT_LB_DNS                        "                   "                 xxxx.us-east-1.elb.amazonaws.com
  COPILOT_SERVICE_DISCOVERY_ENDPOINT    "                   "                 my-app.local
  COPILOT_SERVICE_NAME                  "                   "                api
  REDIS_URL                             "                   "                 redis://redis.my-app.local:6379

And redis as backend service in the same copilot application:

About

  Application       my-app
  Name              redis
  Type              Backend Service

Configurations

  Environment       Tasks               CPU (vCPU)          Memory (MiB)        Port
  -----------       -----               ----------          ------------        ----
  production        1                   0.25                512                 6379

Service Discovery

  Environment       Namespace
  -----------       ---------
  production        redis.my-app.local:6379

Variables

  Name                                Container           Environment         Value
  ----                                ---------           -----------         -----
  COPILOT_APPLICATION_NAME            redis               production          my-app
  COPILOT_ENVIRONMENT_NAME              "                   "                 production
  COPILOT_SERVICE_DISCOVERY_ENDPOINT    "                   "                 my-app.local
  COPILOT_SERVICE_NAME                  "                   "                 redis

When I look at the records on Route53, redis.my-app.local is present. But then the logs in my api always say:

uncaughtException: Redis connection to redis.my-app.local:6379 failed - getaddrinfo ENOTFOUND redis.my-app.local

Then at some point redis shuts down because there is no incoming connection... what is the issue?

Guillaume
  • 2,912
  • 3
  • 35
  • 59

1 Answers1

0

It looks like you found the solution: DNS hostnames must be enabled.

For others who may encounter the same issue:

By default, Copilot does:

EnableDnsHostnames: true
EnableDnsSupport: true

We will add a warning for imported VPCs, but in the meantime, ensure that you have DNS hostnames enabled for your existing VPC.

Ref: https://github.com/aws/copilot-cli/issues/2211

huanjani
  • 220
  • 1
  • 2
  • yes I played a little bit with VPC attributes and at last it worked. Thanks for responding to my messages though :) – Guillaume Dec 23 '21 at 08:36