| |

How I created my Digital Space with AWS LightSail

Introduction

In today’s digital landscape, a personal website is more than just an online presence, it’s a space for reflection and growth. I usually write a journal for my future self, a place to document my learning journey, challenges, and discoveries. By sharing my notes and experiences publicly, I hope to not only track my own progress but also help others in the community who might be navigating similar paths. If my learnings can save someone else a few hours of debugging or spark a new idea, then this website serves a purpose beyond my own growth.

For years, I used other platforms. While those are ideal platforms – especially if you don’t want to manage your own, want broader reach, or want to indirectly monetise, prefer convenience in exchange for control – I wanted to have my own webspace where it’s under my control and I pay only as much as I need (based on how I configure).

So I decided to build my own personal website using AWS Lightsail and WordPress. Not to over-engineer it. Not to build a multi-region architecture. Just to create something simple, stable, and fully owned.

If you are on a similar path or interested to learn more about creating your own where you own the backend infrastructure, this guide will walk you through what actually matters.

Why AWS Lightsail?

If you want to build a personal website or blog and do most things yourself (like me), you probably don’t need:

  • Full EC2 networking design
  • Load balancers
  • Auto-scaling groups
  • Complex VPC architecture

AWS Lightsail gives you:

  • Fixed monthly pricing (grow as you need, and much cheaper than other web hosting)
  • Pre-configured WordPress image (Bitnami)
  • Static IP support
  • Built-in snapshots

So Lightsail immediately removes 80 percent of the operational complexity. The most important principle here is right-sizing. A personal website does not need enterprise-grade infrastructure.

I must not deny that another important reason for going with AWS is my familiarity with the cloud ecosystem, and there is no single direct “one-to-one” equivalent in Azure or GCP (at least as of today).

Steps 🪜

1. Launch WordPress on AWS Lightsail

Inside the AWS console:

  1. Create a new Lightsail instance
  2. Choose the WordPress blueprint
  3. Select a small instance plan
  4. Deploy

Within minutes, you have a working WordPress installation running Apache, MySQL, and PHP. No manual stack configuration. No dependency management.

2. Attach Static IP

This step is critical.

Without a static IP, your public IP address can change if the instance restarts. That will break your DNS configuration.

Immediately:

  • Allocate a Static IP
  • Attach it to your Lightsail instance

Now your WordPress site has a stable public endpoint.

If you are someone like me who prefers Infrastructure as Code (IaC), you can use a CloudFormation script to achieve all 4 steps mentioned above. Click here to see the code I used. Remember, you may need to change the availability zone and bundle (instance plan) I used. More on bundle names here.

3. Access your Sample WordPress site

NNow you have a static (public) IP and using the IP you can access the sample WordPress site (just go to http://x.x.x.x where x.x.x.x is your static IP) and start modifying it as it suits you by going to http://x.x.x.x/wp-admin

WordPress admin password: Bitnami stores it on the instance. After deployment you can retrieve it via Lightsail console “Connect using SSH”. Look for “bitnami_credentials” and “bitnami_application_password” under the Bitnami user’s HOME directory.

‼️ It’s highly recommended to create a new admin user, log out, log in using the new admin user, and then delete the admin user created as a part of WordPress installation.

My preference was to make necessary modifications (i.e. a home page with a mini intro, a sample blog page) before moving to the next important step where I connected my domain and enabled SSL.

4. Connect your Domain (DNS update)

Now you should be able to go to your website using Lightsail static ip (http, not https as we have not configured encryption yet), it’s time tNow you should be able to access your website using the Lightsail static IP (http, not https as we have not configured encryption yet). It’s time to point your own domain to the static IP. At this stage there are two options:

  1. Buy a new domain with AWS Route 53 (R53) or transfer an existing domain from another domain registrar to R53, create/maintain a new hosted zone, and configure DNS, or
  2. Buy a new domain (if you don’t already have one) with another domain registrar and update DNS there.

In my case, I already had my own domain with another registrar, and I decided to stay there, primarily to avoid costs associated with the hosted zone in Route 53.

If your domain is hosted externally, you only need two key records:

  • An A record pointing root (@) to the Lightsail static IP
  • A CNAME record pointing www to your root domain

That’s it.

If DNS behaves inconsistently during propagation, check authoritative name servers using dig. Local DNS caching can be misleading. This small step avoids hours of confusion.

5. Enable HTTPS / SSL

Running a website without SSL in 2026 is not an option. Bitnami provides a built-in tool called “bncert-tool”.

Run it after connecting to your Lightsail instance with the “Connect using SSH” option, and it will:

  • Configure Let’s Encrypt SSL
  • Set up HTTPS redirection
  • Apply canonical domain configuration
  • Update Apache settings

Once complete, confirm that both:

  • WordPress Address (URL)
  • Site Address (URL)

are updated correctly. Secure sites are indexed faster and trusted more.

In some cases, even after connecting your domain and enabling SSL, WordPress may still redirect to the original static IP address. If that happens, the site configuration needs a small update. Edit the following file on your Lightsail instance: /opt/bitnami/wordpress/wp-config.php

Look for these lines:

define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );

Comment them out and replace them with your domain:

define( 'WP_HOME', '<https://www.yourdomain.com>' );
define( 'WP_SITEURL', '<https://www.yourdomain.com>' );

After saving the file, you should be able to access the WordPress admin console using:

<https://www.yourdomain.com/wp-admin>

This forces WordPress to use your domain instead of the instance IP.

6. Other optional steps

While you are now up and running with your own website where you control and can dictate the underlying platform (😀), this is the time to install some good themes for your WordPress, make changes that look visually professional, and other cosmetic changes as per your liking. If Search Engine Optimization is important for you, you may consider submitting your sitemap to Google for indexing.

What I Learned from Building My Own Site

  • Simplicity beats over-engineering.
  • DNS and SSL configuration matter more than theme design.
  • AWS Lightsail is ideal for hosting WordPress without complexity.
  • Start lean. Build correctly. Iterate later.

Final Thoughts

Lightsail may not be glamorous (with minimal effort like this), but it is predictable, stable, and cost-effective. For a professional personal brand site, that is exactly what I needed, and in fact, this post will be hosted on the same webspace I built with Lightsail.

.


Similar Posts