2022-03-30 T.I.L 배포 자동화

정종훈·2022년 3월 30일
0

T.I.L

목록 보기
12/20

배포 자동화 성취목표


서비스가 규모가 복잡해지고 커질수록, 서비스를 배포하는 과정이 복잡해지고 소요되는 시간이 늘어나게 됩니다.
서비스의 변경 사항이 생길 때마다 배포 과정을 매번 수동으로 진행한다면, 배포 과정에 많은 시간을 허비해야 할 것입니다. 버튼 하나만 클릭하면 전체 배포 과정이 '자동'으로 진행되게 만들 수는 없을까요?
이번 유닛에서는 배포 자동화 개념에 대해 학습하고, 실습을 통해 배포 자동화의 장점을 체험하는 시간을 가져보도록 하겠습니다.

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

배포 자동화


이때까지 배포에 대해 배웠는데 예를 들어 S3 같은 경우 조금 수정해서 빌드하려면 다시 다 뭐 업로드하고 그래야됨. 너무 귀찮음...

그냥 클릭 한 번 으로 배포가 될 순 없을까?

그러면 시간도 절약되고 휴먼 에러(사람이 배포하다 실수하는것) 도 줄일 수 있을텐데

배포 자동화 파이프라인

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

git 처럼 여러 Stages로 분리함!

대표적인 단계는

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

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

컴파일: 컴퓨터가 이해할 수 있는 기계어로 바꾸어주는 과정. ex) java => .class
빌드: 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과
즉 빌드 = 컴파일 + 알파

참조

  1. Deploy 단계: 2단계의 결과물을 실제 서비스에 반영하는 작업 수행

파이프라인 단계는 상황과 필요에 따라 더 세분화되거나 간소화될 수 있음!

AWS 개발자 도구

'개발자 툴이 있는데 섹션이 어딨는지는 몰랐는데 여기 공릭 링크 있음!'

이거 배포 도구인데 하나씩 살펴보자.


CodeCommit

1소스 단계를 구성할 때 사용함. Github와 유사한 버전 관리 도구

CodeCommit 은 보안과 관련된 기능에 강점을 가짐. 회사에서는 좋겠네. 근데 돈 듦



CodeBuild

2빌드 단계에서 사용.

CodeBuild 공식문서



CodeDeploy

3디플로이 단계에서 사용. 이번 스프린트에서는 이것과 S3를 이용할 것.

코드디플로이를 이용하면 실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항 전달 가능!

S3도 마찬가지!

CodeDeploy 공식문서



CodePipeline

각 단계를 연결하면 됨

프리티어는 두 개 이상 파이프라인쓰면 돈 나감


프리티어 요금 계산 법!

뭐 codeguru는 코드를 자동적으로 분석해서 취약점 파악해준단다.. 신기함

여튼 많은 개발자 도구가 있음!


문제 1: 로그인할떄 CORS 정책

문제 2: EC2 접속 안됨. ~~mysql

문제 3: 서버쪽 환경변수 문제! => 해결 하니까 문제 2도 해결됨!!!

서버가 작동하려면 DB랑 되어있어야 하는데

DB 연결 안됨 => 서버 먹통 => 클라이언트 요청 에러.

profile
괴발개발자에서 개발자로 향해보자

0개의 댓글