CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
  • Week 1
    • 1.DevOps라는 운영 모델: CALMS의 다섯 축과 DORA가 측정해 보여준 진실
    • 2.Well-Architected Framework: DevOps의 6개 렌즈로 다시 읽기
    • 3.AWS DevOps 도구 지도: Code* 시리즈와 그 너머의 진짜 그림
    • 4.멀티 계정 전략: Organizations, Control Tower, IAM Identity Center의 진짜 그림
    • 5.Week 1 종합: DevOps 사고 프레임을 시나리오로 굳히기
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
    • 1.CloudFormation 고급: Nested·Cross-Stack과 모듈화의 깊은 이야기
    • 2.StackSets: 수천 계정에 IaC를 뿌리는 거버넌스의 깊은 이야기
    • 3.Custom Resource·Hooks·Change Set: CloudFormation의 확장과 검증 메커니즘
    • 4.CDK·CDK Pipelines·Terraform: 모던 IaC 도구의 깊은 비교와 자기 진화하는 파이프라인
    • 5.Week 8 통합 시나리오: IaC 도구가 한 인시던트 안에서 만나는 자리
  • Week 9
  • Week 10
  • Week 11
  • Week 12
  • Week 13
  • Week 14
  • Week 15
  • Week 16
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 · 주간랩스

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

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

DOP-C02· ProWeek 8 · Day 5읽기 약 27분

Day 5 - Week 8 통합 시나리오: IaC 도구가 한 인시던트 안에서 만나는 자리

Week 8을 통과하면서 CloudFormation의 Nested/Cross-Stack, StackSets의 Service-managed, Custom Resource의 ResponseURL 프로토콜, Hooks의 사전 검증, CDK의 Construct Level과 Pipelines self-mutation, Terraform tfstate의 잠금까지 일곱 가지 도구를 봤다. 시험에서 어렵게 출제되는 문제는 이 도구들이 따로 등장하지 않는다. 한 시나리오 안에 셋, 넷이 동시에 얽혀 "어디서 어떤 도구로 풀어야 하는가"를 묻는다. 오늘은 그 통합 감각을 만든다.

문제를 풀기 전에 한 번 더 정리한다. IaC 도구는 추상화 계층, 거버넌스 범위, 변경 시점의 세 축으로 구분된다. 추상화는 CFN(YAML) → SAM(매크로) → CDK(코드)로 올라가고, 거버넌스는 단일 스택 → 단일 계정 다 스택 → 멀티 계정(StackSets/Pipelines)으로 확장되며, 변경 시점은 합성 시점(Aspects/cdk-nag) → 배포 전(Hooks) → 배포 중(ChangeSet) → 배포 후(Drift/Config)의 네 단계가 있다. 시험 시나리오는 이 세 축의 어디에 답이 있는지를 묻는다.

통합 비교표 — Week 8 전체 도구

도구추상화거버넌스변경 시점한 줄 요약
CloudFormation선언적 YAML스택 단위배포 시기반 엔진, 13년 묵은 거버넌스 자산
SAMCFN 매크로 + 서버리스 DSL스택합성→배포서버리스 보일러플레이트 축약
CDK코드(TS/Py/Java)스택합성→배포LLVM IR 패턴, 코드 재사용성
CDK Pipelines코드멀티 환경self-mutating CI파이프라인도 코드, GitOps 원칙
StackSetsCFN 동기화멀티 계정 멀티 리전OU 단위 fan-out1000+ 계정의 진실 단일 원천
Custom ResourceLambda Provider스택 내부 확장배포 중 호출CFN을 라이프사이클 엔진으로 확장
CFN HooksResource Type Provider스택 또는 Org변경 사전 차단K8s ValidatingAdmissionWebhook 패턴
CFN Drift감지 메커니즘스택/StackSet배포 후 비교감지만, 자동 수정 X
Change Set변경 미리보기스택배포 전 검토Replacement=True 위험 신호
TerraformHCLtfstate 단위plan→apply멀티 클라우드, tfstate 자가 관리
CDKTF코드 → HCLtfstate합성CDK 구문 + Terraform Provider

이 표를 머리에 두고 시나리오를 본다. 각 시나리오는 회사가 마주친 실제 운영 상황에 가깝게 만들었고, 정답 외 보기들도 부분적으로 맞는 답이 섞여 있어 "가장 적절한"을 골라야 한다.

📝 연습 문제

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

문제 1

한 핀테크가 AWS Organizations 환경에서 200개 자식 계정에 동일한 GuardDuty/CloudTrail/Config 베이스라인을 배포하고, 매주 추가되는 신규 계정에는 자동으로 같은 베이스라인이 적용되어야 한다. 또 Management Account의 일상 사용을 최소화하라는 보안팀 요구가 있다. 가장 적절한 구성은?

문제 2

한 SaaS 회사가 prod CloudFormation Stack에 RDS DBInstance 변경을 배포했더니 의도치 않게 데이터베이스가 교체되면서 6시간 다운타임이 발생했다. 같은 사고가 재발하지 않도록 표준 변경 절차를 강화하려면 가장 적절한 조합은?

문제 3

한 게임사가 운영 중인 CloudFormation 환경에서 네트워크 Stack의 VpcId Export가 50개 다른 Stack의 ImportValue로 사용되고 있다. VPC를 확장하기 위해 네트워크 Stack을 업데이트하려 했더니 "Cannot update Export" 오류로 전체 배포가 멈췄다. 즉시 해결과 장기 개선을 모두 만족하는 답은?

문제 4

한 회사가 신규 출시된 AWS Bedrock 모델을 CloudFormation에 코드화하려는데 일부 deep feature가 아직 CFN 지원이 안 됨을 확인했다. 그 부분만 Custom Resource Lambda로 처리하려 한다. 운영 안정성을 위해 가장 중요한 설계 요소는?

문제 5

한 SaaS가 200개 마이크로서비스에 같은 패턴(Lambda + DynamoDB + API Gateway + X-Ray + CloudWatch Alarm)을 CDK로 배포한다. 보안팀이 새 정책("모든 Lambda는 reserved concurrency 100 이하, 모든 DynamoDB는 point-in-time recovery 활성")을 적용하려 한다. 200개 서비스 코드를 수정하지 않고 일관 강제하려면?

문제 6

한 게임 회사가 CDK Pipelines로 Dev/Staging/Prod 3환경 배포 중인데 Prod 계정 추가 후 빌드가 "KMS access denied" 오류로 실패한다. Pipeline은 Tooling 계정에 있고 Prod는 별도 계정이다. 가장 정확한 원인과 해결은?

문제 7

한 SaaS가 CDK Aspects를 도입해 모든 S3에 암호화 강제, 모든 RDS에 multi-AZ 강제, 모든 Lambda에 dead letter queue 강제, 모든 ALB에 WAF 연결 강제 등 30개 cdk-nag 룰을 prod에 한 번에 적용했더니 빌드가 1200개 위반으로 실패해 모든 배포가 멈췄다. 적절한 도입 전략은?

문제 8

한 핀테크가 자회사 매각으로 5개 자식 AWS 계정을 Organizations에서 제거했더니 StackSets로 배포된 베이스라인 Stack이 자동 삭제되면서 그 안의 CloudTrail Trail이 사라졌고 매각 직전 90일치 감사 로그가 유실됐다. 재발 방지를 위한 가장 정확한 조합은?

문제 9

한 회사가 매주 새 환경(고객별 sandbox 5개)을 추가하는데 그때마다 운영자가 CodePipeline 정의를 손으로 수정하고 CFN으로 파이프라인을 재배포한다. 자동화하려면 가장 적절한 도구는?

문제 10

500 계정 환경에서 GuardDuty가 어떤 계정에서 비활성화되어 있는지 실시간 평가하고 자동으로 재활성화하라는 보안팀 요구가 있다. 가장 적절한 다층 구성은?

문제 11

한 회사가 prod CloudFormation Stack에서 '{{resolve:secretsmanager:prod/db:SecretString:password}}'로 RDS 비밀번호를 주입했다. 보안팀이 Secrets Manager에서 비밀번호를 회전했더니 RDS에 적용되지 않고 다음 Stack 업데이트 시점에야 반영되는 것을 확인했다. 자동 동기화하려면?

문제 12

한 회사가 다음 요건을 모두 만족하는 IaC 운영 표준을 정하려 한다: (1) 모든 prod 변경에 사람 한 단계 확인, (2) 의도치 않은 RDS 교체 차단, (3) 신규 멤버 계정에 베이스라인 자동, (4) prod CFN 변경의 보안 정책 사전 차단, (5) 신규 출시 AWS 서비스 빠른 코드화, (6) 200 마이크로서비스의 공통 패턴 일관 강제. 각 요건에 가장 적절한 도구 매핑은?

시나리오 풀이의 메타 전략

문제마다 정답을 외우기보다 다음 흐름으로 접근하면 어떤 새 시나리오도 풀린다.

1단계: 키워드 → 축 매핑

  • "OU 단위 / 멀티 계정 자동" → StackSets 또는 Control Tower
  • "사전 차단 / 위반 막기" → Hooks 또는 Aspects/cdk-nag
  • "변경 미리보기 / 사람 승인" → Change Set + Manual Approval
  • "CFN 미지원 / 외부 시스템" → Custom Resource
  • "장시간 대기 / 폴링" → CDK Provider isComplete
  • "파이프라인 자체 갱신" → CDK Pipelines self-mutation
  • "교체 / 다운타임" → Replacement=True 검토, UpdateReplacePolicy 보호
  • "tfstate / 멀티 클라우드" → Terraform

2단계: 단일 도구 vs 다층 방어 판단

  • "재발 방지", "보안팀 표준", "PCI/SOC 2" 같은 키워드가 있으면 다층 방어 정답
  • 한 도구만 고르는 답이 매력적이어도 다층이 더 정확하면 그쪽

3단계: 운영 현실성 검토

  • "200 계정에 손으로", "콘솔에서 매일" 같은 답은 함정
  • 실무에서 운영자가 매번 손대지 않는 답이 정답
  • 한 번 설정으로 자동화되는 도구를 선호

4단계: 시험 함정 패턴

  • "모두 ~로" 같은 단일 도구 만능형은 거의 함정
  • "비용 절감" 같은 부수 효과를 메인 답으로 두는 보기 함정
  • "IAM으로 모두 해결"은 IaC 거버넌스에서 거의 함정

📌 Week 8 통합 요약

오늘 다룬 통합 시나리오는 Week 8 전체 학습의 결산이다. 정리하면 다음 다섯 가지 원칙이다.

첫째, 추상화 계층의 적절한 선택. CFN(저수준) → SAM(서버리스 매크로) → CDK(코드)는 각각의 장단이 있고, 무조건 높은 추상화가 정답은 아니다. prod의 보안 정책은 CDK L1 또는 직접 CFN으로 정밀 제어가 권장되고, 반복 표준 패턴은 자체 L3 Construct로 응집하는 게 표준.

둘째, 거버넌스 범위의 단계적 확장. 단일 Stack에서 시작해 단일 계정 다 Stack(Cross-Stack/Nested), 멀티 계정(StackSets), 멀티 계정 멀티 환경(CDK Pipelines), Org 수준(Conformance Pack/Hooks)으로 확장. 회사 규모에 맞춰 단계 도입.

셋째, 변경 시점의 다층 검증. 합성 시점(Aspects/cdk-nag/cfn-lint), 배포 사전(Change Set + Manual Approval, Hooks), 배포 후(Drift Detection, Config Rules)의 4단계 모두 다른 사고를 막는다. 한 계층만으론 우회 경로가 있다.

넷째, stateful 리소스의 다층 보호. DeletionPolicy(Stack 삭제 시), UpdateReplacePolicy(속성 변경 교체 시), Stack Policy(Update API 진입 시), Termination Protection(DeleteStack API 호출), 그리고 별도 백업(AWS Backup)까지 5단 방어. 단일 정책으론 항상 우회 가능.

다섯째, 거버넌스 도구의 graceful rollout. Hooks WARN→FAIL, cdk-nag warning→error, Config Rule notify→remediate, OPA dryrun→warn→deny의 단계적 도입이 표준. 한 번에 모든 정책 강제는 운영 마비를 부른다.

🔜 Week 9 예고

다음 주는 구성 관리의 영역으로 들어간다. SSM Parameter Store, AppConfig, Secrets Manager, EC2 Image Builder, Patch Manager. IaC가 "인프라의 형태"를 정의했다면 구성 관리는 "그 인프라가 동작하는 데 필요한 값"을 다룬다. Week 8의 동적 참조 {{resolve:ssm:...}}가 Week 9의 Parameter Store 동작 원리와 만나면서 같은 메커니즘이 더 깊이 드러난다.


Week 8 완료. CloudFormation 13년 묵은 거버넌스 자산부터 CDK Pipelines self-mutation까지, 모던 IaC 운영의 전 영역을 한 번 통과했다. 시험 전 마지막 점검에서 이 글의 12개 시나리오를 다시 풀어보면 어디가 약한지가 명확히 드러난다.

이전CDK·CDK Pipelines·Terraform: 모던 IaC 도구의 깊은 비교와 자기 진화하는 파이프라인Week 8 · Day 4다음 Systems Manager: Run Command·Session Manager·Patch Manager의 깊은 이야기Week 9 · Day 1

참고 공식 자료

  • DOP-C02 공식 시험 안내(새 탭에서 열림)
  • AWS Lambda 공식 문서(새 탭에서 열림)
  • Amazon RDS · Aurora 공식 문서(새 탭에서 열림)
  • AWS IAM 공식 문서(새 탭에서 열림)
  • AWS CloudFormation 공식 문서(새 탭에서 열림)
  • AWS KMS 공식 문서(새 탭에서 열림)

이 페이지

  • 통합 비교표 — Week 8 전체 도구
  • 연습 문제
  • 시나리오 풀이의 메타 전략
  • Week 8 통합 요약
  • Week 9 예고