[#CI/CD] AWS DevOps Session (Code Series)

easyO.On
4 min readOct 18, 2022

--

커피를 만드는 알렉사

CI/CD

개발자가 변경하는 새로운 코드들의 Merge로 인해 생기는 여러가지 문제를 해결하기 위한 솔루션
특히 CI/CD는 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 어플리케이션의 라이프사이클 전체의 자동화와 모니터링을 제공

CI/CD 필요성

다수의 개발팀이 다수의 서비스를 각각 배포할 때의 문제점

: 개발 주기가 각각이기 때문에, 개발 프로세스가 복잡해진다.

CI/CD 효과

배포 프로세스가 단순화 되기 때문에 배포 빈도에 효율적

  • 매주/매월 단위 → 매시간/매일 단위(더 빠른 단위로 할 수 있다)
  • 배포 실패 비율 변화도 줄어듦
아마존 코리아

Amazon CI/CD Tool : Code Series

AWS Code Series비용

사용한 만큼만 지불. AWS CodePipeline는 월별 활성 파이프라인* 당 1.00 USD /1400원를 청구. 전체 기본 구성을 적용하는 경우,월별 청구액은 약 15 USD/21000원 . 생성 후 첫 30일 동안은 파이프라인이 무료(trial)로 제공 + 서울 리전 설정이 안되어서 도쿄로 사용해야 함. 개인 무료여부는 모르겠다.

AWS CodePipeline Service

  • Author
    : AWS Cloud9 AWS IDE toolkits (AWS가 소스 수정을 위해 자체적으로 제공하는 IDE)
    ->비추ㅎ 개인 프로젝트에만 추천
  • Source
    : AWS CodeCommit (구성원 간의 Pull Request 등의 작업을 위해 사용)

AWS CodeComit 적용 효과

AWS 플랫폼 내에서 Pull Request 관리와 각 환경의 Merge 현황을 모두 관리하여 PR ~ Deploy를 한 플랫폼 내에서 한 흐름으로 관리할 수 있다.
(하지만 필요에 따라 하나의 단계만 구성하여 다른 플랫폼과 연결도 가능)

  • Build
    : AWS CodeBuild
  • Test
    : AWS CodeBuild
  • Deploy
    : AWS CodeDeploy
  • Monitor

AWS CodeBuild 의 컨셉

  • Project
    : 소스를 빌드하거나 환경을 어떻게 구성하고 서비스를 이어갈지
  • Environment
  • Inputs
  • Phases
  • Commands
  • Artifacts
    (하기는 JAVA 로젝트 설정파일, FE 프로젝트의 경우 NPM 및 Node 설정하면 된다.)

AWS CI/CD 환경 구성 방법

아래 워크샵 자료는 AWS에서 제공받은 Event Engine을 바탕으로 활용한 예제

1) CI/CD 환경 구성 Workshop

AWS CI/CD 환경을 구성하기 위해서는 대략적으로 아래와 같은 과정이 필요

  • AWS 플랫폼 내 소스코드 리포지토리 생성
  • 프로젝트 빌드 (빌드 설정을 위한 buildspec 추가 필요)
  • 배포 그룹 만들기 (appspec 설정 등)
  • 배포 파이프라인 생성

구체적인 과정은 아래 도큐먼트 참고
: https://catalog.us-east-1.prod.workshops.aws/workshops/cbcd960c-a07b-40c2-a01d-1d2e7a52b945/ko-KR

2) Code Quality Workshop
: https://catalog.us-east-1.prod.workshops.aws/workshops/fa518794-acd4-4178-80d3-97fa62f9deff/ko-KR

그 외 개념 참고

AWS IaC

AWS CDK

: AWS CDK는 익숙한 프로그래밍 언어(JavaScript, TypeScript, Python, Java, C#, Go 등)를 사용하여 클라우드 애플리케이션 리소스를 정의할 수 있는 오픈 소스 소프트웨어 개발 프레임워크

실습이 끝나니 해가 지고 있었다ㅎㅎㅠ

--

--