This tutorial uses real AWS resources and may incur charges. Clean up your environment after completion to avoid unexpected costs.
| Microservice | Compute | High Availability | Auto Scaling | Core Services |
|---|---|---|---|---|
| Pet Adoption Web | Amazon EKS (2 EC2 worker nodes) | Multi-AZ EC2 spread | EC2 Auto Scaling Group | Application Load Balancer (ALB) |
| Pet Search API | Amazon ECS (2 EC2 instances) | Multi-AZ EC2 spread | EC2 Auto Scaling Group | ALB, DynamoDB (metadata), Amazon S3 (images) |
| Pet Payment API | AWS Fargate (2 tasks) | ALB balanced tasks | Fargate Auto Scaling | API Gateway, AWS Lambda, Amazon Aurora PostgreSQL |
1. Pet Adoption Web Microservice
- Compute: Runs on an Amazon EKS cluster backed by two EC2 worker nodes.
- High Availability: EC2 instances are distributed across two separate Availability Zones.
- Traffic Distribution: Incoming web traffic is routed through an Application Load Balancer (ALB).
- Scalability: The EC2 nodes are managed by an Auto Scaling group that scales out based on CPU and network utilization.
2. Pet Search API Microservice
- Compute: Deployed in an Amazon ECS cluster on two EC2 instances.
- High Availability: Instances run across two Availability Zones for fault tolerance.
- Traffic Distribution: An ALB fronts the ECS service to balance search requests.
- Scalability: The ECS cluster uses an Auto Scaling group to adjust capacity dynamically.
- Data Storage:
- Amazon DynamoDB stores pet metadata (name, price, availability).
- Amazon S3 hosts pet images, enabling efficient content delivery.
3. Pet Payment API Microservice
- Compute: Leverages AWS Fargate to run two serverless containers.
- High Availability: Fargate tasks are spread across multiple Availability Zones and balanced by an ALB.
- Scalability: Task counts adjust automatically via AWS Application Auto Scaling.
- API Integration:
- Amazon API Gateway receives payment requests.
- AWS Lambda functions validate the request, fetch pet details from DynamoDB, and process images from S3.
- Database:
- Amazon Aurora PostgreSQL handles transactional data with a Multi-AZ configuration (one writer, one reader) for automatic failover.
