AWS DVA-C02 마스터 노트 시리즈 2편. EC2 인스턴스 타입·구매 옵션 5종·User Data·AMI, Lambda 트리거와 실행 역할·15분 한도·동시 실행 1000, ELB 4종(ALB·NLB·CLB·Gateway)과 ASG 스케일링 정책, Elastic Beanstalk 환경 4종까지 — 컴퓨팅 영역의 자격증 핵심을 한 흐름으로.
이 글은 AWS DVA-C02 마스터 노트 시리즈의 두 번째 편입니다. 1편(IAM)에서 보안 토대를 잡았다면, 이번엔 AWS 컴퓨팅의 핵심 — EC2·Lambda·ECS·Elastic Beanstalk 4가지.
이 영역은 시험에서 가장 흔하게 나오는 자리예요. EC2 구매 옵션·Lambda 한도·ELB 종류·ASG 스케일링 — 이 4개 토픽에서 거의 매번 시나리오 문제가 출제됩니다.
처음 컴퓨팅이 어렵게 느껴지는 이유
이유는 두 가지예요.
첫째, EC2 구매 옵션이 5종이나 됩니다. On-Demand·Reserved·Savings Plan·Spot·Dedicated Host — 각자 가격 모델·할인율·복원력이 달라요. 시나리오 보고 어느 걸 추천해야 하는지가 첫 단계 막힘.
둘째, Lambda·ECS·Beanstalk가 모두 "코드 실행"이라는 비슷한 자리에 있습니다. 어느 시나리오에 어떤 서비스를 골라야 하는지가 헷갈려요.
해결법은 한 가지예요. 회사 비유로 잡으세요. EC2 = "회사 사옥 안의 임대 사무실 (직접 관리)". Lambda = "주문 시 켜지는 자판기 (5분만 켜짐)". ECS = "표준 화물 박스 안에서 일하는 작업자". Beanstalk = "사무실 셋업 대행 서비스". 이 비유로 어느 자리에 어떤 서비스가 어울릴지 즉답 가능.
EC2 — 가상 서버
인스턴스 타입
| 타입 | 약어 | 용도 |
|---|---|---|
| 범용 | t·m | 균형 (개발·웹) |
| 컴퓨팅 최적화 | c | CPU 집약 (인코딩) |
| 메모리 최적화 | r·x | RAM 많이 (DB·인메모리) |
| 스토리지 최적화 | i·d | 빠른 디스크 I/O |
| GPU | p·g | ML 훈련 |
구매 옵션 5종 — 시험 단골
| 옵션 | 가격 | 약정 | 할인 | 적합 |
|---|---|---|---|---|
| On-Demand | 분/초 단위 | 없음 | 없음 | 단기·예측 불가 |
| Reserved | 1년·3년 | 길음 | 최대 75% | 안정 워크로드 |
| Savings Plan | 시간당 약정 | 1년·3년 | 최대 72% | 유연한 약정 |
| Spot | 시장 가격 | 없음 (중단 가능) | 최대 90% | 내결함성 워크로드 |
| Dedicated Host | 호스트 단위 | 1년·3년 | - | 라이선스 BYOL |
여기서 정말 중요한 시험 함정 — Spot Instance 는 90% 할인이지만 AWS가 2분 통보 후 중단 가능. 내결함성·중단 허용 가능 워크로드만.
User Data
부팅 시 자동 실행 스크립트.
#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
echo "Hello from $(hostname)" > /var/www/html/index.html
EC2 시작 시 1회만 실행. 부트스트래핑 표준.
AMI (Amazon Machine Image)
EC2 시작에 필요한 디스크 이미지·메타데이터. 공식 AMI + 사용자 정의 AMI + AWS Marketplace AMI 3종.
여기서 시험 함정이 하나 있어요. AMI는 리전 종속입니다. 다른 리전에서 쓰려면 복사 필요. 멀티 리전 배포의 함정.
Placement Group
| 종류 | 설명 |
|---|---|
| Cluster | 같은 AZ 같은 랙 (저지연·고대역폭) |
| Spread | AZ 다름 (장애 격리) |
| Partition | 큰 분산 시스템 (Kafka·Cassandra) |
ELB — 로드 밸런서 4종
| 타입 | 계층 | 용도 |
|---|---|---|
| CLB (Classic) | L4·L7 | Legacy, 신규 비추천 |
| ALB (Application) | L7 | HTTP/HTTPS, 경로 라우팅 |
| NLB (Network) | L4 | TCP·UDP, 초저지연 |
| GLB (Gateway) | L3 | IDS·방화벽 같은 네트워크 어플라이언스 |
여기서 정말 중요한 시험 함정 — ALB는 L7 (HTTP) , NLB는 L4 (TCP), GLB는 L3. 시나리오에서 "TCP 기반 게임 서버" → NLB. "HTTP 경로별 라우팅" → ALB.
Sticky Session
같은 사용자를 같은 서버로 라우팅. 세션 데이터 일관성용.
ALB Sticky Session — Application 기반(앱 쿠키) or Duration 기반
Cross-Zone Load Balancing
여러 AZ의 모든 인스턴스에 균등 분배. ALB 기본 활성. NLB·CLB는 명시 활성 + 비용 추가.
Auto Scaling Group (ASG)
EC2 인스턴스를 자동으로 늘리고 줄이는 서비스.
스케일링 정책
| 정책 | 설명 |
|---|---|
| Target Tracking | 평균 CPU 50% 유지 (자동) |
| Simple/Step | CPU 70% → +2 / 30% → -1 |
| Scheduled | 매일 9시 +5 / 18시 -3 |
| Predictive | ML 기반 사전 스케일링 |
Lifecycle Hook
인스턴스 시작·종료 직전에 커스텀 로직.
Pending:Wait → 시작 직전 (스크립트·설정)
Terminating:Wait → 종료 직전 (로그 백업·draining)
여기서 시험 함정이 하나 있어요. ASG의 cooldown 기본 300초 — 한 번 스케일링 후 추가 스케일링 막는 시간. 너무 짧으면 진동(thrashing).
Lambda — 서버리스 함수
핵심 한도
| 항목 | 값 |
|---|---|
| 실행 시간 | 최대 15분 |
| 메모리 | 128MB ~ 10GB |
| 디스크 (/tmp) | 기본 512MB, 최대 10GB |
| 동시 실행 | 기본 1000 (계정·리전당) |
| 환경 변수 크기 | 4KB |
| 패키지 크기 (zip) | 50MB 압축, 250MB 압축 해제 |
| 컨테이너 이미지 | 최대 10GB |
여기서 정말 중요한 시험 함정 — 15분 한도. 5시간 짜리 작업은 Lambda 안 됨. ECS Fargate나 Step Functions로.
실행 역할 (Execution Role)
Lambda가 다른 AWS 서비스 호출할 때 필요한 IAM 역할.
{
"Effect": "Allow",
"Action": ["dynamodb:GetItem", "logs:CreateLogStream"],
"Resource": "*"
}
Cold Start vs Warm Start
| 구분 | Cold | Warm |
|---|---|---|
| 시점 | 첫 호출·일정 시간 후 | 최근 호출 후 |
| 지연 | 100ms~수초 | 거의 없음 |
Provisioned Concurrency
Cold Start 회피. 미리 N개 인스턴스 워밍.
트리거 (이벤트 소스)
- 동기 — API Gateway, ALB, Cognito
- 비동기 — S3, SNS, EventBridge
- 풀(Poll-based) — DynamoDB Streams, Kinesis, SQS
여기서 시험 함정이 하나 있어요. SQS는 풀 모델 — Lambda가 SQS를 폴링. SNS는 Push. 이 차이가 시험에 자주.
Lambda Layer
공통 라이브러리·런타임을 분리해서 여러 함수에 공유.
Layer 1: NumPy·Pandas (Python ML 공통)
Layer 2: 회사 공통 유틸 함수
→ 각 Lambda 함수는 두 Layer를 참조
Elastic Beanstalk — PaaS
EC2·ELB·ASG·RDS·CloudWatch를 자동 셋업해 주는 서비스. 사옥 셋업 대행 비유.
환경 모드
| 환경 | 설명 |
|---|---|
| 단일 인스턴스 | 1대 EC2 (개발·테스트) |
| 로드 밸런서·ASG | ELB + 여러 EC2 (프로덕션 웹) |
배포 정책 5종
| 정책 | 설명 | 다운타임 |
|---|---|---|
| All at once | 전체 한 번에 | 있음 |
| Rolling | 몇 대씩 교체 | 약간 |
| Rolling with batch | 추가 인스턴스 띄워가며 | 없음 |
| Immutable | 새 ASG에 새 인스턴스 → 교체 | 없음 |
| Blue/Green | 별도 환경 → DNS 스위치 | 없음 |
여기서 정말 중요한 시험 함정 — Immutable 배포가 가장 안전합니다. 새 ASG에 인스턴스 다 띄우고 통째로 교체. 롤백도 즉시. 비용은 약간 더.
지원 플랫폼
Node.js·Python·Java·Ruby·PHP·.NET·Docker·Go.
데이터베이스 분리
DB는 Beanstalk 환경 안이 아니라 외부에 별도 RDS 로 분리하는 게 권장. 환경 종료 시 DB 같이 삭제되는 사고 방지.
ECS·Fargate — 컨테이너
11편에서 자세히 다루지만 짧게.
ECS Launch Type
| 타입 | 인프라 관리 |
|---|---|
| EC2 Launch Type | 사용자 (EC2 직접 관리) |
| Fargate | AWS (서버리스 컨테이너) |
IAM 역할 두 가지
| 역할 | 누가 사용 |
|---|---|
| Task Role | 컨테이너 안 코드 (S3·DynamoDB 호출) |
| Task Execution Role | ECS 에이전트 (이미지 풀·로그 송출) |
여기서 시험 함정이 하나 있어요. 두 역할의 용도가 달라요. Task Role = 앱 코드 권한. Execution Role = 컨테이너 시작에 필요한 권한 (ECR·CloudWatch).
시험 직전 한 번 더 — 자주 헷갈리는 함정 모음
여기까지가 2편의 핵심입니다. 시험 직전 또는 실무에서 헷갈릴 때 다시 펼쳐 볼 수 있게 압축 노트로 마무리할게요.
- EC2 인스턴스 타입 — t·m(범용), c(CPU), r·x(메모리), i·d(스토리지), p·g(GPU)
- 구매 옵션 5종 — On-Demand / Reserved / Savings / Spot / Dedicated Host
- Spot 90% 할인 + 2분 통보 후 중단 — 내결함성 워크로드
- User Data = 부팅 시 1회 실행 스크립트
- AMI는 리전 종속 — 멀티 리전 배포 시 복사
- Placement Group — Cluster (저지연) / Spread (격리) / Partition (분산)
- ELB 4종 — CLB / ALB(L7) / NLB(L4) / GLB(L3)
- HTTP 경로 라우팅 = ALB / TCP·UDP = NLB
- Sticky Session = 세션 일관성 / Cross-Zone = AZ 균등 분배
- ASG 스케일링 정책 4종 — Target / Simple·Step / Scheduled / Predictive
- ASG cooldown 기본 300초 — 진동 방지
- Lifecycle Hook — Pending:Wait / Terminating:Wait
- Lambda 한도 15분·메모리 10GB·동시실행 1000
- 15분 초과 = ECS Fargate 또는 Step Functions
- Lambda 패키지 50MB(zip) / 컨테이너 이미지 10GB
- Cold Start 회피 = Provisioned Concurrency
- 트리거 — 동기 / 비동기 / 풀 (SQS·Kinesis·DynamoDB Streams)
- Lambda Layer = 공통 라이브러리 분리·재사용
- Elastic Beanstalk = PaaS, EC2+ELB+ASG+RDS 자동
- 환경 모드 — 단일 / 로드밸런서·ASG
- 배포 5종 — All-at-once / Rolling / Rolling-batch / Immutable / Blue/Green
- Immutable 가장 안전 — 새 ASG 교체
- DB는 Beanstalk 환경 외부 RDS (환경 삭제 사고 방지)
- ECS — EC2 Launch / Fargate (서버리스)
- Task Role (앱 코드) vs Execution Role (컨테이너 시작) 구분
시리즈 다른 편
같은 시리즈의 다른 글들도 같은 톤으로 묶어 정리되어 있어요. 2편 컴퓨팅이 잡히면 3편 스토리지에서 EC2와 짝을 이루는 EBS·EFS·S3가 자연스럽게 따라옵니다.
- 1편 — IAM·STS·Cognito 보안 기초
- 2편 — 컴퓨팅 (현재 글)
- 3편 — 스토리지 (S3·EBS·EFS)
- 4편 — 데이터베이스 (RDS·Aurora·DynamoDB)
- 5편 — 네트워킹 (VPC·CloudFront·API Gateway)
- 6편 — 메시징 (SQS·SNS·Kinesis)
- 7편 — 서버리스 (Lambda 심화·SAM·Step Functions)
- 8편 — CI/CD
- 9편 — 모니터링 (CloudWatch·X-Ray)
- 10편 — 보안·암호화
- 11편 — 컨테이너
- 12편 — 개발자 도구
공식 문서: AWS Compute Reference와 Lambda Developer Guide에서 더 깊이 갈 수 있어요.
다음 글(3편)에서는 스토리지 본격 — S3 스토리지 클래스 7종·버전 관리·암호화 4가지·라이프사이클·CRR/SRR·이벤트 알림, EBS 볼륨 타입·스냅샷, EFS 멀티 AZ 공유 파일까지 풀어 갑니다.