<?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: TechEazy Consulting</title>
    <description>The latest articles on DEV Community by TechEazy Consulting (@techeazy_consulting).</description>
    <link>https://dev.to/techeazy_consulting</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%2F2041193%2Fa2134f35-95c1-4e56-aa5a-74d5480d53df.jpg</url>
      <title>DEV Community: TechEazy Consulting</title>
      <link>https://dev.to/techeazy_consulting</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techeazy_consulting"/>
    <language>en</language>
    <item>
      <title>Scaling Spring Boot with Auto Scaling Group (ASG) + Elastic Load Balancer (ELB)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Fri, 03 Oct 2025 06:24:09 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/scaling-spring-boot-with-auto-scaling-group-asg-elastic-load-balancer-elb-1293</link>
      <guid>https://dev.to/techeazy_consulting/scaling-spring-boot-with-auto-scaling-group-asg-elastic-load-balancer-elb-1293</guid>
      <description>&lt;p&gt;Deploying a Spring Boot app on &lt;strong&gt;multiple EC2 instances&lt;/strong&gt; with an &lt;strong&gt;Application Load Balancer (ALB)&lt;/strong&gt; works great ✅&lt;br&gt;
But what happens when traffic spikes? Or if one EC2 instance crashes?&lt;/p&gt;

&lt;p&gt;👉 That’s where &lt;strong&gt;Auto Scaling Groups (ASG)&lt;/strong&gt; step in.&lt;/p&gt;

&lt;p&gt;By the end of this guide, you’ll know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an &lt;strong&gt;AMI&lt;/strong&gt; of your Spring Boot app&lt;/li&gt;
&lt;li&gt;Build a &lt;strong&gt;Launch Template&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Configure an &lt;strong&gt;Auto Scaling Group (ASG)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Integrate it with your &lt;strong&gt;Application Load Balancer (ALB)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Auto-scale your application 🚀&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Flow: &lt;strong&gt;Browser → ELB → ASG → EC2 Instances running Spring Boot&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🔑 Pre-requisite
&lt;/h2&gt;

&lt;p&gt;From the &lt;strong&gt;previous blog&lt;/strong&gt;, you should already have:&lt;/p&gt;

&lt;p&gt;✅ 2 EC2 instances with Spring Boot JAR deployed on &lt;strong&gt;port 8080&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ Application Load Balancer (ALB) setup with a Target Group  &lt;/p&gt;


&lt;h2&gt;
  
  
  📦 Step 1: Create an AMI (Golden Image)
&lt;/h2&gt;

&lt;p&gt;We’ll use one existing EC2 as a &lt;strong&gt;base image (AMI)&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;EC2 Dashboard → Instances&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select an EC2 instance where your Spring Boot app is running&lt;/li&gt;
&lt;li&gt;From &lt;strong&gt;Actions → Image and Templates → Create Image&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name it: &lt;code&gt;springboot-ami&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create AMI&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⏳ Wait 8–10 minutes. This AMI will be the &lt;strong&gt;blueprint&lt;/strong&gt; for new EC2s in the ASG.&lt;/p&gt;


&lt;h2&gt;
  
  
  📝 Step 2: Create a Launch Template
&lt;/h2&gt;

&lt;p&gt;Launch Template = Recipe to spin up new EC2s.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;strong&gt;EC2 → Auto Scaling Groups → Create Auto Scaling Group&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Launch Template&lt;/strong&gt;, click &lt;strong&gt;Create new launch template&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fill details:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;springboot-template&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;AMI: Select &lt;strong&gt;My AMIs → springboot-ami&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Instance type: &lt;code&gt;t3.micro&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Key Pair: Same as before&lt;/li&gt;
&lt;li&gt;Security Group: Must allow &lt;strong&gt;22 (SSH), 80 (HTTP), 8080 (Spring Boot)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Add &lt;strong&gt;User Data&lt;/strong&gt; (to auto-start the app):
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; /home/ubuntu
&lt;span class="nb"&gt;sudo nohup &lt;/span&gt;java &lt;span class="nt"&gt;-jar&lt;/span&gt; app.jar &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; app.log 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Create Launch Template&lt;/strong&gt; ✅&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  ⚙️ Step 3: Create Auto Scaling Group (ASG)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Back to &lt;strong&gt;Auto Scaling Group creation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;springboot-asg&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Launch Template&lt;/strong&gt; you just created&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  🌐 Step 4: Configure Network Settings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;VPC → Default VPC&lt;/li&gt;
&lt;li&gt;Subnets → Select available ones (where ALB exists)&lt;/li&gt;
&lt;li&gt;Leave defaults → &lt;strong&gt;Next&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🔗 Step 5: Integrate with Load Balancer
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;On &lt;strong&gt;Load Balancer settings&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Attach to &lt;strong&gt;existing Load Balancer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;Spring Boot Target Group (8080)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;ALB health checks&lt;/strong&gt; for reliability&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  📊 Step 6: Set Group Size &amp;amp; Scaling Policy
&lt;/h2&gt;

&lt;p&gt;Define scaling behavior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Desired capacity&lt;/strong&gt; → &lt;code&gt;2&lt;/code&gt; (start with 2 instances)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimum capacity&lt;/strong&gt; → &lt;code&gt;1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum capacity&lt;/strong&gt; → &lt;code&gt;3&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add a scaling policy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Policy type → &lt;strong&gt;Target tracking&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Metric → &lt;strong&gt;ALB Request Count per Target&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Target Group → &lt;code&gt;springboot-tg&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Target Value → &lt;code&gt;50&lt;/code&gt; (scale out if &amp;gt;50 requests per instance)&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  ✅ Step 7: Review &amp;amp; Create
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Double-check everything&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Auto Scaling Group&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your ASG is now active 🎉&lt;/p&gt;


&lt;h2&gt;
  
  
  🔍 Step 8: Verify Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;EC2 → Instances&lt;/strong&gt; → You’ll see new instances launched by ASG&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;ELB → Target Group → Targets&lt;/strong&gt; → Should show healthy instances&lt;/li&gt;
&lt;li&gt;Try &lt;strong&gt;terminating one instance manually&lt;/strong&gt; → ASG will auto-recreate it!&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧪 Step 9: Load Test Your Setup
&lt;/h2&gt;

&lt;p&gt;To simulate traffic for 5 mins:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ab &lt;span class="nt"&gt;-n&lt;/span&gt; 1000 &lt;span class="nt"&gt;-c&lt;/span&gt; 50 http://&amp;lt;ALB_DNS_NAME&amp;gt;/api/adapt/welcome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Using ApacheBench or any load testing tool)&lt;/p&gt;

&lt;p&gt;🎯 ASG will launch new EC2s automatically if traffic increases.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Final Result
&lt;/h2&gt;

&lt;p&gt;You’ve successfully:&lt;/p&gt;

&lt;p&gt;✅ Created an AMI for your Spring Boot app&lt;br&gt;&lt;br&gt;
✅ Configured a Launch Template&lt;br&gt;&lt;br&gt;
✅ Built an Auto Scaling Group (ASG)&lt;br&gt;&lt;br&gt;
✅ Integrated ASG with your Load Balancer&lt;br&gt;&lt;br&gt;
✅ Enabled &lt;strong&gt;self-healing + scaling&lt;/strong&gt; 🚀  &lt;/p&gt;

&lt;p&gt;Now your app can handle failures and traffic surges without manual effort 💪&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps 🚀
&lt;/h2&gt;

&lt;p&gt;Be interview-ready in the era of &lt;strong&gt;AI &amp;amp; Cloud&lt;/strong&gt; — start your &lt;strong&gt;DevOps journey&lt;/strong&gt; today!  &lt;/p&gt;

&lt;p&gt;💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with &lt;strong&gt;DevOps &amp;amp; Cloud skills&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, &lt;strong&gt;Cloud + AI jobs&lt;/strong&gt; are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 &lt;strong&gt;DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.&lt;/strong&gt;    &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>aws</category>
      <category>asg</category>
      <category>elb</category>
      <category>ai</category>
    </item>
    <item>
      <title>Deploy a Spring Boot App on AWS EC2 with Load Balancer (Step-by-Step Guide)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Sat, 27 Sep 2025 05:10:41 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/deploy-a-spring-boot-app-on-aws-ec2-with-load-balancer-step-by-step-guide-47pe</link>
      <guid>https://dev.to/techeazy_consulting/deploy-a-spring-boot-app-on-aws-ec2-with-load-balancer-step-by-step-guide-47pe</guid>
      <description>&lt;h2&gt;
  
  
  🌍 Introduction
&lt;/h2&gt;

&lt;p&gt;Deploying your application manually on AWS can be time-consuming and error-prone. You might face:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traffic distributed unevenly across instances ❌&lt;/li&gt;
&lt;li&gt;Manual setup of health checks and failover ❌&lt;/li&gt;
&lt;li&gt;Lack of scalability and high availability ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 That’s where &lt;strong&gt;EC2 + ELB (Elastic Load Balancer)&lt;/strong&gt; deployment shines.&lt;/p&gt;

&lt;p&gt;By the end, you’ll understand how to deploy a &lt;strong&gt;Spring Boot app&lt;/strong&gt; on &lt;strong&gt;multiple EC2 instances&lt;/strong&gt;, set up an &lt;strong&gt;Application Load Balancer&lt;/strong&gt;, and route traffic intelligently.&lt;/p&gt;

&lt;p&gt;👉 Flow: &lt;strong&gt;Browser → ELB → EC2 Instances running Spring Boot&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Step 1: Prepare Your Spring Boot App
&lt;/h2&gt;

&lt;p&gt;Before we touch AWS, package your Spring Boot project into a runnable &lt;code&gt;.jar&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn clean package
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll get something like &lt;code&gt;app.jar&lt;/code&gt; in the &lt;code&gt;target/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;✅ We assume the app runs on &lt;strong&gt;port 8080&lt;/strong&gt;&lt;br&gt;
✅ Requires &lt;strong&gt;Java&lt;/strong&gt; and &lt;strong&gt;Maven&lt;/strong&gt; installed locally&lt;br&gt;
✅ Target is &lt;code&gt;.jar&lt;/code&gt; deployment, not Docker&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We used the adaptive-ai-qms Spring Boot app as an example. But you can replace it with any web application and port according to app.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  ⚡ Step 2: Launch EC2 Instances
&lt;/h2&gt;

&lt;p&gt;Let’s spin up two EC2 instances for our Spring Boot app:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS Console → EC2 → Launch Instance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;OS: &lt;strong&gt;Ubuntu Server 24.04 LTS&lt;/strong&gt; (Free Tier eligible)&lt;/li&gt;
&lt;li&gt;Instance type: &lt;strong&gt;t2.micro&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Key Pair: Create/choose one (for SSH access)&lt;/li&gt;
&lt;li&gt;Configure Security Group:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSH (22)&lt;/strong&gt; → Your IP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP (80)&lt;/strong&gt; → Anywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom TCP (8080)&lt;/strong&gt; → Anywhere (for Spring Boot)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 &lt;strong&gt;Launch two EC2 instances&lt;/strong&gt; with the same configuration.&lt;/p&gt;


&lt;h2&gt;
  
  
  📜 Step 3: Install Java &amp;amp; Deploy Spring Boot App
&lt;/h2&gt;

&lt;p&gt;SSH into both instances:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-i&lt;/span&gt; your-key.pem ubuntu@&amp;lt;EC2_PUBLIC_IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install Java:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openjdk-21-jdk &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upload your app using &lt;code&gt;scp&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scp &lt;span class="nt"&gt;-i&lt;/span&gt; your-key.pem app.jar ubuntu@&amp;lt;EC2_PUBLIC_IP&amp;gt;:/home/ubuntu/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the app in the background:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo nohup &lt;/span&gt;java &lt;span class="nt"&gt;-jar&lt;/span&gt; app.jar &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; app.log 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;nohup&lt;/code&gt;: Keeps process running after logout&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;java -jar&lt;/code&gt;: Runs your Spring Boot app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt; app.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/code&gt;: Logs output and runs in background&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Now access your app via:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://&amp;lt;EC2_PUBLIC_IP&amp;gt;:8080/api/adapt/welcome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repeat for the second EC2 instance.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Create an Elastic Load Balancer (ALB)
&lt;/h2&gt;

&lt;p&gt;Now we’ll route traffic to both EC2 instances via a Load Balancer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;EC2 → Load Balancers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Load Balancer → Application Load Balancer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;springboot-alb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Scheme: &lt;strong&gt;Internet-facing&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;VPC: Use &lt;strong&gt;default VPC&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select AZs: Pick where your EC2s are running&lt;/li&gt;
&lt;li&gt;Security Group:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Create a new one: &lt;code&gt;springboot-sg&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Inbound Rules: Allow &lt;strong&gt;HTTP (80)&lt;/strong&gt; and &lt;strong&gt;SSH (22)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Listener Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Protocol: &lt;strong&gt;HTTP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Port: &lt;strong&gt;80&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create Target Group
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Type: &lt;strong&gt;Instances&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;springboot-tg&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Protocol: &lt;strong&gt;HTTP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Port: &lt;strong&gt;8080&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Health check path: &lt;code&gt;/actuator/health/readiness&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Register your two EC2 instances&lt;br&gt;
✅ Attach this Target Group to the Load Balancer&lt;br&gt;
✅ Click &lt;strong&gt;Create Load Balancer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your &lt;strong&gt;ALB is now live&lt;/strong&gt; and routing traffic.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧪 Step 5: Test Your Setup
&lt;/h2&gt;

&lt;p&gt;🎯 Go to &lt;strong&gt;Load Balancer → Description&lt;/strong&gt; tab&lt;br&gt;
📄 Copy the &lt;strong&gt;DNS name&lt;/strong&gt; (e.g., &lt;code&gt;springboot-alb-123456.ap-south-1.elb.amazonaws.com&lt;/code&gt;)&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://&amp;lt;DNS_NAME&amp;gt;/api/adapt/welcome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Welcome to Adaptation Controller - Techeazy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Confirms ELB is routing to healthy EC2 instances&lt;br&gt;
✅ Confirms Spring Boot app is working across both instances&lt;/p&gt;

&lt;p&gt;🛠 You can now explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Manual deployment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Creating AMIs&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Launch Templates with Auto Scaling&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;You’ve successfully:&lt;/p&gt;

&lt;p&gt;✅ Deployed a Spring Boot app on EC2&lt;br&gt;
✅ Set up a Load Balancer to route traffic&lt;br&gt;
✅ Configured health checks to ensure uptime&lt;br&gt;
✅ Created a production-ready architecture for web-scale apps&lt;/p&gt;

&lt;p&gt;👉 Next, pair this setup with &lt;strong&gt;Auto Scaling Groups&lt;/strong&gt; for &lt;strong&gt;true elasticity and high availability&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.&lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>springboot</category>
      <category>aws</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Auto Scaling Groups (ASG) – Beginner’s Guide</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Fri, 12 Sep 2025 06:16:10 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/aws-auto-scaling-groups-asg-beginners-guide-3ffa</link>
      <guid>https://dev.to/techeazy_consulting/aws-auto-scaling-groups-asg-beginners-guide-3ffa</guid>
      <description>&lt;h2&gt;
  
  
  🌍 Introduction
&lt;/h2&gt;

&lt;p&gt;When you run an application on AWS, &lt;strong&gt;manual server management&lt;/strong&gt; can be painful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sudden traffic spikes → servers run out of capacity ❌&lt;/li&gt;
&lt;li&gt;Low traffic hours → paying for unused servers ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 That’s where &lt;strong&gt;AWS Auto Scaling Groups (ASG)&lt;/strong&gt; come in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ASG&lt;/strong&gt; automatically adjusts the number of EC2 instances to match demand. This ensures:&lt;br&gt;&lt;br&gt;
✅ Cost efficiency&lt;br&gt;&lt;br&gt;
✅ High availability&lt;br&gt;&lt;br&gt;
✅ Scalability      &lt;/p&gt;

&lt;p&gt;By the end, you’ll understand:&lt;br&gt;
👉 &lt;strong&gt;Browser → ELB → Auto Scaling Group (dynamic scaling + health checks) → Healthy EC2 Instances&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Step 1: Understand Auto Scaling Group
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;Auto Scaling Group (ASG)&lt;/strong&gt; is a collection of EC2 instances that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scale &lt;strong&gt;out&lt;/strong&gt; (add instances) when demand increases&lt;/li&gt;
&lt;li&gt;Scale &lt;strong&gt;in&lt;/strong&gt; (remove instances) when demand drops&lt;/li&gt;
&lt;li&gt;Replace unhealthy instances automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives you a &lt;strong&gt;self-healing, cost-optimized infrastructure&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Step 2: Learn Key ASG Terminologies
&lt;/h2&gt;

&lt;p&gt;Here are the &lt;strong&gt;basic terms&lt;/strong&gt; you’ll see when setting up ASG:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Launch Template/Config&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Blueprint defining AMI, instance type, key pairs, security groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Desired Capacity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Number of instances you want running normally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Minimum Capacity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lowest number of instances allowed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Maximum Capacity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Highest number of instances allowed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scaling Policy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rules to scale in/out (CPU &amp;gt; 70%, requests/sec, schedule-based)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Health Check&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ensures only healthy instances remain in service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Termination Policy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Decides which instance to remove first when scaling in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Warm Pools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pre-initialized instances for faster scaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Elastic Load Balancer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Commonly paired with ASG to distribute traffic among instances&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📜 Step 3: How ASG Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User&lt;/strong&gt; visits your app → request hits &lt;strong&gt;ELB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;ELB forwards traffic to instances in an &lt;strong&gt;Auto Scaling Group&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;ASG monitors metrics (CPU, requests, custom metrics) via CloudWatch&lt;/li&gt;
&lt;li&gt;When demand increases → ASG launches new instances&lt;/li&gt;
&lt;li&gt;When demand decreases → ASG terminates extra instances&lt;/li&gt;
&lt;li&gt;If an instance becomes unhealthy → ASG replaces it automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 Flow: &lt;strong&gt;Browser → ELB → Auto Scaling Group → Healthy EC2 Instances&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Benefits of ASG
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Scalability&lt;/strong&gt; – Adjusts capacity based on traffic automatically&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;High Availability&lt;/strong&gt; – Distributes instances across multiple AZs&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Cost Efficiency&lt;/strong&gt; – Pay only for the resources you actually need&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Self-Healing&lt;/strong&gt; – Replaces unhealthy instances automatically&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Flexible Policies&lt;/strong&gt; – Scale by schedule, metrics, or custom triggers    &lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Real-World Example
&lt;/h2&gt;

&lt;p&gt;Imagine an &lt;strong&gt;E-commerce website&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You set &lt;strong&gt;min=2&lt;/strong&gt;, &lt;strong&gt;desired=3&lt;/strong&gt;, &lt;strong&gt;max=6&lt;/strong&gt; EC2 instances
&lt;/li&gt;
&lt;li&gt;Traffic spikes during a festival sale → ASG launches 3 more instances (total 6)
&lt;/li&gt;
&lt;li&gt;At midnight, traffic drops → ASG scales back to 3 instances
&lt;/li&gt;
&lt;li&gt;If one instance crashes → ASG replaces it automatically 🎉
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means your app stays &lt;strong&gt;responsive + cost-efficient&lt;/strong&gt; at all times.   &lt;/p&gt;




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

&lt;p&gt;With ASG, you get:&lt;/p&gt;

&lt;p&gt;✅ Right number of instances at the right time&lt;br&gt;&lt;br&gt;
✅ Lower costs during low demand&lt;br&gt;&lt;br&gt;
✅ High availability with automatic healing&lt;br&gt;&lt;br&gt;
✅ Seamless scaling with ELB integration       &lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;For web apps&lt;/strong&gt; – Combine ASG with ALB for best results&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;For scheduled workloads&lt;/strong&gt; – Use scheduled scaling&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;For unpredictable workloads&lt;/strong&gt; – Use dynamic scaling policies      &lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;recommended AWS setup&lt;/strong&gt; for building cost-efficient, highly available, production-grade applications 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.      &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Originally published at &lt;a href="https://blog.techeazyconsulting.com" rel="noopener noreferrer"&gt;https://blog.techeazyconsulting.com&lt;/a&gt; on September 12, 2025.
&lt;/h3&gt;




</description>
      <category>aws</category>
      <category>devops</category>
      <category>elb</category>
      <category>asg</category>
    </item>
    <item>
      <title>AWS Elastic Load Balancer (ELB) – Beginner’s Guide</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 08 Sep 2025 06:44:44 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/aws-elastic-load-balancer-elb-beginners-guide-1bg7</link>
      <guid>https://dev.to/techeazy_consulting/aws-elastic-load-balancer-elb-beginners-guide-1bg7</guid>
      <description>&lt;h2&gt;
  
  
  🌍 Introduction
&lt;/h2&gt;

&lt;p&gt;When you run an application on AWS, having just &lt;strong&gt;one server (EC2 instance)&lt;/strong&gt; is risky:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If that server fails → your app goes down ❌&lt;/li&gt;
&lt;li&gt;If too many users visit → server may crash ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 That’s where &lt;strong&gt;Elastic Load Balancer (ELB)&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS ELB&lt;/strong&gt; automatically distributes traffic across multiple servers (EC2, containers, Lambda). This ensures:&lt;br&gt;
✅ High availability&lt;br&gt;
✅ Scalability&lt;br&gt;
✅ Fault tolerance&lt;/p&gt;

&lt;p&gt;By the end, you’ll understand:&lt;br&gt;
👉 &lt;strong&gt;Browser → ELB (smart routing + health checks) → Healthy Servers (EC2, ECS, Lambda)&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Step 1: Understand ELB Types
&lt;/h2&gt;

&lt;p&gt;AWS provides &lt;strong&gt;different types of load balancers&lt;/strong&gt; for different use cases:&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Application Load Balancer (ALB)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Works at &lt;strong&gt;Layer 7 (Application Layer)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Best for &lt;strong&gt;HTTP/HTTPS traffic&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Supports &lt;strong&gt;content-based routing&lt;/strong&gt; (host, path, headers)&lt;/li&gt;
&lt;li&gt;Example: &lt;code&gt;/api/*&lt;/code&gt; → API servers, &lt;code&gt;/images/*&lt;/code&gt; → image servers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2️⃣ Network Load Balancer (NLB)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Works at &lt;strong&gt;Layer 4 (Transport Layer)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Handles &lt;strong&gt;TCP/UDP/TLS traffic&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Extremely &lt;strong&gt;fast + scalable&lt;/strong&gt; (millions of requests/sec)&lt;/li&gt;
&lt;li&gt;Provides &lt;strong&gt;static IPs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Example: gaming, IoT, high-performance apps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3️⃣ Gateway Load Balancer (GWLB)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Works at &lt;strong&gt;Layer 3 (Network Layer)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;3rd-party appliances&lt;/strong&gt; (firewalls, intrusion detection)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4️⃣ Classic Load Balancer (CLB)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Legacy version&lt;/li&gt;
&lt;li&gt;Works at Layer 4 &amp;amp; 7 (limited features)&lt;/li&gt;
&lt;li&gt;⚠️ AWS recommends using ALB or NLB instead&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡ Step 2: Learn Key ELB Terminologies
&lt;/h2&gt;

&lt;p&gt;Here are the &lt;strong&gt;basic terms&lt;/strong&gt; you’ll see when setting up ELB:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Resource receiving traffic (EC2, Lambda, IP)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Target Group&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A pool of targets (with health checks)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Listener&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Process that checks for connections (protocol + port)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Listener Rule&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Routing conditions (e.g., &lt;code&gt;/api/*&lt;/code&gt; → API group)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Health Check&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ELB test to ensure only healthy servers get traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AZ (Availability Zone)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS data centers where servers run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cross-Zone LB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Distribute traffic across all AZs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sticky Sessions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Keep same user on the same server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security Groups&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Firewall for ELB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Idle Timeout&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Time before idle connections close&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SSL/TLS Cert&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enables HTTPS (via AWS ACM)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📜 Step 3: How ELB Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User&lt;/strong&gt; visits your app (e.g., &lt;code&gt;myapp.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Request goes to &lt;strong&gt;ELB Listener&lt;/strong&gt; (port 80 or 443)&lt;/li&gt;
&lt;li&gt;ELB checks &lt;strong&gt;Listener Rules&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;ELB forwards request to the correct &lt;strong&gt;Target Group&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health Check&lt;/strong&gt; ensures only healthy servers receive traffic&lt;/li&gt;
&lt;li&gt;Response goes back → ELB → user&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 Flow: &lt;strong&gt;Browser → ELB → Healthy Server → ELB → Browser&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Benefits of ELB
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Scalability&lt;/strong&gt; – Auto-scales with traffic&lt;br&gt;
✅ &lt;strong&gt;High Availability&lt;/strong&gt; – Multi-AZ support&lt;br&gt;
✅ &lt;strong&gt;Security&lt;/strong&gt; – SSL/TLS, WAF integration&lt;br&gt;
✅ &lt;strong&gt;Monitoring&lt;/strong&gt; – CloudWatch metrics, access logs&lt;br&gt;
✅ &lt;strong&gt;Cost Efficient&lt;/strong&gt; – Pay-as-you-go pricing&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Real-World Example
&lt;/h2&gt;

&lt;p&gt;Imagine an &lt;strong&gt;E-commerce website&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You run &lt;strong&gt;3 EC2 instances&lt;/strong&gt; in different AZs&lt;/li&gt;
&lt;li&gt;Deploy an &lt;strong&gt;Application Load Balancer&lt;/strong&gt; in front&lt;/li&gt;
&lt;li&gt;A user goes to &lt;code&gt;www.shop.com&lt;/code&gt; → ELB receives request&lt;/li&gt;
&lt;li&gt;ELB checks which server is healthy + least busy&lt;/li&gt;
&lt;li&gt;Routes request → Server responds → User gets page&lt;/li&gt;
&lt;li&gt;If one server crashes → traffic reroutes to healthy ones 🎉&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;With ELB, you get:&lt;/p&gt;

&lt;p&gt;✅ Better performance&lt;br&gt;
✅ Zero downtime (if a server fails)&lt;br&gt;
✅ Intelligent routing&lt;br&gt;
✅ Secure connections&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;For websites → ALB&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;For high-performance TCP apps → NLB&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;For firewalls/security → GWLB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;recommended AWS setup&lt;/strong&gt; for building highly available, production-grade applications 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>aws</category>
      <category>elb</category>
      <category>devops</category>
      <category>ai</category>
    </item>
    <item>
      <title>Securely Host Website with AWS CloudFront + Private S3 + Route 53 (Custom Domain + HTTPS)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Tue, 02 Sep 2025 13:28:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/securely-host-website-with-aws-cloudfront-private-s3-route-53-custom-domain-https-4f8h</link>
      <guid>https://dev.to/techeazy_consulting/securely-host-website-with-aws-cloudfront-private-s3-route-53-custom-domain-https-4f8h</guid>
      <description>&lt;h2&gt;
  
  
  🌍 Introduction
&lt;/h2&gt;

&lt;p&gt;If you directly host a static site on &lt;strong&gt;AWS S3 (public)&lt;/strong&gt;, your files are exposed to the internet. This is fine for simple hosting, but not secure for production.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;best practice&lt;/strong&gt; is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep your &lt;strong&gt;S3 bucket private&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Serve content via &lt;strong&gt;CloudFront&lt;/strong&gt; (with caching + HTTPS)&lt;/li&gt;
&lt;li&gt;Map domain using &lt;strong&gt;Route 53&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way, CloudFront acts as a &lt;strong&gt;secure CDN&lt;/strong&gt;, while S3 only accepts requests from CloudFront ✅&lt;/p&gt;

&lt;p&gt;By the end, you’ll have this flow:&lt;br&gt;
👉 &lt;strong&gt;Browser → Route 53 (DNS) → CloudFront (HTTPS + caching + SSL) → S3 (private)&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Step 1: Keep Your S3 Bucket Private
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Block Public Access = &lt;strong&gt;ON ✅&lt;/strong&gt; (default)&lt;/li&gt;
&lt;li&gt;Disable &lt;strong&gt;Static Website Hosting&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Remove any public bucket policy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Your bucket should have &lt;strong&gt;no public access&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Step 2: Create a CloudFront Distribution
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;CloudFront → Distributions → Create Distribution&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Domain&lt;/strong&gt;: Enter your domain name (&lt;code&gt;myapp.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;If no SSL → Request a free SSL certificate from &lt;strong&gt;ACM&lt;/strong&gt; and attach it&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Specify Origin&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Origin type → &lt;strong&gt;S3&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Origin → Select your bucket&lt;/li&gt;
&lt;li&gt;Origin Path → &lt;code&gt;/index.html&lt;/code&gt; (if required)&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;OAC (Origin Access Control)&lt;/strong&gt; → Allows CloudFront to access your private S3 bucket&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Leave other settings as default&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;(Optional) WAF → Not needed for now&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Save distribution&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  📜 Step 3: Update S3 Bucket Policy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;After CloudFront is created → it will suggest a &lt;strong&gt;bucket policy&lt;/strong&gt; (under Settings → Origins → Edit)&lt;/li&gt;
&lt;li&gt;Copy that policy and paste it into your &lt;strong&gt;S3 bucket policy&lt;/strong&gt; section&lt;/li&gt;
&lt;li&gt;✅ This ensures that &lt;strong&gt;only CloudFront can read from your S3 bucket&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Update Route 53 DNS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to your &lt;strong&gt;Hosted Zone&lt;/strong&gt; (example: &lt;code&gt;myapp.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a &lt;strong&gt;Record&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name → &lt;code&gt;myapp.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Type → A (Alias)&lt;/li&gt;
&lt;li&gt;Alias → &lt;strong&gt;Yes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Target → Select your CloudFront distribution&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;(Optional) Create another record for &lt;code&gt;&lt;a href="http://www.myapp.com" rel="noopener noreferrer"&gt;www.myapp.com&lt;/a&gt;&lt;/code&gt; → CloudFront&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Test Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Wait 5–15 minutes for &lt;strong&gt;CloudFront distribution&lt;/strong&gt; to deploy&lt;/li&gt;
&lt;li&gt;Open:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  https://myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Flow is now:
&lt;strong&gt;Browser → Route 53 → CloudFront → S3 (private)&lt;/strong&gt; 🎉&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;With this setup, you get a &lt;strong&gt;secure and production-ready website hosting&lt;/strong&gt; on AWS:&lt;/p&gt;

&lt;p&gt;✅ Private S3 bucket (no public exposure)&lt;br&gt;
✅ CloudFront with HTTPS + caching&lt;br&gt;
✅ Custom domain via Route 53&lt;br&gt;
✅ Free SSL from ACM&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;recommended AWS architecture&lt;/strong&gt; for static site hosting in production 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>route53</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Deploy Static HTML/CSS Website to AWS S3 with CI/CD (GitHub Actions)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 23:21:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/deploy-static-htmlcss-website-to-aws-s3-with-cicd-github-actions-2iec</link>
      <guid>https://dev.to/techeazy_consulting/deploy-static-htmlcss-website-to-aws-s3-with-cicd-github-actions-2iec</guid>
      <description>&lt;h2&gt;
  
  
  🌍 Introduction
&lt;/h2&gt;

&lt;p&gt;If you’re tired of manually uploading files to AWS S3 for hosting your static site, then &lt;strong&gt;CI/CD with GitHub Actions&lt;/strong&gt; is the perfect solution.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An S3 bucket for static hosting&lt;/li&gt;
&lt;li&gt;IAM user with permissions&lt;/li&gt;
&lt;li&gt;GitHub secrets for secure credentials&lt;/li&gt;
&lt;li&gt;GitHub Actions workflow for auto-deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end, every time you push code to GitHub → your site updates automatically 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 Step 1️ : Prepare Your Files
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you have your &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, images, etc. ready in a folder.&lt;/li&gt;
&lt;li&gt;Push your project to a &lt;strong&gt;GitHub repository&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS Management Console → S3&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create bucket&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter a &lt;strong&gt;unique bucket name&lt;/strong&gt; (e.g., &lt;code&gt;portfolio-website&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Uncheck &lt;strong&gt;Block all public access&lt;/strong&gt; if you want the site to be public.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create bucket&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ Step 3 : Configure Bucket for Static Website Hosting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open created bucket.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to the &lt;strong&gt;Properties&lt;/strong&gt; tab of your bucket.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scroll to &lt;strong&gt;Static website hosting → Edit&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable it and set:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Index document:&lt;/strong&gt; &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error document:&lt;/strong&gt; (optional, e.g., &lt;code&gt;404.html&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Save changes.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔓 Step 4 : Public Access Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open the &lt;strong&gt;Permissions&lt;/strong&gt; tab and set a bucket policy:
&lt;/li&gt;
&lt;/ul&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:::YOUR_BUCKET_NAME/*"&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;ul&gt;
&lt;li&gt;Save changes.&lt;/li&gt;
&lt;li&gt;Now the website can be accessed publicly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👤 Step 5 : Create an IAM User for CI/CD (AWS Console of Your Account)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Users&lt;/strong&gt; in the left menu.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;Add users&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Enter a &lt;strong&gt;username&lt;/strong&gt;. Click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔑 Step 6: Set Permissions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Attach policies directly → Create policy → JSON&lt;/strong&gt; option.&lt;/li&gt;
&lt;li&gt;For deploying a project to S3, use the following policy:
&lt;/li&gt;
&lt;/ul&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;"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;"Action"&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="s2"&gt;"s3:PutObject"&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:DeleteObject"&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:ListBucket"&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;"Resource"&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="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="s2"&gt;"arn:aws:s3:::YOUR_BUCKET_NAME/*"&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;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;, enter a policy name, and create the policy.&lt;/li&gt;
&lt;li&gt;Select created policy for user.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Step 7: Review and Create User
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; until you reach the &lt;strong&gt;Review&lt;/strong&gt; page.&lt;/li&gt;
&lt;li&gt;Verify the details and click &lt;strong&gt;Create user&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔐 Step 8: Assign Programmatic Access to the User
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click on the newly created user.&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;Security credentials&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Access keys&lt;/strong&gt; section, click on &lt;strong&gt;Create access key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Follow the steps to create the access key.&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Access Key ID&lt;/strong&gt; and &lt;strong&gt;Secret Access Key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Download or save them — &lt;strong&gt;you won’t be able to see the secret again&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The user is now created and has the assigned permissions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔒 Step 9 : Add Secrets in GitHub
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to your &lt;strong&gt;GitHub repo → Settings → Secrets and variables → Actions → New repository secret&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add these secrets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;AWS_ACCESS_KEY_ID&lt;/code&gt; → your IAM user key&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AWS_SECRET_ACCESS_KEY&lt;/code&gt; → your IAM user secret&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AWS_REGION&lt;/code&gt; → region of your bucket (e.g., &lt;code&gt;ap-south-1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;S3_BUCKET_NAME&lt;/code&gt; → your bucket name&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡ Step 10 : Create GitHub Actions Workflow
&lt;/h2&gt;

&lt;p&gt;In your project, create folder/file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.github/workflows/deploy.yml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy Website to S3&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;master&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout Repository&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Configure AWS credentials&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;aws-actions/configure-aws-credentials@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;aws-access-key-id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.AWS_ACCESS_KEY_ID }}&lt;/span&gt;
          &lt;span class="na"&gt;aws-secret-access-key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.AWS_SECRET_ACCESS_KEY }}&lt;/span&gt;
          &lt;span class="na"&gt;aws-region&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.AWS_REGION }}&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Sync files to S3&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;aws s3 sync . s3://${{ secrets.S3_BUCKET_NAME }} --delete&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Step 11 : Deploy Automatically
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Commit and push your code to &lt;strong&gt;main branch&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;GitHub Actions will run → upload files to S3 → your website updates automatically 🎉&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 Step 12 : Access Your App
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;S3 → Properties → Static website hosting&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Bucket website endpoint&lt;/strong&gt; URL.&lt;/li&gt;
&lt;li&gt;Open it in your browser — your HTML + CSS site is live and auto-deployed 🚀&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;With this setup, you now have a &lt;strong&gt;CI/CD pipeline&lt;/strong&gt; that deploys your static site to AWS S3 automatically whenever you push changes to GitHub.&lt;/p&gt;

&lt;p&gt;✅ No more manual uploads.&lt;br&gt;
✅ Faster deployments.&lt;br&gt;
✅ Professional workflow like modern DevOps teams.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>aws</category>
      <category>git</category>
      <category>github</category>
      <category>s3</category>
    </item>
    <item>
      <title>Connect Custom Domain to AWS S3 Website using Route 53</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 18:30:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/connect-custom-domain-to-aws-s3-website-using-route-53-14b5</link>
      <guid>https://dev.to/techeazy_consulting/connect-custom-domain-to-aws-s3-website-using-route-53-14b5</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;Hosting your static website on &lt;strong&gt;AWS S3&lt;/strong&gt; is simple, but by default you get a long AWS URL like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://myapp.com.s3-website-us-east-1.amazonaws.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To make your site look professional, you need a &lt;strong&gt;custom domain&lt;/strong&gt; (like &lt;code&gt;myapp.com&lt;/code&gt;).&lt;br&gt;
In this guide, you’ll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Buy/register a domain (Route 53 or third-party like GoDaddy/BigRock)&lt;/li&gt;
&lt;li&gt;Create a hosted zone in Route 53&lt;/li&gt;
&lt;li&gt;Configure S3 for website hosting&lt;/li&gt;
&lt;li&gt;Point your domain to S3 using Route 53 records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end, you’ll have your app live on &lt;strong&gt;&lt;a href="https://myapp.com" rel="noopener noreferrer"&gt;http://myapp.com&lt;/a&gt;&lt;/strong&gt; 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  🪪 Step 1: Buy / Register a Domain
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You can buy from &lt;strong&gt;Route 53&lt;/strong&gt; or another registrar like &lt;strong&gt;GoDaddy&lt;/strong&gt; or &lt;strong&gt;BigRock&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In this example, we’ll use a domain from &lt;strong&gt;BigRock&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;






&lt;h2&gt;
  
  
  🗂 Step 2: Create a Hosted Zone in Route 53
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS Console → Route 53 → Hosted Zones → Create Hosted Zone&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter your domain name:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Choose &lt;strong&gt;Public Hosted Zone&lt;/strong&gt; → Click &lt;strong&gt;Create Hosted Zone&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Route 53 will give you &lt;strong&gt;4 NS (Name Server) records&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Copy these NS records → Go to your &lt;strong&gt;domain registrar&lt;/strong&gt; (BigRock, GoDaddy, etc.) → Update your domain’s &lt;strong&gt;Nameserver settings&lt;/strong&gt; with these 4 values.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🪣 Step 3: Configure S3 for Website Hosting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create an &lt;strong&gt;S3 bucket&lt;/strong&gt; with the exact name of your domain:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;(If you want a subdomain, bucket name must be: &lt;code&gt;www.myapp.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Static Website Hosting&lt;/strong&gt; in bucket properties.&lt;/li&gt;
&lt;li&gt;Disable &lt;strong&gt;Block All Public Access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;read-only bucket policy&lt;/strong&gt; (same as in previous blog).&lt;/li&gt;
&lt;li&gt;After saving, you’ll get a website endpoint like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://myapp.com.s3-website-us-east-1.amazonaws.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌍 Step 4: Create a Record in Route 53
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to your &lt;strong&gt;Hosted Zone&lt;/strong&gt; in Route 53.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Record&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;myapp.com&lt;/code&gt; (or &lt;code&gt;www.myapp.com&lt;/code&gt; for subdomain).&lt;/li&gt;
&lt;li&gt;Record Type: &lt;strong&gt;A – Route traffic to IPv4 &amp;amp; AWS resources&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alias: &lt;strong&gt;Yes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Route traffic to: &lt;strong&gt;S3 website endpoint&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the correct &lt;strong&gt;region&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Save the record.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Done! Now your &lt;strong&gt;domain points to your S3 bucket&lt;/strong&gt;.&lt;br&gt;
Visiting &lt;code&gt;http://myapp.com&lt;/code&gt; will show your hosted website 🎉&lt;/p&gt;




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

&lt;p&gt;You’ve successfully connected your &lt;strong&gt;custom domain&lt;/strong&gt; to an &lt;strong&gt;AWS S3 hosted site&lt;/strong&gt; using Route 53.&lt;/p&gt;

&lt;p&gt;This setup gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;professional domain name&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Easy DNS management inside AWS&lt;/li&gt;
&lt;li&gt;A scalable static website hosting solution&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>aws</category>
      <category>s3</category>
      <category>route53</category>
      <category>bigrock</category>
    </item>
    <item>
      <title>How to Host a Static Website on AWS S3 (Step-by-Step Guide)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 16:16:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/how-to-host-a-static-website-on-aws-s3-step-by-step-guide-8oa</link>
      <guid>https://dev.to/techeazy_consulting/how-to-host-a-static-website-on-aws-s3-step-by-step-guide-8oa</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;If you’ve built a static website using &lt;strong&gt;HTML, CSS, and images&lt;/strong&gt;, the next step is getting it online. One of the simplest and most cost-effective ways is to use &lt;strong&gt;Amazon S3 (Simple Storage Service)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With just a few clicks, you can deploy your static site and make it accessible to the world — no servers required!&lt;/p&gt;

&lt;p&gt;Let’s go step by step.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 Step 1: Prepare Your Files
&lt;/h2&gt;

&lt;p&gt;Make sure your project folder contains all necessary files, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;style.css&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Any images or assets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Keep them organized in a single folder before uploading.&lt;/p&gt;




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

&lt;ol&gt;
&lt;li&gt;Log in to &lt;strong&gt;AWS Management Console → S3&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create bucket&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enter a &lt;strong&gt;unique bucket name&lt;/strong&gt; (example: &lt;code&gt;portfolio-website&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Uncheck &lt;strong&gt;Block all public access&lt;/strong&gt; if you want your site to be public&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create bucket&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  ⚙️ Step 3: Configure Bucket for Static Website Hosting
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your newly created bucket&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;Properties&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Scroll to &lt;strong&gt;Static website hosting → Edit&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable it and set:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Index document&lt;/strong&gt; → &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error document&lt;/strong&gt; → &lt;code&gt;404.html&lt;/code&gt; (optional)

&lt;ol&gt;
&lt;li&gt;Save changes&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔓 Step 4: Make Files Public
&lt;/h2&gt;

&lt;p&gt;There are two ways to allow public access:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Manually&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select all objects → Click &lt;strong&gt;Actions → Make public&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Option 2: Bucket Policy (Recommended)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Permissions → Bucket Policy&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Paste the following JSON (replace &lt;code&gt;YOUR_BUCKET_NAME&lt;/code&gt;):
&lt;/li&gt;
&lt;/ul&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:::YOUR_BUCKET_NAME/*"&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;ul&gt;
&lt;li&gt;Save changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📤 Step 5: Upload Your Files
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Objects&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Upload → Add files&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select all your project files (&lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, images, etc.)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Upload&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🌍 Step 6: Access Your App
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Properties&lt;/strong&gt; tab of your bucket&lt;/li&gt;
&lt;li&gt;Scroll to &lt;strong&gt;Static website hosting&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Bucket website endpoint URL&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Paste it into your browser — your site is live 🎉&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Hosting a static website on AWS S3 is one of the fastest ways to make your portfolio, landing page, or small project available online.&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s &lt;strong&gt;cost-efficient, secure, and scalable&lt;/strong&gt; — making it perfect for developers of all levels.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>aws</category>
      <category>s3</category>
      <category>devops</category>
    </item>
    <item>
      <title>GitHub Branch Protection Rules: Why and How to Use Them</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 15:17:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/github-branch-protection-rules-why-and-how-to-use-them-4cm</link>
      <guid>https://dev.to/techeazy_consulting/github-branch-protection-rules-why-and-how-to-use-them-4cm</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;When working on projects with multiple developers, maintaining code quality and stability becomes critical.&lt;br&gt;
That’s where &lt;strong&gt;branch protection rules&lt;/strong&gt; come in.&lt;/p&gt;

&lt;p&gt;Branch protection rules in GitHub allow repository admins to enforce certain workflows, such as requiring pull requests before merging, enforcing code reviews, or restricting who can push changes.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What branch protection rules are&lt;/li&gt;
&lt;li&gt;Why they matter&lt;/li&gt;
&lt;li&gt;Common rules you can set up&lt;/li&gt;
&lt;li&gt;Best practices for teams&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 What Are Branch Protection Rules?
&lt;/h2&gt;

&lt;p&gt;Branch protection rules are &lt;strong&gt;settings in GitHub that apply restrictions to a branch&lt;/strong&gt; — typically the &lt;code&gt;main&lt;/code&gt; or &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;They prevent developers from making direct changes that could break the codebase. Instead, rules encourage safer collaboration through pull requests and reviews.&lt;/p&gt;

&lt;p&gt;👉 Think of them as &lt;em&gt;guardrails&lt;/em&gt; to protect your project’s most important branches.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 Why Use Branch Protection Rules?
&lt;/h2&gt;

&lt;p&gt;Here’s why teams (and even solo developers) benefit from them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Stability&lt;/strong&gt; → Protects the main branch from accidental or unstable changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt; → Ensures features go through peer reviews before merging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt; → Restricts who can merge changes or force-push branches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality Control&lt;/strong&gt; → Allows automated checks (like CI/CD tests) before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, branch protection rules &lt;strong&gt;increase reliability and reduce risks&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Common Branch Protection Settings
&lt;/h2&gt;

&lt;p&gt;When creating rules in GitHub, you’ll find several options. The most commonly used are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Require Pull Requests Before Merging&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Ensures all changes are reviewed before being merged.&lt;/li&gt;
&lt;li&gt;You can even set the number of reviewers required.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Require Status Checks to Pass Before Merging&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Integrates with CI/CD pipelines (like GitHub Actions).&lt;/li&gt;
&lt;li&gt;Ensures code passes tests before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Require Signed Commits&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Adds a layer of security by verifying commit authorship.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Restrict Who Can Push to the Branch&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Limits push permissions to specific people or teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Require Conversation Resolution&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Prevents merging until all review comments are resolved.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 How to Set Up Branch Protection Rules
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to your GitHub repository.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Branches&lt;/strong&gt;, click &lt;strong&gt;Add Rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter the branch name pattern (e.g., &lt;code&gt;main&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Select the rules you want to apply (pull request reviews, status checks, etc.).&lt;/li&gt;
&lt;li&gt;Save the changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 From now on, those rules will apply whenever someone tries to modify that branch.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Best Practices for Branch Protection
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Always protect your &lt;strong&gt;main&lt;/strong&gt; branch (or &lt;code&gt;master&lt;/code&gt; if used).&lt;/li&gt;
&lt;li&gt;Require &lt;strong&gt;at least one pull request review&lt;/strong&gt; before merging.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;status checks&lt;/strong&gt; if you have automated tests.&lt;/li&gt;
&lt;li&gt;Restrict force pushes to avoid history corruption.&lt;/li&gt;
&lt;li&gt;Communicate the rules clearly with your team.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Branch protection rules are an essential feature for any project — whether you’re a solo developer or part of a large team.&lt;/p&gt;

&lt;p&gt;They safeguard your main branch, enforce reviews, and keep your project stable. By using them wisely, you ensure that collaboration leads to &lt;strong&gt;better, safer, and more reliable code&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>git</category>
      <category>github</category>
      <category>githubactions</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Repositories, Branches, and Pull Requests</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 13:12:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/repositories-branches-and-pull-requests-2dl0</link>
      <guid>https://dev.to/techeazy_consulting/repositories-branches-and-pull-requests-2dl0</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;GitHub is an essential tool for developers, providing a powerful platform for version control, collaboration, and code management.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll cover the &lt;strong&gt;core concepts of working with GitHub&lt;/strong&gt;, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating repositories&lt;/li&gt;
&lt;li&gt;Working with branches&lt;/li&gt;
&lt;li&gt;Managing pull requests (PRs)&lt;/li&gt;
&lt;li&gt;Cloning existing repositories&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you’re completely new to GitHub or looking to improve your workflow, this blog will give you the confidence to manage projects effectively.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 1. Creating a GitHub Repository
&lt;/h2&gt;

&lt;p&gt;One of the first steps in using GitHub is creating a new repository — a centralized location where your project files and history are stored.&lt;/p&gt;

&lt;p&gt;You can initialize a repository locally and then link it to GitHub.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Initialize a new repository&lt;/span&gt;
git init

&lt;span class="c"&gt;# Stage all files for commit&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Commit changes locally&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;

&lt;span class="c"&gt;# Set the branch to main&lt;/span&gt;
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main

&lt;span class="c"&gt;# Link the local repo to GitHub&lt;/span&gt;
git remote add origin https://github.com/&amp;lt;username&amp;gt;/&amp;lt;repo&amp;gt;

&lt;span class="c"&gt;# Push the code to the main branch&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 This process sets up your project and pushes it to a remote repository on GitHub.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 2. Working with Branches
&lt;/h2&gt;

&lt;p&gt;Branches allow you to work on new features or bug fixes without disturbing the main branch. They are one of GitHub’s most powerful features for collaboration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create and switch to a new branch&lt;/span&gt;
git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature-branch

&lt;span class="c"&gt;# Push the new branch to GitHub&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Branches keep your workflow organized, especially in team projects, and make it easier to merge code once it’s ready.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 3. Managing Pull Requests (PRs)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;pull request&lt;/strong&gt; is how developers propose changes to a repository. It enables discussion, code review, and collaboration before merging changes.&lt;/p&gt;

&lt;p&gt;The typical PR workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a PR&lt;/strong&gt; → Open a pull request once your branch is ready.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Review&lt;/strong&gt; → Teammates review, comment, and suggest changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge&lt;/strong&gt; → After approval, the branch is merged into the main branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 Pull requests are the backbone of collaboration in open-source and team projects.&lt;br&gt;
For more details, check GitHub’s documentation on PRs &lt;a href="https://docs.github.com/en/pull-requests" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧑‍🏫 4. Cloning an Existing Repository
&lt;/h2&gt;

&lt;p&gt;Instead of starting from scratch, you can clone an existing repository to your local machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone a repository to your local machine&lt;/span&gt;
git clone https://github.com/techeazy-consulting/demorepo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 This downloads the entire repository (including history), so you can work on it locally.&lt;/p&gt;




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

&lt;p&gt;GitHub makes it easier than ever to manage code, collaborate with others, and contribute to open-source projects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repositories keep your work organized.&lt;/li&gt;
&lt;li&gt;Branches let you experiment safely.&lt;/li&gt;
&lt;li&gt;Pull requests encourage collaboration and quality checks.&lt;/li&gt;
&lt;li&gt;Cloning helps you get started with existing projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mastering these fundamentals is a big step toward becoming a confident developer in team environments.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.&lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>devops</category>
    </item>
    <item>
      <title>Connecting Git to GitHub (with PAT Token)</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 11:44:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/connecting-git-to-github-with-pat-token-1b6g</link>
      <guid>https://dev.to/techeazy_consulting/connecting-git-to-github-with-pat-token-1b6g</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;So far, you’ve learned the basics of Git and GitHub. But how do you actually connect your local project to GitHub?&lt;br&gt;
That’s where &lt;strong&gt;Personal Access Tokens (PATs)&lt;/strong&gt; come in.&lt;/p&gt;

&lt;p&gt;GitHub has deprecated password authentication for Git operations, and now recommends using PAT tokens for secure access. In this blog, we’ll walk through the entire process of pushing a new project from your computer to GitHub — step by step.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧑‍🏫 Step 1: Configure Git (only once per computer)
&lt;/h2&gt;

&lt;p&gt;Before pushing anything, you need to tell Git who you are. Run these commands in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"your_email@example.com"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; credential.helper store
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 This sets up your identity and ensures Git can store credentials for future use.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 Step 2: Create a Spring Boot project
&lt;/h2&gt;

&lt;p&gt;For this example, let’s create a demo project using &lt;strong&gt;Spring Initializr&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to 👉 &lt;a href="https://start.spring.io/" rel="noopener noreferrer"&gt;https://start.spring.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Select:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project&lt;/strong&gt;: Maven&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language&lt;/strong&gt;: Java&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spring Boot&lt;/strong&gt;: latest stable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Group&lt;/strong&gt;: &lt;code&gt;com.example&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artifact&lt;/strong&gt;: &lt;code&gt;demo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;(Optional) Add Spring Web dependency

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Generate Project&lt;/strong&gt; → a &lt;code&gt;.zip&lt;/code&gt; file will download.&lt;/li&gt;
&lt;li&gt;Extract the project and open it in your IDE (IntelliJ IDEA or VS Code).&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 Step 3: Create an empty GitHub repository
&lt;/h2&gt;

&lt;p&gt;Next, let’s set up a remote repository on GitHub:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to 👉 &lt;a href="https://github.com" rel="noopener noreferrer"&gt;https://github.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New Repository&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter repo name → &lt;code&gt;spring-demo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠️ Keep the repository empty (don’t add README, .gitignore, or license).&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Repository&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 Step 4: Generate a PAT (Personal Access Token)
&lt;/h2&gt;

&lt;p&gt;Now we need a PAT to authenticate securely:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to 👉 &lt;a href="https://github.com/settings/tokens" rel="noopener noreferrer"&gt;GitHub Settings → Developer Settings → Personal access tokens&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Tokens (classic)&lt;/strong&gt; → &lt;strong&gt;Generate new token (classic)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Fill in details:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;spring-project-token&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Expiration: 30 days (or as needed)&lt;/li&gt;
&lt;li&gt;Permissions: ✅ repo

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Generate token&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Copy the token (e.g., &lt;code&gt;ghp_abc123XYZ...&lt;/code&gt;) and save it somewhere safe.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧑‍🏫 Step 5: Connect local project to GitHub
&lt;/h2&gt;

&lt;p&gt;Open your terminal inside the Spring project folder and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git remote add origin https://github.com/your-username/spring-demo.git
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial Spring Boot project"&lt;/span&gt;
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧑‍🏫 Step 6: Authenticate with GitHub
&lt;/h2&gt;

&lt;p&gt;When you run the push command:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git will ask for &lt;strong&gt;username&lt;/strong&gt; → enter your GitHub username.&lt;/li&gt;
&lt;li&gt;Git will ask for &lt;strong&gt;password&lt;/strong&gt; → paste your &lt;strong&gt;PAT token&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎉 Step 7: Verify on GitHub
&lt;/h2&gt;

&lt;p&gt;Finally, go to your repository on GitHub.&lt;br&gt;
You should now see your Spring Boot project uploaded successfully 🚀&lt;/p&gt;




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

&lt;p&gt;That’s it! You’ve just connected your local Git project to GitHub using a Personal Access Token.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git is now configured on your machine.&lt;/li&gt;
&lt;li&gt;Your project is securely stored in GitHub.&lt;/li&gt;
&lt;li&gt;You’re ready to collaborate with others.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process is a one-time setup per project — once done, future pushes will be much simpler.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>github</category>
      <category>git</category>
      <category>commit</category>
      <category>devops</category>
    </item>
    <item>
      <title>Introduction to Git and GitHub: A Beginner’s Guide</title>
      <dc:creator>TechEazy Consulting</dc:creator>
      <pubDate>Mon, 01 Sep 2025 11:10:00 +0000</pubDate>
      <link>https://dev.to/techeazy_consulting/introduction-to-git-and-github-a-beginners-guide-49bh</link>
      <guid>https://dev.to/techeazy_consulting/introduction-to-git-and-github-a-beginners-guide-49bh</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;If you’ve just started your journey into software development, you’ve probably heard people talking about &lt;em&gt;Git&lt;/em&gt; and &lt;em&gt;GitHub&lt;/em&gt;. They might sound similar, but they serve different purposes — and together, they’re two of the most powerful tools every developer should know.  &lt;/p&gt;

&lt;p&gt;This blog is a beginner-friendly explanation of Git and GitHub, how they differ, and why they are essential for modern software development. No code, just theory made simple.  &lt;/p&gt;




&lt;h2&gt;
  
  
  📝 What is Git?
&lt;/h2&gt;

&lt;p&gt;Git is a &lt;strong&gt;version control system (VCS)&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Think of it as a &lt;strong&gt;time machine for your code&lt;/strong&gt;. It lets you:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save snapshots of your project as you work.
&lt;/li&gt;
&lt;li&gt;Go back to previous versions if something breaks.
&lt;/li&gt;
&lt;li&gt;Experiment with new ideas without losing your original work.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Created by Linus Torvalds in 2005 (yes, the same person behind Linux 🐧), Git has become the most widely used version control system in the world.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Why Developers Use Git
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Track Changes&lt;/strong&gt; → Know exactly what changed and when.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt; → Multiple people can work on the same project without stepping on each other’s toes.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup&lt;/strong&gt; → Even if your local computer fails, your history of changes is safe once you push it to a remote repository.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 What is GitHub?
&lt;/h2&gt;

&lt;p&gt;If Git is the engine, &lt;strong&gt;GitHub is the garage where you store and showcase your projects&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;GitHub is a &lt;strong&gt;cloud-based hosting platform&lt;/strong&gt; for Git repositories. It adds a social layer to software development, allowing developers to share, collaborate, and contribute to each other’s work.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of GitHub
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Remote Repository Hosting&lt;/strong&gt; → Store your code safely in the cloud.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration Tools&lt;/strong&gt; → Pull requests, issues, and project boards make teamwork organized.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source Contributions&lt;/strong&gt; → Millions of projects are open source, meaning anyone can learn from or contribute to them.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community&lt;/strong&gt; → Developers connect, follow, and learn from each other.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔑 Git vs GitHub: What’s the Difference?
&lt;/h2&gt;

&lt;p&gt;Many beginners confuse Git and GitHub, but here’s the simple distinction:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; → A tool installed on your computer to track changes in your code.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; → An online platform that hosts Git repositories and helps developers collaborate.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 You can use Git &lt;strong&gt;without&lt;/strong&gt; GitHub, but you cannot use GitHub effectively without Git.  &lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 Why Should You Learn Git and GitHub?
&lt;/h2&gt;

&lt;p&gt;Whether you’re a student, hobbyist, or professional developer, learning Git and GitHub opens the door to:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Better productivity&lt;/strong&gt;: You’ll never lose track of your work.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teamwork skills&lt;/strong&gt;: Almost all companies expect developers to know Git.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source contributions&lt;/strong&gt;: You can give back to the developer community.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio building&lt;/strong&gt;: GitHub profiles often serve as a living resume for developers.
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Git and GitHub might seem intimidating at first, but they are simply tools designed to make your development journey smoother.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git helps you manage and track your project history.
&lt;/li&gt;
&lt;li&gt;GitHub provides a collaborative platform to share and improve your projects.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re starting out, don’t worry about mastering everything at once. Understanding the &lt;em&gt;theory&lt;/em&gt; is the first step — and you’ve just taken it! 🚀  &lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Next Steps
&lt;/h2&gt;

&lt;p&gt;🚀 Be interview-ready in the era of AI &amp;amp; Cloud — start your DevOps journey today!&lt;br&gt;&lt;br&gt;
💡 YouTube won’t get you a job. Real projects + real internship certificate will.&lt;br&gt;&lt;br&gt;
🔥 AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps &amp;amp; Cloud skills.&lt;br&gt;&lt;br&gt;
🎯 ₹2000/month today = Dream job tomorrow. Secure your spot now.&lt;br&gt;&lt;br&gt;
⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out!&lt;br&gt;&lt;br&gt;
🌐 DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.  &lt;/p&gt;

&lt;p&gt;👉 Register now at &lt;a href="https://www.techeazyconsulting.com" rel="noopener noreferrer"&gt;TechEazy Consulting&lt;/a&gt;&lt;/p&gt;




</description>
      <category>git</category>
      <category>github</category>
      <category>devops</category>
      <category>cicd</category>
    </item>
  </channel>
</rss>
