SlideShare a Scribd company logo
1 of 35
© 2021, Amazon Web Services, Inc. or its Affiliates.
アマゾン ウェブ サービスジャパン株式会社
ソリューションアーキテクト ⽯本 遼
Amazon Elastic Container Service
EC2 スポットインスタンス / Fargate Spot ことはじめ
2021-Sep
AWS Black Belt Online Seminar
© 2021, Amazon Web Services, Inc. or its Affiliates.
本セッションの想定聴講者とゴール
• 想定聴講者
• ECS を触ったことがある、開発 or 本番環境で利⽤している
• ECS 上でのスポットインスタンス / Fargate Spot の活⽤を検討したいが、
考慮事項の有無や、それらの詳細を理解していない
• ゴール
• Amazon ECS Cluster Auto Scaling の構成要素、
およびスポットリソースとの組み合わせ⽅について理解する
• スポットリソース利⽤時に発⽣するイベントと、それらへの対策を理解する
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS における
コスト最適化のポイント
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS のコンテナサービス
Amazon Elastic
Kubernetes Service
(Amazon EKS)
AWS Fargate
Amazon Elastic
Container Registry
(Amazon ECR)
Amazon Elastic
Container Service
(Amazon ECS)
Amazon Elastic
Compute Cloud
(Amazon EC2)
AWS App Mesh AWS Cloud Map
オーケストレーション
デプロイメント・スケジューリング
スケーリングとコンテナ
アプリケーションの管理
ホスティング
コンテナ実⾏環境
イメージレジストリ
コンテナイメージリポジトリ
アプリケーションネットワーキング
サービスディスカバリ、
サービスメッシュ
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS のコンテナサービス
Amazon Elastic
Kubernetes Service
(Amazon EKS)
Amazon Elastic
Container Registry
(Amazon ECR)
AWS App Mesh AWS Cloud Map
イメージレジストリ
コンテナイメージリポジトリ
アプリケーションネットワーキング
サービスディスカバリ、
サービスメッシュ
AWS Fargate
Amazon Elastic
Container Service
(Amazon ECS)
Amazon Elastic
Compute Cloud
(Amazon EC2)
オーケストレーション
デプロイメント・スケジューリング
スケーリングとコンテナ
アプリケーションの管理
ホスティング
コンテナ実⾏環境
コントロールプレーン
料⾦は発⽣しない
データプレーンが
コスト最適化のポイント
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon EC2 の購⼊オプション
オンデマンド
インスタンス
リザーブド
インスタンス (RIs)
Savings Plans スポット
インスタンス
⻑期のコミット無し、使⽤分
への⽀払い (秒単位/時間単位)。
Amazon EC2 の定価
1年/3年の⻑期コミットに応じた
⼤幅なディスカウント価格
RI と同等のディスカウント
に加え、さらなる柔軟性
EC2 の空きキャパシティ
を活⽤し最⼤ 90 % 引き。
中断あり
スパイクするような
ワークロード
⼀定の負荷の⾒通しがある
ワークロード
ワークロードを
またがる柔軟性
中断に強く、様々な
インスタンスタイプを活⽤
できるワークロード
EC2 インスタンスとしての性能に違いはない
© 2021, Amazon Web Services, Inc. or its Affiliates.
- 柔軟な設定の選択肢 – 50 のCPU/メモリ設定から
- 通常の Fargate の価格と⽐較して 最⼤70% の割引
* Savings Plan は最⼤ 約 50% の割引 (3年コミット/全額⼀括前払い)、下限は 約 15 %
Price Price Price
1 vCPU $0.05056 $0.03944 (22% Off) $0.01539 (70% Off)
1 GB Mem $0.00553 $0.00431 (22% Off) $0.00168 (70% Off)
AWS Fargate Pricing
https://aws.amazon.com/fargate/pricing/
Fargate Spot
Fargate
※ 上記は東京リージョン 2021-08-03 時点での料⾦
Savings Plan
期間 1 年、全額前払い
AWS Fargate の購⼊オプション
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS でのスポット利⽤パターン
ECS Cluster
EC2 Auto Scaling Group
CapacityProvider
- Targaet Capacity : 60
- Managed Scaling : True
- Managed Termination Protection : True
c5.a c4
スポットインスタンス
1 つの ASG 内で組み合わせるパターン
us-east-1a
SpotAllocationStrategy: capacity-optimized
r5.large
m4.large
m5.large
r5.large
m4.large
m5.large
R5 R5
R5 R5
$$
$
$$$
$$$
$
$$
us-east-1b
Overrides: [“r5.large”, “m4.large”, ”m5.large”]
スポットインスタンスの配分戦略には、
capacity-optimized が⼤変オススメです
空きキャパシティの状況に応じて、
最適なスポットプールを⾃動的に選択
オンデマンドインスタンス
オンデマンドとスポットの
台数の割合を指定可能
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS でのスポット利⽤パターン
ECS Cluster
CapacityProvider
- Targaet Capacity : 60
- Managed Scaling : True
- Managed Termination Protection : True
ECS Cluster
AWS Fargate AWS Fargate Spot
CapacityProvider
FARGATE
CapacityProvider
FARGATE_SPOT
ECS Cluster
CapacityProvider
Ondemand ASG
CapacityProvider
Spot ASG
EC2 Auto Scaling Group EC2 Auto Scaling Group
c5 c4
スポットインスタンス
1 つの ASG 内で組み合わせるパターン オンデマンドとスポットを使い分けるパターン
FARGATE でスポットを活⽤するパターン
c5.a
EC2 Auto Scaling Group
c5.a c4
スポットインスタンス
オンデマンドインスタンス
オンデマンドとスポットの
台数の割合を指定可能
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS でのスポット利⽤パターン
ECS Cluster
CapacityProvider
- Targaet Capacity : 60
- Managed Scaling : True
- Managed Termination Protection : True
ECS Cluster
AWS Fargate AWS Fargate Spot
CapacityProvider
FARGATE
CapacityProvider
FARGATE_SPOT
ECS Cluster
CapacityProvider
Ondemand ASG
CapacityProvider
Spot ASG
EC2 Auto Scaling Group EC2 Auto Scaling Group
c5 c4
スポットインスタンス
1 つの ASG 内で組み合わせるパターン オンデマンドとスポットを使い分けるパターン
FARGATE でスポットを活⽤するパターン
c5.a
EC2 Auto Scaling Group
c5.a c4
スポットインスタンス
オンデマンドインスタンス
オンデマンドとスポットの
割合を指定可能
Capacity Provider …?
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット利⽤の前に
知っておくべき
ECS Cluster Auto Scaling
© 2021, Amazon Web Services, Inc. or its Affiliates.
ECS Cluster Auto Scaling が登場した背景
• 従来の課題
• EC2 インスタンス, ECS タスクのスケーリングが独⽴している
• 上記の課題による影響
• ECS タスクをスケールアウトする前に EC2 のスケーリングが必要
• EC2 のスケールイン時、 ECS タスクが予期せぬ停⽌されることが
AWS Lambda で “終了保護フラグ” を管理するなどの対応も…
https://aws.amazon.com/jp/blogs/news/deep-dive-on-amazon-ecs-cluster-auto-scaling/
© 2021, Amazon Web Services, Inc. or its Affiliates.
ECS Cluster Auto Scaling で登場するリソースや機能
• Capacity Provider
• Capacity Provider Strategy
• Capacity Provider Reservation
• Managed Scaling
© 2021, Amazon Web Services, Inc. or its Affiliates.
Capacity Provider
• ECS とコンテナ実⾏基盤(AutoScaling
Group、Fargate)の間のインター
フェースとしてリソースの抽象化を⾏う
• AutoScaling Group や Fargate を
1つの Capacity Provider と定義して、
クラスタに紐づけて利⽤
• Fargate においては、下記 2 つの
Capacity Provider が事前に予約されて
おり、 ECS クラスターに関連づけるだ
けで利⽤可能
• FARGATE : いわゆるオンデマンド
• FARGATE_SPOT : いわゆるスポット
ECS Cluster
EC2 Auto Scaling Group
CapacityProvider
- Targaet Capacity : 60
- Managed Scaling : True
- Managed Termination Protection : True
ECS Cluster
AWS Fargate AWS Fargate Spot
CapacityProvider
FARGATE
CapacityProvider
FARGATE_SPOT
c5.a c4
スポットインスタンス
© 2021, Amazon Web Services, Inc. or its Affiliates.
Capacity Provider Strategy
o タスクをどの Capacity Provider に
配置するかを決定する「戦略」
o Task 実⾏や Service を作成する際に
指定する
o base と weight を使⽤して、複数の
Capacity Provider にまたがって配置
することも可能
Default Capacity Provider Strategy
o ECS クラスタがデフォルトで利⽤する Capacity
Provider Strategy
o Capacity Provider Strategy を指定せずに Task
を実⾏した際に利⽤される
ECS Cluster
ECS Tasks ECS Tasks
weight: 2
weight: 1
AWS Fargate AWS Fargate Spot
CapacityProvider
FARGATE
CapacityProvider
FARGATE_SPOT
© 2021, Amazon Web Services, Inc. or its Affiliates.
Capacity Provider Strategy (cont.)
• base : その Capacity Provider での最⼩
実⾏タスク数
• weight : 実⾏するタスクの総数に対する
指定した Capacity Provider での相対的
な割合
ECS Cluster
aws ecs create-service
--cluster ${cluster_name}
--service-name ${service_name}
--task-definition ${task_def}
--desired-count 6
--capacity-provider-strategy
capacityProvider=FARGATE,weight=1,base=2
capacityProvider=FARGATE_SPOT,weight=1
ECS Tasks
タスク数: 6
base: 2
weight: 1
weight: 1
AWS Fargate AWS Fargate Spot
CapacityProvider
FARGATE
CapacityProvider
FARGATE_SPOT
© 2021, Amazon Web Services, Inc. or its Affiliates.
Capacity Provider Reservation
Capacity Provider Reservation = M / N x 100 で導出される、
ECS が発⾏する CloudWatch Metrics
• M : 実⾏したいタスク に必要な ASG 内のインスタンス数
• N : ASG 内で 既に実⾏されているインスタンス数
ECS Cluster
M = 4 つのタスクに必要な台数 = 2
N = 現在実⾏されている台数 = 2
Capacity Provider Reservation = 100 %
Capacity Provider
EC2 Auto Scaling Group
Tasks
© 2021, Amazon Web Services, Inc. or its Affiliates.
Capacity Provider Reservation (cont.)
Capacity Provider Reservation = M / N x 100 で導出される、
ECS が発⾏する CloudWatch Metrics
• M : 実⾏したいタスク に必要な ASG 内のインスタンス数
• N : ASG 内で 既に実⾏されているインスタンス数
Capacity Provider
EC2 Auto Scaling Group
ECS Cluster
Tasks
実⾏要求された
ECS タスク
M = 8 つのタスクに必要な台数 = 4
N = 現在実⾏されている台数 = 2
Capacity Provider Reservation = 200 %
追加で必要
キャパシティの過不⾜を可視化できる
© 2021, Amazon Web Services, Inc. or its Affiliates.
Managed Scaling
• Amazon ECS が、ユーザーに代わって Auto
Scaling Group を管理
• Capacity Provider Reservation の値と
ターゲットキャパシティを評価し、必要に応
じて ASG のスケーリングアクションを実⾏
• タスク実⾏時に配置先の EC2 が不⾜してい
る場合、タスクを“PROVSIONING”ステート
で待機させる
AutoScaling group
Amazon ECS
ECS が ASG を
直接制御 タスク実⾏要求
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS
スポット利⽤において
注意するべき 2 つのポイント
© 2021, Amazon Web Services, Inc. or its Affiliates.
EC2 / ECS タスクのライフサイクルと スポット の関係
pending
running
shutting-down
terminated
AMI
ユーザによる終了指⽰
or
EC2 スポットによる中断通知
タスク定義
Running
Provisioning Deprovisioning
Stopping
Pending
Activating
Stopped
Deactivating
起動できない
ことがある
起動できない
ことがある
起動できない
ことがある
中断される
ことがある
ユーザによる終了指⽰
or
ECS による中断通知
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS
スポット利⽤において
注意するべき 2 つのポイント
- 中断への対応
© 2021, Amazon Web Services, Inc. or its Affiliates.
ECS on スポットインスタンス での中断通知のハンドリング
ECS Cluster
ECS Tasks
EC2 Auto Scaling Group
EC2 スポットサービス
Amazon
EventBridge
EC2 Spot Instance interruption notice
としてイベント送信
インスタンスメタデータにて
中断対象か確認可能
(5 秒ごとの確認を推奨)
中断対象として
マーク
2 種類の中断通知の受け取り⽅が存在する
通知の後、代替となる ECS タスクを起動し、
安全にアプリケーションを停⽌する必要がある
© 2021, Amazon Web Services, Inc. or its Affiliates.
ECS on スポットインスタンス での中断通知のハンドリング
• 中断通知発⽣時に対応すべきこと
• 新規タスクの配置停⽌
• 既存タスクのドレイニング & LB切り離し & 停⽌ & ログ退避など
• 別コンテナインスタンスでのサービスタスク実⾏
• 中断発⽣の対応に向けまず設定しておくべきこと
ECS コンテナインスタンスの Userdata などで、
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true を
/etc/ecs/ecs.config に書き込んでおく
© 2021, Amazon Web Services, Inc. or its Affiliates.
■参考情報
Whatʼs new : Amazon ECS が ECS サービスを実⾏しているスポットイン
スタンスの⾃動ドレインをサポート
AWS Blog : ECS のアプリケーションを正常にシャットダウンする⽅法
• ECS_ENABLE_SPOT_INSTANCE_DRAINING=true の挙動
• 中断の2分前にスポット中断通知 & ECS エージェントが検知
• ECS エージェントが DRAINING をリクエスト、新規タスク配置停⽌
• ECS が ACTIVE な別インスタンスに、代替のサービスタスクを実⾏
• ECS が ALB / 該当タスクに対して DeregisterTargets API を実⾏
DeregistrationDelay を経て、 TargetGroup から Remove
• 中断対象タスクに SIGTERM が送信
• ここで必要な後処理を実⾏
• stopTimeout 後に SIGKILL が送信
ECS on スポットインスタンス での中断通知のハンドリング
© 2021, Amazon Web Services, Inc. or its Affiliates.
• SIGTERM 発⽣時に ECS タスク内で対応すべきこと
• アプリケーションの Graceful Shutdown
(新規受付停⽌/仕掛り中処理の完了)
• バッファしているログの出⼒・退避
• ロングラン処理の中断・チェックポイント書き出し
Python example NodeJS example
ECS on スポットインスタンス での中断通知のハンドリング
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon
EventBridge
Task
Container Container
Service
ECS Task State Change
としてイベント送信
SIGTERM
シグナル
Task
Container Container
Task
Container Container
Task
Container Container
Fargate Spot
Application Load Balancer
DeregisterTarget
(実⾏が保証されない)
AWS にキャパシティが必要になったとき、
Fargate Spot で稼働するタスクは
2 分前の通知とともに中断される
ECS コントロールプレーン
Graceful shutdowns with ECS
While Automated Spot Instance
Draining works on EC2 Spot Instances,
tasks that are run as FARGATE_SPOT are
not guaranteed to be deregistered from
a load balancerʼs target group until the
task transitions to a STOPPED state.
ECS on Fargate Spot での中断通知のハンドリング
© 2021, Amazon Web Services, Inc. or its Affiliates.
Task
Container Container
Task
Container Container
Task
Container Container
DeregisterTarget
(Best Effort)
Amazon
EventBridge
ECS Task State Change
としてイベント送信
Application Load Balancer
Service
SIGTERM
シグナル
Task
Container Container
Fargate Spot
ECS コントロールプレーン
SIGTERM を受け取ったタスクで必要となる処理(*)
- ALB からの Deregistration
- アプリケーションの Graceful Shutdown
- ロングラン処理の中断・チェックポイント書出し
etc…
* デフォルトで SIGTERM の 30 秒後に SIGKILL が発⾏、
タスク定義内の stopTimeout の設定によって、
120 秒などに設定することが可能
ECS on Fargate Spot での中断通知のハンドリング
© 2021, Amazon Web Services, Inc. or its Affiliates.
Task
Container Container
Service
SIGTERM
シグナル
Task
Container Container
Task
Container Container
Task
Container Container
AWS Fargate
DeregisterTarget
(Best Effort)
{
"version": "0",
"id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab",
"detail-type": "ECS Task State Change",
"source": "aws.ecs",
"account": "123456789012",
"resources": [
"arn:aws:ecs:us-east-1:123456789012:task/b99d40b3-5176-~~~
],
"detail": {
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default",
"createdAt": "2016-12-06T16:41:05.702Z",
"desiredStatus": "STOPPED",
"lastStatus": "RUNNING",
"stoppedReason": "Your Spot Task was interrupted.",
"stopCode": "TerminationNotice",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/b99d40b3-5176-~~~
….
}
}
Amazon
EventBridge
ECS Task State Change
としてイベント送信
Application Load Balancer DeregisterTarget
ECS コントロールプレーン
ECS on Fargate Spot での中断通知のハンドリング
https://github.com/aws-samples/ecs-fargate-drain-function
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon ECS
スポット利⽤において
注意するべき 2 つのポイント
- リソースの再確保
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット中断後のリソース再確保
o EC2 スポットインスタンス
o Auto Scaling Group で desired capacity > instance count となるため
ASG ⾃⾝が、設定されている配分戦略に基づいて不⾜分の再確保を試みる
o ECS タスク / Fargate Spot
o ECS スタンドアロンタスク の場合、実⾏要求元にてリトライが必要
o ECS サービス の場合、desired count > running count となるため
ECS サービス (コントロールプレーン) がタスク起動を再試⾏する
即時のスポットリソース再確保が確約されるわけではない点に注意
Amazon ECS ベストプラクティスガイド
Amazon EC2 スポットと FARGATE_SPOT の使⽤
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest
/bestpracticesguide/ec2-and-fargate-spot.html
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポットリソースが確保できない場合・・・
ECS Cluster
ECS Service (Primary) ECS Service (Secondary)
weight: 1 weight: 1
CapacityProvider
FARGATE-SPOT
CapacityProvider
FARGATE
スポットリソースが
確保できない場合
こちらでタスク起動
weight: 1
AWS Fargate
AWS Fargate Spot
o Fargate Spot・EC2 ともに、スポットリ
ソースが再取得できない可能性がある
o Secondary ⽤の ECS Service を準備し、
1) スポットリソースが確保できない場合に
Secondary でタスクを起動する
2) Primary が先にスケールアウトするよう
Auto Scaling ポリシーを調節する
などの⼯夫によって、
オンデマンドリソースを確保するアイデアも
© 2021, Amazon Web Services, Inc. or its Affiliates.
まとめ
© 2021, Amazon Web Services, Inc. or its Affiliates.
まとめ
o Amazon ECS のコスト最適化では、データプレーンの最適化がキモ
o スポットリソースの利⽤には ECS Cluster Auto Scaling の各機能が有⽤
o スポットリソースの利⽤において、注意すべきポイントは下記の 2 点
o スポット中断への対応として、
アプリケーションの安全な停⽌ と 代替リソースの確保が必要
o 追加のスポットリソースが確保できない場合の備えとして、
ECS サービスの複数利⽤ や スケーリングポリシーの最適化 が有効
© 2021, Amazon Web Services, Inc. or its Affiliates.
36 | © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
Thank You !

More Related Content

More from Amazon Web Services Japan

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 

Recently uploaded

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Recently uploaded (9)

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

202109 AWS Black Belt Online Seminar Amazon Elastic Container Service − EC2 スポットインスタンス / Fargate Spot ことはじめ

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. アマゾン ウェブ サービスジャパン株式会社 ソリューションアーキテクト ⽯本 遼 Amazon Elastic Container Service EC2 スポットインスタンス / Fargate Spot ことはじめ 2021-Sep AWS Black Belt Online Seminar
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. 本セッションの想定聴講者とゴール • 想定聴講者 • ECS を触ったことがある、開発 or 本番環境で利⽤している • ECS 上でのスポットインスタンス / Fargate Spot の活⽤を検討したいが、 考慮事項の有無や、それらの詳細を理解していない • ゴール • Amazon ECS Cluster Auto Scaling の構成要素、 およびスポットリソースとの組み合わせ⽅について理解する • スポットリソース利⽤時に発⽣するイベントと、それらへの対策を理解する
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS における コスト最適化のポイント
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS のコンテナサービス Amazon Elastic Kubernetes Service (Amazon EKS) AWS Fargate Amazon Elastic Container Registry (Amazon ECR) Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Compute Cloud (Amazon EC2) AWS App Mesh AWS Cloud Map オーケストレーション デプロイメント・スケジューリング スケーリングとコンテナ アプリケーションの管理 ホスティング コンテナ実⾏環境 イメージレジストリ コンテナイメージリポジトリ アプリケーションネットワーキング サービスディスカバリ、 サービスメッシュ
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS のコンテナサービス Amazon Elastic Kubernetes Service (Amazon EKS) Amazon Elastic Container Registry (Amazon ECR) AWS App Mesh AWS Cloud Map イメージレジストリ コンテナイメージリポジトリ アプリケーションネットワーキング サービスディスカバリ、 サービスメッシュ AWS Fargate Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Compute Cloud (Amazon EC2) オーケストレーション デプロイメント・スケジューリング スケーリングとコンテナ アプリケーションの管理 ホスティング コンテナ実⾏環境 コントロールプレーン 料⾦は発⽣しない データプレーンが コスト最適化のポイント
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon EC2 の購⼊オプション オンデマンド インスタンス リザーブド インスタンス (RIs) Savings Plans スポット インスタンス ⻑期のコミット無し、使⽤分 への⽀払い (秒単位/時間単位)。 Amazon EC2 の定価 1年/3年の⻑期コミットに応じた ⼤幅なディスカウント価格 RI と同等のディスカウント に加え、さらなる柔軟性 EC2 の空きキャパシティ を活⽤し最⼤ 90 % 引き。 中断あり スパイクするような ワークロード ⼀定の負荷の⾒通しがある ワークロード ワークロードを またがる柔軟性 中断に強く、様々な インスタンスタイプを活⽤ できるワークロード EC2 インスタンスとしての性能に違いはない
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. - 柔軟な設定の選択肢 – 50 のCPU/メモリ設定から - 通常の Fargate の価格と⽐較して 最⼤70% の割引 * Savings Plan は最⼤ 約 50% の割引 (3年コミット/全額⼀括前払い)、下限は 約 15 % Price Price Price 1 vCPU $0.05056 $0.03944 (22% Off) $0.01539 (70% Off) 1 GB Mem $0.00553 $0.00431 (22% Off) $0.00168 (70% Off) AWS Fargate Pricing https://aws.amazon.com/fargate/pricing/ Fargate Spot Fargate ※ 上記は東京リージョン 2021-08-03 時点での料⾦ Savings Plan 期間 1 年、全額前払い AWS Fargate の購⼊オプション
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS でのスポット利⽤パターン ECS Cluster EC2 Auto Scaling Group CapacityProvider - Targaet Capacity : 60 - Managed Scaling : True - Managed Termination Protection : True c5.a c4 スポットインスタンス 1 つの ASG 内で組み合わせるパターン us-east-1a SpotAllocationStrategy: capacity-optimized r5.large m4.large m5.large r5.large m4.large m5.large R5 R5 R5 R5 $$ $ $$$ $$$ $ $$ us-east-1b Overrides: [“r5.large”, “m4.large”, ”m5.large”] スポットインスタンスの配分戦略には、 capacity-optimized が⼤変オススメです 空きキャパシティの状況に応じて、 最適なスポットプールを⾃動的に選択 オンデマンドインスタンス オンデマンドとスポットの 台数の割合を指定可能
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS でのスポット利⽤パターン ECS Cluster CapacityProvider - Targaet Capacity : 60 - Managed Scaling : True - Managed Termination Protection : True ECS Cluster AWS Fargate AWS Fargate Spot CapacityProvider FARGATE CapacityProvider FARGATE_SPOT ECS Cluster CapacityProvider Ondemand ASG CapacityProvider Spot ASG EC2 Auto Scaling Group EC2 Auto Scaling Group c5 c4 スポットインスタンス 1 つの ASG 内で組み合わせるパターン オンデマンドとスポットを使い分けるパターン FARGATE でスポットを活⽤するパターン c5.a EC2 Auto Scaling Group c5.a c4 スポットインスタンス オンデマンドインスタンス オンデマンドとスポットの 台数の割合を指定可能
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS でのスポット利⽤パターン ECS Cluster CapacityProvider - Targaet Capacity : 60 - Managed Scaling : True - Managed Termination Protection : True ECS Cluster AWS Fargate AWS Fargate Spot CapacityProvider FARGATE CapacityProvider FARGATE_SPOT ECS Cluster CapacityProvider Ondemand ASG CapacityProvider Spot ASG EC2 Auto Scaling Group EC2 Auto Scaling Group c5 c4 スポットインスタンス 1 つの ASG 内で組み合わせるパターン オンデマンドとスポットを使い分けるパターン FARGATE でスポットを活⽤するパターン c5.a EC2 Auto Scaling Group c5.a c4 スポットインスタンス オンデマンドインスタンス オンデマンドとスポットの 割合を指定可能 Capacity Provider …?
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット利⽤の前に 知っておくべき ECS Cluster Auto Scaling
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. ECS Cluster Auto Scaling が登場した背景 • 従来の課題 • EC2 インスタンス, ECS タスクのスケーリングが独⽴している • 上記の課題による影響 • ECS タスクをスケールアウトする前に EC2 のスケーリングが必要 • EC2 のスケールイン時、 ECS タスクが予期せぬ停⽌されることが AWS Lambda で “終了保護フラグ” を管理するなどの対応も… https://aws.amazon.com/jp/blogs/news/deep-dive-on-amazon-ecs-cluster-auto-scaling/
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. ECS Cluster Auto Scaling で登場するリソースや機能 • Capacity Provider • Capacity Provider Strategy • Capacity Provider Reservation • Managed Scaling
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. Capacity Provider • ECS とコンテナ実⾏基盤(AutoScaling Group、Fargate)の間のインター フェースとしてリソースの抽象化を⾏う • AutoScaling Group や Fargate を 1つの Capacity Provider と定義して、 クラスタに紐づけて利⽤ • Fargate においては、下記 2 つの Capacity Provider が事前に予約されて おり、 ECS クラスターに関連づけるだ けで利⽤可能 • FARGATE : いわゆるオンデマンド • FARGATE_SPOT : いわゆるスポット ECS Cluster EC2 Auto Scaling Group CapacityProvider - Targaet Capacity : 60 - Managed Scaling : True - Managed Termination Protection : True ECS Cluster AWS Fargate AWS Fargate Spot CapacityProvider FARGATE CapacityProvider FARGATE_SPOT c5.a c4 スポットインスタンス
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. Capacity Provider Strategy o タスクをどの Capacity Provider に 配置するかを決定する「戦略」 o Task 実⾏や Service を作成する際に 指定する o base と weight を使⽤して、複数の Capacity Provider にまたがって配置 することも可能 Default Capacity Provider Strategy o ECS クラスタがデフォルトで利⽤する Capacity Provider Strategy o Capacity Provider Strategy を指定せずに Task を実⾏した際に利⽤される ECS Cluster ECS Tasks ECS Tasks weight: 2 weight: 1 AWS Fargate AWS Fargate Spot CapacityProvider FARGATE CapacityProvider FARGATE_SPOT
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. Capacity Provider Strategy (cont.) • base : その Capacity Provider での最⼩ 実⾏タスク数 • weight : 実⾏するタスクの総数に対する 指定した Capacity Provider での相対的 な割合 ECS Cluster aws ecs create-service --cluster ${cluster_name} --service-name ${service_name} --task-definition ${task_def} --desired-count 6 --capacity-provider-strategy capacityProvider=FARGATE,weight=1,base=2 capacityProvider=FARGATE_SPOT,weight=1 ECS Tasks タスク数: 6 base: 2 weight: 1 weight: 1 AWS Fargate AWS Fargate Spot CapacityProvider FARGATE CapacityProvider FARGATE_SPOT
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. Capacity Provider Reservation Capacity Provider Reservation = M / N x 100 で導出される、 ECS が発⾏する CloudWatch Metrics • M : 実⾏したいタスク に必要な ASG 内のインスタンス数 • N : ASG 内で 既に実⾏されているインスタンス数 ECS Cluster M = 4 つのタスクに必要な台数 = 2 N = 現在実⾏されている台数 = 2 Capacity Provider Reservation = 100 % Capacity Provider EC2 Auto Scaling Group Tasks
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. Capacity Provider Reservation (cont.) Capacity Provider Reservation = M / N x 100 で導出される、 ECS が発⾏する CloudWatch Metrics • M : 実⾏したいタスク に必要な ASG 内のインスタンス数 • N : ASG 内で 既に実⾏されているインスタンス数 Capacity Provider EC2 Auto Scaling Group ECS Cluster Tasks 実⾏要求された ECS タスク M = 8 つのタスクに必要な台数 = 4 N = 現在実⾏されている台数 = 2 Capacity Provider Reservation = 200 % 追加で必要 キャパシティの過不⾜を可視化できる
  • 19. © 2021, Amazon Web Services, Inc. or its Affiliates. Managed Scaling • Amazon ECS が、ユーザーに代わって Auto Scaling Group を管理 • Capacity Provider Reservation の値と ターゲットキャパシティを評価し、必要に応 じて ASG のスケーリングアクションを実⾏ • タスク実⾏時に配置先の EC2 が不⾜してい る場合、タスクを“PROVSIONING”ステート で待機させる AutoScaling group Amazon ECS ECS が ASG を 直接制御 タスク実⾏要求
  • 20. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS スポット利⽤において 注意するべき 2 つのポイント
  • 21. © 2021, Amazon Web Services, Inc. or its Affiliates. EC2 / ECS タスクのライフサイクルと スポット の関係 pending running shutting-down terminated AMI ユーザによる終了指⽰ or EC2 スポットによる中断通知 タスク定義 Running Provisioning Deprovisioning Stopping Pending Activating Stopped Deactivating 起動できない ことがある 起動できない ことがある 起動できない ことがある 中断される ことがある ユーザによる終了指⽰ or ECS による中断通知
  • 22. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS スポット利⽤において 注意するべき 2 つのポイント - 中断への対応
  • 23. © 2021, Amazon Web Services, Inc. or its Affiliates. ECS on スポットインスタンス での中断通知のハンドリング ECS Cluster ECS Tasks EC2 Auto Scaling Group EC2 スポットサービス Amazon EventBridge EC2 Spot Instance interruption notice としてイベント送信 インスタンスメタデータにて 中断対象か確認可能 (5 秒ごとの確認を推奨) 中断対象として マーク 2 種類の中断通知の受け取り⽅が存在する 通知の後、代替となる ECS タスクを起動し、 安全にアプリケーションを停⽌する必要がある
  • 24. © 2021, Amazon Web Services, Inc. or its Affiliates. ECS on スポットインスタンス での中断通知のハンドリング • 中断通知発⽣時に対応すべきこと • 新規タスクの配置停⽌ • 既存タスクのドレイニング & LB切り離し & 停⽌ & ログ退避など • 別コンテナインスタンスでのサービスタスク実⾏ • 中断発⽣の対応に向けまず設定しておくべきこと ECS コンテナインスタンスの Userdata などで、 ECS_ENABLE_SPOT_INSTANCE_DRAINING=true を /etc/ecs/ecs.config に書き込んでおく
  • 25. © 2021, Amazon Web Services, Inc. or its Affiliates. ■参考情報 Whatʼs new : Amazon ECS が ECS サービスを実⾏しているスポットイン スタンスの⾃動ドレインをサポート AWS Blog : ECS のアプリケーションを正常にシャットダウンする⽅法 • ECS_ENABLE_SPOT_INSTANCE_DRAINING=true の挙動 • 中断の2分前にスポット中断通知 & ECS エージェントが検知 • ECS エージェントが DRAINING をリクエスト、新規タスク配置停⽌ • ECS が ACTIVE な別インスタンスに、代替のサービスタスクを実⾏ • ECS が ALB / 該当タスクに対して DeregisterTargets API を実⾏ DeregistrationDelay を経て、 TargetGroup から Remove • 中断対象タスクに SIGTERM が送信 • ここで必要な後処理を実⾏ • stopTimeout 後に SIGKILL が送信 ECS on スポットインスタンス での中断通知のハンドリング
  • 26. © 2021, Amazon Web Services, Inc. or its Affiliates. • SIGTERM 発⽣時に ECS タスク内で対応すべきこと • アプリケーションの Graceful Shutdown (新規受付停⽌/仕掛り中処理の完了) • バッファしているログの出⼒・退避 • ロングラン処理の中断・チェックポイント書き出し Python example NodeJS example ECS on スポットインスタンス での中断通知のハンドリング
  • 27. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon EventBridge Task Container Container Service ECS Task State Change としてイベント送信 SIGTERM シグナル Task Container Container Task Container Container Task Container Container Fargate Spot Application Load Balancer DeregisterTarget (実⾏が保証されない) AWS にキャパシティが必要になったとき、 Fargate Spot で稼働するタスクは 2 分前の通知とともに中断される ECS コントロールプレーン Graceful shutdowns with ECS While Automated Spot Instance Draining works on EC2 Spot Instances, tasks that are run as FARGATE_SPOT are not guaranteed to be deregistered from a load balancerʼs target group until the task transitions to a STOPPED state. ECS on Fargate Spot での中断通知のハンドリング
  • 28. © 2021, Amazon Web Services, Inc. or its Affiliates. Task Container Container Task Container Container Task Container Container DeregisterTarget (Best Effort) Amazon EventBridge ECS Task State Change としてイベント送信 Application Load Balancer Service SIGTERM シグナル Task Container Container Fargate Spot ECS コントロールプレーン SIGTERM を受け取ったタスクで必要となる処理(*) - ALB からの Deregistration - アプリケーションの Graceful Shutdown - ロングラン処理の中断・チェックポイント書出し etc… * デフォルトで SIGTERM の 30 秒後に SIGKILL が発⾏、 タスク定義内の stopTimeout の設定によって、 120 秒などに設定することが可能 ECS on Fargate Spot での中断通知のハンドリング
  • 29. © 2021, Amazon Web Services, Inc. or its Affiliates. Task Container Container Service SIGTERM シグナル Task Container Container Task Container Container Task Container Container AWS Fargate DeregisterTarget (Best Effort) { "version": "0", "id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "123456789012", "resources": [ "arn:aws:ecs:us-east-1:123456789012:task/b99d40b3-5176-~~~ ], "detail": { "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "createdAt": "2016-12-06T16:41:05.702Z", "desiredStatus": "STOPPED", "lastStatus": "RUNNING", "stoppedReason": "Your Spot Task was interrupted.", "stopCode": "TerminationNotice", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/b99d40b3-5176-~~~ …. } } Amazon EventBridge ECS Task State Change としてイベント送信 Application Load Balancer DeregisterTarget ECS コントロールプレーン ECS on Fargate Spot での中断通知のハンドリング https://github.com/aws-samples/ecs-fargate-drain-function
  • 30. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS スポット利⽤において 注意するべき 2 つのポイント - リソースの再確保
  • 31. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット中断後のリソース再確保 o EC2 スポットインスタンス o Auto Scaling Group で desired capacity > instance count となるため ASG ⾃⾝が、設定されている配分戦略に基づいて不⾜分の再確保を試みる o ECS タスク / Fargate Spot o ECS スタンドアロンタスク の場合、実⾏要求元にてリトライが必要 o ECS サービス の場合、desired count > running count となるため ECS サービス (コントロールプレーン) がタスク起動を再試⾏する 即時のスポットリソース再確保が確約されるわけではない点に注意 Amazon ECS ベストプラクティスガイド Amazon EC2 スポットと FARGATE_SPOT の使⽤ https://docs.aws.amazon.com/ja_jp/AmazonECS/latest /bestpracticesguide/ec2-and-fargate-spot.html
  • 32. © 2021, Amazon Web Services, Inc. or its Affiliates. スポットリソースが確保できない場合・・・ ECS Cluster ECS Service (Primary) ECS Service (Secondary) weight: 1 weight: 1 CapacityProvider FARGATE-SPOT CapacityProvider FARGATE スポットリソースが 確保できない場合 こちらでタスク起動 weight: 1 AWS Fargate AWS Fargate Spot o Fargate Spot・EC2 ともに、スポットリ ソースが再取得できない可能性がある o Secondary ⽤の ECS Service を準備し、 1) スポットリソースが確保できない場合に Secondary でタスクを起動する 2) Primary が先にスケールアウトするよう Auto Scaling ポリシーを調節する などの⼯夫によって、 オンデマンドリソースを確保するアイデアも
  • 33. © 2021, Amazon Web Services, Inc. or its Affiliates. まとめ
  • 34. © 2021, Amazon Web Services, Inc. or its Affiliates. まとめ o Amazon ECS のコスト最適化では、データプレーンの最適化がキモ o スポットリソースの利⽤には ECS Cluster Auto Scaling の各機能が有⽤ o スポットリソースの利⽤において、注意すべきポイントは下記の 2 点 o スポット中断への対応として、 アプリケーションの安全な停⽌ と 代替リソースの確保が必要 o 追加のスポットリソースが確保できない場合の備えとして、 ECS サービスの複数利⽤ や スケーリングポリシーの最適化 が有効
  • 35. © 2021, Amazon Web Services, Inc. or its Affiliates. 36 | © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark Thank You !