CICD
-
Amazon ECS에 Spring Boot 어플리케이션 배포 한눈에 보기CICD 2025. 9. 4. 15:18
Amazon ECS란 무엇인가요?Amazon ECS는 컨테이너 관리와 오케스트레이션을 자동으로 처리해주는 AWS 서비스입니다. 도커 이미지를 쉽게 배포, 관리, 확장할 수 있어서 많은 기업들이 선택하고 있습니다.준비사항Spring Boot와 Java로 개발한 애플리케이션, Docker 파일, 그리고 AWS CLI(명령줄 도구)가 필요합니다. AWS CLI는 인증 정보를 미리 세팅해야 다양한 AWS 자원을 사용할 수 있습니다.Spring Boot 애플리케이션을 도커로 빌드하기Spring Boot 프로젝트를 아래와 같이 Docker 이미지로 패키징할 수 있습니다. 멀티 스테이지로 이미지를 최적화하는 Dockerfile 예시입니다.FROM bellsoft/liberica-runtime-container:jdk..
-
Express.js 백엔드, Docker, AWS ECS, MongoDB로 클라우드에 배포하기 (on ECS)CICD 2025. 9. 4. 15:17
필요한 준비물Express.js 백엔드를 배포하려면 Node.js와 npm이 설치돼 있어야 합니다. AWS CLI 설정과 Docker 설치도 필요하며, AWS 계정, 그리고 MongoDB Atlas 계정(혹은 직접 호스팅할 MongoDB)이 있어야 합니다.Express.js 앱 기본 구조프로젝트 폴더를 만들고 express, mongoose 패키지를 설치한 후, 아래와 같이 기본 서버 코드를 작성하면 됩니다.// index.jsconst express = require(express);const mongoose = require(mongoose);const app = express();const PORT = process.env.PORT || 3000;app.use(express.json());mongo..
-
Spring Boot 애플리케이션을 Amazon ECS에 배포하기 (on ECS)CICD 2025. 9. 4. 15:15
Amazon ECS란 무엇인가요?Amazon ECS는 컨테이너를 손쉽게 관리할 수 있는 AWS의 서비스입니다. 개발자는 서버 설정이나 오케스트레이션 복잡도를 줄이고, 애플리케이션을 자동으로 배포·확장·모니터링할 수 있습니다.준비물 체크배포를 시작하려면 다음이 필요합니다:Java & Spring Boot 프로젝트Docker(이미지 빌드용)AWS CLI(명령어 실행/이미지 푸시용)Spring Boot Docker 이미지 만들기Spring Boot 프로젝트를 준비했다면, 아래와 같이 Dockerfile을 이용해 이미지를 빌드합니다. 다중 단계(Docker multi-stage)를 활용하면 이미지가 더 작아집니다.FROM bellsoft/liberica-runtime-container:jdk-21-musl as..
-
Spring Boot 앱을 ECS에 GitHub Actions로 자동 배포하기CICD 2025. 9. 4. 15:14
AWS 리소스 준비 개요Spring Boot 앱을 ECS에 자동 배포하려면, 여러 AWS 리소스를 미리 만들어야 해요. 대표적으로 보안 그룹, 로그 그룹, IAM 역할, ECR 저장소, ECS 클러스터, 태스크 정의, 그리고 서비스가 필요합니다. 각각의 리소스가 어떻게 연결되는지 이해하면 전체 흐름이 명확해져요.보안 그룹 생성 및 포트 허용ECS 서비스가 외부에서 접속될 수 있도록 보안 그룹을 만들고, 필요한 포트를 엽니다. AWS CLI를 사용해 아래와 같이 수행합니다.aws ec2 create-security-group --group-name ecs-demo-sg ...aws ec2 authorize-security-group-ingress --group-id --protocol tcp --port..
-
Argo Workflows와 GitHub Actions 연동 가이드CICD 2025. 9. 4. 15:11
Argo Workflows 소개Argo Workflows는 쿠버네티스 환경에서 복잡한 작업의 자동화를 돕는 워크플로 엔진입니다. CI/CD 파이프라인이나 데이터 처리, 머신러닝과 같이 여러 단계가 필요한 과정을 효율적으로 관리할 수 있습니다.GitHub Actions의 역할GitHub Actions는 코드 변경 시 자동으로 테스트와 배포 과정을 실행하는 도구입니다. 개발자가 직접 GitHub 저장소에서 손쉽게 연동할 수 있어 자동화에 용이합니다.두 도구 연동의 장점Argo Workflows와 GitHub Actions을 함께 사용하면 클라우드 환경에서 작업을 크게 확장할 수 있습니다. 작업 병렬 수행(DAG 지원), 재사용 가능한 템플릿, 실시간 모니터링(UI와 CLI 제공), 비용 절감(쿠버네티스 자원..
-
멀티 리전 GitOps로 쿠버네티스 무중단 운영하기CICD 2025. 9. 4. 15:10
단일 리전의 한계와 멀티 리전 GitOps의 필요성단일 리전에서만 쿠버네티스 클러스터를 운영하면 특정 지역의 장애가 전체 서비스 중단으로 이어질 수 있습니다. 실제로 많은 기업들이 여러 리전에 걸쳐 클러스터를 동기화하는 방식으로 장애 복구와 높은 가용성을 달성하고 있습니다. 멀티 리전 GitOps는 단일 장애점(SPOF)을 제거하고, 전 세계 사용자를 위한 서비스 안정성을 크게 높여줍니다.GitOps와 멀티 리전 확장의 핵심 개념GitOps는 Git 저장소를 인프라와 서비스의 단일 소스 오브 트루스(Single Source of Truth)로 활용합니다. 멀티 리전 GitOps는 이를 확장해, 여러 클라우드(예: AWS, Azure, GCP) 클러스터에 동일한 코드와 설정을 자동으로 적용 및 동기화합니다..