우분투 코어(Ubuntu Core)는 사물인터넷(IoT) 기기와 대규모 컨테이너 배포 환경을 위해 특별히 설계된 우분투 리눅스의 트랜잭션(transactional) 버전입니다. 이 운영체제는 디지털 사이니지, 로봇, 게이트웨이 등 다양한 분야에서 널리 활용되고 있으며, 표준 우분투와 동일한 커널, 라이브러리, 시스템 소프트웨어를 기반으로 하되 훨씬 작은 규모로 최적화되어 있다는 것이 특징입니다.
우분투 코어 실행 환경
우분투 코어는 가상 머신(VM)으로 실행할 수 있으며, 다음과 같은 하드웨어 플랫폼과 클라우드 환경을 지원합니다:
- 라즈베리 파이 2 및 3
- 컴퓨트 모듈 3(Compute Module 3)
- 퀄컴 드래곤보드 410c(Qualcomm DragonBoard 410c)
- 인텔 NUC
- 인텔 줄(Intel Joule)
- 삼성 아틱(Samsung Artik)
- KVM
- 아마존 웹 서비스(AWS)
- 마이크로소프트 애저(Microsoft Azure)
- 구글 클라우드 플랫폼(Google Cloud Platform)
스냅(snap) 패키지 기반의 안정적인 운영
트랜잭션 방식의 운영체제는 모든 작업을 완결성 있는 분리 불가능한 단위 연산으로 나누어 처리합니다. 우분투 코어는 바로 이러한 방식을 스냅(snap) 패키지를 통해 구현합니다. 스냅은 컨테이너화된 애플리케이션과 그 의존성 요소들을 하나로 묶은 zip 형식의 패키지로, 안전하게 실행하고 다른 소프트웨어와 통신하기 위한 지침까지 함께 포함하고 있습니다. 스냅은 어떤 리눅스 데스크톱, 서버, 클라우드 기기에서도 실행할 수 있으며, 기본 운영체제로부터 격리되어 있어 애플리케이션을 안전하게 설치할 수 있습니다.
스냅은 읽기 전용(read-only)이며 불변(immutable) 속성을 가지므로, 시스템에 설치된 후에는 어떠한 수정도 허용되지 않습니다. 애플리케이션과 의존성 요소 외에도 스냅은 두 개의 독립된 쓰기 가능 저장 공간을 포함합니다. 하나는 버전 관리가 적용되어 데이터 업그레이드 시 이전 복사본을 보관하는 공간이며, 다른 하나는 중복 저장이 필요 없는 대용량 정적 데이터를 담는 공간입니다.
강화된 보안성과 유연한 업데이트
우분투 코어가 스냅을 기반으로 동작하기 때문에, 컨테이너 내부에서 실행되는 애플리케이션의 보안 수준 역시 크게 향상됩니다. 심지어 운영체제와 커널 자체도 스냅 형태로 배포되므로, 특정 스냅을 업데이트하더라도 다른 설치된 스냅에 영향을 주거나 그것들에 의존하지 않습니다. 여기에 라즈베리 파이와 도커(Docker)의 호환성이 개선되면서, 우분투 코어를 활용한 컨테이너화 인프라 구축이 한층 더 현실적인 선택이 되었습니다.