해당 게시글은 국민대학교 이경용 교수님의
수업 내용을 바탕으로 작성하였습니다.
클라우드 컴퓨팅 서비스
- 컴퓨팅을 하드웨어 관점이 아닌 소프트웨어 관점에서 활용하게 해줌
- 컴퓨터 자원의 초기 구매 없이 필요할 때마다 대여 후 사용하는 서비스
- 컴퓨팅 자원의 유지보수, 관리 부담을 덜어줌
- 컴퓨팅 자원의 소유와 사용의 분리를 통한 대중화
기존의 컴퓨팅 모델과 클라우드 모델
기존의 컴퓨팅 모델
- 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 (1) | 2024.12.06 |
---|---|
[Cloud Computing] Cloud High Availability (2) | 2024.12.06 |
[Cloud Computing] Serverless Computing (1) | 2024.12.06 |
[Cloud Computing] Container (2) | 2024.12.06 |
[Cloud Computing] 2. 클라우드 Basic Service (1) | 2024.11.26 |