Infra

CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(1)

연_우리 2022. 3. 18. 17:43
반응형

CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(1)

빌드 배포 흐름
사전준비
AWS IAM 역할(Role) 설정
     EC2CodeDeployRole 생성
     CodeDeployRole 생성
AWS EC2 IAM 역할 수정
AWS IAM 사용자 추가

CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(2)

AWS S3 버킷 생성
AWS CodeDeploy 생성
AWS EC2 접속하여 CodeDeploy Agent 설치
AWS EC2 Postgresql 설치

CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(3)

소스코드 수정
     .circleci > config.yml파일
     프로젝트폴더 > appspec.yml
     프로젝트폴더 > scripts > deploy.sh
     프로젝트폴더 > src > main > resources > application.yml
CircleCI Context설정
     AWS 환경변수 저장
     프로젝트 환경변수 저장
깃허브 소스코드 push하여 빌드 배포 확인

 

팀플하면서 공부한 내용이다 (사실 공부도 아니고 어떻게 동작하는지만 찍어먹어본 정도..)
잘 이해하지 못한 부분도 많고 엄청 헤매었다. 일단 어떻게 동작되었는지 남겨놓는 용도로 작성하는 글이다

 

 

빌드 배포 흐름

Git -> CircleCI -> AWS S3 -> AWS CodeDeploy -> AWS EC2

CircleCI는 Git에서 가져온 코드를 바탕으로 빌드하고, 코드를 압축해서 S3에 보내준다

S3에 저장된 압축파일은 CodeDeploy를 통해 EC2에 전송된다

EC2는 받은 파일을 배포한다

 

 

사전준비

일단 SpringBoot 프로젝트로 진행했고, CircleCI 연동이 완료된 Github Repository, AWS EC2를 준비한다

 

 

 

AWS IAM 역할(Role) 설정

EC2CodeDeployRole 생성

1. 역할만들기 클릭

 

2. 

신뢰할 수 있는 엔터티 유형 : AWS 서비스 

사용사례 : EC2

 

3. AmazonEC2RoleforAWSCodeDeploy 검색하여 선택 > 다음

 

4. 역할 이름 EC2CodeDeployRoleTest, 태그 Name:EC2CodeDeployRoleTest 입력

 

CodeDeployRole 생성

1. 역할 만들기 클릭

 

 

2. 

신뢰할 수 있는 엔터티 유형 : AWS 서비스

사용사례 > 다른 AWS 서비스의 사용 사례 : CodeDeploy > CodeDeploy 선택

 

3. AWSCodeDeployRole 선택되어있는것 확인 후 다음

 

4. 역할이름 : CodeDeployRoleTest, 태그 Name:CodeDeployRoleTest 입력

 

5. 총 2개의 역할이 생성되었으면 완료

 

 

 

 

AWS EC2 IAM 역할 수정

1. EC2를 우클릭하여 보안 > IAM 역할 수정 클릭

 

2. 위에서 생성했던 EC2CodeDeployRoleTest선택 후 저장

 

3. 인스턴스 재부팅하여 역할 적용

 

 

 

 

AWS IAM 사용자 추가

1. 사용자 추가 클릭

 

2. 

사용자이름 : CodeDeployUser

자격증명유형 : 액세스키 - 프로그래밍방식 액세스

 

3. 기존 정책 직접 연결 > AmazonS3FullAccess, AWSCodeDeployFullAccess 선택 후 다음

 

 

4. Name : CodeDeployUser 입력

 

 

5. 내용 확인 후 사용자 만들기 클릭

 

 

 

6. 사용자 액세스키와 시크릿키 다운

아래 화면은 한번만 볼 수 있다!! 만약 csv를 저장하지 않았다면 새로 발급받으면된다 (6-1번 참고)

 

6-1. csv를 저장하지 않은 경우 보안자격증명에 들어가 액세스키 만들기하여 csv를 저장하면된다 (마찬가지로 csv를 저장할 수 있는 화면은 한번만 볼 수 있다)

 

 

반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기