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를 저장할 수 있는 화면은 한번만 볼 수 있다)
'Infra' 카테고리의 다른 글
CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(3) (0) | 2022.03.18 |
---|---|
CircleCI로 SpringBoot+Postgresql 프로젝트 빌드 배포하기(2) (0) | 2022.03.18 |
AWS EC2 Jenkins 설치 (0) | 2022.03.18 |
SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(3)❗ (1) | 2022.02.19 |
SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(2)❗ (0) | 2022.02.18 |