tutumを使ってserviceをdigital oceanに乗せてみた
ナウでクールなdockerer(今テキトウに名前考えた)な皆さんならもう既にご存知かつご利用されているのかもしれませんが、Docker as a Service(DaaS)の一つである''tutum''をつかって、当ブログをdigital oceanに乗せてみました。
tutumとは?
tutumは、DaaSプロバイダの一つで、大変雑に言うと「docker imageをdigital ocean等にいい感じにデプロイしてくれるやつ」です。
まだbetaサービスということもあって、無料で利用可能ですが、機能面で見ると「ほんとにこれタダでいいの?」というくらいにてんこ盛りです。tutumでできることの一例を列挙すると、
- プライベートなdocker registryがある(つまりdeployしたいけどdockerfile見られたくない!みたいな要件に応えられる)
- digital oceanにdockerコンテナを上げることができる
- 上がってるサービスのリソース利用状況グラフを閲覧できる
- 同一構成のコンテナを増やしたり減らしたりできる
- 出来合いのdocker imageをそのまま利用できる
- 当たり前だけどコンテナのログを見れる
- pipでインストールできるCLIがある
- 英語しかないけど、ドキュメントがやたらしっかりしてる
という具合。基本的な機能に加え、リソース監視ができたりとか、まずまず出来が良さそうな感じですね。
tutumアカウントを取得する前に
digital oceanアカウントを取得しておいたほうが良いです。なお、digital oceanにノードをたてるときに幾ばくかのお金が必要になります。
そんなわけで、とりあえずdigital oceanには$10.00ほどチャージしておくと良いですね。支払いはpaypalが簡単です。
まずアカウントを作る
手始めにwww.tutum.coにアクセスし、「Get started - free forever」って書かれている黄色いボタンをクリックします。
すると、よくあるサインアップフォーム的なものが登場しますので、素直にサインアップすると、アカウントの作成が完了します。
ちなみにGitHubやDockerHubのアカウントでも登録できるのですが、その場合、あとで必要になるはずのtutumパスワードが登録されません。その場合はパスワードの初期化をする必要がありますので、ご注意を。
登録が完了すると、Borja Burgos という人からメールが来ます。ちなみにこの人はtutum社のCEOです。メールの内容は概ね以下のような感じの内容です。
「アナタ、tutumに登録してくれてホント嬉しいデース」
「ヨカッタラ、tutumに登録した理由教えてクダサーイ」
「出来たらァ、アナタのお仕事(役職とか職務)についても教えてほしいデースネー」
「ソレデヨカッタラ、このメールにレスポンスしてくれるとホント嬉しいデスヨー」
「ワカンナイ事あったらメールしてクダサーイ」
ちなみにメールに返信してあげると、アカウントのアクティベーションが行われるようです(人力?!)。
そして、Borjaの言うように、分からん点をメールで質問すると、なんと超絶丁寧なレスポンスをくれるのです。この細やかなユーザ対応に僕はヤラレマシタね〜!
digital oceanへのお布施は済んだか?
さて、ここからはいよいよサービスをデプロイしていくための手順です。
まずwebからログインしますと、ダッシュボード画面が出てきます。
どまんなかにある緑のボタンに「まずノードを用意しろ」的なことが書いてあるので、そこを押すと、「Launch new node cluster」という緑のボタンが出てきますので、そこからよしなにノードを用意してください。この時、digital oceanへのお布施がされていないと、ノードを作れませんのでご注意。
あとはノードが出来たら、Deployボタンを押すと、サービスデプロイの準備が整います。
docker imageをtutumのプライベートレジストリにpushしよう
ここからは一旦ターミナルでの作業。
次に、tutumのプライベートレジストリに、デプロイする予定のdocker imageをpushします。
そのために、docker loginコマンドを使って、tutumにログインしておく必要があります。
$ sudo docker login tutum.co
この時、ユーザー名、tutumパスワード、メールアドレスを質問されますので、すべて正しく入力すると、ログインできます。
ログイン出来たら、docker tagコマンドを使って、imageにtutum用のタグを割り当てます。
$ sudo docker tag [デプロイしたいイメージ名(例:ytnobody/docker-riji)] [tutum上のimage tag名(例:tutum.co/ytnobody/docker-riji)]
tutum上のtag名は必ず「tutum.co/ユーザー名/任意の名称」のルールで名づけてください。
ここまで出来たら、あとはdocker pushするだけ。
$ sudo docker push [tutum上のimage tag名]
これでtutum上にイメージを展開出来ました。あとはサービスコンテナをデプロイするだけです。
いよいよサービスコンテナのデプロイ
webダッシュボードに戻り、servicesタブをクリックし、右上の「Launch new service」をクリックしてください。
すると、イメージの選択画面が出てきますので、Private imagesというボタンを押してください。
前項で無事にtutumにイメージ展開出来ていると、ここからデプロイ対象となるイメージを選択できます。
デプロイ対象のイメージの右にSelectボタンがあるので、それをクリックすると、デプロイ設定画面が登場します。
実際に触りそうな箇所だけ説明すると、「Advanced options」ボタンを押した先に「Ports」という項目があって、そこのNode portを変更できるのと(dynamicだとランダムポート)、「Next:environment variables」を押した先に「Add environment variable」という項目があるので、そこから環境変数を追加できるという点だけ取り急ぎ押さえておけばよいかと思います。
ひと通り設定が完了したら、あとは「Launch service」を押すだけ。
これでサービスコンテナがデプロイできます。
まとめ
DaaSプロバイダの超有望株であるところのtutumを紹介しました。
今回は執筆時間の関係で画像を掲載出来ておりませんが、時間のあるタイミングで参考画像も掲載していきたいと思います。