IBM Cloud(旧Bluemix)にExpressをデプロイする方法


IBM Cloud(旧Bluemix)

heroku以外の選択肢はないかなーと思っていろいろ探してたけど、
料金体系も変わって結局herokuに落ち着くのかね。
でも別のサービスも使ってみたい、ってことで旧Bluemix使ってExpressをデプロイする方法を調べてみた。

何十番煎じ?

紹介している人は何人もいたけど、キャプチャ古かったり(Bluemixのままだったり)したので、
IBM Cloudのバージョンでやってみた。

環境

Ubuntu 16.04LTS 64bit

前提

デプロイするプログラムは事前に準備してください。
npm -g express-generatorでジェネレータインストールして、
適当なファイルにExpress.jsを初期状態を作っとく。
2分ぐらいで終わる。

IBMクラウド ライト・アカウントの登録

https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/
こちらのページからライトアカウントを登録していく。

ライト・アカウントを今すぐ登録を選択

  • メールアドレス
    • 前に実施してた30日間無料お試しプランに登録してたメールアドレスは使えないみたい
  • 名前
  • 会社名(任意)
  • 国または地域
  • パスワード を入力 最後のチェックボックスはチェックしなくてもいい。 入力が完了したらアカウントの作成を選択。

登録確認メールが送信されるので、メールを確認。
URLにジャンプするとアカウントが有効になる。

IBMクラウドにログイン

https://www.ibm.com/account/jp/ja/
上のページ飛んで、サインインを選択し、
メールアドレス、パスワードを入力しサインインを完了する。

初回ログインに限りこんな画面が出るかもしれないので、Proceedを選択。

IBMCloudの起動を選択。アクセスしたURLによって英語と日本語の両パターンあるかも。

この画面が出てきたらアカウント作成は完了。
続いてプログラムをデプロイしていく。

cfのインストール

下記URLにジャンプ。
https://docs.cloudfoundry.org/cf-cli/
[Installing the cf CLI]からDebian/Ubuntu用の.debファイルのリンクがあるので選択してダウンロード。
ダウンロードが完了次第パッケージをインストール。
すると、cfコマンドが使えるようになるはず。

$ cf -v
cf version 6.36.1+e3799ad7e.2018-04-04

コマンドが無いよとか怒られなければ完了。

デプロイ

まずはAPIのエンドポイントを指定。

$ cf api https://api.ng.bluemix.net

続いてibmcloudのアカウントでログイン。

$ cf login

メールアドレスとかパスワードとか聞いてくると思うので、登録したアカウントでログインする。

次にルートディレクトリにmanifest.ymlファイルを作成する。

---
applications:
- name: sample-express
  memory: 128M
  host: sample-express

manifest.ymlの詳細はここでは割愛します。(というかよく調べて無い)
名前とホスト名をユニークにしとけばとりあえずOKっぽい。

最後にibmcloudにpushして終了。

$ cf push

(manifest.ymlが自動的に読み込まれる)

これでexpressのサンプルページにアクセスできるようになっていると思います。