Akhil Dev

How to Install WordPress on AWS: Detailed, Step-by-Step Guide

Launch and configure a WordPress instance

The first thing you need to do is set up an AWS EC2 instance. EC2 instances are ‘simple’ virtual servers, perfect for your first AWS project.

To launch an instance, look for the Launch a virtual machine option on your console’s main screen:

Next, you need to select what type of instance to launch. To keep things simple, look for the AWS Marketplace option on the left-hand menu.                                                                                                                                    The marketplace includes hundreds of pre-built machine configurations you can use.

If you use the search feature to look for “WordPress” setups, you’ll find over 100 different configurations to choose from.  In the list, look for the WordPress Certified by Bitnami and Automattic option:


Clicking on Select will show you the details for this configuration as well as the hourly fees for different levels of instances:


Once you click on continue, you get to decide on the kind of instance you want to use to install WordPress on AWS.

At the bare minimum, you want an instance with 2 GB of RAM. A t2.small setup is a good option if you’re on a tight budget. Otherwise, go with t2.medium, which includes 2 CPUs and 4 GB of RAM.

f you know you’re going to need better performance and you’re already familiar with virtual private servers (VPS), feel free to go with whichever option you prefer. The decision is based on your needs and goals.

After selecting an instance, you get to review its configuration. If this is your first time configuring a VPS, you should leave the default settings, which will run WordPress without any problems:

If you want to change things away from the defaults, we recommend taking a close look at the AWS documentation before you make any changes.

When you’re ready, click on Next to select how much storage you want. AWS bills you for additional storage, which is worth remembering. By default, your instance will include 10 GB:

Finally, you can review your configuration, and click on the Launch button.

At this stage, AWS will ask if you want to create a ‘key pair’ you can use to SSH into your server. We recommend creating a new pair since it may come in handy down the road.

Now let’s proceed to the launch, which will take a few minutes while AWS gets everything ready.

Access your WordPress instance and find its public IP

To access your new instance, return to the AWS console home and look for the Services tab at the top of the screen, then select the EC2 option:

On the next page, look for the Running Instances option under the main menu:

You have a single instance running at this point. If you select it, you’ll notice it lists the instance’s public IP under its details:

If you enter the IP address into your navigation bar, you’ll see a brand new WordPress website – yours!

Your WordPress website is ready to use now.

However, before you do anything else, you’ll want to map a domain to your IP address, so everyone else can access it.

Point your domain towards your AWS instance

The specifics for this step will depend on which domain name registrar you use. However, in broad terms, you’ll want to set up an ‘A record’ that maps a domain you own towards your AWS instance’s public IP address.

Let’s use Namecheap as an example. You can select any of the domains you own and access its settings. Once inside, look for the Advanced DNS tab:

On the next screen, you can select the ADD NEW RECORD option:

Now select A Record and set the Host option to www. Finally, enter your instance’s IP address under the corresponding field, and set the TTL option to Automatic:

Save the changes, then wait for them to propagate. After a few hours, you should be able to access your instance through its domain name.

In the meantime, go ahead and get to work on configuring your settings, choosing a theme, and many more tasks!


Leave a Comment

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