Skip to content

Commit 8886f2f

Browse files
committed
Update csgl-lightsail-wordpress.html
1 parent cabdb2a commit 8886f2f

1 file changed

Lines changed: 38 additions & 16 deletions

File tree

projects/csgl-lightsail-wordpress.html

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<h1>WordPress on AWS Lightsail</h1>
5151

5252
<p>
53-
This project documents the migration of a live WordPress business website to AWS Lightsail, including DNS, SSL, static IP configuration, backup design, a real incident, and the redesign of the recovery strategy using automated snapshots.
53+
This project documents the migration of a live WordPress business website to AWS Lightsail, including DNS, SSL, static IP configuration, backup design, a production incident, and the redesign of the recovery strategy using automated snapshots.
5454
</p>
5555
</div>
5656
</section>
@@ -99,7 +99,7 @@ <h2>Architecture (Initial Design)</h2>
9999
The website runs on an Amazon Lightsail instance in the London region using a Bitnami WordPress stack.
100100
</p>
101101
<p>
102-
Traffic is directed to the site through DNS, with a static IP attached to the instance so the endpoint remains stable. SSL is configured for HTTPS, and the site is backed up using snapshots and S3-based backups for recovery.
102+
Traffic is directed to the site through DNS, with a static IP attached to the instance so the endpoint remains stable. SSL was configured for HTTPS, and the original recovery model combined Lightsail snapshots with S3-based backups.
103103
</p>
104104
<p>
105105
This architecture was appropriate because it kept the stack simple while still covering the core production requirements: a fixed public endpoint, encrypted traffic, DNS control, and a practical backup strategy.
@@ -125,8 +125,8 @@ <h2>Key Decisions</h2>
125125
</div>
126126

127127
<div class="decision">
128-
<p><strong>Implement a layered backup strategy using snapshots and S3</strong></p>
129-
<p class="decision-detail"><strong>Why:</strong> Combining Lightsail snapshots with S3 backups provides redundancy and supports recovery from both instance-level and application-level failures.</p>
128+
<p><strong>Implement an initial layered backup strategy using snapshots and S3</strong></p>
129+
<p class="decision-detail"><strong>Why:</strong> The initial design combined Lightsail snapshots with S3 backups to provide redundancy and support recovery from both instance-level and application-level failures.</p>
130130
<p class="decision-detail"><strong>Trade-off:</strong> Adds operational overhead and requires ongoing validation to ensure backups are usable.</p>
131131
</div>
132132

@@ -213,7 +213,7 @@ <h2>Improved Backup Strategy</h2>
213213

214214
<p><strong>New approach:</strong></p>
215215
<ul>
216-
<li>Daily automatic snapshots (7-day rolling window) - Lightsail enforces a 7 day retention period limitation on automatic snapshots</li>
216+
<li>Daily automatic snapshots (7-day rolling window — automatic snapshots in Lightsail are limited to 7 days)</li>
217217
<li>Weekly automated snapshots via Lambda (12-month retention, to bypass the above limitation)</li>
218218
</ul>
219219

@@ -226,10 +226,35 @@ <h2>Improved Backup Strategy</h2>
226226
</p>
227227
</div>
228228

229+
<h2>Platform Migration</h2>
230+
231+
<div class="content-block">
232+
<p>
233+
After AWS announced the retirement of Bitnami-packaged Lightsail blueprints, the site was migrated from the older Bitnami WordPress stack to the official AWS Lightsail WordPress blueprint.
234+
</p>
235+
236+
<p><strong>Migration approach:</strong></p>
237+
<ul>
238+
<li>Built a new official Lightsail WordPress instance in eu-west-2</li>
239+
<li>Migrated the full WordPress site using Duplicator after plugin size limits blocked the initial restore method</li>
240+
<li>Reattached the existing production static IP to avoid DNS propagation and preserve mail-related DNS behaviour</li>
241+
<li>Reconfigured HTTPS manually using Certbot after Lightsail SSL validation issues</li>
242+
<li>Updated the backup Lambda target and verified snapshot automation on the new instance</li>
243+
</ul>
244+
245+
<p>
246+
The migration preserved the live domain, Google Workspace mail flow, contact forms, analytics, SSL, backups and rollback capability.
247+
</p>
248+
249+
<p>
250+
The final platform now runs on the official AWS Lightsail WordPress blueprint with a simpler recovery model, working automated snapshots and reduced operational complexity.
251+
</p>
252+
</div>
253+
229254
<h2>Cost</h2>
230255

231256
<div class="content-block">
232-
<p><strong>Average monthly infrastructure cost (last 3 months):</strong> ~$4.40/month</p>
257+
<p><strong>Typical steady-state infrastructure cost:</strong> ~$4–6/month</p>
233258

234259
<ul>
235260
<li>Lightsail instance → $3.89/month (+ VAT)</li>
@@ -241,10 +266,10 @@ <h2>Cost</h2>
241266
</p>
242267

243268
<p><strong>Previous hosting cost:</strong> £94.80/month (incl. VAT)</p>
244-
<p><strong>Cost reduction:</strong> ~96%</p>
269+
<p><strong>Cost reduction:</strong> ~94-96%</p>
245270

246271
<p>
247-
Costs are based on real usage over several months in production.
272+
Costs temporarily increased during migration, restore testing and snapshot redesign work due to additional Lightsail instances and snapshots running in parallel.
248273
</p>
249274

250275
<p>
@@ -256,17 +281,14 @@ <h2>Outcome</h2>
256281

257282
<div class="content-block">
258283
<p>
259-
The project successfully moved a live business website onto AWS with HTTPS, DNS and full infrastructure control, reducing hosting cost significantly while maintaining a stable production environment. This case study is part of a broader collection of <a href="/projects/">AWS architecture projects</a>.
260-
</p>
261-
262-
<p>
263-
Following a real-world incident, the backup and recovery strategy was redesigned to prioritise fast, reliable restoration using automated snapshots and monitoring.
284+
The project successfully moved a live business website onto AWS, improved its recovery model after a real production incident, and later migrated the platform away from the deprecated Bitnami blueprint to the official AWS Lightsail WordPress stack.
264285
</p>
265286

266287
<ul>
267-
<li>The site is live in production on AWS Lightsail.</li>
268-
<li>Monthly hosting cost was reduced by ~96% compared with the previous managed hosting setup.</li>
269-
<li>Recovery is now based on automated snapshots with monitoring and alerting in place.</li>
288+
<li>The site is live in production on the official AWS Lightsail WordPress blueprint.</li>
289+
<li>HTTPS, redirects, contact forms, analytics and Google Workspace mail flow are working correctly.</li>
290+
<li>Typical monthly hosting cost was reduced by ~94–96% compared with the previous managed hosting setup.</li>
291+
<li>Recovery is now based on Lightsail snapshots, automated weekly snapshots and tested rollback workflows.</li>
270292
<li>The final solution balances simplicity, cost control and operational reliability.</li>
271293
</ul>
272294
</div>

0 commit comments

Comments
 (0)