Post

오토에버 클라우드 2기 29일차

오토에버 클라우드 2기 29일차

CQRS

CQRS는 “Command Query Responsibility Segregation”의 약자로, 우리말로 하면 “명령(Command)과 조회(Query) 책임 분리” 디자인 패턴이다

  1. Command (명령) 모델 (Write Model):
    • 역할: 시스템의 상태를 변경하는 작업(생성, 수정, 삭제)을 처리
    • 특징:
      • 데이터 일관성(consistency)과 무결성(integrity)을 보장하는 데 중점을 둔다
      • 복잡한 비즈니스 로직과 유효성 검증을 포함할 수 있다
      • 쓰기 작업에 최적화된 데이터 저장소(예: 관계형 데이터베이스)를 사용할 수 있다
      • 명령은 주로 동기적으로 처리되지만, 비동기 큐를 사용하여 처리될 수도 있다
  2. Query (조회) 모델 (Read Model):
    • 역할: 시스템의 데이터를 조회하는 작업을 처리
    • 특징:
      • 데이터 조회 성능(performance)과 확장성(scalability)에 중점
      • 읽기 작업에 최적화된 데이터 저장소(예: NoSQL 데이터베이스, 검색 엔진, 캐시 등)를 사용할 수 있다
      • 쿼리는 데이터를 변경하지 않으며, 특정 조회 요구사항에 맞춰 최적화된 형태로 데이터를 제공
      • 데이터가 비정규화(denormalized)되어 있어 복잡한 조인 없이 빠르게 데이터를 조회할 수 있다

 

작동 방식 1

 

작동 방식 2

 

왜 사이에 메세지 큐를 사용할까? 그냥 서버를 하나 더?

  • 비동기 처리: 쓰기 서버가 이벤트를 발행하고 즉시 다음 작업을 수행할 수 있도록 하여 응답성을 높인다
  • 분리(Decoupling): 쓰기 서버와 읽기 서버가 직접적으로 의존하지 않고 느슨하게 결합
  • 신뢰성: 메시지 유실 없이 안정적으로 메시지를 전달하고, 컨슈머 장애 시에도 메시지를 재처리할 수 있는 기능을 제공
  • 확장성: 대량의 이벤트를 처리하고, 여러 컨슈머가 동시에 이벤트를 처리할 수 있도록 확장성이 뛰어남
  • 이벤트 소싱과의 시너지: 이벤트 스트림을 영구적으로 저장하여 과거 상태를 재구성하거나 새로운 읽기 모델을 쉽게 구축할 수 있다

 

클라우드 보안

1. 클라우드 보안의 필요성

  • 도입 장점: 비용 절감, 민첩성, 확장성 등
  • 보안 우려: 기존 온프레미스 수준의 보안을 클라우드에서도 구현할 수 있는지에 대한 불확실성
  • 보안 사고 가능성: 클라우드 환경에서도 정보 유출 및 해킹 등의 사고 발생 가능

 

2. 클라우드 보안 위협 및 사고 사례

2-1. 보안 위협 종류

관리적, 기술적, 물리적 보안

구분설명
관리적 보안보안 정책, 점검, 교육 등
기술적 보안인프라 보호, 데이터 보호, 해킹 방어/탐지
물리적 보안시설 보안, 백업, 분산 저장 (클라우드 제공자 책임)

 

클라우드 시스템 특성에 따른 보안 위협

  • 가상화 기술 및 다중 테넌시(Multitenancy)
  • 관리 범위 확대
  • 인터넷 기반 인프라로 인한 해킹·정보 유출 위험 증가

 

2-2. 주요 보안 위협 사례 (CSA 기준)

위협 유형설명
ID·접근 관리 미흡권한 있는 계정 유출, 데이터 손상 가능성
취약한 API인증 우회, 과도한 권한, 서비스 중단 등
잘못된 설정권한 설정 오류로 인한 데이터 유출
보안 전략 부재공동 책임 모델 이해 부족, 보안 이식 실패
안전하지 않은 SW키 관리·CI/CD 미흡으로 보안 취약
제3자 리소스오픈소스·서드파티 API로 인한 공급망 리스크
시스템 취약점하이퍼바이저 취약점 등으로 기밀성·무결성 훼손
데이터 오픈설정 오류로 퍼블릭 접근 허용 및 정보 유출
서버리스·컨테이너잘못된 구성 및 보안 책임 분산 문제

 

2-3. 실제 보안 사고 사례

클라우드 제공자 측 문제

  • 2017 AWS S3 설정 실수: 애플, 에어비앤비, 핀터레스트 등 서비스 중단
  • 2011 일본 대지진: 해저 케이블 손상, AWS 서비스 불가
  • 2011 번개로 인한 정전: EC2 서비스 11시간 중단
  • 버지니아 EC2 데이터 복제 오류: 대규모 서비스 장애

사용자 측 문제

  • 2018 혼다 인도: 클라우드 스토리지 노출로 개인정보 5만 건 유출
  • 2014 CodeSpaces: 해커에게 AWS 제어권 탈취, 자원 삭제 및 파괴
  • 보안 설정 실수: 인터넷으로 DB·스토리지 노출

책임 영역 모호

  • 2019 캐피탈원 해킹: AWS 방화벽 설정 오류 악용, 1억 명 정보 유출, 1.5억 달러 손실
  • Nirvanix 클라우드 서비스 폐업: 사용자에게 2주 안에 데이터 이전 통보

 

3. 클라우드 보안 설계

3-1. 클라우드 보안 기본 개념

  • 클라우드 환경에서의 안전한 정보시스템 구축
  • 주요 보안 속성 고려 필요

 

3-2. 클라우드의 주요 보안 속성

속성설명
멀티 테넌시 (Multi-Tenancy)가상화를 통한 논리적 분리. 암호화·Key 관리 중요
접근성 (Accessability)언제 어디서나 자원 접근 가능 → 인증·인가·로깅·감사 체계 필수
탄력성 (Elasticity)자원 생성/폐기 자동화로 비용 통제 및 모니터링 필요

 

3-3. 클라우드 보안을 위한 필수 요건

요건설명
책임 추적성사용자의 모든 활동 로그 확보 및 감시
식별·인증·인가접근 주체 파악, 권한 통제
무결성데이터 변조 여부 탐지 및 예방
기밀성암호화 등으로 정보 유출 방지
가용성장애 시 서비스 연속성 확보 (백업, 이중화 등)
준법성데이터 위치, 법규 준수 (예: GDPR, ISO 27001 등)

 

4. 클라우드 보안 전략 및 권고 사항

  • 공동 책임 모델 이해: 클라우드 제공자 vs 사용자 책임 명확화
  • 보안 아키텍처 구축: CSPM, CWPP, CASB 등의 도구 활용
  • 제로 트러스트 모델 도입: 내부·외부 모든 접근 검증
  • DevSecOps: 개발 단계부터 보안 통합
  • 모니터링 및 감사 강화: ELK, Fluentd 등의 로깅 툴 활용

 

This post is licensed under CC BY 4.0 by the author.