Understanding AWS Architecture and Global Infrastructure

Chizoba VictoryChizoba Victory
4 min read

What is AWS?

Amazon Web Services (AWS) is the world’s most comprehensive and widely adopted cloud platform. It offers a vast array of services for computing, storage, networking, databases, analytics, machine learning, and more—all delivered on-demand and scalable to your needs.

AWS Global Infrastructure

AWS’s infrastructure is designed for high availability, fault tolerance, and global reach. Here’s how it’s organized:

  • Regions: Physical locations around the world. Each region is a separate geographic area (e.g., us-east-1 in N. Virginia, eu-west-1 in Ireland).

  • Availability Zones (AZs): Each region contains multiple, isolated locations called AZs. These are essentially separate data centers within a region, designed for redundancy.

  • Edge Locations: Used by services like CloudFront (CDN) to cache data closer to users for lower latency.

When you deploy resources (like Lambda functions or DynamoDB tables), you choose the region. For high availability, you can architect your applications to use multiple AZs or even multiple regions.

For example, if you are building an application for Nigerians on AWS infrastructure, for high availability you may choose to deploy your services in the eu-west-1 (Ireland) region as this is closest to Nigeria. However its important to note that not all resources have been made available to all regions

Interacting with AWS

AWS provides several tools to interact with and manage cloud resources. They include:

1. AWS CDK (Cloud Development Kit)

AWS CDK is an open-source software development framework to define your cloud infrastructure as code, using familiar programming languages (TypeScript, Python, Java, etc.). Under the hood, the code is being bundled into a cloudformation stack for deployent. This is especially useful for production and large scale applications. You would want to use this when:

  • You want to version-control your infrastructure.

  • You prefer writing infrastructure code in a real programming language (not just YAML/JSON).

  • You want to automate and repeat deployments (DevOps, CI/CD).

  • For example: Creating an API Gateway, Lambda, and DynamoDB table in a few lines of TypeScript code.

2. AWS SDK (Software Development Kit)

AWS SDK is a set of libraries for various programming languages (Node.js, Python, Java, etc.) that lets your application code interact with AWS services (e.g., put an item in DynamoDB, send an S3 file). You can use this when:

  • Your application (e.g., Lambda, web server) needs to call AWS services programmatically.

  • You want to integrate AWS features directly into your business logic.

  • For example: Using the JavaScript SDK in a Lambda function to read/write data from DynamoDB.

3. AWS CLI (Command Line Interface)

AWS CLI is A command-line tool for managing AWS services. This is useful when:

  • You want to script or automate AWS tasks from the terminal.

  • Quick, manual operations or troubleshooting.

  • For example: Running aws s3 ls to list S3 buckets.

4. AWS Management Console

This is the web-based UI for AWS and it useful when you require quick setup, manual control, or a visual look of AWS services. For example: creating a Lambda from the visual interface.

CDK vs. SDK: When to Use Each

CDK | Define and deploy AWS infrastructure | Creating, updating, or deleting AWS resources (e.g., APIs, databases, permissions) | | SDK | Interact with AWS services from your application code | Reading/writing data, invoking AWS services at runtime (e.g., S3 file upload in Lambda) |

In practice:

  • CDK is for building the house (infrastructure).

  • SDK is for living in the house (application logic).

Example Workflow:

  1. Use CDK to define and deploy an S3 bucket.

  2. Use SDK in your Lambda code to upload files to that bucket.

    1. Use CDK to define and deploy an S3 bucket.
    1. Use SDK in your Lambda code to upload files to that bucket.

When Should You Use Each?

  • CDK: Automate and manage cloud resources, especially for teams, CI/CD, or complex environments.

  • SDK: When your application needs to interact with AWS services at runtime.

  • CLI: For quick scripts, automation, or debugging.

  • Console: For learning, experimentation, or one-off manual changes.

Understanding AWS’s global infrastructure and the right tool for each job is key to building scalable, maintainable cloud applications. Use CDK for infrastructure, SDK for application logic, and leverage the CLI and Console for management and experimentation.

0
Subscribe to my newsletter

Read articles from Chizoba Victory directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Chizoba Victory
Chizoba Victory