パラボラアンテナと星の日記

あることないこと

ECSにバッチ処理やらせるときにhako oneshotが便利

要約

ECSにバッチ処理をやらせるときに、 hako oneshotを使うと便利です。

hako oneshotを活用する話

先日(10/12)のDockerの勉強会*1にて、hako oneshot を活用する話をしました!

以下は私の職場での活用の一例。の雰囲気の図。

f:id:hoppie:20161016065844p:plain

以下がスライドです。

hakoについてちょっと紹介

github.com

Dockerコンテナのデプロイツールです。ECSに対応。

deployoneshotが主なサブコマンドです。

hako deploy

Dockerコンテナをデプロイする。 使い方はこちらの記事が詳しいです。

so-wh.at

hako oneshot

Dockerコンテナにバッチ処理的なタスクをやらせる。 使い方はこちらの記事が詳しいです。

so-wh.at

hako oneshotの様子

ECSに何かをやらせるときに、何回かAPIを叩くことになるのですが、 hakoがいろいろとやってくれます。

以下がその様子(簡略化のため分岐とかも適当な図で恐縮)です。

f:id:hoppie:20161016055117p:plain

f:id:hoppie:20161016062659p:plain

f:id:hoppie:20161016062716p:plain

f:id:hoppie:20161016062741p:plain

f:id:hoppie:20161016062821p:plain

利点・良いと思った機能

上記の通り、hako を使うことにより、このようなECS API叩く自前コードが減る のは大きな利点です。

hako oneshotを使ってみて他に感じた利点・良いと思った機能は

  • TaskDefinition重複登録されないようにチェックしてくれる
  • scale outも面倒見てくれる
  • dry-runがあるらしい
    • あまり使ってないけど使ってる人が便利っぽいと言っていた
  • コンテナの終了コードで終了してくれる
    • コンテナが終了コード0で終わればhako oneshotも0で終わる
      • 手元のシェルで && でつなぐ、とかできそう
  • C-cでabortできる

というところです。

まとめ

勝手にhako oneshotについて紹介しました!

間違い等ありましたらご指摘ください!

よろしくお願いいたします。

*1:Web Tech Tokyo #1(Docker Tips 共有会) http://web-tech-tokyo.connpass.com/event/40548/