우리는 지난 포스팅에서 Github Actions를 이용해 CI 환경을 구축하는 방법을 알아보았다. 우리는 이전에 EC2 인스턴스를 생성하고 스프링 부트 프로젝트를 띄울 때 scp 명령어를 이용해 로컬의 빌드 파일을 EC2 인스턴스로 복하한 후 ssh 로 접속해서 실행시켰다. 하지만 매 수정사항마다 이렇게 배포 하면 번거롭기 때문에 이러한 작업들을 자동화해보겠다. 1. 배포방법 우리는 main 브랜치로 수정사항을 푸시하면 EC2까지 배포되는 워크플로우를 만들어볼 것이다. AWS에 배포를 하기 위해서는 소스코드를 압축하여 AWS 스토리지에 저장 후 서버에 전달하여 실행하는 방법을 사용한다. AWS에서 공식적으로 안내하는 방법은 크게 두 가지가 있다. AWS S3 빌드파일 압축해서 업로드 -> AWS EC2..
1. CI/CD 한 프로젝트를 여러명이 공유하며 발생할 수 있는 문제점은 매우 많다. 오류를 방지하기 위해 테스트코드를 작성하지만 매 PR 리뷰마다 리뷰어들이 일일히 테스트 코드를 돌려보면 생산성이 저하된다. 따라서 매 테스트의 성공을 확실히 보장 해주는 수단이 필요한데 그것이 CI/CD 라는 개념이다. CI (Continuous Integration) '지속적 통합' 이라는 의미로 애플리케이션 변경 사항 반영시 즉 PR시 자동으로 빌드 및 테스트 되어 잘못된 코드가 공유되는 것을 방지한다. CD (Continunous Deployment) '지속적 배포' 라는 의미로 변경 사항을 배포할 때 사용하는 파이프라인을 공유하여 배포 플로두을 자동화해 번거로움을 없애는 것이다. 2. Github Actions ..
지난 포스팅에서 AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄우는 작업까지 해보았다. 이번에는 DB 연동을 위해 RDS 인스턴스를 생성하고 이전에 만든 EC2와 연동하는 것까지 해보자. 1. RDS 인스턴스 생성 1.1. RDS 메뉴 이동 EC2 때와 마찬가지로 검색을 통해 RDS 메뉴로 이동 후 좌측 '데이터베이스' 카테고리를 누르면 이와 같은 화면을 볼 수 있다. 우측 상단의 '데이터베이스 생성' 버튼을 통해 새 데이터베이스를 만들어보자. 1.2. 데이터베이스 생성 1.2.1. 데이터베이스 종류 선택 먼저 원하는 데이터베이스의 종류를 선택한다. 1.2.2. 템플릿 선택 템플릿 선택이다. 프리티어를 사용하고 있기 때문에 프리티어를 선택해준다. 1.2.3. 기본 설정 데이터베이스의 기..
1. EC2 인스턴스 생성 1.1. AWS Rsgion 설정 위치를 서울로 설정한다. 위치에 따라 인스턴스 위치가 결정되기 때문에 서울이 아닌 곳으로 설정하면 속도가 낮을 수도 있다. 1.2. ec2 메뉴 진입 후 새 인스턴스 생성 검색을 통해 ec2 메뉴로 이동한다. 이동 후 좌측 인스턴스 카테고리를 선택해 우측 상단의 인스턴스 시작 버튼을 클릭해 인스턴스를 생성한다. 1.3. Amazon Machine Image(AMI) 및 인스턴스 유형 선택 이름을 입력해 주고 AMI를 선택한다. AMI는 서버의 종류를 선택하는 것이다. 본인이 원하는 걸 선택하면 된다. 인스턴스는 프리티어를 이용한다면 t2.micro 외에 다른 선택권은 없다. 1.4. 키페어 생성 키페어는 EC2 서버에 SSH 접속을 하기 위한 ..