연습 - Azure App Service에 웹앱 배포

완료됨

앞 단원에서는 Java 개발자가 Azure App Service용 Maven 플러그인을 사용하면 웹앱을 빌드하여 Azure에 빌드하는 프로세스가 간편하게 자동화된다는 사실을 알아보았습니다. 웹앱을 만들고 로컬로 테스트했으면 이제 Azure App Service에 배포할 차례입니다.

이 연습에서는 프로젝트에 azure-webapp-maven-plugin 플러그인을 추가하고 앱을 Azure App Service에 배포하기 위한 필수 설정을 구성합니다. 웹앱을 Azure에 성공적으로 배포한 후에는 Azure App Service에서 실행되는 웹앱을 테스트합니다.

프로젝트에 azure-webapp-maven-plugin 플러그인 추가

  1. azure-webapp-maven-plugin을 사용하여 Maven pom.xml 파일에 대화형으로 플러그 인 및 구성 설정을 추가합니다.

    cd ~/MyWebApp
    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
    

    각 대화형 프롬프트에 다음 값을 입력합니다.

    프롬프트
    새 실행 구성 만들기 Y 입력
    Define value for OS(OS 값 정의) Linux에 해당하는 숫자 입력
    Define value for javaVersion(javaVersion 값 정의) Java 17에 해당하는 숫자 입력
    webContainer의 값 정의 TOMCAT 10.0에 해당하는 숫자 입력
    Define value for pricingTier(pricingTier 값 정의) S1에 해당하는 숫자 입력
    확인(Y/N) Y 입력

    플러그인이 사용자의 선택 사항을 반영하는 적절한 설정을 pom.xml 파일에 추가합니다.

  2. code를 사용하여 pom.xml 파일을 확인하고 편집할 수 있습니다.

    code pom.xml
    
  3. pom.xml 파일의 <build> 섹션은 다음 예제와 비슷할 것입니다.

    <finalName>MyWebApp</finalName>
    <pluginManagement>
      ...
    </pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-webapp-maven-plugin</artifactId>
          <version>2.13.0</version>
          <configuration>
            <schemaVersion>v2</schemaVersion>
            ...
    
  4. Ctrl+S를 입력하여 변경 내용을 저장합니다.

  5. Ctrl+Q를 입력하여 코드 편집기를 종료합니다.

샌드박스 리소스 그룹을 사용하도록 플러그 인 구성

  1. 이 연습에서는 샌드박스의 리소스 그룹 이름과 위치를 확인해야 합니다. 이렇게 하려면 다음 명령을 사용합니다.

    az group list --query [0].name
    az group list --query [0].location
    

    이 연습의 뒷부분에서 사용할 수 있도록 값을 복사해 두세요.

  2. azure-webapp-maven-plugin을 다시 사용하여 대화형으로 Maven pom.xml 파일에 더 많은 설정을 구성합니다.

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

    각 대화형 프롬프트에 다음 값을 입력합니다.

    프롬프트
    Please choose which part to config(구성할 부분 선택) 애플리케이션을 구성하는 데 필요한 숫자 입력
    Define value for appName(appName 값 정의) 기본값을 그대로 적용
    Define value for resourceGroup(resourceGroup 값 정의) 앞에서 복사한 리소스 그룹의 이름 입력([샌드박스 리소스 그룹 이름])
    Define value for region(지역 값 정의) 앞에서 복사한 리소스 그룹의 위치 입력
    Define value for pricingTier(pricingTier 값 정의) f1 계층에 해당하는 숫자 입력
    확인(Y/N) Y 입력

    플러그인이 pom.xml 파일에서 설정을 업데이트합니다.

웹앱 배포 및 테스트

  1. Maven을 사용하여 웹앱을 빌드하고 Azure App Service에 배포합니다.

    mvn package azure-webapp:deploy
    

    각 대화형 프롬프트에 다음 값을 입력합니다.

    프롬프트
    구독 선택 구독에 해당하는 번호 입력

    Maven에 일련의 빌드 메시지가 표시됩니다. 마지막 메시지는 Azure에 성공적으로 배포되었음을 나타냅니다.

    [INFO] Successfully deployed the resources to MyWebApp-1570214065588
    [INFO] Trying to deploy artifact to MyWebApp-1570214065588...
    [INFO] Deploying (/home/cephas/MyWebApp/target/MyWebApp.war)[war]  ...
    [INFO] Application url: https://MyWebApp-1570214065588.azurewebsites.net
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  31.001 s
    [INFO] Finished at: 2024-05-02T12:08:40Z
    [INFO] ------------------------------------------------------------------------
    
  2. 셸에서 URL을 선택하여 배포된 앱에 액세스합니다. 기본적으로 Maven 플러그인은 기본(루트) 컨텍스트에 Tomcat 애플리케이션을 배포합니다.

    웹 브라우저의 Azure App Service에서 실행되는 예제 웹앱

다음 연습에서는 웹앱을 업데이트하여 Azure App Service에 재배포합니다.