Azure App Service에 웹앱 배포

완료됨

azure-webapp-maven-plugin Java 개발자를 위한 두 가지 목표가 있습니다. 첫 번째는 Azure App Service 플러그 인을 더 쉽게 관리하고 구성하는 것이며, 두 번째는 Azure App Service에 Maven 프로젝트 배포를 간소화하는 것입니다. 이전 연습에서는 빠른 "hello world" 예제 Java 웹앱을 만들고 로컬에서 테스트했습니다. 프로젝트에 Azure App Service용 Maven 플러그 인을 추가하면 Azure App Service에 앱을 배포할 수 있습니다.

이 단원에서는 회사에서 Azure App Service에서 앱을 호스트하는 옵션을 살펴본 다음 Maven 프로젝트에 앱을 추가하고 구성하는 azure-webapp-maven-plugin 방법을 알아봅니다.

Azure App Service 소개

Azure App Service를 사용하면 Azure에서 회사의 웹 사이트, 웹앱, REST API 및 기타 애플리케이션 코드를 호스트할 수 있습니다. 프로젝트 코드가 클라우드에서 실행되고 있습니다. 인프라를 프로비전하거나 구성할 필요가 없습니다. Azure App Service에서 웹앱을 실행하면 Azure에서 실행되는 모든 이점이 제공됩니다. 앱은 전역적으로 사용 가능하고, 자동으로 확장되며, 보안 및 규정 준수가 기본 제공되며, 사용하는 리소스에 대해서만 비용을 지불합니다.

Azure App Service는 여러 프로그래밍 언어를 지원하므로 개발자는 가장 편안한 언어를 사용하여 애플리케이션을 계속 작성할 수 있습니다. Java는 .NET Core, Python, Node.js등과 같은 다른 언어와 함께 일류 시민입니다. Linux, Windows 또는 Docker 컨테이너 내에서 만든 웹앱을 호스트할 수 있습니다. Azure에 웹앱을 배포하기 전에 앱에 필요한 프로비전된 컴퓨팅 리소스의 크기를 결정하는 OS 및 가격 책정 계층을 지정하는 App Service 계획을 Azure에 만듭니다.

Maven 워크플로

Maven에는 프로젝트를 빌드하기 위한 기본 제공 수명 주기 세 가지가 있습니다: default, clean, 그리고 site. default 수명 주기에는 다음 단계가 포함됩니다.

단계 설명
compile 코드들을 컴파일합니다
package 코드를 JAR 또는 WAR로 패키지
install 로컬 리포지토리에 패키지를 설치합니다.
deploy 최종 패키지를 원격 리포지토리에 복사합니다.

그러나 Azure App Service용 Maven 플러그 인을 사용하는 경우 Maven의 default 수명 주기에 포함된 배포 단계를 사용하지 않습니다. 대신 명령을 사용하여 Azure에 앱을 배포합니다 mvn azure-webapp:deploy .

프로젝트에 Azure App Service용 Maven 플러그 인 추가

Azure App Service용 Maven 플러그 인을 웹앱에 추가하려면 다음과 같이 프로젝트의 pom.xml 파일에 대한 azure-webapp-maven-plugin XML을 추가합니다.

<plugin>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>azure-webapp-maven-plugin</artifactId>
  <version>2.13.0</version>
</plugin>

그러나 플러그 인은 POM 파일에 구성을 추가하는 편리하고 대화형 방법을 제공합니다.

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config

플러그 인은 App Service 계획을 구성하는 데 필요한 정보를 묻는 메시지를 표시합니다. 선택 사항을 확인한 후 플러그 인은 Azure App Service에서 실행되도록 웹앱을 구성하는 프로젝트의 pom.xml 파일에 이전 플러그 인 요소와 필수 설정을 추가합니다.

비고

최신 버전의 Maven 플러그인에 대한 정보를 얻으려면 Azure App Service 관련 Maven 플러그인 문서 또는 Maven 중앙 리포지토리를 확인하세요.

구성 옵션

이 단원의 이전 섹션에서는 Azure App Service용 Maven 플러그 인을 대화형으로 사용하여 웹앱을 구성하는 방법을 설명했습니다. 그러나 구성을 대화형으로 실행할 필요는 없습니다. 원하는 경우 플러그 인의 XML을 프로젝트의 pom.xml 파일에 수동으로 추가할 수 있습니다.

다음 주석이 추가된 파일에서 발췌한 pom.xml 내용은 몇 가지 필수 설정을 보여 줍니다.

<plugin> 
  <groupId>com.microsoft.azure</groupId>  
  <artifactId>azure-webapp-maven-plugin</artifactId>  
  <version>2.13.0</version>  
  <configuration> 
    <schemaVersion>v2</schemaVersion>  
    <subscriptionId>aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e</subscriptionId>  
    <resourceGroup>learn-9c627899-58ae-4ef5-9630-3336ec7bce0c</resourceGroup>  
    <appName>MyWebApp-1610102860270</appName>  
    <pricingTier>S1</pricingTier>  
    <region>westus</region>  
    <runtime> 
      <os>Linux</os>  
      <javaVersion>Java 17</javaVersion>  
      <webContainer>Tomcat 10.0</webContainer> 
    </runtime>  
    <deployment> 
      <resources> 
        <resource> 
          <directory>${project.basedir}/target</directory>  
          <includes> 
            <include>*.war</include> 
          </includes> 
        </resource> 
      </resources> 
    </deployment> 
  </configuration> 
</plugin> 

관련 구성 옵션 중 일부는 다음 표에 있습니다. 옵션의 전체 목록은 Azure App Service용 Maven 플러그 인 설명서를 참조하세요.

태그 옵션
<javaVersion> Linux는 버전 8, 11 및 17을 지원합니다.
Windows는 버전 8, 11 및 17을 지원합니다.
<webContainer> Linux는 Tomcat, JBoss EAP 7.2 및 Java SE를 지원합니다.
Windows에서 Tomcat 및 Java SE를 지원합니다.
<resource> WAR 또는 JAR이 프로젝트에 있는 위치를 지정합니다.

배포 옵션

App Service 계획을 이미 만든 경우 pom.xml 파일에서 그 계획에 대한 설정을 지정할 수 있습니다. Azure에 웹앱을 배포할 때 Maven은 이러한 설정을 사용하여 기존 App Service 계획에 새 앱을 배포합니다.

<!-- Deploy Web App to the existing App Service Plan -->
<appServicePlanResourceGroup>${PLAN_RESOURCEGROUP_NAME}</appServicePlanResourceGroup>
<appServicePlanName>${PLAN_NAME}</appServicePlanName>

또 다른 옵션은 플러그인 설정을 대화형으로 구성할 때 azure-webapp-maven-plugin가 App Service 계획을 직접 만들도록 허용하는 것입니다. 이 옵션은 파일에 기존 App Service 계획을 지정하지 않는 경우 플러그 인의 기본 동작입니다 pom.xml .

App Service 계획을 대화형으로 만들든 수동으로 만들든 관계없이 동일한 Maven 명령을 사용하여 애플리케이션 코드를 Azure에 배포합니다.

mvn package azure-webapp:deploy

다음 연습에서는 Azure App Service에 웹앱을 배포합니다.