FlynnはPrime Directive社が開発したコンテナ型の仮想化環境上でPaaSを実現するツールである。標準インストールではlxcのコンテナ型仮想化となるが、Dockerにも対応しており、Docker環境のPaaS基盤を構築することも可能である。ライセンスは独自ライセンスで、利用するに当たり、flynn/LICENSEに準拠する必要がある。2014年8月11日にv20140811がベータ版としてリリースされ、2016年8月時点の最新バージョンは、2016年8月14日にリリースされたv20160814.0である。約2年間でバグフィックスを含め、400回を超えるリリースがなされており、非常に活発に開発が行われている。
Flynnの実行環境の構築には、Vagrantを使用してVirtual Boxに仮想マシンイメージで導入する方法と、各クラウドや物理マシン上のOSに対してインストールを行う方法がある。ただし、FlynnはUbuntu 14.04 LTSを推奨しており、それ以外の環境ではインストールできない可能性がある。最小構成は管理用のマネジャー×1台とノード×2台の3台構成であり、今回の評価はUbuntu 14.04をインストールしたサーバを3台使用する形で行っている。
インストール手順は公式ガイドにまとめられているが、Flynnの管理用のWebUIやRest APIにサブドメインを使ってアクセスするため、外部のDNSが必須になったり、クラスタ構成やコンテナイメージを導入する必要があるなど、若干コマンドが複雑である。おそらく何回かトライ&エラーを繰り返すこととなるだろう。検証に使用した環境の構築手順は、以下の弊社技術ブログで公開しているので参考にしていただきたい。
参考リンク:FlynnをインストールしてDockerコンテナを動かしてみた(Tech Sketch/TIS)
クラスタを構成するためのノード情報の管理は “https://discovery.flynn.io/clusters/” で行うため、インターネットに接続しない状態では利用できない点にも注意が必要である。
構築完了後に管理用のWebUIであるダッシュボードで初期設定を行う。URLはサブドメインを使用した、”http://dashboard.[domain_name]”となっている。ダッシュボードはクラスタ内のいずれかのサーバで動作しており、IPアドレスでは接続が行えない。Flynnクラスタを構成するためには、専用のDNSサービスを利用することが必須となる。
起動させるアプリケーションは、事前にCLIを使用してローカルのGitリポジトリに登録する必要がある。Docker HubにあるUbuntuのDockerコンテナとexampleで提供されているlxc形式のコンテナを登録している。
コンテナの起動・停止は、アプリケーションごとにProcessesの数を変更することで行われる。コンテナの起動状況に応じて、クラスタ内にバランシングされる形で起動される。
「PostgresSQL」「MySQL」「MongoDB」「Redis」などのDBを起動できるlxc形式のコンテナも標準インストール+examplesのインストールで利用可能となり、Provisionボタンを押すだけでコンテナが起動される。
コンテナ内のWebアプリケーションを外部へ公開するには、FlynnのルータへのCLIで設定を行う。手順はこちらのガイドで公開されている。URLはdashboardなどと同様にサブドメインを使用する。
コンテナ内のWebアプリケーションの公開にサブドメインを利用することで、ネットワークとして大きな設定変更を行わずに、「アクセスできるURL」の追加・変更を行える点は、コンテナ型のPaaS基盤として非常に効果的なアイデアである。環境の初期構築やコンテナイメージの管理など若干、難易度は高そうだが、運用が確立できれば利便性が高いツールだと考えられる。
Copyright © ITmedia, Inc. All Rights Reserved.