[1] 개요
[2] 소개
[3] 5가지 특성
[1] 개요
Simple SNS (시스템 디자인/확장)
- 가입 / 등록
- 친구요청 / 수락
- 글쓰기
모듈 (컴포넌트)
- WWW + WAS 서버 하나에
- DB
디자인
1. WWW + DB 컴퓨터 하나에
- 사용자 수가 늘어나면 서비스 품질 저하
2. WWW DB 서버 분리
- 사용자 수가 더 증가면 서비스 품질 저하
3. 웹 서버를 하나 더 추가해서 부하를 반으로 줄이기
- load balancer 사용 (round-robin도 결국 좋다)
- lb는 heartbeat 메세지를 통해 각 웹서버 상태를 확인
- DNS는 웹서버의 주소가 아닌 lb의 주소를 반환
- DB에서 병목 현상 발생
@vertical scaling : 시스템 장비/부품을 고사양으로 교체 (Scale Up)
- 교체시 서비스가 중단됨
- 성능면에서 장비 또는 기술의 한계 존재
- 새로운 부품의 비용도 비싸고 기존의 부품은 낭비됨 (사용 목적이 같아 다른 용도로 활용이 어려움)
@horizontal scaling : 더 많은 장비를 추가 (Scale Out)
- 서비스 중단x
- 장비 추가시 비용의 부담이 덜하다
- 부하를 분산 시킬 수 있다 (병렬처리)
- 성능 감소시 회수한 장비를 다른 목적으로 사용 가능
4. 디비 서버 추가
- 서버는 이중화 됐지만 데이터 타입에 따라 역할을 분리
- single point of failiure 존재 (lb)
5. Load Balancer 추가
- lb이중화로 안정성 높아짐
- high availability 보장을 위해 여분의 장비를 대기시킨다.
- lb cluster를 사용
- lb끼리도 heartbeat 확인
@High Availability
- 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜기간 동안 지속적으로 정상 운영이 가능한 성질
@HA 클러스터
- 서비스를 제공하는 다수의 장비로 구성된 그룹
- fail over : 하나가 고장나면 클러스터 내의 장비로 대체
- 각 장비의 상태는 active-active 또는 active-standby
- 고정된 가상 IP를 사용하고 해당 IP는 active 장비에 연결됨
6. 사용자 폭발적으로 증가하면?
웹서버 hs + HA clustering
- 각 웹서버는 물리적으로 가깝거나 부하량이 적은 DB를 사용
7. DB 병목현상 생기면?
디비서버 hs + HA clustering
- HA 클러스터로 묶인 장비들 간에는 주기적으로 heartbeat 체코 및 데이터 동기화 필요
- 같은 역할을 하는 DB는 동기화 필요
8. 캐시 도입
- 접근할 데이터가 캐시 시스템에 있는지 먼저 확인후 db 요청
@Cache
빈번하게 access 되는 데이터를 사전에 캐시 시스템에 저장
- db에서 읽어오는 것보다 응답시간이 빠르다
- 같은 정보를 두번 저장하는 것
9. 갑자기 90%의 사용자가 탈퇴하면?
- over-provisioning (비용 낭비)
- hs 방식으로 확장한 경우, 일부 장비를 다른 시스템에 전달
@Provisioning
- IT인프라를 생성하고 설정하는 프로세스
- it 자원을 사용할 수 있는 상태로 준비 + 제공까지
10. 이후 사용자가 100배 증가한다면?
서버의 성능을 줄여놓은 상태이므로 다시 확장해야함
- 서버 재배치, OS/SW 설치
- scale up 또는 out시 다 다시해야함
- 운영비 증가 (서버실 운영비, 관리자 인건비 등)
=> 그냥 클라우드 컴퓨팅 사용
[2] 클라우드 컴퓨팅 소개
인터넷을 통해, 가상화된 컴퓨터의 시스템 리소스를 요구하는 즉시 제공받아 사용하는 기술 (가상화 기술)
- pay-as-you-go
- on-demand resource provisioning
- scalability
- elasticity
- 인터넷
- it 자원 풀링 & 재사용
- 퍼블릭 클라우드 vs 온-프레미스
- 가상화
Utility Computing
- 1961년 존 매카시가 MIT 100주년 기념연설에서 개념 발표
- 2000년대 네트워크의 발전, 가상화기술의 고도화에 의해 구현됨
기성 환경 매커니즘 (ready-made environment)
- 사전에 구성 및 설정이 완료된 IT 자원들로 구성
- SDK를 제공해서 IT자원에 접근 방식을 지원
- 클라우드 사용자는 즉시 자신의 서비스를 개발 배포할 수 있음
역할에 따른 조직 부분
1. 클라우드 제공자
- Service Level Agreement
- 클라우드 인프라 운영에 필요한 관리와 통제의 책임이 있음
- 자체 보유한 IT자원으로 서비스하거나 다른 클라우드 제공자의 자원을 재판매
2. 클라우드 소비자
- 클라우드 서비스를 사용하는 조직/개인
3. 클라우드 서비스 소유자
- 법적으로 서비스를 소유한 조직/개인
4. 클라우드 자원 관리자
- 감사관(평가), 중개자, 캐리어(네트워크)
경계
1. 조직적 경계 (물리적 경계)
2. 신뢰 경계 (논리적 경계)
논리 네트워크 경계 (경우들)
- on-prmise
- on-premise + 클라우드
[3] 5가지 특성 (복원력 HA 포함 하면 6가지)
1. 온디맨드 셀프 서비스 (주문형 사용)
- 사용자는 서비스 제공자의 직접적인 개입 없이, 언제 어디서든 원하는 만큼의 컴퓨팅 자원, 네트워크, 스토리지와 같은 자원을 자동으로 프로비저닝할 수 있다.
2. 광대역 네트워크 접근 (유비쿼터스 접근)
- 네트워크를 통해서 다양한 클라이언트 단말 플랫폼을 통해 클라우드 자원에 접근할 수 있다.
3. 리소스 풀링 (멀티테넌시)
- 서비스 제공자의 컴퓨팅 자원은 풀링되어서 다양한 사용자에게 제공 및 회수됨
- Multi-tenant model : 하나의 자원을 다수의 사용자가 상호 간섭/인지 없이 공유하여 사용하는 것
4. 신속한 탄력성
- 클라우드 자원을 신속하게 프로비저닝하여 배포할 수 있고, 자원의 규모를 확장 또는 축소할 수 있음
5. 사용량 측정
- 자원 사용량을 측정 및 청구
- pay-as-you-go
'CS > 클라우드 컴퓨팅' 카테고리의 다른 글
[클라우드 컴퓨팅] 클라우드 컴퓨팅 서비스 모델 및 배포 환경 (8, 9) (0) | 2024.06.20 |
---|---|
[클라우드 컴퓨팅] 클라우드 컴퓨팅 단점 (7) (0) | 2024.06.20 |
[클라우드 컴퓨팅] 클라우드 컴퓨팅 용어 (6) (0) | 2024.06.20 |
[클라우드 컴퓨팅] 클라우드 컴퓨팅 기술적 혁신 (5) (0) | 2024.06.20 |
[클라우드 컴퓨팅] 클라우드 컴퓨팅 장점 (4) (0) | 2024.06.20 |