본문으로 건너뛰기

사전 요구사항

Multi-Region Shopping Mall 플랫폼을 배포하기 위한 사전 요구사항입니다.

AWS 계정 요구사항

리전 접근 권한

두 개의 AWS 리전에 대한 전체 접근 권한이 필요합니다:

리전역할설명
us-east-1Primary주 리전, 쓰기 작업 처리
us-west-2Secondary보조 리전, 읽기 작업 및 장애 복구

IAM 권한

배포에 필요한 최소 IAM 권한:

{
"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": "*"
}
]
}
프로덕션 환경

실제 프로덕션 환경에서는 최소 권한 원칙에 따라 리소스별로 세분화된 IAM 정책을 사용하세요.

필수 도구

로컬 개발 환경에 다음 도구들이 설치되어 있어야 합니다:

인프라 도구

도구최소 버전설명설치 확인
Terraform>= 1.7.0인프라 프로비저닝terraform version
kubectl>= 1.29Kubernetes 클러스터 관리kubectl version --client
Helm>= 3.14Kubernetes 패키지 관리helm version
AWS CLIv2AWS 리소스 관리aws --version
Docker>= 24.0컨테이너 빌드docker --version

개발 언어 런타임

언어버전사용 서비스설치 확인
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)빌드 도구, 문서 사이트node --version

설치 스크립트

# 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 서비스 할당량

멀티리전 배포를 위해 다음 서비스 할당량이 충분한지 확인하세요:

컴퓨팅 및 네트워킹

서비스할당량 항목최소 필요량 (리전당)
EKSClusters per region2
VPCVPCs per region2
VPCNAT Gateways per AZ3
VPCElastic IPs6
EC2Running On-Demand instances50 vCPU
ALBApplication Load Balancers2

데이터베이스

서비스할당량 항목최소 필요량 (리전당)
AuroraDB clusters1
AuroraDB instances per cluster2
DocumentDBClusters1
DocumentDBInstances per cluster2
ElastiCacheNodes4
ElastiCacheParameter groups2

검색 및 메시징

서비스할당량 항목최소 필요량 (리전당)
OpenSearchDomains1
OpenSearchInstances per domain3
MSKClusters1
MSKBrokers per cluster3

엣지 및 보안

서비스할당량 항목최소 필요량
CloudFrontDistributions1
WAFWeb ACLs per region1
Route 53Hosted zones1
KMSKeys per region5
Secrets ManagerSecrets per region20

할당량 확인 및 증가 요청

# 현재 할당량 확인
aws service-quotas list-service-quotas \
--service-code eks \
--region us-east-1

# 할당량 증가 요청
aws service-quotas request-service-quota-increase \
--service-code eks \
--quota-code L-1194D53C \
--desired-value 5 \
--region us-east-1

도메인 및 인증서

Route 53 도메인

  • 도메인: atomai.click (또는 사용자 도메인)
  • Route 53 Hosted Zone이 생성되어 있어야 함
  • NS 레코드가 도메인 등록 기관에 설정되어 있어야 함

SSL/TLS 인증서

와일드카드 인증서가 필요합니다:

*.atomai.click

ACM에서 인증서 발급:

  • us-east-1: CloudFront용 (필수 - CloudFront는 us-east-1 인증서만 사용)
  • us-west-2: ALB용

네트워크 요구사항

CIDR 블록 계획

필수 포트

포트프로토콜용도
443HTTPSAPI Gateway, 웹 트래픽
5432TCPAurora PostgreSQL
27017TCPDocumentDB
6379TCPElastiCache Valkey
9096TCPMSK Kafka (SASL/SCRAM)
443HTTPSOpenSearch

사전 체크리스트

배포 전 다음 항목을 확인하세요:

  • AWS 계정에 us-east-1, us-west-2 접근 권한 확인
  • IAM 사용자/역할에 필요한 권한 부여
  • 모든 필수 도구 설치 및 버전 확인
  • AWS 서비스 할당량 확인 (필요시 증가 요청)
  • Route 53 Hosted Zone 생성 완료
  • ACM 인증서 발급 완료 (us-east-1, us-west-2)
  • VPC CIDR 블록 충돌 없음 확인

다음 단계

모든 사전 요구사항을 충족했다면, 빠른 시작 가이드로 진행하세요.