[CI/CD] Github Actions를 활용한 CI/CD 파이프라인 구축 (+ Docker hub)
2023. 3. 20. 00:20
CI,CD
Github Actions를 활용한 CI/CD 파이프라인 구축 개념 EC2 Instance 생성, EC2 Instance에 Docker 설치, Docker Hub 회원가입이 되어있다고 가정 Github Repository에 프로젝트의 추가사항이나 변경사항 push 혹은 merge Github Actions에서 push 혹은 merge가 된 것을 확인 Update된 Project를 빌드함 빌드한 결과로 Doocker Image 생성 생성한 Docker Image를 Docker Hub에 업로드 EC2 Instance에 SSH로 접속 후 Docker Hub에 업로드 된 이미지로 프로그램 실행 수정사항을 Github에 올리기만 해준다면 다음 과정은 Github Actions에서 모두 처리 GitLab을 활용한 ..
[CI/CD] GitLab을 활용한 CI/CD 파이프라인 구축 (+ Linux Crontab)
2023. 3. 16. 02:21
CI,CD
GitLab, Linux Crontab을 활용한 CI/CD 파이프라인 구축 개념 GitLab에 프로젝트 업로드 (Github와 같다고 생각하면 됨) GitLab, AWS EC2, Docker을 활용해 서버 배포 GitLab에 수정사항이나 추가사항 push GitLab에서 프로젝트 빌드까지 진행 빌드가 완료되면 AWS EC2에 접속하여 기존의 서버 중지 다시 GitLab 프로젝트를 pull 받고 다시 배포 4번 과정은 세팅을 통해 GitLab에서 자동으로 진행시킴 이제 5, 6번 과정까지 자동화 한다면? 수정사항이나 추가사항을 GitLab Repository에 push만 해주면 빌드 후 재배포까지 자동으로 진행 됨 CI/CD Pipeline 구축에 성공한 것 5, 6번 자동화는 Linux Crontab 활..
[AWS] EC2 인스턴스에 Docker 설치 및 프로젝트 배포 + 배포 중지
2023. 3. 2. 16:37
CI,CD
개념 정리 Docker 란? Docker : 컨테이너 기반의 오픈소스 가상화 플랫폼 Container 란? 컨테이너는 독립된 가상 공간에서 프로세스가 동작하는 기술 하나의 서버에 여러개의 컨테이너를 띄울 수 있음 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화 할 수 있음 컨테이너마다 다른 프로그램, 다른 버전을 적용할 수 있으며 각자 독립적으로 실행할 수도, 서로 연동해서 사용할 수도 있음 VM(Virtual Machine)과 비슷한 개념이지만, VM은 각각에 OS를 올려서 사용해야 하고 자원을 할당해서 사용하는 반면, 컨테이너 기반 가상화 방식은 Host OS와 Docker 엔진 위에서 바로 동작하기 때문에 성능이 좋고 필요한 만큼의 자..
[AWS] EC2 인스턴스 생성 ( + SSH 접속, MAC )
2023. 3. 2. 12:57
CI,CD
AWS EC2 란? Elastic Compute Cloud의 줄임말로서 AWS에서 제공하는 클라우드 컴퓨팅으로, 독립된 컴퓨터를 임대해주는 서비스 EC2를 사용함으로써 서버용 컴퓨터를 따로 구비하지 않아도 되고, 초기 구입 비용이나 세팅 비용 없이 사용한 자원만큼만 비용을 지불하면 된다는 장점이 있음 EC2 instance 란? EC2 서비스를 통해 사용할 수 있는 컴퓨터 한 대 여러개의 instance를 생성하여 사용할 수 있고, 용량에 따라 비용이 다름 AWS EC2 instance 생성 방법 Ubuntu, t3.small 예시 AWS 보안 그룹 생성(default로 사용해도 됨) AWS EC2 서비스 진입 후 데이터베이스 생성 클릭 아래와 같이 옵션들을 선택했음 (나머지는 default) 이름 : ..
[AWS] RDS 생성 (+ MySQL Workbench와 연결)
2023. 2. 28. 17:46
CI,CD
AWS RDS 란? AWS 클라우드에서 관계형 DB(Relation Database)를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스 데이터 마이그레이션, 백업, 복구 및 패치와 같은 관계형 데이터베이스 관리 작업에 용이하고 스토리지 확장이 가능하다는 등의 장점이 있음 EC2에 DB를 설치해서 사용하는 방법에 비해 직접 관리할 부분이 적어서 관리하기 편하지만 비용은 더 비쌈 현재 MySQL, Aurora, MariaDB, PostgreSQL, Oracle 등을 지원하고 있음 AWS RDS 생성 방법 MySQL 8.0.28 버전 예시 (프리티어) AWS 보안 그룹 생성(default로 사용해도 됨) AWS RDS 서비스 진입 후 데이터베이스 생성 클릭 아래와 같이 옵션들을 선택했음 (나머지는 defa..
[AWS] 보안그룹 생성
2023. 2. 28. 16:38
CI,CD
AWS 보안 그룹 이란? EC2 인스턴스의 가상 방화벽 역할 인바운드 규칙과 아웃바운드 규칙을 설정하여 다양한 트래픽들을 제어할 수 있음 AWS 보안 그룹 생성 방법 AWS EC2 대쉬보드에 접속해서 네트워크 및 보안 탭에서 보안 그룹 선택 보안 그룹 생성 버튼 클릭 보안 그룹 이름, 설명 작성 인바운드 규칙은 아래와 같이 설정하였음 HTTP, HTTPS, SSH 모두 허용 Spring Boot와 MySQL의 기본 포트인 8080과 3306 포트도 허용해 줌 아웃바운드 규칙은 기본 설정(모든 트래픽 허용)으로 설정 보안그룹 생성 클릭
CI/CD 란?
2023. 2. 28. 16:04
CI,CD
CI 란? Continuous Integration (지속적인 통합) 기능 개발, 버그 수정 등으로 발생한 코드 변경사항들이 main repository에 merge 되는 것 CI에서는 코드 변경사항이 주기적으로 빈번하게 merge 되어야 함 => 충돌을 피할 수 있기 때문에 개발 생산성이 향상됨 merge된 코드들의 build, test를 자동화 하는 것이 중요 => 바로 결과를 확인할 수 있기 때문에 문제점을 빠르게 발견하고 수정할 수 있음 CD 란? Continuous Delivery (지속적인 제공), Continuous Deployment (지속적인 배포) Continuous Delivery와 Continuous Deployment는 merge된 코드를 배포하는 것 Delivery는 수동적으로 ..