
AWS Well-Architected Framework: 클라우드를 '제대로' 설계하는 6가지 기둥
EC2 하나 띄우는 건 쉽다. 하지만 '잘' 띄우는 건 다른 문제다. AWS가 10년간 수만 고객의 아키텍처를 리뷰하며 정리한 공식 설계 원칙 — Well-Architected Framework의 6가지 기둥을 20대 눈높이에서 풀어본다.

EC2 하나 띄우는 건 쉽다. 하지만 '잘' 띄우는 건 다른 문제다. AWS가 10년간 수만 고객의 아키텍처를 리뷰하며 정리한 공식 설계 원칙 — Well-Architected Framework의 6가지 기둥을 20대 눈높이에서 풀어본다.
AWS 콘솔에 로그인했다. EC2 인스턴스를 하나 띄웠다. S3 버킷을 만들고, RDS 데이터베이스를 연결했다. 서비스가 돌아간다.
그런데 이상하게 불안하다.
"보안 설정 이거 맞아?" "요금 폭탄 맞는 거 아냐?" "서버 죽으면 어떡하지?" "나중에 사용자 늘어나면 버틸 수 있나?"
이 불안함은 자연스러운 것이다. 클라우드는 자유도가 너무 높다. 같은 서비스를 만들어도 설계 방법은 수십 가지이고, 그중 대부분은 "돌아가긴 하지만 좋은 설계는 아닌" 상태다.
AWS도 이 문제를 알고 있었다. 2012년부터 고객 아키텍처를 리뷰하면서, 같은 실수가 반복된다는 것을 발견했다. 보안 그룹을 0.0.0.0/0으로 열어놓는다든가, 단일 가용 영역에 모든 것을 배치한다든가, 로그를 전혀 남기지 않는다든가.
그래서 AWS는 이 경험을 체계화했다. 그것이 Well-Architected Framework다.
이 글에서는 Well-Architected Framework의 6가지 기둥(Pillar)을 하나씩 뜯어보겠다. 각 기둥이 무엇을 다루는지, 왜 중요한지, 실무에서 어떤 모습인지를 20대 눈높이에서 풀어본다.

AWS Well-Architected Framework는 클라우드 워크로드를 설계하고 운영할 때 따라야 할 모범 사례를 6가지 기둥으로 정리한 공식 가이드다.
건축에 비유하면 이해가 쉽다. 건물을 지을 때 "건축법"이 있다. 내진 설계, 방화 구획, 비상구 위치 같은 것들. 건축법을 무시하고 지어도 건물은 서 있을 수 있지만, 지진이 오거나 화재가 나면 무너진다.
Well-Architected Framework은 클라우드의 건축법이다. 지키지 않아도 서비스는 돌아가지만, 트래픽이 몰리거나 보안 사고가 나거나 요금 청구서를 열어보는 순간 후회하게 된다.
6가지 기둥은 서로 독립적이지 않다. 하나를 극대화하면 다른 하나가 희생될 수 있다.
Well-Architected Framework은 "모든 기둥을 100점으로 만들어라"가 아니다. 비즈니스 상황에 맞게 기둥 간 균형을 잡아라는 것이다. 그래서 프레임워크를 이해하는 것이 중요하다 — 어떤 선택이 어떤 기둥에 영향을 미치는지 알아야 현명한 트레이드오프를 할 수 있다.
"장애가 터졌을 때, 우리 팀은 당황하지 않고 체계적으로 대응할 수 있는가?"
운영 우수성은 시스템을 얼마나 잘 운영하는가에 관한 기둥이다. 코드를 잘 짜는 것만큼이나 운영 프로세스를 잘 설계하는 것이 중요하다는 메시지다.
| 서비스 | 역할 |
|---|---|
| AWS CloudFormation / CDK | Infrastructure as Code |
| AWS CodePipeline / CodeBuild | CI/CD 파이프라인 |
| AWS Systems Manager | 운영 자동화, Runbook 관리 |
| AWS CloudWatch | 모니터링, 알람, 로그 |
| AWS X-Ray | 분산 추적 (마이크로서비스 디버깅) |

"누가 무엇에 접근할 수 있는가? 데이터는 안전한가?"
보안 기둥은 다른 5개 기둥과 다르게 양보가 불가능하다. 성능을 조금 포기하거나 비용을 조금 더 쓰는 건 괜찮지만, 보안을 "적당히"하면 비즈니스 자체가 위험해진다.
AWS 보안에서 가장 먼저 이해해야 할 것은 IAM(Identity and Access Management)이다.
보안에서 자주 나오는 암호화는 두 가지 상태를 다룬다.
| 구분 | 저장 시 암호화 (At Rest) | 전송 시 암호화 (In Transit) |
|---|---|---|
| 대상 | S3, EBS, RDS에 저장된 데이터 | 네트워크를 통해 이동 중인 데이터 |
| 방법 | AWS KMS 키로 AES-256 암호화 | TLS/SSL 인증서 적용 |
| 비유 | 금고에 잠긴 문서 | 밀봉된 편지를 등기우편으로 발송 |
| AWS 서비스 | AWS KMS, CloudHSM | ACM (Certificate Manager) |
| 기본 제공 여부 | S3, RDS 등 대부분 기본 옵션 | ALB, CloudFront에서 TLS 기본 지원 |
보안은 "차단"만으로는 부족하다. 누군가 벽을 넘었을 때 알아채는 것도 중요하다.
| 서비스 | 역할 |
|---|---|
| AWS CloudTrail | 모든 API 호출 기록 (누가 뭘 했는지) |
| Amazon GuardDuty | AI 기반 위협 탐지 (비정상 행위 감지) |
| AWS Config | 리소스 설정 변경 추적 + 규정 준수 평가 |
| AWS Security Hub | 보안 알림 통합 대시보드 |
AdministratorAccess 정책을 붙이는 것. 개인 프로젝트라도 IAM Role을 사용하고, 필요한 권한만 부여하는 습관을 들여야 한다. 루트 계정은 MFA를 설정하고 사용하지 않는다.
"서버 하나가 죽으면 서비스도 같이 죽는가?"
안정성 기둥은 시스템이 장애로부터 복구하고, 수요 변화에 적응하며, 중단 없이 운영되는 능력에 관한 것이다.
클라우드의 가장 큰 장점은 장애를 전제로 설계할 수 있다는 것이다. 온프레미스에서는 서버가 죽지 않기를 바라지만, 클라우드에서는 "서버는 반드시 죽는다"를 전제로 아키텍처를 짠다.
AZ(Availability Zone)는 같은 리전 내에서 물리적으로 분리된 데이터센터 그룹이다. AZ-a에 있는 서버가 전부 죽어도, AZ-b와 AZ-c에서 서비스가 계속된다. 이것이 Multi-AZ 배포다.
"9가 하나 더 붙는 게 뭐가 다르냐"고 생각할 수 있다. 하지만 그 차이는 크다.
99.999%(Five 9s)를 달성하려면 연간 다운타임이 5분 남짓이어야 한다. 이 수준을 달성하려면 Multi-Region 배포, 자동 장애 조치(Auto Failover), Health Check 기반 라우팅 등 고도화된 아키텍처가 필요하고 — 당연히 비용도 올라간다. 그래서 우리 서비스에 어떤 수준의 가용성이 필요한지 먼저 판단해야 한다.
Auto Scaling은 탄력성(Elasticity)의 핵심이다. 피크 시간에 서버 10대, 새벽에 서버 2대 — 수요에 맞게 리소스가 자동으로 조절된다. "최대 부하에 맞춰 항상 서버 10대를 유지"하는 온프레미스 방식과의 결정적 차이다.
| 서비스 | 역할 |
|---|---|
| Elastic Load Balancing | 트래픽 분산, 헬스 체크 |
| Auto Scaling | 자동 확장/축소 |
| Amazon Route 53 | DNS 기반 라우팅, 헬스 체크 기반 장애 조치 |
| AWS Backup | 중앙화된 백업 관리 |
| Amazon S3 | 99.999999999%(11 9s) 내구성 객체 스토리지 |
"지금 사용하는 리소스가 워크로드에 최적인가?"
성능 효율성은 단순히 "빠르면 좋다"가 아니다. 컴퓨팅 리소스를 효율적으로 사용하면서 성능 요구사항을 충족하는 것, 그리고 기술이 발전하면 이에 맞게 지속적으로 최적화하는 것이다.
초보자가 가장 많이 하는 실수 중 하나가 인스턴스 유형을 잘못 선택하는 것이다.
| 워크로드 유형 | 추천 인스턴스 패밀리 | 예시 | 특징 |
|---|---|---|---|
| 웹 서버 / API | 범용 (M 시리즈) | m7g.large | CPU와 메모리 균형 |
| 머신러닝 학습 | GPU (P/G 시리즈) | p5.48xlarge | NVIDIA GPU 탑재 |
| 인메모리 캐시 | 메모리 최적화 (R 시리즈) | r7g.2xlarge | 대용량 RAM |
| 배치 처리 / 인코딩 | 컴퓨팅 최적화 (C 시리즈) | c7g.4xlarge | 높은 CPU 성능 |
| 빅데이터 분석 | 스토리지 최적화 (I/D 시리즈) | i4i.xlarge | 높은 I/O 처리량 |
ML 학습에 범용 인스턴스를 쓰면 GPU가 없어서 학습이 느리고, 웹 서버에 GPU 인스턴스를 쓰면 비싼 GPU가 놀고 있다. 워크로드의 특성을 파악하고 맞는 유형을 선택하는 것이 Right-Sizing이다.
같은 데이터를 매번 데이터베이스에서 읽어오는 것은 비효율적이다. 캐싱은 자주 접근하는 데이터를 빠른 저장소에 미리 올려놓는 전략이다.
CDN(Content Delivery Network)은 글로벌 성능을 혁신적으로 개선한다. 한국 사용자가 미국 서버에서 이미지를 받으면 200ms가 걸리지만, 서울 엣지 로케이션의 CloudFront에서 받으면 20ms 안에 끝난다.

"우리가 쓰는 비용 중에 낭비되는 부분은 없는가?"
클라우드의 가장 큰 장점인 "쓴 만큼만 낸다(Pay-as-you-go)"는, 뒤집으면 "관리하지 않으면 끝없이 나간다"는 뜻이기도 하다.
| 구매 옵션 | On-Demand | Reserved (RI) | Savings Plans | Spot |
|---|---|---|---|---|
| 할인율 | 0% (기준가) | 최대 72% | 최대 66% | 최대 90% |
| 약정 | 없음 | 1년 또는 3년 | 1년 또는 3년 | 없음 |
| 유연성 | 완전 유연 | 특정 인스턴스 고정 | 패밀리/리전 유연 | 2분 전 중단 알림 |
| 적합한 경우 | 단기/테스트 | 24/7 프로덕션 | 안정적이지만 유연한 워크로드 | 배치, 학습, CI/CD |
비용 최적화의 시작은 "돈이 어디에 나가는지 아는 것"이다. AWS 리소스에 태그를 달면 팀별, 프로젝트별, 환경별로 비용을 분류할 수 있다.
| 서비스 | 역할 |
|---|---|
| AWS Cost Explorer | 비용 시각화, 트렌드 분석 |
| AWS Budgets | 예산 설정, 초과 시 알림 |
| AWS Compute Optimizer | Right-Sizing 권장 사항 |
| AWS Trusted Advisor | 비용, 보안, 성능 등 전반적 점검 |
| AWS Cost Anomaly Detection | 비정상 비용 증가 자동 탐지 |
"같은 결과를 더 적은 에너지로 달성할 수 있는가?"
지속 가능성은 2021년에 추가된 가장 최신 기둥이다. 기후 변화에 대한 글로벌 관심이 높아지면서, 클라우드 아키텍처가 환경에 미치는 영향도 고려해야 한다는 인식이 반영됐다.
지속 가능성 기둥은 "전력 회사를 바꿔라"가 아니다. 아키텍처 설계 단계에서 환경 영향을 줄이는 선택을 하라는 것이다.
AWS는 콘솔에서 Customer Carbon Footprint Tool을 무료로 제공한다. 내 AWS 사용량이 만들어내는 탄소 배출량을 확인하고, 시간에 따른 추세를 볼 수 있다.
AWS 콘솔에서 무료로 사용할 수 있는 AWS Well-Architected Tool은 6가지 기둥에 대한 셀프 리뷰 질문지를 제공한다.
기본 6가지 기둥 외에도, 특정 도메인에 맞는 Lens(렌즈)를 적용할 수 있다.
| Lens | 대상 |
|---|---|
| Serverless Lens | Lambda, API Gateway 중심 아키텍처 |
| SaaS Lens | 멀티테넌트 SaaS 애플리케이션 |
| Data Analytics Lens | 데이터 레이크, ETL 파이프라인 |
| Machine Learning Lens | ML 모델 학습과 추론 워크로드 |
| IoT Lens | IoT 디바이스 연결과 데이터 수집 |
| Container Build Lens | ECS, EKS 기반 컨테이너 아키텍처 |
Well-Architected Framework을 읽는 것과 직접 해보는 것은 완전히 다르다. AWS는 Well-Architected Labs라는 핸즈온 실습 자료를 무료로 제공한다.
| 기둥 | 추천 Lab | 배우는 것 | 난이도 |
|---|---|---|---|
| 운영 우수성 | Inventory and Patch Management | Systems Manager로 자동 패치 | 100 (입문) |
| 보안 | IAM Permission Boundaries | IAM 권한 경계 설정 | 200 (중급) |
| 안정성 | Testing Resiliency | EC2/RDS 장애 시뮬레이션 | 300 (고급) |
| 성능 효율성 | Monitoring with CloudWatch Dashboards | 커스텀 메트릭과 대시보드 | 100 (입문) |
| 비용 최적화 | Cost Visualization | Cost Explorer + 태깅 전략 | 100 (입문) |
| 지속 가능성 | Carbon Footprint Measurement | 탄소 발자국 도구 사용법 | 100 (입문) |
Well-Architected Framework을 공부하면 자연스럽게 AWS 자격증 준비가 된다. 특히 Solutions Architect Associate (SAA-C03) 시험은 Well-Architected Framework의 내용과 상당 부분 겹친다.
SAA 시험은 직접적으로 "Well-Architected Framework의 6가지 기둥을 나열하시오" 같은 문제를 내지 않는다. 대신, 시나리오 기반으로 Well-Architected 원칙을 적용하는 능력을 평가한다.
시험의 96%가 Well-Architected 기둥과 직접 매핑된다. Well-Architected Framework을 제대로 이해하면 SAA 시험의 기반이 완성된다.
지금까지 다룬 6가지 기둥을 한 번에 정리하면 다음과 같다.
| 기둥 | 핵심 질문 | 대표 AWS 서비스 | 핵심 키워드 |
|---|---|---|---|
| 운영 우수성 | 체계적으로 운영하는가? | CloudFormation, Systems Manager | IaC, CI/CD, Runbook |
| 보안 | 데이터와 접근은 안전한가? | IAM, KMS, GuardDuty | 최소 권한, 암호화, 탐지 |
| 안정성 | 장애에서 복구되는가? | ELB, Auto Scaling, Route 53 | Multi-AZ, RTO/RPO, Auto Scaling |
| 성능 효율성 | 리소스를 효율적으로 쓰는가? | CloudFront, ElastiCache, Graviton | Right-Sizing, 캐싱, CDN |
| 비용 최적화 | 낭비 없이 쓰고 있는가? | Cost Explorer, Budgets, Compute Optimizer | 태깅, RI/Spot, 서버리스 |
| 지속 가능성 | 더 적은 에너지로 가능한가? | Graviton, Lambda, S3 Lifecycle | 탄소 발자국, 에너지 효율 |
Well-Architected Framework은 "정답"이 아니라 "지도"다.
모든 서비스에 적용되는 만능 아키텍처는 존재하지 않는다. 스타트업의 MVP와 금융권의 핵심 서비스는 같은 프레임워크로 평가되지만, 각 기둥의 가중치는 완전히 다르다. 스타트업은 비용 최적화에 무게를 두고, 금융권은 보안과 안정성에 무게를 둔다.
중요한 것은 "이런 기둥들이 있고, 내 선택이 각 기둥에 어떤 영향을 미치는지 인지하는 것"이다.
처음부터 완벽한 아키텍처를 만들 필요는 없다. 하지만 Well-Architected의 6가지 렌즈를 알고 있으면, EC2 인스턴스 하나를 띄울 때도 "보안 그룹은 필요한 포트만 열었는가?", "Multi-AZ가 필요한가?", "On-Demand로 충분한가?"를 자연스럽게 생각하게 된다.
이것이 클라우드를 "쓰는" 것과 "제대로 쓰는" 것의 차이다.