이번엔 각 데브서버와 프로덕션 환경의 모니터링 세팅을 어떻게 하였는지 정리해보겠습니다.모니터링은 왜 해야할까?운영 중인 서버와 애플리케이션은 항상 다양한 위험에 노출되어 있습니다.서버 리소스(CPU, Memory, Disk 사용량)나 애플리케이션 상태를 실시간으로 관찰하지 않으면문제가 발생했을 때 즉각적으로 대응할 수 없습니다.-> 따라서 모니터링은 문제 예방과 빠른 대응을 위한 필수 요소입니다.모니터링은 뭘로 하지?제목에도 써있다싶이 Prometheus, Grafana, Loki, Promtail을 사용하여 모니터링 서버를 구축하였습니다.각각의 역할을 간단히 정의하면Prometheus - 메트릭 데이터를 수집하는 시스템Grafana - 수집된 데이터를 시각화하고 대시보드를 제공하는 시각화 도구Loki ..
이번 글에서는 백엔드 프로덕션 환경을 기록합니다.데브서버의 단순히 빠른 개발 적용 서버와 다르게 비용, 보안, 확장성까지 모두 고려해서 설계한 풀스택 인프라 구축기입니다.(ECR, EC2, RDS, ALB, ASG, CloudFront, GitHub Actions까지 다 활용했다)구성 개요핵심 컨셉프라이빗 서브넷 기반 EC2 (Auto Scaling Group)ALB로 외부 트래픽 관리RDS는 프라이빗으로 운영NAT Gateway를 통해 외부 통신 허용GitHub Actions로 CI/CD 자동화아키텍처를 이렇게 선택한 이유(초기 시도) 퍼블릭 서브넷 + 보안 그룹처음에는 비용 아끼려고 EC2와 RDS를 퍼블릭 서브넷에 넣고, 보안 그룹으로 외부 접근만 막는 전략을 썼다.나쁘진 않았는데 문제는…퍼블릭 I..
이 글에서는 백엔드 개발 환경을 위한 AWS 인프라 설정과 Blue/Green 배포 전략을 다룰 계획입니다. 이 환경은 운영 환경과 달리 단일 EC2 인스턴스에서 빠른 테스트와 배포 자동화에 중점을 두고 구성했습니다.구조 설계 개요EC2 단일 인스턴스 (t3.medium)퍼블릭 서브넷 배치Nginx 기반 리버스 프록시와 포트 스왑 방식의 Blue/Green 배포ECR 및 GitHub Actions 활용 CI/CD 구성DEV 서비는 트래픽이 적고 빠른 개발 적용과 테스트가 중요하므로 복잡한 오토스케일링 구조 없이, 효율적인 배포 자동화에 중점을 두였습니다.배포 전략: Nginx + Docker 포트 스왑Nginx의 upstream 기능과 Docker 커테이너를 이용해 8080/8081 포트를 교차 활용하는..
INTRO이 포스팅은 카카오테크 부트캠프 클라우드 네이티브 제주 2기 과정 마지막 팀 프로젝트에서 DevOps를 담당하며 진행했던 업무와 트러블슈팅을 기록한 내용입니다.저희가 개발한 Modie는"일회성 모임을 쉽고 빠르게 모집하고, 일정 조율부터 정산까지 한 번에 해결할 수 있는 서비스"입니다.Modie 서비스의 1차 출시가 완료된 후, 본격적인 2차 기능 개발에 돌입하기 전에 그동안의 과정을 블로그에 정리해보고자 합니다.서비스 링크: https://modie.site MODiE모임을 더 쉽고 편하게!modie.site 프로젝트 구조프로젝트는 React와 Spring Boot를 기반으로 개발하였고,저는 이 개발된 결과물이 안전하게 운영될 수 있도록 배포 인프라를 구축하는 역할을 맡았습니다.이전까지는EC2..
CI/CD란?CI는 Continuous Integration(지속적 통합), CD는 Continuous Delivery(지속적 전달)의 줄임말.CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정을 통상적으로 CI/CD라고 부른다.GitHub Actions개요GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼입니다. 리포지토리에 대한 모든 끌어오기 요청을 빌드 및 테스트하거나 병합된 끌어오기 요청을 프..
블루-그린 배포란 무엇인가?블루-그린 배포: 애플리케이션이나 서비스를 배포할 때 다운타임을 최소화하고, 배포 과정에서 발생할 수 있는 문제를 빠르게 복구할 수 있도록 설계된 배포 전략.기존 시스템(블루 환경)과 새로운 시스템(그린 환경)을 동시에 운영하며, 안정적이고 빠른 배포를 가능하게 한다.블루-그린 배포의 원리두 개의 환경(Blue와 Green) 운영Blue 환경: 현재 운영 중인 환경Green 환경: 새로운 버전의 애플리케이션을 배포하고 테스트하는 환경그린 환경으로 트래픽 전환새 버전이 Green 환경에 배포되면, 트래픽을 기존 Blue 환경에서 Green 환경으로 전환합니다. 이 과정은 주로 로드밸런서나 DNS 변경을 통해 수행됩니다.롤백 가능성 보장만약 Green 환경에서 문제가 발생하면, 트..