Posts

Day 2 – Terraform Providers and Versioning Explained with Real AWS Deployment

Image
  Introduction On Day 2 of my 30-Day AWS Terraform Challenge, I moved from understanding concepts to actually running Terraform against AWS. This day focused on Terraform Providers, versioning, and why controlling versions is critical when working with Infrastructure as Code. More importantly, I successfully created real AWS resources using Terraform. AWS Configuration Before running Terraform, I configured AWS CLI to allow my local environment to connect to my AWS account. First, I installed AWS CLI and verified it. Then I configured credentials as below.  This confirmed that my local machine was successfully authenticated with AWS. What are Terraform Providers Terraform providers act as a bridge between Terraform and external systems like AWS. Terraform itself does not directly create resources. Instead, it uses providers such as the AWS provider to communicate with cloud APIs. For AWS, the provider used is hashicorp/aws . Terraform Core vs Provider Version O...

Day 1 – Introduction to Terraform and Infrastructure as Code

Image
Introduction I recently started the 30 Days AWS Terraform Challenge to strengthen my understanding of Infrastructure as Code and cloud automation. Day 1 focused on the fundamentals. It may sound basic, but it sets the foundation for everything that follows. The shift from manual provisioning to automated infrastructure is not just a technical improvement. It is a mindset change. What is Terraform and Infrastructure as Code Terraform, developed by HashiCorp , is a tool that allows us to define cloud infrastructure using code. Infrastructure as Code means we describe resources such as virtual machines, storage, and networks in configuration files instead of creating them manually through a console. This approach makes infrastructure: Repeatable Consistent Version-controlled Easy to scale Instead of remembering steps, we define the desired state and let Terraform handle the execution. Problems with Manual Infrastructure Before Infrastructure as Code, most systems were...

The Price Is a Story. The Cost Is the Truth.

Image
The other day, I was looking at a pair of sunglasses. Same model, same lenses, same performance, yet two very different prices: $244 and $162 . That’s when something clicked. Price isn’t what we think it is. The Illusion of Price We grow up believing a simple rule: higher price means better product, lower price means compromise. But the real world doesn’t work like that. Most of the time, price has little to do with the product itself. It’s about positioning. Brands don’t just sell utility. They sell perception, trust, and convenience, and all of that gets baked into the price tag. What You’re Really Paying For By the time a product reaches you, it carries far more than its manufacturing cost. It includes production, branding, marketing, retail margins, logistics, and customer service. What you pay isn’t just for the object; it’s for the entire system behind it. The price is a story. The cost is the truth. Same Product, Different Buyers Two people can buy the exact same product and pa...

Teaching Patience in a World Obsessed With Speed

Image
  When people talk about money, they usually talk in numbers . “How much will it be worth?” “Will it reach six figures?” “Is that enough?” But numbers without context can be misleading. What actually matters is purchasing power ,   what that money can do when the time comes. This post isn’t about chasing quick returns or timing markets. It’s about inflation , investing , and why time is the most powerful tool parents have when planning for their children. The Quiet Problem With Inflation Inflation doesn’t announce itself loudly. It doesn’t show up as a sudden loss. Instead, it quietly reduces what money can buy year after year. Something that costs $1,000 today may cost $1,700 or more in 20 years  , not because it’s better, but because each dollar is worth a little less. This is why simply saving money isn’t enough anymore. Even “doing nothing” has a cost. Why Cash Loses Without Risk If money sits still: The number stays the same Prices keep rising Purchasing power falls...

Oracle 19c: PDB‑to‑PDB Clone & Refresh Using Database Links (SE2)

Image
A Practical Way to Refresh DEV and TEST from PROD Refreshing DEV or TEST databases from PROD is something every DBA does regularly. Traditionally, this meant using RMAN duplicate or Data Pump. Both approaches work, but they take time, consume storage, and often feel heavier than the problem itself. From Oracle 12.2 onwards, a better option exists. Refreshable PDB allows you to clone one PDB into another using a database link and keep it updated using redo. This feature is fully supported in Oracle 19c Standard Edition 2. In this post, I walk through PDB to PDB cloning and refresh, along with the mistakes that usually cost the most time. Why Use Refreshable PDB Refreshable PDB changes how you think about cloning. Instead of rebuilding environments repeatedly, you create once and refresh when needed. It gives you Faster refresh compared to RMAN or Data Pump No export or import cycle Minimal impact on production Ideal for DEV, TEST, QA, and reporting Works even in Oracle 19c Standard ...

Ansible Automation Platform Jobs Stuck in Pending: Root Cause and Fix

Image
Today I ran into one of those issues that looks complex, but turns out to be beautifully simple. Every job I launched in Ansible Automation Platform (Tower / Controller 4.5) just sat there. No output. No errors. No movement. Just PENDING . And sometimes, silence is the loudest signal. What I Saw Everything looked healthy on the surface: Job templates launched successfully Jobs stayed in PENDING forever No logs, no failures, no hints Execution Environments looked perfectly fine At first, I suspected Ansible itself,  playbooks, environments, something deep. But this didn’t feel like a playbook problem. This felt like something wasn’t even starting . The Turning Point When jobs don’t start at all, it’s usually not Ansible… it’s scheduling. So I went one level lower services. That’s when I checked Receptor , the quiet engine behind job execution in AAP 4.x. And there it was: systemctl status receptor ● receptor.service - Receptor    Loaded: loaded (/usr/lib/system...

Hope in the Future: Why I Prefer Long‑Term Investments Over Quick Wins

Image
  There’s a question I often reflect on: Why am I more inclined toward long‑term, consistent investments instead of rushing into real estate or chasing fast returns? I don’t deny the importance of diversification. Any well‑balanced portfolio should ideally be spread across multiple investment types like equities, real estate, fixed income, and alternative assets. But for me, the future‑focused approach offers something deeper than numbers on a balance sheet. It gives me relief, hope, and most importantly teaches me patience. Long‑term investing forces you to trust time rather than timing. Whether it’s contributing steadily to a TTPF, building a 529 plan for education, holding a VUL life insurance policy, or sticking to systematic investment plans, the philosophy remains the same: consistency over intensity. Automating investments, especially in strong, innovative companies like the so‑called Magnificent 7 removes emotion from the equation and replaces it with discipline. These choi...