소프트웨어 전문지 마이크로소프트웨어 394호는 클라우드(Cloud)와 백엔드(Back-End)를 주제로 담았습니다. 애저, PaaS, 데브옵스, PaaS, 마이크로서비스 아키텍처 등 마소 394호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

웹서비스를 만들고 나면 서비스 운영에 대한 장벽을 만난다. AWS, 애저(Azure), GCP 등 클라우드마다 지원하는 기능이 다르고, 익혀야 할 개념은 어찌나 많은지 머리가 아프다. 다양한 웹서비스 배포 방식이 있겠지만 도커(Docker)기반 PaaS(Platform as a Service)를 통해 인프라 고민을 최소화한 웹서비스 배포를 경험해보도록 하자.

클라우드 서비스는 크게 2가지로 나눌 수 있다.

IaaS(Infrastructure as a Service), 인프라를 서비스로써 제공받는다. 대개 운영체제만 설치된 가상머신을 제공받고, 필요한 세팅은 직접 수행한다. 자유도가 높지만, 관리 포인트가 늘어난다.

PaaS(Platform as a Service), 가상머신을 직접 관리하지 않고 플랫폼 형태로 서비스를 받는다. 이미 세팅된 플랫폼을 사용하므로 자유도가 적은 반면 관리 포인트가 줄어든다. 초기 PaaS는 지원하는 언어나 프레임워크에 제한이 있었다. 하지만 도커를 통해 언어와 프레임워크에 제한 없는 PaaS를 쓸 수 있게 됐다. 예를 들면 컨테이너용 웹앱(Web App for Containers)과 구글 앱엔진(Google App Engine Flexible)이 있다.

PaaS를 활용하면 시간을 아끼고 개발에 좀 더 집중할 수 있다. 필요하다면 IaaS와 적절히 조합해도 된다. 우리에게 가장 소중한 자원은 시간이지 않겠는가?

애저 포탈 구독 화면. / 마이크로소프트웨어 394호 발췌
애저 포탈 구독 화면. / 마이크로소프트웨어 394호 발췌
애저 컨테이너용 웹앱은 도커를 활용한 웹서비스용 PaaS다. 어떤 언어, 프레임워크의 웹서비스도 도커 이미지로 만들면 웹 UI에서 손쉽게 배포할 수 있다.

로컬에서 이미지를 새로 빌드하고 도커 허브에 업로드한 후, 애저 웹앱의 ‘컨테이너 설정’ 메뉴에서 이미지 이름을 변경하면 알아서 업데이트가 수행된다. 업데이트 중에는 일시적으로 서비스가 중단될 수 있다.

가격 책정 계층을 S1 이상으로 선택하면 ‘배포 슬롯’ 옵션을 사용할 수 있다. 한 웹앱에 다수의 슬롯을 생성할 수 있으며, 슬롯 배포가 완료된 후에 ‘Swap’을 하면 중단 없이 배포할 수 있다. ‘배포 슬롯’은 A/B 테스트에도 활용할 수 있다.

도커 이미지 이름에는 태그를 붙일 수 있다. 이미지 이름에 콜론(:)을 이어서 지정한다. 주로 버전을 지정하는 목적으로 사용하며, 문자열 포맷이기에 숫자뿐 아니라 다양한 문자열을 지정할 수 있다. 태그를 지정하지 않으면 디폴트로 ‘latest’가 지정된다. ‘latest’는 단순히 문자열일 뿐 최근 버전을 지정하는 별칭은 아님에 유의하자.

이진석 필자의 ‘클릭만으로 도커 개발 환경을 완성시켜주는 애저 PaaS’에 대한 자세한 내용은 ‘마이크로소프트웨어 394호(https://www.imaso.co.kr/archives/3939)’에서 확인할 수 있다.


관련기사