신뢰성 및 성능 효율성 원칙
자동 복구, 수평 확장 및 용량 관리를 고려해 설계하고, 적합한 리소스 유형을 선택하며, 시간이 지나도 성능이 유지되도록 모니터링합니다.
신뢰성 및 성능 효율성 원칙은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
Reliability 필라 개요
Well-Architected Framework의 Reliability 필라는 워크로드가 필요할 때 의도한 기능을 정확하고 일관되게 수행하도록 보장합니다. Reliability는 세 가지 영역을 포함합니다. 기반(서비스 제한, Network 토폴로지), 워크로드 아키텍처(분산 시스템, SPOF 방지), 변경 관리 및 Failure 관리(모니터링, Scaling, Failure 복구)입니다. 목표는 인프라 또는 서비스 중단에서 자동으로 복구되는 시스템을 구축하는 것입니다.
# Reliability design principles:
# 1. Automatically recover from failure
# 2. Test recovery procedures
# 3. Scale horizontally to increase availability
# 4. Stop guessing capacity (use auto scaling)
# 5. Manage change in automation (IaC + CI/CD)
# Key AWS services for reliability:
# - Auto Scaling Groups
# - Elastic Load Balancing
# - Route 53 health checks
# - AWS Backup서비스 제한 및 Quotas
AWS는 모든 고객을 보호하기 위해 리소스에 서비스 Quotas(이전에는 제한이라고 함)를 적용합니다. 예를 들면 리전별 기본 EC2 인스턴스 제한, VPC 제한, Lambda 동시 실행 수 제한이 있습니다. 워크로드가 예기치 않게 Quota에 도달하면 요청이 제한되거나 거부되어 Reliability Failure가 발생합니다. 필요해지기 전에 Service Quotas 콘솔 또는 CLI를 사용하여 현재 제한을 확인하고 증가를 요청하십시오. 사용량 Metric을 모니터링하여 제한에 가까워지는 시점을 탐지하고 가용성에 영향을 받기 전에 대응하십시오.
# List service quotas for EC2
aws service-quotas list-service-quotas \
--service-code ec2 \
--query 'Quotas[?QuotaName==`Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances`]'
# Request quota increase
aws service-quotas request-service-quota-increase \
--service-code ec2 \
--quota-code L-1216C47A \
--desired-value 500Failure로부터 자동 복구
Reliability 필라는 사람의 개입 없이 이루어지는 자동 복구를 강조합니다. AWS는 여러 자동 복구 메커니즘을 제공합니다. EC2 Auto Recovery는 인스턴스의 기본 상태 Check가 Failure하면 동일한 하드웨어에서 인스턴스를 자동으로 복원하거나 정상 하드웨어로 이동합니다. ASG 상태 Check는 비정상 인스턴스를 종료하고 교체 인스턴스를 시작합니다. RDS Multi-AZ는 대기 인스턴스로 자동 장애 조치합니다. 대부분의 Failure 상황이 CloudWatch 경보에 정의된 자동 복구 작업을 트리거하도록 아키텍처를 설계하십시오.
# CloudWatch alarm to auto-recover a specific EC2 instance
aws cloudwatch put-metric-alarm \
--alarm-name EC2-auto-recover \
--metrics '[{"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/EC2","MetricName":"StatusCheckFailed_System","Dimensions":[{"Name":"InstanceId","Value":"i-12345"}]},"Period":60,"Stat":"Maximum"}}]' \
--comparison-operator GreaterThanThreshold \
--threshold 0 \
--evaluation-periods 2 \
--alarm-actions 'arn:aws:automate:us-east-1:ec2:recover'Reliability를 위한 Horizontal Scaling
Reliability 필라는 더 나은 Reliability를 위해 수직 Scaling(더 큰 인스턴스로 확장)보다 수평 Scaling(더 작은 인스턴스를 추가)을 권장합니다. 대형 인스턴스 하나는 단일 Failure 지점입니다. Load Balancer 뒤에 작은 인스턴스를 여러 개 배치하면 개별 인스턴스의 Failure가 미치는 영향이 최소화됩니다. AWS Auto Scaling은 수요에 맞게 인스턴스 집합의 규모를 자동으로 조정하여 충분한 capacity를 확보하고 사용량이 적은 시간에 유휴 리소스 비용을 지불하지 않도록 합니다.
# Horizontal scaling: 10 t3.medium vs 1 r5.4xlarge
# 10 t3.medium:
# - Failure of 1 = loss of 10% capacity
# - ASG launches replacement automatically
# - 9 instances absorb load during replacement
# 1 r5.4xlarge:
# - Failure = 100% downtime until instance recovered
# - Much higher RTO (new instance launch: 1-3 min)
# Prefer horizontal scaling for stateless tiersReliability를 위한 Test
Reliability 필라는 복구 절차를 Test하도록 요구하며, 절차가 작동할 것이라고 가정해서는 안 됩니다. AWS Fault Injection Simulator (FIS)를 사용하여 통제된 방식으로 시스템에 Failure를 주입하십시오. 무작위 EC2 인스턴스를 종료하고, API 호출을 제한하며, Network Latency를 주입할 수 있습니다. 안전장치를 마련한 상태에서 이러한 실험을 Production 환경에서 실행하여 모니터링이 Failure를 탐지하고, Auto Scaling이 대응하며, 복구가 RTO 내에 완료되는지 검증하십시오. Test하지 않은 복구 절차는 실제 사고의 압박 속에서 자주 Failure합니다.
# AWS FIS experiment: terminate random instance
aws fis create-experiment-template \
--description 'Chaos: terminate 1 of 5 instances' \
--targets '{"instanceTargets":{"resourceType":"aws:ec2:instance","selectionMode":"COUNT(1)","resourceTags":{"Env":"production"}}}' \
--actions '{"terminateInstance":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"instanceTargets"}}}' \
--stop-conditions '[{"source":"aws:cloudwatch:alarm","value":"arn:aws:cloudwatch::123:alarm:high-error-rate"}]'Performance Efficiency 필라 개요
Performance Efficiency 필라는 시스템 요구 사항을 충족하도록 Compute 리소스를 효율적으로 사용하고, 수요가 변하고 기술이 발전해도 그 효율성을 유지하는 데 중점을 둡니다. 주요 설계 원칙은 다음과 같습니다. 고급 기술을 대중화합니다 — 처음부터 직접 구축하는 대신 관리형 서비스(RDS, SageMaker)를 사용합니다. 몇 분 안에 전 세계로 확장합니다 — CloudFormation으로 여러 리전에 배포합니다. 서버리스 아키텍처를 사용합니다 — 인프라 관리를 제거합니다. 더 자주 실험합니다 — 다양한 인스턴스 유형과 구성을 Test합니다.
# Performance Efficiency areas:
# Selection: Right compute, storage, database, network
# Review: Continuously evaluate new services
# Monitoring: CloudWatch metrics guide decisions
# Trade-offs: Consistency vs performance, latency vs cost
# Example: choosing between services
# RDS vs DynamoDB vs Aurora vs ElastiCache
# → depends on access patterns, consistency needs, scale적합한 Compute 선택
Performance Efficiency는 워크로드에 적합한 Compute 유형을 선택하는 것에서 시작합니다. EC2에는 다양한 사용 사례에 최적화된 수십 가지 인스턴스 제품군이 있습니다. c-series는 Compute 집약적 작업(비디오 인코딩, 일괄 처리), r-series는 메모리 집약적 작업(인메모리 데이터베이스, Caching), i-series는 스토리지 집약적 작업(NoSQL, 데이터 웨어하우징), p/g-series는 GPU 워크로드(ML 학습)에 적합합니다. 잘못된 인스턴스 유형을 사용하면 활용할 수 없는 capacity에 비용을 지불하거나 Performance가 저하됩니다.
# AWS Compute Optimizer: get right-size recommendations
aws compute-optimizer get-ec2-instance-recommendations \
--instance-arns arn:aws:ec2:us-east-1:123:instance/i-12345
# Output shows:
# - Current instance utilisation (CPU, memory, network)
# - Recommended instance type
# - Estimated monthly savings
# - Performance risk of changing
# Lambda: match memory to actual usage
# Use Lambda Power Tuning tool for memory optimisationPerformance Efficiency를 위한 Caching
Caching은 Latency와 데이터베이스 부하를 줄이는 기본적인 Performance Efficiency 기법입니다. ElastiCache(Redis/Memcached)는 데이터베이스 Query 결과를 메모리에 Caching하여 밀리초 단위로 액세스할 수 있게 합니다. CloudFront는 사용자와 가까운 Edge 위치에서 HTTP 응답을 Caching합니다. API Gateway Caching은 API 응답을 Caching하여 Lambda 호출을 줄입니다. DAX (DynamoDB Accelerator)는 DynamoDB 앞에 마이크로초 단위의 인메모리 Cache를 추가합니다. 병목 지점이 데이터베이스인지, API인지, Edge 전달인지에 따라 적합한 Caching 계층을 선택하십시오.
# DAX cluster for DynamoDB microsecond latency
aws dax create-cluster \
--cluster-name my-dax \
--node-type dax.r6g.large \
--replication-factor 3 \
--iam-role-arn arn:aws:iam::123:role/DAXRole \
--subnet-group my-dax-subnet-group
# Application connects to DAX endpoint
# Cache hits: microseconds
# Cache misses: fetches from DynamoDB and caches resultPerformance를 위한 적합한 스토리지
스토리지 선택은 Performance에 큰 영향을 줍니다. io2 Block Express EBS는 고성능 데이터베이스에 최대 256,000 IOPS를 제공합니다. gp3는 대부분의 워크로드에 적합한 기본 옵션이며 비용도 낮습니다. Instance store는 임시 데이터에 가장 높은 IOPS(NVMe)를 제공합니다. S3는 객체 스토리지에서 초당 수천 건의 요청으로 확장할 수 있습니다. EFS는 공유 POSIX 파일 액세스를 제공합니다. 스토리지를 I/O 패턴에 맞추십시오. 순차 Read에는 st1(Throughput Optimised HDD)이 유리하고, 무작위 I/O에는 SSD 볼륨이 필요합니다.
# EBS volume performance characteristics:
# gp3: 3,000-16,000 IOPS, 125-1,000 MB/s
# io2: 100-64,000 IOPS (up to 256k with Block Express)
# st1: 40-500 MB/s sequential throughput (HDD)
# sc1: 12-250 MB/s (cheapest, cold workloads)
# Create high-performance io2 volume
aws ec2 create-volume \
--availability-zone us-east-1a \
--volume-type io2 \
--size 500 \
--iops 50000Performance 모니터링 및 지속적인 개선
Performance Efficiency는 한 번 결정하고 끝나는 것이 아닙니다. AWS가 새로운 서비스를 출시함에 따라 Performance Metric을 Continuously 모니터링하고 선택을 재평가해야 합니다. CloudWatch 대시보드를 사용하여 평균뿐 아니라 p50, p90, p99 Latency 백분위수를 추적하십시오. 평균만 사용하면 꼬리 Latency가 숨겨집니다. X-Ray 추적을 사용하여 요청 체인에서 가장 느린 부분을 식별하십시오. CloudWatch 이상 탐지를 설정하여 정상 기준선을 자동으로 만들고 비정상적인 Performance 편차를 알리도록 하십시오. AWS 발표를 정기적으로 검토하십시오. 새로운 인스턴스 유형은 더 낮은 비용으로 더 나은 Performance를 제공하는 경우가 많습니다.
# CloudWatch: track API response latency percentiles
aws cloudwatch put-metric-alarm \
--alarm-name 'API-P99-Latency' \
--metric-name TargetResponseTime \
--namespace AWS/ApplicationELB \
--extended-statistic p99 \
--dimensions Name=LoadBalancer,Value=app/my-alb/xxx \
--period 60 \
--evaluation-periods 5 \
--threshold 2.0 \
--comparison-operator GreaterThanThresholdPerformance Efficiency의 Trade-off
Performance Efficiency는 때때로 다른 필라와 Trade-off가 필요합니다. Cache(ElastiCache)를 추가하면 Performance는 향상되지만 운영 Complexity(Operational Excellence와의 Trade-off)와 비용(Cost Optimisation과의 Trade-off)이 증가합니다. RDS 대신 DynamoDB를 사용하면 대규모 환경에서 Performance가 향상되지만 데이터 모델을 다시 설계해야 합니다(Operational Excellence 노력). Well-Architected Framework는 이러한 Trade-off를 인정하며, 이를 의식적으로 결정하고 근거를 문서화하도록 요구합니다. 시험 문제에서는 운영 부담을 최소화하면서 Performance 목표를 달성하는 선택지를 찾으십시오.
# Common performance vs cost trade-offs:
# Cache: +Performance, +Cost, +Complexity
# Read Replicas: +Read performance, +Cost
# SSD vs HDD: +IOPS, +Cost
# Multi-region: -Latency for users, +Cost, +Complexity
# Common performance vs consistency trade-offs:
# DynamoDB eventually consistent reads: +Throughput, -Consistency
# Aurora Reader endpoint: +Read scale, potential replication lag빠른 확인
이 lesson에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 이해했는지 Test해 보십시오.
lesson 요약
이 lesson에서는 다음을 배웠습니다. Reliability에는 자동 복구, 수평 Scaling, 정기적인 Failure Test가 필요합니다. Performance Efficiency에는 각 워크로드에 적합한 Compute, 스토리지, 데이터베이스 유형을 선택해야 합니다. 또한 여러 계층에서 Caching을 사용하면 Latency와 데이터베이스 부하가 감소합니다. 두 필라 모두 지속적인 모니터링과 아키텍처 결정을 재검토하려는 자세가 필요합니다. 다음 lesson에서는 Cost Optimisation 및 Sustainability 필라를 살펴봅니다.
AI 튜터와 함께 AWS Solutions Architect을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“신뢰성 및 성능 효율성 원칙” 강의는 무료인가요?
네 — “신뢰성 및 성능 효율성 원칙” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
“신뢰성 및 성능 효율성 원칙”에서 뭘 배우나요?
자동 복구, 수평 확장 및 용량 관리를 고려해 설계하고, 적합한 리소스 유형을 선택하며, 시간이 지나도 성능이 유지되도록 모니터링합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“신뢰성 및 성능 효율성 원칙” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.