Deploy Your Application using AWS Amplify

The last step in almost any software project is deploying your application to end users. If you ever deployed an application before, you know it can be tedious and time-consuming. Luckily by using AWS Amplify, we can streamline this process.

In a previous post, we built a Gatsby blog. I’ll be using this codebase for deployment.


Install Amplify

To get started, we need to install the amplify CLI:

npm install -g @aws-amplify/cli

Configure Amplify

run:

amplify configure

NOTE: this will open your default browser and ask you to log in to your AWS administrator account.

Once authenticated, pick your region:

Set your username: hot-new-blog-amplify

NOTE: this will open your default browser to this page, click the Next: Permissions button:

Next, you’ll see a page like:

You can click the Next: Tags button.

Next:

Click the Next: Review button.

Next:

Click create user.

Next:

Copy the Access key and Secret key. You’ll need to paste these into the terminal for the next step.

Paste in your access key:

Paste in your secret key:

Give your new profile a valid name: blog-amplify:

Initialize Amplify for our project

Next we will setup amplify for our specific project. We will deploy our Gatsby blog using CloudFront and S3.

first run:

amplify init

use these defaults:

In a few moments, you should see:

Add hosting to our Amplify project

We’re almost there. This is the last step before we have a production-ready blog!

Let’s add hosting to our project:

amplify hosting add

Select these options:

Next, run:

amplify publish

NOTE: this step can take 10-15 minutes to complete.

In the background, AWS amplify is using CloudFormation to build out our infrastructure. If you’re curious to see what the template looks like you can browse: amplify/backend/hosting/S3AndCloudFront/template.json

At this point, you should be presented with your production url:

Congrats. You have successfully deployed your blog!

This url is pretty ugly. You’ll probably want to add a CNAME record in your DNS registrar.