All Your Bugs Are Belong To Ass

究極に雑なデプロイができるContainer as a Service "arukas.io"

Docker Cloudが出た!

先日tutumがめでたくDocker Cloud 1.0としてリリースされました。基本的にDocker Cloudは有償サービスであり、コンテナ管理の手間をお金で解決するための仕組みという位置づけとなっています。

気になる料金プランですが、1ノードあたり1時間につき0.02ドルとなっており、Docker Cloudに1ヶ月間1ノードを管理させた場合、執筆時の相場でおよそ1500円ほどかかることになります。エンタープライズ用途に耐えうるものであることを考えると、ディスカウントっぷりがすごいなあ、という感想です。

TutumからDocker Cloudへの移行を検討しよう

ところで、今から新しくtutumにアカウントを登録しようとしてもDocker Cloudへとリダイレクトされてしまい、旧tutumへのアカウント登録ができない状態となっています。

そして既存のtutumアカウントをお持ちの方に、大事なことを2つお伝えしておきます。

  1. Tutumは2016年5月31日で終了らしいです。

  2. TutumユーザにはDocker CloudのEarly Supporter Codeが付与されていて、Docker Cloudで2ノードまで無料で管理させておくことが可能です。

それでは「今から無料でコンテナを試してみたい!」という向きはどうすればよいか。まあ素直にDocker Cloudのfreeプランを考慮するのがよろしいかと思いますが、もうひとつの選択としてArukasを使ってみる方法があります。

Arukasとは?

Arukas(アルカス)とは国産のコンテナプラットフォームであり、現在ベータテスト期間中とのことで、以下の機能がすべて無償で利用可能です。

  • サービスの追加
  • サービスのコンテナ(インスタンス)数調整
  • コンテナへのRAM割り当て(1コンテナに対して256MB/512MBが選択できる)
  • ノードの透過的な提供
  • portのexpose
  • ENVおよびCMDの指定

何はともあれ使ってみよう

とりあえずアカウントを登録し終えると、ダッシュボードが表示されます。以下のような画面ですね。

https://gyazo.com/67628e0a67e4bc1bdd966f8cd87daf07

ここで「新しいアプリケーションを作成」をクリックすると、画面が切り替わって以下のようなフォームが登場します。

https://gyazo.com/86940a2eaf70a0600db066d79e7c3c96

今回は例として、先日作った「ギロッポンでシースーなAPIのコンテナ」を雑にデプロイしてみましょう。

まずNameのところには自分で識別しやすくするためのサービス名を半角英数で入力していきます。今回はgiropponとでもしておきましょう。

次にImageですが、今回デプロイするDocker Imageはこちらですので、ytnobody/shukugawa-atomとなります。

そしてPort7654と入力します。これはytnobody/shukugawa-atomがtcp/7654を使うからですね。

これで以下のような状態になったかと思います。

https://gyazo.com/bb54eeddf6bbff9319853b4d327066da

ここまでできたら、あとは「アプリケーションを作成」ボタンをクリックするだけです。やたらシンプルですね!

アプリケーションが起動したら

実際にアプリケーションが起動すると、ダッシュボードのアプリケーション一覧には以下のようにgiropponという名前でアプリケーションが追加されます。

https://gyazo.com/4a4e881a2e519a14cd4d307ddb0a35b6

では、アプリケーションの詳細画面を見てみましょう。

https://gyazo.com/31208a872ab78e5e2225fd97a14aa00d

アプリケーション新規作成のフォームとほぼ同じような構成になっている画面ですが、PortのところにコンテナへのエンドポイントURLが表示されているので、クリックしてみましょう。

すると、ytnobody/shukugawa-atomが提供するAPIがレスポンスを返してきますね。ではgetパラメータとしてtext=六本木で寿司を渡してみます。

https://gyazo.com/7e451db62c84ec6c2ab4cebf42796d1d

このようにコンテナの動作を確認することができました。簡単ですね。

インスタンスを増やしてみる

今度はダッシュボードからインスタンスをひとつ増やしてみましょう。giropponのアプリ詳細へ行き、以下のようにInstanceを2にして「保存」ボタンを押すだけです。

https://gyazo.com/a8250af9f87b151f191d0e715b576a8b

「保存」を押すとインスタンスが増えていることをアプリ詳細画面で確認できます。

https://gyazo.com/b496ab4a44593493169e2509c8f32567

インスタンスごとに別々のエンドポイントURLが発行されていることが分りますね。非常に楽なのがわかります。

Arukasの利点

一旦利点をまとめてみます。

ダッシュボードがシンプルで使いやすい

Tutumでも同じことを書きましたが、ダッシュボードのUIがシンプルにまとめられており、非常に使いやすいです。これはサービスが成功する上で必須の項目ですので、大変すばらしいことだと思います。

ノードについて気を回す必要がない

驚くべきことに、ArukasはDockerノードについて一切を考慮する必要がありません。 いきなりDocker Imageを指定すればすぐに利用可能になりますし、「サーバレスアーキテクチャ」の一翼を担う存在と言えるかもしれません。

動作が速い

ダッシュボードを触ってみると、その動作の速度に驚かされるかと思います。 僕の場合、実際にサービスをデプロイしてアクセス可能になるまでの時間が1分かからない程度でした。 これは驚異に値する速度です。

Arukasの課題

これだけ簡単便利な国産コンテナプラットフォームなのですが、まだまだベータ期間ということもあって、課題がちらほらと見受けられます。

サービスエンドポイントURLが発行されない

インスタンスを増やしたときにコンテナごとにエンドポイントURLが発行されましたが、残念なことにサービスエンドポイントURLは発行されませんでした。 このため、せっかく負荷対策でインスタンスを増やしても、自分でいちいち別にロードバランサーを用意し設定する必要が出てきてしまいます。

プライベートレジストリに対応していない

現状ではDocker Hubで公開されているDocker Imageしか利用できません。 従って、なんらかのクローズドなプロジェクトで利用するのは非常に困難となります。

足回りがロックインされてしまう

ノードについて気を回す必要がない、という利点の裏返しとなりますが、自分でIaaSベンダーやサーバの選定ができません。 Docker Cloudの場合は各種IaaSやオンプレミスへの対応ができているので、この辺りはユースケース次第かと思います。

もしサーバレスアーキテクチャに寄せるのであれば、Arukasのほうが向いているかもしれないですね。

CLIやAPIが存在しない

CLIやAPIが存在しないということは、自動化することが非常に困難であるということでもあります。

APIだけでも出てくるとだいぶ利便性が高くなりそうですね。

ドキュメンテーションが貧弱

ダッシュボードについての記述があるのみです。 まだまだ機能が少ないので現時点では問題にならないのですが、上述したような機能が追加されたときにドキュメンテーションもあわせて強化されることを期待したいところです。

まとめ

国産コンテナプラットフォームのArukasを紹介しました。 まだまだベータ期間ですので、機能面での見劣りが若干ありますが、サーバレスで使えて動作が大変高速、しかも簡単ですので、今後の動きに期待できそうです。

Created at
by
satoshi azuma
Last modified at
2016-02-14 10:13
by
satoshi azuma