究極に雑なデプロイができる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つお伝えしておきます。
TutumユーザにはDocker CloudのEarly Supporter Codeが付与されていて、Docker Cloudで2ノードまで無料で管理させておくことが可能です。
それでは「今から無料でコンテナを試してみたい!」という向きはどうすればよいか。まあ素直にDocker Cloudのfreeプランを考慮するのがよろしいかと思いますが、もうひとつの選択としてArukasを使ってみる方法があります。
Arukasとは?
Arukas(アルカス)とは国産のコンテナプラットフォームであり、現在ベータテスト期間中とのことで、以下の機能がすべて無償で利用可能です。
- サービスの追加
- サービスのコンテナ(インスタンス)数調整
- コンテナへのRAM割り当て(1コンテナに対して256MB/512MBが選択できる)
- ノードの透過的な提供
- portのexpose
- ENVおよびCMDの指定
何はともあれ使ってみよう
とりあえずアカウントを登録し終えると、ダッシュボードが表示されます。以下のような画面ですね。
ここで「新しいアプリケーションを作成」をクリックすると、画面が切り替わって以下のようなフォームが登場します。
今回は例として、先日作った「ギロッポンでシースーなAPIのコンテナ」を雑にデプロイしてみましょう。
まずName
のところには自分で識別しやすくするためのサービス名を半角英数で入力していきます。今回はgiroppon
とでもしておきましょう。
次にImage
ですが、今回デプロイするDocker Imageはこちらですので、ytnobody/shukugawa-atom
となります。
そしてPort
に7654
と入力します。これはytnobody/shukugawa-atom
がtcp/7654を使うからですね。
これで以下のような状態になったかと思います。
ここまでできたら、あとは「アプリケーションを作成」ボタンをクリックするだけです。やたらシンプルですね!
アプリケーションが起動したら
実際にアプリケーションが起動すると、ダッシュボードのアプリケーション一覧には以下のようにgiroppon
という名前でアプリケーションが追加されます。
では、アプリケーションの詳細画面を見てみましょう。
アプリケーション新規作成のフォームとほぼ同じような構成になっている画面ですが、PortのところにコンテナへのエンドポイントURLが表示されているので、クリックしてみましょう。
すると、ytnobody/shukugawa-atomが提供するAPIがレスポンスを返してきますね。ではgetパラメータとしてtext=六本木で寿司
を渡してみます。
このようにコンテナの動作を確認することができました。簡単ですね。
インスタンスを増やしてみる
今度はダッシュボードからインスタンスをひとつ増やしてみましょう。giroppon
のアプリ詳細へ行き、以下のようにInstance
を2にして「保存」ボタンを押すだけです。
「保存」を押すとインスタンスが増えていることをアプリ詳細画面で確認できます。
インスタンスごとに別々のエンドポイント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を紹介しました。 まだまだベータ期間ですので、機能面での見劣りが若干ありますが、サーバレスで使えて動作が大変高速、しかも簡単ですので、今後の動きに期待できそうです。