<?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: HARISH RAJA R</title>
    <description>The latest articles on DEV Community by HARISH RAJA R (@harish_rajar_r).</description>
    <link>https://dev.to/harish_rajar_r</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%2F4125454%2F096f287e-16e9-489b-8a17-11145f67567c.png</url>
      <title>DEV Community: HARISH RAJA R</title>
      <link>https://dev.to/harish_rajar_r</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harish_rajar_r"/>
    <language>en</language>
    <item>
      <title>Cloud Computing Foundations &amp; AWS S3 Static Web Hosting</title>
      <dc:creator>HARISH RAJA R</dc:creator>
      <pubDate>Tue, 15 Sep 2026 06:54:54 +0000</pubDate>
      <link>https://dev.to/harish_rajar_r/cloud-computing-foundations-aws-s3-static-web-hosting-15o9</link>
      <guid>https://dev.to/harish_rajar_r/cloud-computing-foundations-aws-s3-static-web-hosting-15o9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Harish Raja R&lt;/p&gt;

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

&lt;p&gt;Understanding cloud architecture and choosing the right service model is essential for modern web development. Whether you are building monoliths or deploying serverless applications, knowing where your responsibilities lie versus what the cloud provider handles saves time, cost, and infrastructure overhead.&lt;/p&gt;

&lt;p&gt;In this guide, we break down cloud service models using the popular &lt;strong&gt;"Pizza as a Service 2.0"&lt;/strong&gt; analogy, examine core AWS infrastructure and security fundamentals, and walk step-by-step through deploying a static portfolio website using &lt;strong&gt;Amazon S3&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. Demystifying Cloud Service Models: "Pizza as a Service 2.0"
&lt;/h1&gt;

&lt;p&gt;When building applications in the cloud, understanding the &lt;strong&gt;Shared Responsibility Model&lt;/strong&gt; is step zero. Responsibility is divided between two main layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  Customer Responsibility — Blue Layer
&lt;/h3&gt;

&lt;p&gt;The customer is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application data&lt;/li&gt;
&lt;li&gt;Runtime environment&lt;/li&gt;
&lt;li&gt;User access management (IAM)&lt;/li&gt;
&lt;li&gt;Source code&lt;/li&gt;
&lt;li&gt;Guest operating system configurations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Provider Responsibility — Green Layer
&lt;/h3&gt;

&lt;p&gt;The cloud provider is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physical host infrastructure&lt;/li&gt;
&lt;li&gt;Server hardware&lt;/li&gt;
&lt;li&gt;Virtualization layer&lt;/li&gt;
&lt;li&gt;Networking hardware&lt;/li&gt;
&lt;li&gt;Physical datacenter security&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Service Model Spectrum
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service Model&lt;/th&gt;
&lt;th&gt;Pizza Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;On-Premise&lt;/td&gt;
&lt;td&gt;Homemade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IaaS&lt;/td&gt;
&lt;td&gt;Communal Kitchen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CaaS&lt;/td&gt;
&lt;td&gt;Bring Your Own&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PaaS&lt;/td&gt;
&lt;td&gt;Takeaway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FaaS&lt;/td&gt;
&lt;td&gt;Restaurant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SaaS&lt;/td&gt;
&lt;td&gt;Party&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  1. On-Premise / Traditional — Homemade
&lt;/h3&gt;

&lt;p&gt;You maintain full control and management across every layer—from the datacenter facility and hardware to the operating system, runtime, and application code.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. IaaS — Infrastructure as a Service — Communal Kitchen
&lt;/h3&gt;

&lt;p&gt;The provider manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hardware&lt;/li&gt;
&lt;li&gt;Virtualization&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operating system&lt;/li&gt;
&lt;li&gt;Middleware&lt;/li&gt;
&lt;li&gt;Application stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Amazon EC2&lt;/p&gt;

&lt;h3&gt;
  
  
  3. CaaS — Container as a Service — Bring Your Own
&lt;/h3&gt;

&lt;p&gt;The provider manages container runtimes and orchestration engines, while you supply container images and application logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. PaaS — Platform as a Service — Takeaway
&lt;/h3&gt;

&lt;p&gt;The provider manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS patching&lt;/li&gt;
&lt;li&gt;Runtime environments&lt;/li&gt;
&lt;li&gt;Automatic scaling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You focus primarily on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application code&lt;/li&gt;
&lt;li&gt;Dataset management&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. FaaS — Function as a Service / Serverless — Restaurant
&lt;/h3&gt;

&lt;p&gt;FaaS provides on-demand execution of code snippets in response to event triggers, with zero server provisioning or infrastructure upkeep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; AWS Lambda&lt;/p&gt;

&lt;h3&gt;
  
  
  6. SaaS — Software as a Service — Party
&lt;/h3&gt;

&lt;p&gt;SaaS provides fully managed end-user software delivered directly over the web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Workspace&lt;/li&gt;
&lt;li&gt;Microsoft 365&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Core AWS Security &amp;amp; Infrastructure Concepts
&lt;/h1&gt;

&lt;p&gt;Before provisioning public storage, robust security hygiene must be established.&lt;/p&gt;

&lt;h3&gt;
  
  
  Root Account Security
&lt;/h3&gt;

&lt;p&gt;The primary AWS root account should be secured with &lt;strong&gt;Multi-Factor Authentication (MFA)&lt;/strong&gt; immediately upon creation.&lt;/p&gt;

&lt;p&gt;The root account should be reserved strictly for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Billing&lt;/li&gt;
&lt;li&gt;High-level account setup&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IAM Least Privilege
&lt;/h3&gt;

&lt;p&gt;Daily management should be performed using granular &lt;strong&gt;IAM Users and Roles&lt;/strong&gt; configured according to the principle of &lt;strong&gt;least privilege&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This means users and services should receive only the permissions they actually require.&lt;/p&gt;

&lt;h3&gt;
  
  
  Amazon S3 — Simple Storage Service
&lt;/h3&gt;

&lt;p&gt;Amazon S3 is an object storage service engineered for &lt;strong&gt;99.999999999% data durability&lt;/strong&gt;, commonly referred to as &lt;strong&gt;11 nines of durability&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regions &amp;amp; Availability Zones
&lt;/h3&gt;

&lt;p&gt;AWS resources are deployed across geographically isolated infrastructure sites.&lt;/p&gt;

&lt;p&gt;Regions and Availability Zones help provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;li&gt;Fault tolerance&lt;/li&gt;
&lt;li&gt;Geographic isolation&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. Step-by-Step Hands-On: Hosting a Static Portfolio on Amazon S3
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Step 1: Create an S3 Bucket
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;AWS S3 Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create bucket&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose a globally unique bucket name.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;harish-raja-r-14-portfolio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Select your target AWS Region.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step 2: Upload Static Web Assets
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your newly created bucket.&lt;/li&gt;
&lt;li&gt;Upload your static website assets directly to the bucket root.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Typical files include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
CSS files
Images
Other media assets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure that &lt;code&gt;index.html&lt;/code&gt; is available at the root of the bucket.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Enable Static Web Hosting
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Properties&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Scroll down to &lt;strong&gt;Static web hosting&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Enable&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Specify:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;as the &lt;strong&gt;Index document&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Save the changes.&lt;/li&gt;
&lt;li&gt;Note the generated &lt;strong&gt;Bucket Website Endpoint URL&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can use this endpoint to access your static website.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4: Configure Block Public Access Settings
&lt;/h1&gt;

&lt;p&gt;For direct public S3 website hosting:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Permissions&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Locate &lt;strong&gt;Block public access (bucket settings)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Uncheck &lt;strong&gt;Block all public access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Acknowledge the warning/prompt to allow public read permissions.&lt;/li&gt;
&lt;li&gt;Save the changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Security Note:&lt;/strong&gt; Public access should only be enabled when it is actually required. For production deployments, a CloudFront-based architecture can provide a more secure setup.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Step 5: Apply S3 Bucket Policy
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;In the &lt;strong&gt;Permissions&lt;/strong&gt; tab, locate &lt;strong&gt;Bucket policy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Insert the following JSON policy.&lt;/li&gt;
&lt;li&gt;Replace the bucket resource name with your own bucket name.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PublicReadGetObject"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3:GetObject"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:s3:::harish-raja-r-14-portfolio/*"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This policy allows public read access to objects stored inside the specified S3 bucket.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 6: Verify the Live Site
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;S3 Bucket Website Endpoint URL&lt;/strong&gt; in your web browser.&lt;/li&gt;
&lt;li&gt;Verify that the portfolio renders correctly.&lt;/li&gt;
&lt;li&gt;Check that:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;HTML loads correctly.&lt;/li&gt;
&lt;li&gt;CSS styling is applied.&lt;/li&gt;
&lt;li&gt;Images and other media assets load correctly.&lt;/li&gt;
&lt;li&gt;Internal website functionality works as expected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, your static portfolio website should be accessible through the S3 website endpoint.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. Next Steps: Enhancing Performance &amp;amp; Security with CloudFront
&lt;/h1&gt;

&lt;p&gt;While S3 static hosting gets your site online quickly, integrating &lt;strong&gt;Amazon CloudFront&lt;/strong&gt; introduces several important operational advantages.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Global Edge Caching
&lt;/h2&gt;

&lt;p&gt;CloudFront distributes static assets to edge locations around the world.&lt;/p&gt;

&lt;p&gt;This can provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lower latency&lt;/li&gt;
&lt;li&gt;Faster content delivery&lt;/li&gt;
&lt;li&gt;Improved global performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Origin Access Control (OAC)
&lt;/h2&gt;

&lt;p&gt;Origin Access Control can be used to restrict direct public access to your S3 bucket.&lt;/p&gt;

&lt;p&gt;With this architecture, assets can be served through CloudFront while keeping the S3 origin protected.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Custom Domain &amp;amp; SSL
&lt;/h2&gt;

&lt;p&gt;CloudFront can be integrated with a custom domain and &lt;strong&gt;AWS Certificate Manager (ACM)&lt;/strong&gt; to provide SSL/TLS certificates.&lt;/p&gt;

&lt;p&gt;This allows your website to be accessed securely over HTTPS.&lt;/p&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By leveraging &lt;strong&gt;Amazon S3&lt;/strong&gt; for static hosting and adhering to cloud security best practices, you can deploy cost-effective, durable web applications in minutes.&lt;/p&gt;

&lt;p&gt;The combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud service models&lt;/li&gt;
&lt;li&gt;AWS infrastructure fundamentals&lt;/li&gt;
&lt;li&gt;IAM least-privilege principles&lt;/li&gt;
&lt;li&gt;Amazon S3&lt;/li&gt;
&lt;li&gt;Static website hosting&lt;/li&gt;
&lt;li&gt;CloudFront&lt;/li&gt;
&lt;li&gt;Origin Access Control&lt;/li&gt;
&lt;li&gt;SSL/TLS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;provides a strong foundation for deploying modern web applications in the cloud.&lt;/p&gt;

&lt;p&gt;If you're beginning your AWS journey, hosting a static portfolio on S3 is a practical hands-on project that helps you understand how cloud infrastructure, storage, security, and web deployment work together.&lt;/p&gt;

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