Containerization과 Vertualization, Cloud와 On-premise
AWS 서비스를 이해하기 위한 접근 방법
Containerization과 Vertualization, Cloud와 On-premise
AWS 서비스를 이해하기 위한 접근 방법
AWS 서비스를 좀 더 잘 이해하기 위해서 무엇을 알아야 할 지 정리를 하게되었다. 서비스도 있고 그렇지 못한 부분도 있는데 향후 필요에 따라 새로운 제품을 사용할 때 위 4가지 개념을 잘 알고 있어야 할 듯하다.
클라우드와 온프레미스
경험한 임베디드 시스템에서는 라즈베리파이 이하 수준의 타겟보드들로 구성 된 On-premise 환경이었다. ( On-premise 환경에서 베어메탈 PC — 임베디드 용 타겟보드를 사용했다는 것.) 서비스를 올리기 위해서는 아래 과정을 거친다.
- 물리적인 스토리지 구성포함. RAM, CPU 구성. HW 개발자가 보통했었음
- OS, 커널 포팅
- 어플리케이션 및 기타 설정 파일 업로드
- 배포 및 테스트
이런 방식은 인프라 구축기간이 소요되고 경우에 따라서 법적으로 인증시험이 필요할 수도 있다. 경험에 의하면 한번 인증시험을 통과한 시스템을 수정하고 싶을 때, 인증시험을 다시 받아야해서 개선이 어려운 상황도 경험했다.
업무를 하는 실무자 입장에서도 여간 귀찮은 부분들이 많다. 경우에 따라서는 위 상황을 매번 실무자가 수행해야 되는데, 이는 개발에 집중해야 될 개발자의 업무 부담을 증가시키는 행위이다.
이런 과정을 단축하기 위해서 어플리케이션과 설정 파일을 포함 된 이미지를 만들어 OS만 올리면 끝나도록 했지만 여전히 일이 많다.
그래서 개발자가 서비스에 집중하고, 회사 입장에서도 비용적으로 딱 필요한 지출만 발생할 수 있도록 만든 것이 Cloud다. 그리고 Cloud가 인기있는 이유이기도 하다.
요약하자면 클라우드는 제공회사가 준비한 HW 컴퓨팅 리소스를 인터넷을 통해서 필요한 만큼 임대하는 서비스라고 볼 수 있겠다. 그리고 제공수준과 방식에 따라서 IaaS, PaaS, SaaS 등이 있다.
대표적으로 AWS가 있겠다.
Virtualization과 Containerization
AWS 서비스들을 보다보면 용어가 굉장히 다양한데, 이들 차이를 살펴보다보니 가상화와 컨테이너화에 대한 개념을 잘 알아야겠다는 생각이 들었다.
- Virtualization is a method for sharing physical resources among different users and applications
- In containerization, an individual instance (called a container), runs on top of a shared OS kernel (with necessary isolation).
즉 한대의 PC의 리소스를 나누는 방식인데 VM은 물리적으로 나누는 방식이다. 반면 컨테이너는 OS 위에서 추상화 된 리소스를 격리하여 나누는 방식이라고 이해하면 간단하다. 내가 참고한 Trend Review를 보면, 가상화에 대한 비용의 문제로 컨테이너화가 더 보편적인 방법으로 자리잡고 있다고 한다.
쉽게 이야기하면 VM 사용해보면 구동되는 것 자체가 느리다. 반대로 Docker를 쓰면 명령어 딱 때리면 거의 수초내에 구동이 된다. 위에서 비용의 문제라는 것은 즉 리소스를 할당하고 구동하기 위해 필요한 물리적 시간적 자원이 얼마나 드는 것인가로 볼 수 있다.
참고 논문이다. ( 논문을 잘 정리하고 싶었는데, 하다보니 번역이 되어 블로그에 차후에 올리겠다. )
Emerging Trends, Techniques and Open Issues of Containerization: A Review
JUNZO WATADA , ARUNAVA ROY, RUTURAJ KADIKAR, HOANG PHAM, BING XU
같이 알아야 되는 개념은 전가상화, 반가상화도 같이 알아야 한다.
컨테이너, 가상화, 클라우드, 온프레미스 매트릭스
위 개념을 매트릭스로 정리하면 아래와 같다. 솔직히 AWS 제품을 분석하면서 아래 도식에 딱 끼워 맞추기는 힘들었다.

대표적인 구현체 위주로 정리했다.
AWS의 EC2는 클라우드 서비스를 제공하는 아마존에서 가진 PC의 자원을 가상화 방식으로 나눈 것이다. EC2 생성 시 AMI라고 하는 AWS 자체 이미지 파일을 사용하며 HVM 방식과 PV 방식을 제공한다.
VMware와 같은 프로그램은 온프레미스 환경에서 가상화 환경을 제공한다. EC2와 동일하게 버전에 따라서 전가상화 반가상화 모두를 제공한다.
AWS의 ECS는 엄밀히 따지면 저위치에 배치할 수 없다. ECS자체가 컨테이너 환경을 오케스트레이션하는 기능을 포함하고 있다. ECR이 컨테이너를 위한 프라이빗 도커 레포지토리다. 다만 클라우드 환경에서 컨테이너를 띄운다는 맥락정도로 우선 이해를 하면 될 듯.
Docker는 OS가 설치된 환경에서 컨테이너로 띄울 수 있는 구현체이다. 가상화 플랫폼이다.
오케스트레이션 툴을 함께 제공하는 이유는 분산 컨테이너 효율적으로 관리를 하기 위해 서비스에 포함시키는데, 온프레미스 환경에서는 k8s와 같은 구현체가 있다. k8s가 컨테이너 오케스트레이션 표준으로 자리 잡으면서 EKS라는 별도 서비스가 생겼다.
어떤 서비스를 사용해야 되는가?
시스템에 따라 다르겠지만 AWS에서 제공하는 가이드에서 힌트를 얻어본다. 서비스 규모에 따라서 컨테이너 관리서비스를 선택하고 컨테이너 실행 방식 및 위치에 따라서 제품을 선택 할 수 있다고 한다.

https://aws.amazon.com/ko/blogs/korea/how-to-choose-aws-container-services/
각각의 서비스 내용들을 보면 결국 아래 내용을 어디까지 자동화 해줄 것이냐에 따라서 제품의 성격이 달라진다.
서비스 규모가 작을 수록 바로 코드만 올려서 구동이 가능한 Paas에 가까운 서비스를 추천하고
규모가 커지면 세부적인 요소들을 직접 제어가 가능한 구성까지 서비스를 추천하고 있다. 대표적인 서비스들의 연관관계를 간단하게 정리해 보았다.
결국 각각의 서비스를 사용해보면서 파악을 하는게 중요하다고 생각했다.

내용을 정리하며
주로 개념단위에서 정리를 했는데, 하다보 실제 구현체들 사례와 구현을 위한 개념을 함께 기술해야 더 정리가 잘 될 듯하다.
메타데이터
- post_id
- 772b2cffcb80
- slug
- containerization과-vertualization-cloud와-on-premise-772b2cffcb80
- url
- https://medium.com/@tas.com/containerization%EA%B3%BC-vertualization-cloud%EC%99%80-on-premise-772b2cffcb80
- canonical_url
- https://medium.com/@tas.com/containerization%EA%B3%BC-vertualization-cloud%EC%99%80-on-premise-772b2cffcb80
- author_url
- https://medium.com/@tas.com
- status
- ok
- fetched_at
- 2026-06-29 01:02:39