route53 domain name is not connecting with my ec2 elastic ip - amazon-web-services

I'm running an ec2 instance. If I ping the instance based on its elastic IP I get a response. If I use my registered domain I can not access that elastic IP address anymore. In Route 53 (under the DNS Management) I have 1 hosted zone with 3 record sets:
an A record set with my domain and the elastic ip address
an automatically assigned AWS NS record
an automatically assigned AWS SOA record
So, basically the only entry I added was the A (that corresponds to the name of my domain and the elastic IP address as a value. Not sure why it's not binding.
My ec2 instance has no firewall and for the time-being both (the inbound and the outbound) sections of my aws firewall are set to "all traffic".
when I use a domain validator I do not get anything back. It behaves as if the domain did not exist. The domain was created over a year ago (so this is not a new domain). I checked in the dash-board and as far as I can tell all the information (contact info, verification info) looks fine.
Furthermore, the "test-record" feature in the Route 53 does return the IP address on a "UDP" port.
What am I missing? Do I need anything else?
Edited
Edited 2
I have deleted the 1 hosted zone and created a new: now it looks like this:

If you bought the Domain from other than AWS then you need to manually update its name server from their portal (godaddy,etc).
So this is how it goes in case of others:
create a Hosted Zone in Route53 which you already did
NS and SOA records will be auto-generated however, it's important to note that the auto-generated NS will NOT update the domain's NS automatically. You need to update it manually
Add A records as shown in image below
Then go to your domain portal and change DNS, use auto-generated DNS from Route53
Changes will be refreshed as per your selected TTL but it usually updated in 5 mins
OR
If your Domain provider gives you the access to setup records in their portal then you can skip all the above steps and simply create A record there with your elasticIP to point your domain to ec2
EDIT
As you can see in picture nameservers mentioned on the top right corner of the image are different than your record NS, your NS records are wrong.
It's better that you delete this hosted zone and create new Public Hosted Zone. You will get new NS after creating a Hosted Zone then just go to domain editing and update nameservers with the new one on domain.

Related

how to let web application use the purchased domain name through ROUTE 53 in AWS?

I have purchased a domain name through ROUTE 53.
2) I have created a EC2 instance and put my web application inside it that is supposed to be hosted.
3) I have configured the Gunicorn and nginx as my WSGI and web server.
How to use the purchased domain name to integrate with my application to see over the internet. I have seen many documents post on stackoverflow, and youtube videos. But I am not able to get the clear picture of what am suppose to do next.
I get that once the domain is registered I have 4 ns records generated inside the ROUTE 53. But where to use them? how to configure them.
It be helpful if somebody can give me exact steps to perform the tasks.
Thank you,
Route53 is similar to other DNS servers with extra features, in your case, you will need to assign your ec2 instance a public IP address and to be safe an Elastic IP to avoid IP change on reboot, then you need to grab this public IP and assign it to your domain root A record and www CNAME record to point to that domain
I get that once the domain is registered I have 4 ns records generated
inside the ROUTE 53. But where to use them? how to configure them.
Normally it's not required but it's helpful to control your DNS configuration from route 53 instead of the DNS registrar.
Create Hosted zone in route 53, for example if your domain name is example.com then create Hosted zone in route with name example.com, it will generate name server record.
Open newly created hosted zone and copy Name server (NS) record and replace the NS record in your DNS setting.
When you create a hosted zone, Route 53 automatically creates a name server (NS) record and a start of authority (SOA) record for the zone. The NS record identifies the four name servers that Route 53 associated with your hosted zone. To make Route 53 the DNS service for your domain, you update the registration for the domain to use these four name servers.
Add these record in DNS Name server, for example the below one is used for Godaddy
migrating-a-domain-to-amazon-route53

How do you get an Elastic Beanstalk website to work to be accessible via a .work extension from Hover via Route 53?

I'm trying to get the website I've set up in Elastic Beanstalk live. I bought a domain www.semiflex.work from Hover.com. I understand that I need to connect my domain to Elastic Beanstalk via Route 53, but I'm getting a lot of conflicting information as to how I can do this.
I've tried creating CNAME record sets in both Route 53 and Hover as an Alias with a link to my Elastic Beanstalk website, but that didn't work. I then also replaced the nameservers in Hover with the ones in Route 53, but that didn't work either. It's been roughly 4 days and I can't get my site to run on my new domain. How would I go about getting this to work?
Thanks in advance.
Using Route53 to manage your DNS is simple and straightforward.
Go to to Route53 and create a hosted zone for your domain. As soon as you create your hosted zone, Route53 will generate two default entries: a SOA entry, and an NS entry with 4 nameservers that you assign to your domain in order for Route53 to manage your zone file.
Next go to your domain registrar, in this case Hover, and update the nameservers of your domain to the nameservers provided by Route53.
Now that Route53 is managing the zone file for your domain, you can create an appropriate entry for your ElasticBeanstalk app. Open your domains hosted zone and select “create record set”. On the right hand side, you’ll be able to enter a sub-domain (optionally), like www, next you’ll be able to select the type of record this is, such a an A, CNAME, MX, TXT or other. If you’re using your domain with another AWS service like Elastic Beanstalk, CloudFront, or S3, you’ll want to leave the type as an A record and then in the next section you’ll set Alias to yes. Now, in the target, you’ll either select where you want Route53 to Alias to from the available option in the current account, or if you’re aliasing to a supported service in another account you’ll enter the target such as the ElasticBeanstalk or CloudFront URL.
Click “save record set” and the entry will be live within seconds (assuming the DNS has propagated).
Now that Route53 is managing your DNS, and because IP addresses for services can change, your DNS will not need to be updated because Route53 will automatically take care of updating the destination for the record if/when it changes.
We went through your issue and noticed that you must have misconfigured your route53 settings. You do not need to create an CNAME record for routing your domain through elastic beanstalk environment. Just need to create a record set by enabling Alias and selecting Alias target as your environment URL in the dropdown list.
To do so go through -->> Create Record set -->>Click on Alias -->>Select Alias Target.
This will resolve your problem assuming that you have updated name servers in domain registrar.
Ended up solving this the old fashioned way.
AWS part
On Route 53, create a hosted zone. In that hosted zone, create a record set that is Type A - IPv4 - address, Alias Target = your elastic beanstalk url. Save record set. Then click on that record set, and then click on the button "Test Record Set." Then click "Get Response." Copy the I.P address "in Response returned by Route 53"
Hover part
Set Nameservers on hover = ns1.hover.com, ns2.hover.com. Then click on "DNS" and add two records where Type = A, Host = *, Value = your Route 53 I.P address & Type = A, Host = #, Value = your Route 53 I.P address.
Can take up to 48 hours to work, but it works!

Route 53 AWS configuration

The numerical IPv4 address for my EC2 instance works perfectly. However, when I create an A record for my domain to point to the IPv4 address browser returns "Cant find the server"
I have created a hosted zone In route53, under DNS management. My name server match the ones from the domain with the one in my hosted zone.
Not sure why my domain is not working but the IPv4 address is working fine.
Ok, so Route53 can be confusing for people who first start using domain names and dont' have a lot of experience with DNS. Let me walk through what you are seeing on the console:
When you registered your domain, it automatically created a "Hosted Zone" for you. When you click on Route53 and it shows you all your hosted zones, if you click on the one you're trying to forward, the NS records that show up to the right on the console must match the ones that appear when you click on your domain. If they don't match, no amount of forwarding will work.
If you created a new Hosted Zone, you may need to update the name servers on your domain. A common mistake is to open the hosted zone, and modify the NS entry in the hosted zone. This will not work. The NS record forwards to those name servers, it doesn't change the name servers of that hosted zone. The hosted zone will always have the same name servers.
Once you've successfully forwarded your name servers, an "NSLOOKUP" on your domain should return your name servers.
Once all that is set up, creating an A record within the hosted zone should now forward to your IP (or better yet, a load balancer URL).
To recap:
Create a domain, which will automatically create a hosted zone.
Create a new hosted zone (which is assigned 4 new name servers)
Create an NS entry in the original hosted zone that points to the newly created hosted zone's name servers
Create an A record in the new hosted zone to forward your domain

How does Route 53 connect multiple public hosted zones to one domain name?

I have two public hosted zones in Amazon Route 53 for the same domain name (which has Route 53 as registrar), for the reason that Route 53 automatically created one when I registered the domain name and that the second one was created by Terraform.
As far as I can tell, DNS record sets in the second zone aren't applied, i.e. they're not returned for queries to the domain. Do I have to delete the first zone in order for record sets in the second zone to be active?
As far as I can tell, which hosted zone is active, meaning that its record sets are returned for queries to the domain, depends on the name servers registered with the domain. So, in order to make my second zone active I have to update the domain's name servers, in Route 53, to correspond to those of the desired hosted zone.
Following is an extract from the AWS Route 53 FAQ
Q. Can I create multiple hosted zones for the same domain name? 
Yes. Creating multiple hosted zones allows you to verify your DNS setting in a “test” environment, and then replicate those settings on a “production” hosted zone. For example, hosted zone Z1234 might be your test version of example.com, hosted on name servers ns-1, ns-2, ns-3, and ns-4. Similarly, hosted zone Z5678 might be your production version of example.com, hosted on ns-5, ns-6, ns-7, and ns-8. Since each hosted zone has a virtual set of name servers associated with that zone, Route 53 will answer DNS queries for example.com differently depending on which name server you send the DNS query to.
Click here for more details
How is Domain-Name, Namespaces, and Hosted-Zone connected?
Imagine you bought a new name from GoDaddy - example.com. Then you setup your website in your EC2 machine which has IP 100.0.0.10. To point example.com to your webserver, you will need to first choose a DNS resolver. AWS provides one - Route53. A DNS resolver translates names like example.com to IP address like 100.0.0.10.
AWS Route53 has a concept of Hosted Zones. You will need to create a hosted zone for example.com. Route53 will then give you nameservers (bunch of different URLs, AWS gives you 4). You will take these nameservers and go back to GoDaddy and there is a section to put those nameservers. This tells GoDaddy where to send the request to.
Why did we do above ^^^ ?
When you purchased the name from GoDaddy, GoDaddy became your registrator i.e. it registered your name with the DNS authorities. So whenever someone requests example.com to the DNS authorities, they will forward the request to GoDaddy. So GoDaddy needs to know where to send the request to. These nameservers tells GoDaddy that exact information.
After the request reaches AWS Route53, it knows that this domain name example.com needs to go to 100.0.0.10.
What if I create 2 Hosted Zones with the same domain name example.com?
A hosted-zone is nothing but Route53's way to define a set of route rules for a domain.
If you have 2 hosted-zone with the same domain name, you will have 2 sets of namespaces. For AWS, each set has 4 namespace, so total of 8 namespaces).
So now it depends which namespaces you give to GoDaddy. You can give it set A, in which case your second hosted-zone will not receive any traffic. You can give it set B, in which case your first hosted-zone will not receive any traffic. Or, you can give it a mixture of both set A and set B, in which case GoDaddy will send some requests to set A and some to set B, not both though.

How can I create a subdomain in AWS Route53 when the parent domain is also configured in Route53?

I have one domain name registered in an AWS Hosted zone. It comprises of 5 records viz A, SOA, NS (4 ns addresses), MX and CNAME. But now, I want to create a Subdomain : static.domain.com. I have read Creating a Subdomain That Uses Amazon Route 53 as the DNS Service without Migrating the Parent Domain article from AWS doc but clearly that is not my case. My domain name is configured in the Route53 itself.
So if I have to create a hosted zone for the static.domain.com and update the NS records in the parent's hosted zone domain.com then I can just do that but I am confused if that's gonna work or destroy my whole configuration!
So guys, please tell me how to create the subdomain static.domain.com when my parent domain domain.com is also in the Route53?
FYI : I am creating this subdomain to serve static content from an s3 bucket which will be configured as an static website and will be aliased against this subdomain static.domain.com so that all static requests are can be fetched as http://static.domain.com/resources/path/to/dir/image.png etc.
Thanks very much
All you need to do is create a record set in your Hosted Zone, for your desired sub domain.
Go to your Hosted Zone
Click the 'Create Record Set' Button
In the dialog that appears on the right, enter your desired subdomain in the 'name' field. If you want static.domain.com, just enter 'static' in the name field.
Choose the Type of DNS Record you want eg, A, CNAME
Enter a custom TTL if desired, enter value(s) for your record and change the routing policy if also desired.
You have two options:
Create records in the existing hosted zone for the domain
Create an additional (dedicated) hosted zone for the subdomain, and create records in this dedicated hosted zone.
Both are explained below.
Option 1 (without a dedicated hosted zone)
In this case all we possibly can do is to change the list of the DNS records. And I believe primary record types to be configured are:
The A record type. It's like a [domain name to IP address] record.
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#AFormat
or the CNAME record type. This one is like a [domain name to another domain name] record
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#CNAMEFormat
Note: NS record should not be changed, its value should remain default and is used as a primary link between the name servers and the hosted zone. The hosted zone itself is kinda named AWS container for DNS records (i. e. a thing that can be referenced within AWS ecosystem).
Option 2
Create a hosted zone that has the same name as the subdomain that you want to route traffic for, such as acme.example.com.
Create records in the new hosted zone that define how you want to route traffic for the subdomain (acme.example.com) and its subdomains, such as backend.acme.example.com.
-> You get the name servers that Route 53 assigned to the new hosted zone when you created it.
Create a new NS record in the hosted zone for the domain (example.com), and you specify the four name servers that you got after step #2.
Option 2 pros: having a dedicated hosted zone provides more flexibility for configuration and managing access to this configuration for other AWS users (IAM permissions). "Flexibility" here can be for example having not the same DNS service used for the domain and for the subdomain
Option 2 cons: "small" performance impact to this configuration for the first DNS query from each DNS resolver. The resolver must get information from the root-domain's hosted zone first and then get information from the subdomain's hosted zone. But there is a caching mechanism regulated by TTL (Time to live) value.
Reference: 'Routing traffic for subdomains'
Mon Oct 24 19:59:40 PDT 2022
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-routing-traffic-for-subdomains.html
See also an option-2-related article: https://aws.amazon.com/premiumsupport/knowledge-center/create-subdomain-route-53/
Hope it helps and is somewhat educational.