[SOA-C02] 이론 강의: SysOps를 위한 CI/CD & IaC 핵심! CodeSuite와 CloudFormation/CDK 완전 분석

작성자: aws | 작성일: 2026년 06월 27일 | 조회: 1 | 좋아요: 0

AWS SOA-C02 | Associate 과정
⚙️ [SOA-C02] 이론 강의: SysOps를 위한 CI/CD & IaC 핵심! CodeSuite와 CloudFormation/CDK 완전 분석
AWS CodeSuite와 Infrastructure as Code (IaC) 서비스로 자동화된 운영 환경 구축 마스터하기
🎓 학습 안내: SysOps Administrator – Associate (SOA-C02) 시험에서 자동화된 배포 및 인프라 관리는 핵심 역량으로 평가됩니다. 본 강의는 개발(Dev)과 운영(Ops)의 경계를 허물고 효율적인 소프트웨어 개발 및 배포를 가능하게 하는 CI/CD (Continuous Integration/Continuous Delivery) 파이프라인과 Infrastructure as Code (IaC)의 중요성을 다룹니다. 특히 AWS의 강력한 CodeSuite 서비스들(CodeCommit, CodeBuild, CodeDeploy, CodePipeline)과 인프라 자동화 도구인 CloudFormation 및 CDK를 중심으로 시험에 자주 출제되는 핵심 개념과 실무 적용 방안을 깊이 있게 설명합니다. 이 지식은 단순히 시험 합격을 넘어, 실제 AWS 환경에서 안정적이고 반복 가능한 운영 환경을 구축하는 데 필수적입니다.

1. AWS CodeSuite: 완전 관리형 CI/CD 서비스

AWS CodeSuite는 개발부터 배포까지의 모든 과정을 자동화하고 오케스트레이션하는 데 필요한 서비스들을 제공합니다. SysOps 관점에서 이 서비스들을 이해하는 것은 배포 안정성과 일관성을 확보하는 데 매우 중요합니다.

1.1. 소스 코드 관리: AWS CodeCommit

AWS CodeCommit은 완전 관리형 Git 기반의 버전 관리 서비스입니다. 프라이빗 Git 리포지토리를 호스팅하며, 코드 변경 사항을 안전하게 저장하고 팀원들과 협업할 수 있도록 합니다. S3와 KMS를 이용한 암호화, IAM을 통한 접근 제어를 제공하여 보안성이 높습니다.

1.2. 코드 빌드 및 테스트: AWS CodeBuild

AWS CodeBuild는 소스 코드를 컴파일하고, 단위 테스트를 실행하며, 배포 가능한 아티팩트(예: JAR, WAR 파일, Docker 이미지)를 생성하는 완전 관리형 빌드 서비스입니다. 별도의 빌드 서버를 프로비저닝하거나 관리할 필요 없이 온디맨드로 확장되며, buildspec.yml 파일을 통해 빌드 과정을 정의합니다. 이 파일은 소스 코드 리포지토리 루트에 위치합니다.

1.3. 애플리케이션 배포: AWS CodeDeploy

AWS CodeDeploy는 EC2 인스턴스, 온프레미스 서버, Lambda 함수, Amazon ECS 서비스 등 다양한 컴퓨팅 서비스에 애플리케이션 배포를 자동화하는 서비스입니다. 배포 전략(Deployment Strategies)이 중요하며, 주요 전략은 다음과 같습니다.

  • In-place Deployment (현재 위치 배포): 기존 인스턴스에 애플리케이션을 직접 업데이트합니다. 간단하지만 배포 중 다운타임이 발생할 수 있습니다.
  • Blue/Green Deployment (블루/그린 배포): 새 버전(Green)을 기존 버전(Blue)과 별도로 배포하고 테스트한 후, 트래픽을 점진적으로 전환합니다. 다운타임 없이 롤백이 용이하여 고가용성 서비스에 적합합니다.
  • Linear, Canary (Lambda 및 ECS): 트래픽을 점진적으로 전환하는 Blue/Green의 변형으로, Lambda 함수와 ECS 서비스에서 더 세밀한 트래픽 제어를 가능하게 합니다.

CodeDeploy는 배포 전/후 스크립트 실행(Hooks)을 통해 커스터마이징된 배포 로직을 추가할 수 있습니다.

1.4. 파이프라인 오케스트레이션: AWS CodePipeline

AWS CodePipeline은 소프트웨어 릴리스 프로세스를 자동화하고 시각화하는 완전 관리형 지속적 전달 (Continuous Delivery) 서비스입니다. CodeCommit에서 변경 사항이 감지되면, 이를 기반으로 CodeBuild를 트리거하여 빌드하고, CodeDeploy를 통해 배포하는 전체 CI/CD 워크플로우를 구성합니다. 여러 스테이지(Stage)와 액션(Action)으로 구성되며, 수동 승인(Manual Approval) 단계를 추가하여 배포 전 확인 과정을 거칠 수도 있습니다.

2. Infrastructure as Code (IaC): 인프라 관리의 자동화

CI/CD 파이프라인은 애플리케이션 코드뿐만 아니라, 애플리케이션이 실행될 인프라(Infrastructure) 또한 자동화된 방식으로 관리되어야 합니다. 이것이 바로 IaC의 핵심입니다.

2.1. AWS CloudFormation: 인프라의 청사진

AWS CloudFormation은 AWS 리소스를 코드로서 모델링하고 프로비저닝하며 관리하는 서비스입니다. YAML 또는 JSON 템플릿을 사용하여 EC2 인스턴스, RDS 데이터베이스, VPC, IAM 역할 등 모든 AWS 리소스의 구성을 선언적(declarative) 방식으로 정의합니다. 주요 특징은 다음과 같습니다.

  • 반복 가능성 및 일관성: 동일한 템플릿으로 여러 환경(개발, 스테이징, 프로덕션)에 동일한 인프라를 반복적으로 배포할 수 있습니다.
  • 의존성 관리: 리소스 간의 의존성을 자동으로 파악하고 올바른 순서로 생성/업데이트합니다.
  • 스택(Stack): 템플릿을 통해 생성된 리소스들의 집합을 스택이라고 합니다. 스택을 생성, 업데이트, 삭제하여 관련 리소스들을 한 번에 관리할 수 있습니다.
  • 스택 세트(StackSets): 여러 AWS 계정 또는 여러 리전에서 동일한 스택을 배포하고 관리할 수 있도록 지원합니다. 중앙 집중식 관리가 필요한 경우 유용합니다.

2.2. AWS CDK (Cloud Development Kit): 코드로 인프라 정의

AWS CDK는 TypeScript, Python, Java, C#, Go 등 친숙한 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 정의할 수 있는 오픈 소스 소프트웨어 개발 프레임워크입니다. CDK 코드는 CloudFormation 템플릿으로 합성(synthesize)되어 배포됩니다. 이는 개발자들이 이미 익숙한 도구와 워크플로우를 사용하여 인프라를 정의할 수 있게 함으로써, 생산성을 높이고 복잡한 CloudFormation 템플릿 작성을 간소화하는 데 도움을 줍니다.

  • 높은 추상화 수준: 복잡한 AWS 리소스 조합을 컨스트럭트(Constructs)라는 재사용 가능한 구성 요소로 캡슐화합니다.
  • 프로그래밍적 유연성: 조건문, 반복문, 클래스 등 프로그래밍 언어의 모든 기능을 활용하여 인프라를 동적으로 생성하고 관리할 수 있습니다.
  • 테스트 용이성: 일반적인 소프트웨어 코드처럼 인프라 코드를 테스트할 수 있습니다.

3. CI/CD 및 IaC의 시너지 효과

이 모든 서비스는 함께 작동할 때 가장 큰 시너지를 발휘합니다. 예를 들어, CodePipeline에서 인프라 변경 사항을 감지하면(CloudFormation 템플릿 변경), 이를 빌드하고(CodeBuild), 새로운 인프라를 프로비저닝하거나 업데이트한 후(CloudFormation), 그 위에 애플리케이션을 배포하는(CodeDeploy) 완전 자동화된 파이프라인을 구축할 수 있습니다. 이는 신뢰성, 속도, 보안을 극대화하고 인적 오류를 최소화하여 운영 효율성을 크게 향상시킵니다.

📌 핵심 요약
✔AWS CodeSuite (CodeCommit, CodeBuild, CodeDeploy, CodePipeline)는 CI/CD 워크플로우를 자동화하고 오케스트레이션하는 데 사용됩니다.
✔CodeDeploy는 In-place 및 Blue/Green과 같은 다양한 배포 전략을 지원하며, 고가용성을 위해 Blue/Green이 선호됩니다.
✔AWS CloudFormation은 YAML/JSON 템플릿을 사용하여 AWS 리소스를 선언적으로 정의하고, 스택(Stack) 단위로 관리합니다.
✔AWS CDK는 친숙한 프로그래밍 언어로 인프라를 정의하고 CloudFormation 템플릿으로 합성하여 배포하는 IaC 도구입니다.
✔CI/CD와 IaC의 결합은 소프트웨어 및 인프라 배포의 일관성, 속도, 신뢰성을 극대화합니다.
💡 시험 합격 Tip
SOA-C02 시험에서는 각 CodeSuite 서비스의 역할과 기능, 특히 CodeDeploy의 배포 전략(In-place vs. Blue/Green) 차이점 및 CloudFormation의 스택/스택 세트 개념을 명확히 이해해야 합니다. 또한, CI/CD 파이프라인에서 각 서비스가 어떻게 상호작용하며 전체적인 자동화 흐름을 만들어내는지 시나리오 기반으로 출제될 수 있으니, 각 구성 요소의 연결성을 중심으로 학습하세요. CDK는 CloudFormation의 추상화 계층임을 기억하세요.
AWS CodeCommitAWS CodeBuildAWS CodeDeployAWS CodePipelineAWS CloudFormationAWS CDK
🛡️ Deuktem AWS Lecture Bot | 커뮤니티 이동