Here I bring together the articles I wrote across five installments on Amazon Lightsail.
Lightsail and the Drupal Instance.
The work covered in this series involved installing a packaged Drupal instance on Lightsail, AWS's VPS service, and carrying out the configuration needed to get a website up and running.
The service and instance I selected are as follows.
- Amazon Lightsail // $12.00/month — 2 GB memory, 2 vCPUs, 60 GB SSD, 3 TB transfer — free for 3 months
- Bitnami Package For Drupal For AWS Cloud // Included in the Lightsail price above.
- AWS Identity and Access Management // IAM — no additional charge.
- Route 53 // Domain registration $14.00/year
- Route 53 // Hosted zone $0.50/month
- Lightsail // Snapshot storage $0.20/month
- Amazon Work Mail $4.00/month — no invoice yet.
- Amazon Simple Email Service // Free for one year — no invoice yet.
AWS Pricing.
I'm including the pricing here for reference. The services that actually generate invoices are Lightsail at $12/month and WorkMail at $4/month as the main items, with the Route 53 hosted zone at $0.50/month and the Lightsail snapshot at $0.20/month, putting the monthly operating cost at $16.70 + tax of $1.67.
I'm still getting my head around how AWS billing works since I've only just started, but costs haven't climbed as high as I'd feared. With Lightsail free through the end of the year, regular billing kicks in from January onward at $18.37/month — at an exchange rate of $1 = ¥150, that works out to just under ¥2,800 per month.
There may be slightly cheaper options available domestically for the same level of service, but when I factor in system stability, scalability, and flexibility, it's by no means expensive.
The management console interface and the sheer number of fine-grained instances can be overwhelming at first, but once you understand that AWS's ability to scale up or down by the hour and expand or contract seamlessly without downtime is precisely why they bill that way — the pricing model starts to make sense. The freedom to build out or scale back a system quickly and at low risk is something domestic hosting simply can't match.
1. A Summary of the Work Carried Out.
Here's a breakdown of everything I did, laid out as a list. Written out in full it can feel long and complicated, but the actual work involved is fairly straightforward — nothing especially difficult. Because this was my first time using AWS, the articles grew longer than they might otherwise, since I was also writing about the terminology and conventions as I went.
1-1. Registering with AWS and Configuring the Execution User.
Registering with AWS and setting up the execution user.
#C05 AWS Registration and IAM Setup
- Register with AWS
- Create an execution user in IAM
- Register the required instances under the execution user
1-2. Installing the Drupal Instance on Lightsail.
Once AWS registration and the execution user are set up, I log in as the execution user and install Lightsail with Drupal. The installation itself is very straightforward: select the region, select the package, choose a Lightsail plan, and run the install — it completes in a matter of minutes, and the Drupal instance appears in the Lightsail console.
#C06 Installing Drupal on Lightsail
- Evaluate Lightsail and available packages
- Select a region
- Decide on Lightsail with the Bitnami Drupal instance
- Choose a Lightsail plan
- Install
1-3. Registering a Domain and Going Live.
With the Drupal instance up, I assign a static IP address and attach a domain. I use the DNS included with the Drupal instance, confirm the AWS name servers configured by default, and write the primary domain and subdomains as A records in DNS to complete the domain assignment.
I generate a private key for SSH access to the Drupal instance and verify the connection. Once connected, I retrieve the root password to access the Drupal admin console and complete the initial setup.
To configure SSL, I SSH into the Drupal instance and run bncert-tool as specified by Bitnami to complete the SSL setup, at which point the Drupal website is ready to go live.
#C06 Installing Drupal on Lightsail
- Register a domain through Route 53
- Attach a static IP to the installed Drupal instance
- Configure domain information in the Drupal instance's DNS
- Configure SSH for logging in to the Bitnami instance
- Confirm the login credentials for the installed Drupal
- Log in to the Drupal admin console and complete initial setup
- Build the website in Drupal
- Configure SSL
1-4. Amazon Work Mail.
I create an email account on the domain I registered. I use Amazon WorkMail for this — a service similar to Gmail in Google Workspace, where you set up an organization tied to your domain and register users within that organization to issue email accounts.
To make the email account on the registered domain usable, I register an organization, assign the domain to it, and write the mail-related DNS records — MX records, CNAMEs, and so on. Once the configuration is complete, I register a user and issue an email account. A web-based mail client is provided by default, but it's English-only, so I configure the Mail app on my Mac and iPhone as well.
- Get started with Amazon WorkMail
- Choose a region
- Set up an organization
- Assign the domain to the organization and configure DNS
- Register a user and issue an email account
- Change the sending address domain from the AWS default to the custom domain
- Test the email account
- The default web mail client is English-only, so configure the Mail app on Mac and iPhone
1-5. Setting Up the Contact Form.
With the email account on the registered domain ready to use, I configure the contact form. I use Drupal's built-in contact form and carry out the required settings. Since the contact form is going live, I also set up reCAPTCHA for security.
A mistake of mine: I had registered with a personal address before obtaining the domain, and after registering the domain I set the contact form recipient to the newly obtained domain email — which triggered a send error.
The fix is to change the registered user account's email to the domain email, and set the contact form recipient to the same domain email — which resolves the issue and completes the contact form setup.
In my case, I hit the error and took a different route: I installed SMTP Authentication Support, the Drupal module for using an external SMTP, and configured SMTP authentication in Amazon Simple Email Service, so the contact form now sends and receives through SES. It's a roundabout result of the error — a blessing in disguise — and the setup is overkill for a website of this size, but since I now have access to a high-performance mail system I'll keep using it for a while.
#C08 Setting Up the Contact Form and SES
- Configure the contact form
- Configure Google reCAPTCHA v3
- Verify the contact form and trace the error
- Configure the Drupal external SMTP module
- Configure Amazon SES
- Verify again
- Realize the error was caused by a simple mistake and fix it
- Verification complete
2. My Impressions of Using AWS.
With all of the above in place, I've used AWS to install Drupal on Lightsail, completed the necessary configuration, and the website is live. What I didn't expect was that a mistake I made caused a contact form error, which led me to configure an external SMTP — and in turn to start using SES, something I wouldn't have thought to set up on my own. Through that detour, I've come to appreciate just how capable AWS's systems are.
2-1. A System That Works for Individual Use Too.
I had an image of AWS as a large-scale cloud system you'd engage specialists to set up and run — something outside the scope of personal use. Actually using it changed that. It turned out to be an excellent and very usable system for individual users as well. There's a learning curve — you need a reasonable grasp of the system and a willingness to work through English documentation — but even a beginner like me can get there with a bit of patience. One concern from the outside is that the pricing can seem hard to read, but actually using it makes clear that while the pricing structure is different from domestic hosting companies, it's by no means difficult to understand.
2-2. A Flexible Pricing Model.
The fact that billing is calculated in hourly units does make it harder to predict monthly costs at a glance, but once you understand that this is tied to AWS's high availability — the ability to adjust scale flexibly by the hour and expand or contract seamlessly without stopping the system — the pricing makes sense and the system's flexibility becomes clear.
I'm still far from using AWS to its full potential, and my understanding of its core capabilities and intended use cases is still developing — but discovering that it's an accessible and forgiving system that even a beginner like me can get into is the biggest takeaway from getting started with it this time.
The articles so far have covered everything from the local Mac environment through installation and configuration on AWS. From here, I plan to move on to Drupal-specific content. My Drupal setup is very straightforward — I keep the modules to a minimum. The next article introduces the modules I have installed.