티스토리 뷰

AWS

천리 배포길도 한걸음 codebuild 부터

나를찾는아이 2022. 2. 2. 17:39
728x90
반응형

aws에서는 내가 만든 어플리케이션의 build부터 배포까지 자동화가 가능합니다

 

(물론 jenkins를 비롯해서 다른 좋은 도구들도 있습니다)

 

배포할 소스는 s3에 업로드된 zip파일, docker, ecr의 이미지, bitbucket, github, codecommit의 repository로 부터 가능하고

 

배포 대상으로는 ec2, ecs, elastic beanstalk 등 가능합니다

 

특정 출처로 부터 소스코드를 받아 빌드를 하고 완성된 빌드를 목표로 하는 대상에 배포를 하는것입니다

 

 

예를 들어 내가 만든 nodejs 어플리케이션 코드가 있는 github repository가 있다고 할때

 

nodejs 프로젝트를 가져와서 명시된 대로 빌드를 하고(codebuild)

 

완료된 빌드 결과물을 내가 원하는 대상으로 배포하는 전체과정을 명시(codepipeline)하는것입니다

 

 

https://trend21c.tistory.com/2204

 

eb cli 를 통해 docker 플랫폼 배포하기

eb(elastic beanstalk)를 cli를 통해 사용하려면 eb cli를 설치해주세요 설치를 완료했으면 손쉽게 콘솔상에서 eb 어플리케이션을 생성하여 배포할수 있습니다 1. $ eb init 현재 소스코드의 루트 디렉토리

trend21c.tistory.com

 

이미 이전 포스팅에서 cli를 활용해서 elastic beanstalk를 만들어 보았는데

 

이렇게 만든 eb 환경과 연동하여

 

main 브랜치에 코드가 푸시 되면 해당 버전의 docker이미지를 ecr에 푸시하고 이를 배포하는 과정을 해볼거예요

 

 

 

 

일단 가장 먼저 codebuild를 사용해봅시다

 

 

적당한 이름으로 프로젝트를 생성합니다

 

앞으로도 추가구성, 고급구성은 굳이 지금 설정은 건드리지 않아도 되고 나중에 직접 수정할수도 있으니 건드리지 않겠습니다

 

 

소스 공급자를 선택합니다

 

S3는 s3에 업로드된 소스코드를 말하는거고

 

그외 codecommit, github, bitbucket, github enterprise는 모두 git repository입니다

 

codecommit을 사용하는 경우라면 같은 aws 서비스라 좀더 설정이 손쉽고

 

그외의 서비스를 선택하더라도 특별히 어려울것은 없지만

 

aws가 github repository에 접근할수 있도록 추가적인 auth 인증을 해야합니다

 

github을 선택해봅시다

 

 

퍼블릭 리파지토리는 아무런 인증이 필요 없지만

 

개인프로젝트라면 "내 GitHub 계정의 리포지토리"를 선택하고 github 계정을 연결하는 절차를 진행해야합니다

 

해당 진행은 이번 포스팅에서는 건너뛰도록 하겠습니다

 

aws에서 안내해주는 설명대로 따라하시면 됩니다

 

 

그리고 코드를 빌드 하는 환경에 대한 설정을 합니다

 

Amazon linux와 ubuntu를 선택할수 있는데요

 

여러분이 배포를 하는 대상의 환경과 같은 환경으로 해주시는게 가장 좋습니다

 

저는 amazon linux를 골라서 나머지 설정도 설정했습니다

 

도커 이미지를 빌드하려는 경우 

 

"도커 이미지를 빌드하거나 빌드의 권한을 승격하려면 이 플래그를 활성화합니다"

 

이 문구 앞의 체크박스를 반드시 활성화 해야합니다

 

그리고 서비스 역할은 기존 서비스 역할을 사용하거나 미리 만들어서 지정해줄수도 있지만 

 

"새 서비스 역할"을 생성해보도록 하죠

 

자동으로 역할 이름을 생성해주는데 앞으로 권한 문제가 발생하는경우 저 역할에 권한을 부여해주는 방법으로 해결이 됩니다

 

buildspec 파일 사용을 선택하시면 내 프로젝트의 root 에 위치한 buildspec.yml을 참고하여 빌드를 진행하게 됩니다

 

buildspec.yml 파일에 빌드하는 과정에 필요한 명령어들을 넣으면 됩니다

 

그 아래 아티팩트는 일종의 빌드 결과물을 말하는 건데요

 

아티팩트는 buildspec에서도 지정을 할 수 있으므로, 여기서는 아티팩트 없음을 선택하셔도 됩니다

 

(buildspec.yml과 아티팩트에 대해서는 다음 포스팅에서 자세히 설명할께요)

 

 

자 길고 긴 설정이 끝났습니다

 

빌드 프로젝트를 생성하면 codebuild의 세팅은 완성이 됩니다

 

 

설정이 제법긴것 같아 보였지만 

 

실제적으로는 소스코드를 어디서 가져와서 빌드를 할지에 대한 소스 코드 경로를 알려주고

 

서비스 역할을 생성하고,

 

buildspec을 사용할것이라고 설정한것이 전부입니다

 

 

여기까지 단계에서는 아직 프로젝트내에 buildspec.yml 파일을 설정하지 않았고,

 

아티팩트에 대한 설정을 하지 않았습니다

 

이제 이 다음포스팅에서 이것들도 활용하여 codepipeline을 통해 빌드부터 배포까지 연결해보겠습니다

 

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함