<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Monika Senthilkumar</title>
    <description>The latest articles on DEV Community by Monika Senthilkumar (@monika_senthilkumar).</description>
    <link>https://dev.to/monika_senthilkumar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4069451%2F1cc775e7-bca6-4763-9173-7a019b0cd8b2.jpg</url>
      <title>DEV Community: Monika Senthilkumar</title>
      <link>https://dev.to/monika_senthilkumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/monika_senthilkumar"/>
    <language>en</language>
    <item>
      <title>How I Deployed My Personal Portfolio Using Amazon S3 and CloudFront</title>
      <dc:creator>Monika Senthilkumar</dc:creator>
      <pubDate>Wed, 28 Oct 2026 12:57:25 +0000</pubDate>
      <link>https://dev.to/monika_senthilkumar/how-i-deployed-my-personal-portfolio-using-amazon-s3-and-cloudfront-1p2g</link>
      <guid>https://dev.to/monika_senthilkumar/how-i-deployed-my-personal-portfolio-using-amazon-s3-and-cloudfront-1p2g</guid>
      <description>&lt;h1&gt;
  
  
  Deploying My Personal Portfolio Website Using Amazon S3 and AWS CloudFront
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As an Artificial Intelligence and Machine Learning student, I wanted to gain practical experience with cloud computing by deploying my personal portfolio website using Amazon Web Services (AWS).&lt;/p&gt;

&lt;p&gt;Instead of hosting the website only on my local computer, I deployed it using Amazon S3 and Amazon CloudFront. This project helped me understand static website hosting, content delivery, secure origin access, and website updates in a real-world cloud environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://d1eaqmflbam1r6.cloudfront.net/" rel="noopener noreferrer"&gt;https://d1eaqmflbam1r6.cloudfront.net/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Monika280803/monika-cloud-portfolio" rel="noopener noreferrer"&gt;https://github.com/Monika280803/monika-cloud-portfolio&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Objective
&lt;/h2&gt;

&lt;p&gt;The main objective of this project was to host my personal portfolio on AWS and make it publicly accessible through a CloudFront distribution.&lt;/p&gt;

&lt;p&gt;The project demonstrates how cloud services can be used to store website files, deliver content efficiently, and provide secure HTTPS access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML5:&lt;/strong&gt; Used to structure the portfolio website.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS3:&lt;/strong&gt; Used to style the website and create a responsive design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3:&lt;/strong&gt; Used to store the website files, including HTML, CSS, and images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon CloudFront:&lt;/strong&gt; Used as a content delivery network (CDN) to distribute website content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Origin Access Control (OAC):&lt;/strong&gt; Configured to allow CloudFront to access the private S3 bucket.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTPS:&lt;/strong&gt; Used to access the deployed website securely.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;The application follows a simple static website hosting architecture.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The portfolio files are uploaded to an Amazon S3 bucket.&lt;/li&gt;
&lt;li&gt;Amazon CloudFront is configured with the S3 bucket as its origin.&lt;/li&gt;
&lt;li&gt;Origin Access Control (OAC) allows CloudFront to retrieve content from the private S3 bucket.&lt;/li&gt;
&lt;li&gt;Visitors access the website through the CloudFront distribution domain using HTTPS.&lt;/li&gt;
&lt;li&gt;When website files are updated in S3, CloudFront invalidations can be used to refresh cached content.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This architecture separates file storage from content delivery and demonstrates an important use case of AWS cloud services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Developing the Portfolio
&lt;/h3&gt;

&lt;p&gt;I created my personal portfolio using HTML and CSS. The website includes sections such as About Me, Skills, Projects, Education, and Contact.&lt;/p&gt;

&lt;p&gt;The website files include &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, and a profile image.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Uploading Files to Amazon S3
&lt;/h3&gt;

&lt;p&gt;I created an S3 bucket named &lt;code&gt;monika-cloud-portfolio-storage-2026&lt;/code&gt; and uploaded the portfolio files.&lt;/p&gt;

&lt;p&gt;Amazon S3 provides scalable object storage and serves as the origin for my website's content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Creating a CloudFront Distribution
&lt;/h3&gt;

&lt;p&gt;I created an Amazon CloudFront distribution and selected my S3 bucket as the origin.&lt;/p&gt;

&lt;p&gt;I configured Origin Access Control (OAC) so that CloudFront could retrieve files from the private S3 bucket without requiring public read access to the objects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Configuring the Default Root Object
&lt;/h3&gt;

&lt;p&gt;I configured &lt;code&gt;index.html&lt;/code&gt; as the default root object. This allows visitors to access the homepage through the CloudFront domain without specifying the filename in the URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Testing the Deployment
&lt;/h3&gt;

&lt;p&gt;After the distribution was created and deployed, I opened the CloudFront domain in my browser and verified that the portfolio website loaded successfully.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Updating Website Content
&lt;/h3&gt;

&lt;p&gt;During development, I updated the portfolio design in Visual Studio Code. I learned that local changes do not automatically update files stored in S3.&lt;/p&gt;

&lt;p&gt;To publish the latest version, I needed to upload the updated files to S3 and create a CloudFront invalidation when necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges Faced and Lessons Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AWS Account Verification
&lt;/h3&gt;

&lt;p&gt;Initially, I could not create a CloudFront distribution because my AWS account required verification. After AWS confirmed that verification was complete and CloudFront access was enabled, I continued the deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Understanding S3 and CloudFront
&lt;/h3&gt;

&lt;p&gt;I learned that Amazon S3 stores the website files, while CloudFront delivers those files to visitors. They serve different purposes but work together in this architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Updating Cached Content
&lt;/h3&gt;

&lt;p&gt;My first CloudFront deployment displayed an older version of the portfolio. I understood that updating files in Visual Studio Code or GitHub does not automatically update the separate S3 origin.&lt;/p&gt;

&lt;p&gt;The correct workflow is to upload the latest files to S3 and invalidate the relevant CloudFront cache paths if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Learnings
&lt;/h2&gt;

&lt;p&gt;Through this project, I gained practical experience with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hosting static website files on Amazon S3.&lt;/li&gt;
&lt;li&gt;Creating and configuring an Amazon CloudFront distribution.&lt;/li&gt;
&lt;li&gt;Using Origin Access Control to protect a private S3 origin.&lt;/li&gt;
&lt;li&gt;Understanding HTTPS delivery through CloudFront.&lt;/li&gt;
&lt;li&gt;Configuring a default root object.&lt;/li&gt;
&lt;li&gt;Updating website content and managing cached files.&lt;/li&gt;
&lt;li&gt;Troubleshooting deployment and configuration issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building this project gave me an opportunity to apply cloud computing concepts beyond theoretical learning. I gained hands-on experience with Amazon S3 and CloudFront and developed a better understanding of how static websites can be deployed using AWS.&lt;/p&gt;

&lt;p&gt;This is an important step in my journey toward becoming a Cloud and AI Engineer. I plan to continue building practical cloud projects and improving my knowledge of AWS services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for reading!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feel free to explore my portfolio and GitHub repository to learn more about the project.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
