Static hosting on Amazon S3 - DNS Configuration - dns

I'm working on a little webapp (all client-side) I want to host it on Amazon S3. I've found several guides on this and have managed to create myself a bucket (with the same name as my domain), set it as a website and upload some content.
Where I'm struggling, and where all the documentation starts to get a bit vague, is how to properly configure my DNS.
All my registrar (123-reg) could suggest was web forwarding which gives me mydomain.com.s3.amazonaws.com
What do I have to configure, and where (ie. 123-reg / Amazon) can I get a clean URL?

Sounds like you've done most of the work already. For clarity I'll go over those steps again just to make sure you're set up properly:
Create an s3 bucket using your domain name as the bucket name (your bucket name should be www.example.com if you want your site to be example.com or www.example.com)
Upload your content to the s3 bucket. Choose a consistent name for your website index files (index.html usually). You can also upload a custom page for 404 Not Found errors. Call this 404.html. Give Read permissions to every file in your website so that the public can view it. Don't give any extra permissions to the bucket, just the files within.
Configure your bucket as a website. With the AWS console ( https://console.aws.amazon.com/s3/ ) you can select your bucket, click properties, then select the "Website" tab. Click enabled and set your index document to index.html and your error document to 404.html. You will also need to set your bucket with access permissions to allow access via the web (http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)
Take a note of the "Endpoint" URL in the website configuration tab. This is where your website lives. You can open the link in a new window and you should see your website just as it will look. Click around and make sure everything works as expected.
You MUST use the endpoint address in all steps below. The normal www.example.com.s3.amazonaws.com won't work - you need to use the regional version (http://www.example.com.s3-website-us-east-1.amazonaws.com/)
Now, we can set up the DNS to give you a clean, custom URL.
First, we will map www.example.com to your site.
Using your DNS provider's tools, (123-reg in your case) you need to create a CNAME record to map www.example.com to www.example.com.s3-website-us-east-1.amazonaws.com
The CNAME is the only thing you need if you just want www.example.com. Most people also want example.com to work so we need another step.
example.com is often referred to as a naked domain or the apex record of the domain. The reason it's a problem is that it can't be a CNAME. CNAMEs only work on subdomains like "www." This makes it more difficult to point at s3.
The usual approach is to use a service to automatically redirect any request going to example.com to point to www.example.com. This will then pick up your CNAME record and your site will be served from s3.
The automatic redirect is not possible with plain old DNS so you have to use another service. Some DNS providers offer this service along with their DNS (GoDaddy does, amazon route53 does not. Not sure about 123-reg)
If your DNS provider doesn't do it, there are a few free services. One that I've used is http://wwwizer.com/naked-domain-redirect - it doesn't require any registration or payment.
To use this type of service, you need to create a DNS "A" record for your naked domain. For the wwwizer.com service, you would need to create an A record to point example.com to 174.129.25.170. That's all!
So, with this setup, if a user types example.com into their browser, the following would happen:
DNS query: example.com -> 174.129.25.170 (wwwizer.com's service)
HTTP request to 174.129.25.170 for example.com
174.129.25.170 redirects example.com -> www.example.com
DNS query: www.example.com -> CNAME to www.example.com.s3-website-us-east-1.amazonaws.com
DNS query: www.example.com.s3-website-us-east-1.amazonaws.com -> points to Amazon S3
HTTP request for www.example.com is now served by Amazon S3
Enjoy!

Update 2019
As of today following DNS setting worked for me to get AWS S3 static website working :

I believe you must select all docs in your bucket, right click, and choose "Make Public". You must do this every time something changes in the bucket as well. I then usually right click on bucket, choose properties, choose permissions in right hand pane then add "Everyone as a "grantee" then give them only "list" permissions. The rest of your article is excellent. The part about the naked domain helped me resolve my issues. You can also have the naked domain redirected to the www domain within S3 under "Static Website Hosting" It's probably the easiest way.
Thanks again for all your help.
Tim

From the Advanced DNS screen on your 123-reg control panel
I started by clicking the "Reset DNS" button to the default 123-reg settings.
This gave me the following;
DNS EntryType PriorityTTLDestination/Target
* A 81.xx.xx.xx
# A 81.xx.xx.xx
# MX 10 xx0.123-reg.co.uk
# MX 20 xx1.123-reg.co.uk
I then added this entry
www CNAME www.example.com.s3-website-us-east-1.amazonaws.com
From their Manage DNS guide pdf it says the "# record" refers to "your domain in its purest form with no subdomain" ie the naked domain stackoverflow.com
But it doesn't mention what the "* record" is, I assumed it would be to catch all sub domains and thought it might over ride the CNAME record but this does not appear to be the case.

Related

Azure CDN connect custom domain

I have static website on azure storage, it's connected to azure cdn to have https, and i have my custom domain folla.com.pl I want this domain to point to https://companywebsitecdn.azureedge.net/ which is address of my website on azure cdn. I chose custom domain on cdn configuration site, it asks me to make dns mapping to verify ownership, so i make CNAME cdnverify.folla.com.pl to cdnveriy.companywebsitecdn.azureedge.net and it get me to other window with custom doamin https config. And here's my problem, it get's stuck on second step
How I'm suppouse to configure another mapping to make it work, what i mean is to make folla.com.pl to point to https://companywebsitecdn.azureedge.net/ with https. I can't proivde what i already tried with my dns because it was a lot and i don't remember all of it. Also it's already second try and everytime after failure I have wait 8 hours for another try. Thanks in advance
This is my DNS config
When you try to add your custom domain folla.com.pl in the custom domains settings of Azure CDN endpoint. Before this step, you should have a CNAME record in the following format in the DNS zone.
When you turn on the custom domain https, you don't need to make a CNAME cdnverify.folla.com.pl to cdnveriy.companywebsitecdn.azureedge.net. Read here.
If that CNAME record still exists and does not contain the cdnverify
subdomain, the DigiCert CA uses it to automatically validate ownership
of your custom domain.
If the CNAME record entry contains the cdnverify subdomain, follow the rest of the instructions in this step.
DigiCert sends a verification email to the following email addresses. Verify that you can approve directly from one of the following addresses and read here.
admin#<your-domain-name.com>
administrator#<your-domain-name.com>
webmaster#<your-domain-name.com>
hostmaster#<your-domain-name.com>
postmaster#<your-domain-name.com>
Automatic validation typically takes a few hours. If you don’t see your domain validated in 24 hours, open a support ticket.

Godaddy Domain name to azure static website mapping

I have taken the domain name from Godaddy.
After that, I have chosen static website in azure storage account and added one index.html in blob storage.
The page is accessible from azure's given URL https://xyz.z29.web.core.windows.net.
I want to map that URL to my Godaddy domain name. Below are the screenshot I am trying as given in blob service=> custom domain tab but not getting success.
I followed it but no satisfactory answer given in it.
You don't need the www.yourdomain.com CNAME entry, just the www one. If you don't have CDN, then you don't need the cdnverify.www... CNAME entry either.
You could try going with the secondary solution, using the asverify subdomain. For this, you have to:
Delete records you created in previous attempts
Create a CNAME record asverify.www pointing to asverify.yourstoragename.z29.web.core.windows.net
Wait for a short time (like 5 minutes) so your registration will go live
On the Azure Portal, enter asverify.www.yourdomain.com and select the option below saying Use indirect CNAME validation
Click Save
Let me know if it works or not so we can figure out what next.

Custom domain and how to access site as http://

In Azure, I have purchased a Custom Domain and the configuration has been done automatically - all good till now however the site is accessible only using: www.sitename.com
If I access it using http://sitename.com only, it is not working.
For info, I tried to remove the CNAME however didnt allow.
Suppose I dont want to use the wwww, how can I do ?
Thanks.
If you want to access your website with http://sitename.com, you have to create the A record and enable the A record mapping in the app. For how to map an A record, this doc is for your reference.
1.Copy the app's IP address
2.Create the A record
An A record to map to the app's IP address.
A TXT record to map to the app's default hostname.
3.Enable the A record mapping in the app
The custom domain you configured is not secured. You'd better click on "Add binding" to bind an existing custom SSL certificate to your app. For more details, you can refer to the doc.
The in the DNS for domain sitename.com the A record to is what make http://sitename.com works.
If you want http://www.sitename.com to work you HAVE TO have a www CNAME record.

Add custom domain to Azure web app without validation

I am on a project that is re-platforming a site from a web server to an Azure PaaS web app, in addition the site will have all new content and in some cases new URLs. We have some redirects in place to handle the mapping of old URL's to new ones. I would like to test that these redirects work correctly on my new azure web app. Normally I would update my hosts file to point at the new server, add an IIS binding so the correct website picks it up and go from there. However I don't seem to be able to bind a new hostname ("custom domain") without verifying that I own the new host name. It will just be my internal DNS that I will be altering to re-route my requests. Does anyone know how to add a custom domain in the azure web apps without validating? This doesn't sound like a big ask to me.
Thanks
Will
You can't do it without any verification, but you can do it without pointing traffic away from your existing site to your new site.
To verify you own the domain without redirecting traffic to it yet, create a DNS record called a TXT record with your domain registrar.
the "TXT host" should be
awverify.mysubdomain.mydomain.com
or
awverify.mydomain.com
The "value" should be
myapp.azurewebsites.net
just replace "mysubdomain" and "mydomain" and "myapp" with your specific info.
After you do this, the verification should succeed and you can add the custom hostname.
Here is more info about this: https://learn.microsoft.com/en-us/azure/app-service/manage-custom-dns-migrate-domain
You can use either a CNAME record or an A record to map a custom DNS name to App Service.
We recommend that you use a CNAME for all custom DNS names except a root domain.
If you missed a step or made a typo somewhere earlier, you see a verification error at the bottom of the page.
If you will use A record, you can create a TXT record to map to the app's default hostname .azurewebsites.net. App Service uses this record only at configuration time, to verify that you own the custom domain. After your custom domain is validated and configured in App Service, you can delete this TXT record.
Reference: https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain.

How do i connect my windows azure website with my domain name perfectly?

I did almost everything that have described in the azure documentation briefly.
My domain names that i need to be assigned with my azure website url idaa.azurewebsites.net are mostout.com and www.mostout.com.
When trying to enter my site using any of the links added here, the site loads and works perfectly as i need.
But the problem is with my url which is getting loaded in browser url field while giving mostout.com or www.mostout.com.
It comes with the azure website url every time. What do I do now to get it working?
Make sure to set the CNAME for your service: have the www. name point to the full azurewebsites.net address.
Note that you'll:
need to have a level of service that supports custom domains with Windows Azure Web Sites,
add the CNAME from your www. domain to the azurewebsites domain (same goes for having the naked domain name via an A record or similar)
add the verification names, awverify.www.yourdomain.com and awverify.yourdomain.com
use the Manage Domains function in the portal for the web site to customize that domain name,
Things should just work then.

Resources