클라우드 컨테이너 | 8. 가상 머신 Vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버 상위 36개 답변

당신은 주제를 찾고 있습니까 “클라우드 컨테이너 – 8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 IBM Korea 이(가) 작성한 기사에는 조회수 4,062회 및 좋아요 67개 개의 좋아요가 있습니다.

클라우드 컨테이너 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버 – 클라우드 컨테이너 주제에 대한 세부정보를 참조하세요

클라우드 가이드북 다운받기: https://ibm.biz/BdqC6L
코로나19는 기업의 디지털 혁신을 수년간 앞당겼지만
디지털 전환은 결코 쉬운 과제가 아닙니다.
IBM은 디지털 전환 과제를 고민하는 수많은 기업에게 도움을 드리고자
다양한 산업, 클라우드, 데이터/AI 영역에서 최고의 역량과 경험을 가진
기술 전문가 그룹을 구성했습니다.
산업에 대한 이해를 바탕으로 디지털 기업을 구현하기 위한
전략 수립부터 구현, 운영에 이르기까지 고객이 궁금해하는 30문 30답을
가이드북 형태로 제공해 드립니다. https://ibm.biz/BdqC6L
클라우드 네이티브 기업으로 가는 여정을 IBM 전문가들과 함께 하시기 바랍니다.
전문가 30문 30답 전체 보기
– Cloud 18편 –
1.디지털 혁신을 위해 무엇을 준비해야 하나?
https://www.youtube.com/watch?v=w57y869yfa4
2. 하이브리드 멀티 클라우드를 위한 접근 전략
https://www.youtube.com/watch?v=Twy_ZkEUgvc
3. 컨테이너는 클라우드 여정을 위한 디딤돌입니다
https://www.youtube.com/watch?v=oa4-FqC_HYU
4.리스크를 최소화하는 컨테이너 전환 방식은?
https://www.youtube.com/watch?v=kvj4yNrT200
5. 재개발없이 애플리케이션을 컨테이너화하는 방식
https://www.youtube.com/watch?v=BkBLy5ADXVY
6. 모든 애플리케이션을 컨테이너화할 수 있나요?
https://www.youtube.com/watch?v=wWqehjuzhvs
7. 예전부터 써온 컨테이너 기술, 지금은 뭐가 다르죠?
https://www.youtube.com/watch?v=0bUQV7Kk6Ds
8. 가상 머신 vs. 컨테이너의 차이는?
https://www.youtube.com/watch?v=QrpFYnv5oNg
9. 클라우드 오픈소스 도입 시 고려사항
https://www.youtube.com/watch?v=jHnaD0nY5c4
10. 컨테이너 전환 전에 꼭 확인하세요 – 소프트웨어
https://www.youtube.com/watch?v=ihmJfMUoTsI
11. 컨테이너 전환 전에 꼭 확인하세요! – CI/CD 툴체인
https://www.youtube.com/watch?v=vzgwH3MQS78
12. 컨테이너 보안 어떻게 해야 하나?
https://www.youtube.com/watch?v=-pxdAX0Imgc
13. 컨테이너 전환 전에 꼭 확인하세요! – 중앙집중식 Config 관리
https://www.youtube.com/watch?v=_uwVi-alM4k
14. 컨테이너 인프라 선택 기준
https://www.youtube.com/watch?v=r8xf_4KU6fQ
15. 컨테이너 환경을 위한 운영 관리 팁
https://www.youtube.com/watch?v=BLunN7PbDZg
16. 컨테이너 환경을 위한 운영관리 모니터링 방안
https://www.youtube.com/watch?v=5fg488Q4anc
17. 컨테이너 환경에서 중요한 4가지 역할
https://www.youtube.com/watch?v=a-p9Manv4cw
18. 컨테이너라이제이션, 비용 절감에 도움 되나요?
https://www.youtube.com/watch?v=EuSrpoyt6MA

– AI 12편 –
1. AI를 활용하여 일하는 방식을 바꾸세요
https://www.youtube.com/watch?v=vU_1IsHkg9s
2. Data \u0026 AI 전문가가 꼽은 AI 성공사례 (항공사 편)
https://www.youtube.com/watch?v=YAk-SBexXe8
3. Data \u0026 AI 전문가가 꼽은 AI 성공사례 (금융지주사 편)
https://www.youtube.com/watch?v=GJWzzAdZDAg
4. Data \u0026 AI 전문가가 꼽은 AI 성공사례 (제과업계 편)
https://www.youtube.com/watch?v=cPwzax7jbVM
5. 인공지능 AI 프로젝트 성패, 데이터에 달렸다
https://www.youtube.com/watch?v=Fo9fp_4faA0
6. 데이터 카탈로그, 신뢰할 수 있는 데이터 확보의 지름길
https://www.youtube.com/watch?v=09kSUYWlLK8
7. 기업이 원하는 AI 인재는? | Data \u0026 AI 사례와 도전과제
https://www.youtube.com/watch?v=kjVqenr77n8
8. 조직 내 AI 인재 양성, 어떻게 하나요?
https://www.youtube.com/watch?v=_zjy42YrgLA
9. AI가 블랙박스라고? eXplainable AI (설명가능한 AI)를 소개합니다
https://www.youtube.com/watch?v=z0kNZcVyD9M
10. eXplainable AI (설명가능한 AI)를 지금 바로 업무에 적용하려면?https://www.youtube.com/watch?v=EGE9RU7Uyxw
11. 데이터, 역량, 신뢰 – AI 도전과제를 극복하기 위한 방안은?
https://www.youtube.com/watch?v=vbGNWTylKOs
12. IBM이 바라보는 인공지능의 미래
https://www.youtube.com/watch?v=L2GVNvm34Bk

클라우드 컨테이너 주제에 대한 자세한 내용은 여기를 참조하세요.

컨테이너란? – Google Cloud

컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지입니다. 컨테이너는 이러한 방식으로 운영체제를 가상화하며 프라이빗 데이터 …

+ 여기에 자세히 보기

Source: cloud.google.com

Date Published: 10/29/2021

View: 2066

컨테이너 기술 소개 – 하이브리드 클라우드 핵심 – 오픈나루

최근 주목을 받고있는 차세대 가상화 기술이 “ 컨테이너 ”입니다. 컨테이너 기반의 오픈소스 플랫폼들은 하이브리드 클라우드 구현과 DevOps 그리고 마이크로서비스 …

+ 여기에 보기

Source: www.opennaru.com

Date Published: 9/13/2022

View: 8628

컨테이너란? – 대한민국 – IBM

컨테이너는 데스크탑, 기존의 IT 또는 클라우드 등 어디서나 실행될 수 있도록 애플리케이션 코드가 해당 라이브러리 및 종속 항목과 …

+ 여기에 보기

Source: www.ibm.com

Date Published: 6/4/2022

View: 968

클라우드 가상화 기술 정리 3 (컨테이너 / 도커 Docker / 구글 쿠 …

클라우드 가상화 기술 정리 3 (컨테이너 / 도커 Docker / 구글 쿠버네티스 Kubernetes / 오케스트레이션 / 하이퍼바이저 / 커널 / 오픈소스 / MS …

+ 여기에 더 보기

Source: blog.naver.com

Date Published: 9/16/2022

View: 6781

클라우드 확산 따라 주목받는 ‘컨테이너’ – 데이터넷

클라우드가 확산됨에 따라 컨테이너(Container) 기술이 주목받고 있다. 가상화 기술의 일종인 컨테이너는 애플리케이션 실행에 필요한 파일과 …

+ 여기에 더 보기

Source: www.datanet.co.kr

Date Published: 5/28/2022

View: 5302

[Docker] 클라우드, 가상화, 컨테이너 내용 총정리 – Archive

[Docker] 클라우드, 가상화, 컨테이너 내용 총정리. zelnut 2021. 4. … 가상화는 “기술” 클라우드 컴퓨팅은 가상화 기술을 기반으로 한 “서비스” …

+ 여기를 클릭

Source: hiaurea.tistory.com

Date Published: 2/23/2021

View: 3550

컨테이너란? | Microsoft Azure

컨테이너의 낮은 오버헤드 및 고밀도 덕분에 많은 컨테이너를 같은 가상 머신 내에서 호스트할 수 있으며 클라우드 네이티브 애플리케이션을 제공하는 데 컨테이너가 적합 …

+ 여기에 자세히 보기

Source: azure.microsoft.com

Date Published: 2/25/2021

View: 7797

컨테이너화란? – Red Hat

각 컨테이너에는 개별 운영 체제가 필요하지 않으며 애플리케이션은 베어 메탈, 클라우드, 가상 머신(VM)까지 어떤 인프라에서도 동일하게 실행됩니다 …

+ 자세한 내용은 여기를 클릭하십시오

Source: www.redhat.com

Date Published: 1/29/2021

View: 3868

컨테이너란? | NetApp

컨테이너는 개발자의 로컬 노트북부터 온프레미스 데이터 센터 및 클라우드에 이르는 여러 환경에서 애플리케이션을 구축, 테스트, 구현 및 재구현할 수 있는 효율적인 …

+ 자세한 내용은 여기를 클릭하십시오

Source: www.netapp.com

Date Published: 8/22/2021

View: 9262

주제와 관련된 이미지 클라우드 컨테이너

주제와 관련된 더 많은 사진을 참조하십시오 8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버
8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버

주제에 대한 기사 평가 클라우드 컨테이너

  • Author: IBM Korea
  • Views: 조회수 4,062회
  • Likes: 좋아요 67개
  • Date Published: 2020. 9. 13.
  • Video Url link: https://www.youtube.com/watch?v=QrpFYnv5oNg

Google Cloud

컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지입니다. 컨테이너는 이러한 방식으로 운영체제를 가상화하며 프라이빗 데이터 센터에서 퍼블릭 클라우드 또는 개발자의 개인 노트북에 이르기까지 어디서나 실행됩니다. Gmail에서 YouTube, Google 검색에 이르기까지 Google의 모든 제품은 컨테이너에서 실행됩니다. 개발팀은 컨테이너화를 통해 더욱 신속하게 작업을 진행하고, 효율적으로 소프트웨어를 배포하며, 전례 없는 수준의 확장성을 확보할 수 있게 되었습니다. 그동안 컨테이너화된 워크로드를 실행하는 방법에 관해 많은 경험을 쌓으면서 Google은 커뮤니티에 계속 이 지식을 공유해 왔습니다. 초창기에 cgroup 기능을 Linux 커널에 제공한 것부터 내부 도구의 설계 소스를 Kubernetes 프로젝트로 공개한 것까지 공유의 사례는 다양합니다.

컨테이너란? – 대한민국

이 안내서에서는 클라우드 컴퓨팅에서 컨테이너의 중요성을 살펴보고, 주요 장점을 집중해서 설명하며, Docker, Kubernetes, Istio 및 Knative 등에서 관련 기술의 새로운 최신 에코시스템을 둘러봅니다.

컨테이너란?

컨테이너는 데스크탑, 기존의 IT 또는 클라우드 등 어디서나 실행될 수 있도록 애플리케이션 코드가 해당 라이브러리 및 종속 항목과 함께 패키징되어 있는 소프트웨어 실행 유닛입니다.

이를 수행하기 위해 컨테이너는 OS의 기능(Linux 커널의 경우, 이름 공간 및 cgroups 프리미티브)을 활용하여 프로세스를 격리하고 해당 프로세스가 액세스할 수 있는 CPU, 메모리 및 디스크의 양을 제어하는 운영 체제(OS) 가상화의 형식을 활용합니다.

가상 머신과는 달리 컨테이너는 모든 인스턴스에 게스트 OS를 포함할 필요가 없으며, 그 대신 호스트 OS의 기능과 리소스를 간편하게 활용할 수 있습니다. 따라서 컨테이너는 소형이고, 빠르며, 이식성이 뛰어납니다.

컨테이너는 FreeBSD Jails 및 AIX Workload Partitions 등의 버전으로 수십 년 전에 처음 소개되었지만, 최신 개발자들 중 대부분은 Docker의 소개에 따라 2013년에 최신 컨테이너 시대가 도래했다고 기억합니다.

컨테이너 vs. 가상 머신(VM)

컨테이너를 보다 잘 이해하는 한 가지 방법은 기존의 가상 머신(VM)과의 차이점을 살펴보는 것입니다. 온프레미스에 있건 혹은 클라우드에 있건 이와 무관하게, 기존의 가상화에서는 하이퍼바이저를 활용하여 물리적 하드웨어를 가상화합니다. 그리고 각각의 VM에는 애플리케이션, 이와 연관된 라이브러리 및 종속 항목과 함께 OS가 실행해야 하는 하드웨어의 가상 사본인 게스트 OS가 포함됩니다.

기반 하드웨어를 가상화하는 대신, 컨테이너는 운영 체제(일반적으로 Linux)를 가상화함으로써 각 개별 컨테이너에는 오직 애플리케이션과 함께 해당 라이브러리와 종속 항목만 포함됩니다. 게스트 OS의 부재는 컨테이너가 경량이며 빠르고 포터블한 이유를 설명합니다.

이러한 비교를 좀더 자세히 살펴보려면 “컨테이너 vs. VM: 차이점”을 참조하세요.

컨테이너의 이점

특히 VM과 비교하여, 컨테이너의 주요 장점은 경량화와 이식성을 제공하는 추상화 레벨을 제공하는 것입니다.

경량: 컨테이너는 시스템 OS 커널을 공유함으로써 애플리케이션마다 전체 OS 인스턴스가 필요하지 않으며, 리소스에서 컨테이너 파일의 소형화와 간편함을 제공합니다. 특히 가상 머신과 비교하여 더 작아진 크기로 덕분에 수평 확장되는 클라우드 네이티브 애플리케이션을 보다 잘 지원하며 신속한 스핀업이 가능합니다.

컨테이너는 시스템 OS 커널을 공유함으로써 애플리케이션마다 전체 OS 인스턴스가 필요하지 않으며, 리소스에서 컨테이너 파일의 소형화와 간편함을 제공합니다. 특히 가상 머신과 비교하여 더 작아진 크기로 덕분에 수평 확장되는 클라우드 네이티브 애플리케이션을 보다 잘 지원하며 신속한 스핀업이 가능합니다. 이식성 및 플랫폼 독립성: 컨테이너가 모든 종속 항목들을 자신과 함께 전달하므로, 일단 소프트웨어를 한 번만 작성하면 랩탑, 클라우드 및 온프레미스 컴퓨팅 환경에서 이를 재구성하지 않고도 바로 실행할 수 있습니다.

컨테이너가 모든 종속 항목들을 자신과 함께 전달하므로, 일단 소프트웨어를 한 번만 작성하면 랩탑, 클라우드 및 온프레미스 컴퓨팅 환경에서 이를 재구성하지 않고도 바로 실행할 수 있습니다. 최신형 개발 및 아키텍처 지원: 플랫폼 간의 배치 이식성/일관성 및 소형 크기의 조합 덕분에, 컨테이너는 최신형 개발에 매우 이상적입니다. 또한 DevOps, 서버리스 및 마이크로서비스 등의 빌드되어 있는 애플리케이션 패턴은 소규모 증분의 일반 코드 배치입니다.

플랫폼 간의 배치 이식성/일관성 및 소형 크기의 조합 덕분에, 컨테이너는 최신형 개발에 매우 이상적입니다. 또한 DevOps, 서버리스 및 마이크로서비스 등의 빌드되어 있는 애플리케이션 패턴은 소규모 증분의 일반 코드 배치입니다. 활용도 향상: 이전의 VM처럼, 컨테이너를 사용하여 개발자와 운영자는 물리적 시스템의 CPU 및 메모리 활용도를 향상시킬 수 있습니다. 컨테이너의 보다 큰 장점은 마이크로서비스 아키텍처도 허용하므로 애플리케이션 컴포넌트를 보다 미세하게 배치 및 스케일링할 수 있다는 점입니다. 이는 단일 컴포넌트의 과중한 로드로 인해 전체 모놀리식 애플리케이션을 확장해야 하는 데 대한 매력적인 대안이 될 수 있습니다.

최근의 IBM 설문조사(PDF, 1.4MB)에서 개발자와 IT 경영진들은 컨테이너 사용의 많은 다른 장점들을 보고했습니다. 아래 대화식 툴을 사용하여 이를 살펴봅니다.

전체 보고서 다운로드, 엔터프라이즈의 컨테이너(PDF, 1.4MB)

컨테이너에 대한 유스케이스

컨테이너는 특히 클라우드 환경에서 점점 더 두각을 나타내고 있습니다. 많은 기업들은 심지어 자체 애플리케이션과 워크로드에 대한 범용 컴퓨팅 플랫폼으로서 VM의 대용으로 컨테이너를 고려하고 있습니다. 그러나 이러한 광범위한 분야 내에서, 컨테이너가 특히 의미가 있는 주요 유스케이스가 있습니다.

마이크로서비스: 컨테이너는 소형이고 경량입니다. 따라서 이는 애플리케이션이 다수의 느슨하게 결합되고 독립적인 배치가 가능한 소형 서비스들로 구성되는 마이크로서비스 아키텍처에 매우 적절합니다.

컨테이너는 소형이고 경량입니다. 따라서 이는 애플리케이션이 다수의 느슨하게 결합되고 독립적인 배치가 가능한 소형 서비스들로 구성되는 마이크로서비스 아키텍처에 매우 적절합니다. DevOps: 아키텍처로서 마이크로서비스와 플랫폼으로서 컨테이너의 결합은 소프트웨어의 구축, 장착 및 실행 방안으로서 DevOps를 채택하는 많은 팀들의 공통 기반입니다.

아키텍처로서 마이크로서비스와 플랫폼으로서 컨테이너의 결합은 소프트웨어의 구축, 장착 및 실행 방안으로서 DevOps를 채택하는 많은 팀들의 공통 기반입니다. 하이브리드, 멀티클라우드: 컨테이너가 랩탑, 온프레미스 및 클라우드 환경의 어디서나 일관되게 실행될 수 있으므로, 이는 기업들이 자체 데이터 센터와 결합하여 다수의 혼합형 퍼블릭 클라우드에서 운영을 수행하는 하이브리드 클라우드 및 멀티클라우드 시나리오의 이상적인 기반 아키텍처입니다.

컨테이너가 랩탑, 온프레미스 및 클라우드 환경의 어디서나 일관되게 실행될 수 있으므로, 이는 기업들이 자체 데이터 센터와 결합하여 다수의 혼합형 퍼블릭 클라우드에서 운영을 수행하는 하이브리드 클라우드 및 멀티클라우드 시나리오의 이상적인 기반 아키텍처입니다. 애플리케이션 현대화 및 마이그레이션: 애플리케이션 현대화의 가장 일반적인 접근 방법 중 하나는 클라우드로의 마이그레이션이 가능하도록 이를 컨테이너화함으로써 시작됩니다.

컨테이너화

컨테이너를 활용하려면 소프트웨어를 서로 다르게 설계 및 패키징해야 하며, 이러한 프로세스를 통상적으로 컨테이너화라고 합니다.

애플리케이션을 컨테이너화하는 경우, 해당 프로세스에는 이와 관련된 환경 변수, 구성 파일, 라이브러리 및 소프트웨어 종속 항목과 함께 애플리케이션을 패키징하는 작업이 포함됩니다. 최종 결과물은 이후에 컨테이너 플랫폼에서 실행될 수 있는 컨테이너 이미지입니다. 자세한 정보를 얻으려면 아래의 “컨테이너화 설명” 동영상(08:09)을 시청하세요.

Kubernetes의 컨테이너 오케스트레이션

기업들이 종종 최신형 클라우드 네이티브 아키텍처의 일부로서 컨테이너를 채택하기 시작하면서, 개별 컨테이너의 단순성은 분산형 시스템에서 수백 개(심지어 수천 개)의 컨테이너를 관리하는 복잡성과 충돌하기 시작했습니다.

이러한 문제를 해결하기 위해, 다음을 포함하여 해당 라이프사이클 전체에서 방대한 볼륨의 컨테이너를 관리하는 방법으로서 컨테이너 오케스트레이션이 부상하게 되었습니다.

프로비저닝

중복성

상태 모니터링

리소스 할당

스케일링 및 로드 밸런싱

물리적 호스트 간의 이동

이러한 문제들의 해결을 지원하고자 많은 컨테이너 오케스트레이션 플랫폼(예: Apache Mesos, Nomad 및 Docker Swarm)이 구축되었지만, 2014년에 Google에서 소개한 오픈 소스 프로젝트인 Kubernetes는 순식간에 가장 인기 있는 컨테이너 오케스트레이션 플랫폼의 자리를 차지했습니다. 또한 이는 업계의 대부분이 관련 표준화 작업을 수행하는 플랫폼이기도 합니다.

Kubernetes를 이용하여 개발자와 운영자는 YAML 파일을 통해 전체 컨테이너 환경의 원하는 상태를 선언할 수 있습니다. 그 이후에는, Kubernetes가 해당 애플리케이션이나 워크로드에 대한 지정된 수의 인스턴스 배치, 실패 시에 해당 애플리케이션의 재부팅, 로드 밸런싱, 자동 스케일링, 제로 다운타임 배치 등을 포함한 활동을 통해 해당 상태를 설정 및 유지하는 온갖 힘든 작업들을 수행합니다.

Kubernetes에 대해 자세히 알아보려면, Kubernetes의 개요에 대한 Sai Vennam의 설명을 제시하는 아래의 동영상(10:59)을 시청하세요.

Kubernetes는 현재 Linux Foundation의 후원을 받는 벤더 애고니스틱 산업 그룹인 CNCF(Cloud Native Computing Foundation)에서 운영하고 있습니다.

Istio, Knative 및 확장형 컨테이너 에코시스템

컨테이너가 애플리케이션의 패키징과 실행을 위한 인기 있는 방법으로 지속적으로 성장함에 따라, 프로덕션 유스케이스를 강화하고 확장하도록 설계된 툴과 프로젝트의 에코시스템 또한 지속적인 증가세를 보이고 있습니다. Kubernetes 외에도, 컨테이너 에코시스템에서 가장 인기 있는 2개의 프로젝트는 바로 Istio 및 Knative입니다.

Istio

개발자가 컨테이너를 활용하여 마이크로서비스 아키텍처를 빌드하고 실행하므로, 관리 문제는 이제 개별 컨테이너의 라이프사이클 고려사항을 벗어나서 엄청난 수의 소형 서비스(이를 종종 “서비스 메시”라고 함)들이 서로 간에 연결되고 서로 간에 관련되는 방식으로 이동하고 있습니다. Istio는 개발자가 검색, 트래픽, 모니터링, 보안 등과의 연관된 문제들을 보다 손쉽게 관리할 수 있도록 만들어졌습니다. Istio에 대해 자세히 알아보려면, “Istio의 정의”를 살펴보고 아래의 “Istio 설명” 동영상(05:06)을 시청하세요.

Knative

서버리스 아키텍처 역시 특히 클라우드 네이티브 커뮤니티 내에서 지속적으로 늘어나는 인기를 실감하고 있습니다. Knative의 엄청난 가치는 컨테이너형 서비스를 서버리스 기능으로 배치할 수 있는 능력입니다.

항상 실행되면서 필요 시에 응답(서버 작동과 유사함)하는 대신, 서버리스 기능은 “제로(0)로 스케일링”될 수 있습니다. 즉, 이는 호출되지 않는 한 전혀 실행되지 않습니다. 수만 개의 컨테이너에 적용되는 경우, 이 모델은 엄청난 양의 컴퓨팅 파워를 절감할 수 있습니다.

Knative에 대해 자세히 알아보려면 아래의 “Knative 정의” 동영상(07:58)을시청하세요.

컨테이너 및 IBM Cloud

IBM Cloud 컨테이너 서비스는 클라우드로의 여정을 촉진하고 가속화하기 위해 오픈 소스 기술을 기반으로 구축되었습니다. 지속적 통합 및 지속적 딜리버리(CI/CD) 툴을 사용하여 컨테이너형 애플리케이션을 빌드합니다. 관리형 Red Hat OpenShift 또는 Kubernetes 서비스를 사용하여 컨테이너를 오케스트레이션합니다. 그리고 IBM Cloud Paks에서 컨테이너형 IBM 미들웨어와 오픈 소스 컴포넌트를 사용하여 기존 애플리케이션을 현대화하세요.

IBM Cloud의 컨테이너에 대해 자세히 알아봅니다.

IBM ID에 등록하고 IBM Cloud 계정을 만드세요.

클라우드 확산 따라 주목받는 ‘컨테이너’

설치 OS 영향 없이 동일한 환경 이용…민첩한 서비스 개발·배포 가능

클라우드가 확산됨에 따라 컨테이너(Container) 기술이 주목받고 있다. 가상화 기술의 일종인 컨테이너는 애플리케이션 실행에 필요한 파일과 라이브러리(lib)를 패키지화한 후, 필요할 때마다 이를 실행시켜 동일한 환경을 이용할 수 있도록 하는 역할을 한다.

하드웨어를 기반으로 하는 서버 가상화 등은 가상머신(VM)을 이용해 게스트(Guest)OS를 설치하고 애플리케이션을 구동해야 했던 것과 달리, 컨테이너는 OS에 영향 받지 않고 실행 파일과 라이브러리만 가상화하기 때문에 VM 대비 가볍다는 장점이 있다.

이로 인해 하이퍼바이저(Hypervisor)나 게스트OS로 인한 오버헤드(Overhead)가 없으며, 컨테이너를 구동하면 안에 담긴 애플리케이션이 바로 시작되기 때문에 빠른 서비스 제공이 가능하다. 또한 인스턴스 증가 시 추가적인 설정을 필요로 하지 않는다는 것도 강점이다. 이처럼 컨테이너 기술은 민첩한 서비스 개발·배포를 위한 클라우드 환경에 적합하기 때문에, 클라우드가 성장하면서 빠르게 확산되고 있다.

민첩한 서비스 개발·배포 지원

컨테이너는 제품 수출입 시에 활용하는 철제 포장 용기인 ‘컨테이너’와 역할이 같다. 애플리케이션 실행에 필요한 파일과 라이브러리 등을 간편하게 패키지화할 수 있으며, 자유롭게 이동시킬 수 있다. 이식성도 뛰어나다.

개발과 배포에 대한 장벽이 사라진 만큼 빠른 개발·서비스 환경을 구축할 수 있다. 패키지에 OS가 포함되지 않기에 크기가 작으며, 여러 대의 호스트에 포팅하는 것도 용이하다.

컨테이너를 구현하는 기술에는 여러 가지가 있지만, 가장 대표적인 것이 도커(Docker)다. 도커는 이미지 생성과 배포·관리에 특화된 기능을 제공한다. 이미지 버전 관리도 제공하며, 중앙 저장소에 이미지를 올리고 받을 수도 있다.

이는 서비스 운영 환경에도 혁신을 가져왔다. 일일이 서버에 사용 환경을 설정하는 것 대신, 운영 환경을 이미지로 생성해 서버에 배포하는 방식을 활용할 수 있게 됐기 때문이다. 서비스가 업데이트 됐을 시에도 운영 환경 자체를 변경하지 않고, 이미지를 새로 생성해 배포할 수 있어 간편하다.

이 같은 특징으로 인해 도커 컨테이너는 클라우드 환경에서 핵심적인 기능으로 자리 잡게 됐으며, 아마존웹서비스(AWS), 마이크로소프트 애저(MS Azure), 구글 클라우드 플랫폼(GCP), IBM 클라우드 등 주요 퍼블릭 클라우드 서비스 사업자들도 공식적으로 도커를 지원한다.

국내 기업들도 컨테이너 기술 개발에 한창이다. SK(주) C&C는 클라우드 컨테이너 서비스 ‘클라우드 제트 서비스 플랫폼(Cloud Z Service Platform)’을 출시했으며, 나무기술은 컨테이너 기반의 멀티 클라우드 관리 플랫폼 ‘칵테일’을 통해 국내외 시장 공략에 적극 나서고 있다. 티맥스오에스는 컨테이너 기반 가상화를 지원하는 클라우드 플랫폼 ‘프로존’을 선보였다.

▲ 쿠버네티스 아키텍처

관리 자동화 방안 고안해야

컨테이너 기술에도 단점은 존재한다. 호스트 운영체제의 커널을 공유하기 때문에 호스트 운영체제에 실행 환경이 묶이는 것과 생성된 컨테이너 수가 작을 경우 운영자가 관리하기 쉽지만 그 수가 많아질 경우 운영자가 일일이 컨트롤하기 어렵다는 것이다. 이때 컨테이너 관리·오케스트레이션 도구를 별도로 이용하기도 한다.

도커와 같은 컨테이너 기술은 필요한 애플리케이션과 라이브러리를 컨테이너에 담아 쉽게 이동시키고 어디서든지 간단하게 실행할 수 있는 도구와 환경을 제공했다. 그러나 기업에서 단순히 하나의 컨테이너만 활용하는 것은 아니며, 엔터프라이즈급의 규모일 경우 여러 대의 호스트에서 수많은 컨테이너들이 이용된다.

엔드 유저에게 서비스가 이뤄지려면 이들이 서로 호출되고 엮이는 과정이 필요하지만, 수가 많으면 많을수록 사람이 이를 관리하는 것은 불가능해진다. 이 같은 문제를 해결하기 위해 등장한 것이 쿠버네티스(Kubernetes)다.

쿠버네티스는 구글이 도커 컨테이너를 관리하기 위해 개발했으며, 오픈소스로 공개한 기술이다. 쿠버네티스는 멀티 호스트상의 멀티 컨테이너를 조직화하고 연결하기 위한 스케줄링, 셀프 힐링, 오토 스케일링, 서비스 디스커버리, 로드밸런싱 등의 역할을 자동으로 처리해줌으로써 빠른 애플리케이션 서비스가 이뤄질 수 있도록 돕는다.

저작권자 © 데이터넷 무단전재 및 재배포 금지

[Docker] 클라우드, 가상화, 컨테이너 내용 총정리

들어본 용어는 많고 뭔가 정리가 될 듯 말듯 머릿속에 떠다니는 많은 개념들을 총정리 해봤다.

가상화는 “기술”

클라우드 컴퓨팅은 가상화 기술을 기반으로 한 “서비스”

1. 가상화

1-1 가상화의 개념

가상화가 등장하기 이전에 기업의 전통적인 방식은 하나의 서버에 하나의 운영체제, 하나의 프로그램을 운영하여 각 서버가 갖고 있는 시스템 자원 중 약 50~70% 정도만 사용할 수 있었다. 즉, 물리적 서버가 갖고 있는 성능을 100% 활용해서 사용할 수 없었다. 이 과정에서 기업은 갖고 있는 물리적 서버를 최대한 효율적으로 사용하길 원했고, 각 서버가 100%의 성능을 발휘할 수 있길 원했다.

즉, 한 대의 물리적인 장비를 마치 여러 대의 장비처럼 활용 하거나, 여러 장비를 하나의 장비처럼 묶어서 사용 하기를 원했고 이로 인해 등장한 기술이 “가상화”이다.

– 가상화(Virtualization)는 물리적인 컴포넌트(Components, HW장치)를 논리적인 객체로 추상화 하는 것을 의미. 마치 하나의 장치를 여러 개처럼 동작시키거나, 반대로 여러 개의 장치를 묶어 하나의 장치인 것처럼 사용할 수 있는 기술

– 가상화의 대상이 되는 컴퓨팅 자원은 프로세서(CPU), 메모리(Memory), 스토리지(Storage), 네트워크(Network), 그래픽 처리 장치(GPU)가 있으며, 이들로 구성된 서버나 장치들을 가상화함으로써 높은 수준의 자원 사용률과 분산 처리 능력을 얻을 수 있음

1-2 가상화 기술의 종류

결국 이 기술들이 모두 클라우드 서비스에 적용되는 것이다.

(1) 서버 가상화(Server Virtualization)

가상화 개념의 시초

가상화를 가능하게 하는 하이퍼바이저(Hypervisor) 와 이 하이퍼바이저를 통해 제어되며, 각종 어플리케이션을 실행하기 위한 환경인 가상머신(Virtual Machine, VM) 으로 이루어진다.

하드웨어를 가상화하기 위해서는 하드웨어뿐만 아니라 각각의 가상머신들을 관리할 가상머신모니터(VMM: Virtual Machine Monitor)와 같은 중간 관리자가 필요한데 이를 하이퍼바이저 라고 하며 VM이 동작할 수 있는 환경을 제공한다.

* 하이퍼바이저와 컨테이너 개념은 밑에 <하이퍼바이저vs컨테이너>에서 자세히 다룬다

(2) 데스크탑 가상화 (Virtual Desktop Infrastructure, VDI)

데이터 센터의 서버에서 운영되는 가상의 PC 환경 을 의미

​물리적으로는 존재하지 않는 가상의 개별 컴퓨터로 사용자는 모니터, 키보드, 마우스, 스피커 등의 필수적인 입출력 장치만을 활용하거나 매우 단순화된 인터페이스만 가지고 컴퓨터를 활용할 수 있음

​가상의 데스크탑을 마치 로컬 시스템처럼 활용할 수 있으며, 모든 작업의 프로세싱과 저장은 데이터 센터에 위치한 서버에서 처리됨

VDI 환경에서는 언제 어디서든 네트워크만 연결이 된다면 서버에 접속하여 자신만의 PC환경을 구동시킬 수 있음. 사용자는 보통의 PC보다 5~10% 수준의 전력 소모만으로도 유사한 컴퓨팅 환경을 구현

또한 데이터가 로컬 장치가 아닌 서버에 위치하기 때문에 복원, 생성 등의 작업이 쉬워지며, 보안 측면에서도 데이터 센터급의 서비스를 보장받을 수 있음

(3) 애플리케이션 가상화 (Application Virtualization)

해당 응용 프로그램이 실행되는 운영체제로부터 응용 소프트웨어를 캡슐화 하는 기법

​이러한 캡슐화는 한 응용 프로그램이 업데이트됨에 따라 관련된 다른 응용프로그램이 동작하지 않는 부작용을 방지. 따라서 애플리케이션 관리가 수천 개에 달하는 기업의 경우, 가상화된 애플리케이션은 관리자가 배포 및 업데이트를 할 때 상대적으로 유용

바로 컨테이너가 애플리케이션 가상화를 실현한다. 기존의 VM은 컴퓨팅 인프라, 즉 서버의 가상화를 지원하는 반면, 컨테이너는 소프트웨어 애플리케이션의 가상화를 지원한다. 가상 시스템과 달리 컨테이너는 자체 운영 체제를 제공하지 않고 호스트의 OS(운영 체제)를 이용한다.(밑에서 자세히 설명)

2. 유틸리티 컴퓨팅

이처럼 가상화 도입으로 기업은 상대적으로 저렴한 비용을 들이면서 성능을 구현할 수 있게 됐다. 그러나 가상화 구축은 여전히 물리적 서버를 구매해야 했고, 이 때 인터넷데이터센터(IDC)를 보유한 기업들은 자신들의 데이터센터를 다른 기업에 빌려주는 유틸리티 컴퓨팅 서비스를 제공했다.

– 유틸리티 컴퓨팅 (Utility Computing)이란 기업이 IT 시스템을 직접 구축하지 않고 하드웨어, 소프트웨어, 기업용 솔루션, 네트워크 서비스 등의 IT 서비스를 필요할 때마다 전기나 수도처럼 빌려서 사용하고 사용량에 따라 요금을 지불하는것을 의미한다. 서비스를 제공하는 업체가 다양한 ‘시스템 풀(Pool)’을 만들어 놓으면 기업이 그 때마다 필요에 의해 연결하여 사용할수 있다. 다만, 시스템 풀에서 제공되는 IT시스템이 완벽하게 기업의 요구 조건을 만족시킬 수는 없기 때문에 기업의 요구조건에 맞게 일부 수정이 필요하다.

* IDC는 ‘인터넷 데이터 센터’(Internet Data Center)의 준말로, 인터넷(Internet) 연결의 핵심이 되는 서버(Server)를 한 데 모아 집중시킬 필요가 있을 때 설립하는 시설을 말한다. IDC를 통해 온라인 게임의 운영에 필요한 서버 컴퓨터(Server Computer)와 네트워크(Network) 회선 등을 제공하는데, 다른 말로는 서버 호텔(Server Hotel)이라고도 부른다.

3. 클라우드 컴퓨팅

과거 1980년대 전후하여 원격지에 있는 컴퓨터와 근처에 있는 단말기 사이에 있는 수 많은 통신장비 및 네트워크를 다 그리지 않고 구름 모양을 그려서 설명을 하였다. 이후 2000년대에 클라우드 컴퓨팅이 등장하면서 이 개념을 설명하기가 애매하여 이 구름 개념을 따 와서 구름(cloud)이라고 한 것이 클라우드다.

즉, 클라우드의 의미는 컴퓨터 통신망이 복잡한 네트워크 및 서버 구성 등을 알 필요 없이 구름과 같이 내부가 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속의 컴퓨터 자원으로 자기가 원하는 작업을 할 수 있다는 것이다. 이른바 동일한 체험을, 인터넷이 연결된 어디에서나 보장해주는 것이다.

2019년 조사에 따르면 800개 기업 중 94%가 클라우드 컴퓨팅을 사용하고 있었으며, 2021년까지 전체 클라우드 인프라를 사용하는 기업은 절반 이상이 될 전망이다.

출처 : 나무위키

클라우드 컴퓨팅은 기존의 하드웨어와 이들을 연결하는 네트워크로 구성된 환경을 가상화를 통해 통합된 계산, 저장 및 처리가 가능한 환경으로 제공하는 것 으로 정의할 수 있다. 실제 하드웨어의 물리적인 레이어를 가상화함으로써, 데이터센터가 제공할 수 있는 다양한 기능들을 가진 ‘가상의 데이터센터’를 구현할 수 있다.

대부분의 작업을 온라인에 분산되어 존재하는 데이터 센터(Data Center, 이하 클라우드)에 맡겨 수행하고, 사용자의 컴퓨터는 클라우드에 접속하여 상호작용하는 단말기 역할만 하는 것 이다. 이 때문에 모든 데이터와 연산 자원이 클라우드 안에만 존재하게 되며, 이 자원을 유연하게 관리하기 위해 가상화 기술 등이 투입되게 된다.

하이퍼바이저 vs 컨테이너

자세한 내용에 들어가기 전에 내 짧은 지식을 이용하여 내 스스로를 이해시키고자 요약을 해보자면

학부 리눅스 수업에서 Mware, VirtualBox같은 하이퍼바이저를 이용하여 흔히들 사용하는 윈도우 서버 위에 Guest OS로 리눅스 서버를 올렸다. 이러한 하이퍼바이저 위에는 OS를 여러개 생성할 수 있었고, 각 OS마다 메모리나 하드디스크를 마음대로 분배할 수 있었다. 그리고 생성된 게스트 OS 중 하나가 뻑나도 다른 OS에 전혀 영향을 미치지 않았다. 즉 하이퍼바이저는 하드웨어 자원을 각각의 게스트OS에게 분할하여 위에서 설명한 서버 가상화를 완벽하게 구현할 수 있다.

그런데, 이런 서버 가상화가 개발자 입장에서는 매우 불편한 것이다. 소프트웨어를 개발하면 그 소프트웨어를 배포하기 위해서는 Binary파일과 Library파일 등 OS마다 그에 맞는 종속성 문제를 해결해야 한다. 그런데 컨테이너를 사용하면 애플리케이션과 종속 항목을 버전 관리가 쉬운 하나의 패키지로 묶어 팀 내의 여러 개발자가 쉽게 복제하고 클러스터 내의 머신으로도 간편하게 복제되도록 만들 수 있다. 즉, 개발자 입장에서는 시스템 소프트웨어 등 여러 종속성 문제에 구애받지 않고 여러 OS에 애플리케이션을 배포하며 시스템 소프트웨어에 대해서 구애받지 않고 버전관리를 할 수 있다.

1. 하이퍼바이저

1-1 하이퍼바이저의 개념

Virtual Machine Diagram. 출처 : https://medium.com/@jwyeom63/

하드웨어를 가상화하기 위해서는 하드웨어들을 관장할 뿐만 아니라 각각의 가상머신들을 관리할 가상머신모니터(VMM: Virtual Machine Monitor)와 같은 중간관리자가 필요하다. 이 중간관리자를 하이퍼바이저(Hyperviser)라고 하며, VM이 동작할 수 있는 환경을 제공 한다

하이퍼바이저는 결국 아래와 같이 정의할 수 있다.

호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어.

하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자. VMM(Virtual Machine Monitor)이라고도 불림.

* VM은 기본적으로 컴퓨터의 에뮬레이션으로, 프로그램을 실제 컴퓨터처럼 실행한다. VM들은 “하이퍼바이저”를 통해 물리적 기계(machine) 위에서 돌아간다.

1-2 하이퍼바이저 종류

(1) Type1 하이퍼바이저 : 베어메탈(Bare-metal)기반

하이퍼바이저가 하드웨어 바로 위에서 실행되는 방식 이다. 하이퍼바이저가 하드웨어를 직접 제어하기 때문에 자원을 효율적으로 사용할 수 있고, 별도의 호스트OS가 없으므로 오버헤드가 적지만 여러 하드웨어 드라이버를 세팅해야 하므로 설치가 어렵다.

ex) Xen, 마이크로소프트 Hyper-V, KVM

(2) Type2 하이퍼바이저 : 호스트(Host) 기반

Type2는 하드웨어 위에 호스트 운영체제(Host OS)가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작한다. 이 타입의 하이퍼바이저에 의해서 관장되는 가상머신의 게스트OS는 하드웨어 위에서 3번째 수준으로 구동된다. 기존의 컴퓨터 환경에서 하이퍼바이저를 활용하는 것이기에 설치가 용이하고 구성이 편리한 장점이 있다. 반면, Type1 보다는 성능이 떨어질 수 있다

ex) VMware server, VMware Workstation, Virtual box

1-3 하이퍼바이저의 특징

장점

하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당받는다. 즉, 각 VM마다 논리적으로 분리되어 있어서 한 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다.

단점

1. 완전한 운영체제가 설치되기 때문에 대량의 메모리가 필요하다.

우분투 리눅스 서버를 올리려고 할 때, 메모리상에 로드되는 내용만해도 500MB 정도가 소모된다. 예를 들어, 가상머신 10개에 똑같이 우분투 리눅스 서버를 올리려고 할 때, 5GB 정도의 메모리가 사용될 수 있다. 물리적인 메모리의 양이 작은 경우 쓰레싱(Thrashing)을 초래해서 성능 저하가 발생할 수도 있다.

2. CPU 성능 확보에 대한 문제가 있다.

서로다른 애플리케이션이 CPU 자원에 대한 요청을 할 때 CPU 자원에 대한 경쟁이 발생하게 된다. 이 때, 우선순위 등을 주어서 운영체제 내에서는 효율적으로 관리를 할 수 있지만 가상화된 CPU가 실제 물리 CPU를 어떻게 얻을지는 정해지지 않았다. 예를 들어 1번 게스트 OS에 서 우선순위가 높다고 해도, 게스트 운영체제 자체가 우선순위가 낮다면 물리적인 CPU 자원을 확보하는게 쉽지 않을 수 있다.

이와 같은 원인으로 CPU 자원 경쟁에 따른 성능저하가 있을 수 있다. 가상화 서비스에서는 이런 문제를 해결하기위해 Dedicate 서비스를 제공한다. 즉, CPU 같은 물리적인 자원을 특정 게스트 운영체제에게 전담배치시키는 서비스이다.

3. 시스템 운영에 대한 통합적인 지식이 필요하다.

일반적인 시스템에서는 소프트웨어 개발과 시스템 운영이 분리가 되어 있었다. 하지만 가상머신체제에서는 이미 만들어진 시스템 위에 새로운 시스템을 구축하는 개념이기 때문에 통합적인 시스템 운영 지식과 소프트웨어 개발 지식이 통합 관리되어야하는 부담이 있다.

2. 컨테이너

2-1 컨테이너란

클라우드 컴퓨팅에서 컨테이너 는 어플리케이션(App)과 App을 구동하는 환경을 격리한 공간을 의미한다. 가상화의 범주 내에서 컨테이너는 기존 하이퍼바이저와 게스트OS를 필요로 했던 가상머신 방식과는 달리, 프로세스를 격리하여‘모듈화된 프로그램 패키지’로써 수행하는 것을 의미한다

컨테이너라는 개념이 처음 등장한 것은 2000년대 중반부터 리눅스에 내장된 LXC(LinuX Container)기술로 소개되면서부터이다. 컨테이너 기술이 등장하게 된 계기는 개발한 프로그램이 구동환경의 달라짐에 따라 예상하지 못한 각종 오류를 발생시키는 것을 해결하기 위함이었다. 이 문제는 SW개발자의 오랜 골칫거리였는데, 이런 오류가 발생하는 이유는 구동 환경마다 네트워크, 스토리지, 보안 등의 정책이 각각 다를 수 있기 때문이다. 결국 SW를 하나의 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 이동하더라도 안정적으로 실행하는 방법을 모색하여 나온 방법이 바로 컨테이너이다.

어플리케이션의 실행에 필요한 라이브러리(Library, Libs), 바이너리(Binary, Bins), 기타 구성파일 등을 패키지로 묶어서 배포하면, 구동환경이 바뀌어도 실행에 필요한 파일이 함께 따라다니기 때문에 오류를 최소화할 수 있다

컨테이너도 VM처럼 프로세싱을 위한 별도의 공간(private space), 루트 권한, 사설 네트워크, IP 주소, 커스텀 라우트, iptable 규칙, 파일 시스템 마운트 등의 기능을 갖추고 있지만 컨테이너는 호스트 시스템의 커널을 다른 컨테이너들과 공유 한다는 점에서 크게 차이가 난다.

이 그림에서 볼 수 있듯이, 컨테이너는 유저 공간만을 포함하고, VM에는 포함되는 커널이나 버추얼 하드웨어가 포함되지 않는다. 여러개의 컨테이너가 하나의 호스트 머신에서 돌아갈 수 있도록 각 컨테이너는 자신만의 격리된 유저 공간을 가지고 있다. 즉, 운영체제 단계의 아키텍처를 모든 컨테이너가 공유하고 있는 것이다. 처음부터 새로 생성되는 부분은 bins와 libs 뿐이며, 이것이 컨테이너가 한결 가벼워질 수 있는 이유이다.

출처 : medium.com/@jwyeom63/%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EC%9D%B4%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-vm-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-3a04c000cb5c

2-2 컨테이너 기술의 특징

장점

1. 시스템의 성능 부하가 훨씬 적다.

컨테이너의 경우 생성 및 실행되면 마치 운영체제 위에서 하나의 어플리케이션이 동작하는 것과 동일한 수준의 컴퓨팅 자원을 필요로 한다. 시스템은 기존 응용프로그램을 실행시키는 것과 유사하게 이를 구동할 여분의 컴퓨팅 자원만 있으면 된다

2. 자원에 대한 배분도 좀 더 유연하다.

컨테이너에서 실행중인 서비스에 더 많은 가용성이 필요하거나 반대로 필요 없을 때, CPU에 대한 사용량이나 사용자가 설정한 임계치에 따라 자동으로 확장 또는 축소가 가능하다.

3. 구동 방식이 간단하다.

특정 클라우드 어플리케이션이 실행되기 위한 모든 라이브러리와 바이너리파일 등이 패키지화되어 있어서, 그저 기존의 시스템에서 실행하면 된다. 반면, 가상머신 방식은 새로운 서비스를 제공하기 위한 특정 어플리케이션을 실행시키려면, 먼저 새로운 VM을 띄우고 자원을 (- 동적 또는 미리 세팅한 대로) 할당한 다음, 필요한 게스트OS를 부팅한 후 어플리케이션을 실행시켜야 한다.

단점

1. 자원의 격리와 쿼터 제한이 어렵다

가상머신은 가상 하드웨어를 직접 제어할 수 있기 때문에 높은 수준의 자원 격리와 쿼터 제한을 수행 할 수 있다.

컨테이너의 경우 가상 하드웨어를 두고 있지 않기 때문에 격리 수준과 쿼터 제한이 가상 머신에 비해 떨어질 수 밖에 없다. 하지만 컨테이너 서비스 플랫폼들의 격리 기술과 쿼터 제한 기술이 발전하고 있기는 하다.

2. 호스트 운영체제에 실행 환경이 묶인다.

컨테이너는 호스트 운영체제의 커널을 공유하기 때문에 호스트 운영체제 환경을 그대로 가져갈 수 밖에 없다. 예를 들어, 리눅스에 컨테이너를 띄워서 윈도우즈 실행 환경을 만들 수 없다는 말이다.

컨테이너 서비스에 이와 같은 장 단점이 존재한다. 하지만 클라우드 서비스 환경에서 컨테이너 기술을 사용하는 것이 가상머신을 사용하는 것에 비해 얻을 수 있는 장점이 압도적이기 때문에 많이 사용되고 있다.

Reference

www.bloter.net/newsView/blt201111030001

m.blog.naver.com/shakey7/221599135601

www.lgeri.com/uploadFiles/ko/pdf/pub/%EC%82%B0%EC%97%85%EB%A6%AC%EB%B7%B0_%EC%9C%A0%ED%8B%B8%EB%A6%AC%ED%8B%B0_%EC%BB%B4%ED%93%A8%ED%8C%85_20040312091640.pdf

이슈리포트 2018. 12. 10. 제2018-008호 클라우드 가상화 기술의 변화

file:///C:/Users/user/Downloads/[%EC%9D%B4%EC%8A%88%EB%A6%AC%ED%8F%AC%ED%8A%B8%202018-008]%20%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%20%EA%B0%80%EC%83%81%ED%99%94%20%EA%B8%B0%EC%88%A0%EC%9D%98%20%EB%B3%80%ED%99%94(v1.7).pdf

namu.wiki/w/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%20%EC%BB%B4%ED%93%A8%ED%8C%85

m.post.naver.com/viewer/postView.nhn?volumeNo=21385900&memberNo=2521903

m.blog.naver.com/PostView.nhn?blogId=complusblog&logNo=220980996544&proxyReferer=http:%2F%2F203.229.225.135%2F

Microsoft Azure

컨테이너와 가상 머신 비교

일반적으로 가상화에 대해 생각할 때 대개 VM(가상 머신)이 떠오릅니다. 사실, 가상화의 형태는 여러 가지일 수 있으며, 컨테이너는 이러한 형태 중 하나입니다. 그렇다면, VM과 컨테이너의 차이점은 무엇이겠습니까?

개략적으로 봤을 때 VM은 여러 OS(운영 체제) 인스턴스가 하드웨어에서 실행될 수 있도록 기본 하드웨어를 가상화합니다. 각 VM은 OS를 실행하며 기본 하드웨어를 나타내는 가상화된 리소스에 액세스할 수 있습니다.

VM에는 많은 이점이 있습니다. 같은 서버에서 다양한 운영 체제를 실행하는 기능, 물리적 리소스의 더 효율적이고 비용 효율적인 사용, 더 빠른 서버 프로비저닝 등을 예로 들 수 있습니다. 다른 한편으로는, 각 VM은 OS 이미지, 라이브러리, 애플리케이션 등을 포함하므로 꽤 커질 수 있습니다.

컨테이너는 기본 OS를 가상화하고 컨테이너화된 앱이 CPU, 메모리, 파일 스토리지, 네트워크 연결 등 OS를 자체적으로 포함하고 있다고 인식하도록 합니다. 기본 이미지가 일관되기만 하면 기본 OS 및 인프라의 차이가 추상화되므로 컨테이너를 어디에나 배포하고 실행할 수 있습니다. 개발자에게는 이 점이 매우 매력적입니다.

컨테이너는 호스트 OS를 공유하므로 OS를 부팅하거나 라이브러리를 로드할 필요가 없습니다. 따라서 컨테이너를 훨씬 더 효율적이고 경량으로 만들 수 있습니다. 컨테이너화된 애플리케이션은 몇 초 내에 시작될 수 있으며, VM 시나리오와 비교하여 애플리케이션의 더 많은 인스턴스를 머신에 맞출 수 있습니다. 공유 OS 접근 방식은 패치, 업데이트 등 유지 관리와 관련하여 오버헤드가 감소하는 추가 이점이 있습니다.

컨테이너는 이식 가능하지만, 컨테이너가 정의된 운영 체제로 제한됩니다. 예를 들어 Linux용 컨테이너는 Windows에서 실행할 수 없으며 그 반대의 경우도 마찬가지입니다.

컨테이너화란 소프트웨어 코드를 라이브러리, 프레임워크 및 기타 종속성과 같은 필수 요소와 함께 패키지에 포함하여 각자의 “컨테이너”로 분리하는 것을 뜻합니다.

이렇게 컨테이너화된 소프트웨어 또는 애플리케이션은 어떤 환경과 인프라에서든 해당 환경이나 인프라의 운영 체제와는 상관없이 이동할 수 있으며 일관성있게 실행됩니다. 즉, 컨테이너는 애플리케이션을 둘러싼 일종의 버블 또는 컴퓨팅 공간으로, 그 주위와 분리해주는 역할을 하는 것입니다. 기본적으로 완전한 기능을 갖춘 이식성이 있는 컴퓨팅 환경입니다.

컨테이너는 하나의 플랫폼 또는 운영 체제에서 코드를 작성하는 방식을 대체합니다. 이러한 방식은 해당 코드가 새로운 환경과 호환되지 않을 경우 애플리케이션의 이동을 어렵게 만드는 원인이었으며 수정이 필요한 버그, 오류, 결함 등이 생겼습니다. 이렇게 되면 시간은 더 많이 소요되고, 생산성은 줄어들며, 사기도 꺾이게 됩니다.

플랫폼과 인프라 전반에서 이동이 가능한 컨테이너로 애플리케이션을 패키징하는 경우 해당 애플리케이션을 어디에서든 사용할 수 있습니다. 실행하는 데 필요한 요소는 이미 패키지 안에 모두 포함되어 있기 때문입니다.

프로세스를 분리하는 아이디어는 수년간 존재했지만, 2013년 Docker가 Docker Engine을 소개하면서 비로소 개발자가 사용하기 쉬운 툴을 갖춘 컨테이너 사용의 기준이 정해졌고 패키징에 대한 범용적 접근 방식이 제시되었습니다. 그러면서 컨테이너 기술 도입이 가속화되었습니다. 오늘날 개발자는 Docker가 개척한 Open Container Initiative 표준을 지원하는 다양한 컨테이너화 플랫폼과 툴을 선택할 수 있습니다.

키워드에 대한 정보 클라우드 컨테이너

다음은 Bing에서 클라우드 컨테이너 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버

  • 클라우드
  • 클라우드기술
  • 디지털혁신
  • 클라우드강의
  • AWS
  • 쿠버네티스
  • 도커

8. #가상 #머신 #vs. #컨테이너의 #차이는? #| #클라우드 #전략부터 #운영까지 #완벽커버


YouTube에서 클라우드 컨테이너 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 8. 가상 머신 vs. 컨테이너의 차이는? | 클라우드 전략부터 운영까지 완벽커버 | 클라우드 컨테이너, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment