OpenShift Online이라는 서비스입니다. 레드햇 리눅스로 유명한 레드햇이 만든 서비스입니다. 레드햇 하니까 믿음이 가네요.


https://www.openshift.com/


- OpenShift란?

오픈쉬프트는 PaaS입니다. 뭐 IaaS, PaaS, SaaS 이런거 겁나 많이 나오는 단어이긴 한데, 쉽게 말하면 전부 클라우드 서비스 같은거라고 보면 돼요. 

IaaS는 인프라를 서비스처럼 쓰는거라 클라우드서버 임대를 말하구요(최근 디지털 오션이나 아마존 EC2 같은 서비스죠), 

PaaS는 Heroku나 Google AppEngine같은 서비스를 말해요. 서버 셋팅이나 하드웨어 없이 플랫폼만 제공받는 것이지요. php, ruby, nodejs로 개발한 것, 설치형 블로그 워드프레스 같은 것도 그대로 올려서 서비스 할 수 있습니다.

SaaS는 서비스를 임대해서 쓰는 것이죠. 구글 앱스같은 것을 얘기하죠. 기업들이 이메일이나 오피스 같은 것을 직접 구축하고 구매하려면 돈이 많이 드는데, 구글앱스를 이용하면 일정 금액을 지불하고 사용할 수 있는 것이지요.

뭐 위에서 얘기하는 것은 그냥 개념적인 얘기긴 하죠. 그래서 사실 몰라도 됨-_- 암튼 서론이 너무 길었는데, OpenShift는 원하는 언어로 개발한 애플리케이션 서버를 그대로 올려서(일단 개발한 것만 올리긴 할겁니다만, 워드프레스 같은 서비스도 올릴 수 있어요), 웹서비스를 할 수 있는 호스팅 서비스입니다.


- OpenShift 종류

아 종류가 있는데, 사실 오픈쉬프트는 오픈 소스이기 때문에 서버 장비가 있다면 설치해서 사용할 수 있습니다. 그래서 회사에서 사용할 Enterprise버전과 Origin버전이 있는데 차이는 잘 모르겠...

그리고 이제 제가 리뷰해볼 Online버전이 있는데, 이건 설치를 해서 쓰는 게 아니라 말그대로 Online입니다. 레드햇에서 제공하는 서비스입니다. 일단 무료로 3개 애플리케이션을 만들 수 있으며, 장비 용량이나 사용량에 따라 과금을 부과하는 등 유료화 모델을 사용하고 있습니다.


- OpenShift 간단하게 맛보기

1. OpenShift Online 회원가입

가입은 사이트 상단에 SIGN UP으로 하면 됩니다. 이메일 입력하고, 비밀번호 입력하고, 스팸봇방지 문자입력하면 가입 끗. 후에 이메일로 인증메일이 오는데, 클릭해서 인증완료 하면 완전 끗.

2. 애플리케이션 생성

로그인 하고 들어가면 뭐 하나 만들라고 나옵니다. 

"지금 너의 첫번째 애플리케이션을 생성하라"를 선택하면요. 정말 다양한 애플리케이션을 생성할 수 있습니다. Node.js, Ruby, PHP, Java 등을 지원하고, 워드프레스 같은 블로그툴도 CI툴인 젠킨스도 서버 설치 없이 바로 생성이 가능하게 해줍니다. 

일단 가장 쉬운 Node.js로 선택해서 해볼게요. 최초에 sshkey를 등록하지 않았다면 Yes, help me get started를 선택하면 sshkey 등록을 도와줍니다. 근데, 사실 rhc라는 gem을 설치하면 더 쉽게 sshkey를 등록할 수 있습니다. 이건 나중에...

sshkey는 ~/.ssh/id_rsa.pub파일의 내용을 그대로 붙이면 끗!

3. 소스 클론 받기

전부 ssh기반으로 하기 때문에, 소스도 git기반으로 ssh를 통해서 풀 받고 푸쉬하고 있습니다. 아래처럼 소스를 클론받고 수정하고 푸쉬하면 자동으로 웹서버에 배포 및 재시작을 해줍니다. 참 편하죠!

4. 소스 수정해서 올려보기

기본적으로 코드가 조금 있는데, 그냥 html파일만 수정해서 올려봅시다. 타이틀만 바꿔볼까요!

index.html
<title>헬로우 월드</title>

로 수정하고 커밋하고 푸쉬를 하면...!

5. 사이트 확인하기

잘 변경이 되었네요.

- 그 외에 기능

1. rhc라는 command line tool을 제공. 

osx유저라면 ruby가 기본적으로 설치가 되어있는데, 아래 gem을 설치하면 그냥 사용할 수 있습니다. 윈도우는 모름-_-

gem install rhc

이 툴을 통해서 자동으로 로컬에 있는 ssh-key를 업로드해줍니다. 최초 setup만 해주면 됩니다.

rhc setup

2. 제한적인 ssh 기능

ssh를 제공하긴 합니다. 근데 들어가서 뭐 할 수 있는 건 프로세스 킬하거나 mysql 콘솔을 접속할 수 있게 하거나, 로그를 볼 수 있는 간단한 툴을 제공합니다.

3. cron제공

오! 이거 하나만으로 heroku보다 훨씬 좋네요(사실 heroku도 크론이 있는데 플러그인 방식이라...). 이건 소스에 포함시켜서 사용할 수 있습니다.

https://developers.openshift.com/en/managing-background-jobs.html

크론은 UI에서 추가하는 방법이 없는 듯. 콘솔에서 해야합니다.

rhc cartridge add cron -a nodejs

그러면 추가가 됩니다.

보면 소스에 추가하면 됩니다. 

.openshift/cron/(minutely|hourly|daily|monthly)/awesome_job 요렇게 실행할 스크립트파일(.bash분법인듯요)을 넣으면 minutely면 매분 실행하는거고, hourly면 매시간 실행하는거고 그런식으로 되어있어요.

그래서 특정 시간에만 실행하길 원하면 bash에서 짜야한다고 문서에 나와있네요. 불편하지만, 제공하는 게 어디인지!


- 끗으로!

확실히 앱엔진이나 Heroku보다 더 많은 기능을 제공해서 편하긴 합니다만, 역시나 더욱 커스터마이징해야하는 애플리케이션이라면 이걸 쓰면 안되겠죠. 그냥 서버구축해서 하는 게 속이 더 편할 듯요.

하지만, 간단한 서비스를 하려고 하면 꽤나 좋은 서비스일 듯합니다. 제가 만드려는 서비스에는 오픈쉬프트만 써도 적당할 것 같아요. 이제 언넝 모바일앱을 만들러....

 
Posted by 머드초보
,