TECH ARTICLE

제니퍼 닷넷 (JENNIFER .NET)의 Azure App Service 웹 앱 지원

마이크로소프트의 Azure 환경에서 웹 응용 프로그램을 운영하는 방법은 크게 다음과 같이 2가지 유형으로 나뉩니다.

  • IaaS (Infrastructure-as-a-service) 방식: 가상 머신(VM)에서 웹 응용 프로그램 구동(AWS의 경우 EC2 서비스에 해당)
  • PaaS (Platform-as-a-service) 방식: App Service에서 웹 응용 프로그램 구동(AWS의 경우 Elastic Beanstalk에 해당)

기존 응용 프로그램의 구조를 최대한 변경하지 않고 Azure에 올릴 수 있는 방법은 IaaS 방식을 사용하는 것이지만 이런 경우 일반적인 호스팅 업체에서 서비스를 하는 것과 비교해 물리적인 서버 시스템에 대한 관리 비용을 없앤 정도의 효용성만 있습니다. 반면 클라우드의 최대 장점인 손쉬운 Scale-out 서비스를 이용하려면 Azure App Service의 웹 앱 방식으로 마이그레이션을 해야 합니다. 단지 기 구축된 시스템을 웹 앱으로 이전하는 것이 경우에 따라 쉽지 않은데다 PaaS의 특성에 대한 이해도가 부족해 초기 시점에는 웹 앱 응용 프로그램이 많이 활성화되지는 못했습니다.

하지만 근래 들어 PaaS의 장점이 대두되면서 새로 구축하는 웹 응용 프로그램의 경우 가상 머신이 아닌 웹 앱으로 만드는 사례가 늘어가고 있습니다. 예를 들어, 국내에서는 ㈜제이와이피엔터테인먼트에서 아시아 팬들을 위한 이벤트 정보 및 예약 안내를 담당하는 JYP NATION 투어 안내 사이트를 웹 앱으로 개설했고 최근에는 AI와 챗봇 서비스를 도입한 SSG.COM에서 “Zero VM”을 목표로 가상 머신이 아닌 FaaS, BaaS, PaaS 만으로 서비스를 구축하는 등 점차로 PaaS 이후의 단계로 이전하는 서비스가 늘어가고 있습니다.

클라우드에서 제공하는 PaaS의 특성 상 성능이라는 관점에서 자동적으로 누릴 수 있는 혜택이 있습니다. 대표적으로는, 자유로운 Scale-out으로 인해 On-premise 환경과 비교해 대역폭과 관련한 문제가 쉽게 해결됩니다. 예를 들어, 웹 서버로 유입되는 트랜잭션의 증가로 요청 처리가 늦어지는 경우 서버 인스턴스를 동적으로 증가시키면 다시 서비스를 정상 수준으로 처리할 수 있습니다. 또한 서비스 지역을 단일 지점이 아닌, 클라우드 서비스 업체가 제공하는 전 세계의 데이터 센터를 활용할 수 있으므로 네트워크 트래픽에서도 자유로울 수 있습니다.

하지만 단순히 Scale-out으로 해결되지 않는 문제도 여전히 많습니다. 예를 들어, 전자 상거래 사이트의 장바구니 페이지를 방문 시 평소 응답 시간이 5초가 걸린다고 가정하는 경우 이것은 서비스 인스턴스의 수를 늘린다고 해서 선형적으로 반응 시간이 줄어들지는 않습니다. 즉, PaaS가 해결해 줄 수 있는 것은 일반적으로 유입 트래픽의 변동으로 인한 기존 서비스의 반응 시간을 유지해 주는 것입니다. 따라서 여전히 클라우드 환경에서도 유의미한 성능 문제가 발생하며 이런 문제의 원인을 찾기 위해 APM의 역할이 필요하게 됩니다.

제니퍼소프트는 이러한 웹 응용 프로그램의 환경 변화와 여전히 APM이 필요할 수 있다는 요건에 따라 클라우드 환경에서의 APM 지원을 꾸준히 보완해 나가고 있습니다. 이미 자바 플랫폼의 AWS에 대한 Elastic Beanstalk 지원을 추가했고 최근에는 Azure 환경에서 JENNIFER .NET의 웹 앱 지원을 추가했습니다.

JENNIFER .NET 설치

가상 머신(VM) 상에서 구동하는 웹 응용 프로그램은 기존의 On-premise 환경의 설치 방식과 다른 점이 없습니다. 하지만 PaaS 유형에서는 Sandbox로 보호된 환경의 제약으로 인해 가상 머신과 같은 방식으로 설치할 수 없습니다. 이러한 설치 환경의 제약은 App Service 웹 응용 프로그램들에 대한 부가 서비스를 제공하는 3rd-party 응용 프로그램의 생태계에 영향을 미치게 되는데, 마이크로소프트는 이에 대한 해법으로 “웹 앱 확장(Web App Extension)” 환경을 제공하는 Kudu 서비스를 오픈 소스로 공개하고 Azure App Service 환경에 통합시켜 운영하고 있습니다. 그리고 JENNIFER .NET은 바로 그 웹 앱 확장의 하나로 등록되어 있기 때문에 기존 웹 앱 사용자라면 언제든지 해당 확장을 웹 앱과 연동할 수 있습니다.

현재 웹 앱 확장은 Azure 포탈의 콘솔 화면을 통해 “Extensions” 메뉴를 이용하면 자유롭게 설치 및 삭제할 수 있습니다.

[그림 1: 설치 대상이 되는 웹 앱의 “Extensions” 메뉴]

만약 JENNIFER .NET 에이전트를 여러분들의 Web App에 설치하고 싶다면 다음과 같이 Extensions 하위의 “Add extension” 메뉴로 JENNIFERSOFT에서 등록한 “JENNIFER .NET Agent”를 선택해 추가하면 됩니다.

[그림 2: 확장 목록 중 “JENNIFER .NET Agent” 선택]

설치 후에는 JENNIFER .NET 에이전트가 JENNIFER 데이터 서버로 수집 데이터를 전송하기 위해 몇 가지 설정이 필요합니다. 기존 설치 방식에서는 사용자 설정을 conf 파일에 지정했지만 Azure App Service 환경에서는 해당 App Service의 “Application settings” 메뉴로,

[그림 3: 대상 웹 앱의 환경 변수 설정 메뉴]

표 1과 같은 환경 변수를 설정해야만 합니다.

Figure 1 에이전트 구동을 위한 환경 변수 설정

표 1의 설정 중에서 사용자 환경에 따라 달라지는 값은 “ARIES_DOMAIN_ID”,  “ARIES_SERVER_ADDR”, “ARIES_SERVER_PORT”이며 나머지 값들은 변경하지 않고 그대로 설정해야 합니다.이후 웹 앱을 재시작하면 대시 보드에 해당 웹 앱 인스턴스를 대표하는 ID가 동적으로 할당되어 나타나고 Scale-out 설정에 따라 인스턴스의 수가 자동으로 늘고 주는 것을 확인할 수 있습니다.

  • 제니퍼 닷넷 사용 및 설치와 관련하여 문의 사항이 있으시면 tech@jennifersoft.com으로 문의 주시기 바랍니다. 

Next

Contact Us

안녕하세요? 제니퍼소프트입니다.
기술 문의의 경우 질문자의 회사/이름/연락처를 본문에 기술해 주셔야만 원할한 지원이 가능합니다.
보내주신 문의 사항을 검토하여 빠른 시일 내에 답변해 드리겠습니다.

  • Chris
  • Irene

메일을 보냈습니다.

메일 전송이 완료되었습니다.
빠른 시일 내에 답변드리겠습니다.
감사합니다.
제니퍼소프트 웹사이트는 쿠키를 사용합니다. 쿠키에 대한 자세한 정보 및 삭제 방법은 제니퍼소프트의 개인정보처리방침을 참고하시기 바라며 본 사이트를 계속해서 이용하는 것은 제니퍼소프트의 쿠키 사용에 동의함을 의미합니다.