<?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: Darshan </title>
    <description>The latest articles on DEV Community by Darshan  (@darshan_b).</description>
    <link>https://dev.to/darshan_b</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%2F3241010%2Fd74dd3b0-655b-4e09-b8b6-d91696a442f1.png</url>
      <title>DEV Community: Darshan </title>
      <link>https://dev.to/darshan_b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/darshan_b"/>
    <language>en</language>
    <item>
      <title>Zero-Downtime-Cross-Region-Database-Migration-using-AWS-DMS</title>
      <dc:creator>Darshan </dc:creator>
      <pubDate>Fri, 24 Apr 2026 12:49:33 +0000</pubDate>
      <link>https://dev.to/darshan_b/zero-downtime-cross-region-database-migration-using-aws-dms-kij</link>
      <guid>https://dev.to/darshan_b/zero-downtime-cross-region-database-migration-using-aws-dms-kij</guid>
      <description>&lt;p&gt;Overview&lt;br&gt;
This project demonstrates how to perform a zero-downtime database migration across AWS regions using:&lt;/p&gt;

&lt;p&gt;AWS Database Migration Service (DMS)&lt;br&gt;
Amazon RDS (MySQL)&lt;br&gt;
AWS CloudFormation&lt;br&gt;
The system uses Change Data Capture (CDC) to continuously replicate database changes, ensuring minimal downtime and real-time synchronization.&lt;/p&gt;

&lt;p&gt;🎯 Key Features&lt;br&gt;
✅ Zero/near-zero downtime migration&lt;br&gt;
🔄 Real-time data replication using CDC&lt;br&gt;
🌍 Cross-region migration (e.g., Mumbai → Singapore)&lt;br&gt;
⚡ Automated infrastructure setup&lt;br&gt;
🔍 Data validation and consistency&lt;/p&gt;

&lt;p&gt;🏗️ Architecture&lt;/p&gt;

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

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

&lt;p&gt;🔁 Workflow&lt;br&gt;
Full data load from source to target&lt;br&gt;
CDC captures real-time changes&lt;br&gt;
DMS applies changes continuously&lt;br&gt;
Target DB stays in sync&lt;br&gt;
Cutover to target database&lt;br&gt;
🧰 Tech Stack&lt;br&gt;
AWS DMS&lt;br&gt;
Amazon RDS (MySQL)&lt;br&gt;
AWS CloudFormation&lt;br&gt;
MySQL Workbench&lt;br&gt;
⚙️ Step-by-Step Implementation&lt;br&gt;
🟦 Step 1: Create Source Database (RDS - Region A)&lt;br&gt;
Go to AWS Console → RDS&lt;br&gt;
Click Create Database&lt;br&gt;
Select:&lt;br&gt;
Engine: MySQL&lt;br&gt;
Instance: db.t3.micro&lt;br&gt;
Set username &amp;amp; password&lt;br&gt;
Enable public access (for testing)&lt;br&gt;
or (Use cloud formation code)&lt;/p&gt;

&lt;p&gt;download the source-db.yaml from cloudformaton/ folder&lt;/p&gt;

&lt;p&gt;open cloudformation in aws cli&lt;/p&gt;

&lt;p&gt;click on create stack&lt;/p&gt;

&lt;p&gt;select - choose an existing template&lt;/p&gt;

&lt;p&gt;select - upload a template file&lt;/p&gt;

&lt;p&gt;create stack&lt;/p&gt;

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

&lt;p&gt;🟦 Step 2: Create Target Database (RDS - Region B)&lt;br&gt;
Switch AWS region&lt;br&gt;
Repeat same steps as source&lt;br&gt;
or (Use cloud formation code)&lt;/p&gt;

&lt;p&gt;use target-db.yaml file from cloudformation/ folder&lt;br&gt;
🟦 Step 3: Enable CDC (IMPORTANT)&lt;br&gt;
Create Parameter Group&lt;br&gt;
Go to RDS → Parameter Groups&lt;br&gt;
Create new parameter group&lt;br&gt;
Set:&lt;br&gt;
binlog_format = ROW&lt;br&gt;
binlog_row_image = FULL&lt;br&gt;
Attach to source DB&lt;br&gt;
Reboot database&lt;br&gt;
Step 4: Create DMS Replication Instance&lt;br&gt;
Go to DMS → Replication Instances Click Create Select: Instance: dms.t3.medium&lt;/p&gt;

&lt;p&gt;Step 5: Create Endpoints&lt;br&gt;
Source Endpoint&lt;/p&gt;

&lt;p&gt;Enter source DB details (endpoint of source RDS)&lt;/p&gt;

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

&lt;p&gt;Test connection&lt;/p&gt;

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

&lt;p&gt;Target Endpoint&lt;/p&gt;

&lt;p&gt;Enter target DB details (endpoint of destination RDS)&lt;/p&gt;

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

&lt;p&gt;Test connection&lt;/p&gt;

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

&lt;p&gt;Step 6: Create Migration Task&lt;br&gt;
Go to DMS → Tasks → Create Task Configure: Migration Type: Full Load + CDC (change data capture) Table Mapping: Schema: demo_db Table: users&lt;/p&gt;

&lt;p&gt;Step 7: Start Migration&lt;br&gt;
Start the task Monitor: Full load CDC status&lt;/p&gt;

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

&lt;p&gt;Step 8: Validate Data&lt;br&gt;
connect source-db RDS database to mysql workbeanch&lt;br&gt;
username admin password - Password123!&lt;br&gt;
endpoint is RDS database endpoint&lt;br&gt;
do the same for target RDS database&lt;/p&gt;

&lt;p&gt;Source: INSERT INTO users VALUES (1, 'test_user');&lt;/p&gt;

&lt;p&gt;Source database:&lt;/p&gt;

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

&lt;p&gt;Step 9: Test CDC&lt;br&gt;
UPDATE users SET name = 'updated' WHERE id = 1;&lt;/p&gt;

&lt;p&gt;👉 Changes should reflect in target DB instantly Target database :&lt;/p&gt;

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

&lt;p&gt;Step 10: Cutover&lt;br&gt;
Stop writes to source Ensure replication lag = 0 Switch application to target DB&lt;/p&gt;

&lt;p&gt;Key Concepts&lt;br&gt;
🔹 What is CDC?&lt;/p&gt;

&lt;p&gt;CDC captures changes (INSERT, UPDATE, DELETE) from database logs and replicates them in real time.&lt;/p&gt;

&lt;p&gt;🔹 What is Replication Instance?&lt;/p&gt;

&lt;p&gt;It is the compute engine that:&lt;/p&gt;

&lt;p&gt;Reads source DB&lt;br&gt;
Processes data&lt;br&gt;
Writes to target DB&lt;br&gt;
🔹 What is DMS Task?&lt;/p&gt;

&lt;p&gt;Defines:&lt;/p&gt;

&lt;p&gt;What to migrate&lt;br&gt;
How to migrate&lt;br&gt;
When to migrate&lt;br&gt;
Common Issues &amp;amp; Fixes&lt;br&gt;
possible errors&lt;br&gt;
Error 1236 (Binlog Not Found)&lt;/p&gt;

&lt;p&gt;Cause: Old logs deleted&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;p&gt;Recreate task Start from beginning&lt;/p&gt;

&lt;p&gt;CDC Not Working Fix: binlog_format = ROW binlog_row_image = FULL&lt;/p&gt;

&lt;p&gt;Data Not Syncing Check task status Ensure CDC enabled&lt;/p&gt;

&lt;p&gt;Cost Estimation&lt;br&gt;
Service Cost RDS (2 instances) ~$1.6 DMS ~$2.4 Data Transfer ~$0.2 Total ~$4–5&lt;/p&gt;

&lt;p&gt;Results&lt;br&gt;
✅ Zero downtime migration achieved&lt;br&gt;
🔄 Real-time replication working&lt;br&gt;
📈 Data consistency maintained&lt;br&gt;
🏁 Conclusion&lt;br&gt;
This project demonstrates how AWS DMS with CDC enables seamless and reliable database migration with minimal downtime.&lt;/p&gt;

&lt;p&gt;References&lt;br&gt;
1.AWS DMS Documentation 2.AWS RDS Documentation 3.MySQL Binlog Documentation&lt;/p&gt;

&lt;p&gt;Author&lt;br&gt;
Darshan B&lt;/p&gt;

</description>
      <category>aws</category>
      <category>database</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Deploying First Website on AWS EC2 (step by step guide)</title>
      <dc:creator>Darshan </dc:creator>
      <pubDate>Thu, 02 Apr 2026 15:30:46 +0000</pubDate>
      <link>https://dev.to/darshan_b/deploying-first-website-on-aws-ec2-step-by-step-guide-1d21</link>
      <guid>https://dev.to/darshan_b/deploying-first-website-on-aws-ec2-step-by-step-guide-1d21</guid>
      <description>&lt;p&gt;In this blog, I’ll walk through how I deployed my first website on an EC2 instance using AWS.&lt;br&gt;
We will cover everything from launching an instance to connecting via SSH and hosting a static HTML page using Nginx.&lt;/p&gt;

&lt;p&gt;Step 1: Create an AWS EC2 Instance&lt;/p&gt;

&lt;p&gt;Go to AWS Console → EC2 Dashboard&lt;br&gt;
Click on Launch Instance&lt;/p&gt;

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

&lt;p&gt;Configuration:&lt;br&gt;
Name: any-name&lt;br&gt;
AMI: Amazon Linux 2023&lt;br&gt;
Instance Type: t2.micro or t3.micro (Free Tier)&lt;/p&gt;

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

&lt;p&gt;Key Pair:&lt;br&gt;
Create a new key pair &lt;br&gt;
Name : my-key-pair&lt;/p&gt;

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

&lt;p&gt;Download .pem file (very important)&lt;/p&gt;

&lt;p&gt;Step 2: Configure Security Group&lt;/p&gt;

&lt;p&gt;Allow the following:&lt;/p&gt;

&lt;p&gt;SSH (Port 22) → Anywhere (0.0.0.0/0)&lt;br&gt;
HTTP (Port 80) → Anywhere (0.0.0.0/0)&lt;/p&gt;

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

&lt;p&gt;Copy the public Ipv4 of your ec2 instance&lt;/p&gt;

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

&lt;p&gt;Step 3: Connect to EC2 via SSH (Windows)&lt;/p&gt;

&lt;p&gt;Open Command prompt and run:&lt;/p&gt;

&lt;p&gt;ssh -i my-key-pair.pem ec2-user@PUBLIC_IP_OF_EC2&lt;/p&gt;

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

&lt;p&gt;Step 4: Update the Server&lt;br&gt;
sudo yum update -y&lt;/p&gt;

&lt;p&gt;Step 5: Install Nginx&lt;br&gt;
sudo dnf install nginx -y&lt;/p&gt;

&lt;p&gt;Start and enable Nginx:&lt;/p&gt;

&lt;p&gt;sudo systemctl start nginx&lt;br&gt;
sudo systemctl enable nginx&lt;/p&gt;

&lt;p&gt;Check status:&lt;/p&gt;

&lt;p&gt;sudo systemctl status nginx&lt;/p&gt;

&lt;p&gt;Step 6: Access Default Nginx Page&lt;/p&gt;

&lt;p&gt;Open browser and go to:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://PUBLIC_IP_OF_EC2" rel="noopener noreferrer"&gt;http://PUBLIC_IP_OF_EC2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You shoud see:&lt;/p&gt;

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

&lt;p&gt;Step 8: Replace Default HTML Page&lt;/p&gt;

&lt;p&gt;Navigate to Nginx folder:&lt;/p&gt;

&lt;p&gt;cd /usr/share/nginx/html&lt;/p&gt;

&lt;p&gt;Edit file:&lt;/p&gt;

&lt;p&gt;sudo nano index.html&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Hello from EC2 Website&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello from EC2&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is my first deployed website&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save and exit.&lt;/p&gt;

&lt;p&gt;Step 9: Restart Nginx&lt;br&gt;
sudo systemctl restart nginx&lt;/p&gt;

&lt;p&gt;Step 10: View Your Website&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://PUBLIC_IP_OF_EC2" rel="noopener noreferrer"&gt;http://PUBLIC_IP_OF_EC2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;U will see Your html page&lt;/p&gt;

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

&lt;p&gt;Key Learnings&lt;br&gt;
EC2 is a virtual server in the cloud&lt;br&gt;
SSH allows remote access&lt;br&gt;
Nginx serves web content&lt;br&gt;
File paths matter (/ vs ~)&lt;br&gt;
Security Groups control access&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 4: System Design Basics + AWS Storage</title>
      <dc:creator>Darshan </dc:creator>
      <pubDate>Tue, 24 Mar 2026 09:41:03 +0000</pubDate>
      <link>https://dev.to/darshan_b/day-4-system-design-basics-aws-storage-1218</link>
      <guid>https://dev.to/darshan_b/day-4-system-design-basics-aws-storage-1218</guid>
      <description>&lt;p&gt;Today was all about understanding how real-world systems are designed for scalability, speed, and reliability.&lt;/p&gt;

&lt;p&gt;🔹 Username Availability Check (Backend Logic)&lt;br&gt;
Ever wondered how apps instantly tell you “username already taken”?&lt;br&gt;
I explored:&lt;/p&gt;

&lt;p&gt;Using Redis HashMap for fast lookup (cache hit ⚡)&lt;br&gt;
Storing key-value pairs like username → userId&lt;br&gt;
Result: Super fast checks without hitting the database every time&lt;/p&gt;

&lt;p&gt;Also learned about:&lt;/p&gt;

&lt;p&gt;Tries (Prefix Trees) → Efficient string search&lt;br&gt;
Time Complexity: O(m), where m = length of string&lt;/p&gt;

&lt;p&gt;🔹 Data Structures for Scale&lt;/p&gt;

&lt;p&gt;B+ Trees → Used in databases (O(log N))&lt;br&gt;
Bloom Filters → Memory-efficient, fast checks (with small error probability)&lt;/p&gt;

&lt;p&gt;🔹 System Design Components&lt;/p&gt;

&lt;p&gt;💡 API Gateway&lt;/p&gt;

&lt;p&gt;Handles requests&lt;br&gt;
Authentication &amp;amp; Authorization&lt;br&gt;
Rate limiting&lt;br&gt;
Request/Response transformation&lt;br&gt;
Monitoring &amp;amp; analytics&lt;/p&gt;

&lt;p&gt;💡 Load Balancer&lt;/p&gt;

&lt;p&gt;Distributes traffic across servers&lt;br&gt;
Improves scalability &amp;amp; availability&lt;br&gt;
Algorithms:&lt;br&gt;
Round Robin&lt;br&gt;
Least Connections&lt;br&gt;
IP Hash&lt;br&gt;
Weighted&lt;/p&gt;

&lt;p&gt;💡 Reverse Proxy (like Nginx)&lt;/p&gt;

&lt;p&gt;Sits in front of servers&lt;br&gt;
Adds caching, security, compression&lt;br&gt;
Flow: Client → Proxy → Backend → Proxy → Response&lt;/p&gt;

&lt;p&gt;🔹 AWS Storage Deep Dive&lt;/p&gt;

&lt;p&gt;📦 EBS (Elastic Block Storage)&lt;/p&gt;

&lt;p&gt;Virtual hard disk for EC2&lt;br&gt;
Persistent storage&lt;br&gt;
Can detach &amp;amp; attach to other instances&lt;br&gt;
Works within same Availability Zone&lt;/p&gt;

&lt;p&gt;📦 S3 (Object Storage)&lt;/p&gt;

&lt;p&gt;Stores files, backups&lt;br&gt;
Access via API (HTTP)&lt;br&gt;
Highly scalable&lt;/p&gt;

&lt;p&gt;📦 Instance Storage&lt;/p&gt;

&lt;p&gt;Temporary (ephemeral)&lt;br&gt;
Very fast&lt;br&gt;
Used for cache/temp data&lt;/p&gt;

&lt;p&gt;🔥 Key Takeaway&lt;br&gt;
Speed = Cache (Redis)&lt;br&gt;
Scalability = Load Balancer + API Gateway&lt;br&gt;
Efficiency = Right Data Structure (Trie, Bloom Filter)&lt;br&gt;
Storage = Use the right AWS service&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>aws</category>
      <category>backend</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Day - 1</title>
      <dc:creator>Darshan </dc:creator>
      <pubDate>Thu, 12 Mar 2026 19:01:41 +0000</pubDate>
      <link>https://dev.to/darshan_b/day-1-4m82</link>
      <guid>https://dev.to/darshan_b/day-1-4m82</guid>
      <description>&lt;p&gt;Today marks Day 1 of my 180-day journey to becoming a Backend &amp;amp; Cloud Engineer.&lt;/p&gt;

&lt;p&gt;My focus areas for this challenge are:&lt;/p&gt;

&lt;p&gt;Data Structures &amp;amp; Algorithms (DSA)&lt;/p&gt;

&lt;p&gt;Backend Development&lt;/p&gt;

&lt;p&gt;Cloud Computing&lt;/p&gt;

&lt;p&gt;DevOps&lt;/p&gt;

&lt;p&gt;Here’s what I learned today.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Recursion (Basics)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I started learning the fundamentals of recursion, where a function calls itself to solve smaller instances of the same problem.&lt;/p&gt;

&lt;p&gt;Key Ideas&lt;/p&gt;

&lt;p&gt;Break the problem into smaller subproblems&lt;/p&gt;

&lt;p&gt;Define a base case&lt;/p&gt;

&lt;p&gt;The recursive call solves the rest&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
def factorial(n):&lt;br&gt;
    if n == 0:&lt;br&gt;
        return 1&lt;br&gt;
    return n * factorial(n - 1)&lt;/p&gt;

&lt;p&gt;I also solved one basic recursion problem to understand how recursive calls work in the call stack.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hashing (Basics)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next, I explored hashing, which is used to map keys to values efficiently.&lt;/p&gt;

&lt;p&gt;Why Hashing is Useful&lt;/p&gt;

&lt;p&gt;Fast lookup&lt;/p&gt;

&lt;p&gt;Efficient data retrieval&lt;/p&gt;

&lt;p&gt;Commonly used for frequency counting problems&lt;/p&gt;

&lt;p&gt;Example Idea&lt;/p&gt;

&lt;p&gt;Counting the occurrences of elements using a hash map.&lt;/p&gt;

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

&lt;p&gt;arr = [1,2,2,3,3,3]&lt;/p&gt;

&lt;p&gt;freq = {}&lt;/p&gt;

&lt;p&gt;for num in arr:&lt;br&gt;
    freq[num] = freq.get(num,0) + 1&lt;/p&gt;

&lt;p&gt;print(freq)&lt;/p&gt;

&lt;p&gt;I solved one hashing-based problem to practice the concept.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding Live Stream Architecture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Today I explored how live streaming platforms work behind the scenes.&lt;/p&gt;

&lt;p&gt;Reference video:&lt;br&gt;
&lt;a href="https://youtu.be/Q9LC-WN9X4k" rel="noopener noreferrer"&gt;https://youtu.be/Q9LC-WN9X4k&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basic Flow&lt;br&gt;
Camera / Stream Source&lt;br&gt;
        ↓&lt;br&gt;
Encoder&lt;br&gt;
        ↓&lt;br&gt;
Streaming Server (RTMP)&lt;br&gt;
        ↓&lt;br&gt;
CDN (Content Delivery Network)&lt;br&gt;
        ↓&lt;br&gt;
Viewer Devices&lt;br&gt;
Important Concepts&lt;/p&gt;

&lt;p&gt;Video Encoding&lt;/p&gt;

&lt;p&gt;Streaming Protocols&lt;/p&gt;

&lt;p&gt;Content Delivery Networks (CDNs)&lt;/p&gt;

&lt;p&gt;Real-time data delivery&lt;/p&gt;

&lt;p&gt;This gave me a good overview of how platforms like YouTube Live or Twitch deliver video streams to millions of users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DevOps Fundamentals&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Today I started learning the foundations of DevOps and infrastructure.&lt;/p&gt;

&lt;p&gt;Localhost&lt;/p&gt;

&lt;p&gt;Refers to the local machine&lt;/p&gt;

&lt;p&gt;Usually accessed using:&lt;/p&gt;

&lt;p&gt;127.0.0.1&lt;br&gt;
Deployment&lt;/p&gt;

&lt;p&gt;Deployment is the process of making an application available to users.&lt;/p&gt;

&lt;p&gt;Common Deployment Approaches&lt;/p&gt;

&lt;p&gt;Manual deployment&lt;/p&gt;

&lt;p&gt;Automated deployment pipelines&lt;/p&gt;

&lt;p&gt;Domain vs IP Address&lt;/p&gt;

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

&lt;p&gt;142.250.183.46  → IP Address&lt;br&gt;
google.com      → Domain Name&lt;/p&gt;

&lt;p&gt;Domains are easier for humans to remember, while computers communicate using IP addresses.&lt;/p&gt;

&lt;p&gt;Routing&lt;/p&gt;

&lt;p&gt;Routing is the process of directing traffic between networks.&lt;/p&gt;

&lt;p&gt;Servers&lt;/p&gt;

&lt;p&gt;Two types of servers I learned today:&lt;/p&gt;

&lt;p&gt;Bare Metal Server&lt;/p&gt;

&lt;p&gt;A physical machine&lt;/p&gt;

&lt;p&gt;Dedicated entirely to one user or application&lt;/p&gt;

&lt;p&gt;Virtual Machine (VM)&lt;/p&gt;

&lt;p&gt;A virtualized system&lt;/p&gt;

&lt;p&gt;Runs on top of a host machine&lt;/p&gt;

&lt;p&gt;SSH Protocol&lt;/p&gt;

&lt;p&gt;SSH (Secure Shell) is used to securely access remote machines.&lt;/p&gt;

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

&lt;p&gt;ssh user@server_ip&lt;/p&gt;

&lt;p&gt;This is widely used in cloud infrastructure and DevOps workflows.&lt;/p&gt;

&lt;p&gt;Key Takeaways&lt;/p&gt;

&lt;p&gt;Recursion helps solve problems using smaller subproblems.&lt;/p&gt;

&lt;p&gt;Hashing enables efficient lookups and frequency counting.&lt;/p&gt;

&lt;p&gt;Live streaming relies on encoders, streaming servers, and CDNs.&lt;/p&gt;

&lt;p&gt;DevOps basics revolve around infrastructure, deployment, and remote server management.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Diving into Cloud Computing.....</title>
      <dc:creator>Darshan </dc:creator>
      <pubDate>Thu, 24 Jul 2025 05:39:32 +0000</pubDate>
      <link>https://dev.to/darshan_b/diving-into-cloud-computing-boh</link>
      <guid>https://dev.to/darshan_b/diving-into-cloud-computing-boh</guid>
      <description>&lt;p&gt;Hey folks! 👋&lt;/p&gt;

&lt;p&gt;After spending some amazing time building projects and learning in the web development space, I’ve recently found a strong interest in cloud computing—and I’ve officially started my journey into this powerful domain!&lt;/p&gt;

&lt;p&gt;The world of cloud its scalability, flexibility, and real-world impact—has really piqued my curiosity, and I’m excited to explore areas like AWS, DevOps, Infrastructure as Code, Cloud Architecture, and beyond.&lt;/p&gt;

&lt;p&gt;🧠 If you're someone who:&lt;/p&gt;

&lt;p&gt;Is currently learning cloud computing&lt;/p&gt;

&lt;p&gt;Is already working in the cloud domain&lt;/p&gt;

&lt;p&gt;…I'd love to connect, learn from your experiences, and get any suggestions, resources, or guidance you might have.&lt;/p&gt;

&lt;p&gt;Let’s learn and grow together in the cloud! 🌩️&lt;br&gt;
Feel free to drop a comment or DM happy to network with like-minded folks! 🙌&lt;/p&gt;

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