TIL 64일차

안광의·2021년 9월 27일
0

Today I Learned

목록 보기
64/64
post-thumbnail

시작하며

오늘은 이전에 AWS의 S3와 EC2를 이용해서 진행했던 배포를 CodePipeline을 이용하여 자동화하는 스프린트를 진행하였다. 수정사항이 발생할 때마다 변경된 파일을 다시 배포하는 과정이 번거롭다고 생각했는데 자동화를 통해 편리하게 배포가 가능했다.

배포 자동화

정의
배포 자동화란 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것을 말하며, 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약되고 사람이 수동적으로 배포 과정을 진행하는 중에 생기는 실수를 방지할 수 있다.

파이프 라인(Pipeline)
파이프라인(Pipeline)이란 용어는 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조를 뜻한다. 파이프라인은 전체 배포 과정을 여러 단계(Stages)로 분리하고, 각 단계는 파이프라인 안에서 순차적으로 실행되며, 단계마다 주어진 작업(Actions)을 수행한다.

1. Source 단계 : Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행한다.

2. Build 단계 : Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공한다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행한다.

3. Deploy 단계 : Deploy 단계에서는 Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행한다.


AWS 개발자 도구

CodeCommit
Source 단계를 구성할 때 CodeCommit 서비스를 이용한다. CodeCommit은 GitHub과 유사한 서비스를 제공하는 버전 관리 도구이다.

GitHub과 비교했을 때 CodeCommit 서비스는 보안과 관련된 기능에 강점을 가지기 때문에 소스 코드의 유출이 크게 작용하는 기업에서는 매우 중요한 요소이다. 다만 CodeCommit을 사용할 때는 과금 가능성을 고려해야 하고, 프리티어 한계 이상으로 사용할 시 사용 요금이 부과될 수도 있다. 그런 이유로 사이드 프로젝트나 가볍게 작성한 소스 코드를 저장해야 할 경우에는 GitHub을 이용하는 것이 효과적이라고 볼 수 있다.

CodeBuild
CodeBuild 서비스를 통해 유닛 테스트, 컴파일, 빌드와 같은 빌드 단계에서 필수적으로 실행되어야 할 작업을 명령어를 통해 실행할 수 있다.

CodeDeploy
Deploy 단계를 구성할 때는 기본적으로 다양한 서비스를 이용할 수 있다. 이번 실습에서는 CodeDeploy와 S3 서비스를 이용할 예정이며, CodeDeploy 서비스를 이용하면 실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항을 전달할 수 있다. 또한 S3 서비스를 통해 S3 버킷을 통해 업로드된 정적 웹 사이트에 변경 사항을 실시간으로 전달하고 반영할 수 있다.

CodePipeline
각 단계를 연결하는 파이프라인을 구축할 때 이용하는 서비스이다.

마치며

스프린트의 Hands-on 가이드를 통해서 무리없이 진행하였지만 단계와 옵션이 다양하기 때문에 AWS에 대해서는 추가적으로 공부가 필요하다고 생각한다. 환경변수를 위해 사용한 Parameter Store 서비스나 yml파일과 sh파일의 명령어들도 추가적으로 공부해서 실제 프로젝트 진행시 활용해야겠다고 생각했다. 이제 내일 ha 3가 시작되는데 추석 연휴도 있었고 과제형 ha를 대비해서 직접 웹페이지와 서버도 구현해보았기 때문에 크게 걱정은 없지만 실수하지 않도록 조심해야겠다.

profile
개발자로 성장하기

0개의 댓글