빠른 시작: Azure App Service에서 Java 앱 만들기

Azure App Service는 확장성 높은 자체 패치 웹 호스팅 서비스를 제공합니다. 이 빠른 시작에서는 Azure Web App Plugin for Maven과 함께 Azure CLI를 사용하여 .jar 파일 또는 .war 파일을 배포하는 방법을 보여줍니다. 탭을 사용하여 Java SE와 Tomcat 지침 사이를 전환합니다.

참고

IntelliJ 및 Eclipse와 같은 인기 있는 IDE를 사용하여 동일한 작업을 수행할 수도 있습니다. Azure Toolkit for IntelliJ 빠른 시작 또는 Azure Toolkit for Eclipse 빠른 시작에서 유사한 문서를 확인하세요.

Azure App Service에서 실행 중인 샘플 앱

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure Cloud Shell 사용

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.

옵션 예제/링크
코드 블록의 오른쪽 위 모서리에서 사용 을 선택합니다. 사용해보기 를 선택하면 코드가 Cloud Shell에 자동으로 복사되지 않습니다. Azure Cloud Shell에 대한 사용 예제
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 버튼을 선택하여 브라우저에서 Cloud Shell을 엽니다. 새 창에서 Cloud Shell 시작
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Azure Portal의 Cloud Shell 단추

이 문서의 코드를 Azure Cloud Shell에서 실행하려면 다음을 수행합니다.

  1. Cloud Shell을 시작합니다.

  2. 코드 블록의 복사 단추를 선택하여 코드를 복사합니다.

  3. Windows 및 Linux에서 Ctrl+Shift+V 를 선택하거나 macOS에서 Cmd+Shift+V 를 선택하여 코드를 Cloud Shell 세션에 붙여넣습니다.

  4. Enter 를 선택하여 코드를 실행합니다.

Java 앱 만들기

Spring Boot 시작하기 샘플 프로젝트를 복제합니다.

git clone https://github.com/spring-guides/gs-spring-boot

디렉터리를 완료된 프로젝트로 변경합니다.

cd gs-spring-boot/complete

Maven 플러그 인 구성

Azure App Service에 대한 배포 프로세스는 Azure CLI의 Azure 자격 증명을 자동으로 사용합니다. Azure CLI가 로컬로 설치되어 있지 않으면 Maven 플러그 인은 Oauth 또는 디바이스 로그인으로 인증됩니다. 자세한 내용은 Maven 플러그 인으로 인증을 참조하세요.

아래의 maven 명령을 실행하여 배포를 구성합니다. 이 명령은 App Service 운영 체제, Java 버전 및 Tomcat 버전을 설정하는 데 도움이 됩니다.

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.0.0:config
  1. Subscription 옵션을 사용하라는 메시지가 표시되면 줄 시작에 인쇄된 번호를 입력하여 적절한 Subscription을 선택합니다.

  2. Web App 옵션을 사용하라는 메시지가 표시되면 Enter를 눌러 기본 옵션 <create>를 선택합니다.

  3. OS 옵션을 사용하라는 메시지가 표시되면 2를 입력하여 Windows 를 선택합니다.

  4. javaVersion 옵션을 사용하라는 메시지가 표시되면 1을 입력하여 Java 8 을 선택합니다.

  5. 가격 책정 계층 옵션을 사용하라는 메시지가 표시되면 7을 입력하여 P1v2 를 선택합니다.

  6. 마지막으로, 마지막 프롬프트에서 Enter를 눌러 선택 내용을 확인합니다.

    요약 출력은 아래에 표시된 코드 조각과 유사하게 표시됩니다.

    Please confirm webapp properties
    Subscription Id : ********-****-****-****-************
    AppName : spring-boot-1599007390755
    ResourceGroup : spring-boot-1599007390755-rg
    Region : westeurope
    PricingTier : Basic_B2
    OS : Windows
    Java : 1.8
    WebContainer : java 8
    Deploy to slot : false
    Confirm (Y/N)? : Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 41.118 s
    [INFO] Finished at: 2020-09-01T17:43:45-07:00
    [INFO] ------------------------------------------------------------------------
    
  1. Subscription 옵션을 사용하라는 메시지가 표시되면 줄 시작에 인쇄된 번호를 입력하여 적절한 Subscription을 선택합니다.

  2. Web App 옵션을 사용하라는 메시지가 표시되면 Enter를 눌러 기본 옵션 <create>를 선택합니다.

  3. OS 옵션을 사용하라는 메시지가 표시되면 Enter를 눌러 Linux 를 선택합니다.

  4. javaVersion 옵션을 사용하라는 메시지가 표시되면 1을 입력하여 Java 8 을 선택합니다.

  5. 가격 책정 계층 옵션을 사용하라는 메시지가 표시되면 6을 입력하여 P1v2 를 선택합니다.

  6. 마지막으로, 마지막 프롬프트에서 Enter를 눌러 선택 내용을 확인합니다.

    Please confirm webapp properties
    Subscription Id : ********-****-****-****-************
    AppName : spring-boot-1599007116351
    ResourceGroup : spring-boot-1599007116351-rg
    Region : westeurope
    PricingTier : Basic_B2
    OS : Linux
    RuntimeStack : JAVA 8-jre8
    Deploy to slot : false
    Confirm (Y/N)? : Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 20.925 s
    [INFO] Finished at: 2020-09-01T17:38:51-07:00
    [INFO] ------------------------------------------------------------------------
    

필요한 경우 pom.xml에서 직접 App Service에 대한 구성을 수정할 수 있습니다. 몇 가지 일반적인 사항은 다음과 같습니다.

속성 필수 설명 버전
<schemaVersion> false 구성 스키마의 버전을 지정합니다. 지원되는 값은 v1, v2입니다. 1.5.2
<subscriptionId> false 구독 ID를 지정합니다. 0.1.0+
<resourceGroup> true 웹앱에 대한 Azure 리소스 그룹입니다. 0.1.0+
<appName> true 웹앱의 이름입니다. 0.1.0+
<region> true 웹앱이 호스트되는 지역을 지정합니다(기본값: westeurope). 지원되는 지역 섹션에 있는 모든 유효한 지역입니다. 0.1.0+
<pricingTier> true 웹앱에 대한 가격 책정 계층입니다. 기본값은 프로덕션 작업의 경우 P1V2 이고, B2 는 Java 개발/테스트에 권장되는 최솟값입니다. 자세히 알아보기 0.1.0+
<runtime> true 런타임 환경 구성이며, 여기에서 세부 정보를 볼 수 있습니다. 0.1.0+
<deployment> true 배포 구성이며, 여기에서 세부 정보를 볼 수 있습니다. 0.1.0+

<appName><resourceGroup> 값(이 데모에서는 helloworld-1590394316693helloworld-1590394316693-rg에 따라 다름)에 유의해야 합니다. 나중에 사용됩니다.

앱 배포

Maven 플러그 인은 Azure CLI의 계정 자격 증명을 사용하여 App Services에 배포합니다. 계속하려면 Azure CLI로 로그인합니다.

az login

그런 후, 다음 명령을 사용하여 Java 앱을 Azure에 배포할 수 있습니다.

mvn package azure-webapp:deploy

참고

JBoss EAP의 경우 Wildfly를 로컬로 설치해야 하므로 mvn package azure-webapp:deploy -DskipTests를 실행하여 테스트를 사용하지 않도록 설정합니다.

배포가 완료되면 애플리케이션이 http://<appName>.azurewebsites.net/(이 데모에서는 http://helloworld-1590394316693.azurewebsites.net)에 준비됩니다. 로컬 웹 브라우저에서 url을 열면 다음이 표시됩니다.

Azure App Service에서 실행 중인 샘플 앱

축하합니다. App Service에 첫 번째 Java 앱을 배포했습니다.

리소스 정리

이전 단계에서 Azure 리소스를 리소스 그룹에 만들었습니다. 나중에 이러한 리소스가 필요하지 않을 것으로 예상되는 경우 포털에서 리소스 그룹을 삭제하거나 Cloud Shell에서 다음 명령을 실행하여 리소스 그룹을 삭제합니다.

az group delete --name <your resource group name; for example: helloworld-1558400876966-rg> --yes

이 명령을 실행하는 데 1분 정도 걸릴 수 있습니다.

다음 단계