<?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>Forem: emmanuela Opurum </title>
    <description>The latest articles on Forem by emmanuela Opurum  (@emmao).</description>
    <link>https://forem.com/emmao</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2624076%2F6fd4cdc0-7a5c-4f79-96c4-8d206808bf7b.jpeg</url>
      <title>Forem: emmanuela Opurum </title>
      <link>https://forem.com/emmao</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/emmao"/>
    <language>en</language>
    <item>
      <title>𝗔𝗺𝗮𝘇𝗼𝗻 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝗖𝗼𝗻𝘁𝗮𝗰𝘁 𝗖𝗲𝗻𝘁𝗲𝗿 𝗼𝗻 𝗮 𝟯‑𝗧𝗶𝗲𝗿 𝗔𝗪𝗦 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲</title>
      <dc:creator>emmanuela Opurum </dc:creator>
      <pubDate>Mon, 23 Feb 2026 10:07:36 +0000</pubDate>
      <link>https://forem.com/emmao/--507p</link>
      <guid>https://forem.com/emmao/--507p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzujrmsrbogdiauxmnlt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzujrmsrbogdiauxmnlt.gif" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I designed an architecture that blends a modern 3‑tier web application with a fully integrated Amazon Connect contact center. The goal was to create a seamless support experience where authenticated users can reach an agent instantly, and the agent receives full customer context the moment the call arrives.&lt;/p&gt;

&lt;p&gt;The user journey begins on a web application delivered through Amazon CloudFront and S3. Authentication is handled by Amazon Cognito, which issues a secure JWT token that unlocks the full application experience, including access to support.&lt;br&gt;
All authenticated requests flow through Amazon API Gateway, which validates the token before routing traffic to the application layer running on AWS Fargate behind an Application Load Balancer. The application interacts with DynamoDB for user profiles and S3 for transactional or historical data, keeping the environment scalable, resilient, and fully managed.&lt;/p&gt;

&lt;p&gt;When a user selects “Contact Support,” a Lambda function is triggered behind the scenes. This function calls Amazon Connect APIs to initiate a contact, route the user to an available agent, and pass along the customer context automatically. There’s no need for IVR menus, the system already knows who the user is and what account they’re coming from.&lt;br&gt;
Inside Amazon Connect, additional Lambda functions retrieve customer information from CRM. This data is surfaced directly in the agent workspace, giving the agent everything they need to assist the customer quickly and effectively. Once the interaction ends, the session is logged for analytics and compliance.&lt;/p&gt;

&lt;p&gt;All call recordings and transcripts are stored in Amazon S3, with a lifecycle policy that automatically transitions data after 60 days into S3 Intelligent‑Tiering Flexible Retrieval to optimize long‑term storage costs. Analytics teams can query this data using Amazon Athena and build dashboards in Amazon QuickSight to uncover trends, customer behaviour, and agent performance insights.&lt;/p&gt;

&lt;p&gt;This architecture brings together identity, application logic, customer context, and real‑time support into one cohesive flow. It’s a strong example of how AWS services can be combined to deliver a modern, intelligent, and efficient customer support experience.&lt;/p&gt;

&lt;p&gt;hashtag#AWS hashtag#AmazonConnect hashtag#CloudArchitecture hashtag#Serverless hashtag#AWSCommunity hashtag#SolutionArchitecture hashtag#CloudComputing hashtag#AWSSolutionsArchitect hashtag#TechLeadership hashtag#Fargate hashtag#Lambda hashtag#DynamoDB hashtag#APIgateway hashtag#CloudCareers hashtag#WomenInTech hashtag#TechInnovation&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>aws</category>
      <category>systemdesign</category>
      <category>webdev</category>
    </item>
    <item>
      <title>𝗖𝗵𝗼𝗼𝘀𝗶𝗻𝗴 𝘁𝗵𝗲 𝗥𝗶𝗴𝗵𝘁 𝗖𝗼𝗺𝗽𝘂𝘁𝗲 𝗳𝗼𝗿 𝘁𝗵𝗲 𝗥𝗶𝗴𝗵𝘁 𝗪𝗼𝗿𝗸𝗹𝗼𝗮𝗱</title>
      <dc:creator>emmanuela Opurum </dc:creator>
      <pubDate>Fri, 23 Jan 2026 19:32:27 +0000</pubDate>
      <link>https://forem.com/emmao/-29ic</link>
      <guid>https://forem.com/emmao/-29ic</guid>
      <description>&lt;p&gt;𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻-𝗥𝗲𝗮𝗱𝘆 𝗔𝗪𝗦 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: 𝗖𝗵𝗼𝗼𝘀𝗶𝗻𝗴 𝘁𝗵𝗲 𝗥𝗶𝗴𝗵𝘁 𝗖𝗼𝗺𝗽𝘂𝘁𝗲 𝗳𝗼𝗿 𝘁𝗵𝗲 𝗥𝗶𝗴𝗵𝘁 𝗪𝗼𝗿𝗸𝗹𝗼𝗮𝗱&lt;br&gt;
I designed a real-world, multi-tier AWS architecture that combines EC2, EKS, Lambda, and SQS, mirroring how modern engineering teams build scalable, resilient, and cost-efficient platforms in production.&lt;br&gt;
•Serverless for frontend &amp;amp; lightweight APIs&lt;br&gt;
•Kubernetes (EKS) for scalable microservices&lt;br&gt;
•EC2 Auto Scaling for long-running batch workloads&lt;br&gt;
•Event-driven design with SQS&lt;br&gt;
•CI/CD + GitOps for safe, repeatable releases&lt;br&gt;
•Terraform for full infrastructure automation&lt;br&gt;
•CloudWatch &amp;amp; Prometheus for deep observability&lt;/p&gt;

&lt;p&gt;This design shows how and why teams mix compute models to achieve high availability, operational efficiency, and production-grade reliability, not just how to deploy resources.&lt;br&gt;
hashtag#DevOps hashtag#PlatformEngineering hashtag#CloudEngineering hashtag#AWS hashtag#EKS hashtag#Kubernetes&lt;br&gt;
hashtag#Serverless hashtag#InfrastructureAsCode hashtag#Terraform hashtag#CloudArchitecture&lt;br&gt;
hashtag#SRE hashtag#DevSecOps hashtag#CI_CD hashtag#GitOps hashtag#EngineeringCareers hashtag#Hiring&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3en8721k7nxrt0xyh8r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3en8721k7nxrt0xyh8r.gif" alt=" " width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>𝗗𝗲𝘀𝗶𝗴𝗻𝗲𝗱 𝗮 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻‑𝗥𝗲𝗮𝗱𝘆 𝗠𝘂𝗹𝘁𝗶‑𝗥𝗲𝗴𝗶𝗼𝗻 𝗔𝗪𝗦 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗘𝗞𝗦 | 𝗖𝗜/𝗖𝗗 | 𝗖𝗮𝗻𝗮𝗿𝘆 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁𝘀 | 𝗗𝗥 𝗙𝗮𝗶𝗹𝗼𝘃𝗲𝗿</title>
      <dc:creator>emmanuela Opurum </dc:creator>
      <pubDate>Mon, 19 Jan 2026 22:35:37 +0000</pubDate>
      <link>https://forem.com/emmao/--18j9</link>
      <guid>https://forem.com/emmao/--18j9</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp20jqk5gukphtqbsnftb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp20jqk5gukphtqbsnftb.gif" alt=" " width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I designed a production-grade multi-region AWS architecture to demonstrate how cloud-native platforms achieve high availability, safe deployments, and resilient disaster recovery using Kubernetes and DevOps best practices.&lt;br&gt;
𝗞𝗲𝘆 𝗛𝗶𝗴𝗵𝗹𝗶𝗴𝗵𝘁𝘀:&lt;br&gt;
 • Automated CI/CD pipelines pushing images to Amazon ECR&lt;br&gt;
 • Canary deployments with automated rollback on EKS&lt;br&gt;
 • Multi-region EKS (Active + Warm Standby)&lt;br&gt;
 • Route 53 failover for seamless regional recovery&lt;br&gt;
 • Aurora Global Database for fast failover and low-latency reads&lt;br&gt;
 • S3 Cross-Region Replication for durable storage&lt;br&gt;
 • CloudWatch + Prometheus for observability and rollback triggers&lt;br&gt;
𝗛𝗼𝘄 𝗜𝘁 𝗪𝗼𝗿𝗸𝘀:&lt;br&gt;
 Traffic flows through Route 53 → CloudFront → WAF → ALB → EKS.&lt;br&gt;
 New releases roll out via canary pods in the primary region, while the DR region stays in sync.&lt;br&gt;
 On failure, traffic automatically shifts, clusters scale up, and the database is promoted.&lt;br&gt;
This design reflects how enterprises build resilient, cost-optimised, and secure production systems.&lt;br&gt;
hashtag#AWS hashtag#DevOps hashtag#DevSecOps hashtag#EKS hashtag#CloudArchitecture hashtag#SRE hashtag#PlatformEngineering&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>aws</category>
      <category>cicd</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Modernizing Legacy Systems with AWS: Scalable, Secure &amp; AI-Ready</title>
      <dc:creator>emmanuela Opurum </dc:creator>
      <pubDate>Tue, 29 Jul 2025 21:56:23 +0000</pubDate>
      <link>https://forem.com/emmao/modernizing-legacy-systems-with-aws-scalable-secure-ai-ready-403a</link>
      <guid>https://forem.com/emmao/modernizing-legacy-systems-with-aws-scalable-secure-ai-ready-403a</guid>
      <description>&lt;p&gt;In today’s business landscape, organizations face the critical need to modernize legacy applications to not only enhance performance but also unlock capabilities for real-time analytics, AI integration, and scalable operations.&lt;/p&gt;

&lt;p&gt;As a Solutions Architect, I recently spearheaded the development of an AWS architecture that facilitated a client's transition from a legacy on-premise monolithic system to a cutting-edge cloud-native microservices platform. The primary objective was to align with performance, security, and AI-readiness goals.&lt;/p&gt;

&lt;p&gt;Business Need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High operational costs associated with legacy monolithic systems&lt;/li&gt;
&lt;li&gt;Lack of support for real-time data processing and machine learning workloads&lt;/li&gt;
&lt;li&gt;Downtime during updates and limited horizontal scalability&lt;/li&gt;
&lt;li&gt;Complex compliance and audit trail requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Cloud-Native Solution (Best Practices Aligned):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leveraging Amazon EKS for secure and scalable container orchestration&lt;/li&gt;
&lt;li&gt;Utilizing AWS App2Container to transform monolithic structures into Dockerized workloads&lt;/li&gt;
&lt;li&gt;Implementing Amazon RDS + ElastiCache for high-performance and scalable data layers&lt;/li&gt;
&lt;li&gt;Employing Amazon S3 + AWS Glue + Athena for real-time analytics and ML readiness&lt;/li&gt;
&lt;li&gt;Harnessing Amazon SageMaker for operationalizing AI/ML workloads&lt;/li&gt;
&lt;li&gt;Ensuring security and compliance through IAM, CloudTrail, and GuardDuty for a zero-trust environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outcomes Achieved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;70% reduction in deployment time&lt;/li&gt;
&lt;li&gt;Enhanced real-time analytics and AI-powered decision-making&lt;/li&gt;
&lt;li&gt;Seamless CI/CD integration with AWS CodePipeline&lt;/li&gt;
&lt;li&gt;Robust, secure, and cost-optimized infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Modernization goes beyond mere migration; it entails a holistic transformation of your business model. Explore the architecture diagram below, crafted using Lucidchart.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkicn1boa7el644uvog6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkicn1boa7el644uvog6m.png" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>solutionsarchitect</category>
      <category>awscloud</category>
      <category>cloudnative</category>
      <category>containers</category>
    </item>
    <item>
      <title>Deploying a Static Website with S3 and CloudFront: A Simple and Scalable Solution</title>
      <dc:creator>emmanuela Opurum </dc:creator>
      <pubDate>Wed, 26 Feb 2025 08:30:35 +0000</pubDate>
      <link>https://forem.com/emmao/deploying-a-static-website-with-s3-and-cloudfront-a-simple-and-scalable-solution-k2b</link>
      <guid>https://forem.com/emmao/deploying-a-static-website-with-s3-and-cloudfront-a-simple-and-scalable-solution-k2b</guid>
      <description>&lt;p&gt;When it comes to hosting static websites, Amazon Web Services (AWS) provides an excellent combination of S3 and CloudFront to deliver fast, secure, and scalable content. Whether you're launching a personal portfolio, a blog, or any other static content, AWS offers an ideal solution for high-performance delivery across the globe. In this article, I'll guide you through deploying a static website using S3 and CloudFront.&lt;/p&gt;

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

&lt;p&gt;The architecture follows a simple flow:&lt;/p&gt;

&lt;h3&gt;
  
  
  Diagram Flow:
&lt;/h3&gt;

&lt;p&gt;👤 User (Client Browser) → 🌐 Internet (Request via CloudFront URL) → 🚀 CloudFront (CDN for Fast Delivery) → 📦 S3 Bucket (Stores Website Files) → 🔒 IAM (Access Control) → 📤 CloudFront Delivers Content&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Security Requirement:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The S3 bucket should not be directly accessible from the internet. Instead, access should be restricted to CloudFront only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Set Up S3 Bucket
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;AWS S3 Console&lt;/strong&gt; and create a new S3 bucket.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;bucket name&lt;/strong&gt; is globally unique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disable public access&lt;/strong&gt; to the bucket by keeping the default settings.&lt;/li&gt;
&lt;li&gt;Upload your static website files (HTML, CSS, JavaScript, images, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not enable Static Website Hosting&lt;/strong&gt; as CloudFront will serve the content.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 2: Configure IAM for Secure Access
&lt;/h2&gt;

&lt;p&gt;To restrict direct access to the S3 bucket:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS IAM&lt;/strong&gt; and create an &lt;strong&gt;IAM policy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use the following policy generated by AWS= to allow CloudFront to access your S3 bucket:
&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="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;"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;"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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                   &lt;/span&gt;&lt;span class="nl"&gt;"Service"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cloudfront.amazonaws.com"&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;"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:::your-bucket-name/*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
               &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&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;"StringEquals"&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;"AWS:SourceArn"&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:cloudfront::your-account-id:distribution/your-distribution-id"&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;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;ol&gt;
&lt;li&gt;Attach this policy to your S3 bucket.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 3: Set Up CloudFront Distribution
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS CloudFront Console&lt;/strong&gt; and create a new &lt;strong&gt;CloudFront distribution&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;S3 bucket&lt;/strong&gt; as the origin and configure it:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Origin Access Control (OAC)&lt;/strong&gt;: Enable OAC to restrict access to the S3 bucket.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrict Bucket Access&lt;/strong&gt;: Yes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bucket Policy&lt;/strong&gt;: Update to allow CloudFront access only.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Configure settings for &lt;strong&gt;performance&lt;/strong&gt; and &lt;strong&gt;security&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enable caching&lt;/strong&gt; to improve performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable HTTPS&lt;/strong&gt; for secure content delivery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrict viewer access&lt;/strong&gt; if required.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Deploy the CloudFront distribution and note the &lt;strong&gt;CloudFront domain name&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 4: Test Your Website
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Wait for CloudFront to propagate (can take up to 7-15 minutes).&lt;/li&gt;
&lt;li&gt;Visit your CloudFront &lt;strong&gt;URL&lt;/strong&gt; (&lt;code&gt;https://your-cloudfront-url.cloudfront.net&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Verify that the website loads correctly and that direct access to the S3 bucket URL is &lt;strong&gt;denied&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why This Setup Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Direct S3 access is blocked, ensuring only CloudFront serves your content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: CloudFront caches content at &lt;strong&gt;edge locations&lt;/strong&gt;, reducing latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: AWS handles traffic spikes without additional configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Effective&lt;/strong&gt;: S3 storage and CloudFront’s pay-as-you-go pricing keep costs low.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Deploying a static website using S3 and CloudFront is an efficient, scalable, and secure way to ensure fast delivery of your content worldwide. By combining the reliability of S3 for storage with CloudFront’s global CDN capabilities, you can achieve superior performance for your static website with minimal effort. Whether you're just starting or refining your deployment process, AWS provides a powerful and cost-effective solution.&lt;/p&gt;

&lt;p&gt;Have you deployed a static website using AWS? Share your thoughts and experiences in the comments!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1q3vot4uocdml04yl3r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1q3vot4uocdml04yl3r.png" alt="S3 Image" width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
