logo header
logo header
logo header
logo header
  • 2015.09.14
  • 技術ブログ

Dokku Alternativeで自分用PaaSを構築してみる

札幌の大通公園では、季節ごとに色んなイベントが開催されています。
前回の記事ではビアガーデンの紹介をしましたが、現在はオータムフェストという「食欲の秋」にうってつけのイベントが開催中です。

週末に早速ビールを飲んできたtacckです。こんにちは。

今回も引き続き、Dockerの話題を取り上げたいと思います。
今回は、少し前に社内勉強会で取り扱った「Dokku Alternative」について書いていきます。

PaaSとは

まず、Dokkuとは、"Heroku"ライクなPaaSをDockerを利用して構築できるシステムです。
これを、さらに機能追加したものが"Dokku Alternative"となります。

PaaSとは"Platform as a Service"のことで、これは「アプリケーション実行のための環境(プラットフォーム)を提供するサービス」となります。
そして、それを安価に実現しているサービスとして"Heroku"があります。
Herokuは、HerokuサーバのGitリポジトリにpushするだけでサービスをデプロイできます。自分でアプリケーションの実行環境を構築することなく実行・公開できるので、非常にお手軽でとても人気の高いサービスです。

(私の記事ではありませんが、過去にHerokuを取り扱った記事がありますので、そちらも参照ください。)

Dokku Alternative

環境

今回はVagrant、VirtualBoxを利用しますので、これらがインストールされた状態を想定しています。

インストール

勉強会で利用したVagrantfileは下記となります。
(Ubuntu 14.04のイメージを利用する、IPアドレスを固定で指定する、メモリを1Gにする、というだけのものです。)

https://github.com/tacck/vagrantfiles/blob/master/dokku-alt/Vagrantfile

上記Vagrantfileのあるディレクトリにて、下記コマンドを実行してください。

Vagrant環境内にログインしたら、下記コマンドを実行します。

これだけで、インストールは完了です。

初期設定

インストール直後には、Dokku Alternativeを利用するための初期設定を行なう必要があります。
上記のインストールコマンド実行後に、初期設定用のページが利用できるようになっています。
(コマンドがフォアグラウンドのまま、実行され続けています。)

このまま、http://192.168.100.10.xip.io:2000/へアクセスすると下記の状態のページが表示されます。
Hostnameには、IPアドレスをホスト名として利用できるサービスxip.ioを利用したものにします。
Public Keyには、gitで利用するSSHのパブリックキーを貼付けて、Finish Setupをクリックします。

2015-09-14-dokku-01

クリックすると、GitHub内のDokku Alternativeにある"Deploy an App"へ遷移します。
これを参考に、最初のアプリとしてHerokuが公開している"node-js-sample"をデプロイしてみます。

(この時点で、上記のコマンドは終了して良いです。)

アプリのデプロイ

コマンドは下記です。(登録したSSHのパブリックキーの対となる、プライベートキーを利用できる環境で実行してください。)

初回は、Dockerのイメージダウンロード・コンテナ構築が行なわれるのが、ログで確認できます。
完了したらhttp://node-js-app.192.168.100.10.xip.io/へアクセスしてみてください。
下記画面が確認できます。

2015-09-14-dokku-02

SSL設定

完全なローカル環境であれば上記で良いですが、パブリッククラウドサービスを利用してDokku Alternativeを利用しようと思ったら、最低限のセキュリティは確保したいところです。
そのために、Dokku Alternativeでは、デプロイするアプリケーション毎にSSLの証明書を設定することが可能です。
ここでは、お手軽な対応ということで、自己証明書での対応を行ないます。

上記実行し、証明書作成に必要な情報を入力すると、再デプロイが行なわれます。
その後にhttp://node-js-app.192.168.100.10.xip.io/へアクセスすると、下記のようにhttpsでの接続となります。
ブラウザからのアラートが出ることで、自己証明書であることもわかります。
アラートを無視する設定とすると、無事に設定前と同じ画面が表示されます。

2015-09-14-dokku-03

2015-09-14-dokku-04-02

Basic認証設定

同じく、最低限のセキュリティ確保のために、Basic認証は設定したいところです。
こちらも、Dokku Alternativeのコマンドにて設定可能です。

コマンド実行後にパスワード設定を求められるため、パスワードを入力します。
再デプロイが行なわれた後に、http://node-js-app.192.168.100.10.xip.io/へアクセスすると、下記のようにBasic認証用ダイアログが表示されます。
「キャンセル」ボタンをクリックすれば、認証失敗の画面へ遷移します。
上記で設定したユーザ(admin)とパスワードを入力すれば、再びアプリケーションの出力画面("Hello World!")が表示されます。

2015-09-14-dokku-05

2015-09-14-dokku-06

まとめ

コマンドでの操作もまだまだ多いですが、自分でPaaSサービスを立ち上げて気軽に試せるようになるのはとても便利です。
dokkuの仕組みとしてプロダクションへの利用は難しいようですが、開発初期のプロトタイプでの利用なら十分に使えると思いますので、積極的に使って行きたいと思います。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!