CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
  • Week 1
    • 1.운영자가 보는 AWS 인프라: 리전, AZ, 그리고 책임의 경계선
    • 2.IAM의 운영자 사용설명서: 사용자·그룹·역할·정책 평가 알고리즘
    • 3.IAM 심화: Permission Boundary, SCP, Identity Center로 짓는 가드레일
    • 4.AWS Organizations: 100개 계정을 한 사람이 운영하는 법
    • 5.Week 1 통합 복습: 운영자 시나리오로 다시 보는 첫 주
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
    • 1.Elastic Beanstalk과 다섯 가지 배포 정책, 그리고 무중단의 진짜 비용
    • 2.CodeDeploy, 코드만 배포한다는 결정과 AppSpec hook의 13단계
    • 3.EC2 Image Builder, Golden AMI라는 운영 미덕
    • 4.OpsWorks의 EOL과 Launch Template, 그리고 Mixed Instances Policy의 진짜 가치
    • 5.Week 7 종합, 시나리오로 다시 보는 배포·프로비저닝 선택의 감각
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← SOA-C02/Week 7/Day 5

기준: SOA-C02 시험 가이드·오류 제보

SOA-C02· AssociateWeek 7 · Day 5읽기 약 26분
핵심 정리

EC2 hook 순서:

ApplicationStop → DownloadBundle(auto) → BeforeInstall → Install(auto) → 
AfterInstall → ApplicationStart → ValidateService
[Blue-Green only]
→ BeforeBlockTraffic → BlockTraffic(auto) → AfterBlockTraffic →
  BeforeAllowTraffic → AllowTraffic(auto) → AfterAllowTraffic

Compute platform별 배포 방식:

  • EC2: In-place 또는 Blue/Green (ALB Target Group 전환)
  • Lambda: Alias 가중치 점진 조정 (Canary, Linear, AllAtOnce)
  • ECS: Blue/Green (Target Group 2개 + Production Listener + Test Listener)

자동 롤백 트리거 두 가지:

  • DEPLOYMENT_FAILURE: hook 실패·타임아웃 (즉시 감지)
  • DEPLOYMENT_STOP_ON_ALARM: CloudWatch Alarm 발생 (최소 1-3분 지연)

Day 5 - Week 7 종합, 시나리오로 다시 보는 배포·프로비저닝 선택의 감각

Week 7은 "어떻게 안전하게 배포할 것인가"를 다섯 면에서 봤다. Beanstalk이라는 PaaS의 트레이드오프, CodeDeploy의 코드만 배포라는 좁은 책임, EC2 Image Builder가 강제하는 immutable infrastructure, OpsWorks → SSM으로 옮겨가는 패러다임 전환, 그리고 Launch Template + Mixed Instances Policy의 비용·가용성 균형. 다섯 글이 모두 다른 도구를 다뤘지만 공통 질문은 하나다 — "이 워크로드에 어떤 trade-off가 맞는가".

이 글에서는 그 다섯 글의 핵심 결정 축을 다시 모으고, SOA-C02 시험이 실제로 어떤 시나리오로 출제하는지 12개의 문제로 풀어본다. 표 암기가 아니라 "왜 A가 정답이고 B는 함정인가"를 결정하는 감각이 목표다. 시험 전날 한 번 더 훑어보면 답이 자연스럽게 떠오르는 정리가 되도록 구성했다.

Week 7 결정 축 5개로 다시 정리

이번 주 다룬 모든 도구가 결국 다섯 개 결정 축의 조합으로 환원된다.

결정 축질문Week 7 도구 매핑
다운타임 허용?0초여야 하나, 몇 분 OK인가All at once vs Rolling vs Immutable
임시 용량 비용?2배 OK인가, 절감 우선인가Rolling vs Immutable vs Blue/Green
롤백 속도?즉시 vs 재배포 시간Immutable·Blue/Green vs Rolling
인프라 소유?자동 생성 vs 기존 사용Beanstalk vs CodeDeploy vs CloudFormation
변경 단위?코드만 vs 환경 전체 vs AMICodeDeploy vs Beanstalk vs Image Builder

이 5개 축으로 시나리오를 분해하면 정답이 거의 자동으로 좁혀진다. 예를 들어 "다운타임 0초 + 비용 최소 + 기존 EC2 인프라"라는 시나리오는 CodeDeploy + Blue/Green인지 Beanstalk + Rolling with batch인지 헷갈리지만, "기존 인프라"라는 단서가 CodeDeploy를 가리킨다.

💡 관련 이론: 이 결정 축 접근은 Architecture Decision Record(ADR)의 표준 양식과 정확히 같다. Michael Nygard가 2011년 제안한 ADR 템플릿은 Context → Decision → Consequences 구조인데, 각 결정에 대한 trade-off를 명시한다. 시험 시나리오를 ADR처럼 분해하는 습관이 클라우드 아키텍트의 핵심 사고 패턴이다.

Beanstalk vs CodeDeploy vs CloudFormation: 책임 경계 재정리

결정 기준BeanstalkCodeDeployCloudFormation
인프라 생성자동 (EC2/ALB/RDS)별도 (사용자 책임)자동 (모든 리소스)
코드 배포통합핵심 기능별도 (custom resource)
롤백 단위환경 전체Revision스택 전체
배포 hook.ebextensions, .platformAppSpec hooks (13단계)UpdatePolicy + WaitCondition
언어 인식있음 (Node/Python/Java/...)없음 (불가지론)없음 (불가지론)
사용 사례단순 웹앱 PaaS기존 EC2/Lambda/ECS 함대전체 IaC

실무에서는 셋을 조합해 쓴다. CloudFormation으로 VPC·ALB·ASG 기반 인프라를 만들고, CodeDeploy로 그 위에 코드를 배포하고, Beanstalk은 "인프라까지 묶고 싶은" 작은 워크로드에만 쓴다. Image Builder는 ASG가 사용할 AMI를 만든다.

Beanstalk 배포 정책 5개 재정리

정책다운타임임시 용량임시 비용롤백 속도권장 사용
All at once있음0% (전체 정지)없음재배포 필요dev/staging
Rolling없음일시 감소없음재배포 필요트래픽 spike 없는 prod
Rolling with batch없음유지배치만큼재배포 필요균형 잡힌 prod
Immutable없음유지2배빠름 (구 ASG 살아있음)안정성 중요한 prod
Blue/Green (URL Swap)없음유지2배즉시 (CNAME 전환)즉시 롤백 필수

핵심 함정 — "Blue/Green = 즉시 100% 전환"이 아니다. CNAME 전환은 즉시지만 DNS TTL 동안 일부 사용자는 구 환경에 머문다. Beanstalk 기본 CNAME TTL이 60초지만 일부 ISP/사내 DNS가 더 길게 캐싱하므로 실제 100% 전환까지 5-30분 걸릴 수 있다.

Image Builder + Golden AMI + SSM Parameter 패턴

[Image Builder Pipeline] (매월 cron)
        ↓
   새 AMI 생성
        ↓ (EventBridge)
[Lambda] → SSM Parameter 업데이트
        /golden-ami/al2/latest = ami-XXXX
        ↓
[Launch Template]
   ImageId: '{{resolve:ssm:/golden-ami/al2/latest}}'
        ↓
[Auto Scaling Group]
   다음 Instance Refresh 또는 scale-out 시 새 AMI 사용

이 패턴의 우아함은 참조의 간접화다. Launch Template이 AMI ID를 직접 가리키지 않고 SSM Parameter를 거쳐 가리키면, AMI가 바뀔 때마다 Launch Template 새 버전을 만들 필요가 없다. SSM Parameter만 업데이트하면 다음 인스턴스 생성 시 자동으로 새 AMI가 사용된다.

Launch Configuration → Launch Template 마이그레이션

항목LC (deprecated)LT (표준)
버전 관리없음$Latest, $Default 등 alias
부분 수정불가 (재생성)가능
Mixed Instances불가지원
SSM Parameter 참조불가가능 ({{resolve:ssm:...}})
신규 EC2 기능미지원 (동결)지원
Console 신규 생성2022.12 이후 불가표준

Mixed Instances Policy + Spot 전략

MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: web-lt
      Version: $Latest
    Overrides:
      - InstanceType: m5.large
      - InstanceType: m5a.large
      - InstanceType: m6i.large
  InstancesDistribution:
    OnDemandBaseCapacity: 2           # 최소 On-demand 보장
    OnDemandPercentageAboveBaseCapacity: 30
    SpotAllocationStrategy: capacity-optimized   # 또는 price-capacity-optimized

Spot Allocation Strategy 권장 순위:

  1. capacity-optimized — 회수 가능성 최소 (대부분의 워크로드)
  2. price-capacity-optimized — 비용 + capacity 균형 (2022년 추가)
  3. lowest-price — 회수 위험 높음 (사용 비권장)

Spot 회수 graceful shutdown:

  • EventBridge Rule (EC2 Spot Instance Interruption Warning) → Lambda → ALB deregister + SSM Run Command로 graceful shutdown 신호
  • 또는 ASG Lifecycle Hook으로 종료 전 시간 확보
  • IMDS /latest/meta-data/spot/instance-action은 EventBridge보다 빠르게(약 10초) 감지

OpsWorks → SSM 마이그레이션

OpsWorks Stacks는 2024년 5월 26일 EOL. AWS 권장 마이그레이션:

  • Run Command: 일회성 명령 실행
  • State Manager: 주기적 desired state 적용 (Chef Solo 대체)
  • Patch Manager: 패치 자동화
  • SSM Document aws:applyChefRecipes 액션: 기존 Chef cookbook 재사용 가능

장기적으로는 Image Builder 기반 immutable infrastructure가 권장 path.

Proton vs Service Catalog 위치 정리

항목Service CatalogAWS Proton
대상IT 사용자 (일반 인프라 요청)개발자 (서비스 워크플로 전체)
IaCCloudFormationCloudFormation, Terraform
CI/CD 통합없음 (별도)내장 (CodePipeline)
추상화Product (단일 stack)Environment + Service (분리)
사용 사례"VPC 한 개 만들어주세요""내 마이크로서비스 Git push → 인프라 + CI/CD 자동"

💡 관련 이론: Proton은 Spotify의 Backstage가 정의한 "Internal Developer Platform(IDP)" 카테고리의 AWS 네이티브 구현이다. CNCF Platform Working Group의 reference architecture와 거의 동일 — Platform Engineer가 golden path를 제공하고, Developer는 그 path 안에서 자가 서비스로 일한다.


📝 시나리오 12문제

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

운영 환경에서 다운타임 없이, 용량을 유지하면서, 추가 비용을 최소화하려 한다. 가장 적합한 Beanstalk 배포 정책은?

문제 2

새 Lambda 버전을 10% 트래픽으로 5분간 검증 후 100%로 전환하려 한다. 운영팀이 자동 검증/롤백까지 원한다면?

문제 3

AppSpec.yml의 hook 중 새 버전 파일이 destination 디렉터리에 복사된 직후, 권한 설정·심볼릭 링크 생성·환경별 config 파일 치환을 수행할 단계는?

문제 4

회사가 매월 새 Golden AMI를 빌드해 신규 ASG 인스턴스가 별도 작업 없이 자동 사용하길 원한다. AWS 권장 표준 패턴은?

문제 5

Beanstalk 환경 종료 시 내장 RDS도 함께 삭제되어 데이터 손실이 발생했다. 동일 사고를 방지하려면?

문제 6

Auto Scaling Group에서 On-demand 2대 최소 보장 + 그 위로는 30% On-demand + 70% Spot으로 비용 절감을 자동화하려 한다. 또 Spot 회수율을 최소화하고 싶다.

문제 7

CodeDeploy 배포 중 CloudWatch HighErrorRate Alarm이 발생하면 자동으로 이전 버전으로 롤백되도록 구성하려 한다. 어떻게 설정하는가?

문제 8

Spot 인스턴스가 회수되기 2분 전 graceful shutdown(ALB Target Group deregister, 진행 중 요청 완료, 로그 백업)을 자동화하려 한다. 가장 표준적인 패턴은?

문제 9

OpsWorks Stacks가 2024.5.26 EOL이다. 기존 Chef cookbook 자산을 AWS에서 계속 활용하면서 추가 인프라 운영 부담을 줄이려면?

문제 10

회사가 사내 Platform Engineering 팀을 만들어 개발자에게 Git push만으로 표준 Fargate Service + ALB + RDS + CodePipeline이 자동 프로비저닝되는 IDP를 구축하려 한다. 가장 적합한 AWS 네이티브 도구는?

문제 11

기존 ASG에 새 Launch Template 버전(새 Golden AMI 참조)을 적용했다. 운영 중인 모든 인스턴스를 안전하게 점진 교체하면서, 중간에 CloudWatch Alarm이 울리면 자동 롤백되도록 하려 한다.

문제 12

ASG의 scale-out 시 콜드 스타트(AMI fetch + cloud-init + 앱 시작)가 3-5분 걸려 트래픽 spike에 늦게 대응한다. 비용을 크게 늘리지 않으면서 부팅 시간을 30-60초로 단축하려면? 또 평일 09:00 같은 일정한 패턴이 있다면 추가로 적용할 정책은?

마무리하며

Week 7은 표면적으로 다섯 가지 다른 도구(Beanstalk, CodeDeploy, Image Builder, OpsWorks/SSM, Launch Template/ASG)를 다뤘지만, 핵심 질문은 다섯 개 결정 축으로 수렴했다. 다운타임 허용도, 임시 용량 비용, 롤백 속도, 인프라 소유 모델, 변경 단위 — 시험 시나리오는 이 다섯 축 위에서 trade-off를 묻는다. 도구 이름과 hook 순서를 외우는 것보다 "이 시나리오에서 어떤 축이 결정적인가"를 빠르게 판단하는 감각이 시험과 실무 모두에서 강력하다.

다음 주(Week 8)는 네트워킹 운영으로 옮겨간다. VPC 트러블슈팅, Flow Logs, VPC Endpoints, Transit Gateway까지 — CloudOps 시험 도메인의 18%를 차지하는 핵심 영역이다. 배포 자동화가 "어떻게 안전하게 코드를 올리나"였다면, 네트워킹은 "어떻게 안전하게 트래픽을 흐르게 하나"의 영역이다.


🔮 다음 주 예고 (Week 8 - VPC 네트워킹 운영)

  • Day 1: VPC 기초 — 서브넷, 라우팅 테이블, NACL vs Security Group의 본질적 차이, IPv6 dual-stack
  • Day 2: VPC Flow Logs 분석, Traffic Mirroring, Reachability Analyzer로 라우팅 검증
  • Day 3: NAT Gateway, VPC Endpoint(Interface/Gateway), PrivateLink로 서비스 간 보안 통신
  • Day 4: Transit Gateway 허브-스포크, Site-to-Site VPN, Direct Connect, Route 53 운영 (Latency/Geolocation/Weighted Routing)
  • Day 5: Week 8 복습 + 시나리오 12문제

💡 네트워킹 트러블슈팅 시나리오는 CloudOps 시험에서 가장 까다로운 영역이다. NACL과 SG의 stateless/stateful 차이, VPC Endpoint 정책, Transit Gateway route 우선순위가 핵심 빈출 주제.

이전OpsWorks의 EOL과 Launch Template, 그리고 Mixed Instances Policy의 진짜 가치Week 7 · Day 4다음 VPC라는 가상 데이터센터, 그리고 운영자가 매일 헷갈리는 다섯 가지Week 8 · Day 1

참고 공식 자료

  • SOA-C02 공식 시험 안내(새 탭에서 열림)
  • AWS Systems Manager 공식 문서(새 탭에서 열림)
  • Amazon EC2 Auto Scaling 공식 문서(새 탭에서 열림)
  • AWS CodeDeploy 공식 문서(새 탭에서 열림)
  • AWS Lambda 공식 문서(새 탭에서 열림)
  • AWS CloudFormation 공식 문서(새 탭에서 열림)

이 페이지

  • Week 7 결정 축 5개로 다시 정리
  • Beanstalk vs CodeDeploy vs CloudFormation: 책임 경계 재정리
  • Beanstalk 배포 정책 5개 재정리
  • Image Builder + Golden AMI + SSM Parameter 패턴
  • Launch Configuration → Launch Template 마이그레이션
  • Mixed Instances Policy + Spot 전략
  • OpsWorks → SSM 마이그레이션
  • Proton vs Service Catalog 위치 정리
  • 시나리오 12문제
  • 마무리하며
  • 다음 주 예고 (Week 8 - VPC 네트워킹 운영)