
🧩 CI/CD
CI/CD란?
- CI (Continuous Integration)
- 개발자가 변경한 코드를 자주 통합하고, 이 코드가 전체 시스템과 잘 어우러지는지 자동으로 테스트하는 프로세스
- 코드 변경이 발생할 때마다 빌드 및 테스트를 수행하여 코드 품질을 유지하고 문제를 조기에 발견할 수 있음
- CD (Continuous Delivery)
- CI의 결과물을 사용자에게 자동으로 배포하는 프로세스
- 코드 변경이 통합되고 테스트를 통과하면 이를 자동으로 스테이징 환경 또는 프로덕션 환경에 배포함
- 지속적인 배포(Continuous Deployment): 승인 절차 없이 자동으로 프로덕션 환경에 배포하는 것을 의미함 (CI/CD의 확장 개념)
CI/CD의 장점
- 빠른 피드백
- 자동화된 프로세스: Human Error를 방지할 수 있음
- 일관된 배포
- 높은 품질 유지
- 개발 속도 향상
CI/CD 도구
- GitHub Actions: GitHub 저장소에 직접 통합되어 있는 CI/CD 도구. YAML 파일을 사용하여 워크플로우를 정의 가능함
- Jenkins: 오픈 소스 CI/CD 도구. 플러그인을 통해 다양한 기능을 확장 가능함
- GitLab CI: GitLab과 통합된 CI/CD 도구. GitLab 저장소를 기반으로 CI/CD 파이프라인을 설정 가능함
🧩 Amazon ECS
Amazon ECS란?
- AWS Elastic Container Service: docker 애플리케이션을 쉽게 배포하고 운영할 수 있도록 지원하는 완전관리형 Container Orchestration 서비스
- Kubernetes와 같은 container Orchestration 서비스지만, Kubernetes 보다 사용하기 쉽고 비용적으로도 저렴하기 때문에 소/중 규모의 프로젝트에 널리 사용됨
- Serverless로 구성하면 인스턴스를 구성하고 관리할 필요도 없음
ECS의 구조
- ECR: Docker image 저장소
- ECS Cluster: 컨테이너를 실행하기 위한 여러 인스턴스로 이루어진 클러스터 (Serverless로 한 경우 인스턴스도 필요 없음)
- ECS Server: Docker 애플리케이션의 실행 그룹
- ECS Task: ECS Server에 실제로 실행되는 docker container
- 로드밸런서와, 모니터링, Auto Scaling 등도 자동으로 관리 가능
- Task definition: 어느 포트에서 몇개의 도커 컨테이너를 어떤 이미지로 실행할지 애플리케이션 실행 정보를 저장하는 것
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] Redis (1) | 2026.05.07 |
|---|---|
| [내일배움캠프] Github Actions와 CI/CD (0) | 2026.05.06 |
| [내일배움캠프] Docker와 Docker Compose (0) | 2026.05.04 |
| [내일배움캠프] Controller와 Service를 분리해야 하는 이유 (0) | 2026.04.20 |
| [내일배움캠프] Spring MVC 기초 정리 (0) | 2026.04.17 |