열번째 수업 | 클라우드 컴퓨팅

Faithful Dev·2024년 9월 23일
0

박온순 강사님

인공지능과 클라우드 컴퓨팅

인공지능(AI)이란?

인공지능은 컴퓨터가 사람처럼 생각하고 배우는 기술이다. 마치 로봇이 사람처럼 일을 할 수 있게 만드는 것! 인공지능은 여러 가지 일을 할 수 있다:

  • 미래 예측: 과거의 데이터를 보고 앞으로 무슨 일이 일어날지 예측
  • 이상 감지: 평소와 다른 이상한 상황을 찾아냄
  • 시각 인식: 사진이나 영상을 보고 무엇이 있는지 알아봄
  • 언어 이해: 우리가 하는 말을 이해하고 대화할 수 있음
  • 정보 추출: 여러 곳에서 정보를 모아 지식을 쌓음
    • 시리: '오늘 날씨 어때?' 물어보면 대답해준다.
    • 추천 시스템: 유튜브 알고리즘, 넷플릭스 알고리즘

인공지능과 클라우드 컴퓨팅의 관계

인공지능클라우드 컴퓨팅은 상호 보완적이다. 클라우드는 큰 저장 공간과 빠른 컴퓨터를 제공해서 인공지능이 더 잘 작동하게 도와주고, 인공지능은 클라우드 서비스를 더 똑똑하게 만들어 준다.

  • 클라우드: 엄청 큰 도서관. 많은 책(데이터)을 저장할 수 있고, 필요할 때 언제든 꺼내 쓸 수 있다.
  • 인공지능: 도서관 사서처럼, 필요한 책을 빠르게 찾아주고, 책의 내용을 이해해서 필요한 정보를 제공해준다.

클라우드가 제공하는 인공지능 기능 및 활용 사례

주요 기능

  • 컴퓨팅 자원: 강력한 컴퓨터를 빌려 쓸 수 있다.
  • 데이터 스토리지: 많은 데이터를 저장할 수 있는 공간을 제공한다.
  • 네트워킹: 컴퓨터들이 서로 잘 연결될 수 있게 도와준다.
  • API 및 SDK: 개발자가 인공지능을 쉽게 사용할 수 있게 도구를 제공한다.
  • 관리 도구: 클라우드를 효율적으로 관리할 수 있게 도와준다.

활용 사례

  • 의료: 질병을 진단하고 치료법을 추천해준다.
  • 금융: 사기를 감지하고 고객의 금융 상태를 분석해준다.
  • 제조: 생산 과정을 자동화하고 품질을 관리해준다.
  • 고객 서비스: 챗봇이 고객의 질문에 답해준다.
  • 보안: 이상한 활동을 감지하고 경고해준다.

클라우드 기반 인공지능의 장점과 단점

장점

  1. 비용절감: 필요한 만큼만 사용하고 비용을 지불한다.
  2. 확장성: 필요할 때 더 많은자원을 쉽게 추가할 수 있다.
  3. 효율성: 빠르고 효율적으로 일을 처리할 수 있다.
  4. 접근성: 인터넷만 있으면 어디서든 사용할 수 있다.
  5. 보안: 클라우드 제공업체가 안전하게 데이터를 보호해준다.

단점

  1. 데이터 보안: 인터넷을 통해 데이터를 주고 받기 때문에 해킹 위험이 있다.
  2. 제어력 감소: 데이터를 클라우드에 맡기기 때문에 완벽히 통제할 수 없다.
  3. 기술 숙련도: 클라우드를 잘 사용하려면 기술을 배워야 한다.
  4. 벤더 잠금: 특정 클라우드 서비스에 종속될 수 있다.

클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 인터넷을 통해 컴퓨터, 저장 공간, 소프트웨어 등을 사용하는 것을 말한다.

주요 특징

  • 필요할 때 사용: 필요할 때 원하는 만큼 자원을 사용할 수 있다.
  • 사용한 만큼 비용 지불: 실제로 사용한 만큼만 돈을 낸다.
    • 온라인 스트리밍: 넷플릭스를 사용하면 영화를 보고 싶은 만큼만 비용을 지불한다.
    • 클라우드 저장소: 구글 드라이브에 파일을 많이 저장하면 더 많은 공간을 사용할 수 있다.

클라우드 서비스 유형

  1. IaaS (Infrastructure as a Service): 기본적인 컴퓨터 자원을 제공한다. ex: 아마존 AWS
  2. PaaS (Platform as a Service): 개발 플랫폼을 제공한다. ex: 구글 클라우드 플랫폼
  3. SaaS (Software as a Service): 소프트웨어를 서비스로 제공한다. ex: 마이크로소프트 오피스 365

클라우드 컴퓨팅의 장점

고가용성 (High Availability)

서비스가 항상 작동하도록 보장해준다.

확장성 (Scalability)

필요할 때 컴퓨터 자원을 쉽게 늘릴 수 있다.

신뢰성 (Reliability)

데이터가 안전하게 보관되고, 문제가 생기면 빨리 복구할 수 있다.

예측 가능성 (Predictability)

비용과 성능을 미리 예측할 수 있다. 계획을 세우기 쉽게 해준다.

보안 (Security)

클라우드 제공 업체가 데이터를 안전하게 보호해준다.

거버넌스 (Governance)

클라우드 사용을 잘 관리하고 규제할 수 있다.

관리 용이성 (Manageability)

클라우드를 쉽게 관리할 수 있는 도구를 제공해준다.

클라우드 컴퓨팅 도입 시 고려사항

클라우드 서비스 제공 업체 vs. 전통적인 온프레미스 데이터센터

클라우드 서비스 제공업체온프레미스 데이터 센터
비용초기 비용 낮고 사용한 만큼 지불초기 비용 높고 장기간 사용 시 총 비용 낮을 수 있음
보안높은 수준의 보안 서비스 제공맞춤형 보안 가능하지만 기업 역량에 따라 다름
서비스 도입 및 확장빠르게 도입하고 확장 가능더 높은 제어권을 가지고 맞춤 도입 가능
가용성/신뢰성서비스 수준 협약(SLA)에 따라 보장자체적으로 가용성을 관리해야 함
중복데이터 복제 용이자체 복제 방안 마련 필요
데이터데이터 이동 비용 발생 가능성 있음데이터 완전한 통제 가능

비용관리: CapEx vs. OpEx

  • CapEx (Capital Expenditure): 큰 돈을 한 번에 투자하는 것
  • OpEx (Operational Expenditure): 필요한 만큼 돈을 지속적으로 지불하는 것

FinOps

클라우드를 사용할 때 비용을 효율적으로 관리하는 방법이다.

왜 클라우드 컴퓨팅이 중요하지?

소프트웨어 개발자나 데이터 분석가에게 클라우드는 필수

큰 조직에서 일하지 않더라도 클라우드 지식은 매우 중요하다. 클라우드를 통해 더 많은 자원과 도구를 사용할 수 있기 때문!

CI/CD (Continuous Integration & Continuous Delivery)

소프트웨어를 빠르고 효율적으로 개발하고 배포하는 방법이다. 클라우드는 이를 쉽게 도와준다.

DevOps와 클라우드 네이티브

DevOps

개발(Development)과 운영(Operation)을 합친 말로, 소프트웨어를 더 효율적이고 안정적으로 만드는 방법이다.

클라우드 네이티브

클라우드 환경을 최대한 활용해서 애플리케이션을 만드는 방법이다. 마치 집을 지을 때, 그 지역의 날씨와 환경에 맞게 설계하는 것과 같다.

풀스택 개발자

프론트엔드(화면)와 백엔드(서버)를 모두 다룰 수 있는 개발자를 말한다. 다양한 일을 할 수 있어서 스타트업에서 특히 중요하다.

Azure

마이크로소프트 애저(Microsoft Azure)란?

마이크로소프트 애저는 마이크로소프트가 만든 클라우드 컴퓨팅 플랫폼이다. 2010년에 시작되었고, 애저 포털(Azure Portal) 이라는 웹사이트를 통해 쉽게 사용할 수 있다.

애저 포털: 클라우드를 사용할 수 있게 도와주는 마법의 문!

애저의 주요 기능

애저는 다양한 서비스를 제공한다. 간단한 웹사이트부터 복잡한 인공지능 시스템까지 모두 만들고 관리할 수 있다.

주요 서비스

  • 가상 컴퓨터 실행: 집에 있는 컴퓨터처럼 인터넷을 통해 원격으로 컴퓨터를 사용할 수 있다.
  • 원격 저장소: 많은 데이터를 안전하게 저장할 수 있는 공간을 제공한다. ex: 구글 드라이브
  • 데이터 베이스: 정보를 체계적으로 저장하고 관리할 수 있다.
  • 인공지능(AI) 및 사물인터넷(IoT): 스마트한 서비스를 만들 수 있도록 도와준다.

애저의 글로벌 인프라스트럭처

애저는 전 세계에 데이터 센터를 운영하고 있다. 데이터 센터는 컴퓨터 서버가 모여 있는 큰 건물이다.

주요 구성 요소

  1. Physical Infrastructure (물리적 인프라): 실제 컴퓨터와 장비들이 있는 곳
  2. Connectivity Network (연결 네트워크): 전 세계의 데이터 센터를 빠르고 안정적으로 연결해준다.

애저 데이터 센터

애저 데이터 센터는 여러 컴퓨터 서버가 모여 있는 건물이다. 전 세계 여러 곳에 위치하고 있어서 빠르고 안정적으로 서비스를 제공할 수 있다.

애저에서 가용성 확보하기

가용성(Availability) 은 서비스가 항상 잘 작동하도록 보장하는 것을 말한다. 애저는 이를 위해 여러 가지 방법을 사용한다.

주요 방법

  1. Availability Set (가용성 집합): 여러 컴퓨터를 그룹으로 묶어서 하나가 고장나도 다른 컴퓨터가 일을 계속 할 수 있게 해준다.
  2. Availability Zones (가용성 영역): 서로 떨어진 위치에 있는 데이터 센터를 이용해서 한 곳에 문제가 생겨도 다른 곳에서 서비스를 계속할 수 있게 해준다.
  3. Region Pairs (지역 쌍): 가까운 두 지역에 데이터를 복제해서 한 지역에 문제가 생겨도 다른 지역에서 서비스를 제공할 수 있게 해준다.

💡 재해(Disaster)와 장애(Incident)
- 재해(Disaster): 자연재해나 큰 사고처럼, 우리가 통제할 수 없는 큰 문제를 말한다.
- 장애(Incident): 컴퓨터 시스템에서 발생하는 작은 문제로 우리가 관리하고 해결할 수 있는 것들을 말한다.

애저의 지역(Region)과 가용성

애저는 전 세계 여러 지역에 서비스를 제공한다. 각 지역에는 여러 데이터 센터가 모여 있다.

애저 지역의 특징

  • 컴플라이언스 및 데이터 거주지: 각 지역의 법규를 준수하고, 데이터가 특정 지역에 저장되도록 할 수 있다.
  • 서비스 가용성: 어떤 서비스가 어느 지역에서 가능한지 다룰 수 있다.
  • 가격: 지역에 따라 서비스 가격이 다를 수 있다.

지역 유형

  1. 추천(Recommended) 지역: 애저 포털에서 추천하는 지역
  2. 대체(Alternative) 지역: 추천 지역 외에 추가로 사용할 수 있는 지역

애저의 서비스 유형

애저는 다양한 서비스를 제공하며 이를 기본(Foundational), 주류(Mainstream), 전략적(Strategic) 으로 구분한다.

주요 서비스 유형

  • 기본(Foundational): 가장 기본적인 서비스로, 모든 애저 사용자들이 이용할 수 있다.

    교과서

  • 주류(Mainstream): 많은 사람들이 사용하는 주요 서비스

    참고서

  • 전략적(Strategic): 특별한 목적을 가진 중요한 서비스

애저의 특별 지역(Special Region)

애저는 특정 규정이나 법적 요구사항을 충족시키기 위해 특별 지역을 제공한다. ex: 정부나 금ㅇ늉기관 같이 엄격한 보안 기준을 요구하는 곳

애저의 글로벌 네트워크(Global Network)

애저의 글로벌 네트워크는 전 세계에 걸쳐 있는 데이터 센터와 이를 연결하는 모든 네트워크 장비를 포함한다. 이를 통해 빠르고 안정적인 서비스를 제공할수 있다.

주요 구성 요소

  • Wide-Area Network (WAN): 넓은 지역을 연결하는 네트워크
  • Points of Presence (PoPs): 사람들이 애저 서비스에 접속할 수 있는 지점
  • Fiber Optic Cables: 빠른 인터넷 연결을 위한 광케이블

애저 엣지 존(Azure Edge Zones):

엣지 컴퓨팅(Edge Computing) 에서 유래한 애저 엣지 존은 통신사업자의 네트워크를 활용해서 고객에게 더 빠르고 최적화된 서비스를 제공한다.

집 근처에 작은 컴퓨터 서버를 두어, 멀리 떨어진 데이터 센터보다 더 빠르게 정보를 제공받는 느낌!

💡 엣지 컴퓨팅이란?
엣지 컴퓨팅은 데이터를 생성하는 곳 가까이에서 데이터를 처리하는 기술이다. ex: 스마트폰에서 사진 찍을 때 필터 바로 적용하는 것처럼, 데이터를 생성하는 곳에서 빠르게 처리하는 것!

애저 SPACE와 Orbital Ground Station

애저 SPACE는 우주 인프라를 활용하여 전 세계 어디서든 애저 서비스를 사용할 수 있도록 하는 기술이다.

주요 기능

  • Orbital Ground Station: 인공위성에서 전송된 정보를 애저 클라우드로 안전하게 전달해준다.

    우주에서 온 우편 배달부

애저 포인트 오브 프레즌스(Azure Point of Presence, Pop)

애저 PoP는 인터넷 트래픽이 애저의 글로벌 네트워크로 들어오거나 나갈 수 있는 지점이다. 이를 통해 빠르고 안정적인 연결을 제공해준다.

애저 지역 네트워크 게이트웨이(Azure Regional Network Gateway)

애저 지역 네트워크 게이트웨이는 서로 다른 애저 지역에 있는 가상 네트워크를 안전하게 연결해주는 장치이다.

Azure Virtual Machine

Azure Compute Service

Compute는 컴퓨터가 프로그램을 실행하는 데 필요한 자원이다. 클라우드에서 앱을 실행하려면, 컴퓨터와 비슷한 환경이 필요한데, Azure는 이런 컴퓨터 자원을 제공해준다.

컴퓨터 게임을 하기 위해서는 컴퓨터가 필요한 것처럼, 클라우드에서 프로그램을 실행하려면 컴퓨팅 자원이 필요하다.

Azure Virtual Machine

Azure Virtual Machine은 Azure가 제공하는 가상 컴퓨터이다. 물리적 컴퓨터를 따로 구매하지 않아도, Azure의 가상 컴퓨터를 빌려서 사용할 수 있다. 이 컴퓨터는 Azure 가상 네트워크 안에서 배포되고 관리된다.

컴퓨터 게임 속 캐릭터처럼, 실제 컴퓨터는 아니지만 인터넷을 통해 사용할 수 있는 가상의 컴퓨터

Azure VM의 특장점

  1. 자동 스케일링: 필요에 따라 컴퓨터 자원을 더 많이 사용할 수 있다.
  2. 가속화된 성능: 빠르게 작동
  3. 신속한 백업 및 복구: 데이터를 안전하게 보관하고 복구할 수 있다.
  4. 다중 운영체제 지원: 여러 가지 운영체제를 사용할 수 있다. ex: 윈도우, 맥 등
  5. 기본 제공 모니터링 및 관리: 컴퓨터 상태를 쉽게 확인할 수 있다.
  6. AI 및 고성능 컴퓨팅: 인공지능과 복잡한 계산을 처리할 수 있다.

ACU (Azure Compute Unit)

ACU는 Azure의 가상 머신에서 CPU 성능을 비교하는 단위이다. Standard_A1이라는 기준 VM을 100으로잡고, 이보다 성능이 더 좋은지, 낮은지 알 수 있다.

Azure Container

가상 머신은 여러 이점이 있지만, 하나의 운영체제에만 제한된다. 만약 하나의 컴퓨터에서 여러 프로그램을 동시에 실행하고 싶다면, 컨테이너를 사용하는 것이 더 효율적이다. 컨테이너는 가상 머신보다 가볍고, 여러 애플리케이션을 동시에 실행할 수 있다.

Azure에서 제공하는 컨테이너 서비스

  • Azure Container Instances (ACI): 쉽게 컨테이너를 실행할 수 있다.
  • Azure Container Apps (ACA): 컨테이너 기반 앱을 실행하는 서비스
  • Azure Kubernetes Service (AKS): 여러 개의 컨테이너를 관리하는 서비스

💡 Kubernetes
Kubernetes(K8s)는 컨테이너를 관리하는 오픈소스 소프트웨어이다. 여러 개의 컨테이너를 쉽게 운영할 수 있게 도와준다.

Serverless Computing

서버리스 컴퓨팅은 이름만 보면 서버가 없는 것처럼 들리지만, 사실 서버는 있다. 다만 사용자가 서버를 관리할 필요가 없다. 서버리스 컴퓨팅은 필요한 순간에만 서버가 작동하고, 그렇지 않을 때는 서버가 쉰다.

Azure Functions

Azure Functions는 서버리스 컴퓨팅의 한 종류이다. 여기서 제공하는 서비스는 적은 코드로 빠르게 앱을 만들 수 있도록 도와준다. 또 이벤트 기반으로 작동해서 특정 조건이 맞으면 자동으로 실행된다.

버튼 하나로 일이 자동으로 처리된다고?

N-tier Architecture

N-tier Architecture는 애플리케이션을 여러 계층으로 나눠서 관리하는 방식이다. 'N'은 계층의 수를 나타낸다. 이 방식은 애플리케이션의 유연성과 관리 효율성을 높여준다.

💡 N-tier Architecture 예시
웹사이트에서 사용자가 데이터를 입력하면, 이 데이터가 서버로 가고, 서버는 다시 데이터베이스로 가서 저장되는 식으로 여러 단계가 있는 구조

Azure App Service

Azure App Service는 인프라를 따로 관리하지 않고도 원하는 프로그래밍 언어로 웹 애플리케이션, 백그라운드 작업, 모바일 백엔드 및 API를 만들고 호스트할 수 있는 서비스이다.

Azure App Service 종류

  1. Web App: 웹사이트를 만들고 운영할 수 있다.
  2. API App: 다양한 기기와 통신할 수 있는 API를 만들 수 있다.
  3. Web Jobs: 백그라운드에서 작동하는 작업을 만들 수 있다.
  4. Mobile App: 모바일 기기를 위한 백엔드 시스템을 구축할 수 있다.

Azure App Service의 특장점

  1. 원하는 언어로 개발: 다양한 프로그래밍 언어를 사용할 수 있다.
  2. 자동 배포 및 확장: 앱이 커지면 자동으로 확장된다.
  3. 제로 트러스트 원칙 도입: 보안을 철저하게 관리한다.
  4. 고 가용성 및 복원성: 서비스가 중단되지 않도록 보장해준다.
  5. 사이버 공격 방지: 앱을 공격으로부터 보호한다.
  6. 미래에 대비한 웹 앱 구축: 지속적으로 발전하는 최신 기술을 사용할 수 있다.

Personal Insight

클라우드라는 개념을 면접 때 들었을 때는 꽤나 큰 개념처럼 느껴졌다. 막연히 복잡하고 어려운 기술이라는 생각. 오늘 수업을 들으며 실제로 클라우드 기술은 우리 일상생활에 깊숙이 스며들어 있다는 것을 깨닫게 됐다. 우리가 사용하는 스마트폰 앱, 사진 백업, 음악 스트리밍 등, 모두 클라우드 기반 서비스였던 것이다. 이렇게 가까운 곳에 있는 기술인 만큼, 더 잘 다루고 더 잘 활용할 수 있도록 배우고 싶다.

profile
Turning Vision into Reality.

0개의 댓글