arukas cloudとDockerでお手軽に開発環境をゲットする #Arukas

Arukas Cloudとはさくらインターネット社が提供するDockerホスティングサービスです。

Arukas|Dockerホスティングサービス

4/27よりオープンβテストの状態になり、現在は無料で利用できます(プレスリリースによると、2016年9月まで無料のようです)。

利用の仕方

GitHubアカウントがあればサインアップできます。また、APIキーも発行出来て、ArukasがGitHubで公開しているCLIツールで制御もできます。

CLIについてはpottavaさんがQiitaで概要を書いてくれているので参照すると良いですね。dockerコマンドと同じような感覚で使えるので、個人的には好感度高いです。

Arukas.io CLI、まだ β なのに便利だった - Qiita

アプリケーションを作成する

ログインすると、アプリケーションを追加のボタンからアプリケーションを追加します。Arukasで言うところのアプリケーションとは、一種類のDockerコンテナのことを指すようです。

試しにMySQLを立ち上げてみましょう。Arukasで利用できるDockerイメージは、DockerHubに登録されているものに限られます。自分で作成したDockerイメージを利用したい場合は、別途DockerHubにPushしておく必要があります。

Arukas側ではこんな感じで入力すればOK。

App Name

Arukas内でユニークとなるアプリケーション名。未指定でもOK

Image

DockerHubに登録されているDockerイメージを指定

Instances

コンテナを起動するインスタンスの数を指定。ここで言うとこのインスタンスとはコンテナ数の模様

Endpoint

このアプリケーションのPublicなエンドポイント( arukascloud.ioのサブドメイン)を指定する。指定しない場合は自動的に割り振られ、HTTPSで公開される。

Port

Arukas上のホストとバインドさせるコンテナのポートを指定する。MySQLイメージだと3306がゲストポートなのでそれを指定する

ENV

Dockerコンテナに与える環境変数を設定する。公式MySQLコンテナでサポートされている環境変数はDockerHubのMySQLページを参照すると良い

CMD

Dockerコンテナのフォアグラウンドで動作させるプロセスのコマンドを指定。Dockerイメージで設定されている場合は指定しなくても良い

アプリケーションを起動する

アプリケーション作成後は実際に起動してみましょう。右上の起動マークのやつで起動します。

起動中はこんな感じ。たぶん30秒程で起動します。

アプリは起動状態ですになれば起動成功です。

Arukasで構築したMySQLに接続する

早速MySQLに接続してみましょう。正常起動した場合、Portの箇所に3306がホストバインドされたアドレスが表示されているはずです。

http表記になってますけど、普通にTCPでListenされているのでこのポートに対してMySQL接続が可能です。 以下のような感じでArukas上にDockerで構築したMySQLに接続できます。

$ mysql -P 31875 -h seaof-153-125-231-157.jp-tokyo-01.arukascloud.io -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1392
Server version: 5.7.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

接続できましたね。

利用上の注意

Public公開されている

Arukas上で構築したものは基本的にインターネットに公開されます。なので、MySQLであればパスワードの設定やIPアドレスでの制御をちゃんとしておきましょう。当然ながら大事なデータも置かない方が良いですね。

アプリケーションを停止するとデータは消える

Dockerを利用しているため、Arukasアプリケーションを停止するとそのコンテナ内のデータを消えます。Arukasにはまだボリュームマウントのような機能はないようなので、今回のようにデータストア用途で使うのであればDumpを出したり、リストアしたりといったことをする必要がでてきますね。まあ開発環境用途であれば良いかなと。

感想

起動も早いし、Dockerの知識があればあっさりアプリケーションをデプロイできるので、コストかけずに開発環境欲しいみたいなケースなら十分通用しそうな気がします。 実運用ということを考えるならば、コンテナ間通信とかをサポートしてもらってセキュアな構成でシステムを構築できるようにしてほしいところ(まだβ版なので触りながら今後の展開に期待っすね)。