티스토리 뷰
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
이미 이전 포스팅에서 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을 통해 빌드부터 배포까지 연결해보겠습니다
'AWS' 카테고리의 다른 글
aws ecs fargate 사용하기 (0) | 2022.02.07 |
---|---|
docker 파일 하나로 단일 컨테이너 elastic beanstalk에 배포하기 (0) | 2022.02.05 |
nodejs elastic beanstalk 에 codepipeline 배포하기 (0) | 2022.02.04 |
codepipeline으로 푸시부터 빌드를 지나 배포까지 완성 (0) | 2022.02.03 |
eb cli 를 통해 nodejs, docker 플랫폼 배포하기 (0) | 2022.02.01 |
- Total
- Today
- Yesterday
- 앱
- 자바스크립트
- 창업
- 경진대회
- 대학생
- Apple
- 어플리케이션
- 벤처
- 네이버
- 공모전
- 트위터
- android
- JavaScript
- 모바일
- iPhone
- 앱스토어
- 웹표준
- CSS
- AWS
- 스마트폰
- 아이디어
- 애플
- 아이폰
- 게임
- 안드로이드
- 구글
- 소프트웨어
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |