파이썬 문법만 100일째 공부중인 IT초보의 페이지 자세히보기

Lv01. 야!너두 클라우드!/1. Azure Fundamentals : AZ-900

8. Azure 앱(App) 서비스와 컨테이너(Container)

오늘도레벨1 2023. 2. 1. 11:44
728x90
SMALL

 

안녕하세요 :0

오늘도레벨1입니다.

 

지난 포스팅에서는 가상데스크톱과

가상데스크톱 인프라의 개념에 대해서 알아보았습니다.

 

오늘은 그럼 무엇을 학습하는가...!

 

바로 Azure 앱(App) 서비스와

컨테이너(Container)입니다!

 

첫 번째로 설명드릴 내용은 앱 서비스입니다.

여러분 앱(App)이란 단어는 매우 친숙하지죠?

 

여러분이 컴퓨터, 스마트폰 등에서 쓰는

프로그램을 말하는 것도 이미 아실 겁니다.

 

이러한 앱을 만들고

사람들이 쓸 수 있도록 배포하고

관리할 수 있는 플랫폼을 Azure는 역시나 제공하고 있습니다.

 

이것이 바로 Azure 앱 서비스입니다.

 

우와, 간만에 이해하기 쉬운 내용 같네요?

 

그런데, 그럼 앱을 왜 굳이 로컬 환경이 아니라

Azure에서 만들고 무슨 장점이 있길래?

라는 의문이 생기실 수 있는데요!

 

바로 앱을 개발/배포/관리하면서

클라우드 서비스의 이점을 활용가능하기 때문입니다.

 

그 중 몇가지를 소개하자면

 

1. 클라우드 기반이므로 개발자는 앱 개발에 필요한

컴퓨팅 자원을 자유롭게 확장하거나 축소할 수 있습니다.

또한, 앱 배포 이후 사용자에 의해 증감하는 트래픽에도

자유롭게 자원을 확장/축소하는 유연성을 제공하는 것이죠.

 

2. 클라우드 기반의 고가용성을 통해 높은 안정성을 확보할 수 있고

또한, 여러 높은 수준의 보안과 암호화 기술을 지원받을 수 있습니다.

 

3. 다양한 언어와 플랫폼을 지원한다는 점입니다.

.NET(C#, F#), Java, Node.js, PHP, Python, Ruby 등의

다양한 언어를 지원할 뿐만 아니라, 앱 개발에 사용되는

ASP.NET, Spring, Express 등 다양한 프레임워크도 지원합니다.

 

4. 관리자 포털을 통해 앱 관리가 쉽고 클라우드 서비스의

특징인 종량제 비용체계로 경제적인 이점이 있습니다.

 

위와 같은 여러 장점을 가진 Azure 앱 서비스를 통해서

개발자는 웹, 모바일에서 사용할 수 있는 앱

API, 서버리스 애플리케이션 등을 개발/배포/관리하지요.

 

 

 

 

다음으로 소개해드릴 내용은 컨테이너(Container)입니다.

 

Azure 컨테이너는 서비스는

컨테이너를 배포, 관리, 스케일링 할 수 있는 서비스를 말합니다.

 

컨테이너? 이게 뭘까요?

그 배에 올리는 철제 사각 컨테이너만 떠오르시죠?

 

컨테이너를 알기위해선 가상화의 개념을 알아야합니다.

 

이전 가상 머신 학습 과정에서 가상화에 대한 개념을 학습한 적이 있는데요.

가상화에 대하여 다시한번 보겠습니다.

 

가상화란 컴퓨팅 자원 (CPU, 메모리, 디스크 등)을

가상의 컴퓨터 환경에서 사용하고 이를 통해

하나의 컴퓨터에서 여러 개의 가상 컴퓨터를 생성하고

각각의 컴퓨터에서 여러개의 운영체제(OS),

애플리케이션을 실행할 수 있는 것을 말합니다.

 

컨테이너 또한 가상화로 만들 수 있는 예시 중에 하나입니다.

 

이전에 학습한 가상 머신의 경우 하나의 컴퓨터로 여러 컴퓨터를 만들고

각각 사용자가 원하는 운영체제를 설정할 수 있었는데요.

(제가 실습에서 운영체제를 윈도우로 설정해서 만들기도 했죠!)

 

그러므로 하나의 컴퓨터(Host Machine)의 운영체제와

여러 컴퓨터(Guest Machine)이 다른 운영체제를 가질 수 있고

이를 통해 여러 독자적인 운영체제와 환경을 가집니다.

하지만 아쉽게도 이런 경우 용량과 자원이 많이 소모되죠.

 

그에 반해 , 컨테이너는 독자적인 운영체제가 없고

Host Machine 운영체제의 지원을 받아 애플리케이션만 실행합니다.

비록 다양하고 독자적인 운영체제는 없고

오직 Host Machine의 동일한 운영체제로만 사용하지만

빠르게 사용할 수 있다는 장점이 있습니다.

 

다시말해, 컨테이너는 가상 머신 처럼 운영 체제를 가상화하는 것이 아니라

서비스 운영을 위한 환경을 가상화한다고 이해하시면 됩니다.

 

이해가 쉽지 않지만, 아래 그림을 보며 위의 글을 읽으며

한줄한줄 차분히 이해해보도록 해봅시다...!

 

 

가상 머신과 컨테이너의 비교 (출처 : redhat.com)

 

 

구성을 살펴보면 컨테이너는 파일(소스코드, 라이브러리 등)을

모아놓은 일종의 묶음(패키지) 상품입니다.

 

실질적으로 애플리케이션을 실행할 때

각기 다른 운영체제 환경에서 실행할 일은 적기때문에

가볍고 같은 환경에서 동일하게 동작하는 컨테이너는

Host Machine과 운영체제만 같다면 어디서든 쉽게 실행이 가능하니

테스트 및 배포 등을 빠르게 진행할 수 있다는 점이 매력적이죠.

 

 

 

 

이때, 컨테이너를 실행하고 관리하는 소프트웨어를

컨테이너 런타임이라고 하는데 가장 대표적인 것이

그 유명하디 유명한 Docker입니다.

 

물론 처음들어보는 분도 많으실 겁니다..

아는사람한테만 유명한거겠죠 하하하하ㅏㅏㅏ

 

 

사실상 Docker가 등장하기 전까지는

컨테이너의 개념과 구현이 어려워 발전하지 못했었는데

Docker의 등장이후 가상 머신을 대체하는 용도로 빠르게 상용화되었답니다.

 

Docker를 학습하다보면 쿠버네티스(Kubernetes)란 용어를 또 접하게 되는데요...

산 넘어 산이 더 높고 또 넘으면 더 높네요.

 

쿠버네티스는 쉽게 말해 컨테이너 런타임의 일종이면서

컨테이너 런타임을 통해 컨테이너를 다루는 도구라고 할 수 있습니다.

이러한 쿠버네티스는 컨테이너의 분산과 배치, 컨테이너 교체 등의

일을 수행하는데 이것을 컨테이너 오케스트레이션일고 합니다.

(개념은 이정도만 아시고.. 나중에 중급/상급자 과정에서

기회가 된다면 다루어보도록 하겠습니다)

 

Anyway!!! 

 

Azure 컨테이너 서비스는

Azure Container Instances와 Azure 쿠버네티스 서비스 등

다양한 컨테이너 실행 환경을 제공할 뿐만 아니라

 

스케일링의 간판함, 보안, 관리 편의성, 지속적인 통합 및 배포 등의

장점을 제공하고 있습니다.

 

이번 시간은 여기까지입니다.

 

초반부에 App은 쉬웠는데

후반부에 컨테이너의 개념은 꽤나 어려우실 수 있습니다.

 

사실 Azure가 제공하는 여러 핵심 서비스와

구독/보안/비용에 대한 핵심 개념을 공부하는

초보자에게 컨테이너는 어려운 개념이 당연합니다.

 

너무 어려우시면, 앞으로 익숙해질 수 있는

시간과 기회가 분명 존재 할 것이기에

 

컨테이너는 운영체제를 관리하지 않아도 되는

간단한 가상화 환경이다! 이정도만 반드시 알고가시면 좋겠네요.

 

다음 시간에는 Azure Container Instances에서

Docker 컨테이너를 만들고 배포하는 실습을 해볼겁니다.

 

이번에 이론 공부한 것의 간단한 실습으로

조금은 쉽게 다가오실 수 있는 내용으로 구성해보겠습니다.

 

그럼 모두 좋은하루되시고,

다음 시간에 뵙겠습니다!

 

 

 

 

구독과 좋아요는 제게 큰 힘이 됩니다 :)

 

728x90
LIST