Amazon SOA-C02: 배포, 프로비저닝 및 자동화 — 학습 가이드
다음의 일부입니다: AWS SysOps Administrator Associate SOA-C02 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
이 도메인은 AWS 인프라와 애플리케이션 배포를 안정적이고 반복적으로 프로비저닝, 업데이트, 운영하는 데 사용되는 방법과 도구를 다룹니다. 선언적이고 멱등성 있는 프로비저닝, 릴리스를 위한 자동화된 파이프라인, 그리고 감사 가능성과 보안을 유지하면서 수작업을 줄이는 운영 자동화를 강조합니다. 운영자는 안전성(롤백, 변경 정책)과 속도(불변 이미지, 자동화된 패치) 사이의 균형을 맞춰야 하며, 규정 준수와 복구 가능성을 지원하는 패턴을 선택해야 합니다.
CloudFormation 및 Infrastructure as Code 패턴
CloudFormation(또는 CDK/Terraform)을 사용하여 인프라를 코드로 선언하여 스택이 멱등성(idempotent)을 갖도록 합니다. 템플릿은 원하는 상태를 기술하고 엔진이 리소스를 해당 상태로 수렴시킵니다. 명령형 스크립트보다 선언적 리소스와 파라미터를 선호합니다. 일반적인 CLI 패턴:
- 변경 세트 생성 및 검사:
undefined
- 검토 및 실행:
undefined
- 편의 배포:
undefined
설계 결정 사항:
- 재사용 및 제한 관리를 위해 중첩 스택 또는 모듈을 사용하고, 변경 가능한 보안 암호와 대용량 바이너리는 템플릿 밖으로 이동시킵니다(SSM Parameter Store / Secrets Manager).
- 안전성을 위해 스택 정책, 종료 방지, 롤백 트리거를 사용하고,
undefined
및
undefined
로 드리프트 탐지를 활성화합니다.
- CloudFormation 서비스 역할에 리소스를 생성할 수 있는 범위가 지정된 IAM 정책을 부여하고, CloudFormation에 광범위한 관리자 권한을 부여하지 않도록 주의합니다.
IaC 접근 방식 비교:
- CloudFormation/CDK: 네이티브 방식이며, AWS 변경 세트 및 드리프트 탐지와 통합되어 있고, IAM 리소스에
CAPABILITY_NAMED_IAM이 필요합니다. - Terraform: 공급업체에 구애받지 않으며(provider-agnostic), 상태 파일 관리가 필요하고, 혼합 클라우드 환경에 적합합니다.
- 명령형 스크립트(CLI/SDK): 일회성 작업에는 적합하지만 멱등성이 없고 감사하기 어렵습니다.
CI/CD 및 배포 자동화 프랙티스
반복 가능한 파이프라인 단계(소스 -> 빌드 -> 테스트 -> 배포)를 구현합니다. CodeBuild, CodeDeploy 또는 서드파티 도구(Jenkins, GitHub Actions)를 통합하는 AWS CodePipeline을 사용합니다. 주요 구성:
- CodeBuild: 단계(phase) 및 아티팩트를 위해
buildspec.yml을 정의하고, 프로젝트 역할에 최소 권한(입력용s3:GetObject, 아티팩트용s3:PutObject)을 부여합니다. - CodeDeploy: 배포 그룹과
AppSpec.yml을 사용하고, 배포 유형(in-place 또는 blue/green)을 선택합니다. EC2/ASG의 경우, 위험을 줄이기 위해 blue/green을 선호합니다. - ECR + ECS/EKS: CI에서 이미지를 푸시하고, 불변 태그(시맨틱 또는 빌드 ID)를 지정하며, 작업 정의에서 이미지 태그 또는 다이제스트를 참조합니다.
배포 전략 결정 기준:
- 거의 제로 다운타임과 안전한 롤백이 필요할 때는 트래픽 전환을 사용하는 blue/green 또는 canary 방식을 사용합니다. CodeDeploy 또는 Application Load Balancer(ALB) 가중치 전환이 이를 지원합니다.
- 업데이트 중에 용량이 줄어들 수 있는 소규모의 상태 비저장(stateless) 플릿에는 rolling 또는 in-place 업데이트를 사용합니다.
- 파이프라인 역할의 범위가 적절히 지정되었는지 확인합니다. 파이프라인 실행 역할, CodeBuild 서비스 역할, 배포 역할(인스턴스 프로파일) 각각에 최소한의 권한을 부여합니다.
보안 암호 및 파라미터를 안전하게 관리합니다. 파라미터를 SSM Parameter Store(SecureString) 또는 AWS Secrets Manager에 저장하고, 필요에 따라 파이프라인 역할에 kms:Decrypt 및 ssm:GetParameter 또는 secretsmanager:GetSecretValue 권한을 부여합니다.
AMI 베이킹, 불변 이미지 및 AMI 관리
불변 인프라(Immutable infrastructure)는 모든 OS 및 애플리케이션 패치를 내장(bake)한 새 AMI를 생성한 다음, 기존 인스턴스를 변경하는 대신 교체하는 것을 의미합니다. CI에서 EC2 Image Builder 또는 Packer를 사용하여 AMI를 자동으로 생성합니다.
- EC2 Image Builder 파이프라인은 일정에 따라 실행되고, 패키지를 설치하고, 테스트를 실행하며, 버전 관리된 이름 규칙과 태그가 지정된 AMI를 생성할 수 있습니다.
- Packer는 CI(CodeBuild/Jenkins)에 통합되어 빌드 스크립트를 실행하고 AMI ID를 출력합니다. 참조를 위해 최신 AMI를 SSM Parameter Store(예:
/ami/app-prod)에 저장합니다.
AMI 수명 주기 관리:
- 빌드 메타데이터와 만료 날짜로 이미지에 태그를 지정하고, 보존 기간이 지나면 등록 취소 및 스냅샷 삭제를 자동화합니다.
- 버전 업데이트와 함께 Launch Templates/ASG를 사용하여 새 AMI를 롤아웃합니다. 불변 배포의 경우, 새 Launch Template 버전을 참조하는 새 ASG를 생성하고 대상 그룹을 전환합니다.
가변(Mutable) vs 불변(Immutable) 비교:
- 불변 (새 AMI/새 ASG): 이전 ASG 또는 AMI로 전환하여 롤백이 더 쉽고 안전하며, 일관된 수명 주기를 가집니다.
- 가변 (인플레이스 패치): 작은 수정 사항을 적용하기는 더 빠르지만 드리프트가 발생할 가능성이 높고 재현하기 어렵습니다. 제약 조건이 있을 때만 사용합니다.
AWS Systems Manager 자동화, Run Command 및 패치
Systems Manager(SSM)는 운영 작업을 중앙에서 관리합니다: Run Command는 임시 명령 실행, State Manager는 원하는 상태 유지, Patch Manager는 예약된 OS 패치, Automation은 복잡한 워크플로우에 사용됩니다. 일반적인 CLI 패턴은 다음과 같습니다:
- 임시 명령 전송:
undefined
- 사전 정의된 자동화 시작:
undefined
- State Manager 연결(association)을 사용하여 구성(예: SSM Agent 설정, cron 작업)을 강제하고, Patch Manager 기준선(baseline)을 사용하여 승인 규칙 및 규정 준수 스캔을 수행합니다.
구성 세부 정보 및 결정 포인트:
- 예측 가능하고 규정을 준수하는 패치를 위해 Patch Manager를 기준선(Baseline) 및 유지 관리 기간(Maintenance Window)과 함께 사용합니다. 불변(immutable) 전략을 사용하는 경우 자동 승인 기간을 선택하고 승인되지 않은 AMI 이미지를 거부합니다.
- SSM 에이전트가 없거나 네트워크가 제한된 인스턴스의 경우, SSH 포트를 열지 않도록 VPC 엔드포인트와 함께 Session Manager 사용을 고려합니다.
- SSM 액세스를 위해서는 항상 AmazonSSMManagedInstanceCore 정책이 포함된 인스턴스 프로파일이 필요합니다. 필요에 따라 추가 권한의 범위를 지정합니다.
변경 관리, 드리프트 탐지 및 롤백
파이프라인 실행, 태그, 승인을 통합하는 변경 제어를 구현합니다. CloudFormation 변경 세트(change set)를 사용하여 차이점을 미리 보고, 스택 정책(stack policy)을 사용하여 파괴적인 업데이트를 거부합니다. CLI 패턴은 다음과 같습니다:
- 드리프트 탐지:
undefined
및
undefined
- 업데이트 중 중요한 리소스를 보호하기 위해 스택 정책을 사용하고, 실패한 업데이트에 대한 알림을 받도록 롤백 트리거(rollback trigger)와 함께 RollbackConfiguration을 설정합니다.
롤백 전략:
- CloudFormation의 경우: 실패 시 자동 롤백이 기본값입니다. 필요할 때 리소스를 유지하려면 롤백 트리거를 사용하고 리소스를 보존(retain)하도록 설정합니다.
- 애플리케이션의 경우: ALB/Route53 가중치를 재조정하거나 이전 작업 세트(task set)를 복원하여 즉시 롤백할 수 있도록 트래픽 전환을 사용하는 블루/그린 또는 카나리 배포를 선호합니다.
- 롤백이 결정적(deterministic)으로 이루어지도록 불변 아티팩트(AMI ID, 컨테이너 이미지)를 유지하고 이전 버전을 레지스트리/SSM에 보존합니다.
결정 기준:
- 상태 저장 데이터 마이그레이션이 포함된 경우, 되돌릴 수 있는 마이그레이션 스크립트를 포함하거나 기능 플래그(feature flag)를 사용하여 코드 릴리스와 스키마 마이그레이션을 분리합니다.
- 배포 상태 확인 및 자동화된 스모크 테스트를 파이프라인 게이트로 사용하여 롤백을 조기에 트리거합니다.
일반적인 함정과 결정 기준
- IaC 상태와 달라지는 수동 콘솔 변경(out-of-band): 드리프트 탐지(
undefined
)를 강제하고, 수정 사항은 IaC 템플릿을 통해 적용하도록 요구합니다. IAM 제어를 사용하여 콘솔 편집을 제한합니다.
- 릴리스에 대한 안전한 롤백 계획 부재: 블루/그린 또는 카나리 배포를 채택하고 이전 아티팩트/AMI를 즉시 되돌릴 수 있도록 유지합니다.
- 파이프라인 및 역할에 대한 과도한 IAM 권한: 최소 권한 원칙을 적용합니다. 역할(파이프라인 서비스 역할, 빌드 역할, 인스턴스 프로파일)을 분리하고 필요한 ssm:GetParameter, secretsmanager:GetSecretValue, kms:Decrypt, s3 액세스 권한만 부여합니다.
- 템플릿이나 일반 텍스트에 보안 암호를 직접 저장: 보안 암호를 Secrets Manager 또는 SecureString 타입의 SSM Parameter Store로 옮기고, 배포 시 적절한 복호화 권한으로 참조합니다.
- 테스트 없이 운영 환경을 인플레이스(in-place) 패치: CI에서 업데이트된 패키지와 스모크 테스트를 포함하여 AMI를 생성(bake)한 다음, ASG 또는 블루/그린 파이프라인을 통해 불변 이미지를 롤아웃합니다.
- 드리프트 및 상태 저장 리소스 보호 무시: 스택 정책을 사용하고 정기적으로 드리프트를 탐지합니다. 상태 저장 리소스의 경우, 파괴적인 변경 전에 수동 승인 및 스냅샷을 요구합니다.
실제 문제: 사용 사례 시나리오
Acme Payments는 PCI 규정을 준수하는 API 서비스를 배포하고, 월별 OS 패치를 적용해야 하며, 업무 시간 중 배포로 인해 오류가 발생할 경우 신속하게 롤백할 수 있어야 합니다.
- 불변 파이프라인 구현: CodePipeline/CodeBuild를 사용하여 EC2 Image Builder(또는 Packer)로 AMI를 생성(bake)하고, AMI에 태그를 지정한 후, AMI ID를 SSM Parameter Store에 게시합니다.
- AMI에 대한 SSM 파라미터를 참조하는 CloudFormation 템플릿을 통해 배포하고, 각 릴리스마다 새로운 ASG + 시작 템플릿(Launch Template) 버전을 생성합니다. 사전 검토를 위해 변경 세트를 사용합니다.
- 상태 확인 및 자동화된 스모크 테스트와 함께 CodeDeploy 또는 ALB 대상 그룹의 블루/그린 트래픽 전환을 사용합니다. 상태 확인 실패 시 자동 롤백을 구성합니다.
- 트래픽이 적은 시간에 패치를 적용하기 위해 Systems Manager 유지 관리 기간을 통해 Patch Manager를 예약합니다. 운영 환경의 인플레이스 패치를 피하기 위해 패치된 이미지에 대해 생성 후 배포(bake-and-deploy)를 수행합니다.
- 파이프라인 역할에 대해 최소 권한 IAM을 강제하고, 보안 암호는 Secrets Manager에 저장하며, 중요한 리소스에 대해 CloudFormation 드리프트 탐지 및 스택 정책을 활성화합니다.
근거: 이미지를 생성하고 불변 배포하는 방식은 빌드와 실행 문제를 분리하여, 재현 가능한 아티팩트와 안전한 롤백 경로를 제공합니다. SSM을 통한 자동화된 패치와 불변 배포를 결합하면 위험을 최소화하고 규정 준수를 지원하면서 복구 가능성을 유지할 수 있습니다.
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →