[Azure Certi] AZ-900 Certi 준비 (1) - 클라우드 개념 (Cloud Concepts)

img1

참고 : http://aka.ms/azfunpath

What is Cloud Computing?

클라우드 컴퓨팅이 뭘까? 글쎄

클라우드 컴퓨팅은 컴퓨터 자원을 빌려주는 것인데, 컴퓨터 자원에는 CPU, storage 등등이 있다. 클라우드 컴퓨팅에서는 사용한 만큼만 가격을 내면 된다. 요즘 대세인 ‘렌탈서비스’의 연장선 같은 느낌?! 클라우드로 유명한 회사에는 AWS, MS, Google, 알리바바(??) 등이 있다.

이러한 회사들을 Cloud Provider라고 하는데, 얘네들은 물리적인 하드웨어를 항상 최신으로 유지해야 한다. 제공되는 컴퓨팅 서비스는 클라우드 제공 업체에 따라 다르지만 일반적으로는 아래와 같은 기능을 포함한다. (결론 : 거기서 거기.. 비슷하다)

  • Linux 서버 또는 웹 응용 프로그램과 같은 컴퓨터 성능
  • 파일 및 데이터베이승와 같은 저장소
  • 네트워킹 - 클라우드 공급자와 회사간의 보안 연결
  • 원격 측정 및 성능 데이터 시각화와 같은 분석

클라우드 컴퓨팅 서비스

Cloud provider가 제공하는 서비스에 대한 기본적인 이해가 필요한데, 모든 클라우드 공급자가 제공하는 가장 일반적인 두 가지는 Compue Power & Stroage다.

Compute Power

VM

클라우드 컴퓨팅을 사용해 솔루션을 구축할 때 리소스 및 요구에 따라 작업 수행 방법을 선택할 수 있다. 예를들어 유지 관리에 대한 제어 및 책임을 강화하려면 가상머신(VM ; Virtual Machine)을 생성할 수 있다. 보통은 VM을 만든 후 이 위에 소프트웨어를 설치한다.

VM에서는 하드웨어를 구매하거나 OS를 설치할 필요가 없다. 클라우드 제공자는 데이터 센터 중 하나의 물리 서버에서 가상머신을 실행하며, 종종 해당 서버를 다른 VM과 공유하고 (분리 및 보안), 클라우드를 사용하면 물리적 컴퓨터보다 적은 비용을으로 몇 분만에 VM을 사용할 수 있다.

그럼 컨테이너는???

컨테이너는 어플리케이션에 일관되고 격리된 실행 환경을 제공한다. 거의 VM과 유사하지만, 응용 프로그램과 모든 종속 항목이 ‘컨테이너’란 패키지로 묶여서 표준 런타임 환경이 응용 프로그램을 실행하는데 사용된다. 부팅 및 초기화 할 OS가 없기 때문에 몇초만에 시작될 수 있다.

Docker는 가장 유명한 컨테이너 관리 플랫폼인데, 도커 컨테이너는 응용 프로그램의 다른 구성요소를 다른 컨테이너에 독립적으로 배포할 수 있기 때문에 응용 프로그램 배포에 대한 효율적이고 가벼운 접근 방식을 제공한다. 단일 시스템에서 여러 컨테이너를 실행할 수 있으며 컨테이너를 시스템간 이동할 수 있다. (이식성) 

서버리스 컴퓨팅이란?

서버리스 컴퓨팅을 사용하면 서버를 생성, 구성 또는 유지 관리하지 않고도 응용 프로그램 코드를 실행할 수 있다. 핵심 아이디어는 응용 프로그램이 일부 작업에 의해 트리거 될 때 실행뙤는 별도의 기능으로 분리된다는 것이다. 

서버리스 모델은 각 기능이 실행될 때 사용한 처리 시간에 대해서만 비용을 지불한따는 점에서 VM과 컨테이너와는 다르다. VM 및 컨테이너는 어플리케이션이 유휴상태인 경우에도 실행중에 청구된다. 

img2

Storage

대부분의 장치 및 응용 프로그램은 데이터를 읽거나 쓸 수 있다. 데이터의 유형과 저장 방법은 각각 경우에 따라 다르다.


Benefits of Cloud Computing

비용 절감

클라우드 컴퓨팅은.. 약간 종량제같은 느낌?! 딱 쓰는 만큼 돈을 낸다.

  • 선불 인프라 비용 없음
  • 추가 자원이 필요할 때 또 구입 가능
  • 더이상 필요하지 않은 자원은 지불 중단

사용한만큼 가격을 책정하기 때문에 비용 또한 예측을 해야한다. 

확장 가능

사용하는 리소스 및  서비스를 늘리거나 줄일 수 있다. 클랑욷드 컴퓨팅은 필요에 따라 수직 및 수평 확장을 모두 지원한다.

“확장” 이라고도 하는 수직 확장은 기존 서버의 성능을 높이기 위해 리소스를 추가하는 프로세스다. 수직 스케일링에는 CPU 추가 및 메모리 추가 등이 있따.

“스케일 아웃” 이라고도 하는 수평 스케일링은 하나의 단위로 함께 작동하는 서버를 더 추가하는 프로세스다. 예를들어 들어오는 요청을 처리하는 서버를 두개 이상 두는 것을 말한다.

탄력성

급증 또는 수요 감소로 인한 워크로드가 변경되면 클라우드 컴퓨팅 시스템은 자동으로 리소스를 추가하거나 제거하여 보상할 수 있다.

예를들어, 웹사이트에 갑자기 사람이 몰리면 자동으로 더 많은 컴퓨터 리소스를 할당하고, 다시 트래픽이 정상화되면 추가로 할당한 리소스를 자동으로 해지해 비용을 최소화한다.

실시간

클라우드를 사용하면 앱의 구축 및 배포에 중점을 두는데, 쓸데없는(?) 소프트웨어 패치, 하드웽어 설정 및 기타 IT관리 작업 유지 관리 부담을 줄여준따. 모든것이 자동으로 수행되어 비즈니스를 운영하는데 가장 최신 도구를 유지시켜준다.

또한 클라우드 공급자가 항상 하드웨어를 유지, 관리하고 업그레이드를 해서 하드웽어를 교체해야겠당~ 하는 일을 겪을 일이 없다.

신뢰성

클라우드 공급자들은 데이터 백업, 재해 복구 및 데이터 복제 서비스를 제공해 항상 데이터를 안전하게 보호한다. 또한 중복성은 종조 클라우드 서비스 아키텍청에 내장되므로 에러가 발생하면 백업 내용을 대신 사용할 수 있다. 이를 Falut Tolerance라고 한다. 

Global

클라우드 제공자들은 데이터 센터가 전세계 여러 곳에 있기 때문에 전세계 어디에서든 빠르게 접근 가능하다.

중복성과 지역성을 위해 서비스를 여러 지역으로 복제하거나 특정 지역을 선택하여 고객의 데이터 상주 및 규정 준수 법률을 준수할 수 있다.

안전성

클라우드 제공업체는 대부분의 조직이 할 수 있는 것보다 더 나은 보안을 제고한다. 강력한 보안으로 잠재적인 위협으로부터 데이터, 앱 및 인프라를 보호할 수 있다.

클라우드 인프라에 대한 위협인 물리적 보안과 관련해 클라우드 제공업체는 데이터센터 보호에 막대한 투자를 한다고 한다. 눈누

디지털적인 면에서는 권한이 있는 사용자만이 가상 시스템 또는 스토리지 시스템으로 로그인하기때문에 더 안전하다나 뭐라나?


Compliance terms & requirements

솔루션을 호스팅할 클라우드 공급자를 선택할 때 해당 공급자가 규정 및 표준 준수를 도울 수 있는 방법을 이해해야 한다. 생각해볼만한 것은 아래와 같다.

  • 민감한 데이터를 처리할 때 클라우드 제공 업체는 얼마나 호환되는가?
  • 클라우드 공급자가 제공하는 서비스는 얼마나 호환되는가?
  • 인증 또는 규정 준수 요구사항이 있는 시나리오에 고유한 클라우드기반 솔루션을 배포하려면 어떻게 해야하는가?
  • 공급자에 대한 개인정보 보호정책의 일부는 무엇인가?

Compliance Offerings

다음 목록은 사용 가능한 일부 규정 준수 제품에 대한 세부 사항을 제공합니다.

  • 형사 사법 정보 서비스 (CJIS) : FBI의 CJIS 데이터베이스에 엑세스하려는 미국의 주 또는 지방 기관은 CJIS 보안 정책을 준수해야 한다. Azure는 CJIS 보안 정책을 준수하기 위해 계약을 체결한 유일한 클라우드 제공 업체로, Microsoft는 법 집행 기관 및 공공 안전 기관이 충족해야하는 것과 동일한 요구 사항을 준수하도록 한다.
  • CSA (Cloud Security Alliance) STAR 인증
    • Azure, Intune 및 Microsoft Power BI는 STAR 인증을 획득하였으며, 여기에는 클라우드 공급자의 보안 상태에 대한 엄격하고 독립적인 타사 평가가 포함된다.
  • 일반 데이터 보호 규정 (GDPR)
  • EU 모델 조항
  • 건강보험 휴대성 및 책임법 (HIPAA)
  • 국제 표준화기구 (ISO) 및 국제 전기 기술 위원회 (IEC) 27018
  • MTCS (Multi-Tier Cloud Security)
  • 서비스 조직 젱어 
  • NIST(National Institute of Standards and Technology) 사이버 보안 프레임워크 (CSF)
  • 영국 정부 G-Cloud

Economies of scale

규모의 경제란, 대규모로 운영할때 보다 효율적으로 또는 단위당 더 적은 비용으로 일을 할 수 있는 능력을 말한다. 이것은 바로 클라우드 컴퓨팅의 주 포인트다.

Microsoft, Google 및 Amazon과 같은 클라우드 제공업체는 규모의 경제 이점을 활용하는 대기업이다. 이러한 절감 효과는 여러가지 방법으로 최종 사용자에게 명백하며 그 중 하나는 저렴한 비용으로 하드웨어를 구입할 수 있다는 것이다. 클라우드 제공업체를 사용하면 세금을 절약할 수 있고 (?진짜??) 사이트간의 전력, 냉각 및 고속 네트워크 연결 가격을 낮출 수 있다.


Capital expenditure (CapEx) versus Operational expenditure (OpEx)

자본 지출과 운영 지출

과거에는 회사가 사업을 시작하기 위해 물리적 건물과 인프라를 확보해야 했다. 비즈니스를 시작하거나 성장시키는데 하드웨어 및 인프라에 상당한 초기 비용을 들였으나, 클라우드 컴퓨팅은 이러한 문제를 해결해주었다.

  • 자본 지출 (CapEx) : CapEx는 물리적 인프라에 대한 비용을 미리 지출한 다음 시간이 지남에 따라 세금 청구서에 해당 비용을 공제하는 것이다. CapEx는 선결제 비용으로, 시간이 지남에 따라 감소한다.
  • 운영 비용 (OpEx) : OpEx는 현재 서비스 또는 제품에 비용을 지출하고 있으며 비용이 청구되고 있는 것을 말한다. 같은 해에 세금 청구서에서 이 비용을 공제할 수 있다. 선결제 비용이 없다. 서비스 또는 제품을 사용할 때 비용을 지불한다.

CapEx 컴퓨팅 비용

일반적으로 온프레미스 데이터센터에는 다음과 같은 비용이 포함된다.

  1. 서버 비용
    • 모든 하드웨엉의 구성을 지원하는 비용을 포함.
    • 서버 클러스터링, 중복 전원 공급 장치 및 무정전 전원공급장치와 같은 내결함성과 중복성을 설계해야 함.
    • 서버를 교체하거나 데이터 센터를 추가해야할 경우 컴퓨팅 비용을 지불해양 함.
    • 서버를 선불로 지불
  2. 저장 비용
    • 모든 스토리지 하드웨어 구성 비용 포함
    • 어플리케이션 및 Fault Tolerance 수준에 따라 중앙집중식 스토리지는 가격이 천차만별.
    • 대규모 조직의 경우 중요한 어플리케이션에 더 비싼 Fault tolerance storage를 사용.
  3. 네트워크 비용
    • 케이블, 스위치, 엑세스 포인트 및 라우터를 포함한 모든 온프레미스 하드웨어 구성요소 포함
    • WAN 및 인터넷 연결 포함
  4. 백업 및 보관 비용
  5. 조직 연속성 및 재해 복구 비용
  6. 데이터센터 인프라 비용
  7. 기술 인력

OpEx 클라우드 컴퓨팅 비용

클라우드 컴퓨팅을 사용하면 온프레미스 데이터센터와 관련된 많은 비용이 서비스 제공 업체로 전환된다. 실제 하드웨어 및 데이터센터 비용을 생각하는 대신 클라우드 컴퓨팅에는 다른 비용이 있다. 

  1. 임대 소프트웨어 및 사용자 정의 기능
    • PPU(pay-per-use) 모델을 사용하려면 사용자가 서비스를 오용하지 않고 프로비저닝 된 계정을 사용하고 낭비하지 않도록 관리해야 한다.
    • 공급자가 리소스를 제공하자마자 청구가 시작됨. 리소스를 사용하지 않을 때 비용을 최소화 할 수 있도록 리소스를 프로비저닝 해제하는 것이 필요하다.
  2. 고정 하드웨어 또는 용량 대신 사용량/수요에 따라 확장 요금이 부과
    • 클라우듣 컴퓨팅은 사용자 수 또는 CPU 사용 시간과 같은 다양한 방법으로 청구함.
    • 청구의 범주에는 RAM, IOPS(초당 I/O 작ㅇ업) 및 저장 공간이 포함된다.
    • 백업 트래픽 및 데이터 복구 트래픽을 계획하여 필요한 대역폭을 결정해야 한다.
  3. 사용자 또는 조직 수준의 청구
    • 구독 모델은 조직과 사용자 모두를 위해 설계된 컴퓨팅 청구 방법이다. 조직이나 사용자는 일반적으로 반복적으로 사용되는 서비스에 대해 요금이 청구된다.
    • 소프트웨어, 스토리지 및 개발 플랫폼을 포함한 컴퓨팅 리소스를 확장, 사용자 지정 및 프로비저닝을 할 수 있다.

CapEx와 OpEx의 장점

  • CapEx의 장점
    • 자본 지출을 통해 프로젝트 시작 또는 예산 기간에 비용을 계획한다.
    • 비용이 고정되어있어 지출 금액을 정확히 알 수 있다.
  • OpEx의 장점
    • 수요와 성장을 예측할 수 없어 기대치를 능가할 수 있다. (이걸 왜 장점으로 넣었지???)
    • 새로운 제품이나 서비스를 사용하려는 회사는 장비에 투자할 필요가 없다.
    • 수요가 변동하는 경우에 적합하다.

Cloud Deployment Models

클라우드 컴퓨팅의 3가지 배포 방법에는 무엇이 있을까??

Public Cloud

가장 일반적인 배포 모델. 이 경우 클라우드 공급자의 하드웨어에서 실행되는 모든 하드웨어를 관리하거나 최신 상태로 유지할 로컬 하드웨어가 없다. 경우에 따라 다른 클라우드 사용자와 컴퓨팅 리소스를 공유하여 추가 비용을 절약할 수 있다.

기업은 다양한 규모의 여러 퍼블릭 클라우드 공급자를 사용할 수 있다. 

public cloud의 장점

  • 높은 확장성, 민첩성 - 확장을 위해 새 서버를 구입할 필요가 없다.
  • 종량제 요금 - CapEx 비용 없이 사용한만큼만 지불
  • 사용자는 하드웨어 유지관리 또는 업데이트에 대한 책임이 없다.
  • 설정 및 사용에 대한 최소한의 기술 지식을 활용하여 워크로드가 안전하고 가용성이 높은 것을 보장할 수 있다.

일반적인 케이스는 클라우드 제공자가 소유한 하드웨어 및 자원에 웹 어플리케이션 또는 블로그 사이트를 배치하는 것이다. 이때 퍼블릭 클라우드를 사용하면 클라우드 사용자가 자신의 웹사이트나 블로그를 신속하게 얻을 수 있으며, 운영되는 하드웨어의 구매, 관리, 유지에 대해 걱정할 필요가 없다.

public cloud의 단점

  • 특정 보안을 요구할경우 힘들수도…
  • 정부 정책, 산업 표준 또는 법적 요구 사항이 있을 경우에도 힘뜰다
  • 하드웨어나 서비스를 소유하지 않으며 원하는대로 관리할 수 없다.
  • 레거시 응용 프로그램을 유지 관리하는 등의 고유한 비즈니스 요구 사항을 충족하기 어려울 수 있다.

Private Cloud

프라이빗 클라우드에서는 자체 데이터 센터에 클라우드 환경을 생성하고 셀프 서비스 엑세스를 제공하여 조직의 사용자에게 리소스를 계산할 수 있다. 이는 사용자에게 퍼블릭 클라우드 시뮬레이션을 제공하지만 하드웨어 및 소프트웨어의 구매 및 유지 관리에 대한 책임은 전적으로 나에게 있다.

Private Cloud의 장점

  • 보안에 대한 통제
  • 엄격한 보안, 규정 준수 또는 법적 요구 사항을 충족할 수 있다.
  • 모든 시나리오 또는 레거시 응용 프로그램을 지원할 수 있는지 확인할 수 있다.

Private Cloud의 단점

  • 초기 CapEx 비용이 발생하며 시작 및 유지 관리를 위해 하드웨어를 구입해야 한다.
  • 민첩성이 제한된다. 새로운 하드웨어를 구입 및 설치해야한따.
  • 프라이빗 클라우드에는 달성하기 어려운 IT기술과 전문 지식이 필요하다.

Hybrid Cloud

하이브리드 클라우드는 퍼블릭 클라우드와 프라이빗 클라우드를 결합하여 가장 적합한 위치에서 어플리케이션을 실행할 수 있다. 예를들어, 퍼블릭 클라우드에서 웹사이트를 호스팅하고 프라이빗 클라우드에서 호스팅되는 데이터베이스에 연결할 수 있다.

Hybrid Cloud의 장점

  • 오래된 하드웨어 또는 오래된 운영체제를 사용하는 모든 시스템을 계속 실행하고 엑세스 할 수 있다.
  • 클라우드에서 로컬로 실행하는 것과 유연성이 있다.
  • 저렴한 가격의 서비스 및 리소스에 대해 퍼블릭 클라우드 제공 업체의 규모의 경제를 활용한 다음 그렇지 않은 경우 자체 장비로 보완할 수 있다.
  • 자체 장비를 사용하여 환경을 완전히 제어해야하는 보안, 규정 준수 또는 레거시 시나리오를 충족할 수 있다.

Hybrid Cloud의 단점

  • 일부 CapEx 비용이 포함 -> 하나의 배포 모델을 선택하는 것보다 비용이 더 많이 들 수 있다.
  • 설정 및 관리가 더 복잡할 수 있다.

클라우드 서비스의 종류

IaaS (Infrastructure as a Service)

서비스로성의 인프라는 가장 유연한 범주의 클라우드 서비스다. 하드웨어를 구매하는 대신 IaaS를 사용하여 임대하면 응용 프로그램을 실행하는 하드 웨어를 완벽하게 제어할 수 있다. 

Iaas는 일반적으로 아래의 경우에 사용된다.

  • 워크로드 마이그레이션
    • 일반적으로 IaaS는 온프레미스 인프라와 유사한 방식으로 관리되며 기존 응용 프로그램을 클라우드로 이동하기위한 쉬운 마이그레이션 경로를 제공한다.
  • 테스트 및 개발
    • 테스트 및 개발 환경을 신속하게 설정 및 해제하여 새로운 응용 프로그램을 더 빨리 출시할 수 있다.
    • 개발 및 테스팅 환경을 빠르고 경제적으로 확장할 수 있다.
  • 스토리지, 백업 및 복구
    • 예측할 수 없는 수요와 꾸준히 증가하는 스토리지 요구를 관리하는데 유용하다.
    • 백업 및 복구 시스템의 계획 및 관리를 단순화할 수 있다.

PaaS (Platform as a Service)

PaaS는 소프트웨어 어플리케이션을 구축, 테스트 및 배포하기 위한 환경을 제공한다. PaaS의 목표는 인프라를 관리하지 않고도 어플리케이션을 빠르게 생성할 수 있도록 돕는 것이다. 예를 들어 PaaS를 사용해 웹 어플리케이션을 배포하는 경우, 운영체제, 웹서버 또는 시스템 업데이트를 설치할 필요가 없도록 하는 것이다.

PaaS는 조직이 간단한 클라우드 기반 앱에서 정교한 클라우드 지원 엔터프라이즈 어플리케이션에 이르는 모드느 것을 제공할 수 있는 리소스를 갖춘 클라우드의 완벽한 개발 및 배포 환경이다. 리소스는 종량제 방식으로 클라우드 서비스 공급자로부터 구매되며 인터넷 연결을 통해 엑세스한다.

PaaS는 다음과 같은 경우에 주로 사용한다.

  • 개발 프레임 워크
    • PaaS는 개발자가 클라우드 기반 어플리케이션을 개발하거나 사용자가 정의하기 위해 구축할 수 있는 프레임워크를 제공한다. 개발자는 Microsoft Excel 매크로와 마찬가지로 내장 소프트웨어 구성요소를 사용하여 응용 프로그램을 만들 수 있다.
    • 확장성, 고가용성 및 다중 테넌트 기능과 같은 클라우드 기능이 포함되어있어 개발자가 수행해야하는 양이 줄어든다.
  • 분석 또는 비즈니스 인텔리전스
    • PaaS와 함께 서비스로 제공되는 도구를 통해 조직은 데이터를 분석하고 마이닝을 할 수 있다. 통찰력과 패턴을 찾고 예측, 제품 설계 및 투자 수익과 같은 비즈니스 의사 결정을 개선하기위한 결과를 예측할 수 있다.

SaaS (Software as a Service)

SaaS는 최종 고객을 위해 중앙에서 호스팅 및 관리되는 소프트웨어로, 일반적으로 한 버전의 응용 프로그램이 모든 고객에게 사용되며 월별 또는 연간 구독을 통해 라이센스가 부여되는 아키텍처를 기반으ㅡ로 한다. Office 365, Skype 및 Dynamic CRM online은 SaaS 소프트웨엉의 한 예이다.

 IaaSPaaSSaaS
선불 비용

선결제 비용 없음
사용한만큼 비용 지불

선결제 비용 없음
사용한만큼 비용 지불
선결제 비용 없음
월단위 또는 연간 단위로 구독료 지불
사용자 소유권사용자는 자신의 소프트웨어, 운영체제, 미들웨어 및 응용 프로그램의 구매, 설치, 구성 및 관리를 담당사용자가 자신의 응용 프로그램을 개발할 책임은 있으나 서버나 인프라를 관리할 책임은 ㅇ없다.사용자는 소프트웨어만 신경쓰면 된다. 소프트웨어의 유지 또는 관리에 대한 책임은 없음.
클라우드 제공자 소유권클라우드 제공자는 기본 클라우드 인프라(가상머신, 스토리지 및 네트워킹 등)를 사용자가 사용할 수 있도록 보장할 책임이 있다.클라우드 공급자는 운영체제 관리, 네트워크 및 서비스 구성을 담당.공급자는 어플리케이션의 프로비저닝, 관리 및 유지 보수를 담당

img3