CI\CD/CI\CD 종합(7)
-
Github Actions(CI/CD 구축) - 확장성을 고려한 컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축법(Docker+CodeDeploy)
이번에는 기존의 GitHub Actions - ECR - EC2를 사용하던 CI/CD에서 CodeDeploy와 S3를 붙여보려고 한다.이때 CodeDeploy를 쓰는 경우 EC2로 하여금 ECR에서 작업하기 위해 사용자가 작성하던 내용을 실행 하도록 지시할 수 있으며 이를 위해서는 S3에 이를 위한 스크립트 파일등을 저장해두고 EC2가 내려받아 실행하게끔 해야하기에 S3가 같이 사용되게 된다. 기존의 workflow를 보면name: Spring workflowon: push: branches: - masterjobs: Deploy: runs-on: ubuntu-latest steps: # github에서 소스를 runner로 checkout - name: C..
2025.11.05 -
Github Actions(CI/CD 구축) - 확장성을 신경 쓴 프로젝트에서 많이 쓰는 CI/CD: CodeDeploy 및 사전준비
이번에는 아래와 같은 구조의 CI/CD를 만들어보도록 할 것이다GitHub ───────────▶ GitHub Actions ├─(app.zip 업로드)──────────────▶ S3 └─(배포 트리거)───────────────▶ CodeDeploy │ └─(배포 지시)──▶ EC2(Agent)먼저 GitHub Actions로 빌드한 파일을 S3에 업로드 하고 빌드가 완료되면 CodeDeploy에게 배포하라고 지..
2025.10.23 -
Github Actions(CI/CD 구축) - 일반 프로젝트에서 많이 쓰는 CI/CD
이전에는 서버를 실행하는 EC2에서 직접 git pull을 받고 빌드과정을 진행한 후에 서버를 실행했었다.이번에는 빌드작업은 Github Actions의 runner 내부에서 진행하고 이 빌드된 파일만 서버로 전달하여 서버 내에서 실행만 진행하는 과정으로 CI/CD를 구축해보도록 하자.초기 서비스는 단순하게 시작하고 실제 사용량과 문제가 드러날 때 필요한 만큼만 확장한다. 처음부터 대규모 아키텍처를 꾸리면 개발·운영이 복잡해져 속도와 비용이 증가하므로 확장 필요성이 확인될 때 고도화하는 것이 효율적이다그렇기에 해당 방식은 초기 서비스에 적절한 방법이라고 할 수 있겠다. 1. 기존 서비스 제거먼저 EC2에 돌아가고 있는 서비스와 프로젝트는 제거해주자.lsof -i :8080 => 서비스 구동 확인만약 실행..
2025.10.15 -
Github Actions(CI/CD 구축) - .gitignore에 추가된 파일의 주입
프로젝트를 하다보면 Github에 올리지 않으면서 관리되어야 할만한 정보들이 담긴 파일들이 존재한다.그런 파일들은 .gitignore를 통해서 Github에 올라가지 않도록 설정이 가능한데 이 파일이 아예 프로그램에서 사용되지 않는게 아니기 때문에 빌드할때 사용되기 위해서 Github Actions에서 직접 주입하는 형태로 구현한다. 먼저 application.properties를 보자.위와 같이 application.properties같은 경우는 DB에 대한 정보들을 담고 있고 이걸 통해서 우리의 프로젝트의 DB에 모두 접근이 가능하다.이런 보안적인 문제들이 존재하기 때문에 이를 우리는 workflow에서 주입해서 사용하도록 할 것이다. 우선 .gitignore에 application.propertie..
2025.10.11 -
CI/CD
CI/CD란 CI/CD란 Continuous Integration/ Continuous Deployment(Continuous Delivery)로 한국어로 하자면 지속적인 통합/ 지속적인 배포로 소스의 변경을 자동으로 빌드 및 테스트(지속적인 통합)를 하고, 검증된 결과를 가지고 자동으로 배포(지속적인 배포)를 하는 프로세스 혹은 도구 및 체계이다. CI/CD가 발생한 이유CI/CD 없이 수동 빌드 및 배포를 하게 되면 그 때 마다 개발하는 PC와 운영하는 서버 사이의 환경적인 차이로 인해 혹은 사람의 실수로 인해, 테스트를 하지 않아 문제가 생기는 일들이 많고 그럴 때마다 이 소스를 롤백하는게 쉽지 않다. 이를 해결 하기 위해서 커밋 마다 자동으로 빌드 및 테스트를 하고 배포까지 자동화해서 오류를 빠..
2025.10.03 -
CI/CD - EC2에 서버 배포
Express Server EC2에 배포하기먼저 EC2 인스턴스로 접속을 하고 sudo su로 root 계정으로 변경해주자.그리고 아래 명령어를 통해서 Node.js를 설치하도록 하자$ sudo su$ apt-get update && /apt-get install -y ca-certificates curl gnupg && /mkdir -p /etc/apt/keyrings && /curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /NODE_MAJOR=20 && /echo "deb [signed-by=/etc/apt/keyring..
2025.10.03