| name | to-be-architecture |
| description | Design the target AWS architecture โ ECS Fargate / EKS / Serverless choice, VPC topology with public-private-isolated subnets, managed database selection (RDS/Aurora/DynamoDB), IAM boundaries, and observability baseline (CloudWatch, X-Ray, Langfuse). Produces to-be-architecture.md with Mermaid diagram and compliance matrix. Use after modernization-strategy is approved. |
| argument-hint | [strategy-decision-path, target-compute (ecs|eks|serverless)] |
| user-invocable | true |
| model | claude-opus-4-7 |
| allowed-tools | Read,Write,Edit,Grep,Glob,Bash,WebFetch,mcp__aws-documentation,mcp__aws-iac,mcp__aws-pricing,mcp__ecs,mcp__eks |
์ธ์ ์ฌ์ฉํ๋์
strategy-decision.md ๊ฐ ์กด์ฌํ๊ณ decided_pattern ์ด Rehost/Replatform/Refactor ์ค ํ๋์ผ ๋
- Container Orchestration ์ ํ(ECS vs EKS) ๊ณผ VPC ํ ํด๋ก์ง๋ฅผ ํ์ ํด์ผ ํ ๋
- ๋งค๋์ง๋ DB(RDS/Aurora/DynamoDB) ์ ์ ์ฅ์(S3) ์ ์ฉ๋ยท์ฑ๋ฅยท์ํธํ ์ ์ฑ
์ ์ค๊ณํ ๋
- ๊ด์ธก์ฑ(CloudWatch/X-Ray/Langfuse) ๊ณผ ๋ณด์ ํต์ (WAF/Shield/GuardDuty) baseline ์ ์ ์ํ ๋
์ธ์ ์ฌ์ฉํ์ง ์๋์
decided_pattern == Retire | Retain โ ์ ๊ท ์ํคํ
์ฒ ์ค๊ณ ๋ถํ์
decided_pattern == Repurchase โ SaaS ๋์
์ด๋ฏ๋ก AWS ์์ธ ์ํคํ
์ฒ ๋ฏธํด๋น
- ๊ธฐ์กด To-Be ์ค๊ณ๊ฐ ์ด๋ฏธ ์กด์ฌํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋
์ ์ ์กฐ๊ฑด
.omao/plans/modernization/strategy-decision.md ์กด์ฌ ๋ฐ ์ฌ์ฉ์ ์น์ธ ์๋ฃ
- AWS OrganizationยทAccount ์ค๊ณ(๋จ์ผ vs Multi-Account)๊ฐ ๊ฒฐ์ ๋จ
- ๋์ region ๋ฐ AZ ์(์ต์ 2๊ฐ) ํ์
์ ์ฐจ
Step 1. Compute Orchestration ์ ํ
aws-samples container-orchestration-selection.md ๊ธฐ์ค์ผ๋ก ํ๊ฐํฉ๋๋ค.
| ์กฐ๊ฑด | ์ถ์ฒ |
|---|
| ํ DevOps ์ฑ์๋ Low-Medium, ๋จ์ Stateless ์๋น์ค | ECS Fargate |
| K8s ์ด์ ๊ฒฝํ ์์ + ๋ณต์กํ Pod ํจํด + Service Mesh | EKS |
| ์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ฐํ ํธ๋ํฝ, ์ฐ๊ฐ 1M ์ดํ ์์ฒญ | Lambda + API Gateway |
| GPU ์ถ๋ก ์ํฌ๋ก๋ | EKS (GPU NodePool) |
Step 2. VPC ํ ํด๋ก์ง ์ค๊ณ
graph TB
Internet((Internet)) --> ALB[ALB - Public Subnet]
ALB --> AppTier[App Tier - Private Subnet]
AppTier --> DB[(Aurora - Isolated Subnet)]
AppTier --> S3[S3 via VPC Endpoint]
AppTier --> Secrets[Secrets Manager]
- Public Subnet: ALB/NLB, NAT Gateway ์ ์ฉ
- Private Subnet: ์ ํ๋ฆฌ์ผ์ด์
Task/Pod
- Isolated Subnet: Aurora, RDS, ElastiCache โ NAT ์์, VPC Endpoint ๋ง ํ์ฉ
- ์ต์ 2 AZ, CIDR /16, ์๋ธ๋ท /20
Step 3. Managed Database ์ ํ
| ์ํฌ๋ก๋ ํจํด | ์ถ์ฒ | ๊ทผ๊ฑฐ |
|---|
| OLTP, ๋ณต์กํ JOIN | Aurora PostgreSQL | HA, serverless v2 ์ต์
|
| ๋จ์ ํค-๊ฐ, ฮผs latency | DynamoDB | ์๋ฒ๋ฆฌ์ค, ์๋ ์ค์ผ์ผ |
| ๊ธฐ์กด Oracle ํธํ์ฑ | RDS for Oracle ๋๋ Babelfish | ๋ง์ด๊ทธ๋ ์ด์
๋ถ๋ด ์ต์ |
| ์ฝ๊ธฐ ์ง์ฝ + ์บ์ | ElastiCache Redis/Valkey | 1ms ๋ฏธ๋ง ์๋ต |
๊ฒฐ์ ์ ๊ธฐ๋ก ํญ๋ชฉ:
- ์ธ์คํด์ค ํด๋์ค(์:
db.r6g.xlarge) ์ Multi-AZ ์ฌ๋ถ
- ์ ์ฅ ์ฉ๋, IOPS ์ ํ
- ์ํธํ(KMS CMK), ๋ฐฑ์
๋ณด์กด ๊ธฐ๊ฐ
- ๋ง์ด๊ทธ๋ ์ด์
๋๊ตฌ(DMS, Schema Conversion Tool) ์ ํ
Step 4. Observability Baseline
| ๋ชฉ์ | ๋๊ตฌ |
|---|
| ๋ฉํธ๋ฆญ | CloudWatch Metrics + Prometheus (EKS ์) |
| ๋ก๊ทธ | CloudWatch Logs + Fluent Bit |
| ํธ๋ ์ด์ฑ | X-Ray (AWS native) ๋๋ OpenTelemetry โ Langfuse (LLM ํฌํจ ์) |
| ์๋ | CloudWatch Alarms + SNS โ PagerDuty/Opsgenie |
| ๋์๋ณด๋ | CloudWatch Dashboards ๋๋ Grafana |
LLM ์ถ๋ก ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ Langfuse v3.x ๋ฅผ OpenTelemetry ์๋ํฌ์ธํธ๋ก ๊ตฌ์ฑํ์ฌ trace ๋ฅผ ๋ณ๋ ฌ ์์งํฉ๋๋ค.
Step 5. ๋ณด์ ํต์
- ๋คํธ์ํฌ: Security Group
0.0.0.0/0 ์ธ๋ฐ์ด๋ ๊ธ์ง, ALB/NLB ๋ด๋ถ ๋
ธ์ถ ์ Cognito/OIDC/mTLS
- IAM: Least privilege, IRSA (EKS) ๋๋ Task Role (ECS), ์ ์ Access Key ๊ธ์ง
- ๋ฐ์ดํฐ: KMS CMK, S3 Block Public Access, VPC Flow Logs ํ์ฑํ
- ์ํ ํ์ง: GuardDuty, Security Hub, Config Rules
- WAF: OWASP Top 10 ๊ด๋ฆฌํ ๊ท์น ์ธํธ ์ ์ฉ
Step 6. Compliance Matrix
๊ฐ ๊ท์ ํญ๋ชฉ์ ๋ํด ์ํคํ
์ฒ ํต์ ๋ฅผ ๋งคํํฉ๋๋ค.
| ๊ท์ | ์๊ตฌ์ฌํญ | ์ํคํ
์ฒ ํต์ |
|---|
| ISMS-P | ์ํธํ ์ ์ฅ | KMS CMK (DB, S3, EBS) |
| ์ ์๊ธ์ต๊ฐ๋
๊ท์ | ๋ง๋ถ๋ฆฌ | Isolated Subnet + VPC Endpoint |
| PCI-DSS | ์นด๋ ์ ๋ณด ๊ฒฉ๋ฆฌ | Tokenization + ์ ์ฉ VPC + WAF |
| SOC 2 | ๊ฐ์ฌ ๋ก๊ทธ | CloudTrail + S3 (log archive account) |
Step 7. Output ์ฐ์ถ
.omao/plans/modernization/to-be-architecture.md ์ ๋ค์ ์น์
์ ํฌํจํฉ๋๋ค.
# To-Be Architecture
- compute: ECS Fargate (2 AZ, service auto-scaling target 70% CPU)
- vpc: 10.0.0.0/16, subnets (public/private/isolated) ร 2 AZ
- database: Aurora PostgreSQL 15 / r6g.xlarge / Multi-AZ / KMS CMK
- storage: S3 (versioning, SSE-KMS, Block Public Access)
- observability: CloudWatch + X-Ray + Langfuse (v3.x)
- security: WAF v2, GuardDuty, Security Hub, IRSA/Task Role
- compliance_matrix: (Step 6 ํ)
- mermaid_diagram: (Step 2 ๋ค์ด์ด๊ทธ๋จ)
- estimated_monthly_cost_usd: 12,400
- next_skill: containerization
Step 8. IaC ์ค์ผ์น (์ ํ)
mcp__aws-iac ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ธฐ CDK/Terraform ์ค์ผ์น๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ Draft ์ด๋ฉฐ, containerization skill ์์ ํ์ ๋ฉ๋๋ค.
์ข์ ์์
- ECS Fargate + Aurora PostgreSQL + CloudWatch + WAF โ Replatform ํ์ค ํจํด
- EKS + Karpenter + Aurora Serverless v2 + OpenTelemetry โ Refactor + ๋ณ๋ ํธ๋ํฝ ๋์
- Lambda + API Gateway + DynamoDB โ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋ฒ๋ฆฌ์ค ์ฌ์ค๊ณ
๋์ ์์ (๊ธ์ง)
- Public Subnet ์ Aurora ๋ฐฐ์น โ ๋ง๋ถ๋ฆฌ ์์น ์๋ฐ
0.0.0.0/0 SG ์ธ๋ฐ์ด๋ โ ํ์ฌ ์ ์ฑ
์๋ฐ
- ๋จ์ผ AZ ๊ตฌ์ฑ โ HA ์๊ตฌ์ฌํญ ์ถฉ์กฑ ๋ถ๊ฐ
- KMS CMK ์์ด SSE-S3 ๋ง ์ ์ฉํ๋ฉด์ ISMS-P ๋์์ด๋ผ๊ณ ์ฃผ์ฅ
- Compliance Matrix ์๋ตํ๊ณ ์ํคํ
์ฒ ๊ฒฐ์
์ฐธ๊ณ ์๋ฃ
๊ณต์ ๋ฌธ์
์์ฒ ๋ฐฉ๋ฒ๋ก (MIT-0)
๊ด๋ จ ๋ฌธ์ (๋ด๋ถ)
../modernization-strategy/SKILL.md โ ์ ํ skill
../containerization/SKILL.md โ ํ์ skill
/home/ubuntu/workspace/oh-my-aidlcops/plugins/ai-infra/CLAUDE.md โ LLM ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ์ํคํ
์ฒ ์ฐ๊ณ