I have an application that I want to launch on AWS. This application must have a domain that would allow me to create hundreds of thousands of subdomains.
Now, Hostgator allows you to purchase a domain that you can create an unlimited number of subdomains.
Is it possible for me to transfer my subdomains created on Hostgator to AWS?
Jordanm makes a few good points in the comments.
We need to distinguish between the registrar and the DNS provider that hosts the domain.
The registrar allows you to buy a domain, which is then registered to you and allows you to use it.
In order to use that domain, you need a name server (in practice it's more than one) that can respond to requests for that domain.
You can tell the registrar what the name servers for your domain are and for this you set the NS (short for - you guessed it - name server) records for your domain to point to your name server.
This name server can then create as many subdomains as it likes, because it will be the authoritative source for others to find these subdomains.
Many registrars also host a name server for you and some limit the number of subdomains.
If that's the case for your registrar, you can just use another DNS service and tell your registrar that the other DNS service is now responsible for your domain.
In the case of AWS, you would create a public hosted zone for your domain in Route 53.
It will then tell you, which NS records to configure with your registrar.
When you've done that, you can manage your domain and subdomain in Route53.
You can also directly buy a domain in Route 53, because AWS acts as a registrar as well.
(A little bit simplified, but that's basically the process)
Related
In my application, I'm giving a subdomain (like user.domain.com) to each account. So, I'm planning to use AWS Route 53 for routing subdomains to my application. Is there any maximum limit of subdomains in Amazon Route 53.
Thanks in advance!
I'm giving a subdomain (like user.domain.com) to each account
You should revise your application design what If you users reached to million? and what if you want to migrate your DNS in future also subdomain maximum limit varies from service provider to service provider.
So generalize solution cloud be like all subdomain will point to a single endpoint (Load balancer) and your core backend will check DNS and then load custom response base on the domain, normally login page for which you can save custom logo etc against domain name and load these resources base on domain.
High-level architecture
So same case for a big cloud service provider, for example, slack, which provides subdomain for each user but do we think that slack manages route53 record for each users?
how-slack-works
Or you can simply do nslookup, for thousand domain you will get the same backend IP.
slacker:~$ nslookup acmeinc.slack.com
Name: acmeinc.slack.com
Address: 13.228.49.204
slacker:~$ nslookup www.slack.com
Name: www.slack.com
Address: 13.228.49.204
The Route53 limits and quotas are listed here.
The limits are not expressed directly in number of subdomains, but rather in number of records and hosted zones, among other things.
Therefore, there is 10,000 records per hosted zone, but it can be increased. Also you can have 500 hosted zones per account.
This might be relevant or not depending on your use case, but if you expect a large number of users and want to assign a custom subdomain per user, then the limit of 10,000 is probably not sufficient for you.
Your other option is to create a CNAME record with a wildcard subdomain, something like *.domain.com, and point the record to your application, this is now supported by AWS Route 53 and will support all possible subdomains.
The drawback is that subdomains that are not registered will also be directed to your application (like random-str.domain.com), so you'll need to do your validation outside of Route 53. Maybe call an API to validate from your frontend app
I am following Heroku's instructions on how to get my AWS domain name on Route 53 to point to my Heroku app. The end of the instructions say:
"Go back to the Hosted Zones list and select your new hosted zone. There is a pre-populated Delegation Set section in the sidebar. These are the nameservers you need to provide your domain registrar for Route 53 to resolve your app domain."
I assume that the nameservers they are referring to are the four web addresses with "awsdns" in their name with type NS. My question is, who is my domain registrar and how do I provide these name servers to them? I originally bought this domain through GoDaddy before transferring it to AWS. Is GoDaddy my domain registrar? How do I determine this? Thank you.
Did you transfer the domain to AWS, or did you simply create a hosted zone for the domain name? If you transferred the domain to AWS, which it doesn't sound like you did, the nameservers are configured by Route 53 and are set. It sounds like you need to go to the Domain Settings via the GoDaddy console and set the AWS nameservers as your nameservers for your GoDaddy domain.
My website's domains are currently managed by a domain provider called mijndomein.nl. The aws hosted services are connected simply by subdomains using elastic-IPs. Because of some infrastructural changes, I'd like to start using Route53 for certain subdomains. As there are several other things managed by the domain provider and changing the whole infrastructure all at once seems dangerous, I'd like to manage only some subdomains in Route53.
I found this video, which shows how to manage the whole site in Route53 by adding the Route53 name servers for the custom domain provider.
My first question is if it's possible to keep the already existing subdomains at my domain provider and manage only specific subdomains in Route53? If I add the aws nameservers will my domain provider continue to route to elastic-IPs?
1) Yes
2) Yes, but be careful here: you don't want to change name server for your (root) domain name like they did at 2:58 of that video. Instead you have to go to DNS service provider's console (DNS service provider may or may not be the same place where you registered your domain - from mijndomein.nl web site it looks like they only offer domain regitration but I may be wrong) - that is the same console where you point your usual hostnames (www.example.com for example) to IP addresses, but instead of A record you will create a NS record(s) that will delegate your newsubdomain's name resolution to appropriate AWS name servers.
newsubdomain.example.com NS ns-xxx.awsdns-yy.com
newsubdomain.example.com NS ns-aaa.awsdns-zz.org
newsubdomain.example.com NS ns-bbb.awsdns-qq.net
newsubdomain.example.com NS ns-ccc.awsdns-pp.co.uk
(example)
Right now our domain name and DNS are still hosted by our old provider until we make the full switch to Amazon AWS.
We run a lot of subdomains i.e. vendor.mydomain.com which were previously setup as websites on our old host. I deleted the subdomain on the oldhost and replaced it with a cname on the mydomain.com level for vendor to point to AWS, all is working well.
Now I need to add some TXT records for mailgun to verify my domain and I'm not sure where / how to do it.
Mailgun is looking for and expecting a CNAME record email.vendor.mydomain.com. I tried creating this on mydomain.com as I did for the vendor CNAME, it lets me create it but it never seems to be detected by mailgun.
I figure I could go with the configuration where I create a subdomain on my original host, but then the nameserver of my old host takes over for vendor.mydomain.com. In this scenario I'm all good with the Mailgun CNAME's etc, but I don't know how to effectively point to AWS for vendor.mydomain.com as the CNAME on the domain level no longer works.
Thoughts / suggestions welcome!
If, on the authoritative server for example.com, you have a CNAME record for subdomain.example.com, no other records on that same server can be valid for, or under, that subdomain, because the CNAME effectively blocks everything at or below itself by saying "stop, look elsewhere... specifically, look here."
Create a hosted zone in Route 53 for example.com. Note the 4 awsdns name servers it assigns to the hosted zone.
For each subdomain you need on Amazon, create 4 NS records for each subdomain on the example.com authoritative servers.
vendor NS ns-xxxx.awsdns-yy.com.
vendor NS ns-xxxx.awsdns-yy.net.
...etc., for the .org and .co.uk domains.
This delegates all lookups for that subdomain (e.g. "vendor") and all of its subdomains to the Route 53 servers, while leaving your existing servers authoritative for the records it still contains.
Then you can create records in the hosted zone in Route 53, including alias and CNAMEs as needed.
I'm working on transferring my website from godaddy, to AWS. I completed all the steps with the domain transfer, e.g. unlock domain, approve the transfer on both sides. And then I cancelled my Godaddy hosting. Now I have set up the AWS hosted zones, and I'm stuck on switching DNS services.
One of the steps is to enter the NS values on Route53 into the DNS provider on godaddy, but since I cancelled my hosting service I no longer have any way to access my DNS provider.
I'm wondering what to do in this situation. Is it possible to access the DNS provider directly? I waited for the TTL to expire before posting this because I thought that would fix my issues, but it did not.
If you transferred the domain registration to Route 53, you are following a set of instructions that doesn't match what you are trying to accomplish.
In Route 53...
Under "Hosted Zones," select your domain. Make a note of the 4 name servers assigned.
Then, under "Registered Domains," select your domain.
The name servers shown here need to match the 4 name servers that were assigned to your Hosted Zone.
Click Add/Edit Name Servers to modify them. They are probably still pointing to the Go Daddy (something like "nsxx.domaincontrol.com" if I remember correctly) name servers.
It sounds like what you were reading was instructions for moving your DNS hosting to Route 53, without doing a domain transfer, which is change of the registrar of record. Changing DNS hosting, only, would not have involved unlocking and approving as you described. Registrar and hosting are two completely separate services, but providers often bundle them together, leaving users often unaware of the distinction.