[Code.presso] 5주차-2. 클라우드 컴퓨팅 첫 걸음(1)

sorzzzzy·2022년 2월 27일
0
post-thumbnail

Code.presso Java 웹 개발 트랙 체험단 활동 5주차 두번째 코스로 수강한 강의는 클라우드 컴퓨팅에 관한 내용이다.

이번 포스팅에서는 클라우드 컴퓨팅의 기초 개념을 익히고, 다음 포스팅에 AWS 서버를 생성하는 과정을 정리해보겠다.

강의 제목은 "클라우드 컴퓨팅 첫 걸음"으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.

📌 클라우드 컴퓨팅 첫 걸음 - 강의 정보

✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.


🏷 클라우드 컴퓨팅 개념과 장점

1. 클라우드 컴퓨팅의 개념

Cloud Computing인터넷을 통해 가상화된 컴퓨터의 IT 리소스를 제공하는 것이다.
인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다.

Cloud Computing은 현재 가장 핫한 기술으로 Cloud를 도입함으로써 기업으로 하여금 사업의 본질에 집중할 수 있게 한다.


2. 클라우드 컴퓨팅의 특징

서울시에서 제공하는 따릉이와 쏘카와 같이, Cloud는 컴퓨팅 자원을 원할 때, 원하는 만큼 사용할 수 있다.
또한 사용한 만큼만 요금을 지불한다.

이러한 형태를 "X As A Service" 라고 한다.
X를 서비스 형태로 제공받고 사용료를 지불하는 형태인데,
Cloud Computing같은 경우에는 "Computing Resource As A Service" 혹은 "IT Resource As A Service" 라고 볼 수 있다.

여기서 말하는 주요 Computing Resource는 무엇이고, Computing Resource를 왜 Service 형태로 제공받아야 할까🤔?


3. 클라우드 컴퓨팅의 장점

인터넷 세상은 Server와 Client로 이루어져 있다.
Computing 세상에서 Server는 핵심 Computing Resource이고, 요청을 받아 처리한 후 결과를 반환한다.

여기서 문제는, Server가 굉장히 많이 필요하다는 것이다.
아마존, 넷플릭스, 인스타그램 등 고객이 많아질수록 엄청나게 많은 서버가 필요하다.

가지고 있는 서버의 개수와 실제 사용량이 불일치하는 경우가 일어날 수 있는데 Cloud를 도입하면 Computing Resource에 대한 탄력적 대응이 가능하게 된다.

이와 같이 수요에 따라 탄력적으로 자원을 일치시킬 수 있게 되는 것이다.


🏷 클라우드 컴퓨팅의 주요 특징

클라우드 컴퓨팅에는 여러 특징이 있지만 크게 4가지에 대해서 학습했다.

⭐️클라우드 컴퓨팅의 4가지 주요 특징⭐️
1. On Demand
2. 대규모 확장성
3. 종량제 과금
4. 관리 편의성


1. On Demand

물을 사용하고 싶을 땐 수도꼭지를 틀고, VOD 서비스를 이용하고 싶을 때 넷플리스 애플리케이션을 사용하면 된다.

비슷하게 "Computing Resource On Demand" 는 Computing 자원을 내가 원할 때 언제든지 사용하는 것이다.


2. 대규모 확장성

Cloud를 사용하면 "10분 안으로 서버 1,000대를 준비해주세요" 혹은 "10분 안으로 10,000대를 준비해주세요" 와 같은 수요에 따른 대규모 증설이 가능하게 된다.

아마존이나 구글과 같은 클라우드 사업자들은 수만, 수십만대의 대규모의 Computing 자원을 미리 구축하고 있기 때문에 사용자는 단순히 비용을 지불하고 대규모의 서비스를 이용할 수 있게 되는 것이다.


3. 종량제 과금

만약 우리가 인터넷 비즈니스를 시작했다고 가정해보자.
서버 구매, 서버 운영, 네트워크 관련 비용 등 초기 비용이 상당히 많이 들 것이다.
또한 사업이 잘 되지 않으면 이 초기비용을 다 날려야 하는 리스크를 감수해야 한다.

Cloud 서비스는 사용한 만큼만 지불하고 초기비용이 낮아 리스크를 줄일 수 있다.


4. 관리 편의성

Cloud를 사용하면 우리가 서버를 직접 구매, 관리하지 않아도 Cloud 사업자들이 IT 자원 관리에 필요한 기능을 제공해주며 효율적으로 관리를 해준다.

물론 전문적인 운영을 위해서는 Cloud 전문가가 필요하겠지만, 사업 초반에는 비용을 줄이고 Cloud 사업자가 제공하는 관리 기능을 사용함으로써 IT 자원 관리를 상대적으로 효율적으로 할 수 있다.


🏷 클라우드 컴퓨팅의 종류

Cloud Computing의 분류 기준은 크게 두가지가 있고 그 두가지는 아래와 같이 다시 나누어진다.

  • Service Model
    • Infrastructure as a Service (Iaas)
    • Platform as a Service (Paas)
    • Software as a Service (SaaS)
    • On Premise
  • Deployment Model
    • Public Cloud
    • Private Cloud
    • Hybrid Cloud
    • Community Cloud

1. Cloud의 Service Model

서비스 모델을 짜장면 조리에 비유해 자세히 알아보자.

첫번째 On Premise는, 아무것도 없는 공간에서 짜장면을 조리해야 하는 경우이다.
모든 조리도구와 재료를 직접 준비해야 하는 상황이다.

두번째 IaaS는, 공유 주방의 개념으로 기본적인 조리 도구는 있고 재료만 가져와서 요리를 하는 상황이다.

세번째 PaaS는, 공유 주방에서 인스턴스 식품을 가지고 조리하는 경우이다.
조리도구 뿐만 아니라 재료 또한 제공되기 때문에 간단히 전자레인지에 데워서 조리하기만 하면 된다.

마지막 SaaS는, 배달을 시키는 경우이다.

이것을 실제 컴퓨팅 환경에 대입해보자.

IaaS는 IT 기본 자원만 제공된다.(Server, Storage, Network)
새로운 컴퓨터 하나를 구매하는 개념이다.

PaaS는 개념의 범위가 넓어서 특정지어 정의내리기가 조금 애매하지만, 일반적으로 IaaS에 OS, Middleware(RDBMS), Runtime(JDK)이 추가된 형태이다.
개발자를 대상으로 하고, 코드를 개발만 해서 올릴 수 있는 상태이다.

SaaS는 소프트웨어 자체를 서비스 형태로 제공받는 것이다.
네이버 클라우드, 구글 드라이브, Dropbox 와 같이 기능이 동작하는 SW를 제공받는다.


2. Cloud의 Development Model

Development Model은 Cloud를 실제 어떠한 형태로 구축하는지에 대한 View Point를 제공하는 모델이다.

첫번째 Public Cloud는, Cloud 서비스를 필요로 하는 사용자 누구든지 사용이 가능하다.
누구나 사용한 만큼 비용만 지불하면 된다.
아마존이나 구글과 같은 Cloud 사업자가 IT 자원을 서비스로 제공한다.

두번째 Private Cloud는, 기업 및 기관 내부에서만 사용 가능한 Cloud Computing 환경을 구축하는 것을 의미한다.
해당 기업/기관에 속하지 않은 사람은 사용이 불가능하고, 구축 난이도가 높지만 보안이나 법적 규제 등의 이유로 사용해야하는 경우가 있다.

세번째 Hybrid Cloud는 Public/Private Cloud를 조합해서 사용하는 형태이다.
보안이 중요한 시스템은 Private Cloud에, 그 외의 시스템은 Public Cloud를 사용한다.
Private Cloud를 주로 사용하되, 예상치 못한 수준의 트래픽이 몰리는 경우 Public Cloud로 확장한다.
다양한 시나리오가 존재하며, 최근 기업들이 가장 관심을 가지는 형태이다.


🏷 클라우드 컴퓨팅의 주요 용어

1. Data Center

Data Center수많은 서버들을 한 데 모아 네트워크로 연결해놓은 시설이다.
IDC(Internet Data Center) 혹은 CDC(Cloud Data Center) 라고도 불린다.

Data Center는 Cloud의 토대로 Cloud 산업이 커질수록 더 많은 Data Center가 구축되는 중이다.


2. Region

RegionData Center가 위치한 지역으로 일반적으로 도시를 지칭한다.
IT Resource를 생성할 Region은 선택이 가능하고, 한국에서도 전 세계 데이터 센터의 자원을 생성할 수 있다.

Region 선택은 서비스 성능에 큰 영향을 미친다.
대상 고객의 지역과 자원을 생성할 Region이 최대한 가까워야 한다.
따라서 Cloud 사업자 선택시 서비스 대상 국가에 Region 선택이 가능한지 확인이 필요하다.


3. Avaliability Zone

하나의 Region은 두 개 이상의 Avaliability Zone으로 구성된다.
Avaliability Zone은 가용 영역이라고도 불리며, 줄여서 AZ로 표시한다.
보통 하나의 AZ는 하나의 Data Center를 의미한다.

만약 서비스를 단일 Data Center(AZ)에서만 운영한다면 지진/번개/정전 등으로 Data Center(AZ)에 장애가 생길 수 있고,
서비스는 해당 Data Center(AZ)가 복구 될 때까지 접속이 불가능해진다.

그러나 서비스를 다수의 Data Center(AZ)에 분산하여 운영하면 특정 Data Center(AZ)에 문제가 생겨도 다른 Data Center(AZ)에 접속이 가능해지므로 가용성이 높아진다.

따라서 AZ장애에 대해 Avaliability를 높이기 위한 장치라고 볼 수 있다.


4. Virtualization

Virtualization(가상화)소프트웨어로 가상의 하드웨어를 생성하는 기술이다.
가상의 하드웨어는 VM(Virtual Machine)라고 표현한다.
Cloud 서비스에서 서버를 사용할 때 일반적으로 물리적인 하나의 서버가 아닌 가상화된 서버를 제공받는다.

가상화는 하드웨어 자원을 효율적으로 관리할 수 있다는 장점을 가진다.


✔️ 클라우드 컴퓨팅 서비스 사업자

1. AWS

AWS클라우드 시장의 최고 강자이다.
2006년에 첫 서비스를 오픈하였고, 22개의 Region과 69개의 AZ를, 그 중 서울 Region에 3개를 가지고있다.
총 212개의 서비스를 제공한다.


2. Azure

AzureMicrosoft에서 출시한 클라우드 서비스이다.
글로벌 점유 2위로, 국내에는 수도권과 부산 두군데에 데이터 센터가 있다.
PaaS 서비스 및 DevOps 서비스에 집중하고 있다.


3. Google Cloud Platform

Google Cloud PlatformGoogle의 클라우드 서비스로 Google의 운영 노하우가 많이 반영되어 있다.
빅데이터와 인공지능 관련된 서비스가 강점으로 2020년 2월에 서울 Region을 출시했다.


4. Naver Cloud Platform

Naver Cloud PlatformNaver에서 출시한 클라우드 서비스로 Naver/Line의 글로벌 운영 노하우가 많이 반영되어 있다.
해외 Region을 보유하고 있고, 국내 서비스 중에서는 가장 많은 기능을 제공한다.


5. Toast Cloud

Toast CloudNHN Entertainment에서 출시한 클라우드 서비스로 NHN의 게임 운영 노하우가 반영되어 있다.
게임과 관련된 서비스가 많으며 Dooray라는 협업 서비스를 제공한다.


6. Alibaba/Tencent Cloud

Alibaba/Tencent Cloud중국 기업인 Alibaba와 Tencent가 출시한 클라우드 서비스이다.
중국은 인구가 워낙 많기 때문에 작은 서비스도 트래픽의 규모가 다르다.
Tencent Cloud의 경우에는 국내에도 데이터 센터가 존재하며, 중국에 진출하는 게임 업체들은 Tencent Cloud을 사용한다.


이번 포스팅에서는 실습에 앞서 클라우드 컴퓨팅의 기초 개념을 학습해보았다!

코드프레소 홈페이지(https://www.codepresso.kr/)에는 오늘 포스팅한 클라우드 컴퓨팅 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃

profile
Backend Developer

0개의 댓글