Arukasというサービスをご存知でしょうか。
ちょっと前にSRE Tech Talk に行った時にさくらインターネットの方が発表していて知ったのですが、とても良いサービスだったので紹介します。
ちなみにこの勉強会のプレゼンはとても良かったのでおすすめです。スライドのトークは残っていないみたいですが、スライドはこちらにあります。
Arukas
Arukasはコンテナーを簡単にデプロイできるサービスです。なんと2017年2月10日現在 無料!! で一人10個までのコンテナをデプロイすることができます。
デプロイ元のイメージとしてDocker hubのPublicリポジトリを指定できます。Docker hubのリポジトリを数回のクリックと少ない入力でデプロイできるのはとても素晴らしいですね!
現在このサービスは招待制になっているので、是非登録しましょう!
つかいかた
試しに何かアプリケーションをデプロイしてみましょう!せっかくなので楽しいアプリケーションにしたいですね。そんな方にオススメなのが、僕が以前作ったこのSlack botです!
このbotは、masterリポジトリのDockerイメージがDocker hubのPublicリポジトリに自動でビルドされるようになっています。
Arukasをちょっと試してみたい・・という方には絶好のアプリケーションですね!
ただ、BotのトークンをArukas上に入力してあげなくてはいけないため、セキュリティ上心配な方はご注意ください。
Arukasへの登録
現在Arukasは承認制でのアカウント作成方式になっています。アカウントを登録してから実際に使えるようになるまで少し時間がかかるので、早めに登録しておきましょう!Githubアカウントでの登録も可能です。
登録はこちらから
Arukasのデプロイ画面
無事にArukasのアカウントを取得することができたら、アプリを無料で走らせることができます。デプロイ画面は以下の画像のようになっています。
各入力欄は、以下のように入力します。
名前 | 説明 | Slack Shogiを入れる場合の入力 |
---|---|---|
App Name | 管理用に表示されるアプリケーションの名前、文字列ならなんでも良い | Slack将棋 |
Image | DockerHubにあがっているイメージ | setokinto/slack-shogi |
Instances | 同時に実行されるコンテナの数 | 1 |
Memory | コンテナに割り当てられるメモリ量 | 256MB |
Endpoint | コンテナにアクセスするためのエンドポイント | (入力なし) |
Port | コンテナにアクセスするために開放するポート番号 | 0, UDP |
ENV | コンテナに与えられる環境変数 | SLACKSHOGI_API_TOKEN=xoxb-xxxxx-yourtoken-xxxx |
CMD | コンテナ起動時のコマンド | (入力なし) |
この中で一つ注意しなくてはいけないポイントは、Slack将棋を実行する場合はPortに 0,UDP
を指定しなくてはいけないことです。
Botは外部からアクセスする必要がないため、ポートを開放する必要はありませんが、現在Arukasでは最低一つのポートを開放しなくてはいけません。コンテナの起動はこの開放したポートに接続できた事を確認してから行われるため、実際に開けていないポートを指定するとコンテナが起動中の状態になりません。
Botやcronといった、外部からのアクセスを必要としないコンテナを実行したい場合は、0, UDP
などの、UDPポートを指定することによってこのポート開放確認をスキップすることができます。そのうちこの方法を使わなくても実行できるようになると思いますが、現在のところはこの指定を使うことでBotをArukasで実行することができます。
この罠に引っかかり、悩んでいたのでArukasのサポートに聞いてみた所、すぐに返事が返ってきました。迅速な対応に感謝します🙏
これらを入力したら以下のような状態になります。
あとはこの状態で、アプリケーションを作成ボタンを押すことでArukas上でコンテナが起動し、Botが実行されます。
まとめ
Dockerは開発環境の構築がし易いこともメリットの一つですが、このようにデプロイフローを簡潔にするためにも非常にメリットのあるツールです。Arukasのようなサービスがなければ、自分でmesosやKubernates、Rancherを建てる必要があったり、Docker Machineを使うといった方法が考えられます。Arukasを使うことによって、これらを自前で用意する必要がなくなり、幾つかの設定項目を埋めるだけで自分のイメージをコンテナにして動かせるようになりました。
試してみて、簡単にコンテナを実行できるというのはとても素晴らしく便利であると感じました。言うならば自由度MAXのherokuが自由に使えるといった感じでしょうか。とにかくとても便利なので一度使ってみて頂きたいです。