본문 바로가기

카테고리 없음

TIL - 211206 [배포] 배포 자동화

Achievement Goals

  • 배포 자동화에 정의와 이점에 대해 설명할 수 있다.
  • 배포 파이프라인이 무엇인지 정의할 수 있다.
  • 파이프라인을 구성하는 단계(Stages)와 작업(Actions)에 대해 설명할 수 있다.
  • AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다.
  • 배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, log 파일과 공식 문서를 통해 해결할 수 있다.
  • AWS에서 제공하는 IAM 서비스를 이해하고 사용할 수 있다.
    • 그룹, 사용자, 정책, 역할의 차이점과 특징에 대해서 이해할 수 있다.
    • IAM 정책에 대해 이해하고 특정 주체에게 권한을 부여할 수 있다.
    • IAM 보안 모범 사례에 대해 찾아보고, 서비스를 이용하며 적용할 수 있다.

CAPTER - Automated Deployment

배포 자동화

한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것을 뜻한다. (시간절약, 휴먼에러 방지)

배포 자동화를 통해 전체 배포 과정을 매번 일관되게 진행하는 구조를 설계하여 휴먼 에러를 방지 한다.

 

배포 자동화 파이프라인

파이프라인은 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조이다.

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

2. Build : Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공

3. Deploy : 실제 서비스에 반영하는 작업 수행

 

ASW 개발자 도구

AWS의 개발자 도구 섹션에서 제공하는 서비스를 활용하여 배포 자동화 파이프라인을 구축할 수 있다.

 

CodeCommit

Source 단계를 구성할 때 CodeCommit 서비스를 이용합니다. CodeCommit은 GitHub과 유사한 서비스를 제공하는 버전 관리 도구입니다. CodeCommit과 GitHub의 차이점은 무엇일까요? 어떤 서비스가 우월하다기보다, 각 서비스가 가지는 장단점이 다릅니다.

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

 

CodeBuild

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

 

CodeDeploy

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

 

CodePipeline

각 단계를 연결하는 파이프라인을 구축할 때 CodePipeline 서비스를 이용합니다. [주의] AWS 프리티어 계정 사용 시 한 계정에 두 개 이상의 파이프라인을 생성하면 추가 요금이 부여될 수 있습니다. 실습 시 주의하세요.