모두를 위한 클라우드 컴퓨팅 2

cloud-computing

클라우드 컴퓨팅의 역사와 모델

유래


정의


특성


NIST가 제시하는 서비스 모델


NIST가 제시하는 배포 모델


클라우드를 활용하는 이유

(1) 인프라 규모 산정이 용이해진다.


(2) 비용을 절감할 수 있다.


(3) 탄력성


(4) 가용성


(5) 신속성


(6) 투명한 사용량 측정


(7) 복원성


클라우드 컴퓨팅에 영향을 준 기술들

(1) 클러스터링


(2) 그리드 컴퓨팅


(3) 가상화


클라우드 서비스 제공자의 역할


자원성능의 확장

(1) 수평적인 확장 (scale-out)


(2) 수직적인 확장 (scale-up)


public 클라우드 사용 시 고려사항


연습문제

  1. 클라우드 컴퓨팅과 유사한 개념을 소개한 사람을 검색해보고, 어떤 점에서 유사한지 기술해보라.

    • 존 매카시 - 컴퓨터의 시분할 기술이 컴퓨팅 파워, 소프트웨어까지 수도 및 전기와 같은 유틸리티 모델로 판매 가능한 유틸리티 컴퓨팅을 제안
      ⇒ 클라우드 컴퓨팅 또한 컴퓨팅 자원을 분할하여 사용자에게 할당하고 비용을 부과하는 모델이라는 점에서 유틸리티 컴퓨팅과 유사
    • 레너드 클라인록(아파넷 연구자) - 네트워크의 기술이 성장하면 마치 전화기와 전기를 쓰듯이 어디서든지 컴퓨터를 유틸리티처럼 사용하게 될 것으로 예측
    • 켄 올슨(DEC 사장) - “개인이 집마다 컴퓨터를 둘 필요가 없다”
  2. 2.2절에서 기술한 클라우드 컴퓨팅에 대한 정의 외에 또 다른 정의가 있는지 찾아보고, 기존 개념과 어떤 점에서 다른지 설명해보라.

    자원 관점 : 인터넷 상에서 서비스로 전송되는 응용들과 이들 서비스를 제공하는 데이터센터 내의 하드웨어와 시스템소프트웨어를 지칭

    플랫폼 관점 : 인터넷 상에서 기업이나 사용자들에게 IT 서비스를 제공하기 위한 유연하고 비용 효과적인 검증된 전송 플랫폼

    서비스 관점 : 최종사용자에 대해서 신뢰 가능한 서비스 품질을 보장하는 동적인 컴퓨팅 환경을 제공하기 위한 새로운 컴퓨팅 패러다임

    • 클라우드 컴퓨팅은 초기에는 서버나 스토리지 같은 자원관점에서 정의되었고, 기술적 진보에 따라 서비스 채널과 플랫폼 관점으로 그 정의가 확대 되었고, 클라우드 컴퓨팅 서비스 환경의 발전에 따라 다시 서비스와 비즈니스 관점으로 정의된다.
    • SAP - 클라우드 컴퓨팅은 인터넷을 통해 구독 기반의 데이터 스토리지, 보안, 네트워킹, 소프트웨어 애플리케이션 및 비즈니스 인텔리전스와 같은 서비스를 제공
      • 보안, 비즈니스 인텔리전스 영역이 추가되었다.
        • 비즈니스 인텔리전스: 조직에서 사람과 기술의 힘을 사용하여 전략적 및 일상적 의사 결정 프로세스에 사용될 데이터를 수집하고 분석하는 프로세스
    • 오라클 - 클라우드 컴퓨팅은 IT를 구매하는 대신 임대할 수 있는 것. 클라우드 서비스에는 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 애널리틱스 및 비즈니스 인텔리전스가 포함되지만 이에 국한되지는 않음
  3. NIST에서 정의한 클라우드 컴퓨팅의 5가지 특성 외에 고려해야 할 특성이 있는가? 있다면 어떤 것인지 기술하고 논리적 근거를 설명해보라.

    https://www.kcloudnews.co.kr/news/articleView.html?idxno=10834

    • 유지 관리 작업 간소화
      물리적 인프라에 대한 걱정이 없음, 물리적인 라우터, 스위치, 스토리지 시스템에 대해서 유지 관리할 필요가 없고. 냉각 시스템 및 발전기도 유지 관리할 필요가 없다.
    • 비용 효율적인 프로세스 기관
      이미 작업된 서비스를 사용하면 몇 시간, 몇 분이면 완료할 수 있다.
    • 보안 향상
      AWS / MS / 구글 클라우드의 경우 공급자가 매우 안전하다.
      기업 단위의 보안 장치를 배포할 수 있음.
      DDoS 보호, 키관리, 데이터 암호화의 경우도 공급자가 제안해줄 수 있다.
    • 자동화
      클라우드는 많은 프로세스를 자동화하므로 확장성이 뛰어나고 비용 효율적
    • 쓴 만큼 사용하는 편리한 결제 구조
  4. 멀티테넌시 모델의 장점이 있다면 단점도 존재한다. 장단점을 비교 설명해보라.

    [**장점]**

    빠른 사이트 구축 : ec사이트를 빠르고 비교적 저렴하게 구축할 수 있다.

    시스템 운용 불필요 : 서비스 제공자가 os나 애플리케이션 업데이트, 서버 교체, 보안 등 시스템 운영 작업을 수행

    [**단점]**

    보안 불안 : 여러 사용자가 동일한 시스템을 사용하기 때문에 데이터가 혼동되거나 정보 유출이 발생할 가능성을 배제할 수 없음

    디자인 등의 자유도 불편 : 고정된 형식이 미리 만들어져 있기 때문에 테넌트 사이트 설계 및 외부 시스템과의 연동 등 무료 사이트 구축이 어려움

  5. NIST가 제시한 클라우드 컴퓨팅 3가지 모델 외에 다양한 모델이 제시되고 있다. 모델 한 가지를 제시하고 그 모델에 대해서 설명해보라.

    • IDaaS(Identity as a Service): 신뢰할 수 있는 제 3자가 제공하는 IAM 서비스를 일종의 SaaS 형태로 사용하는것, 클라우드 기반 인증 서비스
      • 일반 SaaS와 달리 기업의 보안에 직결된 서비스인 만큼 이 서비스를 제공하는 기업에 대한 신뢰도가 훨씬 높아야한다.
      • 계정관리를 사용자가 직접 자유롭게 할 수 있다
      • 예: 공동인증서(카카오, 네이버, 은행 등에서 발행), 클라우드 이메일(맥북이메일에서 지메일 확인)
    • UCaaS(UC as a Service): 통합커뮤니케이션(Unified Communications) 솔루션을 클라우드 사업자를 통해 서비스받음. 전화, 이메일, 메시징, 영상 회의 시스템 등의 커뮤니케이션 수단을 하나의 플랫폼으로 통합하여 관리
    • BaaS는 백엔드기능을 클라우드 서비스 형태로 제공해주는 것을 말한다. 개발자는 BaaS 솔루션을 통해서 서버기술을 몰라도 그 환경에 연결되는 모바일 앱을 만들 수 있게 되어 초기투자비를 크게 줄이고 핵심 서비스 영역에 역량을 집중할 수 있도록 하며, 이용자 변화에 유연한 대처가 가능하게 되어 기술적 위험을 최소화할 수 있다.
  6. 소프트웨어 개발 시 동일한 개발환경은 매우 중요한 요소이다. 대형 프로젝트에 클라우드가 어떻게 활용되었는지 사례를 조사하여 기술해보라.

    https://aws.amazon.com/ko/solutions/case-studies/11st/

    11번가는 라이브 커머스를 외부 솔루션을 사용해 왔는데, 이는 제공하는 범위 내에서만 사용 가능했기 때문에, 이를 극복하기 위해서 AWS를 선택

    Amazon Interactive Video Service / Amazon EC2 / Amazon S3 / Amazon RDS 서비스를 이용하여 라이브 스트리밍 솔루션을 만듬

    • 이외에도 도커 컨테이너 기반으로 개인 가상머신(똑같은 환경 제공)을 각각 제공하는 서비스들 (stackblitz, codesandbox, 구름에디터 등등)
    • 쿠버네티스
      사용자의 환경에서 쿠버네티스를 사용할 경우 얻을 수 있는 주요 이점은, 특히 클라우드를 위한 애플리케이션 개발을 최적화
      하는 중인 경우, 쿠버네티스를 통해 물리 또는 가상 머신의 클러스트에서 컨테이너를 예약하고 실행할 수 있는 플랫폼이 확보된다는 것입니다. 더 넓게 보면, 프로덕션 환경에 컨테이너 기반 인프라를 완전히 구현해서 사용할 수 있습니다. 또한 쿠버네티스는 운영 작업 자동화와 관련이 있으므로 다른 애플리케이션 플랫폼 또는 관리 시스템에서 가능한 작업의 상당수를 컨테이너를 사용해 수행할 수 있습니다.
      https://www.redhat.com/ko/topics/containers/what-is-kubernetes
  7. IaaS 서비스를 제공하는 기업을 찾아보고 아마존, 구글과 같은 대형 IT 기업과 비교했을 때 비교 우위가 되는 경쟁력은 무엇인지 조사해보라.

    • 가비아(g클라우드) : 다수의 공공∙행정기관 레퍼런스를 보유한 공공기관에 최적화된 IaaS 클라우드 서비스
    • 네이버(네이버클라우드) : 고객이 원하는 형태로 직접 상품을 개발하고 제공할 수 있는 것이 특징
    • 오라클: 클라우드 프리티어가 굉장히 좋음 https://hoing.io/archives/10446
  8. 클라우드 컴퓨팅의 4가지 배포 모델 중에서 커뮤니티 클라우드로 구축하여 해결할 수 있는 주변의 문제를 찾아보고, 왜 커뮤니티 클라우드 구축이 해결 방법인지 설명해보라.

    • github, github enterprise, github private repo
    • 금융권에서 많이 쓰는 듯…
    • 타 회사와 협업할때?
  9. 클라우드 배포 모델의 비교 기준이 되었던 확장성, 복원성, 보안, 성능 비용 외에 또 다른 고려사항은 무엇이 있는지 기술하고 그 이유를 설명하라.

    • 테넌트는 세입자라는 뜻임. 클라우드 서비스 이용자가 가지게 되는 자신만의 환경을 의미
    • https://m.blog.naver.com/knyzang/221879308432
    • 결론부터 말하자면, 대용량 또는 수요 변동이 많은 워크로드에는 퍼블릭 클라우드가 더 적합할 수 있습니다. 예측 가능한 사용 패턴을 갖는 워크로드에는 프라이빗 클라우드가 더 효과적일 수 있습니다. 하이브리드 클라우드는 모든 워크로드가 어디에서든 호스팅될 수 있으므로 포괄적입니다.
  10. 클라우드 컴퓨팅 인프라를 탄력적으로 구성하는 다양한 모델들이 연구되고 있다. 어떤 모델이 있는지 조사해보고 그 모델이 갖는 장점은 무엇인지 설명해보라.

    • 인터클라우드

    인터클라우드는 서로 연결된 글로벌 클라우드의 클라우드이며 기반이 되는 인터넷 네트워크의 네트워크에 대한 확장이다. 공개형 클라우드 서비스 제공자들 간의 직접적인 상호운용성에 초점을 맞추고 있으며, 이는 제공자들과 소비자들 간의 것 보다 더한 편이다.

    • 멀티클라우드

    멀티클라우드는 단일 벤더에 대한 의존성을 줄이고 선택을 통한 유연성을 향상시키고 장애에 대한 불편을 줄이는 등을 하기 위해 하나의 이기종 아키텍처 안에서 여러 개의 클라우드 컴퓨팅 서비스의 이용을 뜻한다. 여러 개의 배치 모드(공개형, 폐쇄형, 레거시)가 아닌 여러 개의 클라우드 서비스를 가리킨다는 점에서 복합형 클라우드와는 차이가 있다.

  11. 가용성과 신뢰성을 구분하였는데 의미 있는 구분인가? 의미가 있다면 어떤 점에서 의미가 있는지 설명하고 의미가 없다면 그 이유는 무엇인지 설명하라.

    • 가용성: 시스템이 서비스를 요청 받았을 때, 서비스를 제공할 수 있는 능력
    • 신뢰성: 시스템이 명세화 된 대로 서비스를 제공할 수 있는 능력
    • 신뢰할 수 있는 시스템은 늘 사용 가능하다거나, 사용 가능한 시스템은 신뢰할 수 있다고 가정할 수는 없기 때문에 둘을 구분하는 것은 의미가 있다.
      • ex. A컴퓨터가 일년에 한번 고장나고 수리하는데 3일 걸리고 B컴퓨터는 한달에 한번 고장나는데 수리하는데 10분 걸린다면 A는 신뢰성이 높고 B는 가용성이 더 높다고 할 수 있다. 시스템이 사용될 환경과 그것이 사용될 목적을 반드시 고려하여 선택해야한다.
    • 가용성과 신뢰성은 서로 다른 이점으로써, 클라우드 도입 및 비즈니스 이점과 직결된다.
      • 가용성이 증대된 IT자원은 즉시접근가능하며, 더 오랜시간 동안 접근 가능하다.
      • 신뢰성이 증대된 IT자원은 예외 발생 상황을 더욱 잘 방지하고 복구 할 수 있다.
  12. 클라우드 컴퓨팅에 영향을 준 기술들 중 설명되지 않은 기술은 무엇이 있는지 찾아보고 어떤 점에서 영향을 주었는지 설명해보라.

    • 로드 밸런싱
      컴퓨터 자원 분산 기술의 일종으로 둘 혹은 셋 이상의 중앙 처리장치 혹은 저장 장치와 같은 컴퓨터 자원들의 작업을 나누는 것을 의미합니다. 예를들면 홈쇼핑에서 갑자기 고객 요청으로 주문이 폭주했을때 여러 대의 분산 처리하여 서버의 부하량, 속도 저하를 방지해 분산처리하면 중단 없이 서비스를 운영할 수 있습니다.
  13. 클라우드 서비스 제공자(CSP)의 역할 중 추가적으로 제공해야 할 것이 있다면 제시하라.

    • 컨설팅: 마이그레이션을 준비하는 단계, 인프라 구축을 위해 아키텍처 논의
    • 마이그레이션: 기존 인프라에서 클라우드로 이사가는 단계 (새로운 환경으로 세팅되어야 하므로 이식성이 중요, 버전이슈 등 대응해줘야할 부분이 많음)
    • 데이터 센터의 친환경화: 데이터센터의 경우 막대한 전력량 사용으로 인한 환경에 악영향을 끼친다. 이를 줄이는 것도 CSP의 역할이 아닐까 ..

    ⇒ 위 두 가지는 MSP(Managed Service Provider)가 제공하고 있는데(ex. 베스핀글로벌, 메가존) 애초에 CSP가 해주면 좋을 것 같다.

  14. 컴퓨팅 자원의 성능을 확장하는 방법 중 스케일업 방식이 스케일아웃 방식보다 적용하기 좋은 사례를 찾아보고 그 이유를 설명하라.

    https://azure.microsoft.com/ko-kr/resources/cloud-computing-dictionary/scaling-out-vs-scaling-up/#scale-up-vertically

    • 워크로드가 급증하여 CPU 또는 I/O와 같은 성능 제한에 도달하는 경우
    • 기존 데이터베이스 최적화로 해결할 수 없는 성능 문제를 해결해야하는 경우
  15. 다국적 클라우드 기반 서비스를 이용할 때 특히 데이터 관점에서 분쟁 이슈 사례를 조사하라.

    pass!

  16. 우리나라의 클라우드 컴퓨팅법에 대해 조사하고 이 법이 강조하는 것이 무엇인지 설명하라.

    • 클라우드컴퓨팅 발전 및 이용자 보호에 관한 법률
      제 2장 (클라우드컴퓨팅 발전 기반의 조성)부터 제 3장 (클라우드컴퓨팅서비스의 이용 촉진)
      4장 신뢰성 향상 및 이용자 보호
      제 11조 (중소기업에 대한 지원)
      제 12조 (전문인력의 양성)
      제 20조 (국가기관등의 클라우드컴퓨팅서비스 이용 촉진)
      제 21조 (전산시설등의 구비) 등
      국가적 차원에서 클라우드 컴퓨팅 산업을 발전시키려고 많은 법을 강조하는 거 같다. (2020년 시행)
      해당 목표로 국민생활과 국민경제의 발전에 클라우드 컴퓨팅 서비스를 안착시키기 위함
      2년이 지났는데, 그 사이 내가 의식하고 겪은 클라우드 서비스는 엔비디아 게이밍 클라우드 서비스 밖에 ;; 근데 이것도 LG U+가 독점해서 기존 게이머가 접근하기 너무 힘듦 ;;
      그 외 법률에 보안이 가장 강조가 됨
      사실상 중요한 데이터 및 로직을 다른 회사의 클라우드에서 사용한다는게 불신이 들 수도 있음
      클라우드에 관한 신뢰성을 가지기 위해서는 이러한 법률로 보안을 어길시 져야하는 손해배상책임을 엄격히 매겨야한다고 생각함.
      그렇기에 클라우드 컴퓨팅이 국민 경제를 상승시킬 수 있다는 신뢰성을 주기 위해서 보안을 강조하는게 아닌가 싶다.