DevOps

DevOps

[DevOps] 모니터링 환경 구축 Prometeus, Grafana, Loki, Promtail - Modie

이번엔 각 데브서버와 프로덕션 환경의 모니터링 세팅을 어떻게 하였는지 정리해보겠습니다.모니터링은 왜 해야할까?운영 중인 서버와 애플리케이션은 항상 다양한 위험에 노출되어 있습니다.서버 리소스(CPU, Memory, Disk 사용량)나 애플리케이션 상태를 실시간으로 관찰하지 않으면문제가 발생했을 때 즉각적으로 대응할 수 없습니다.-> 따라서 모니터링은 문제 예방과 빠른 대응을 위한 필수 요소입니다.모니터링은 뭘로 하지?제목에도 써있다싶이 Prometheus, Grafana, Loki, Promtail을 사용하여 모니터링 서버를 구축하였습니다.각각의 역할을 간단히 정의하면Prometheus - 메트릭 데이터를 수집하는 시스템Grafana - 수집된 데이터를 시각화하고 대시보드를 제공하는 시각화 도구Loki ..

DevOps

[DevOps] 백엔드 Prod 서버 ASG 기반 롤링 배포 자동화 - Modie

이번 글에서는 백엔드 프로덕션 환경을 기록합니다.데브서버의 단순히 빠른 개발 적용 서버와 다르게 비용, 보안, 확장성까지 모두 고려해서 설계한 풀스택 인프라 구축기입니다.(ECR, EC2, RDS, ALB, ASG, CloudFront, GitHub Actions까지 다 활용했다)구성 개요핵심 컨셉프라이빗 서브넷 기반 EC2 (Auto Scaling Group)ALB로 외부 트래픽 관리RDS는 프라이빗으로 운영NAT Gateway를 통해 외부 통신 허용GitHub Actions로 CI/CD 자동화아키텍처를 이렇게 선택한 이유(초기 시도) 퍼블릭 서브넷 + 보안 그룹처음에는 비용 아끼려고 EC2와 RDS를 퍼블릭 서브넷에 넣고, 보안 그룹으로 외부 접근만 막는 전략을 썼다.나쁘진 않았는데 문제는…퍼블릭 I..

DevOps

[DevOps] 백엔드 DEV서버 단일 EC2 기반 Blue/Green 배포 자동화 - Modie

이 글에서는 백엔드 개발 환경을 위한 AWS 인프라 설정과 Blue/Green 배포 전략을 다룰 계획입니다. 이 환경은 운영 환경과 달리 단일 EC2 인스턴스에서 빠른 테스트와 배포 자동화에 중점을 두고 구성했습니다.구조 설계 개요EC2 단일 인스턴스 (t3.medium)퍼블릭 서브넷 배치Nginx 기반 리버스 프록시와 포트 스왑 방식의 Blue/Green 배포ECR 및 GitHub Actions 활용 CI/CD 구성DEV 서비는 트래픽이 적고 빠른 개발 적용과 테스트가 중요하므로 복잡한 오토스케일링 구조 없이, 효율적인 배포 자동화에 중점을 두였습니다.배포 전략: Nginx + Docker 포트 스왑Nginx의 upstream 기능과 Docker 커테이너를 이용해 8080/8081 포트를 교차 활용하는..

DevOps

[DevOps] 프로젝트 Dev/Prod 서버 아키텍처 설계 경험 정리

INTRO이 포스팅은 카카오테크 부트캠프 클라우드 네이티브 제주 2기 과정 마지막 팀 프로젝트에서 DevOps를 담당하며 진행했던 업무와 트러블슈팅을 기록한 내용입니다.저희가 개발한 Modie는"일회성 모임을 쉽고 빠르게 모집하고, 일정 조율부터 정산까지 한 번에 해결할 수 있는 서비스"입니다.Modie 서비스의 1차 출시가 완료된 후, 본격적인 2차 기능 개발에 돌입하기 전에 그동안의 과정을 블로그에 정리해보고자 합니다.서비스 링크: https://modie.site MODiE모임을 더 쉽고 편하게!modie.site 프로젝트 구조프로젝트는 React와 Spring Boot를 기반으로 개발하였고,저는 이 개발된 결과물이 안전하게 운영될 수 있도록 배포 인프라를 구축하는 역할을 맡았습니다.이전까지는EC2..

DevOps

GitHub Actions 머리 박치기

CI/CD란?CI는 Continuous Integration(지속적 통합), CD는 Continuous Delivery(지속적 전달)의 줄임말.CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정을 통상적으로 CI/CD라고 부른다.GitHub Actions개요GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼입니다. 리포지토리에 대한 모든 끌어오기 요청을 빌드 및 테스트하거나 병합된 끌어오기 요청을 프..

DevOps

블루-그린(Blue/Green) 배포 머리 박치기

블루-그린 배포란 무엇인가?블루-그린 배포: 애플리케이션이나 서비스를 배포할 때 다운타임을 최소화하고, 배포 과정에서 발생할 수 있는 문제를 빠르게 복구할 수 있도록 설계된 배포 전략.기존 시스템(블루 환경)과 새로운 시스템(그린 환경)을 동시에 운영하며, 안정적이고 빠른 배포를 가능하게 한다.블루-그린 배포의 원리두 개의 환경(Blue와 Green) 운영Blue 환경: 현재 운영 중인 환경Green 환경: 새로운 버전의 애플리케이션을 배포하고 테스트하는 환경그린 환경으로 트래픽 전환새 버전이 Green 환경에 배포되면, 트래픽을 기존 Blue 환경에서 Green 환경으로 전환합니다. 이 과정은 주로 로드밸런서나 DNS 변경을 통해 수행됩니다.롤백 가능성 보장만약 Green 환경에서 문제가 발생하면, 트..