The main purpose of this website was to demonstrate a foundational but functional knowledge of Amazon Web Services. Unfortunately, the costs of some AWS services caused me to greatly relegate the complexity of the environment, which will be discussed later.
Determining the function of the website would be another obstacle to cross before I began developing it. Early on I decided that I wanted to implement one of my hobbies into the design, so I decided to make a biographical site of some of my favorite historical figures and write up passages about their achievements. With how much fun I had doing this, I decided to convert this website into an entire portfolio!
Over the summer of my first year at Arizona State University, I made the decision to teach myself Amazon Web Services after seeing the direction our industry was headed in. I soon recieved my AWS Solutions Architect - Associate Certification and began to work on this website using some of the knowledge that I learned. Unfortunately, many of the services I wanted to use to show off what I learned in my studies, I was unable to use because of the pricing which adds up quickly for such a small website. So, I had to manage with what my means were and came up with a more stripped-back and efficient solution!
Outlined above is the AWS solution for deploying new code into an environment. AWS offers a great automated solution themselves for this called AWS Codestar which can be used to make anything from a serverless React web application to a Java Spring web application, the latter of which is what this website is. Using CodePipeline, CodeBuild, and CloudFormation stacks, I am able to automatically pull my code straight from GitHub everytime I commit new changes from my IDE.
Above is my ultra-simplistic networking solution. As discussed before, this solution was created with pricing being the most important factor to be taken into account, behind security. But seeing as Network ACL's and security groups do not cost anything extra, the only thing that suffered was the fail-safe features offered by AWS which I was not able to use in this design. So things such as load balancers needed to be cut out all together, leading me to choose Elastic Beanstalk's single instance option. That being said, my EC2 instances are still inside of an auto scaling group to ensure that the website is able to keep itself up in cases of the EC2 insance crashing.
Thank you for looking through this website! I had a fantastic time developing it and will be updating it regularly! Please feel free to take a look at the GitHub repository for this project!