Skip to main content

Prerequisites

Prerequisites for deploying the Multi-Region Shopping Mall platform.

AWS Account Requirements

Region Access Permissions

Full access permissions are required for two AWS regions:

RegionRoleDescription
us-east-1PrimaryMain region, handles write operations
us-west-2SecondarySecondary region, read operations and disaster recovery

IAM Permissions

Minimum IAM permissions required for deployment:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"eks:*",
"ec2:*",
"elasticache:*",
"rds:*",
"docdb:*",
"es:*",
"kafka:*",
"s3:*",
"cloudfront:*",
"route53:*",
"wafv2:*",
"kms:*",
"secretsmanager:*",
"iam:*",
"logs:*",
"xray:*",
"ecr:*"
],
"Resource": "*"
}
]
}
Production Environment

In actual production environments, use granular IAM policies per resource following the principle of least privilege.

Required Tools

The following tools must be installed in your local development environment:

Infrastructure Tools

ToolMinimum VersionDescriptionVerification
Terraform>= 1.7.0Infrastructure provisioningterraform version
kubectl>= 1.29Kubernetes cluster managementkubectl version --client
Helm>= 3.14Kubernetes package managementhelm version
AWS CLIv2AWS resource managementaws --version
Docker>= 24.0Container buildsdocker --version

Development Language Runtimes

LanguageVersionServices UsedVerification
Go1.21+api-gateway, event-bus, cart, search, inventorygo version
Java17 (LTS)order, payment, user-account, warehouse, returns, pricing, sellerjava -version
Python3.11+product-catalog, shipping, user-profile, recommendation, wishlist, analytics, notification, reviewpython3 --version
Node.js20 (LTS)Build tools, documentation sitenode --version

Installation Scripts

# macOS (Homebrew)
brew install terraform kubectl helm awscli docker
brew install go openjdk@17 python@3.11 node@20

# Ubuntu/Debian
# Terraform
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# AWS CLI v2
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install

AWS Service Quotas

Verify that the following service quotas are sufficient for multi-region deployment:

Compute and Networking

ServiceQuota ItemMinimum Required (per region)
EKSClusters per region2
VPCVPCs per region2
VPCNAT Gateways per AZ3
VPCElastic IPs6
EC2Running On-Demand instances50 vCPU
ALBApplication Load Balancers2

Databases

ServiceQuota ItemMinimum Required (per region)
AuroraDB clusters1
AuroraDB instances per cluster2
DocumentDBClusters1
DocumentDBInstances per cluster2
ElastiCacheNodes4
ElastiCacheParameter groups2

Search and Messaging

ServiceQuota ItemMinimum Required (per region)
OpenSearchDomains1
OpenSearchInstances per domain3
MSKClusters1
MSKBrokers per cluster3

Edge and Security

ServiceQuota ItemMinimum Required
CloudFrontDistributions1
WAFWeb ACLs per region1
Route 53Hosted zones1
KMSKeys per region5
Secrets ManagerSecrets per region20

Checking and Requesting Quota Increases

# Check current quotas
aws service-quotas list-service-quotas \
--service-code eks \
--region us-east-1

# Request quota increase
aws service-quotas request-service-quota-increase \
--service-code eks \
--quota-code L-1194D53C \
--desired-value 5 \
--region us-east-1

Domain and Certificates

Route 53 Domain

  • Domain: atomai.click (or your own domain)
  • Route 53 Hosted Zone must be created
  • NS records must be configured at the domain registrar

SSL/TLS Certificates

A wildcard certificate is required:

*.atomai.click

Issue certificates in ACM:

  • us-east-1: For CloudFront (required - CloudFront only uses us-east-1 certificates)
  • us-west-2: For ALB

Network Requirements

CIDR Block Planning

Required Ports

PortProtocolPurpose
443HTTPSAPI Gateway, web traffic
5432TCPAurora PostgreSQL
27017TCPDocumentDB
6379TCPElastiCache Valkey
9096TCPMSK Kafka (SASL/SCRAM)
443HTTPSOpenSearch

Pre-Deployment Checklist

Verify the following items before deployment:

  • Confirm us-east-1, us-west-2 access permissions on AWS account
  • Grant required permissions to IAM user/role
  • Install all required tools and verify versions
  • Check AWS service quotas (request increases if needed)
  • Route 53 Hosted Zone creation complete
  • ACM certificate issuance complete (us-east-1, us-west-2)
  • Confirm no VPC CIDR block conflicts

Next Steps

Once all prerequisites are met, proceed to the Quick Start Guide.