Akash's Blog

_

Tuesday, April 15, 2025

System Design Series: DNS

Introduction

DNS (Domain Name System) which translates domain names like www.abc.com to IP address.

Architecture






















Caching takes place at ISP as well as browser end once the IP is received from central DNS server. TTL (Time to Live) configuration determines till what time the DNS record can be cached after that it must be fetched again.

There are different types of DNS records,
  • NS Record : Specifies the DNS server for domain/subdomain.
  • MX Record: Specifies the mail server for accepting the messages.
  • A Record: Points name to IP.
  • CNAME: Points name to another canonical name.

DNS Services can also be used for balancing the load by routing the traffic. Different methods are there for balancing the load through DNS,
  • Round Robin (Weighted Round Robin preferably)
  • Latency Based
  • Geolocation Based
For example, DNS can return IP of US instead of Africa for www.abc.com to the user located in US.

DDoS Attack
A Distributed Denial-of-Service (DDoS) attack is a cyberattack that disrupts a network service, such as a website or server. The goal of a DDoS attack is to make the target inaccessible by overwhelming it with traffic. 

Thursday, April 10, 2025

System Design Series: Load Balancer & Reverse Proxy

Introduction

Load balancer and reverse proxy are the components which are exposed to the client and abstracts the internal system which extends various benefits including scaling, maintenance, flexibility to change, security etc. 

Load Balancer

Load Balancer distributes incoming requests to computing resources. Load balancer can be implemented using hardware or software. Hardware solutions are expensive compared to software solutions.

Benefits

  • Distributes the load.
  • Prevents requests to unhealthy instances.
  • Overcome Single Point of Failure.
  • SSL Termination
  • Session Persistance.

Distribution Methods

  • Random
  • Round Robin
  • Based on Session/Cookie 
  • Least loaded instance
  • Layer 4 (Transport Layer) - Using source/destination IP, ports in header.
  • Layer 7 (Application Layer) - Using header content, message and cookies.




Reverse Proxy

Server acts an interface to internal services. Client requests are forwarded through reverse proxy.
















Benefits

  • SSL Termination
  • Caching staic content
  • Compress/Encrypt server response
  • Flexibility to update underlying server configurations

Note: Tool like nginx can be used as both load balancer and reverse proxy at layer 7 (Application layer).

Saturday, April 5, 2025

How did I clear SAP-C02?

Introduction

I recently cleared the AWS Solutions Architect – Professional (SAP-C02) exam. It’s an intense experience that truly tests you to the core. This was the toughest AWS certification I’ve taken so far. Clearing it on the first attempt is quite challenging. In this post, I’ll be sharing my exam experience and preparation journey, which I hope will help others too.

Preparation

When I began preparing for the exam, it was mostly about reading content, experimenting on AWS, and browsing the internet to learn from the experiences of others who had cleared it. Initially, I was completely directionless—I had no clear plan. As the exam date got closer, the pressure started to build. Preparing while managing a full-time job made it even more challenging.

I realized that the exam isn’t just about knowing services—it's about applying the right solution for a given scenario, considering all the constraints. I juggled between multiple resources (listed below) and focused on understanding the context and purpose of each service as much as possible.
I focused more on understanding the services rather than just memorizing facts. That doesn't mean you can skip memorization entirely—some questions do require specific knowledge, like API Gateway and Lambda timeouts, maximum allowed S3 object size, CIDR block details, and similar technical limits.

I also tried a couple of mock exams on Udemy for practice, which helped me reflect on my understanding and gave useful feedback on my preparation. It's important to mention—don’t rely blindly on the mock test answers. Always question the answers, understand the reasoning behind them, and focus more on learning than just the scores.

During preparation I focused on following things for all the services which I was studying,
  • When to use primarily?
  • When not to use and alternatives?
  • Limitations and Restrictions
  • Scalability, Availability, Fault Tolerance

Exam

The exam is mentally exhausting and can completely drain you with its scenario-based questions and tricky answer choices. Some options may seem correct at first glance and give you a false sense of confidence, but once you deep dive into the question, you realize they're wrong. In fact, the most obvious-looking answers are often the incorrect ones!

I would recommend following,
  • Time Management is extemely important (I almost failed in this!
  • Use Whiteboard wisely during the exam to find most important clues from the question.
  • Don't rush to answer, take time and re-validate your answer.
  • Flag question for review and move ahead if you don't know. Don't invest time there!

If you have a solid understanding of services in Compute, Storage, Security, and Networking, you should be able to answer more than 50% of the questions, based on my experience. However, that alone isn't enough—you need to score at least 750 to pass the exam.

Summary

If you are planning to appear for this exam, you should be confident enough with the understanding of different AWS services along with their use cases and limitations. This exam is bit difficult to clear if you don't have hand-on experience of AWS in my opinion. However, with proper planning and consistency in study can surely make you clear this exam. All the best! 
 

* The sticky note idea is copied from this reddit thread.


↑ Back to Top