You can set up DNS to use a custom domain for your Cortex APIs. For example, you can make your API accessible via
Decide on a subdomain that you want to dedicate to Cortex APIs. For example if your domain is
example.com, a valid subdomain can be
api.example.com. This guide will use
cortexlabs.devas the domain and
api.cortexlabs.devas the subdomain.
Click "Create Hosted Zone" and then enter your subdomain as the domain name for your hosted zone and click "Create".
Take note of the values in the NS record.
Navigate to your root DNS service provider (e.g. Google Domains, AWS Route 53, Go Daddy). Your root DNS service provider is typically the registrar where you purchased your domain (unless you have transferred DNS management elsewhere). The procedure for adding DNS records may vary based on your service provider.
We are going to add an NS (name server) record that specifies that any traffic to your subdomain should use the name servers of your hosted zone in Route 53 for DNS resolution.
cortexlabs.devis managed by Google Domains. The image below is a screenshot for adding a DNS record in Google Domains (your UI may differ based on your DNS service provider).
Take note of the load balancer's name.
Go back to the Route 53 console and select the hosted zone you created earlier. Click "Create Record Set", and add an Alias record that routes traffic to your Cortex cluster's API load balancer (leave "Name" blank).
You could run into connectivity issues if you make a request to your API without waiting long enough for your DNS records to propagate after creating them (it usually takes 5-10 minutes). If you are updating existing DNS records, it could take anywhere from a few minutes to 48 hours for the DNS cache to expire (until then, your previous DNS configuration will be used).
To test connectivity, try the following steps:
- 1.Deploy an api.
- 2.Make a request to your api (e.g.
curl http://api.cortexlabs.dev/hello-worldor paste the url into your browser if your API supports GET requests).
- 3.If you run into an error such as
curl: (6) Could not resolve host: api.cortexlabs.devwait a few minutes and make the request from another device that hasn't made a request to that url in a while.
Spin down your Cortex cluster.