한국형 PaaS-Ta, K-PaaS 사용기(springboot-mysql)

2024. 1. 18. 23:31개발/클라우드

https://paastaguide.gitbook.io/paas-ta-5-5-0/guide-5.5.0-semini/development-guide/buildpack_develope_guide

 

한국의 PaaS-Ta 종류는

NaverCloud, NHN, KT 클라우드 등이 있으며, 플레이파크의 연구 목적의 플랫폼이 있다.

 

이중에서 필자는 플레이파크를 사용하여, 서비스를 만들었다.

 

react-springboot이다.

 

프론트는 nginx로 변환하여 빌드하였고

이후 백엔드를 배포하였다.

 

K-PaaS로 배포를 할 때, 공식 문서 외에는 배울 곳이 없었기 때문에 이러한 정리글이 있으면 좋겠다고 생각했고, 누군가 K-PaaS를 사용할 때, 유용하게 썼으면 하는 마음에 다음과 같이 글을 쓰게 되었다.

 

"함께 배포한 사람: 나인데"

 

 

먼저 했던 삽질은

 

플레이파크 인스턴스에서 jar 파일을 넣고 생성해보았다.

 

하지만 플레이파크에서 지원했던 버전과 맞지 않아 다음과 같이 진행하였다.

 

 

1. cf cli 다운로드

2. cli에서 cf 로그인

  • paas-ta의 api 엔드포인트는 https://api.k-paas.org이다.
  • email에 플레이파크에서 발급받은 아이디, 비밀번호에 발급받은 비밀번호를 적는다.

3. jar 파일 생성하기

  • 해당 프로젝트 경로로 들어가서 gradlew build나 gradle build 명령어를 입력한다.
  • 그 후 build/libs 파일에 들어가면 다음과 같이 jar파일이 생성된걸 볼 수 있다.

4. manifest.yml 파일 생성

  • cf로 앱을 배포하기 위해선 설정파일이 필요한데 이걸 manifest.yml이 한다.
applications:
- name: oncloud-back
  host: oncloud-back
  memory: 1024M
  instances: 1
  random-route: false
  path: ./cloudmaestro-0.0.1-SNAPSHOT.jar
  buildpacks:
    - java_buildpack
  env:
    JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 17.+ } }'
  • 위의 yml 파일을 보면 이름, 메모리, 인스턴스, jar파일 경로와 buildpacks을 지정해준다
  • 여기서 플레이파크의 paas-ta는 java8밖에 지원을 안해주어 GUI 환경에서 앱을 배포하면 나의 springboot(java17) 버전과 충돌이 나서 배포가 되지 않는다.
  • 고로 env로 자바의 버전을 17로 manifest.yml에서 지정해준다.
  • 그 뒤 다음과 같이 jar파일과 yml 파일을 같은 경로에 넣어준다.

 

5. 클라우드로 웹 서버 올리기

  • 해당 디렉터리 위치에서 cf push 하면 yml에 정의된 이름과 파일이 올라가게 된다.
  • 다음과 같이 나오면 성공

 

 

mysql

 

공식문서

https://github.com/PaaS-TA/application-platform-guide/blob/master/install/service/mysql.md

 

mysql DBMS는 대쉬보드에서 바인딩 후, CLI로 터널링하여 연결하는 게 제일 쉽다.

로그인

cf login -a <https://api.k-paas.org> --skip-ssl-validation

email, pw 입력 후

cf apps

cf services

cf ssh oncloud-back -L 9900:232c636c-9377-4ce0-8348-60b2216a221f.proxy.default.mysql.bosh:13307

 

여기서 사용된 mysql hostname, username, password 등은 플레이파크 생성한 서비스의 ENV탭에서 확인할 수 있다.