본문 바로가기
개발자 :-)/AWS

[AWS] DevOps Engineer Professional (1) - CICD

by 뚜생첨 2022. 8. 14.

AWS DOP 취득기 시이작

Continuous Integration

개발자가 레파지토리(GitHub, CodeCommit, Bitbucket 등) 에 코드를 push 하게되면

빌드 서버(CodeBuild, Jenkins CI 등)가 Build와 테스트 할 수 있는지 체크함

빌드서버에서 빌드결과(성공/실패)를 개발자에게 feedback 줌으로써

코드를 향상? 시키고 버그를 빨리 찾고 고칠 수 있게 해줌

그리고 상시 Deploy(배포)를 가능하게 함

 

=> 개발자는 단지 코드를 Push 했을 뿐인데 

     빌드서버가 테스트와 버그 찾기, 배포 등을 다 해줌

 

그러므로 CI는 CICD 의 첫번째 단계임

 

 

Continuous Delivery

필요할 때마다 배포할 수 있음.

-> deploy를 자동화해야 가능한 것임(deploy 자동화 툴 : CodeDeploy, Jenkins CD, Spinnaker 등)

 

 

Continuous Delivery VS Continuous Deployment

Continuous Delivery는 

  자동화를 이용하여 자주 배포할 수 있음

  배포 승인을 위한 수동 단계가 포함될 수도 있음.

 

Continuous Deployment

  모든 단계가 자동임.

  = 레파지토리에 push 하는 것만으로 deploy

  배포 승인과 같은 간섭이 없기 때문에 일반적으로 다양한 모니터링하는 툴을 각 파이프라인에 도입함 

 

 

Technology Stack for CICD

 

Code 단계 : AWS CodeCommit 이나 GitHub 등의 코드 레파지토리 사용

Build 단계와 Test 단계 : AWS CodeBuild 나 Jenkins CI 등의 CI 레파지토리 사용

Deploy 단계와 Provision 단계 : AWS Elastic Beanstalk

또는

Deploy 단계 : AWS CodeDeploy

Provision 단계 : User Managed EC2 Instances Fleet(CloudFormation)

 

Code ~ Provision 전 단계를 모니터링, 시각화, 관리 : AWS CodePipeline

 

 

 

 

728x90
반응형

댓글