[Cloud Computing] 1. Distribute System

2024. 11. 25. 20:28·Infra & Cloud/Cloud Computing
반응형
해당 게시글은 국민대학교 이경용 교수님의
수업 내용을 바탕으로 작성하였습니다.

 

클라우드 컴퓨팅 서비스

  • 컴퓨팅을 하드웨어 관점이 아닌 소프트웨어 관점에서 활용하게 해줌
  • 컴퓨터 자원의 초기 구매 없이 필요할 때마다 대여 후 사용하는 서비스
  • 컴퓨팅 자원의 유지보수, 관리 부담을 덜어줌
  • 컴퓨팅 자원의 소유와 사용의 분리를 통한 대중화

 

기존의 컴퓨팅 모델과 클라우드 모델

기존의 컴퓨팅 모델

  • On-premise 데이터 센터
  • Infrastructure as hardware
  • 하드웨어 설치를 위한 공간, 직원, 물리적 보안, 예산 및 계획 필요
  • 하드웨어 구입에 오랜 시간이 걸릴 수 있음.

 

클라우드 컴퓨팅 모델

  • Infrastructure as software
  • 탄력적 운영 가능
  • 빠르고, 손쉽고 경제적으로 변경 가능

하이브리드 클라우드 컴퓨팅 모델 (on-premise 컴퓨팅 + 클라우드 컴퓨팅 모델)

 

 

클라우드 사용의 장점

  • 하드웨어 구축 예산의 다양한 활용 가능 (서버룸 구축 필요 x)
  • 대량 사용에 따른 규모의 경제 혜택 (가격 경쟁으로 인한 원가 절감)
  • 자원 사용 예측 필요 없음 (memory 용량, Spec과 같은 정보 필요 x)
  • 탄력적이고 빠른 서비스 구축
  • 데이터 센터 운용에 따른 경비 제거 (관리자 관점 - 서버룸 운영 시 드는 기타 비용 절감)
  • 전세계 어디든 빠르게 서비스 배포 가능

 

클라우드의 필요성

1. Reliability (고가용성) : 요청 처리 중 예상치 못한 이벤트 발생에도 올바르게 동작해야 함.

 

2. Scalability (확장성) : 시스템이 커지더라도 잘 처리하여 사용자에게 합리적인 성능을 제공해야 함.

 

3. Maintainability (유지보수성) : 유지보수가 좋아야 함.

 


안정성의 확보 (Reliability)

  • 지원해주는 기능에 한해 충분히 좋은 성능을 제공해줘야 함.
  • fault-tolerant : 잘못된 일이 발생하더라도 올바르게 동작해야 함.

Fault : 컴포넌트가 처음 약속된 스펙에서 벗어나 동작하는 것.

 

Failure : 시스템이 정상 동작하지 않고 서비스를 제공하지 못하는 것

 

즉, Fault 가 Failure가 되지 않게끔 하는 것이 중요함

 

(DB Fault 시 백업 (SNAPSHOT) 과 같은 작업을 통해 Failure 방지)

 

 

 

하드웨어 Faults

하드웨어로부터 발생할 수 있는 Fault

-> 하드 디스크 crash, RAM 고장 (bit flop), 정전, 네트워크 카드 고장 (bit flop)

 

하드웨어 Fault 주기

-> 하드디스크의 MTTF(Mean Time to Failure)는 10~50년, 평균 30년으로 알려져있음

 

하드웨어의 중복 설치를 통한 fault 발생 방지

RAID (Redundant Array of Independent Disks)를 활용한 디스크 셋업

  • 소프트웨어 차원에서 하드웨어의 fault를 관리하는 방안이 구현되고 있음

 

 

소프트웨어 fault

소프트웨어에 내재된 버그에 의해서 발생함.

  • Cascading Failures : 한 컴포넌트의 실패가 다른 컴포넌트의 실패를 연속적으로 초래함. (AWS에서 많이 일어남)

방지법

프로세스 간 실패 분리 (circuit breaker) : 실패 지점에서 프로세스 중지 => cascading failure 방지

테스트 (Unit, Integrity) : 이상 징후 지속적 탐지

 

 

 

사람에 의한 fault

기계/소프트웨어만큼 안정적이지 못함.

방지

  • 시스템을 디자인할 때 사람의 관여 여지를 최소화 (수동작업의 자동화)
  • 배포 환경, 개발 환경 분리
  • failure 시 roll-back할 수 있는 환경 구축

확장성 (Scalability)

시스템이 처리해야 할 작업 (load)이 증가하더라도, 잘 처리하는 능력

 

Load는 웹서버 (초당 처리 가능 요청수), 데이터베이스 (DB Connection, 저장 데이터 용량), 캐쉬 (hit ratio) 등 다양한 응용 서비스마다 다를 수 있음.

 

web-scale에서 중요도가 매우 높음! (전세계 동시 접속 트래픽)

 

 

 

 

시스템에서의 확장성

Scale-up

  • 하나의 서버를 업그레이드
  • 소요되는 비용과 성능의 개선 정도가 비례하지 않음

주로, ML/DL 환경, Big Data 환경에서 많이 사용됨. (GPU Core 수 ↑)

 

Scale-out

  • 새로운 서버를 지속적으로 추가하여 컴퓨팅 연산 능력 확보
  • shared-nothing architecture 라고도 부름
  • 클라우드 환경에서 더 선호되는 방안.

주로, Web 환경에서 주로 사용됨 (동시 트래픽 밸런싱)


유지보수성 (Maintainability)

소프트웨어 운용, 버그 수정 및 코드 리뷰가 개발 비용보다 훨씬 높음

  • 시스템 상태 모니터링 필요.

 

 

반응형

'Infra & Cloud > Cloud Computing' 카테고리의 다른 글

[Cloud Computing] Cloud Deployment Automation  (2) 2024.12.06
[Cloud Computing] Cloud High Availability  (2) 2024.12.06
[Cloud Computing] Serverless Computing  (2) 2024.12.06
[Cloud Computing] Container  (2) 2024.12.06
[Cloud Computing] 2. 클라우드 Basic Service  (2) 2024.11.26
'Infra & Cloud/Cloud Computing' 카테고리의 다른 글
  • [Cloud Computing] Cloud High Availability
  • [Cloud Computing] Serverless Computing
  • [Cloud Computing] Container
  • [Cloud Computing] 2. 클라우드 Basic Service
류건
류건
개발 일지
  • 류건
    건's Dev
    류건
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Back-end (55)
        • Spring (30)
        • Nest.js (3)
        • Next.js (2)
        • Node.js (3)
      • Infra & Cloud (20)
        • Cloud Computing (6)
        • Docker (3)
        • AWS (7)
      • Java (2)
      • Computer Science (12)
        • Computer Network (0)
        • Operating System (0)
        • 정보 보호와 시스템 보안 (12)
      • 회고록 (1)
        • 우아한테크코스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JPA
    Nest.js
    public key
    node.js
    ddl-auto
    ssl
    Kafka
    CD
    aws
    보안
    Spring
    Github Actions
    Spring Boot
    Docker
    nginx
    EC2
    https
    고가용성
    db
    WebClient
    CI/CD
    CORS
    티스토리챌린지
    어노테이션
    express.js
    Webflux
    정보보호
    JWT
    Lock
    오블완
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
류건
[Cloud Computing] 1. Distribute System
상단으로

티스토리툴바