<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[My Journey to Learning Computer Science]]></title><description><![CDATA[This Series of blogs include my learning journey of AWs and various core computer science like data, algorithm, etc]]></description><link>https://sadikshyabaral.com.np</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 01:39:25 GMT</lastBuildDate><atom:link href="https://sadikshyabaral.com.np/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Infrastructure as Code: Provisioning EC2 and S3 Using Terraform on AWS]]></title><description><![CDATA[Welcome to another part of my cloud journey! This week was all about stepping into the world of Infrastructure as Code (IaC) using Terraform. Instead of manually clicking through the AWS Console, I learned how to automate the provisioning of infrastr...]]></description><link>https://sadikshyabaral.com.np/infrastructure-as-code-provisioning-ec2-and-s3-using-terraform-on-aws</link><guid isPermaLink="true">https://sadikshyabaral.com.np/infrastructure-as-code-provisioning-ec2-and-s3-using-terraform-on-aws</guid><dc:creator><![CDATA[Sadikshya Baral]]></dc:creator><pubDate>Wed, 02 Jul 2025 07:58:00 GMT</pubDate><content:encoded><![CDATA[<p>Welcome to another part of my cloud journey! This week was all about stepping into the world of <strong>Infrastructure as Code (IaC)</strong> using <strong>Terraform</strong>. Instead of manually clicking through the AWS Console, I learned how to automate the provisioning of infrastructure using code — and it felt like unlocking a superpower. 🚀</p>
<hr />
<h2 id="heading-what-this-week-was-about">📘 What This Week Was About</h2>
<p>I focused on using <strong>Terraform</strong> to provision two core AWS resources:</p>
<ul>
<li><p>An <strong>EC2 instance</strong> (a virtual machine in the cloud)</p>
</li>
<li><p>An <strong>S3 bucket</strong> (AWS’s object storage service)</p>
</li>
</ul>
<p>It marked my shift from doing things manually to describing my infrastructure in code — making deployments faster, consistent, and repeatable.</p>
<hr />
<h2 id="heading-what-i-did">🧠 What I Did</h2>
<p>Here’s what I tackled during the week:</p>
<ol>
<li><p><strong>Installed Terraform CLI</strong><br /> → Got Terraform set up locally.</p>
</li>
<li><p><strong>Configured Terraform to use AWS</strong><br /> → Used an <strong>IAM user</strong> with programmatic access (access key and secret key).</p>
</li>
<li><p><strong>Created core Terraform files</strong></p>
<ul>
<li><p><a target="_blank" href="http://main.tf"><code>main.tf</code></a>: Defined my EC2 instance and S3 bucket.</p>
</li>
<li><p><a target="_blank" href="http://variables.tf"><code>variables.tf</code></a>: Declared input variables for flexibility.</p>
</li>
</ul>
</li>
<li><p><strong>Deployed Infrastructure</strong></p>
<ul>
<li>Ran <code>terraform init</code>, <code>terraform plan</code>, and <code>terraform apply</code> to spin everything up.</li>
</ul>
</li>
<li><p><strong>Bonus</strong>: I automated <strong>S3 event notifications</strong> using Terraform — integrating knowledge from Week 2!</p>
</li>
</ol>
<hr />
<h2 id="heading-tools-i-used">⚙️ Tools I Used</h2>
<ul>
<li><p><strong>Terraform CLI</strong></p>
</li>
<li><p><strong>AWS IAM User</strong> (with appropriate permissions)</p>
</li>
<li><p><strong>EC2 &amp; S3 Services</strong></p>
</li>
</ul>
<hr />
<h2 id="heading-why-this-was-so-powerful">🚀 Why This Was So Powerful</h2>
<ul>
<li><p>🔁 <strong>Repeatability</strong>: I can now recreate environments with a single command.</p>
</li>
<li><p>📜 <strong>Version control</strong>: My infrastructure is now stored in code, tracked in Git.</p>
</li>
<li><p>💼 <strong>Real-world skills</strong>: This is exactly what DevOps and Cloud Engineers do daily.</p>
</li>
</ul>
<p>Terraform opened a new door — from messy, manual setups to clean, consistent, and scalable infrastructure deployment.</p>
]]></content:encoded></item><item><title><![CDATA[Deploying Static Websites with CI/CD: GitHub + AWS CodePipeline]]></title><description><![CDATA[Overview
This week, I dove into the world of DevOps by setting up a CI/CD pipeline to automatically deploy a static website every time I push changes to GitHub. The goal was to streamline the deployment process and eliminate manual uploads — and it w...]]></description><link>https://sadikshyabaral.com.np/deploying-static-websites-with-cicd-github-aws-codepipeline</link><guid isPermaLink="true">https://sadikshyabaral.com.np/deploying-static-websites-with-cicd-github-aws-codepipeline</guid><dc:creator><![CDATA[Sadikshya Baral]]></dc:creator><pubDate>Fri, 20 Jun 2025 03:57:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ETRPjvb0KM0/upload/ce29d55b676eb63967cfd34f67aba452.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-overview">Overview</h2>
<p>This week, I dove into the world of DevOps by setting up a <strong>CI/CD pipeline</strong> to automatically deploy a static website every time I push changes to GitHub. The goal was to streamline the deployment process and eliminate manual uploads — and it worked like a charm!</p>
<p>Whether you're a beginner or just getting into automation, this guide will give you a quick overview of how I achieved this using <strong>GitHub, AWS CodePipeline, CodeBuild, S3</strong>, and <strong>CloudFront</strong>.</p>
<hr />
<h2 id="heading-what-i-built">What I Built</h2>
<p>I created a simple <strong>static website</strong> using plain HTML and CSS. Here’s the flow of the deployment process I implemented:</p>
<ol>
<li><p><strong>Code on GitHub</strong> – Version-controlled and easy to manage.</p>
</li>
<li><p><strong>AWS CodePipeline</strong> – Triggers automatically whenever I push to the main branch.</p>
</li>
<li><p><strong>CodeBuild</strong> – Optional for static sites, but I used it for future scalability (e.g., compiling assets or linting).</p>
</li>
<li><p><strong>S3 Bucket</strong> – Hosts the static files as a public website.</p>
</li>
<li><p><strong>CloudFront</strong> – Ensures fast, global content delivery via CDN.</p>
</li>
</ol>
<hr />
<h2 id="heading-tools-amp-services-used">Tools &amp; Services Used</h2>
<ul>
<li><p><strong>GitHub</strong> – Code hosting and version control</p>
</li>
<li><p><strong>AWS CodePipeline</strong> – Orchestrates the CI/CD process</p>
</li>
<li><p><strong>AWS CodeBuild</strong> – Handles the build stage (even for static projects)</p>
</li>
<li><p><strong>Amazon S3</strong> – Static site hosting</p>
</li>
<li><p><strong>Amazon CloudFront</strong> – Content Delivery Network (CDN) for speed</p>
</li>
<li><p><strong>IAM (Identity &amp; Access Management)</strong> – Ensures secure communication between services</p>
</li>
</ul>
<hr />
<h2 id="heading-key-takeaways">Key Takeaways</h2>
<ul>
<li><p>🔁 <strong>Fully automated deployments</strong> = no more manual uploads — just push to GitHub and done!</p>
</li>
<li><p>🌍 <strong>S3 + CloudFront</strong> = blazing fast delivery, anywhere in the world</p>
</li>
<li><p>🔐 <strong>IAM roles</strong> are critical in securely allowing services like CodePipeline and CodeBuild to interact with S3 and other AWS resources</p>
</li>
</ul>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>Setting up CI/CD for a static website might seem like overkill at first — but once it’s up and running, it saves tons of time and ensures consistency in your deployments. I</p>
]]></content:encoded></item><item><title><![CDATA[Automating S3 Event Notifications Using Lambda and SNS]]></title><description><![CDATA[Title: How I Automated S3 Event Notifications Using AWS Lambda and SNS 
Overview
For this week blogs, I will talk about how I implemented a real-world automation workflow using Amazon S3, AWS Lambda, and Amazon SNS. My goal? To automatically send mys...]]></description><link>https://sadikshyabaral.com.np/automating-s3-event-notifications-using-lambda-and-sns</link><guid isPermaLink="true">https://sadikshyabaral.com.np/automating-s3-event-notifications-using-lambda-and-sns</guid><category><![CDATA[AWS]]></category><dc:creator><![CDATA[Sadikshya Baral]]></dc:creator><pubDate>Thu, 29 May 2025 04:45:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/3GZNPBLImWc/upload/8839d38c5df50fcfc3713001ca39c141.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Title:</strong> <strong>How I Automated S3 Event Notifications Using AWS Lambda and SNS</strong> </p>
<h2 id="heading-overview">Overview</h2>
<p>For this week blogs, I will talk about how I implemented a real-world automation workflow using <strong>Amazon S3</strong>, <strong>AWS Lambda</strong>, and <strong>Amazon SNS</strong>. My goal? To automatically send myself an email notification every time a new file was uploaded to a specific S3 bucket.</p>
<p>This kind of automation is not only useful for personal projects but also a common pattern in enterprise workflows for building responsive, event-driven systems.</p>
<h2 id="heading-what-i-did">🧠 What I Did</h2>
<p>Here’s a breakdown of the steps I followed:</p>
<h3 id="heading-1-created-an-s3-bucket">1. Created an S3 Bucket</h3>
<p>I started by creating a new Amazon S3 bucket where files would be uploaded. This bucket serves as the trigger source for the event notifications.</p>
<h3 id="heading-2-wrote-a-lambda-function-to-process-events">2. Wrote a Lambda Function to Process Events</h3>
<p>Next, I created a Lambda function using Node.js (you can use Python or other supported runtimes). The function is designed to receive S3 event data and publish a message to SNS.</p>
<pre><code class="lang-plaintext">javascriptCopyEditconst AWS = require('aws-sdk');
const sns = new AWS.SNS();

exports.handler = async (event) =&gt; {
    const bucketName = event.Records[0].s3.bucket.name;
    const objectKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));

    const message = `New file uploaded:\nBucket: ${bucketName}\nFile: ${objectKey}`;

    const params = {
        Message: message,
        Subject: "S3 Upload Notification",
        TopicArn: process.env.SNS_TOPIC_ARN,
    };

    await sns.publish(params).promise();

    return {
        statusCode: 200,
        body: JSON.stringify('Notification sent.'),
    };
};
</code></pre>
<p>I also set the <code>SNS_TOPIC_ARN</code> as an environment variable in the Lambda console.</p>
<h3 id="heading-3-set-up-amazon-sns-for-email-notifications">3. Set Up Amazon SNS for Email Notifications</h3>
<p>I created an SNS topic and subscribed my email address to it. Once confirmed, this topic could now receive messages from Lambda and forward them via email.</p>
<h3 id="heading-4-integrated-everything">4. Integrated Everything</h3>
<p>The final step was connecting the pieces:</p>
<ul>
<li><p><strong>S3 bucket → Lambda trigger:</strong> I enabled event notifications in the S3 bucket settings to trigger the Lambda function on <code>PUT</code> events (file uploads).</p>
</li>
<li><p><strong>Lambda → SNS:</strong> The Lambda function sends a message to SNS when triggered.</p>
</li>
<li><p><strong>SNS → Email:</strong> SNS forwards the message as an email notification to my subscribed address.</p>
</li>
</ul>
<h2 id="heading-tools-used">⚙️ Tools Used</h2>
<ul>
<li><p><strong>Amazon S3</strong> – For storing uploaded files.</p>
</li>
<li><p><strong>AWS Lambda</strong> – To process S3 events and publish messages.</p>
</li>
<li><p><strong>Amazon SNS</strong> – To send email notifications.</p>
</li>
<li><p><strong>IAM Roles</strong> – For securely granting permissions between services.</p>
</li>
</ul>
<h2 id="heading-why-this-matters">🚀 Why This Matters</h2>
<p>In modern cloud-native applications, <strong>automated notifications</strong> and <strong>serverless event-driven pipelines</strong> reduce manual intervention and boost operational responsiveness. Whether you're monitoring logs, triggering batch jobs, or alerting on file uploads, this architecture pattern is powerful and scalable.</p>
<h2 id="heading-key-learnings">🔍 Key Learnings</h2>
<ul>
<li><p><strong>IAM roles and permissions</strong> are crucial. Lambda needs permissions to read from S3 and publish to SNS. Setting up the correct execution role was key to getting this workflow running.</p>
</li>
<li><p><strong>CloudWatch Logs</strong> made debugging Lambda functions straightforward. I was able to trace the event structure and confirm that the message was being sent as expected.</p>
</li>
<li><p><strong>SNS supports multiple subscribers</strong> – not just email, but also SMS, HTTP endpoints, and AWS Lambda functions. This makes it a flexible tool for multi-channel alerting.</p>
</li>
</ul>
<hr />
]]></content:encoded></item><item><title><![CDATA[My Journey to Learning AWS: From EC2 Basics to Infrastructure Automation]]></title><description><![CDATA[Introduction
Hi, I’m Sadikshya Baral — a recent computing graduate and a cloud enthusiast. A few months ago, I started my journey into the world of Amazon Web Services (AWS) with no prior cloud experience. Today, I’ve completed over 35 hands-on AWS p...]]></description><link>https://sadikshyabaral.com.np/my-journey-to-learning-aws-from-ec2-basics-to-infrastructure-automation</link><guid isPermaLink="true">https://sadikshyabaral.com.np/my-journey-to-learning-aws-from-ec2-basics-to-infrastructure-automation</guid><category><![CDATA[journey to aws]]></category><category><![CDATA[AWS]]></category><dc:creator><![CDATA[Sadikshya Baral]]></dc:creator><pubDate>Tue, 20 May 2025 13:05:04 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/cckf4TsHAuw/upload/637ef0c875aa88c34cae866f4018918e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Hi, I’m Sadikshya Baral — a recent computing graduate and a cloud enthusiast. A few months ago, I started my journey into the world of <strong>Amazon Web Services (AWS)</strong> with no prior cloud experience. Today, I’ve completed over 35 hands-on AWS projects ranging from <strong>hosting static sites to automating infrastructure with Terraform</strong>.</p>
<p>This blog is the first in a 4-week series where I’ll share my journey, projects, learnings, and key takeaways — in the hope that it will inspire or guide others stepping into cloud computing.</p>
<hr />
<h3 id="heading-how-it-started-spinning-up-my-first-ec2-instance"><strong>How It Started: Spinning Up My First EC2 Instance</strong></h3>
<p>Like many, my AWS learning began with <strong>EC2</strong>, Amazon’s virtual server. I started by:</p>
<ul>
<li><p>Creating an EC2 instance from scratch</p>
</li>
<li><p>Hosting a <strong>WordPress site</strong></p>
</li>
<li><p>Learning how to SSH into instances</p>
</li>
<li><p>Understanding key pairs and security groups</p>
</li>
</ul>
<p>The first time I saw my WordPress site live from an EC2 instance, it was an "aha" moment. I realized how powerful and accessible cloud infrastructure could be.</p>
<hr />
<h3 id="heading-iam-s3-and-lambda-exploring-aws-core-services"><strong>IAM, S3, and Lambda: Exploring AWS Core Services</strong></h3>
<p>After EC2, I dived deeper into:</p>
<ul>
<li><p><strong>IAM</strong>: Created custom IAM roles and policies to understand access control</p>
</li>
<li><p><strong>S3</strong>: Built and hosted static websites, explored lifecycle policies, versioning, and replication</p>
</li>
<li><p><strong>Lambda</strong>: Developed my first serverless functions, including one that <strong>analyzes text uploaded to S3</strong></p>
</li>
</ul>
<p>I also hosted <strong>Jenkins</strong> on EC2 and used the <strong>AWS pricing calculator</strong> to estimate costs, reinforcing how cloud is both technical and financial.</p>
<hr />
<h3 id="heading-learning-by-building-databases-cicd-amp-serverless"><strong>Learning by Building: Databases, CI/CD &amp; Serverless</strong></h3>
<p>As I got more confident, I started integrating multiple services:</p>
<ul>
<li><p>Installed <strong>MySQL on EC2</strong>, connected it with <strong>MySQL Workbench</strong></p>
</li>
<li><p>Created and managed <strong>RDS</strong> databases</p>
</li>
<li><p>Set up <strong>CI/CD pipelines</strong> using:</p>
<ul>
<li><p>GitHub</p>
</li>
<li><p>CodeCommit</p>
</li>
<li><p>CodePipeline</p>
</li>
<li><p>CodeBuild</p>
</li>
</ul>
</li>
<li><p>Built and deployed static websites automatically</p>
</li>
</ul>
<p>One of my favorite serverless projects was <strong>counting words</strong> from a text file automatically using Lambda triggered by S3 events.</p>
<hr />
<h3 id="heading-evolving-into-devops-amp-infrastructure-as-code"><strong>Evolving into DevOps &amp; Infrastructure as Code</strong></h3>
<p>Once I mastered individual services, I wanted to <strong>automate</strong> the whole process.</p>
<p>That’s when I discovered <strong>CloudFormation and Terraform</strong>:</p>
<ul>
<li><p>Used CloudFormation to automate S3 website hosting</p>
</li>
<li><p>Wrote Terraform scripts to:</p>
<ul>
<li><p>Provision EC2</p>
</li>
<li><p>Set up S3 buckets</p>
</li>
<li><p>Automate S3 replication</p>
</li>
<li><p>Deploy scalable websites using ALB, EC2, and CloudFront</p>
</li>
</ul>
</li>
</ul>
<p>This was a turning point — I saw how infrastructure as code (IaC) could reduce time, errors, and boost productivity.</p>
<hr />
<h3 id="heading-api-security-amp-cloud-compliance"><strong>API Security &amp; Cloud Compliance</strong></h3>
<p>With the foundation laid, I focused on <strong>security and scalability</strong>:</p>
<ul>
<li><p>Used <strong>Amazon Cognito</strong> for securing API access</p>
</li>
<li><p>Learned about <strong>AWS Service Catalog</strong> for governance and compliance</p>
</li>
<li><p>Backed up EC2 instances using <strong>AWS Backup</strong></p>
</li>
<li><p>Accessed EC2 securely using <strong>Session Manager</strong> and <strong>OpenVPN</strong></p>
</li>
</ul>
<hr />
<h3 id="heading-key-takeaways-so-far"><strong>Key Takeaways So Far</strong></h3>
<ul>
<li><p><strong>Hands-on is the best way to learn AWS.</strong> Reading is not enough — build!</p>
</li>
<li><p><strong>Start small</strong>, but keep scaling your knowledge as you go.</p>
</li>
<li><p><strong>Automation is powerful.</strong> Once you get into CloudFormation and Terraform, everything clicks.</p>
</li>
<li><p><strong>Security matters</strong>: IAM, Cognito, and backups are just as important as deploying services.</p>
</li>
</ul>
<hr />
<h3 id="heading-whats-next-in-week-2"><strong>What’s Next in Week 2?</strong></h3>
<p>In Week 2, I’ll dive deeper into a technical post about most practical and exciting projects I’ve done.</p>
<hr />
<h3 id="heading-final-note">Final Note</h3>
<p>If you’re just starting out with AWS, don’t be intimidated. I was there too — confused by acronyms and overwhelmed by the AWS dashboard. But with consistency and curiosity, I turned that confusion into confidence.</p>
<p>Thanks for reading! 😊<br />Let’s keep building.</p>
]]></content:encoded></item></channel></rss>