Graeme Hendry AWS Solutions Architect – HTML/CSS

Introduction

This website was developed as a portfolio of AWS Solutions Architect projects using functionality available in the AWS cloud. It shows an explanation of each project in detail and has a contact form to allow interested parties to contact me via a custom email address.

Structure

The website has a landing page with a brief explanation of the pupose of the site, some information about me and a contact form.

A navigation menu in the header takes the visitor to a Projects page which lists all of the available projects so that they can see an overview of my projects. Each project image links to a detail page outlining the purpose of the project and how the project was implemented.

Details

The website is hosted as a static website in an Amazon S3 bucket and published via an Amazon CloudFront distribution. The domain name is managed by Amazon Route 53 with SSL certificate issued by AWS Certificate Manager. Deployment of the website code to Amazon S3 and distribution via Amazon CloudFront is managed from a GitHub repository using GitHub Actions.

When a user asks their browser to access the site, the browser requests the website code using the website URL.

Amazon Route 53 checks the best route for the request and gets the data from the edge location and returns it to the browser. The website domain was registered in Route 53.

Amazon Cloudfront caches the website code from Amazon S3 and supplies it to the relevant edge location. This data is secured using an SSL certificate supplied by Amazon Certificate manager.

The original website files are stored in an S3 bucket with the same name as the website URL. When the developer needs to update the files, he commits the new code to a GitHub repository. This triggers a GitHub Actions workflow that uploads the new files to the S3 bucket and invalidates the CloudFront distribution to clear the cache of the obsolete files. Any new request for the website files causes the cache to be populated with the new code.

Comments

Leave a Reply

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