본문 바로가기

배포6

[Docker] GitHub Actions - Docker Image 자동 빌드, push(CI) (1) GitHub Actions 를 사용한 Docker Image 자동 빌드, push - Info Docker를 사용하여 EC2에 Spring Boot를 배포하는 방법들을 포스팅해왔다, 실제로 해봤다면 알겠지만 해당 작업은 상당히 복잡한 프로세스를 갖고있고, 자동화 또한 되어있지 않다. 중간에 실수가 있거나, 순서중 하나만 헷갈리더라도 굉장한 장애를 발생시킬 수 있다. 이러한 배포 자동화를 CI/CD(Continuous Integration, Continuous Deployment) 라고 한다. CI (Continuous Integration) 지속적 통합 : 여러 개발자들이 협업을 하고 있는 경우 발생하는 '불일치'를 최소화 해주는 개념. 예를들어 master 브랜치에 PR 요청이 왔을때, 빌드, 테스트를.. 2023. 2. 18.
[Docker] Docker - Spring Boot로 EC2 배포하기 Docker - Spring Boot로 EC2 배포하기 ○ 목표 - Spring Boot (server) Docker Image로 Build - Docker Hub에 Docker Image 공유(push) - EC2 Docker Image pull 및 설치 -> 한마디로 Spring Boot를 Docker를 이용하여 EC2에 간편하게 배포하는것이 목적이다. * 추가 : EC2 내부의 MySQL Container 와의 연동, 아래글에서 MySQL 컨테이너 생성법 참고! https://lucas-owner.tistory.com/47 [Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트 Docker image 로 EC2에 MySQL 설치 및 테스트 하기 ◎ 목적 - AWS EC2 내부에 .. 2023. 2. 18.
[AWS] RDS 생성 - (EC2 연결, SpringBoot 배포)(2) 목표 - 지난번에 배포했던 AWS EC2와 RDS 생성/연결 하는것을 진행 해보자. DB는 MySQL 5.7.34 버전을 사용할 예정이다. 마찬가지로 프리티어(무료)를 사용할 예정이고, EC2 연결 및 Local 에서 연결 Test 까지 진행 할 예정이다. ◎ 과금 RDS 과금은 db.t2.micro 기준. 750시간 까지 무료. 초과시 시간당 0.026$ 부과. 한달 3천원 ~ 이상 부과. 사용용량 초과, 스냅숏(백업) 같은 기능으로 인해 추가 요금 발생 가능. 목차 RDS 인스턴스 생성 보안 그룹 생성 Local 접속 테스트 파라미터 그룹 설정(DB 설정) EC2 연결 1. RDS 인스턴스 생성 - AWS Console에서 RDS 메뉴로 이동. - 데이터 베이스 생성 버튼을 클릭! 1-1 DB 선택 .. 2023. 2. 16.
[AWS] EC2 생성 - Spring Boot 배포(1) 목표 AWS EC2 인스턴스 생성 후 EC2 내부에서 Spring Boot 서버를 실행 하는것이 최종 목표입니다. CI/CD 인프라 시스템을 구축하는것이 아닙니다. (단순 EC2 단일 배포) - 배포시 유의할 부분 고정 IP 주소를 사용합니다. (탄력적 IP : 이부분 설정을 넘기셔도 됩니다.) 터미널에서 SSH 클라이언트를 통해 EC2에 접속합니다. Git 방식이 아닌, FileZila 를 통해 프로젝트를 이동합니다. 프리티어(무료)를 이용합니다. - 사전 필요 작업 AWS 계정 생성. pem 키 발급. FileZila(for Mac) 프로그램 설치. (파일전송) jar 파일 build AWS Region 설정 (Asia/Seoul) AWS Console 우측 상단에서 설정 가능! 목차 보안그룹 설정 .. 2023. 2. 15.
[AWS] EC2 포트 포워딩 (Port forwarding) - 포트연결 AWS EC2 포트 포워딩 - 포트 포워딩(port forwarding)이란? 외부에서 접속한 (IP주소 : 포트)를 내부의 port로 연결(매핑)하는것을 의미한다. 즉 기본포트인 80으로 접속하게 된다면, 내가 설정한 port로 요청되는것을 말한다. 예) Client 접속 (IP주소:8080) -> 내부적으로 매핑 -> port: 3000번으로 Redirect ○ 사용상황 필자의 경우 EC2 인스턴스 1개에 Spring-boot, React(Front) 2개의 서버가 구동 되고, 무엇을 호출하던간에 3000(React)포트로 포워딩을 해야 했다. (8080(SpringBoot)포트는 외부에서는 접근이 안되는 port로 지정해주었다.) 포트 포워딩 설정 ○ 명령어 sudo iptables -t nat -.. 2023. 2. 14.
[SpringBoot] Gradle Jar 빌드 & 실행 (IntelliJ, Terminal) Spring-Boot + Gradle 사용하여 Jar 파일 빌드 & 실행 방법 웹개발을 진행하다보면 만들어놓은 코드들을 빌드하여 배포까지 진행을 한다. 이때 사용하는 방법중 하나인 Jar 파일 빌드 후 실행 까지 테스트 하는 것을 알아보도록 하자! 필자는 Mac OS를 사용하며, IntelliJ Ultimate 버전 사용중이다. - Jar 파일을 빌드하는 방법은 IDE를 이용하는 방법 + 터미널을 사용하는 방법이 존재한다. * Jar 파일을 빌드하고 배포하는 이유? - 빌드 파일은 Jar/War 2가지가 존재하며 각각의 방식은 코드(애플리케이션)를 패키징 하는 방식의 차이이다! 각 프로젝트에 맞게 선택 하여 빌드를 진행 하면 된다! 해당 내용은 본문에서는 깊게 다루지 않겠다. 필자가 생각하는 차이는 아래.. 2022. 12. 31.