클라우드란 다양한 서버의 글로벌 네트워크를 뜻한다.
실제로 Netflix, facebook, twitter, coupang, 당근마켓 등은 클라우드 서비스의 B2B(Business to Business) 기능을 사용하여 운영한다.
클라우드 컴퓨팅이란 문서작성, 데이터 스토리지 등과 같은 다양한 기능을 클라우드로부터 지원받는 것을 말한다.
Google cloud를 생각해보면 쉽다. 다양한 서버로 묶여 있는 전세계 사용자들이 시간에 구애받지 않고 하나의 문서를 작성할 수 있다.
이 과목에서 다룰 개괄적인 주제는 다음과 같다.
- Cloud Infrastructure
- Cloud Platforms(SaaS, PaaS, IaaS)
- Compute Services(AWS EC2)
- Cloud Storage(AWS S3)
- Cloud Database
- Virtualization(클라우드컴퓨팅의 기본 원리)
- Security, Privacy(보안 기능)
- Reliability, Availability(데이터센터 안전 유지 기능)
- DevOps, MLOps(빠르게 클라우드 전달하는 방법)
- Cloud-based AI(머신러닝 파이프라인 실행 방법)
- Edge Computing(클라우드컴퓨팅 이외에 등장하는 패러다임)
Cloud infrastructure
소비자에게 서비스를 제공하는 데 필요한 소프트웨어와 하드웨어를 통칭한다. 주요 구성요소는 server와 networking equipment, storage다. 이 세 가지는 datacenter를 이루며 rack에 차곡차곡 모듈화되어 있다.
rack의 구조를 뜯어보면 가장 위에 network switch, 그 밑에 많은 blade server, 가장 아래에 storage 기기들이 있다.
그럼 각 구성요소를 살펴보자.
- Server
클라이언트의 요청을 처리하는 컴퓨터라고 보면 된다. Reliability를 제공하고 많은 요청을 처리하도록 만들어진다. 여기서 reliability(신뢰성)는 주어진 환경에서 특정 목적을 위해, 지정된 시간 동안 고장 없이 운영될 수 있는 확률을 말한다. reliability를 위해 multi-core CPU를 두고 ECC(Error Correction Code/bit flip이 일어나면 바로잡아주는 역할) 메모리를 사용한다.
최근에 AI를 위한 소켓을 만들기 위해 FPGA를 많이 활용하는 추세다. 또한 자신만의 프로그래밍을 위한 소켓을 만드는 custom accelerators for AI가 서버에 설치된 경우가 많다.
그리고 대기업 등에서 큰 규모를 설치해야 한다면 blade라는 서버를 사용한다. 서버의 크기를 작게 해서 컴팩트하게 수많은 blade server를 보관 할 수 있다.
하나의 rack이 42U라고 하면, 1U짜리 blade server은 42개, 2U짜리는 21개까지 수용 가능하다.
세상에는 다양한 서버가 있지만 각자 다른 특징을 갖고 있다. 애플리케이션들이 각자 고유의 특성을 가지고 있어 각자 가지고 있는 하드웨어의 configuration이 다르기 때문이다.
예컨대 페이스북을 예로 들면 페이스북을 위한 여러 서버가 있는데 조금씩 다른 것을 볼 수 있다.
- Networking equipment
network를 담당하는 인프라를 설계 및 유지하기 위한 장비들이다. 주요 구성요소로는 physical cable, switch, router, wireless access point가 있다.
디바이스들이 모여 있는 모양에 따라 여러networking topology가 있다. 상황에 따라 topology를 선택해 사용하면 된다.
- storage
Disk trays(HDD) , SSD 와 같은 저장 기기를 말한다.
위 사진처럼 많은 컴퓨터의 드라이브를 배열식으로 조합하여 하나의 시스템을 만든 것이다.
따라서 다수의 서버에 저장기능을 제공할 수 있다.
이러한 구성요소가 많이 연결되면 datacenter을 이룬다.
Datacenter은 수많은 rack 으로 이루어지고 각 rack은 100여개의 core을 가진다. 정말 많은 용량(10^21)의 메모리를 저장한다.
Datacenter 옆에 컴퓨터가 작동하면 열이 발생하는데 수많은 컴퓨터가 연결돼있으므로 열을 cool down 해줄 cooling plant도 둔다. 또한 reliability를 위해 데이터센터가 셧다운될 경우 대체할 파워가 있어야 하므로 UPS(무정전 전원 장치)나 generator을 두기도 한다.
다음은 Google datacenter의 위치를 표시한 지도다.
멀면 datacenter로부터 응답 받는 데 시간이 오래 걸리므로 많은 지역에 분포돼있다. 만약 일본 데이터센터가 셧다운된다면 중국에서 서비스를 제공받을 수 있다. 자원값(땅/전기세 등..) 때문에 보통 도시보다는 시골쪽에 위치한다.
Cloud Platforms
클라우드 플랫폼은 제공하는 서비스에 따라 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service)로 나뉜다.
- SaaS
CSP가 시스템 전체를 운영하기 때문에 사용자의 관리가 요구되지 않는다. 소프트웨어 설치 및 업데이트가 자동으로 설정돼있기 때문에 비용을 절감할 수 있다는 장점이 있다. ex) Google Docs, Google Calendar, Gmail
- PaaS
CSP가 소프트웨어와 개발 도구를 제공해준다. 사용자는 이러한 인프라를 토대로 원하는 애플리케이션을 커스터마이징할 수 있다. 인프라의 유지 관리가 사용자의 몫이 아니므로 애플리케이션 개발과 혁신에 집중할 수 있다는 장점이 있다. ex) Google Engine API
- IaaS
CSP가 물리적인 하드웨어 인프라를 가상화한 서비스를 필요한 만큼 제공하고 관리한다. 그러면 회사의 운영체제를 비롯해 고유한 인프라를 물리적으로 구축할 수 있다. 회사 고유 인프라를 통해 애플리케이션을 개발할 수 있기 때문에 즉각적이고 안정적인 운영이 가능하다는 장점이 있다. ex)AWS(Amazon Wev Service), EC2
클라우드는 어떤 사용자들이 속하느냐에 따라 Public Cloud, Community Cloud, Private Cloud로 나뉜다.
- Public Cloud
=> 상업적으로 거래 가능하며 누구나 엑세스 가능
ex) AWS, Microsoft Azure, Google App Engine
- Community Cloud
=> 몇 개의 비슷한 기관 간 공유
ex) Google's Gov Cloud
- Private Cloud
=> 하나의 기관 안에서만 공유
ex) 대기업의 데이터 센터
'클라우드 > AWS' 카테고리의 다른 글
Networking (1) (0) | 2024.12.22 |
---|---|
Security(1) (1) | 2024.11.22 |
AWS S3(1) (0) | 2024.11.07 |
AWS EC2(2) (4) | 2024.11.07 |
AWS EC2(1) (6) | 2024.10.08 |