AWS 서비스로 배포자동화 하기

Purple·2021년 12월 7일
0

TIL

목록 보기
68/73

1. 배포자동화란,

  • 한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것을 뜻한다. 배포 자동화를 이용하면 시간절약이 가능하고, Human Error를 방지할 수 있다. Human Error는 사람이 수동적으로 배포 과정을 진행하는 중에 언제든 생길 수 있고, 그 전에 했던 배포 과정과 비교하여 특정 과정을 생략하거나 다르게 진행하여 발생할 수도 있다.

2. 파이프라인

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

  • 파이프라인을 여러단계로 분리할수 있지만 대표적으로 3가지로 나눌 수 있다.

  1. Source 단계
    • Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행한다.
    • gitHub, CodeCommit 등을 이용할 수 있다.
    • gitHub는 무료로 이용할 수 있지만, CodeCommit은 과금이되지만, 소스 코드의 유출을 방지할 수있다는 장점이 있다.
  2. Build 단계
    • Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공한다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행한다.
    • CodeBuild 서비스를 이용할 수 있다.
  3. Deploy 단계
    • Deploy 단계에서는 build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행한다.
    • CodeDeploy와 S3 서비스를 이용할 수 있다.

3. 실습하면서 궁금했던 점

  • CodeBuild는 왜 클라이언트에서만 사용할까?
    • 서버를 만들때는 build를 안하니까..서버는 간략히 생각해보면, express설치 → app.js 작성 → node app.js 실행하면 완성된다. 그러나 만약, 서버를 typescript로 작성했다면, build가 포함되어야한다. Build가 바로 typescript를 JavaScript로 바꿔주는 일을 하니까..
  • CodeDeploy는 왜 서버에서만 사용할까?
    • 서버는 애플리케이션이 항상 실행되는 상태로 유지해야한다. 이때 CodeDeploy는
      1. EC2 인스턴스에 대한 배포(코드 다운로드)
      2. AppSpec을 이용해 각각의 수명주기(lifecycle)에 필요한 명령 설정
      3. 애플리케이션 중단 및 실행과 관련한 코드가 반드시 필요
    • 위의 작업들을 실행한다.
profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글