woshidan's blog

そんなことよりコードにダイブ。

ecs_deployのecs_auto_scalerにPRを出すときに環境構築をがんばったよ、というお話

先日、 ecs_auto_scalerPRを出してマージされてしばらく運用して問題なさそうので今日はちょっと自慢をします。

ecs_auto_scaler そのものについては前回の記事でふれたのでそちらをご参照ください。

woshidan.hatenablog.com

複数のサービスが連携させて動かすためのgemですが、こういったgemの場合、動作確認のための環境構築がなかなか大変です。

ecs_autoscaler の場合、ロールやセキュリティグループを除いて最低限でも

  • ecs_autoscalerでコンテナインスタンス数、タスク数を管理する対象はクラスタ単位ですが、管理される側のクラスタA
    • クラスタAに登録するコンテナインスタンスを起動するAutoScaling Group
      • AutoScaling Groupグループで利用する起動テンプレート
    • ecs_autoscalerはサービス単位で必要なタスクの有無を確認している*1ので、起動していることが必要なサービスとそうでないサービス
  • ecs_autoscalerを動かすホスト
  • upscale triggerとdownscale triggerのためのCloudWatchのアラート2種

あたりが必要です。毎回1から用意するのがめんどくさいので、先日仕事で動作確認をした時、ちょっと時間はかかりましたがTerraformで立てれるようにしました。

ので、今日はそれを自慢して終わりにします。どやぁ。

gist.github.com

なお、セキュリティグループは検証用にインバウンドはHTTP, HTTPS, SSHのIPを全て空け、アウトバウンドは全部空け、と空きまくりなので検証が終わったらすぐに落としてください。現場からは以上です。

関連エントリ

woshidan.hatenablog.com

woshidan.hatenablog.com

woshidan.hatenablog.com

*1:漠然と重要なタスクは1コンテナインスタンスにつき1つ、という前提がある気がします