본문 바로가기

Cloud

PaaS-TA (4) - 앱 배포

드디어 앱을 배포하는 단계다.

 

우선 이전에 생성한 DB 서비스와는 바인딩하지 않는, static web 앱을 배포해보자.

 

기본적인 명령어는 

cf push [앱이름] 

인데, 앱 이름은 몹시 중요하다. 배포 후 해당 앱을 사용하려면 앱명.도메인 을 입력해야 한다. 개인 도메인을 구매하고 redirect해줘도 되지만, 어쨌든 앱명은 단순할 수록 좋은듯 하다.

그리고 본격적인 배포에 앞서, 배포에서 제외될 파일을 정의해야하는데, .gitignore처럼 .cfignore 파일을 만들어 제외될 파일을 정의하면 된다. 우선 배포할 파일이 있는 폴더로 이동한다.

이런 경로의 모든 파일 배포가 필요하다면 터미널에서 mymask 경로에 .cfignore 파일을 생성해야한다.(cmder라는 터미널 프로그램을 이용했다. 폴더 이동과 파일 생성은 각자의 환경에 맞추면 된다.)

cd /c/dev/src/mymask
vi .cfignore
# .cfignore
.git/**
.gitignore
README.md
.idea/**
*.iml
*.seqdiagram
.cfignore

앱 배포에 굳이 필요없는 파일을 제외시켰다. 특히나 깃과 ide 파일들, 설계 파일들이 불필요하게 웹서버로 넘어가지 않도록 조심하자.

 

이제 배포를 해보자. 앱 배포에는 많은 파라미터를 입력할 수 있다. manifest파일을 생성하여 파라미터 입력을 생략할 수 있지만, manifest 파일내에서 사용하는 문법이 생소할 수 있으므로 파라미터 입력으로 대체하고, 생성된 앱의 정보를 manifest 파일로 만드는 방법을 사용한다. 

cf push mymask -b https://github.com/cloudfoundry/staticfile-buildpack#v1.4.27 -i 3 -k 512M -m 512M

-b는 빌드팩을 정의한다. 배포하려는 앱에 대한 빌드팩이 깃헙에 올라와 있으니 적당한 빌드팩을 선택하자.

https://github.com/cloudfoundry?q=buildpack&type=&language=

 

Cloud Foundry

Cloud Foundry Foundation active projects. Cloud Foundry has 502 repositories available. Follow their code on GitHub.

github.com

-i는 인스턴스 수를 정의한다. 로드 밸런싱을 생각해서 적당한 값을 선택하자.

-k는 디스크 할당량, -m은 메모리 할당량이다. 역시 적당한 값을 선택하자.

 

모든 과정이 완료되면 push 결과가 출력된다.

요청된 상태: started 
...
URL: mymask.kpaasta.cloud
...
     상태      이후                     CPU    메모리        디스크        세부사항 

#0   실행 중   2020-03-19 09:07:28 PM   0.0%   0 / 512M      0 / 512M 

#1   실행 중   2020-03-19 09:07:29 PM   0.0%   3.9M / 512M   448K / 512M 

#2   실행 중   2020-03-19 09:07:29 PM   0.0%   0 / 512M      0 / 512M

URL로 접속해서 제대로 배포가 이루어졌는지 확인해보자. 참고로 별다른 https 설정을 하지 않아도 자동으로 활성화되어 있다. 갓파스..

 

만약 컴퓨터를 포맷했거나, CF CLI를 사용하는 PC가 바뀌었을 경우 매번 파라미터를 입력해야하해서 귀찮다. 위 파라미터를 manifest 파일로 저장해서 파라미터 입력없이 push가 가능하도록 해보자.

cf create-app-manifest mymask

그러면 앱이름_manifest.yml 파일이 생성되는데 지금까지 입력했던 파라미터들이 해당 파일에 잘 보존되어 있는 걸 확인할 수 있다.

 

위 과정을 CF CLI가 아닌 콘솔에서도 배포가 가능하다.

PaaS - 앱 & 서비스 - 앱 메뉴로 에동하면 [앱 추가]버튼이 있다. 클릭해서 들어가보면

빌드 팩을 선택할 수 있다. js, css, html로 구성된 단순 웹 앱을 배포할 계획이므로 staticfile 빌드팩을 선택하고 다음으로 넘어갖. 그전에 조직과 영역을 선택하는건 필수.

 

배포할 앱을 선택하고, 자원을 적당히 설정한 뒤 배포를 누르면 배포 과정이 완료된다.

 

사실 CF CLI를 이용하는것 보다 콘솔을 이용하는 편이 훨씬 직관적이고 편하다. 그런데 배포한 앱의 파일을 교체하고 싶은데 수정할 방법을 찾지 못해 CF CLI를 공부하게 되었다. 콘솔로 앱 배포까지 끝마친 뒤 CF CLI로 재배포하는 방법을 써도 되긴 하지만, 이왕이면 CF CLI로 영역설정부터 앱 배포까지 해보고 싶었다.