I have a domain name registered with tmdhosting.com. And I have created a WordPress multisite setup on AWS using bitnami WordPress multisite stack.
Now I would like to point my domain name from my registrar to my AWS instance. Where they are asking me to provide them with a NS. I am new to AWS and I am not sure as to how to go about doing this.
Also did a little bit of research where it said that I will need a Route 53 (which is not free) I would want to know if there is another way to do this.
Can I use CloudFront to do this as with my previous provider had given me a cloudflare name server.
Please let me know the steps as to how to go about doing this.
To point a Domain Name to an EC2 instance, you can either use Route 53 or your own DNS service. In both cases:
Assign an Elastic IP address to your EC2 instance
In Route 53 or your own DNS service, define a domain/subdomain that points to this IP address
The above assumes that you wish to point to a single EC2 instance. If you have multiple instances with a Load Balancer in front, you will require a CNAME record pointing to the DNS name of the Load Balancer. (If using Route 53, using the "ALIAS" button to point to a Load Balancer.)
Route 53 is not free, but it is very cheap. If correctly configured to point to AWS resources, it can cost only 50c/month per hosted zone.
CloudFront is a content distribution network that caches web content. It will not assist you in assigning a Domain Name to an EC2 instance. (Custom domain names can be used with CloudFront, but that doesn't appear to be your particular question.)
Related
I've set up my application on AWS Elastic Beanstalk. I added a load balancer and pointed a CNAME for 'www' to it. But now I need to get root pointed there too. I can't use Route53 and use AWS nameservers because the client wants to use theirs. How can I get root to my app? Can I redirect the traffic? The tech lead I'm working with suggested setting up a server to do the redirect?
Since AWS ELB's only offer DNS Record (Instead of IPs) you need to use a CNAME mapping. However with DNS, CNAMEs do not allow root domain to point to it. To overcome this AWS has provided Alias Records (Custom implementation to AWS) to point root domain to ELBs.
If your client want to use their nameservers still you can use, AWS Route53 in between to solve this with following steps.
First create a Public Hosted Zone in Route53 for your domain.
Then create a record set inside the Hosted Zone for the root domain to point to the ELB with Type = A - IPv4 Address, Alias = Yes with ELB CNAME as for the Alias value.
In the external domain management service, create a NS record to point the root domain to Route53 nameservers.
Then when the DNS resolution happens, the root DNS query will first go to external nameservers(Managed outside of Route53) and then it will be forwarded to route53 where it will resolve the ELBs IP address and sent back.
You can set up a machine with a single static IP address that does nothing but redirect requests to the www host. Then you can put an A record on the bare domain at the apex of the DNS zone pointing to that machine.
There is at least one service, http://wwwizer.com/naked-domain-redirect, that will do this for you. (I'm not affiliated with this service, but it appears to do what it claims and will serve your purpose. There are probably others like it.)
Ideally, though, you'd persuade your client to change the authoritative nameservers to point to a Route 53 hosted zone that you create for them. They are still the registrant and "owner" of their domain, and can take control back from you by simply changing the nameservers to something else.
I generally persuade clients with the explanation that our load balancer infrastructure is integrated with the DNS servers so that if a balancer node fails, or we need to add or scale up capacity, or experience a traffic surge or DDoS event, the load balancer system will automatically update the DNS records for their domain to try to mitigate the issue and keep the site up. To do otherwise is to do things in such a way that removes those layers of redundancy.
Ideally, you can set up a apache server with a static IP, and install a free SSL certificate on that web server at first.
Second you need to redirect your root domain name request to AWS ELB.
Then go to your DNS management and set up your apex point to the server you created.
It is now possible to setup a Network Load Balancer and allocate one or more Elastic IP Addresses to it (one per Availability Zone). The Network Load Balancer can have an Application Load Balancer as a target. The Application Load Balancer would target the Elastic Beanstalk. An A record can then be created in the external DNS for each Elastic IP Address of the Network Load Balancer.
If you don't need the functionality that the Application Load Balancer provides, you may be able to target Elastic Beanstalk or whatever application directly from the Network Load Balancer.
Since AWS ELB's only offer DNS Record (Instead of IPs) you need to use a CNAME mapping. However with DNS, CNAMEs do not allow root domain to point to it. To overcome this AWS has provided Alias Records (Custom implementation to AWS) to point root domain to ELBs.
If your client want to use their nameservers still you can use, AWS Route53 in between to solve this with following steps.
First create a Public Hosted Zone in Route53 for your domain.
Then create a record set inside the Hosted Zone for the root domain to point to the ELB with Type = A - IPv4 Address, Alias = Yes with ELB CNAME as for the Alias value.
I have a domain name hosted on bigrock.in pointed to an Amazon EC2 instance using Route 53. The four nameservers generated are placed in bigrock and it is working fine.
Now I have created a subdomain of the domain in bigrock and I want it to point to my application in another EC2 instance in another AWS account. Is this possible?
Yes. The AWS account that is currently controlling your domain name with Route 53 must be used, but it can be pointed to anything on the Internet.
Steps:
In the AWS account with the "other" EC2 instance, create an Elastic IP Address and assign it to the EC2 instance. This will ensure that its IP address does not change when the instance is stopped and started.
In your existing Route 53 configuration (in the original account), create a Record Set for the sub-domain (eg images.example.com) of type A and enter the Elastic IP Address as the value.
Once you have set the nameserver for your domain to point to Route53, you no longer need to control the subdomains from bigrock services. Just add them to your Route53 dashboard, and they'll be reflected live.
I have an application deployed via amazon Elastic Beanstalk, and a domain bought on dataflame.co.uk
Now, what I want to do is to make the domain name on dataflame resolve to my application on Elastic Beanstalk.
I figured out that there's two ways I can do that:
1 - create an hosted zone on Route 53 and a traffic policy that will resolve the DNS to my EB application, and then modifying the NAME SERVERS pointer on dataflame to make it point to the Route 53 ones.
Cost of the operation: 50$/month
2 - migrate the domain from dataflame to Route 53, this is what amazon suggests, but then I still don't know if there will be the need to create an hosted zone with traffic policies even in this scenario.
Can somebody enlighten me on that? or hint some alternatives to me?
Route 53 contains 2 different services:
DNS resolution, and
Domain name registration
You can use both of these services, or one without the other. They are not dependent on each other.
DNS Resolution
If you want Route 53 to resolve your domain to your Elastic Beanstalk application, then you must create a hosted zone for it with appropriate record set entries.
Using Route 53, you could create CNAME records pointing to your EB app's endpoint. Or you could create an ALIAS record pointing to your EB app.
Costs for Route 53 DNS resolution is not $50 per month. The cost is $0.50 per hosted zone per month + traffic. See http://aws.amazon.com/route53/pricing/
Since dataflame also provides DNS resolution service, you could avoid Route 53 completely and use dataflame to resolve your domain name. To do this, you would create a CNAME entry in dataflame pointing to your EB app's endpoint.
Domain Registration
You can choose to transfer your domain from dataflame into Route 53, but this would be simply for registration purposes. You would pay for the transfer, then the annual domain cost (very similar to what you're paying at dataflame). If you do this, you still need to create a hosted zone.
If you want to keep your domain registration at dataflame, but you want to use Route 53 for DNS resolution, then you would edit your domain registration (in dataflame) and set the domain name servers to be those listed in your Route 53 hosted zone.
I have a domain registered with namecheap and its DNS records are managed by AWS Route 53. Currently the domain points to a regular EC2 instance. I'd like to get a subdomain set up pointing to a separate EC2 instance (specifically, an Elastic Beanstalk instance). I've got the Beanstalk instance set up (so if I visit the elastic IP for that instance, everything works fine).
THe problem is, all the docs I've seen on adding a subdomain to Route 53 imply that the parent domain's DNS records are still managed by the registrar. I'm unclear as to where I need to add the new NS records for the subdomain in order to have it point to the right thing.
Here is an example of a domain hosted at namecheap.com, DNS handled by route 53, website hosted on aws ec2 instance and the email server is hosted at Rackspace email.
Your situation is pretty close to this, so you should be able to follow this example and change to your specifics:
I'm using EC2 of Amazon to host a website built in JSP :
http://ec2-50-17-144-64.compute-1.amazonaws.com:8080/p2p
And I bought this domain:
www.p2pbrasil.com
How can I redirect www.p2pbrasil.com to my website in Amazon EC2 ?
When someone type www.p2pbrasil.com it redirects to http://ec2-50-17-144-64.compute-1.amazonaws.com:8080/p2p ?
You need to do two things
In the Amazon Web Service admin panel, create an elastic IP in the same region as your instance and associate that IP with your that instance (IPs cost nothing while they are associated with an instance, but do cost if not).
Add a A record to the DNS record of your domain mapping the domain to the elastic IP address assigned in (1). Your domain provide should either give you some way to set the A record (the IP address), or it will give you a way to edit the nameservers of your domain.
If they do not allow you to set the A record directly, find a DNS management service like ZoneEdit, register your domain as a zone there and ZoneEdit will give you the nameservers to enter in the admin panel of your domain provider. You can then add the A record for the domain in ZoneEdit.
I only mention ZoneEdit because the basic service is free, you could also use Amazon route 53 or a similar pay-for service, if you preferred.
Create an Elastic IP on the AWS Panel, then associate it to your instance.
Then use a DNS management service to add your domain and Ip address (Elastic IP), then on the domain provider panel add the DNS provided from the DNS management service.
I recommend EntryDNS which is actually free.
As you have your server on AWS best option is to use Route53 hosted zone.By doing this you can manage all your DNS entries using AWS. In future if you plan to use ELB's for your application, you can various traffic routing options using Route53.
Create Hosted Zone and get the name servers.
Replace current name servers with AWS nameservers from your Domain registrars DNS entries.
Create an A record in AWS hosted zone and give your servers IP (Elastic IP) as value.
For detailed instruction, you can follow this blog post. Mapping Domain Name to EC2 Server
Assuming this is a hobby website and your domain registrar isn't AWS.
If your registrar (for example godaddy.com) provides a DNS manager you simply need to add a CNAME record for www that points to the aws public DNS record for your instance. For example ec2-50-17-144-64.compute-1.amazonaws.com
This will make http://www.p2pbrasil.com display the same content as http://ec2-50-17-144-64.compute-1.amazonaws.com
Doing it this way you don't have to pay for an elastic IP, which is a dedicated resource. Your IP on your ec2 instance shouldn't change but could if you restart your instance.
Put the public IP from your EC2 instance as an A name to your root domain in Route 53 hosted zone.
This change might take some time.