2021.02.19

애저 앱 서비스에서 컨테이너 실행하기

Simon Bisson | InfoWorld

현대 클라우드의 중심에서는 두 가지 철학이 긴장 관계를 이루고 있다. 클라우드 서비스 업체가 관리하는 호스트 시스템 패브릭에 가상 인프라를 구축하는 IaaS, 그리고 클라우드 서비스 업체가 관리하는 런타임에 대해 이들의 서비스 API를 대상으로 코드를 쓰는 PaaS다. 두 가지 접근 방식 모두 개발자가 애플리케이션에 집중할 수 있도록 물리 인프라와 호스트 운영의 추상화 계층을 제공한다. 
 

ⓒ Getty Images Bank


컨테이너는 이 두 가지 방법 사이의 중간 지대를 제공해 클라우드 서비스 업체가 관리하는 플랫폼에 의존하면서 더 복잡한 코드를 쓰고 필요한 애플리케이션 및 기타 종속성을 패키지화할 수 있게 해준다. OS 수준 보안 또는 업데이트를 직접 관리할 필요가 없고, 플랫폼 런타임에서 지원하는 언어와 API로 제한되지도 않는다. 효과적인 타협안이다. 또한 쿠버네티스(Kubernetes)와 같은 기술은 필요한 컨테이너 수준 시스템 관리 툴을 제공한다. 

애저 쿠버네티스 서비스(AKS)와 같은 툴을 사용한다 해도 쿠버네티스가 복잡한 것은 사실이다. 분산 애플리케이션을 대규모로 실행하기 위한 툴이기 때문이다. 코드는 높은 수요에도 견딜 수 있어야 하고, 글로벌 규모로 실행하면서 전 세계 곳곳에 걸쳐 노드를 복제한다. AKS를 사용하면 컨테이너 클러스터를 배포하고 실행 상태를 보장하면서 새 버전이 사용할 준비가 되는 즉시 CI/CD(지속적 통합/지속적 제공) 파이프라인에서 바로 배포할 수 있다. 

컨테이너의 혜택을 누릴 수 있는 또 다른 종류의 애플리케이션은 글로벌 규모가 불필요한 웹사이트와 서비스 뒤에서 실행되는 코드다(물론 안정적인 운영이 보장된다면 좋지만). 사용자 수가 수백만 단위는 아니지만 수백, 수천 명의 사람들이 코드를 사용하고 여러 기업이 이 코드에 의존할 수 있다. 
 

애저 앱 서비스: 애저의 첫 서버리스 플랫폼 

애저 앱 서비스는 애저 PaaS에서 가장 오래된 요소다. 애저 앱 서비스는 웹 및 모바일 백엔드를 위한 런타임으로, 일반적인 웹 개발 언어와 툴을 사용한다. 원하는 편집기로 코드를 작성해서 애저에 직접 저장한다. 코드는 애저에서 수요에 따라 실행되고 비용은 사용량이 낮은 사이트와 서비스를 위한 무료 인스턴스부터 전용 컴퓨팅 리소스가 있는 요금제에 이르기까지 다양하다. 기능은 티어마다 다르며 필요에 따라 확장하거나 축소할 수 있다. 

애저 앱 서비스는 여전히 유용한 툴이고, 애저 서비스 및 외부 API에 액세스하는 다양한 유형의 애플리케이션에 적합하다. 이와 함께 수요에 따라 실행되는 API 기반 앱으로 서버리스 기술을 사용한 작업을 시작하는 데도 유용하다. 애저 앱 서비스에서 습득한 교훈은 다른 많은 애저 플랫폼 기능을 이해하는 데 도움이 될 수 있다. 기본적인 작업자 기반 VM 모델을 공유하기 때문이다. 
 

앱 서비스에 하나의 맞춤형 컨테이너 호스팅하기 

애저 플랫폼 서비스에는 소수의 컨테이너 기반 마이크로서비스만 실행하고 빠른 수요 변화에 일일이 대응할 필요가 없는, 컨테이너 기반 클라우드 애플리케이션으로의 마이그레이션에 도움이 될 수 있는 한 가지 중요한 기능이 있다. 

쿠버네티스 클러스터를 가동해 이를 빌드 프로세스에 연결하는 대신 애저 앱 서비스를 사용해서 제한된 수의 인스턴스로 컨테이너를 호스팅할 수 있다. 애플리케이션과 서비스를 컨테이너화하는 방법을 처음 고려할 때 좋은 방법이다. 또한 이 방법을 사용하면 낮은 비용으로 서비스를 테스트하고, 한두 개의 API 엔드포인트에만 액세스하면 되는 사용자를 지원할 수 있다. 

애저 앱 서비스에서 컨테이너를 사용하는 간단한 시나리오 하나는 기존 웹 애플리케이션을 대체 스택을 사용해 구축된 클라우드로 그대로 옮기는 것이다. 고(Go) 또는 러스트(Rust)를 웹 서비스 호스트로 해서 실험하거나, PHP의 파생어인 페이스북 핵(Hack)과 같은 대체 웹 애플리케이션 언어를 사용하는 경우도 있을 것이다. 애플리케이션과 애플리케이션 지원 환경을 컨테이너에 넣으면 다시 쓸 필요 없이 클라우드로 옮기고, 지원되는 프레임워크에서 새 버전을 구축하거나 서버리스 펑션을 사용하거나 AKS에서 실행하는 대체 호스팅 모델로 전환하기 위한 시간을 벌 수 있다. 

애저 앱 서비스 컨테이너 시작하기 

애저 앱 서비스에서 컨테이너 이미지를 사용하는 방법은 간단하다. 애저 컨테이너 레지스트리에 저장된, 코드가 포함된 컨테이너로 시작한다. 실제 환경에서는 대부분의 애플리케이션이 리눅스에서 실행되지만, 윈도우와 리눅스 컨테이너 모두 지원된다. 

윈도우용 도커와 WSL 2를 사용해 WSL 또는 리눅스 가상머신에서 실행되는 애플리케이션부터 시작해 컨테이너를 구축하고 테스트할 수 있다. 도커의 툴은 코드, 스택, 종속성을 패키지화하는 데 도움이 되며, 필요한 경우 리눅스 서버에서 컨테이너로 애플리케이션을 옮기는 과정의 속도를 높이는 데 도움이 되는 일반적인 리눅스 릴리스를 위한 기본 이미지를 제공할 수 있다. 




2021.02.19

애저 앱 서비스에서 컨테이너 실행하기

Simon Bisson | InfoWorld

현대 클라우드의 중심에서는 두 가지 철학이 긴장 관계를 이루고 있다. 클라우드 서비스 업체가 관리하는 호스트 시스템 패브릭에 가상 인프라를 구축하는 IaaS, 그리고 클라우드 서비스 업체가 관리하는 런타임에 대해 이들의 서비스 API를 대상으로 코드를 쓰는 PaaS다. 두 가지 접근 방식 모두 개발자가 애플리케이션에 집중할 수 있도록 물리 인프라와 호스트 운영의 추상화 계층을 제공한다. 
 

ⓒ Getty Images Bank


컨테이너는 이 두 가지 방법 사이의 중간 지대를 제공해 클라우드 서비스 업체가 관리하는 플랫폼에 의존하면서 더 복잡한 코드를 쓰고 필요한 애플리케이션 및 기타 종속성을 패키지화할 수 있게 해준다. OS 수준 보안 또는 업데이트를 직접 관리할 필요가 없고, 플랫폼 런타임에서 지원하는 언어와 API로 제한되지도 않는다. 효과적인 타협안이다. 또한 쿠버네티스(Kubernetes)와 같은 기술은 필요한 컨테이너 수준 시스템 관리 툴을 제공한다. 

애저 쿠버네티스 서비스(AKS)와 같은 툴을 사용한다 해도 쿠버네티스가 복잡한 것은 사실이다. 분산 애플리케이션을 대규모로 실행하기 위한 툴이기 때문이다. 코드는 높은 수요에도 견딜 수 있어야 하고, 글로벌 규모로 실행하면서 전 세계 곳곳에 걸쳐 노드를 복제한다. AKS를 사용하면 컨테이너 클러스터를 배포하고 실행 상태를 보장하면서 새 버전이 사용할 준비가 되는 즉시 CI/CD(지속적 통합/지속적 제공) 파이프라인에서 바로 배포할 수 있다. 

컨테이너의 혜택을 누릴 수 있는 또 다른 종류의 애플리케이션은 글로벌 규모가 불필요한 웹사이트와 서비스 뒤에서 실행되는 코드다(물론 안정적인 운영이 보장된다면 좋지만). 사용자 수가 수백만 단위는 아니지만 수백, 수천 명의 사람들이 코드를 사용하고 여러 기업이 이 코드에 의존할 수 있다. 
 

애저 앱 서비스: 애저의 첫 서버리스 플랫폼 

애저 앱 서비스는 애저 PaaS에서 가장 오래된 요소다. 애저 앱 서비스는 웹 및 모바일 백엔드를 위한 런타임으로, 일반적인 웹 개발 언어와 툴을 사용한다. 원하는 편집기로 코드를 작성해서 애저에 직접 저장한다. 코드는 애저에서 수요에 따라 실행되고 비용은 사용량이 낮은 사이트와 서비스를 위한 무료 인스턴스부터 전용 컴퓨팅 리소스가 있는 요금제에 이르기까지 다양하다. 기능은 티어마다 다르며 필요에 따라 확장하거나 축소할 수 있다. 

애저 앱 서비스는 여전히 유용한 툴이고, 애저 서비스 및 외부 API에 액세스하는 다양한 유형의 애플리케이션에 적합하다. 이와 함께 수요에 따라 실행되는 API 기반 앱으로 서버리스 기술을 사용한 작업을 시작하는 데도 유용하다. 애저 앱 서비스에서 습득한 교훈은 다른 많은 애저 플랫폼 기능을 이해하는 데 도움이 될 수 있다. 기본적인 작업자 기반 VM 모델을 공유하기 때문이다. 
 

앱 서비스에 하나의 맞춤형 컨테이너 호스팅하기 

애저 플랫폼 서비스에는 소수의 컨테이너 기반 마이크로서비스만 실행하고 빠른 수요 변화에 일일이 대응할 필요가 없는, 컨테이너 기반 클라우드 애플리케이션으로의 마이그레이션에 도움이 될 수 있는 한 가지 중요한 기능이 있다. 

쿠버네티스 클러스터를 가동해 이를 빌드 프로세스에 연결하는 대신 애저 앱 서비스를 사용해서 제한된 수의 인스턴스로 컨테이너를 호스팅할 수 있다. 애플리케이션과 서비스를 컨테이너화하는 방법을 처음 고려할 때 좋은 방법이다. 또한 이 방법을 사용하면 낮은 비용으로 서비스를 테스트하고, 한두 개의 API 엔드포인트에만 액세스하면 되는 사용자를 지원할 수 있다. 

애저 앱 서비스에서 컨테이너를 사용하는 간단한 시나리오 하나는 기존 웹 애플리케이션을 대체 스택을 사용해 구축된 클라우드로 그대로 옮기는 것이다. 고(Go) 또는 러스트(Rust)를 웹 서비스 호스트로 해서 실험하거나, PHP의 파생어인 페이스북 핵(Hack)과 같은 대체 웹 애플리케이션 언어를 사용하는 경우도 있을 것이다. 애플리케이션과 애플리케이션 지원 환경을 컨테이너에 넣으면 다시 쓸 필요 없이 클라우드로 옮기고, 지원되는 프레임워크에서 새 버전을 구축하거나 서버리스 펑션을 사용하거나 AKS에서 실행하는 대체 호스팅 모델로 전환하기 위한 시간을 벌 수 있다. 

애저 앱 서비스 컨테이너 시작하기 

애저 앱 서비스에서 컨테이너 이미지를 사용하는 방법은 간단하다. 애저 컨테이너 레지스트리에 저장된, 코드가 포함된 컨테이너로 시작한다. 실제 환경에서는 대부분의 애플리케이션이 리눅스에서 실행되지만, 윈도우와 리눅스 컨테이너 모두 지원된다. 

윈도우용 도커와 WSL 2를 사용해 WSL 또는 리눅스 가상머신에서 실행되는 애플리케이션부터 시작해 컨테이너를 구축하고 테스트할 수 있다. 도커의 툴은 코드, 스택, 종속성을 패키지화하는 데 도움이 되며, 필요한 경우 리눅스 서버에서 컨테이너로 애플리케이션을 옮기는 과정의 속도를 높이는 데 도움이 되는 일반적인 리눅스 릴리스를 위한 기본 이미지를 제공할 수 있다. 


X