CI/CD 파이프라인에 IaC 통합하기
AWS 배포 자동화
Dunieski Otano
Amazon Web Services Solutions Architect
코드가 먼저, 인프라는 나중에
코드는 CodePipeline으로 배포되지만, 인프라는 수동으로 업데이트됩니다
개발자는 Lambda를 확장하고, 운영팀은 SQS 큐 크기를 조정합니다
코드와 인프라 간 드리프트(Drift)가 장애를 일으킵니다
CloudFormation을 동일한 파이프라인에 연결하세요
파이프라인 작업으로서의 CloudFormation
CodePipeline은
CloudFormation 배포 작업
을 지원합니다
파이프라인은
템플릿 아티팩트
를 작업에 전달합니다
모드:
CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
소스, 빌드, 앱 배포 작업과 함께 실행됩니다
일반적인 엔드투엔드 파이프라인
소스
: Git 푸시가 파이프라인을 트리거합니다
빌드
: 템플릿과 앱 아티팩트를 생성합니다
인프라 배포
: CloudFormation이 스택을 생성하거나 업데이트합니다
앱 배포
: CodeDeploy가 새 버전을 배포합니다
스택 실패 시 자동 롤백
업데이트가 실패하면 마지막 정상 상태로
자동 롤백
됩니다
파이프라인 단계가
실패
하면 이후 단계가 중단됩니다
1장에서 설정한 실패 알림이 자동으로 작동합니다
모듈형 템플릿을 위한 중첩 스택
중첩 스택(Nested Stack)
은
AWS::CloudFormation::Stack
타입으로 선언됩니다
2,000줄짜리 템플릿을
재사용 가능한 모듈
로 분리합니다
상위 스택이 매개변수를 전달하고 출력값을 읽습니다
각 모듈은 상위 스택 내에서 독립적으로 배포됩니다
다중 계정, 다중 리전을 위한 StackSet
StackSet
은 하나의 템플릿을
여러 계정과 리전
에 배포합니다
보안 기준선, 가드레일, 공유 인프라
에 유용합니다
템플릿을 다시 작성하지 않고
스택 인스턴스
를 추가하거나 제거할 수 있습니다
중앙에서 관리하고 로컬에서 배포합니다
적합한 구조 선택하기
단일 스택
: 소규모 앱, 단일 환경
중첩 스택
: 대규모 템플릿, 모듈형 구성 요소
StackSet
: 동일한 템플릿, 여러 계정과 리전
세 가지 모두 CodePipeline과 잘 작동합니다
연습해 봅시다!
AWS 배포 자동화
Preparing Video For Download...