When you decide to create your own website you have many options. If you are attempting to keep costs down while still being scalable and efficient, the best option I have found is to use a WordPress Website on AWS Lightsail. There can be a lot of steps in this setup but it is pretty straight forward if you follow this guide. What I really like about this setup is that the upfront costs are minimal and the ongoing costs are also quite cheap. Your costs for this setup are:
- AWS Monthly Cost (First Month Free! $3.50 p/m afterwards)
- Domain Name Cost (Varies)
When I was first creating the WYN website I shopped around quite a bit for a website host and honestly this is the cheapest I found which still had excellent performance. Performance is important to me as I want my website to stay live. So if you are basing it solely on cost based performance, then this is the setup for you. This post will guide you through the processing of setting up your WordPress Site using AWS Lightsail.
To get started, first off you need to create an Amazon Lightsail account which you can do here.
Create an Instance for WordPress on your AWS Lightsail Account
Next you are going to Create a WordPress Instance in Lightsail. This will be your website. To complete this you need to sign in to your Lightsail Console and click “Create Instance” on the Instances tab:
Next you will be selecting your region, which you can either set based on your location or your audience’s location. Ideally you want it to be your audience if at all possible. Next select “Linux/Unix” and then select “Apps + OS” and “WordPress”:
Now you will choose your instance plan. This is how much it will cost you per month. I recommend the cheapest option unless you are expecting a considerable amount of traffic. Another great reason for the cheapest plan is that you get your first month completely free. What plan you ultimately choose is up to you so choose what you need taking your budget into account.
Remember to give your Instance a name which you can do in the next section:
Finally click “Create Instance” at the bottom of the page:
Once this is completed you will have created your server instance for your WordPress website. So far, so good! Now you need to create a Static IP Address and Attach it to your Instance.
Create a Static IP Address and Attach it to your Instance
Next click on “Create Static IP”
Select your WordPress Instance that you want to attach the Static IP you are creating to. This would be what you created in the last section of this post. Using the screenshot below this would be “WordPress-1”. Also remember to give your Static IP a name you can identify later. I would recommend a variation of your domain name. This is so that you can easily identify it later.
Once this is all completed, click “Create” at the end of the page. Now your website has a Static IP address. You can visit your website by inputting this IP address into your web browser and this IP address will always point to your website. If you did not complete this step, the IP address of your website could change. Now this is no longer the case. Awesome job so far!
Retrieve your WordPress Admin Password
By default the admin password that you will use to login to your WordPress account is stored in your WordPress instance. To retrieve it you need to login to your WordPress instance. To accomplish this go to your AWS Lightsail Console and in the “Instances” tab, click on the SSH quick-connect icon as per:
This will open a popup which has your browser based SSH client window. It will look like this:
Once it loads a command input line will appear in this format:
Enter the following text command to retrieve your WordPress password:
The password will appear under the command once you hit enter. Save this password somewhere safe as it is your Admin password for your WordPress website.
Logging into your WordPress Website
Now you have your admin password as well as changed your WordPress website to use a static ip address. So far this is great. Lets keep this ball rolling and get you logged into your WordPress website. To accomplish this you need to open a web browser and go to:
If you have forgotten your StaticIPAddress it is easy to retrieve it. Go to your AWS Lightsail Console and in the “Instances” tab click on the WordPress Instance you have created. This will open a new view that will show you information on your WordPress Instance. If you scroll down to the “CONNECT TO” section, you will see your Static IP address.
Once you input the url above correctly using your Static IP Address, a popup will appear that will ask you to input your username and your password.
In the username input “user” and in the Password box put in the admin password that you retrieved earlier. Finally click “Login”. Now you are logged in to the admin panel of your WordPress website. From here you are free to design your WordPress website however you wish.
At this stage you need a domain name for your website. If you do not use a domain name your website address will be your static IP which is not ideal for many reasons so I would recommend you get a domain name for your WordPress website. If you already have one then awesome. If you do not, there are dozens of sites that you can purchase one from. I recommend finding a domain host that offers you the best value for the domain name you want to use.
For Lightsail to correctly manage your WordPress hosting you will need to transfer your purchased website domains DNS to Lightsail. If you know what all this means then awesome. If you do not, in a nutshell you will be still paying for the domain name from your domain host but Lightsail will be managing the actual domain itself. Your domain host will send the data to Lightsail and Lightsail will take the actions required for your WordPress website to work as intended. It will also allow you to manage your DNS directly on Lightsail as opposed to on your Domain Host. If this sounds complicated, it really isn’t but I do get that if this is your first time it might be overwhelming. My advice is to take it slow and follow this guide. When I originally completed these steps I had little experience with DNS and I was able to complete it without issue so while this may seem daunting it is not as complicated as it looks.
To compete this setup, in your AWS Lightsail Console go to the “Networking” tab:
In this section click on “Create DNS Zone”:
In the next page enter the domain name you have purchased/registered and click “Create DNS Zone”:
You will now see a list of 4 Name Servers. Copy these as you need to add them to your Domain Host Name’s register. Each hosting provider has a slightly different setup to complete this so my advice is to email your Domain Host’s support team and ask for this to be completed for you.
Once this is completed, which you will be able to see by logging into your Domain Hosts DNS console (the Name Servers will be present), you then need to add an A record in Lightsail to point your domain to your WordPress Instance:
- Go to the “Networking” tab in your AWS Lightsail Console
- Under “Global”, click on the DNS Zones
- Next click “Add Record”
- In the drop down select “A record”
- In the Subdomain section add an: @ symbol
- In the Maps to section, add the Static IP you have created for your WordPress Website.
- Finally click the Save icon
Once completed this will transfer the management of your domain’s DNS records to Lightsail. Please be aware that this could take anywhere between 24 and 72 hours to be completed. This is due to how DNS in general is set up as the DNS cache needs to expire. There isn’t really a way to speed this up.
And you are now done. In a future article I will cover how to setup a new free SSL Cert for your AWS Lightsail WordPress Website, suggestions on how to manage your billing more efficiently and more.
Thank you for reading this guide and I hope you find it useful.