Intro

본 포스팅은 이전 Oracle Cloud 가입과 간단한 설정에 관하여 작성했던 포스트의 IBM 버전이다. IBM Cloud의 가입과 Free Tier인 Lite 계정에서 클라우드 초심자가 개발 환경을 설정해 본 경험을 (= 미래의 내가 잊어먹지 않도록 정리해둔 것을) 다룬 것이다. 나와 같은 분들과 IBM Cloud를 처음 사용하시는 분들께 조금이나마 참고 자료로서 도움이 되었으면 하는 마음에 글을 작성하였다.

IBM Cloud란?

IBM Cloud는 어디선가 한 번쯤은 들어봤을 IBM사에서 운영하는 Cloud Flatform으로, 현재 무료 티어인 Lite 계정을 지원하고 있다. 특히 무료 티어에서도 2GB의 데이터 스토리지, 1 vCPU 제공 등 무료임에도 준수한 서비스들을 제공하고 있다는 것이 특징이다. 또한, Free Tier인 Lite 계정의 경우 기간 제한이 없고, 신용 카드 정보도 필요하지 않다는 점을 내세우고 있다.

2021-04-15-ibm-cloud01.PNG

가입

가입은 과정을 따라 진행하면 되며, 메일로 code를 인증하면 계정 생성이 완료된다.

2021-04-15-ibm-cloudsignup01.PNG

로그인하게 되면 여타 클라우드 서비스와 마찬가지로 대시보드 화면을 마주할 수 있게 된다.

2021-04-15-ibm-cloud03.PNG

설정 및 샘플 앱 생성

대시보드 화면에서 좌측 상단의 메뉴를 클릭하면 위와 같이 숨겨져 있던 메뉴들이 주루룩 나오는데, Cloud Foundry메뉴에서 vCpu를 생성할 수 있으므로 클릭해주도록 하자.

2021-04-15-ibm-cloud04.PNG

클릭하면 설정하는 화면으로 이동하게 되며, 해당 화면에서 생성하고자 하는 앱과 리소스 구성에 대한 설정을 손쉽게 할 수 있다. 별도의 Shell 환경에서의 지정을 거치지 않아도 된다는 게 아주 편했다.

2021-04-15-ibm-cloud05.PNG

설정 화면을 넘어가면, 샘플 앱에 대한 이름과 위치(국가), 요금제 등을 선택하는 화면이 출력된다.

Lite 계정은 최대 256MB의 메모리까지 사용 가능하다.

2021-04-15-ibm-cloud07.PNG

무료 티어를 체험하는 것이 목적이므로, 플랜에 맞는 요금제를 선택하면, 어떤 언어와 자원으로 앱을 구성할 것인지를 선택하게 된다. Node.js 테스트 목적으로 환경을 구성할 것이기 때문에 SDK for Node.js 를 선택하고, 간단한 태그를 기입해주었다.

2021-04-15-ibm-cloud08.PNG

설정이 완료되면 다음과 같은 화면을 마주할 수 있다.

2021-04-15-ibm-cloud09.PNG

그리고 앱 URL 방문을 클릭하여 URL로 이동하면, 반가운 Hello World 화면을 마주할 수 있다.

2021-04-15-ibm-cloud10.PNG

Node.js Repository Clone

IBM github에서 get-started-node 레포지토리를 클론해서 Node.js 샘플 프로젝트를 실행해 볼 수 있다. 클론해서 관련 의존성 자료들을 설치하고,

npm install
npm start

를 해주면 3000번 포트에 서비스가 돌아가고 있다는 결과를 받을 수 있다. https://localhost:3000 에 접속하면 다음과 같은 화면이 나오는 것을 확인할 수 있다.

2021-04-15-ibm-cloud13.PNG

IBM Cloud CLI 를 통하여 배포하기

IBM 홈페이지의 IBM Cloud CLI 시작하기 문서는 IBM Cloud CLI를 통하여 Foundry 환경에 배포하는 방법을 단계적으로 설명하고 있다. 우선, 운영체제에 맞는 IBM Cloud CLI 를 설치한다.

MacOS or Linux

curl -sL https://raw.githubusercontent.com/IBM-Cloud/ibm-cloud-developer-tools/master/linux-installer/idt-installer | bash

Windows 10 Pro (PowerShell 관리자 모드로 실행)

[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"; iex(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/IBM-Cloud/ibm-cloud-developer-tools/master/windows-installer/idt-win-installer.ps1')

설치가 완료되면 명령어를 통하여 로그인하여 지역설정을 해주자. 지역은 Foundry를 생성할 때 설정했던 지역과 동일하게 선택해주도록 하자. (ex. 댈러스 = us-south)

ibmcloud login

로그인이 완료되면, Cloud Foundry 앱 설정 관련 파일인 manifest.yml 을 변경해주어야 한다. 앞서 생성한 Cloud Foundry에 맞게 설정해주어야 하며 설정을 제대로 해주지 않으면 앱이 하나 더 생겨서 메모리 아웃 (에러 정리 3번, 메모리 부족 참고)에러가 발생하므로 제대로 설정해주도록 하자.

설정을 완료하였다면 다음 명령어를 통하여 ibmcloud에 배포하면 된다.

ibmcloud target --cf
ibmcloud cf push

로그에 찍히는 URL로 접근해보면 아까 레포지토리를 클론해서 배포 테스트했던 화면이 나오는 것을 확인할 수 있다. 만약 나오지 않는다면 리소스 그룹 설정 및 포트 관련 설정을 한 번 체크해보자..ㅠㅠ

2021-04-15-ibm-cloudsuccess01.PNG

2021-04-15-ibm-cloudsuccess02.PNG

설치 중 발생했던 에러 정리

리소스 그룹 관련 에러

다음과 같이 ‘대상으로 지정된 리소스 그룹이 없습니다.’ 라는 에러가 발생하였다.

리소스 지정만 해주면 된다.

ibmcloud target -g Default
  • IBM Cloud Foundry를 통해 만들어둔 app 지정이 안되어 있었다는 것을 알았더라면 쉽게 해결했을 문제…

‘Cloud Foundry CLI가 IBM Cloud CLI에 설치되지 않았습니다.’

ibmcloud cf install

메모리 부족

2021-04-15-ibm-clouderror_memory.PNG

메모리가 부족하다면서 에러가 발생할 때 ibm cloud 대시보드에서 app이 2개가 올라가진 않았는지 체크해보자.

  • manifest.yml 에서 app name을 안바꿔서 get-started-node가 별도의 app 으로 올라가서 메모리 아웃이 발생한 상황
  • 로그인하고, manifest.yml 파일을 열고 app name을 안바꿔주면 새로운 Cloud Foundry 앱을 만들어버린다는 점 상기할 것.