Loading

チャットワークとHubotでAWSを操作する

Screenshot: https://hubot.github.com/

イノーバの自称フルスタックエンジニアの瀬川です。好きなディズニーキャラクターはライトニング・マックィーンです。こんにちは。

HubotというGitHub社製のチャットボットがあります。読み方は「ヒューボット」らしいです。
イノーバでもチャットワークでHubotを導入し始めたので、事例を紹介してみようと思います。

導入のきっかけ

イノーバでは、開発メンバーのサーバーへのアクセス管理のために、SSH踏み台(Bastion)サーバーを構築していて、セキュリティのため作業するときだけ起動するルールになっています。
しかし、踏み台サーバーを利用するのは一人ではありません。作業しようと思ったときに他のメンバーが使っているかどうか、イチイチ確認するのが正直面倒でした。チャットに向かってつぶやいたら自動的に踏み台サーバーが起動する仕組みがあれば、同時に開発メンバーに周知できるし、便利そうだよね。ということで導入しました。

チャットワークとHubotでAWSを操作する準備

Hubotの開発手順は公式ドキュメントなどを参照してもらうこととして、チャットワークとHubotでAWSを操作するために下記の準備が必要です。

  • チャットにHubotのアカウントを用意する。
    • チャットワークの場合は事前にAPIの利用申請と、APIトークンの発行が必要です。
    • Hubotアカウントが常駐するチャットルームも作っておきましょう。
  • AWSにHubot用のアカウントを作成する。
    • IAMを使い、Hubotに必要な権限だけを持ったアカウントを作成する。
  • Herokuのアカウントを用意する。
    • Redisのアドオンを利用するため、無料プランで運用できますがクレジットカード登録が必要になります。
    • また、パソコンにHeroku toolbeltのインストールが必要です。
  • HubotはnodejsとCoffeeScriptで書かれているので、nodejsとCoffeeScriptについて学習しておく。(たぶんJavaScriptでも大丈夫)
    • EC2の操作はAWS-SDKのnpmパッケージを使います。

HubotでEC2を操作してみる

実際にチャットワークからHubotを使ってEC2インスタンスを起動してみたのがこちら。

Hubotが常駐しているチャットルームでHubotの名前に続いてコマンドを入れると反応してくれます。

hubot_2015-03-02_16.35.53.png

ちゃんとEC2インスタンスが起動してますね!便利!

スクリーンショット_2015-03-02_16.34.58.png

所感

Hubotは構造がとてもシンプルで分かりやすく、コマンドの作成も簡単でした。Herokuの無料枠内で運用できるため、CoffeeScript(JavaSCript)が分かっていれば導入のハードルはとても低いと思います。

インフラオペレーション系の作業の自動化などはHubotととても相性が良さそうです。

今後Hubotにやらせたいこと

  • 新機能のリリースなど、踏み台の起動以外の運用タスクをHubotにやらせたい。
  • コマンドをもっと楽しい感じにしたい。
    • 僕「踏み台さん出番です」
    • Hubot「ごごごごご(踏み台起動したです)」
  • 今日のランチをHubotに決めてもらいたい。

関連記事