Determining when to use containers

Task Statement 2.1: Design scalable and loosely coupled architectures.

📘AWS Certified Solutions Architect – (SAA-C03)


1. What Are Containers?

A container is a lightweight way to package an application together with everything it needs to run:

  • Code
  • Runtime (Java, Python, Node.js, etc.)
  • Libraries and dependencies
  • Configuration files

This ensures the application runs the same way everywhere.

👉 The most common container technology is Docker.


2. Why Containers Are Important in AWS

Containers help you build:

  • Portable applications (run anywhere)
  • Scalable systems
  • Loosely coupled architectures

In AWS, containers are commonly managed using:

  • Amazon Elastic Container Service (ECS)
  • Amazon Elastic Kubernetes Service (EKS)

3. When Should You Use Containers?

This is the most important exam part.


✅ 3.1 When You Need Portability

Use containers when you want your application to run consistently across:

  • Developer machines
  • Test environments
  • Production environments

Why?

Containers package everything together, so there are no “it works on my machine” problems.

👉 Example (IT-focused):

  • A Node.js API packaged in a container runs the same in:
    • Local system
    • AWS ECS cluster
    • Kubernetes cluster

✅ 3.2 When You Are Using Microservices Architecture

Containers are ideal for microservices.

Why?

  • Each service runs in its own container
  • Services are independent (loosely coupled)
  • Easy to deploy and update individually

👉 Example:

  • Authentication service → Container 1
  • Payment service → Container 2
  • Notification service → Container 3

Each can scale separately.


✅ 3.3 When You Need Fast Scaling

Containers:

  • Start quickly (seconds)
  • Use fewer resources than virtual machines

Why?

  • No full operating system per instance
  • Efficient resource usage

👉 Example:

  • A backend API container can quickly scale out using ECS Auto Scaling when traffic increases.

✅ 3.4 When You Want Efficient Resource Utilization

Containers share the host OS, so:

  • More applications can run on the same server
  • Lower cost compared to EC2 instances running separate OS

👉 Important for exam:

  • Containers are more lightweight than EC2 VMs

✅ 3.5 When You Need CI/CD Automation

Containers work very well with:

  • CI/CD pipelines
  • Automated deployments

Why?

  • Same container image is used across all stages

👉 Example:

  • Build → Test → Deploy using the same Docker image

✅ 3.6 When You Need Isolation Between Applications

Each container runs independently:

  • Separate processes
  • Separate dependencies

Why?

  • One application crash does not affect others
  • Avoid dependency conflicts

✅ 3.7 When You Need Version Control of Applications

Containers allow versioning using images.

👉 Example:

  • app:v1
  • app:v2

You can:

  • Roll back easily
  • Deploy new versions safely

✅ 3.8 When You Need Hybrid or Multi-Cloud Deployment

Containers can run:

  • On-premises
  • AWS
  • Other cloud providers

Why?

They are platform-independent.


✅ 3.9 When You Want Immutable Infrastructure

Containers are immutable:

  • You don’t modify running containers
  • You replace them with new versions

👉 Exam tip:

  • Immutable infrastructure = better reliability and consistency

4. When NOT to Use Containers (Very Important for Exam)


❌ 4.1 Simple Applications

If your application is:

  • Small
  • Simple
  • Does not need scaling

👉 Better to use:

  • AWS Lambda
  • EC2 directly

❌ 4.2 When You Want Serverless Without Management

Containers require:

  • Cluster management (ECS/EKS)

👉 Instead use:

  • AWS Lambda

❌ 4.3 Long-Running Monolithic Applications

If application:

  • Is large and tightly coupled
  • Hard to split into microservices

Containers may not give full benefits.


❌ 4.4 When You Don’t Want Operational Overhead

Managing containers involves:

  • Orchestration
  • Networking
  • Scaling policies

👉 Easier alternatives:

  • Lambda
  • Managed services

5. Containers vs Other Compute Options (Exam Comparison)

FeatureContainersEC2Lambda
Startup TimeFastSlowVery fast
ControlMediumFullLow
ScalingFastModerateAutomatic
ManagementMediumHighLow
Cost EfficiencyHighMediumHigh

6. AWS Services for Containers (Must Know)


🔹 Amazon ECS

  • Fully managed by AWS
  • Easy to use
  • Best for beginners

🔹 Amazon EKS

  • Managed Kubernetes
  • More flexible
  • Industry standard

🔹 AWS Fargate

  • Serverless containers
  • No need to manage servers

👉 Exam tip:

  • ECS + Fargate = No server management

7. Key Exam Tips (Very Important)

✔ Use containers when:

  • You need portability
  • You use microservices
  • You need fast scaling
  • You want consistent environments

✔ Prefer ECS when:

  • Simplicity is required

✔ Prefer EKS when:

  • Kubernetes is required

✔ Prefer Fargate when:

  • You don’t want to manage servers

✔ Prefer Lambda when:

  • Fully serverless, event-driven workloads

8. Quick Decision Guide

Use containers if:

  • You need control + scalability + portability

Use Lambda if:

  • You want no infrastructure management

Use EC2 if:

  • You need full OS-level control

Final Summary

Containers are best when you need:

  • Scalable applications
  • Microservices architecture
  • Consistent environments
  • Fast deployment and updates

They are a key part of modern AWS architecture design and frequently appear in the SAA-C03 exam.

Buy Me a Coffee