Amazon S3 Website https : Hosting a static website using Amazon S3
You can use Amazon S3 to host a static website. On a static website, individual webpages include static content. They might also contain client-side scripts.
By contrast, a dynamic website relies on server-side processing, including server-side scripts such as PHP, JSP, or ASP.NET. Amazon S3 does not support server-side scripting, but AWS has other resources for hosting dynamic websites.
You can use the AWS Amplify Console to host a single page web app. The AWS Amplify Console supports single page apps built with single page app frameworks (for example, React JS, Vue JS, Angular JS, and Nuxt) and static site generators (for example, Gatsby JS, React-static, Jekyll, and Hugo).
When you configure your bucket as a static website, the website is available at the AWS Region-specific website endpoint of the bucket. Website endpoints are different from the endpoints where you send REST API requests.
Depending on your Region, your Amazon S3 website endpoint follows one of these two formats.
- s3-website dash (-) Region ‐
- s3-website dot (.) Region ‐
These URLs return the default index document that you configure for the website.
For your customers to access content at the website endpoint, you must make all your content publicly readable. To do so, you can edit the S3 Block Public Access settings for the bucket. Then, use a bucket policy or an access control list (ACL) on an object to grant the necessary permissions.
Amazon S3 website endpoints do not support HTTPS or access points. If you want to use HTTPS, you can use Amazon CloudFront to serve a static website hosted on Amazon S3.
Requester Pays buckets do not allow access through a website endpoint. Any request to such a bucket receives a
403 Access Denied response.
Website endpoint examples
The following examples show how you can access an Amazon S3 bucket that is configured as a static website.
Example — Requesting an object at the root level
To request a specific object that is stored at the root level in the bucket, use the following URL structure.
For example, the following URL requests the
photo.jpg object that is stored at the root level in the bucket.
Example — Requesting an object in a prefix
To request an object that is stored in a folder in your bucket, use this URL structure.
The following URL requests the
docs/doc1.html object in your bucket.
Adding a DNS CNAME
If you have a registered domain, you can add a DNS CNAME entry to point to the Amazon S3 website endpoint. For example, if you registered the domain
www.example-bucket.com, you could create a bucket
www.example-bucket.com, and add a DNS CNAME record that points to
www.example-bucket.com.s3-website.. All requests to
http://www.example-bucket.com are routed to
Using a custom domain with Route 53
Instead of accessing the website using an Amazon S3 website endpoint, you can use your own domain registered with Amazon Route 53 to serve your content—for example,
example.com. You can use Amazon S3 with Route 53 to host a website at the root domain. For example, if you have the root domain
example.com and you host your website on Amazon S3, your website visitors can access the site from their browser by entering either