azure에 해당하는 글 1

[Azure] SpringBoot, AppService로 배포

JAVA/Spring|2019. 8. 2. 18:51

개인 Toy 프로젝트를 라즈베리파이를 통해 개발하다 요즘 MS Azure를 활용하여 개발중입니다.

AWS를 쓰다 무료기간이 지난후 과금으로 인해 Cloud를 사용하지 않고 있다 살펴보니 좋더군요..

 

구글도 아마존도 MS 도 다 비슷하게 1년동안 무료로 제공하고 있으니 

꼭 Azure를 사용할 필요는 없습니다.

 

ms azure는 한달 22만원에 크레딧을 제공하고 있습니다

https://azure.microsoft.com/ko-kr/free/

처음에는 1년에 22만원을 제공하나? 해서 조금씩 써야겠다고 생각했지만.. 매달 지원해주고 있습니다.

 

'Virtual machines'로 우분투 서버를 에 수동으로 App을 배포해서 사용해도 되겠지만

'App Services' 서비스에 배포 하는 방법을 알아보았습니다.

 

이런저런 방법들을 시도해도 잘 되지 않아 괜히 고생했지만 결국 현재 사용하고 있는 방법을 담고 있는 링크는

https://docs.microsoft.com/ko-kr/java/azure/spring-framework/deploy-spring-boot-java-app-with-maven-plugin?view=azure-java-stable

 

를 참고하였습니다.

 

SpringBoot App을 개발후 'Azure App Service'에 배포하기 위해 필요한 내용은 사실

"Azure App Service용 Maven 플러그인 구성" 부터 보면 됩니다.

 

0. azure cli 설치 및 로그인(https://docs.microsoft.com/ko-kr/cli/azure/?view=azure-cli-latest)

0.1 배포시 az 인증이 필요하기 때문에 az login 커맨드를 통해 로그인

 

az cli 설치 하지 않고 배포하는방법은 추후 발견하게되면 첨부 하겠습니다..

 

1. pom.xml 에 azure 플러그인을 추가

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

2. mvn azure-webapp:config 수행

2.1 배포할 환경 설정하게 됩니다.(OS, javaVersion 등)

2.2 위 설정 이후 pom.xml에 <configuration> 항목에 설정한 내용들이 추가 되는데, 여기서 <region>이 미국으로 설정되던데 한국으로 바꾸고 싶다면 <region>koreacentral</region> 으로 바꾸시면 됩니다.

2.3 pom.xml에 appName과 resourceGroup 모두 적힌 그대로 배포되기 때문에 필요하면 배포전 수정하시기 바랍니다.

 

3. port 설정을 위해 <appSettings>에 JAVA_OPTS ,-Dserver.port=80 설정

3.1 저는 추가로 profile 설정이 필요해서 SPRING_OPTS 로 설정을 시도해보았지만 안되어 JAVA_OPTS에 -Dserver.port=80 -Dspring.profiles.active=run 설정하여 정상적으로 동작했습니다.

 

 

4. 설정파일은 다 됬고 이제 배포

4.1 mvn clean package

4.2 mvn azure-webapp:deploy

4.3 4.2을 하다가 인증 에러 발생시 0.1 에 로그인 다시 진행

 

5. 배포 완료 

5.1 이제 포탈에서 적혀있는 url로 접속하여 정상적으로 접속 되는지 확인하면 됩니다.

 

Azure 에 'App Services'는 'Virtual machines' 과 달리 

Development Tools 이나 Scale out 과  같은 기능들도 지원되고 있습니다.

 

 

아직은 기본적으로 각 AppService만 띄워 사용중인데 추후 기회가 된다면

제공하고 있는 기능들을 활용 후 정리해두도록 하겠습니다.

 

댓글()