Fargate Spot おぼえがき

先にまとめ

  • コンテナが不定期に停止する代わりに 通常価格の70%OFF になるサービス
    • Savings Plansとの併用はできない。らしい (伝聞のためソースなし
  • 雑に始めたければ、Capacity Provider を FARGATE SPOT のみにする
    • Fargete と Fargate Spot を併用したければ、Capacity provider strategy を設定する
  • 停止の120秒前に Amazon EventBridge で通知がくる
    • ただし、2019/12月時点の東京リージョンでは、80H稼働し続けても特に死ぬことはなかったらしい

想定される使いみち

  • 中断しても困らない並列処理や分散処理
  • QA環境などのテストサーバ
  • 本番サーバのバッファ

Fargate Spotの雑なはじめかた

ECS の Capacity Provider を FARGATE SPOT のみにする

f:id:kasei_san:20200311082737p:plain

Capacity Provider って何?

ECSのクラスターの実行環境。Fargete ならば FARGATEFARGATE SPOT がある

  • FARGATE を消してしまえば、 Capacity Provider は FARGATE SPOT のみなので、全ての task が Fargate Spot で実行される
  • 余談。ECS on EC2 ならば、ECS Cluster Auto Scaling も追加可能
    • これは、コンテナの増減に応じて、EC2のスケールイン/アウトを自動にしてくれるサービス
    • これまでは、個別に管理する必要があったので大変だった

Capacity provider strategy

もし、 FARGATEFARGATE SPOT を併用したい場合、Capacity provider strategy という設定で、task実行時の Capacity Provider の配分を決めることができる

コンテナの停止を検知する方法

Amazon EventBridge を使う

Amazon EventBridge とは

AWSとSaaSを統合するために、AWSで発生するイベントを他のAWSサービスやSaaSと紐付けるサービス

Amazon EventBridge は、独自のアプリケーション、統合 Software-as-a-Service (SaaS) アプリケーション、および AWS のサービスからのデータを使用して、アプリケーションを簡単に接続することを可能にするサーバーレスイベントバスです。

aws.amazon.com

Amazon EventBridge と SNS ってどう違うの?

大規模に素早く pub/sub したい場合は SNS。いろいろなサービスと手軽に繋がりたい場合は、EventBridge という感じらしい

lumigo.io

参考

aws.amazon.com

dev.classmethod.jp

dev.classmethod.jp

blog.astj.space