[Azure] SpringBoot, AppService로 배포
개인 Toy 프로젝트를 라즈베리파이를 통해 개발하다 요즘 MS Azure를 활용하여 개발중입니다.
AWS를 쓰다 무료기간이 지난후 과금으로 인해 Cloud를 사용하지 않고 있다 살펴보니 좋더군요..
구글도 아마존도 MS 도 다 비슷하게 1년동안 무료로 제공하고 있으니
꼭 Azure를 사용할 필요는 없습니다.
https://azure.microsoft.com/ko-kr/free/
처음에는 1년에 22만원을 제공하나? 해서 조금씩 써야겠다고 생각했지만.. 매달 지원해주고 있습니다.
'Virtual machines'로 우분투 서버를 에 수동으로 App을 배포해서 사용해도 되겠지만
'App Services' 서비스에 배포 하는 방법을 알아보았습니다.
이런저런 방법들을 시도해도 잘 되지 않아 괜히 고생했지만 결국 현재 사용하고 있는 방법을 담고 있는 링크는
를 참고하였습니다.
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만 띄워 사용중인데 추후 기회가 된다면
제공하고 있는 기능들을 활용 후 정리해두도록 하겠습니다.
'JAVA > Spring' 카테고리의 다른 글
[Spring] zuul 사용시 Eureka client로 분배가 안되는경우 (0) | 2019.08.16 |
---|---|
[Spring] JDBC Template 어떻게 Thread-Safe 할까? (0) | 2019.08.06 |
Spring Boot Toy 프로젝트 세션 클러스터링-1 (0) | 2019.07.04 |
Spring Cloud Config Server (0) | 2019.06.25 |
[SpringBoot] Embedded Tomcat, NioEndpoint (0) | 2019.06.11 |