개발이 좋아서/CI/CD가 좋아서

    컨테이너 기반 + 확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Docker, CodeDeploy)

    컨테이너 기반 + 확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Docker, CodeDeploy)

    - 전체적인 흐름- 장점컨테이너 기반의 서버가 여러 대이더라도 쉽게 자동 배포를 구축할 수 있다.쉽게 무중단 배포를 적용시킬 수 있다.- 단점CodeDeploy를 사용함으로써 인프라 구조가 복잡해졌다. 구조가 복잡해짐에 따라 관리 비용, 유지보수 비용, 난이도, 트러블 슈팅 어려움, 복잡도가 증가했다.- 주로 쓰이는 곳컨테이너 기반의 서버를 여러 대 이상 구동해야 하거나 무중단 배포가 중요한 서비스일 때 주로 활용한다.- 구축 방법 (이전 프로젝트 이어서)1. Github Actions 코드 수정하기- .github/workflows/deploy.ymlname: Deploy To EC2on: push: branches: - mainjobs: deploy: runs-on: ubunt..

    컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Docker)

    컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Docker)

    - 전체적인 흐름- 장점Docker 기반으로 서비스를 운영할 때, 가장 간단하게 구성할 수 있는 인프라 구조이다.- 단점무중단 배포를 구현하거나 여러 EC2 인스턴스에 배포를 해야 하는 상황이라면, 직접 Github Actions에 스크립트를 작성해서 구현해야 한다. 직접 구현을 해보면 알겠지만 생각보다 복잡하다.- 주로 쓰이는 곳컨테이너 기반으로 인프라를 구성했을 때 이 방법을 많이 활용한다.서버를 여러 대 운영하고 있지 않을 정도의 소규모 프로젝트일 때 주로 활용한다.- EC2에 Docker 설치, ECR 세팅1. Ubuntu에서 Docker, Docker Compose 설치하기$ sudo apt-get update && \ sudo apt-get install -y apt-transport-http..

    확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Code Deploy)

    확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, Code Deploy)

    - 전체적인 흐름- Code Deploy를 사용하는 이유CodeDeploy는 수많은 AWS EC2에 배포를 쉽게 할 수 있도록 도와준다.CodeDeploy에 무중단 배포 기능이 내재되어 있어 손쉽게 무중단 배포를 진행할 수 있다.- 장점서버가 여러 대이더라도 쉽게 자동 배포를 구축할 수 있다.쉽게 무중단 배포를 적용시킬 수 있다.- 단점CodeDeploy를 사용함으로써 인프라 구조가 복잡해졌다. 구조가 복잡해짐에 따라 관리 비용, 유지보수 비용, 난이도, 트러블 슈팅 어려움, 복잡도가 증가했다.- 주로 쓰이는 곳서버를 여러 대 이상 구동해야 하거나 무중단 배포가 중요한 서비스일 때 주로 활용한다.- CodeDeploy 세팅 / IAM 설정1. CodeDeploy 역할(Role) 생성하기 2. CodeDe..

    일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, SCP)

    일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions, SCP)

    - 전체적인 흐름 - 장점빌드 작업을 Github Actions에서 하기 때문에 운영하고 있는 서버의 성능에 영향을 거의 주지 않는다.CI/CD 툴로 Github Actions만 사용하기 때문에 인프라 구조가 복잡하지 않고 간단하다.- 단점무중단 배포를 구현하거나 여러 EC2 인스턴스에 배포를 해야하는 상황이라면, 직접 Github Actions에 스크립트를 작성해서 구현해야 한다. 직접 구현을 해보면 알겠지만 생각보다 꽤 복잡하다.- 주로 쓰이는 곳실무에서 초기 서비스를 구축할 때 이 방법을 많이 활용한다.인프라 구조를 변경할 때 시간이 많이 들어감에러가 발생했을 때 트러블 슈팅의 어려움팀원이 인프라 구조를 이해하기 어려워 함기능을 추가하거나 수정할 때 더 많은 시간이 들어감금전적인 비용이 더 많이 발..

    개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions)

    개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법(Github Actions)

    - 전체적인 흐름- 장점git pull을 활용해서 변경된 부분의 프로젝트 코드에 대해서만 업데이트하기 때문에 CI/CD 속도가 빠르다.대부분의 CI/CD 방식들은 전체 프로젝트를 통째로 갈아끼우는 방식을 사용한다.CI/CD 툴로 Github Actions만 사용하기 때문에 인프라 구조가 복잡하지 않고 간단하다.- 단점빌드 작업을 EC2에서 직접 진행하기 때문에 운영하고 있는 서버의 성능에 영향을 미칠 수 있다.Github 계정 정보가 해당 EC2에 저장되기 때문에 개인 프로젝트 또는 믿을만한 사람들과 같이 진행하는 토이 프로젝트에서만 사용해야 한다.- 주로 쓰이는 곳주로 개인 프로젝트에서 CI/CD를 심플하고 빠르게 적용시키고 싶을 때 적용한다.- 구축 방법1. Spring Boot 프로젝트 생성2. G..

    Github Actions - 기본 개념

    Github Actions - 기본 개념

    CI/CD(Continuous Integration, Continuous Deployment) - 테스트(Test), 통합(Merge), 배포(Deploy)의 과정을 자동화하는 것을 의미한다. Github Actions의 CI/CD 전체 흐름 코드 작성 후 CommitGithub에 PushPush를 감지해서 Github Actions에 작성한 로직이 실행서버에서 배포된 최신 코드로 서버를 재실행Github Actions의 기본 문법 정리- 프로젝트 최상단에 .github/workflows/xxx.yml 만든다.( .github/workflows 은 이름을 꼭 지켜주어야 한다.)# Workflow의 이름# Workflow : 하나의 yml 파일을 하나의 Workflow라고 부른다. name: Github ..