EC29 [Docker] GitHub Actions CI/CD - Docker Image 자동 배포, run(CD) (2) GitHub Actions - Docker Image 자동 배포 (CD)- info이전 포스팅에서 GitHub Actions 를 사용하여 CI 파이프라인을 구축했었다.GitHub master 브랜치에 push 되었을 경우, jar빌드, docker image빌드, docker hub 푸시(퍼블리시) CI를 구축해놓았으니 CD를 구축해야한다.한마디로 docker hub에 푸시된 image를 EC2에서 새롭게 pull 받아 실행하는것이다.github master 브랜치에 push하는 순간 test 부터, EC2에 배포 및 실행까지 자동으로 이루어지는것이다.또한 이전에 포스팅 되었던 글에서 추가 된 내용이 많다. (제대로 공부하지 못하고 적용하려니, 엄청난 삽질의 연속..) * 주의할점 및 유의사항 (필독!.. 2023. 2. 19. [Docker] GitHub Actions CI/CD - 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. [Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트 Docker image 로 EC2에 MySQL 설치 및 테스트 하기 ◎ 목적 - AWS EC2 내부에 Docker Image 를 사용하여 MySQL을 손쉽게 설치하고 Test 하는것이 목적이다. 이 글에 이어서 Spring Boot 또한 Docker Image 로 Build 후에 EC2에 배포할 예정이다. - EC2에 MySQL과 같은 DB를 설치하는 경우는 별로 없다. 왜냐하면 AWS RDS라는 DB 시스템이 이미 존재하기 때문이다. EC2는 Server의 목적만을 수행하고, RDS는 DB 의 역할만 하기 때문에 Resource 사용 측면에서 좋기 때문이다. - 하지만 사이드 프로젝트, 토이 프로젝트, 연습 등등 서비스 트래픽과 리소스 사용량을 고려 하지 않는다면 RDS 를 사용하지 않고, EC2내부에.. 2023. 2. 17. [Docker] EC2 - Docker 설치 AWS - EC2, Docker 설치 - 목표 AWS EC2에 Docker 설치. apt 방식을 사용하여 Docker 설치. - 환경 AWS EC2 Ubuntu(프리티어) Mac (Local) 1. AWS EC2에 Docker 설치 1-1 Terminal을 통해 EC2에 ssh 방식으로 연결. 1-2 Docker를 설치하기 위해 apt - update - apt를 사용하여 Docker를 설치 할 예정이다. - sudo 키워드를 계속 붙여주기 싫다면, sudo su 명령어를 통해 해당 터미널에만 sudo 권한을 활성화 시켜주자. $ sudo apt update 1-2 Docker 설치에 필요한 Package 들을 설치 해줍니다. - 해당 패키지는 apt가 https 저장소를 사용 할 수 있게 해주는 Pac.. 2023. 2. 17. [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] nohup - EC2 SSH 접속종료시 서버 유지 방법 AWS (EC2) 서버 유지 방법. - EC2에 SSH 접속이 종료 되면, 프로세스가 종료되고, 서버 또한 종료 되게 된다. (터미널 종료) - 하지만 서버는 SSH 연결이 끊기더라도 켜져 있어야 한다. (SSH를 계속 연결해놓을 이유가 없다..) - 백그라운드에서 실행할 수 있게 하는 nohup 명령어를 사용하여 서버를 유지 시켜 보자. *서버 유지와 더불어 React(npm), SpringBoot(Java)를 동시에 EC2 하나에서 사용 할 수 있다.(권장하지는 않는다.) * 해당 포스트에서는 Spring Boot 기반으로 작성된다. nohup - 사용법 1. 명령어 - 기본 nohup java -jar build/libs/test-0.0.1-SNAPSHOT.jar & [옵션] - 기본 명령어는 위의.. 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) 애플리케이션 두 개의 서버가 실행 중이다. React 애플리케이션이 3000번 포트에서 동작 중이기 때문에 모든 외부 요청은 3000번 포트로 포워딩되도록 설정하였다. Spring Boot 애플리케이션은 8080번 포트에서 동작하지만, 보안을 위해 외부에.. 2023. 2. 14. 이전 1 다음