AWS Container part.1(Container란 무엇일까?)

2021. 10. 4. 21:59Cloud/AWS 기초

선박, 건설현장, 영화 등 한 번쯤은 봤을 법한 컨테이너 박스이다. 현실에서는 운송업이나 건설업에서 사용하는 사물이나 사람을 보관할 수 있는 장소로써 쓰인다. 기본적으로 과거에는 대형 화물을 선박으로 옮겼고 이것은 고 비용이 들었던 방법이다. 18C부터 컨테이너 라는 개념이 활성화 되기는 했지만 1958년 국제 운송 컨테이너가 개발되며 표준화가 완료되었다. 이 시점 이후로 컨테이너는 일정하며 예측가능한 장점이 생겼다. 기차와 트럭, 배 등으로 손 쉽게 옮길 수 있게 되었고 이것은 "추상화를 사용해 민첩성을 높이는 훌륭한 예시"가 되었다.

 

뜬금없는지만 왜 이런 컨테이너에 대해 주저리 주저리 설명하고 있을까? 바로 AWS에서도 이런 컨테이너를 사용하기 때문이다. 

컴퓨팅 플렛폼에서의 컨테이너

 

컴퓨팅 세계에서의 컨테이너의 정의는 "모든 컴퓨팅 환경에서 빠르고 안정적으로 실행하게 만드는 표준화된 프로그램"으로서 애플리케이션을 실행하는데 필요한 모든것을 포함한다. 즉 운영체제에서 사용할 수 있는 가상화의 한 형태이다. 독립형으로서 런타임, 코드, 시스템라이브러리 등의 설정과 같은 에플리케이션을 사용하는데 필요한 모든 정보를 포함한다. 이런 컨테이너는 대규모 엔터프라이시스 or 별도의 어플리케이션일 수 도 있다.

 

이런 컨테이너를 기업에서는 왜 사용하고 있을까?

기본적으로 기술이 발전함에따라서 지속적인 변화, 더 빠른 혁신, 더 빠른 대응을 원한다. 최근에는 C-19로 인해 예상했던 모든것이 무너지고 새롭게 구축되어 가는 추세이다. 이런 환경에 적응하기 위해 컨테이너를 사용하는데 그 장점은 다음과 같다.

 

컨테이너 도입 이유

1. 제어되고 반복가능한 환경으로 이동하여 자동화를 수용함으로 품질, 안정성 및 보안을 향상

1-1. 위험을 감소시키며 이것을 포함한 다른 장점은 운영 효율성을 증대시킨다.

2. 제품 제공속도를 크게 향상시킬 수 있는 환경을 마련하게 해 준다.

2-1. 일관된 환경으로서 개발자의 개발 속도를 향상 시킬 수 있다.

2-2. 테스트 및 반복의 속도와 용이성을 높이는 자동화를 구축한다.

 

AWS에서 컨테이너를 사용하는 고객의 유저로서는 다음과 같다.

 

기본적으로 다른 가상화 파일과 컨테이너의 차이점을 알아보자. 대부분의 경우 기술 성숙도는 추상화수준의 증가와 직접적인 관련이 있다.

 

기본적인 가상화 및 추상화 개념은 다음과 같다.

베어 메탈 서버

인프라 및 소프트웨어 계층과 같은 아키텍쳐 계층이 구축이 된다.

서버 하드웨어 위에 운영체제를 설치하고 해당 운영체제 위에 공유 라이브러리를 사용하고 이 라이브러리를 사용할 수 있는 에플리케이션을 구축한다. 이런 방식은 사용률이 0%, 100%이던 하드웨어 비용이 발생하는 비 효율적인 방법이다.

 

가상머신

운영체제에 가상 플렛폼(VMware)와 같은 도구를 사용해 에플리케이션과 라이브러리를 가상머신으로 격리를 한 상태이다. 기존 하드웨어에 VM을 더 추가해 물리적인 공간을 줄여 현실세계의 활용도를 증가시킬 수 있다. 하지만 단점으로는 가상화계층 자체가 너무나 무겁다는 점이다. host위의 여러게의 운영체제가 있으며 논리 호스트에 더 많은 패치와 업데이트를 적용하고 더 많은 공간을 차지한다는 의미이다. 이렇게 될 경우 중복성이 상당히 높아지게 될 수 있다.(동일 OS, 라이브러리)


컨테이너 런타임

운영체제 커널을 공유해 파일 시스템 계층을 활용해 컨테이너 이미지를 생성할 수 있게 된다. 컨테이너는 가볍고 효율적이며 휴대성도 뛰어나며 빠르게 구동할 수 있다. 가상 시스템보다 더 빠르며 이것은 기본 하드웨어의 활용도 높일 수 있게된다. 또한 필요할때 라이브러리를 공유할 수 도 있고 애플리케이션에 대해서 라이브러리를 격리할 수 도있다. 

컨테이너는 소프트웨어를 다른 계층에서 분류하기 때문에 그 코드는 다양한 환경에서 동일하게 실행될 수 있다.

 

우리는 컨테이너가 무엇이며 어떻게 활용되는지에 대해 알아보았다. 다음 시간에는 이와 같이 사용할 수 있는 Docker에 대해 알아보는 시간을 가져 보겠다.

'Cloud > AWS 기초' 카테고리의 다른 글

Amazon Bigdata part.1  (0) 2021.10.10
AWS Container part.2 (Docker 개요)  (0) 2021.10.04
Amazon EC2 Part.3 (공유 파일 시스템)  (0) 2021.09.10
Amazon EC2 Part.2(데이터 저장)  (0) 2021.09.08
Amazon EC2 part.1  (0) 2021.09.08