PROJECT 1
STATIC WEBSITE HOSTING ON AMAZON S3
In this project, I built and deployed a static website for a café using Amazon S3, applying real-world security, cost optimization, and disaster recovery best practices.
The goal was not just to host a website, but to understand how AWS services work together to deliver a secure, cost-effective, and highly durable static web solution. Through this hands-on lab, I gained practical experience with S3 static website hosting, data protection, lifecycle management, and cross-region replication.
This project demonstrates my ability to design simple cloud architectures while considering availability, durability, security, and cost efficiency.
Steps Taken
1 Created an S3 Bucket and Enabled Static Website Hosting
Created an Amazon S3 bucket.
Enabled static website hosting on the bucket.
Uploaded the website files (HTML and images).
Accessed the S3 website endpoint to confirm the site was live.
2 Configured Public Access with a Bucket Policy
Added a bucket policy to allow public read access.
Ensured users could view the website without manually setting permissions on each object.
Maintained security by restricting write access.
3 Enabled Versioning for Data Protection
Enabled S3 Versioning to protect against accidental deletion or overwriting.
Tested versioning by uploading updated files and confirming older versions were retained.
This ensured quick recovery from unintended changes.
4 Implemented Lifecycle Policies for Cost Optimization
To manage storage cost effectively:
Moved older object versions to S3 Standard–Infrequent Access (IA) after 30 days.
Automatically deleted previous versions after 365 days.
Balanced durability and availability while minimizing long-term storage cost.
5 Enabled Cross-Region Replication for Disaster Recovery
Created a secondary S3 bucket in a different AWS region.
Enabled cross-region replication to automatically copy all objects.
Improved durability and ensured data availability even if one region experiences issues.
Key Skills Demonstrated
Static website hosting with Amazon S3
Secure public access using bucket policies
Data protection with S3 versioning
Cost optimization using lifecycle rules
Disaster recovery through cross-region replication
PROJECT 1B
Deploying a Dynamic Website with Amazon EC2
Project Summary:
In this project, I deployed a dynamic café website using Amazon EC2, designed to support online orders while allowing developers to safely test new features without affecting live users.
The focus of this lab was to understand real-world deployment workflows, including environment separation, secure application configuration, and multi-region deployment. By separating development and production environments across different AWS Regions, I learned how cloud architecture supports safe deployments, scalability, and business continuity.
This project reflects how dynamic web applications are built, tested, and released in production-ready cloud environments.
Steps Taken
1. Connected to an EC2 Instance and Verified Environment
Connected to an existing Amazon EC2 instance using VS Code IDE.
Analyzed the instance environment.
Verified that the web server was accessible and functioning correctly.
2. Installed and Tested the Web Application
Installed the café web application on the EC2 instance.
Integrated AWS Secrets Manager to securely manage sensitive information such as credentials.
Tested the application to ensure it worked correctly before deployment.
3. Created an Amazon Machine Image (AMI)
Created an Amazon Machine Image (AMI) from the configured EC2 instance.
The AMI served as a reusable blueprint of the application and server configuration.
This ensured consistency across environments.
4. Deployed Development and Production Environments
Deployed the AMI in us-east-1 as the development environment.
Deployed the same AMI in us-west-2 as the production environment.
Enabled safe testing of new features in development before releasing to production.
5. Implemented Multi-Region Deployment Strategy
Used separate AWS Regions to improve isolation between environments.
Reduced risk of downtime and improved resilience.
Supported future scalability and growth of the application.
Key Skills Demonstrated
Deploying dynamic web applications on Amazon EC2
Secure secrets management with AWS Secrets Manager
Creating and using AMIs for consistent deployments
Environment separation (development vs production)
Multi-region deployment for reliability and scalability
Project 1C
Migrating a Database to Amazon RDS
Project Summary
In this project, I migrated a café’s application database from a MariaDB instance running on Amazon EC2 to Amazon RDS, without breaking the application or losing data.
The objective was to understand why databases are better managed as separate, fully managed services rather than running directly on application servers. This lab demonstrated how to decouple application and database layers to improve scalability, reliability, maintainability, and cost efficiency.
By completing this migration successfully, I gained hands-on experience with real-world database migration workflows and learned how managed services simplify operations while improving system design.
Steps Taken
1. Created an Amazon RDS Database Instance
Provisioned an Amazon RDS instance running MariaDB.
Prepared the RDS environment to receive migrated data.
Ensured the database was accessible from the application environment.
2. Exported Data from EC2-Based MariaDB
Used mysqldump to export data from the MariaDB database running on the EC2 instance.
Verified the integrity of the exported data before migration.
3. Migrated Data to Amazon RDS
Connected a SQL client to the Amazon RDS instance.
Imported the exported data into the RDS database.
Confirmed that all tables and records were successfully migrated.
4. Updated Database Connection Using AWS Secrets Manager
Instead of modifying the application’s PHP code, updated database connection details stored in AWS Secrets Manager.
Changed values such as the database endpoint to point to the new RDS instance.
Allowed the application to automatically connect to RDS without redeployment.
5. Decommissioned the Old Database and Tested the Application
Stopped the MariaDB service running on the EC2 instance.
Tested the application by placing new orders.
Verified that all existing orders were still available, confirming a successful migration with no data loss.
Cost Optimization Insight
With the database removed from the EC2 instance:
The EC2 instance can be downsized.
Unused storage can be reduced.
This results in lower operational costs and a more efficient architecture.
Key Skills Demonstrated
Database migration from EC2 to Amazon RDS
Using mysqldump for data export and import
Secure configuration management with AWS Secrets Manager
Decoupling application and database layers
Cost optimization through managed AWS services
Scalable Web Infrastructure for "SmartShop" using the AWS infrastructure.
SmartShop is a fictional mid-sized retail company that wants to expand its business by launching an online store. As they anticipate an increase in web traffic due to marketing campaigns and seasonal sales, SmartShop requires a robust and reliable web infrastructure to ensure smooth customer experiences. As a cloud practitioner, I'm Committed to building a scalable web infrastructure tailored to meet the need of Smart Shop and my goals are to build infrastructure that:
Support anticipated growth with flexible resource allocation.
• Ensure high availability and consistent user experience.
• Implement strong security measures to protect customer data.
• Be cost-effective and optimized for performance Walk with me through this process.
I created a Security Groups to control inbound and outbound traffic to my EC2 is instances. Allow HTTP (port 80) and HTTPS (port 443) traffic from the internet and also Restrict SSH (port 22) access to your IP addresses only Below are pictorial illustration of my security group.
I defined the outbound and inbound rule to Allow HTTP (80) and SSH (22).