AWS: A Simple Cloud Portfolio Website

Vinay Prashanth
2 min readNov 26, 2022

Hello, in this article, I’m going to let you know how I created a simple cloud resume as a hands-on project while learning AWS services which could be found at https://resume.vinayprashanth.com

AWS Services used:

  1. Route 53
  2. CloudFront
  3. Certificate Manager
  4. S3
  5. API Gateway
  6. Lambda
  7. DynamoDB
  8. CodeCommit
  9. CodePipeline

GitHub Repository:

Code files and required contents could be found at https://github.com/prashanthvinay/Project_cloud-portfolio-website

Steps:

First things first, I uploaded all the website files (HTML, CSS and Javascript) into an S3 Bucket with the bucket name same as the domain name to which I wanted end users to be directed. After the files were successfully uploaded to S3 bucket, static website hosting was enabled on the S3 bucket. Then, I modified the S3 bucket policy to allow the end-users to read the contents of the bucket.

Next, created a CloudFront distribution which points to the S3 bucket endpoint with a certificate generated from Amazon Certificate Manager service for the secure https connection. Then, as a best practice, I have created an Origin Access Identity (OAI) user and limited the S3 bucket read access to OAI.

Later, I created a Route 53 hosted zone for my domain and a record set within the hosted zone to the corresponding sub-domain. In my case, as I’ve purchased the domain from Route 53, a hosted zone was automatically created, and I just have to create a record set for my sub-domain pointing to the CloudFrount distribution created earlier.

Now, the basic working model of my website got ready where users were successfully able to read the contents of my website files at https://resume.vinayprashanth.com. However, in order to add an additional feature to track the number of users visiting the profile, I have created an API gateway endpoint which is proxied into a Lambda function which updates and fetches the latest view count from a DynamoDB table. So, each time my webpage loads, it triggers the API GW endpoint created earlier which in turn calls a Lambda function to get the details from DynamoDB table.

Lastly, to enable the continuous deployment for my webpages, I have created a CodeCommit remote repository with the website files and tailored it to commit the changes pushed from local repository to the S3 bucket through AWS CodePipeline service.

Architecture Diagram:

https://resume.vinayprashanth.com

--

--

Vinay Prashanth
0 Followers

Designing and building solutions on AWS cloud :)