Shih-Min Lee's Personal website

dating, chating, food, games, search

Follow me on GitHub

😀 Deploy static websites to S3

Deploying a static website to S3

S3 is a service for you to to store objects in the cloud. You can store any kind of data. You can also store and host your websites there.

First of all, you would need to create a bucket for hosting your website. And then you need to choose Enable web hosting so that AWS would give you an endpoint to serve your website.

And then you need to set the permission to public so that anyone can see the contents in the bucket.

Since we are also trying to let CI take care of deployment for us, we also need to configure the bucket policies so that a specific user such as ci-uploader can list the contents in the bucket and read / write objects in it.

Sample Upload to S3 Script

#!/usr/bin/env bash
BUCKET=www.example.com
DIR=dist/prod/
aws  s3  sync $DIR s3://$BUCKET/ --region us-west-2

On CircleCI you have to add the aws user credentials in the project settings. In this case it is the credentials for ci-uploader user.

You can also run the scripts on your local machine. Once you installed aws-cli on your machine and pre-configure your environment variables AWS_ACCESS_KEY, AWS_SECRET_KEY so that aws-cli would do the things on hehalf of the user ci-uploader and you will have your website up and running in no time.

references:

26 Oct 2016