분류 전체보기 57

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

(AWS엔드포인트) EC2 Instance Connect Endpoint를 이용한 프라이빗 EC2 접속 방법

프라이빗 서브넷에 있는 EC2 인스턴스에 무료로 접속하는 방법은 AWS의 EC2 Instance Connect Endpoint를 활용하면 가능합니다. 이는 AWS PrivateLink 기반으로 작동하여 퍼블릭 IP 없이도 SSH 및 RDP 접속을 가능하게 해 줍니다. 비용을 절감하면서도 보안성을 유지할 수 있는 장점이 있습니다.EC2 Instance Connect Endpoint를 이용한 프라이빗 EC2 접속 방법■ VPC Endpoint 설정하기AWS 콘솔 접속 → VPC 서비스 이동Endpoints 메뉴에서 Create Endpoint 선택서비스 카테고리에서 "EC2 인스턴스 연결 엔트포인드"를 선택VPC 선택 (프라이빗 서브넷이 있는 VPC)서브넷 선택 (프라이빗 서브넷)보안 그룹 설정:Inboun..

(AWS 보안그룹) 왜 엔드포인트 보안 그룹과 EC2 보안 그룹이 다르게 설정되어야 할까?

EC2 인스턴스는 VPC 엔드포인트를 통해 AWS 서비스(S3, CodeDeploy, EC2 API 등)에 접근해야 함VPC 엔드포인트는 EC2의 요청을 받아서 AWS 서비스로 전달하는 역할을 함EC2 보안 그룹이 VPC 엔드포인트의 트래픽을 허용해야 하고, 반대로 엔드포인트 보안 그룹도 EC2의 요청을 허용해야 함1. 올바른 보안 그룹 설정 방법(1) VPC 엔드포인트 보안 그룹 설정대상(Destination) → EC2 보안 그룹 지정443 포트(TCP) 허용 (HTTPS 트래픽)🔹 설정 방법규칙 유형프로토콜포트 범위소스HTTPSTCP443sg-EC2-SecurityGroup-ID (EC2 보안 그룹 ID)✅ 설명:VPC 엔드포인트는 EC2 보안 그룹에서 오는 트래픽(HTTPS 443)을 허용하도록..

AWS-보안그룹 2025.03.11

(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

8.9. AWS에서 EC2 기반 애플리케이션 CI/CD 구축 방법

CI/CD 파이프라인은 개발부터 배포까지의 전체 프로세스를 자동화하여, 코드 변경 사항이 신속하고 안정적으로 운영 환경에 반영하는 것을 도와 주며, DevOps 환경을 구축할 때 가장 핵심적인 요소 입니다. Spring Boot 애플리케이션, GitHub, 그리고 AWS EC2/Auto Scaling 환경에서 가장 기본적인 CI/CD 파이프라인을 구축하는 방법에 대해 알아보겠습니다. 1. 전체 파이프라인 개요Source 단계:GitHub에 코드가 커밋/푸시될 때 자동으로 파이프라인이 시작됩니다.Build & Test 단계:AWS CodeBuild(또는 GitHub Actions)를 사용하여 애플리케이션을 컴파일하고, JUnit 테스트를 실행합니다.Maven 또는 Gradle 스크립트를 통해 jar 파일이..

카테고리 없음 2025.02.25