VPSしか触ったことがない人がPaaS試す時に知っておきたいこと


要はOSをフルコントロールできる環境でオンプレミスサーバーアプリしか動かしたことがない人が、PaaS的なサービスを始めて使う時に概念レベルでどこでつまづいたか、を記録しておきたいと思って投稿した感じです。正しい情報からは程遠いかもしれませんが自分と似た境遇の人の助けにちょっとでもなれば嬉しいです。

PaaSとは"コンテナ"の上で一個アプリ動かしていいよってこと

VPSは(多分仮装の)OSを作らせてもらえる、PaaSは"コンテナ"を作らせてもらえる。"コンテナ"とは、サーバー上に複数個作れる仮装ファイルシステムみたいなもの、らしい。これを実現するDockerというド定番の実装があって、それを使っているPaaSサービスがある。wikipediaのDockerの記事を見てざっくり雰囲気だけ把握。

"コンテナ"に対してどういう指示を出せるのか、について、Cloud Foundryという共通のAPIがある

VPSでは"OSのrootを通じて出来ることはできる"みたいな認識があって、その認識の下で、どの会社のVPSもリモートログインさせてもらった後は同じ操作でやりたいことができた。これはある種のAPIだと自分は思っている。

一方PaaSは各社それぞれ何をさせてもらえるのか、という点が曖昧だったが、調べるとどうやらCloud Foundryというオープンソースの普及したルール+実装があって、しかもこれを主要OSのコマンドラインから操作できるCloud Foundry Interfaceという実装があるとのことなので、"PaaSはcfのCLIから操作する"という認識でいればよいらしい。これはこちらのSlideShare:Cloud Foundryで学ぶ、PaaSのしくみ講座がわかりやすかった。

で、実際に試すには

自分の場合はIBMさんのBluemixでトライさせていただいたので、その手順をメモレベルで書いておく。

  • いろいろ調べてもやっぱりよく分からないのでまずは意を決してアカウントを作る。
  • チュートリアルをやってみる。自分の場合はNode.jsのアプリを動かす予定だったのでこちらにあったチュートリアルに挑戦する。

    • 途中でこちらのcf CLIをインストールさせていただく。
    • cf loginというコマンドでサーバーにログインするとき、このチュートリアル本文では現在選べる3つのサーバーのうちの1つが決め打ちで書かれているので、自分がアカウント作成時に選んだサーバーを指定すべし
    • cf pushした後にアクセスするURLも同じように3つのサーバーの識別があるようで、自分の場合は http://<皆さんのアプリの名前>.au-syd.mybluemix.net/ とするのが正解だった。

チュートリアルはとりあえずできたので、次はデータベースとかファイルを使う場合にどうするのか知りたい。

その他思ったこと

PaaSで動かそうとすると、巷でよく使われるライブラリ等の使用を強制される部分もあるようだが、意図せずオレオレ変なルールになっていたりする開発方針を矯正できるのでむしろ良いのかもと思う。