Continuous Deployment with Amazon S3

Deploying to an Amazon S3 bucket is pretty straight-forward with CircleCI due to preinstalled support for Amazon’s awscli.


The easiest way to authenticate awscli is to set the Access Key ID and Secret Access Key in your Project’s Settings page on CircleCI. Here you can see an image of what the page looks like and where the navigation link is for CircleCI Docs.

Create a new IAM user specifically for CircleCI. This is best practice for security purposes. You can also authenticate with awscli using other support methods such as environment variables, “profile” files, etc.


To deploy a project to S3, you can use the following command in the deployment section of circle.yml:

aws s3 sync <path-to-files> s3://<bucket-URL> --delete

For example, here is a snippet of a circle.yml file that shows how we deploy CircleCI Docs:

    branch: master
      - aws s3 sync jekyll/_site/docs s3://circle-production-static-site/docs/ --delete