AWS-CICD 7

AWS Auto Scaling 환경에서 CodeDeploy + Lambda로 Rolling Update 배포 자동화하기

✨ 개요Auto Scaling Group(ASG)은 EC2 인스턴스를 자동으로 확장/축소하고, 장애 복구를 수행할 수 있는 강력한 서비스입니다. 그러나 배포 전략이 명확하지 않으면 새로 생성되는 인스턴스가 구버전 애플리케이션을 포함한 AMI로 생성되는 문제가 발생할 수 있습니다.이 글에서는 CodeDeploy로 EC2 인스턴스에 애플리케이션을 배포하고, 그 인스턴스를 기반으로 새로운 AMI를 자동 생성, 이를 Launch Template에 반영한 후 Rolling Update로 전체 인스턴스를 교체하는 방식을 실습 가능한 코드와 함께 소개합니다.🧠 Auto Scaling 환경에서 배포 전략이 중요한 이유1️⃣ 일반적인 배포 시나리오[1] EC2 인스턴스에 CodeDeploy로 애플리케이션 배포[2] 배..

AWS-CICD 2025.04.18

[Troubleshooting ] EventBridge 규칙을 통해 Lambda 함수 호출, 함수 실행 권한 및 환경 설정 문제 해결하기

♨ EventBridge 규칙에서 Lambda함수 호출에 실패할때 조치 방법EventBridge 규칙(Rule) 설정 확인:이벤트 패턴(Event Pattern): CodeDeploy 배포 성공 이벤트(CodeDeploy Deployment State Change, detail.state가 SUCCESS인 경우)를 정확히 필터링하도록 이벤트 패턴이 올바르게 정의되었는지 확인합니다. 실제 CodeDeploy 성공 시 발생하는 이벤트 구조와 비교해보세요. AWS 콘솔의 CloudWatch Logs Insights나 EventBridge의 이벤트 버스 모니터링 기능을 통해 실제 전달된 이벤트 내용을 확인하면 패턴 작성에 도움이 됩니다.대상(Target) 설정: 규칙의 대상으로 설정된 Lambda 함수가 올바른..

AWS-CICD 2025.04.16

CodeDeploy 성공 시 Lambda로 AMI 생성 및 ASG 롤링 업데이트 자동화 – 조건부 트리거 설정까지!

배포가 끝이 아니라 시작입니다. 운영 환경까지 자동으로 정비되는 DevOps 파이프라인을 구축해보세요.🧩 시나리오CI/CD 환경에서 CodeDeploy를 통해 EC2 인스턴스에 애플리케이션을 성공적으로 배포한 후, 다음을 자동으로 처리하고 싶습니다.배포된 인스턴스를 기준으로 최신 AMI 생성Launch Template의 새로운 버전 생성 및 적용ASG에서 새 AMI를 기반으로 인스턴스 순차 교체(Rolling Update)하지만 조건이 있습니다.여러 CodeDeploy 프로젝트 중에서도 특정 애플리케이션과 배포 그룹에서만 이 Lambda가 실행되길 원합니다.✅ 전체 아키텍처[CodeDeploy] │ ▼ (성공 시 이벤트)[EventBridge (조건 필터링)] │ ▼[Lambda]..

AWS-CICD 2025.03.27

(AWS CodeDeploy) NAT를 사용하여 퍼블릭 IP 없는 프라이빗 서브넷의 EC2 인스턴스에서 CodeDeploy 환경 구성하기

AWS 환경에서 보안 강화를 위해 EC2 인스턴스를 프라이빗 서브넷에 배치하는 경우가 많습니다. 하지만 이 경우, 해당 인스턴스는 인터넷과 직접 통신할 수 없으므로 CodeDeploy와 같은 AWS 서비스와 연동하려면 별도의 설정이 필요합니다. 본 블로그에서는 NAT 게이트웨이를 사용하여 퍼블릭 IP 없는 프라이빗 서브넷의 EC2 인스턴스에서 AWS CodeDeploy 환경을 구성하는 방법을 단계별로 설명합니다.1. 아키텍처 개요본 가이드에서는 다음과 같은 구성으로 환경을 설정합니다:퍼블릭 서브넷: 인터넷 게이트웨이(IGW)와 연결된 NAT 게이트웨이가 위치함.프라이빗 서브넷: 퍼블릭 IP 없이 배포된 EC2 인스턴스가 위치함.NAT 게이트웨이: 프라이빗 서브넷의 EC2가 인터넷과 통신할 수 있도록 지원..

AWS-CICD 2025.03.17

(VPC Endpoints)NAT를 사용하지 않고 프라이빗 서브넷의 EC2 인스턴스에 CodeDeploy 배포 하기

프라이빗 서브넷의 EC2 인스턴스에 CodeDeploy를 통한 Application 배포 환경을 만들려면 어떻게하면 되는지 알아 보겠습니다.퍼블릭 IP를 사용하는 EC2 인스턴스에서는 필요 없는 과정이나, 프라이빗 서브넷의 EC2의  보안이나 비용적인 측면 장점을 활용하고 싶다면 꼭 알고 있어야 하는 방법 입니다.CodeDeploy 배포를 위해서는 EC2 인스턴스가 VPC 엔드포인드를 통해 AWS CodeDeploy, S3, EC2 서비스에 접근할 수 있도록 환경을 구성해야 합니다. 이때 보안 그룹(Security Group) 및 엔드포인트 정책을 이해하고 바르게 설정할 줄 알아야 합니다.  1. 보안 그룹(Security Group) 설정(1) VPC 엔드포인트를 위한 보안 그룹 생성/설정AWS 콘솔에..

AWS-CICD 2025.03.11

8.9.나. AWS 배포 그룹 생성시 In-place 배포와 Blue/Green 배포의 차이점

AWS CodeDeploy에서 EC2 인스턴스 (또는 Auto Scaling Group) 에 애플리케이션을 배포할 때, 대표적으로 In-place 배포와 Blue/Green 배포 두 가지 방식이 있어. 각 방식의 차이를 비교해보겠습니다.1️⃣ In-place 배포 (Rolling 배포)📌 개념기존 EC2 인스턴스에서 실행 중인 애플리케이션을 중단하고 업데이트하는 방식이야.CodeDeploy가 하나씩 인스턴스를 업데이트하며 애플리케이션을 배포해.기존 인스턴스를 그대로 유지하면서 업데이트하기 때문에 새로운 인프라를 만들지 않아 비용이 절감됨.🛠 배포 과정Auto Scaling Group 내의 기존 EC2 인스턴스에서 애플리케이션을 중지.새로운 애플리케이션 버전 배포.배포 완료 후 서비스 재시작.모든 인스..

AWS-CICD 2025.03.02

8.9.가. AWS CodeDeploy를 이용한 EC2 인스턴스 배포 구성 및 실행 방법

1. 개요AWS CodeDeploy는 EC2 인스턴스, 온프레미스 서버, Lambda 및 ECS 등의 환경에서 애플리케이션을 자동으로 배포할 수 있는 서비스입니다. 이 글에서는 CodeDeploy를 활용하여 EC2 인스턴스에 애플리케이션을 배포하는 방법을 단계별로 설명합니다.2. 환경 설정1) AWS 서비스 준비배포를 실행하기 위해 다음과 같은 AWS 서비스를 사용합니다.Amazon EC2: 애플리케이션을 배포할 대상 서버Amazon S3: 배포 패키지를 저장할 저장소AWS CodeDeploy: 배포 자동화 서비스IAM 역할 및 정책: CodeDeploy 및 EC2가 상호 작용할 수 있도록 설정2) IAM 역할 생성(1) EC2용 IAM 역할 설정AWS 콘솔 → IAM → 역할(Role) 생성EC2를 선..

AWS-CICD 2025.03.02