Slide 1

Slide 1 text

ECSの 次世代スケーリング戦略 濱⽥孝治(ハマコー) Capacity Provider

Slide 2

Slide 2 text

2 @hamako9999 ハマコー

Slide 3

Slide 3 text

3 #cmregrowth

Slide 4

Slide 4 text

4 今⾃分が Capacity Providerについて お届けしたい⽅とは︖

Slide 5

Slide 5 text

5 Capacity Providerをお届けしたい⽅々 既にECSを活⽤されている⽅ スケーリング戦略を根本から⾒直しできるかも︕

Slide 6

Slide 6 text

6 Capacity Providerをお届けしたい⽅々 既にECSを活⽤されている⽅ スケーリング戦略を根本から⾒直しできるかも︕ ECSをFargateで使っている⽅ Fargate Spotの安さと使いやすさにびっくり︕

Slide 7

Slide 7 text

7 Capacity Providerをお届けしたい⽅々 既にECSを活⽤されている⽅ スケーリング戦略を根本から⾒直しできるかも︕ ECSをFargateで使っている⽅ Fargate Spotの安さと使いやすさにびっくり︕ コンテナまだ使ってない⽅ ごっつええ感じのがでたと頭の⽚隅に おいといてください︕ ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /

Slide 8

Slide 8 text

8 Agenda • Capacity Providerとは • ECS on EC2の場合 • ECS on Fargateの場合 • Capacity Provider Strategyによるタスク配分戦略 • Capacity Providerのユースケース • あなたにも今すぐ10分でできるFARGATE_SPOTの 活⽤⽅法

Slide 9

Slide 9 text

9 Capacity Providerとは︖

Slide 10

Slide 10 text

10 Capacity Providerとは • ECSにおけるタスク実⾏のインフラをより柔軟に設 定する新しい仕組み • ECSの以下の両⽅で利⽤可能 • ECS on EC2 • ECS on Fargate

Slide 11

Slide 11 text

11 Capacity Providerとは 名称 特徴 Capacity provider ECSのタスクを実⾏するインフラを決定する ・EC2︓Auto Scaling Group ・Fargate︓FARGATE, FARGATE SPOT Capacity provider strategy 複数のCapacity providerの組み合わせ⽅ (最⼩タスク数、タスク数⽐率)を決定する

Slide 12

Slide 12 text

12 ECS on EC2の場合

Slide 13

Slide 13 text

13 Capacity Providerの構造(EC2) Auto Scaling group Capacity Provider Auto Scaling group Capacity Provider Auto Scaling group Capacity Provider Capacity Provider Strategy ・ ・ ・ • VPC • サブネット • AMI • インスタンスタイプ • オンデマンド or スポット ECS Cluster Auto Scaling group

Slide 14

Slide 14 text

14 Capacity Providerの作り⽅(EC2) ECS Cluster 起動順序 • ECS Cluster作成

Slide 15

Slide 15 text

15 Capacity Providerの作り⽅(EC2) ECS Cluster 起動順序 • ECS Cluster作成 • Auto Scaling group作成 Auto Scaling group

Slide 16

Slide 16 text

16 Capacity Providerの作り⽅(EC2) ECS Cluster 起動順序 • ECS Cluster作成 • Auto Scaling group作成 • Capacity Provider作成 Auto Scaling group Capacity Provider

Slide 17

Slide 17 text

17 Capacity Providerの作り⽅(EC2) ECS Cluster 起動順序 • ECS Cluster作成 • Auto Scaling group作成 • Capacity Provider作成 • タスク実⾏、もしくはサービス作成 Auto Scaling group Capacity Provider ECS Tasks

Slide 18

Slide 18 text

18 Capacity Providerの作り⽅(EC2) ECS Cluster 起動順序 • ECS Cluster作成 • Auto Scaling group作成 • Capacity Provider作成 • タスク実⾏、もしくはサービス作成 • EC2インスタンス起動 • タスクの配置 Auto Scaling group Capacity Provider EC2 Instances ECS Tasks

Slide 19

Slide 19 text

19 ECS on Fargateの場合

Slide 20

Slide 20 text

20 Capacity Providerの構造(Fargate) FARGATE Capacity Provider FARGATE_SPOT Capacity Provider Capacity Provider Strategy ECS Cluster Fargateで登録できるCapacity Provider はFARGATEとFARGATE_SPOTのみ

Slide 21

Slide 21 text

21 FARGATE_SPOTとは • EC2におけるスポットインスタンスのようにスポッ トでFARGATEを使う仕組み • オンデマンドとは違うので、リージョンやAZでの利 ⽤状況に応じて突如終了される • Task State Change Events発⾏後SIGTERM • お値段70%OFF(⼀律)

Slide 22

Slide 22 text

22 FARGATE_SPOT参照記事 https://dev.classmethod.jp/cloud/aws/fargate-spot-detail/

Slide 23

Slide 23 text

23 Capacity Providerの作り⽅(Fargate) ECS Cluster 起動順序 • ECS Cluster作成

Slide 24

Slide 24 text

24 Capacity Providerの作り⽅(Fargate) ECS Cluster 起動順序 • ECS Cluster作成 • Capacity Provider作成 Capacity Provider

Slide 25

Slide 25 text

25 Capacity Providerの作り⽅(Fargate) ECS Cluster 起動順序 • ECS Cluster作成 • Capacity Provider作成 • タスク実⾏、もしくはサービス作成 • タスクの配置 Capacity Provider ECS Tasks

Slide 26

Slide 26 text

26 Capacity Provider Strategyによる タスク配分戦略

Slide 27

Slide 27 text

27 Capacity Provider Strategyとは • 複数のCapacity Providerの組み合わせ⽐率を決定 • Base︓最⼩タスク数(1つのみ指定) • 注意︓run-taskのみ有効、create serviceでは無効(将来対応 予定) • Weight︓タスク数⽐率

Slide 28

Slide 28 text

28 Capacity Provider Strategyの詳細検証記事 https://dev.classmethod.jp/cloud/aws/fargate-spot-task-count/

Slide 29

Slide 29 text

29 Capacity Providerの ユースケース

Slide 30

Slide 30 text

30 ユースケース1︓オンデマンドandスポット • オンデマンドとスポットの⽐ 率を1:1で指定 • FARGATE_SPOTが起動する限 りは、2倍の性能を1.3 倍のコストで利⽤可能

Slide 31

Slide 31 text

31 ユースケース2︓AZのバランシング AZのバランス⽐率を全て同じに する CP1:Base=0, Weight=1 CP2:Base=0, Weight=1 CP3:Base=0, Weight=1 これにより、Auto Scaling groupがスケールするとき も、タスクのリバランシン グが不要 ECS Cluster Auto Scaling group (AZ1) Capacity Provider:CP1 Auto Scaling group (AZ2) Capacity Provider:CP2 Auto Scaling group (AZ3) Capacity Provider:CP3

Slide 32

Slide 32 text

32 あなたにも今すぐ10分できる FARGATE_SPOTの活⽤⽅法

Slide 33

Slide 33 text

33 FARGATE_SPOTの活⽤⽅法 1. みなさんの開発環境のECSクラスターのCapacity Providerを以下の設定にする • FARGATE_SPOTのみ 2. そのクラスターは全てFARGATE_SPOTでタスクが 起動する 3. 落ちない限りずっと7割引で使える︕

Slide 34

Slide 34 text

34 FARGATE_SPOTって落ちるでしょ︖ いくら開発環境だからってめんどくさくない︖ しかし

Slide 35

Slide 35 text

35 FARGATE_SPOTの活⽤⽅法 FARGATE_SPOTのタスク10個が46時間⼀つも落ちてない

Slide 36

Slide 36 text

36 FARGATE_SPOT、使い放題やん…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ / ※恐らく今だけ

Slide 37

Slide 37 text

37 まとめ • ECSのタスク数を⾮常に柔軟に設定できるCapacity Providerがリリース • はっきり⾔って分かりづらい(触らないとわからな い) • スケーリング戦略を低コストで実現できる可能性⼤ • 開発環境でFARGATE_SPOTから使ってみよう︕

Slide 38

Slide 38 text

38 皆さんのECS運⽤が さらに安く良くなることを願って