분류 전체보기
-
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..
-
Amazon ECS의 ECScape 취약점 핵심 정리AWS/ECS 2025. 9. 4. 15:15
ECScape 취약점이란?ECScape는 Amazon ECS(Elastic Container Service)에서 발견된 새로운 보안 취약점으로, 공격자가 한 컨테이너에서 다른 컨테이너의 AWS 자격 증명(IAM)을 훔칠 수 있는 문제입니다. 특히 여러 컨테이너가 같은 EC2 인스턴스에서 함께 동작할 때 심각한 영향을 미칩니다.취약점의 작동 방식ECScape는 ECS 내부의 알려지지 않은 프로토콜을 악용해서 실행 중인 컨테이너끼리의 경계를 뚫고, 낮은 권한의 컨테이너가 높은 권한의 IAM 자격 증명을 탈취할 수 있게 만듭니다. 이를 통해 공격자는 권한을 올리거나 시스템 전체에 접근할 수 있습니다.왜 심각한 문제인지컨테이너는 기본적으로 서로 격리되는 것이 특징이지만, ECScape로 인해 이 격리 보장에 금..
-
AWS ECS와 Lambda를 결합한 하이브리드 서버리스 아키텍처AWS/ECS 2025. 9. 4. 15:14
하이브리드 구조의 기본 아이디어전통적 서버리스인 Lambda는 짧은 작업, ECS는 지속적 과업에 각각 강점이 있습니다. 이 둘을 함께 쓰면, 꾸준한 작업과 갑작스러운 트래픽에 모두 유연하게 대응할 수 있습니다.언제 쓰면 좋은가?백그라운드 작업을 컨테이너 환경에서 안정적으로 처리할 때갑작스런 트래픽이 몰릴 땐 ECS로 충분히 대응하기 어려울 때ECS를 과도하게 할당하지 않고 비용 최적화를 원할 때Lambda와 ECS에서 거의 같은 코드베이스를 활용하고 싶을 때활용 예시실시간 데이터 처리 파이프라인: ECS는 꾸준히 스트림을 처리, Lambda는 갑자기 데이터가 몰릴 때 추가로 대응PDF 즉시 생성: ECS에서 대량 작업, Lambda로 단건 작업 처리이미지/영상 처리 대기열 관리주요 구성 요소와 역할SQ..
-
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..
-
AWS Secrets Manager와 클라우드 보안 핵심 요약 (on ECS)AWS/ECS 2025. 9. 4. 15:13
AWS Secrets Manager의 역할AWS Secrets Manager는 암호, API 키 등 중요한 정보를 안전하게 저장하고 관리할 수 있는 서비스입니다. 자동으로 비밀번호를 정기적으로 변경해줄 수 있고, 다양한 AWS 서비스와 쉽게 연동됩니다.데이터베이스 암호 자동 교체Secrets Manager를 활용하면 RDS 같은 데이터베이스의 비밀번호를 Lambda 함수로 주기적으로 새로 만들고 자동으로 업데이트할 수 있습니다. 이는 보안 사고 위험을 줄이는 데 큰 도움이 됩니다.ECS 환경 변수로 안전하게 주입AWS ECS 서비스와 Secrets Manager는 완벽하게 연동됩니다. ECS 태스크를 시작할 때, 필요한 비밀번호와 같은 비밀 정보를 환경 변수로 받아와 내부 애플리케이션에서 안전하게 사용할..
-
AWS 비용 절감 실전 노하우AWS/AWS FinOps 2025. 9. 4. 15:12
EC2 비용 절감: Spot 인스턴스와 오토스케일링 활용EC2를 계속 온디맨드로만 사용하면 요금이 크게 나옵니다. Spot 인스턴스를 사용하면 최대 90%까지 절약할 수 있어요. ASG(오토스케일링 그룹)를 같이 쓰면 Spot이 회수돼도 자동으로 온디맨드로 전환해 다운타임 없이 운용할 수 있습니다.resource aws_autoscaling_group web_asg { name = web-asg launch_configuration = aws_launch_configuration.web.name max_size = 10 min_size = 2 desired_capacity = 4 mixed_instances_policy { instances_distribution { on_dem..
-
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) 클러스터에 동일한 코드와 설정을 자동으로 적용 및 동기화합니다..