Deploying a Personal CV Website with S3 and CloudFront
Building and deploying a scalable personal portfolio website using Amazon S3 and CloudFront.
Introduction
In this project I deployed a personal CV website using Amazon S3 for static hosting and Amazon CloudFront for global content delivery.
The objective was to understand:
- static website hosting
- content delivery networks
- secure public access
- performance optimization
- website scalability
- cloud architecture design
This project is especially useful for:
- portfolio deployment
- frontend hosting
- cloud architecture learning
- highly available environments
Services Used
The project uses the following AWS services:
- Amazon S3
- Amazon CloudFront
- Amazon Route 53 (Optional)
- AWS Certificate Manager (Optional)
- Amazon CloudWatch (Optional)
- AWS WAF (Optional)
- AWS Shield (Optional)
Architecture
The architecture consists of:
User
↓
CloudFront
↓
S3 Static Website
Optional services:
Route53
↓
CloudFront
↓
S3
Additional security and monitoring can be integrated using CloudWatch, WAF and Shield.
Configuration
The solution was configured using:
- S3 static hosting
- CloudFront distribution
- Origin Access Control (OAC)
- bucket policies
- cache optimization
Additional concepts explored:
- DNS management
- HTTPS certificates
- monitoring
- DDoS protection
Important Considerations
Some important architecture concepts:
S3 bucket should not be publicly exposed
Best practices:
- use CloudFront OAC
- enable HTTPS
- monitor traffic
- protect against attacks
- use DNS abstraction
Optional improvements:
- Route 53
- CloudWatch
- WAF
- Shield
Lessons Learned
This project helped reinforce:
- static website deployment
- CDN concepts
- content caching
- web security
- scalable architectures
- AWS managed services
References
Final Result
Below is the final deployed architecture.
Output
Project Code
You can find the Terraform code used in this project in the following GitHub directory.


