상황과 필요에 따라 단계는 더 세분화되거나 간소화될 수 있다.
CodeCommit
Source 단계 구성
Github와 유사한 버전 관리 도구
Github와 비교했을 때, 보안관련 기능에서 강점
프리티어 한계 이상으로 사용시 과금될 수 있음 >> 사이드 프로젝트나 가볍게 작성한 것을 배포할 때는 Github를 이용하는게 나음
CodeBuild
Build 단계
유닛 테스트, 컴파일, 빌드와 같은 작업을 명령어를 통해서 실행할 수 있음
buildspec.yml
파일을 참조하여 작업 수행
CodeDeploy
Deploy를 구성하는 다양한 서비스 중 하나
실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항을 전달할 수 있음
버킷에 업로드된 정적 웹 사이트에 변경 사항을 실시간으로 전달하고 반영할 수 있음
appspec.yml
파일을 참조하여 작업 수행
CodePipeline
각 단계를 연결하는 파이프 라인을 구축할 때 사용
S3, CodeBuild, CodePipeline을 이용해 클라이언트 배포 자동화 >> 빌드 환경 설정에서 환경 변수 설정
EC2, CodePipeline을 이용해 서버 배포 자동화 >> Parameter Store를 통해 환경변수 설정
삽질) 환경 변수를 참조하는 방법이 다른 것일까? process.env로 참조하면 undefined가 뜬다, 당연한 것인가
검색어가 잘못된 걸까? 만족스러운 결과가 안나온다
빌드 >> 클라이언트가 필요한 것!
서버가 TypeScript로 작성됐으면 서버도 빌드 필요
Branch >> master - dev - feature
Build에서 사용자 지정 이미지를 통해 Docker이미지를 바로 쓸 수도 있음!!
CI/CD
Continuos Integration/Continuos Delivery
위 스프린트에서 배포 자동화를 한것은 맞으나 CI/CD를 한 것은 아니다~
일부 단계가 빠졌기 때문(Test, Operate)