클라우드 아키텍처 - 통합구성도

이관호·2025년 6월 9일
0

1️⃣ 컴퓨팅 리소스 구성 개요

✅ 클라우드 설계 패턴: 3-Tier 구조

3-Tier Web Architecture

Tier설명위치예시 기술
Presentation Tier사용자 인터페이스 계층Public SubnetReact, HTML, JS
Application Tier비즈니스 로직 처리 계층Private SubnetSpring, Node.js
Data Tier데이터 저장 계층Private SubnetRDS, MySQL, PostgreSQL

🔹 Presentation Tier(웹 프론트엔드):
사용자 인터페이스 제공
웹 브라우저 또는 모바일 앱에서 접근

🔹 Application Tier(비즈니스 로직):
사용자 요청 처리, 데이터 가공, 인증 등 실행
웹 서버와 DB 사이의 중간 계층 역할

🔹 Data Tier(데이터베이스 계층):
사용자 정보, 주문 내역, 종목 정보 등 저장

✅ Serverless 구조(Lambda + API GW)

  • 서버 인프라를 직접 운영하지 않고, 이벤트 기반 함수 실행으로 서비스 구성
  • 필요한 순간에만 코드 실행, 비용 효율적이며 확장성 우수
  • 주요 구성 요소
    • API Gateway:
      외부 HTTP 요청을 받아 적절한 Lambda 함수로 전달
      엔드포인트별 경로 기반 라우팅
    • Lambda(서버리스 함수):
      특정 API 요청 또는 이벤트 발생 시 실행되는 코드 단위
      예: 사용자 로그인 처리, 종목 조회, 주문 요청 등
    • 백엔드 리소스:
      Lambda가 접근하는 데이터 저장소 또는 외부 서비스
      RDS, DynamoDB, S3, 외부 API 등

✅ 고가용성 + DR(재해복구) 구성 예시

🔹 고가용성: 장애 발생시에도 지속적으로 운영될 수 있도록 보장하는 설계 방식

  • 멀티 AZ 구성
  • 로드밸런서(ALB): 트래픽 분산
  • Auto Scaling Group: 사용량에 따라 인스턴스 자동 증설/감축

🔹 재해복구: 전체 장애 또는 리전 단위 문제 발생 시, 빠르게 복구 가능한 환경 구성

  • 멀티 리전 구성: Primary Region, Backup Region
  • RDS 또는 S3 복제 구성: 비동기 또는 실시간으로 백업 리전에 데이터 복제
  • Route 53 Failover: DNS 기반 헬스체크 실패 시 DR 리전으로 자동 전환

✅ 설계 시 고려할 보안 요소

  • 퍼블릭, 프라이빗 Subnet 구분:
    퍼블릭: 보안 그룹을 통해 포트 제한, 외부 요청을 받아야 하는 리소스 배치(웹 서버, 로드밸런서 등)
    프라이빗: NAT Gateway 통해 Outbound 만 하용, 내부 시스템 전용 리소스 배치(DB,앱서버 등)
  • 보안 그룹(SG), 네트워크 ACL(NACL) 등 방화벽 규칙 구성
  • IAM Role 활용한 권한 분리 및 최소 권한 원칙 적용
  • 암호화: 저장 시(At Rest), 전송 시(In Transit) 암호화 필수

✅ 설계 시 고려할 성능 요소

  • Auto Scaling: 요청 증가 시 서버 자동 증가
  • 데이터베이스 Read Replica: 읽기 부하 분산
  • 캐싱 계층 구성: Redis, CloudFront 등으로 DB 부하 감소
  • 병목 구간 분산 처리:
    비동기 처리 구조 활용(SQS, Fafka 등)
    로드 밸런서(ALB, NLB): 다수 서버에 요청 분산

✅ 설계 시 고려할 비용 요소

  • 서버 사양 과다 책정 피하기
  • 서버 시간대별 on/off (스케줄링)
  • 서버리스(Lambda 등)로 과금 최적화
  • Spot Instance 활용 (비용 70% 절감 가능)

2️⃣ 클라우드 통합 구성도 설계

✅ 통합 구성도의 정의

  • 클라우드 기반 시스템에서 HW 인프라 + SW 서비스 + 데이터 흐름을 한 장의 도식으로 표현한 설계도
  • 목적:
    전체 시스템 구조의 명확한 이해
    설계 원칙 및 보안 고려 사항 반영
    운영, 유지보수, 장애 대응을 위한 시각화 도구

서비스 구성도 vs 통합 구성도

구분서비스 구성도통합 구성도
목적특정 서비스의 처리 흐름 표현전체 인프라 및 SW 구조 통합
관점논리적(비즈니스 중심)물리적 + 논리적(인프라 중심)
표현 범위UI, API 흐름 중심DB, 네트워크, 보안, 백업 포함
활용 시점개발자 중심아키텍트 및 운영팀 중심

✅ 클라우드 기본 구성요소 정리

  • VPC / Subnet: 네트워크 격리 및 보안 설계
  • EC2 / VM: 컴퓨팅 리소스
  • RDS / DB: 관계형/비관계형 데이터 저장소
  • S3 / Blob: 정적 파일 저장소
  • Load Balancer: 트래픽 분산
  • Auto Scaling Group: 부하 기반 인스턴스 자동 확장
  • Lambda: 서버리스 컴퓨팅
  • CloudWatch / Log Analytics: 모니터링 및 로깅
  • WAF / NSG / 보안그룹: 접근 제어 및 보안 설정

✅ 인프라 구성도 설계 절차

  1. 요구사항 수집
  2. 서비스 분할 및 역할정의
    • 프론트엔드 (Vue.js), API 서버(EC2), DB(RDS), 캐시(Redis) 등 기능별 서비스 구분
  3. 네트워크 경로 및 부안 구성
    • WAF,ALB,DMZ,IAM,SSL 등 포함
  4. 스토리지 및 데이터 흐름 설계
    • RDS,S3,Athena,Kafka 등을 통해 저장/분석/스트리밍 고려
  5. 운영 및 모니터링 요소 포함
    • CloudWatch, SNS를 통한 시스템 상태 감시 및 알림 설정
  6. 확장성 및 복구 전략 설정
    • Auto Scaling, Multi-AZ, 백업 및 DR 구성 반영

HW 인프라 구성 예시

  • 웹서버: 사용자 요청을 수신하고, 프론트엔드 화면(UI)을 제공
  • API 서버: 사용자 관리, 시설 운영, 데이터 분석 등 비즈니스 로직을 처리
  • 캐시서버: 실시간 데이터 조회 속도를 높이기 위해 센서 데이터와 제어 결과를 임시 저장
  • 관계형 DB 서버: 사용자 정보, 시설 데이터, 제어 이력, 알림 내역 등 주요 데이터를 안정적으로 저장하고 관리
  • 파일저장소: 센서 수집 데이터 파일, 분석 리포트, 백업 데이터 등 대용량 파일을 저장

3️⃣ 통합 구성도 설계 실습

🔹도서관 좌석 예약 시스템

  • 고려사항
  1. 실시간 좌석 관리 → Redis 캐시
  2. 안정성 → 분산 구조 / 서버리스 구조
  3. 사용 이력 및 제재 관리 → 로그 기록(Cloud Watch)

  • 피드백: Public, Private 구분해놓기
profile
IT병아리

0개의 댓글