목록CICD (3)
개발일지
개요이전 Lightsail과 Github Actions을 사용해 CICD를 구축했을 때 node 버전 이슈로 계속 실패했던 경험이 있다. 그 외에도 하나하나 수동으로 설치해줘야하고.. 스케일링 하기도 번거롭고.. 어렵고.. 이러한 단점을 보완하기위해 “컨테이너 (Container)” 기술을 사용한다고 한다. 이번 시간에는 AWS ECS를 사용해 컨테이너 기반의 배포 환경을 구축해보고자 한다. 컨테이너 오케스트레이션 (Container Orchestration)Container Orchestration이란 다수의 컨테이너를 관리하고 배포하는 자동화된 시스템을 말한다. 이를 위한 도구로 Kubernetes, Docker Swarm, AWS ECS 등이 있으며 컨테이너의 배포, 스케일링, 로깅 등을 효율적으로..
개요이제 Github Actions를 사용해 수정된 코드가 Github에 올라올 때마다 실서버에도 자동 반영할 수 있는 파이프라인을 구축해보자. 먼저 프로젝트의 .github/workflows 경로에 yml 파일을 생성한다. 다음과 같이 CI, CD flow를 독립적으로 관리할 것이다.project└── .github └── workflows ├── ci.yml └── cd.yml Continuous Integration (CI)CI는 “지속적 통합”, 즉 개발자들이 코드 변경 사항을 주기적으로 중앙 저장소(Github)로 통합하는 프로세스를 의미한다. 자동화 된 빌드 및 테스트로 코드의 품질을 보장하고 혹시 모를 에러를 조기 발견할 수 있도록 도와준다.name: tes..
개요이전까지는 CI/CD 없이 EC2만으로 배포를 진행했습니다. 배포되기까지 다음과 같은 과정을 거칩니다.1) EC2 인스턴스에서 git clone2) 로컬에서 commit > PR > merge3) EC2에서 애플리케이션 종료 > git pull > 애플리케이션 실행 코드가 수정될 때마다 위의 과정을 거치다보니 많은 시간이 소요됐습니다. 또한 직접 작업하는 만큼 실수할 가능성이 존재했고 배포 과정에 문제가 생겼을 때 어디서 발생한 건지 알기 힘들 때도 있었습니다. 따라서 이번 프로젝트에서는 배포 과정을 자동화하여 불필요한 반복을 줄일 수 있도록 CI/CD 환경을 구축했습니다.GitHub Actions, Docker 적용Jenkins, TravisCI 등 다양한 CI/CD 툴이 존재하는데 이번 프로젝트에..