IBM Cloud Foundry로 Node.js 프로젝트를 올려보자
Cloud 공부를 시작하려고 하는데 어디서부터 시작할지 조금 막연하게 느껴지던 중, IBM Cloud에서 자체적으로 다양한 튜토리얼을 제공하고 있다는 것을 알게 되었습니다. 평소에 Node.js에 대해 관심이 많았는데 관련 튜토리얼이 잘 구성되어 있어 저처럼 처음 클라우드 서비스를 접하는 분들께도 공유하고자 이번 포스팅을 기획했습니다.
이번 시간에는 IBM Cloud에 대해 간략히 설명하고, 튜토리얼에서 제공하는 Node.js 프로젝트를 클론 받아 클라우드에 직접 올려보면서 클라우드 서비스 중에서도 Foundry의 사용 방법을 가볍게 훑어볼 예정입니다.
클라우스 서비스에서 언급되는 클라우드는 아시다시피 '구름'을 말합니다. 우리가 여행을 가거나, 학교를 오갈 때 준비물로 '구름'을 챙겨가진 않죠. 언제 어디서나 존재하는 구름처럼 클라우드 서비스는 사용자가 일정한 비용만 내고 리소스를 저장해놓으면, 인터넷이 연결되어 있는 모든 환경에서 접근하고 사용할 수 있도록 하여 편리한 개발 환경을 제공합니다.
또한 서버나 DB를 제외하고도 AI, IoT, 블록체인 등 다양한 리소스를 제공하고 있으며, 대표적인 클라우드 서비스로는 AWS, Azure 등이 있습니다.
오늘 사용할 IBM Cloud는 이름에서도 알 수 있듯이 IBM에서 제공하는 클라우드 서비스입니다. 개인적으로 무료 버전인 Lite로 사용할 경우 별도의 카드 번호 입력을 요구하지 않는 점이 좋았고, UI 또한 다른 서비스에 비해 깔끔하고 직관적이라는 인상을 주었습니다. 이제부터 IBM Cloud를 시작해볼까요?
먼저 IBM Cloud 화면에서 계정 작성 버튼을 눌러 클라우드 계정을 생성할 수 있습니다.
그리고 로그인까지 완료하면 이렇게 대시보드가 활성화된 것을 볼 수 있습니다.
상단바에 있는 카탈로그 버튼을 클릭하면 아래와 같이 IBM Cloud에서 제공하는 다양한 서비스를 확인할 수 있습니다. 여기서 저희는 클라우드에 서버를 올리기 때문에 Cloud Foundry 서비스를 사용합니다.
Cloud Foundry는 서버나 클러스터를 자동으로 관리해주는 기능을 가진 서비스입니다. Node.js는 아시다시피 서버사이드 개발 플랫폼이기 때문에 Cloud Foundry 환경에 리소스를 올리면, 직접 서버를 관리하지 않아도 편하게 서버 환경을 유지할 수 있습니다.
Cloud Foundry를 누르고 스크롤을 내리면 애플리케이션 런타임 항목에서 어떤 환경을 이용할지 선택할 수 있는데, 이때 우리는 SDK for Node.js를 선택합니다.
SDK for Node.js 버튼을 누르고 나면 이렇게 Foundry 앱을 생성할 수 있는 폼이 나타납니다.
지역은 어차피 한국이 없기 때문에 기본으로 선택되어 있던 댈러스로 진행했고, 가격은 128MB까지 무료로 이용이 가능하므로 원하는 용량을 자유롭게 선택합니다.
앱 이름은 다른 사람들의 앱 이름과 중복되지 않게 유니크하게 짓습니다. 호스트 이름은 앱 이름을 지을 때 자동으로 완성되며, 도메인은 원하시는 주소를 편하게 선택하시면 됩니다. 조직 선택 및 영역 선택은 자동으로 선택되어 있습니다.
마지막으로 우측의 작성 버튼을 누르면 Cloud Foundry가 생성된 것을 확인하실 수 있습니다.
이제 클라우드에 올릴 파일을 받아오겠습니다. 아래 깃허브 레포지토리는 IBM Cloud Node.js 튜토리얼에 올라와있는 예제용 프로젝트입니다.
원하는 위치에서 bash나 powershell을 이용해 아래의 커맨드를 입력하거나, 직접 파일을 다운로드하여 로컬 환경에 복사본을 생성합니다.
git clone https://github.com/IBM-Cloud/get-started-node.git
테스트를 위해 받은 디렉터리로 들어가 아래의 커맨드를 차례로 입력하고, localhost:3000 포트로 들어가보면 코드가 잘 동작하는 것을 확인할 수 있습니다.
npm install
npm start
이제 방금 받아온 프로젝트를 저희가 만들었던 Foundry 환경에 올려보겠습니다.
먼저 아래의 커맨드를 입력하여 IBM Cloud CLI를 설치합니다. 더 자세한 내용은 공식 홈페이지를 참고하시기 바랍니다.
Mac, Linux
curl -sL https://ibm.biz/idt-installer | bash
Windows
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"; iex(New-Object Net.WebClient).DownloadString('https://ibm.biz/idt-win-installer')
그리고 아래의 커맨드를 입력하고 Cloud 가입에 사용했던 이메일 주소와 비밀번호를 입력하여 ibmcloud에 로그인합니다.
ibmcloud login
중간에 아래 사진처럼 지역 선택 화면이 뜨는데, 이때 아까 Foundry 생성에서 선택한 지역을 입력합니다. 제 경우는 Foundry 지역이 댈러스이므로 us-south를 선택했습니다.
그다음 지금 이 폴더를 어떤 클라우에 올릴 예정인지 알려주기 위해 폴더의 루트 디렉터리에 있는 manifest.yml 파일에서 name을 Foundry 앱 이름으로 수정하고 저장합니다.
참고로 manifest.yml파일은 Cloud Foundry 앱 설정 파일이며, 배포에 필요한 여러 조건을 설정할 수 있습니다.
이제 해당 디렉터리와 클라우드를 연결하기 위해 ibmcloud target --cf 커맨드를 입력하고, 마지막으로 ibmcloud cf push를 입력하여 리소스를 클라우드에 추가합니다. 참고로 cf는 Cloud Foundry를 의미합니다.
ibmcloud target --cf
ibmcloud cf push
정상적으로 추가가 완료되었다면 아래와 같은 결과 로그를 확인할 수 있습니다.
이제 클라우드에 리소스가 잘 올라갔는지 확인해볼까요? 빌드 후 몇 분 뒤에 로그에 찍혀있는 라우트 URL로 들어가 보면 localhost에서 확인했던 화면 그대로 잘 나오는 것을 확인할 수 있습니다.
오늘은 Node.js 튜토리얼을 이용하여 IBM Cloud에 직접 서비스를 올려보는 시간을 가졌습니다.
저 또한 클라우드를 사용해본 게 이번이 처음이었는데, 입문자도 쉽게 클라우드 서비스에 적응할 수 있도록 다양한 예제를 제공하고 위키가 잘 정리된 점이 인상 깊었습니다.
참고로 IBM Cloud Lite는 사용하는 데 별도의 시간제한은 없지만, 10일 이상 활동이 없다면 수면 모드, 30일 이상 활동이 없다면 서비스를 삭제하므로 이점 유의하시길 바랍니다.
수정이 필요한 부분이 있거나 궁금한 점이 있으시다면 댓글로 남겨주시기 바랍니다.
그럼 다음 시간에 뵙겠습니다.
클라우드 컴퓨팅이란? 초보자 가이드 | Microsoft Azure