Infra 6

[Security] Wireguard VPN으로 내 EC2 지키기

❓VPN을 도입하는 이유현재 클라우드 아키텍처에서 주요 데이터를 처리하는 RDS와 API 서버 컨테이너가 기동 중인 EC2 인스턴스는 모두 Private Subnet에 위치해 있어, 외부로부터의 직접적인 접근이 원천 차단되어 있습니다.하지만 내부 트래픽을 외부로 라우팅하기 위해 groble-monitor-instance를 NAT 인스턴스로 사용하고 있으며, 비용 절감을 위해 해당 인스턴스가 Bastion Host의 역할까지 겸하고 있습니다.즉, 외부 개발자가 Private Subnet 내 EC2 인스턴스에 접속하기 위해서는 groble-monitor-instance의 22번 포트를 통해 SSH 접속을 해야 합니다.이러한 구조는 주요 인스턴스를 Private Subnet에 배치해 외부 공격으로부터 보호하고..

Infra 2025.11.08

[Infra] 실무에서 사용해본 유용한 Docker Swarm 기능들

Docker Swarm이란?단일 컨테이너로 시작한 애플리케이션도 비즈니스 요구사항이 증가함에 따라 점차 마이크로서비스 아키텍처(MSA)를 도입하게 되고, 이에 따라 컨테이너 수도 함께 증가하게 됩니다. 컨테이너 내부에서 실행되는 애플리케이션의 특성에 따라 각기 다른 관리 전략이 필요해지고, 이는 운영 복잡도를 높입니다. 컨테이너 오케스트레이션 도구가 등장하기 전에는 인프라 관리자가 모든 컨테이너를 직접 배포하고 모니터링하며 운영을 책임져야 했습니다. 하지만, Docker Swarm을 비롯한 다양한 오케스트레이션 도구의 등장으로 이러한 작업들이 자동화되었고, 인프라를 코드로 체계적으로 관리할 수 있는 기반이 마련되었습니다. Docker의 공식 컨테이너 오케스트레이션 도구인 Docker Swarm을 한 문장..

Infra 2025.06.26

[Infra] 고가용성 Redis HA 클러스터 구축 (Redis Sentinel)

Redis HA란?Redis HA(High Availability)란 시스템에 장애가 발생하는 상황에서도 Redis 서비스의 지속적인 가용성을 보장하는 구성입니다. Redis는 일반적인 DBMS와 다르게 디스크가 아닌 메모리에 데이터를 저장하기 때문에 조회 성능에서 매우 빠른 성능을 보이지만, 메모리에 데이터를 저장되기에 데이터가 휘발될 수 있는 단점이 있습니다. 이 단점을 보완하고자 Redis HA는 다수의 Redis 서버들을 배포하여 장애 상황을 극복합니다. 사내에서 빠른 데이터 송수신 구조와 안정성을 확보한 데이터 처리를 목표로 하는 요구 사항이 있었습니다. 빠른 데이터 송수신을 위해 Redis의 Pub/Sub 기능을 사용하고 안정성을 위해서 Redis HA를 구성했습니다. 이번 블로그에서는 Red..

Infra 2025.05.01

[CI/CD] 배포에 관한 생각

배포 방법론에 대한 생각개발자는 본인이 개발한 작업물을 불특정 다수에게 공개하기 위해 필연적으로 배포라는 과정을 거쳐야 합니다. 저 또한 처음으로 팀 프로젝트를 진행하면서 로컬에서 개발한 후, 클라우드 서비스에 배포하여 모든 팀원들이 작업물을 공유할 수 있었을 때 신기하면서도 뿌듯했던 기억이 있습니다.우연히 유튜브를 보다가 6가지 배포 전략에 대해서 소개하는 유튜브 영상을 봤습니다. (영상은 하단에 첨부했습니다) 영상에 소개된 배포 전략 중 제가 실제로 적용했던 배포 방식도 있어서 이 글에서는 제가 학부 시절 프로젝트에서 사용했던 배포 방식부터, 현재 회사에서 사용하는 배포 방식까지 소개해 보려고 합니다.배포 과정에서 자주 언급되는 개념 중 하나가 CI/CD(Continuous Integration & ..

Infra 2025.04.05

[Infra] 모니터링 서버 구축 (feat. Prometheus, Grafana)

1.  모니터링 서버 도입 목적프로젝트 진행 중에는 대규모 트래픽이 발생하지 않아 모니터링의 필요성을 크게 느끼지 못했습니다. 그러나 최근 JMeter를 활용해 가상의 트래픽을 발생시켜 성능을 측정한 결과, 특정 지점 이후 요청이 실패하는 문제가 발생했습니다. 이때 실패 원인을 정확히 파악할 수 없었고, 향후 대량 트래픽 상황에 대비하기 위해 모니터링 서버의 필요성이 대두되었습니다.기존에는 요청 실패 시 로그를 수작업으로 분석하여 문제를 확인하고 대응했지만, 이 과정은 시간이 오래 걸리고 비효율적이었습니다. 이러한 한계를 극복하고 실시간으로 시스템 상태를 파악하기 위해 모니터링 서버를 구축하고자 합니다. 이번 블로그에서는 모니터링 서버를 구축하는 과정과 이를 통해 유의미한 지표를 분석하는 방법을 소개하겠..

Infra 2024.12.21

[Infra] 데이터베이스 다중화

1. 데이터베이스 다중화의 개념데이터베이스 다중화는 여러 대의 데이터베이스 서버를 구성하여 시스템 전체의 성능 향상과 고가용성을 달성하는 기술입니다. 이는 MySQL Replication과 같은 "복제 기술"을 사용해 데이터를 여러 서버로 동기화 하는 방식으로 구현됩니다. "복제"는 한 서버의 데이터가 다른 서버로 동기화되는 것을 의미합니다. 특히, 소스 서버로부터 레플리카 서버로 데이터 복제가 이루어지는데, 소스 서버는 원본 데이터를 소유하고 있는 서버를 의미하며, 레플리카 서버는 복제된 데이터가 저장될 서버를 의미합니다. MySQL에서 데이터 복제가 일어나는 과정은 아래와 같습니다.2. 레플리케이션의 동작 원리소스 서버에서 발생하는 모든 변경사항(이벤트)은 "바이너리 로그 파일"에 순차적으로 기록됩니..

Infra 2024.12.20