Suppose that you want to host your static website on Amazon S3. You registered a domain (for example,, and you want requests for and to be served from your Amazon S3 content. Whether you have an existing static website that you want to host on Amazon S3, or you are starting from scratch, use this example to learn how to host websites on Amazon S3.


Before You Begin
Step 1: Register a Domain
Step 2: Create and Configure Buckets and Upload Data
Step 3: Create and Configure Amazon Route 53 Hosted Zone
Step 4: Switch to Amazon Route 53 as Your DNS Provider
Step 5: Testing
Before You Begin
As you walk through the steps in this example, you work with the following services:

Domain registrar of your choice – If you don’t already have a registered domain name, such as, create and register one with a registrar of your choice. You can typically register a domain for a small yearly fee. For procedural information about registering a domain name, see the registrar’s website.

Amazon S3 – You use Amazon S3 to create buckets, upload a sample website page, configure permissions so that everyone can see the content, and then configure the buckets for website hosting. In this example, because you want to allow requests for both and, you create two buckets; however, you host content in only one bucket. You configure the other Amazon S3 bucket to redirect requests to the bucket that hosts the content.

Amazon Route 53 – You configure Amazon Route 53 as your Domain Name System (DNS) provider. You create a hosted zone in Amazon Route 53 for your domain and configure applicable DNS records. If you are switching from an existing DNS provider, you need to ensure that you have transferred all of the DNS records for your domain.

We recommend that you have basic familiarity with domains, DNS, CNAME records, and A records. A detailed explanation of these concepts is beyond the scope of this guide. Your domain registrar should provide any basic information that you need.

In this example, we use Route 53. However, you can use most registrars to define a CNAME record that points to an Amazon S3 bucket.


All the steps in this example use as a domain name. Replace this domain name with the one that you registered.

Step 1: Register a Domain
If you already have a registered domain, you can skip this step. If you are new to hosting a website, your first step is to register a domain, such as, with a registrar of your choice.

After you choose a registrar, register your domain name according to the instructions at the registrar’s website. For a list of registrar websites that you can use to register your domain name, see Information for Registrars and Registrants at the website.

When you have a registered domain name, your next task is to create and configure Amazon S3 buckets for website hosting and to upload your website content.

Step 2: Create and Configure Buckets and Upload Data
To support requests from both the root domain such as and subdomain such as, you create two buckets. One bucket contains the content. You configure the other bucket to redirect requests.

Step 2.1: Create Two Buckets
The bucket names must match the names of the website that you are hosting. For example, to host your website on Amazon S3, you would create a bucket named To host a website under, you would name the bucket In this example, your website supports requests from both and

In this step, you sign in to the Amazon S3 console with your AWS account credentials and create the following two buckets.


Like domains, subdomains must have their own S3 buckets, and the buckets must share the exact names as the subdomains. In this example, we are creating the subdomain, so we also need an S3 bucket named

To create your buckets and upload your website content for hosting

Sign in to the AWS Management Console and open the Amazon S3 console at

Create two buckets that match your domain name and subdomain. For instance, and

For step-by-step instructions, see How Do I Create an S3 Bucket? in the Amazon Simple Storage Service Console User Guide.

Upload your website data to the bucket.

You will host your content out of the root domain bucket (, and you will redirect requests for to the root domain bucket. You can store content in either bucket. For this example, you host content in the bucket. The content can be text files, family photos, videos—whatever you want. If you have not yet created a website, then you only need one file for this example. You can upload any file. For example, you can create a file using the following HTML and upload it to the bucket. The file name of the home page of a website is typically index.html, but you can give it any name. In a later step, you provide this file name as the index document name for your website.

My Website Home Page

Welcome to my website

Now hosted on Amazon S3!

For step-by-step instructions, see How Do I Upload an Object to an S3 Bucket? in the Amazon Simple Storage Service Console User Guide.

Configure permissions for your objects to make them publicly accessible.

Attach the following bucket policy to the bucket, substituting the name of your bucket for For step-by-step instructions to attach a bucket policy, see How Do I Add an S3 Bucket Policy? in the Amazon Simple Storage Service Console User Guide.

“Principal”: “*”,
] }
] }
You now have two buckets, and, and you have uploaded your website content to the bucket. In the next step, you configure to redirect requests to your bucket. By redirecting requests, you can maintain only one copy of your website content. Visitors who type www in their browsers and those who specify only the root domain are routed to the same website content in your bucket.

Step 2.2: Configure Buckets for Website Hosting
When you configure a bucket for website hosting, you can access the website using the Amazon S3 assigned bucket website endpoint.

In this step, you configure both buckets for website hosting. First, you configure as a website and then you configure to redirect all requests to the bucket.

To configure your buckets for website hosting

Sign in to the AWS Management Console and open the Amazon S3 console at

In the Bucket name list, choose the name of the bucket that you want to enable static website hosting for.

Choose Properties.

Choose Static website hosting.

Configure the bucket for website hosting. In the Index Document box, type the name that you gave your index page.

Choose Save.

Step 2.3: Configure Your Website Redirect
Now that you have configured your bucket for website hosting, configure the bucket to redirect all requests for to

To redirect requests from to

In the Amazon S3 console, in the Buckets list, choose your bucket (, in this example).

Choose Properties.

Choose Static website hosting.

Choose Redirect requests. In the Target bucket or domain box, type

Choose Save.

Step 2.4: Configure Logging for Website Traffic
Optionally, you can configure logging to track the number of visitors accessing your website. To do that, you enable logging for the root domain bucket. For more information, see (Optional) Configuring Web Traffic Logging.

Step 2.5: Test Your Endpoint and Redirect
To test the website, type the URL of the endpoint in your browser. Your request is redirected, and the browser displays the index document for

In the next step, you use Amazon Route 53 to enable customers to use all of the URLs to navigate to your site.

Step 3: Create and Configure Amazon Route 53 Hosted Zone
Configure Amazon Route 53 as your Domain Name System (DNS) provider. If you want to serve content from your root domain, such as, you must use Amazon Route 53. You create a hosted zone, which holds the DNS records associated with your domain:

An alias record that maps the domain to the bucket. This is the bucket that you configured as a website endpoint in step 2.2.

Another alias record that maps the subdomain to the bucket. You configured this bucket to redirect requests to the bucket in step 2.2.

Step 3.1: Create a Hosted Zone for Your Domain
Go to the Amazon Route 53 console at and then create a hosted zone for your domain. For instructions, go to Creating a Hosted Zone in the

The following example shows the hosted zone created for the domain. Write down the Route 53 name servers (NS) for this domain. You will need them later.

Step 3.2: Add Alias Records for and
The alias records that you add to the hosted zone for your domain maps and to the corresponding S3 buckets. Instead of using IP addresses, the alias records use the Amazon S3 website endpoints. Amazon Route 53 maintains a mapping between the alias records and the IP addresses where the S3 buckets reside.

For step-by-step instructions, see Creating Resource Record Sets by Using the Amazon Route 53 Console in the Amazon Route 53 Developer Guide.

The following screenshot shows the alias record for as an illustration. You also need to create an alias record for

To enable this hosted zone, you must use Amazon Route 53 as the DNS server for your domain If you are moving an existing website to Amazon S3, first you must transfer DNS records associated with your domain to the hosted zone that you created in Amazon Route 53 for your domain. If you are creating a new website, you can go directly to step 4.


Creating, changing, and deleting resource record sets take time to propagate to the Route 53 DNS servers. Changes generally propagate to all Route 53 name servers in a couple of minutes. In rare circumstances, propagation can take up to 30 minutes.

Step 3.3: Transfer Other DNS Records from Your Current DNS Provider to Route 53
Before you switch to Amazon Route 53 as your DNS provider, you must transfer the remaining DNS records—including MX records, CNAME records, and A records—from your DNS provider to Amazon Route 53. You don’t need to transfer the following records:

NS records– Instead of transferring these, replace their values with the name server values that are provided by Amazon Route 53.

SOA record– Amazon Route 53 provides this record in the hosted zone with a default value.

Migrating required DNS records is a critical step to ensure the continued availability of all the existing services hosted under the domain name.

Step 3.4: Create A Type DNS Records
If you’re not transferring your website from another existing website, you need to create new A type DNS records.


If you’ve already transferred A type records for this website from a different DNS provider, you can skip the rest of this step.

To create A type DNS records in the Route 53 console

Open the Route 53 console in your web browser.

On the Dashboard, choose Hosted zones.

Choose your domain name in the table of hosted zones.

Choose Create Record Set.

In the Create Record Set form that appears on the right, choose Yes for Alias.

In Alias Target, provide the Amazon S3 website endpoint—for example,

Choose Save Record Set.

Now that you’ve added an A type DNS record to your record set, it appears in the table as in the following example.

Screenshot showing table of record sets in Route 53 console

Step 4: Switch to Amazon Route 53 as Your DNS Provider
To switch to Amazon Route 53 as your DNS provider, contact your DNS provider and update the name server (NS) record to use the name servers in the delegation that you set in Amazon Route 53.

On your DNS provider’s site, update the NS record with the delegation set values of the hosted zone as shown in the following Amazon Route 53 console screenshot. For more information, see Updating Your DNS Service’s Name Server Records in Amazon Route 53 Developer Guide.

When the transfer to Route 53 is complete, verify that the name server for your domain has indeed changed. On a Linux computer, use the dig DNS lookup utility. For example, use this dig command:

dig +recurse +trace any
It returns the following output (only partial output is shown). The output shows the same name servers on the Amazon Route 53 hosted zone that you created for the domain. 172800 IN NS 172800 IN NS 172800 IN NS 172800 IN NS 300 IN CNAME

Step 5: Testing
To verify that the website is working correctly, in your browser, try the following URLs: – Displays the index document in the bucket. Redirects your request to

In some cases, you might need to clear the cache of your web browser to see the expected behavior.

Leave A Comment

Your email address will not be published. Required fields are marked *