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.