클라우드/AWS 개념 정리
EP 1
클라우드란? + 인프라
클라우드가 무엇인지 배우고 인프라, Public/Private 클라우드에 대하여 알아보자
위 로드맵은 roadmap.sh에서 확인 가능합니다.
본 글의 목차도 위 로드맵을 따라가며, 중간중간 실제 예제를 통해 사전 실습을 진행해볼 예정입니다.
클라우드란?
일단 우리가 웹 서버나 파일 서버를 구축해본다고 가정하자. 그럼 처음부터 물리적으로, 개인적으로 보유하고 있는 컴퓨터를 사용하여 서버를 구축해야 함.
그런데 그 비싼 서버 컴퓨터를 사겠다고? 그걸 또 사서 관리를 해야한다고? 이건 돈도 많이 들고 귀찮은 작업임. (참고로 이런걸 로컬 서버라 부름)
그래서 인터넷을 통해 가상화된 서버나 서비스, 자원 등을 제공받아 사용하는데 이걸 클라우드 라고 부름.
그럼 클라우드 컴퓨팅은? 방금 설명한 클라우드 + 컴퓨팅(컴퓨터로 작업, 연산 등을 처리하는 걸 컴퓨팅이라함, 또는 서버/데이터베이스/스토리지 등의 서비스)
인프라: IaaS, PaaS, SaaS
일단 인프라가 뭐냐.. 가장 기초적인 부분이라고 하며, 클라우드에서의 기초는 하드웨어/소프트웨어적인 요소(가상화된 서버, 스토리지, OS 등등)를 의미함
이러한 인프라에 따라서 어떻게 클라우드를 사용하여 운영할지, 어떻게 유지보수할 지 등을 정해둔 서비스 차원의 레벨임.
You manage
: 본인이 직접 관리하고 유지보수Service provider manages
: 클라우드 업체에서 제공하는 서비스
On Site (또는 On Premise, 온프레미스)
서버를 구축하려는 기업, 개인 등이 클라우드 등의 서비스를 사용하지 않고 직접 물리적인 서버 컴퓨터 구축부터 관리 까지 전부 직접 하는 방식.
IaaS(Infrastructure as a Service, IaaS)
한국어로 직역하면 서비스로서의 인프라, 즉 기본적인 서버, 스토리지(저장소), 네트워크 등의 인프라를 제공하는 레벨임.
제공하는 환경을 선택하고, 사용자는 OS와 어플리케이션 등을 관리하게 됨.
리소스를 빌려서 사용하며 그만큼의 비용을 제공하는 가장 기본적인 구조. 그만큼 자유도가 높은 만큼 신경써야 할 부분이 많음.
특히 AWS EC2는 물리적인 서버, 네트워크, 스토리지(저장소)를 제공해주고 OS와 사양을 선택하기만 하면 그러한 부분에 대해선 AWS에서 관리를 해줌으로 IaaS의 대표적인 예시임. 이 밖에도 GCP Compute Engine 등등도 IaaS임..
PaaS(Platform as a Service)
직역하면 서비스로서의 플랫폼, 즉 개발 환경(플랫폼, OS, 미들웨어, 런타임 등)을 제공해주는 서비스 인프라임. 쉽게 말해 사용자는 어플리케이션에 집중하여 개발하게 할 수 있는 인프라.
이미 플랫폼이 구축되어 있으니 node.js, 자바 같은 런타임 등을 설치해두고 개발하여 빌드하는 구조.
다만 플랫폼을 이미 구축해뒀기 때문에 다른 플랫폼으로의 이동에 어려움이 있을 수 있음.
미들웨어(Middleware)
어떠한 운영체제와 그 운영체제에서 작동하는 소프트웨어 사이의 소프트웨어. 운영체제가 제공하는 서비스 외에 추가적으로 다른 소프트웨어를 올려서 서비스를 관리할 수 있음.
예시로 웹서버로서의 미들웨어엔 아파치, Nginx 같은게 있고 JDBC같은 데이터베이스 미들웨어도 있음.
SaaS(Software as a Service)
서비스로서의 소프트웨어, 즉 이미 완성된 형태의 클라우드 서비스를 의미함.
정말 이미 쉽게 설명하자면, SaaS의 대표적인 예시가 구글 드라이브, iCloud 등의 파일 클라우드 서비스 같은 거.
이 외에도 DaaS(Desktop as a Service) 등등이 있는데, DaaS 얜 클라우드에서 데스크탑 환경을 클라우드 서비스로 제공하는걸 의미함.
Public, Private, 하이브리드 클라우드
서비스(인프라) 모델은 클라우드에서 제공하는 요소를 의미한다면, 사용 용도와 서비스 성격에 따라 공용 클라우드(Public Cloud), 사설 클라우드(Private Cloud), 하이브리드 클라우드(Hybrid Cloud)로 나뉠 수 있음.
Public Cloud(공용 클라우드)
특정 기업, 또는 특정 사용자가 독점하여 사용하는것이 아닌, 인터넷을 통해 접근할 수 있다면 사용할 수 있는 클라우드임.
대부분의 클라우드 업체(AWS, Google Cloud 등등)가 퍼블릭 클라우드임.
Private Cloud(사설 클라우드)
퍼블릭 클라우드와는 반대로 특정 기업이나 사용자만을 위한 클라우드고, 퍼블릭 클라우드는 인터넷(Internet)을 통해 접근할 수 있다면 프라이빗 클라우드는 인트라넷(Intranet, 사설망)이기 때문에 VPN 등을 사용해야 들어갈 수 있음. 그래서 민감한 데이터를 다루는 데이터 보호가 필요한 곳에서 주로 사용됨.
Private Cloud vs On Premise
얼핏 보면 비슷한 개념(특정 사용자를 대상으로 함)이라 생각될 수 있음. 다만 Private Cloud는 클라우드 업체에서 특정 사용자를 대상으로 독자적인 클라우드 서비스를 제공해주고,
On Premise는 전통적인 방식 그대로 기업 내에서 모든걸 직접 구축하고 구현함.
Hybrid Cloud(하이브리드 클라우드)
말 그대로 퍼블릭 클라우드와 프라이빗 클라우드를 합친 것.
예를 들어 민감한 개인정보들은 프라이빗 클라우드에, 웹 페이지의 경우 퍼블릭 클라우드에 배포하는 등의 인프라 구조룰 하이브리드 클라우드라 함.