SlideShare uma empresa Scribd logo
1 de 26
© 2021, Amazon Web Services, Inc. or its Affiliates.
アマゾン ウェブ サービス ジャパン株式会社
落水 恭介
Amazon EKS における EC2 スポット
インスタンスをもっと身近に
クラウド最適化コンテナ編 ~コンテナ x Graviton2 x
スポットインスタンスによるコスト最適化~
2021.08.26
© 2021, Amazon Web Services, Inc. or its Affiliates.
自己紹介
落水 恭介 (Ochimizu Kyosuke)
コンテナスペシャリストソリューションアーキテクト
➢ SIer
➢ 教育業界ベンチャー
➢ Cloud Integrator
➢ サポートチーム / アマゾン ウェブ サービス ジャパン
➢ 現在のロール
好きな AWS サービス:
Amazon Elastic Container Service (Amazon ECS)
Amazon Elastic Kubernetes Service (Amazon EKS)
© 2021, Amazon Web Services, Inc. or its Affiliates.
本日お話すること
• Amazon EKS におけるコスト最適化
• EC2 スポットインスタンスの活用
• スポット中断への対応
• スポットのキャパシティ不足対応
• スポット/オンデマンドの Pod 配置
© 2021, Amazon Web Services, Inc. or its Affiliates.
Amazon EKS におけるコスト最適化
© 2021, Amazon Web Services, Inc. or its Affiliates.
ECS / EKS におけるコストの最適化とは
コントロールプレーン
(クラスター)
料金は発生しない 毎時 0.10USD
データプレーン
(コンテナ実行環境)
• EC2 の利用料金
• Fargate の利用料金
• EC2 の利用料金
• Fargate の利用料金
ECS / EKS のコスト最適化 = データプレーンのコスト最適化
※: 2021/08/26 時点での AWS の利用料金
© 2021, Amazon Web Services, Inc. or its Affiliates.
データプレーンのコスト最適化
オートスケーリング 適切なサイジング 購入オプション
必要な分だけ
EC2 インスタンス・コンテナを実行
コンテナに適切な
CPU やメモリを割り当て
スポットインスタンスや
Savings Plans の活用
© 2021, Amazon Web Services, Inc. or its Affiliates.
データプレーンのコスト最適化
オートスケーリング 適切なサイジング 購入オプション
必要な分だけ
EC2 インスタンス・コンテナを実行
コンテナに適切な
CPU やメモリを割り当て
スポットインスタンスや
Savings Plans の活用
本日は購入オプションについてお話します
© 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.
AWS Fargate の購入オプション
• 柔軟な設定の選択肢 – 50 の CPU/メモリ設定から
• Fargate Spot は、通常の Fargate の価格と比較して 最大70% の割引
• 現時点 (2021-08-26) では ECS でのみ利用可能
• Savings Plan は、最大 約 50% の割引 (3年コミット/全額一括前払い)、下限は 約 15 %
料金 料金 料金
1 vCPU $0.05056 $0.0394368 (22% Off) $0.01584035 (69% Off)
1 GB メモリ $0.00553 $0.0043134 (22% Off) $0.00173254 (69% Off)
Fargate Spot
Fargate
※ 東京リージョンでの 2021-08-24 時点での料金
Savings Plan
期間 1 年、全額前払い
AWS Fargate の料金: https://aws.amazon.com/jp/fargate/pricing/
© 2021, Amazon Web Services, Inc. or its Affiliates.
EKS における Pod 実行環境の選択肢
セルフマネージド型
ノード
マネージド型
ノードグループ
Fargate
ユーザーが自身で EC2 インスタンス /
Auto Scaling グループを管理
https://docs.aws.amazon.com/eks/latest/userguide/eks-compute.html
EKS がプロビジョニングやライフサイクルを管理
サーバーレスのコンピューティングエンジン
© 2021, Amazon Web Services, Inc. or its Affiliates.
Pod 実行環境と購入オプションの組み合わせ
セルフマネージド型
ノード
マネージド型
ノードグループ
Fargate
Savings Plans リザーブド
インスタンス (RIs)
スポット
インスタンス
© 2021, Amazon Web Services, Inc. or its Affiliates.
Pod 実行環境と購入オプションの組み合わせ
セルフマネージド型
ノード
マネージド型
ノードグループ
Fargate
Savings Plans リザーブド
インスタンス (RIs)
スポット
インスタンス
本日はスポットインスタンスの
活用についてお話します
© 2021, Amazon Web Services, Inc. or its Affiliates.
EC2 スポットインスタンスの活用
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポットインスタンスの利用において考慮するポイント
• スポットインスタンスを利用すること自体は簡単
➢ [セルフマネージド型ノード] スポットを利用する Auto Scaling グループを作成
➢ [マネージド型ノードグループ] キャパシティータイプに “スポット” を指定
• 実際の運用においては様々なポイントを考慮する必要がある
スポットのキャパシティ
不足対応
スポット中断への対応 スポット/オンデマンドの
Pod 配置
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット中断への対応
Node Termination Handler (NTH) を利用する
• 以下のようなイベントを検知してノードの cordon/drain を行う
➢ スポットインスタンスの中断
➢ キャパシティリバランス通知
➢ EC2 インスタンスの予定されたイベント
➢ Auto Scaling グループ (ASG) のスケールイン
• インスタンスメタデータ (IMDS) / キューの 2 モードが利用可能
セルフマネージド型ノードの場合
https://github.com/aws/aws-node-termination-handler
© 2021, Amazon Web Services, Inc. or its Affiliates.
Node Termination Handler (キュープロセッサーモード)
キュー
Amazon EventBridge
EC2 スポットインスタンス
中断通知
AWS Cloud
ASG ライフサイクル
アクション
Amazon SQS
EC2 スポットインスタンス
リバランス通知
Kubernetes クラスター
Pod (NTH)
Node
Node
cordon/drain
各種イベントを SQS キューに集約して Node Termination Handler が処理を行う
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット中断への対応
• Node Termination Handler の導入など、お客様のアクションは不要
• リバランス通知を受け取ると、新規ノードの起動および通知対象のノードの drain を行う
マネージド型ノードグループの場合
インスタンスの初期化処理の後、
Kubernetes に登録
Kubernetes ノードが
実行中の Podを退避
置換される
インスタンスが起動
Kubernetes ノードの
cordon および drain が開始 インスタンスが終了
中断のリスクが⾼まった
スポットインスタンス
代替の
スポットインスタンス
時間
時間
EC2 Auto Scaling
キャパシティリバランシング
© 2021, Amazon Web Services, Inc. or its Affiliates.
[補足] コンテナアプリケーション側での対応
• これらの仕組みは、あくまで Pod に SIGTERM を送るまでの仕組み
• SIGTERM を受けとった後の graceful shutdown や checkpoint の書き出しなどは
コンテナアプリケーション側でシグナルハンドリングを行う必要がある
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポットのキャパシティ不足対応
Cluster Autoscaler (priority expander) を利用
セルフマネージド型ノード / マネージド型ノードグループ共通
Auto Scaling グループ
Pod
Node
Pod Pod
Node
Pod
Pod
Node
Pod
Pod
Pending
Cluster Autoscaler
Node
Pod
1. スケジューリングできない
Pod の情報を取得
2. Auto Scaling グループの
希望する容量を増加
例) Cluster Autoscaler によるスケールアウト
3. 新しく起動したノードに
Pod が配置される
© 2021, Amazon Web Services, Inc. or its Affiliates.
Cluster Autoscaler の priority expander
ユーザーが定義した優先度に基づきスケールアウトする Auto Scaling グループを選択
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-autoscaler-priority-expander
namespace: kube-system
data:
priorities: |-
20:
- eks-spot.*
10:
- eks-on-demand.*
Auto Scaling グループ
(eks-spot)
Auto Scaling グループ
(eks-on-demand)
Cluster Autoscaler
1. ASG ”eks-spot“ のスケールアウトを試みる
2. 一定時間内にスケールアウトが完了しない場合、
ASG “eks-on-demand” のスケールアウトを試みる
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット活用における Cluster Autoscaler の考慮事項 (1)
Auto Scaling グループでは、同じサイズの vCPU とメモリリソースを持つ
インスタンスタイプを柔軟に組み合わせての使用を推奨
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: cluster
region: us-west-2
nodeGroups:
- name: ng
instanceSelector:
vCPUs: 2
memory: “4” # 4 GiB, unit defaults to GiB
managedNodeGroups:
- name: mng
instanceSelector:
vCPUs: 2
memory: 2GiB
cpuArchitecture: x86_64 # default value
eksctl での利用例
EC2 instance selector
$ ec2-instance-selector ¥
> --memory 4 ¥
> --vcpus 2 ¥
> --cpu-architecture x86_64 ¥
> -r ap-northeast-1
c5.large
c5a.large
c5d.large
t2.medium
t3.medium
t3a.medium
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット活用における Cluster Autoscaler の考慮事項 (2)
• Kubernetes バージョン 1.20 以前の EKS クラスターでは、マネージド型ノードグループの
作成する Auto Scaling グループ名がランダムなため priority expander の指定が難しい
• Kubernetes バージョン 1.21 の EKS クラスターより Auto Scaling グループの命名規則が
変更され、 priority expander の指定が容易に
Kubernetes バージョン 命名規則
1.20 以前 eks-<uuid>
1.21 eks-<managed-node-group-name>-<uuid>
Auto Scaling グループ
(eks-spot-XXX...)
マネージド型ノードグループ
(名前: spot)
© 2021, Amazon Web Services, Inc. or its Affiliates.
スポット/オンデマンドの Pod 配置
Taint や Affinity を利用して、Pod のスケジューリングを制御する
例) 優先的にスポットインスタンスへ配置 例) 必ずオンデマンドインスタンスへ配置
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: eks.amazonaws.com/capacityType
operator: In
values:
- SPOT
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/capacityType
operator: In
values:
- ON_DEMAND
Node
eks.amazonaws.com/capacityType=SPOT
Node
eks.amazonaws.com/capacityType=ON_DEMAND
Pod
Node
eks.amazonaws.com/capacityType=SPOT
Node
eks.amazonaws.com/capacityType=ON_DEMAND
Pod
© 2021, Amazon Web Services, Inc. or its Affiliates.
[補足] マネージド型ノードグループ x スポットインスタンス
マネージド型ノードグループのキャパシティータイプに “スポット” を選択した場合、
以下のベストプラクティスが適用された状態で作成される
• eks.amazonaws.com/capacityType: SPOT という Kubernetes ラベルが付与
• 配分戦略に capacity-optimized を使用
• キャパシティリバランスがオプトイン済み
• リバランス通知を受け取ると、新規ノードの起動および通知対象のノードの drain を実施
https://aws.amazon.com/jp/blogs/news/amazon-eks-now-supports-provisioning-and-managing-ec2-spot-instances-in-managed-node-groups-jp/
© 2021, Amazon Web Services, Inc. or its Affiliates.
まとめ
• Amazon EKS におけるコスト最適化
➢ データプレーンの「オートスケーリング」「適切なサイジング」「購入オプション」
• EC2 スポットインスタンスの活用
• スポット中断への対応
➢ [セルフマネージド型ノード] Node Termination Handler
➢ [マネージド型ノードグループ] 対応不要
• スポットのキャパシティ不足対応
➢ Cluster Autoscaler の Priority Expander
• スポット/オンデマンドの Pod 配置
➢ Taint や Affinity の利用
© 2021, Amazon Web Services, Inc. or its Affiliates.
Thank you!

Mais conteúdo relacionado

Mais de 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
 

Mais de 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
 

Último

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Último (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

202109 AWS Black Belt Online Seminar Amazon EKS における EC2 スポットインスタンスをもっと身近に

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. アマゾン ウェブ サービス ジャパン株式会社 落水 恭介 Amazon EKS における EC2 スポット インスタンスをもっと身近に クラウド最適化コンテナ編 ~コンテナ x Graviton2 x スポットインスタンスによるコスト最適化~ 2021.08.26
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. 自己紹介 落水 恭介 (Ochimizu Kyosuke) コンテナスペシャリストソリューションアーキテクト ➢ SIer ➢ 教育業界ベンチャー ➢ Cloud Integrator ➢ サポートチーム / アマゾン ウェブ サービス ジャパン ➢ 現在のロール 好きな AWS サービス: Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Kubernetes Service (Amazon EKS)
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. 本日お話すること • Amazon EKS におけるコスト最適化 • EC2 スポットインスタンスの活用 • スポット中断への対応 • スポットのキャパシティ不足対応 • スポット/オンデマンドの Pod 配置
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon EKS におけるコスト最適化
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. ECS / EKS におけるコストの最適化とは コントロールプレーン (クラスター) 料金は発生しない 毎時 0.10USD データプレーン (コンテナ実行環境) • EC2 の利用料金 • Fargate の利用料金 • EC2 の利用料金 • Fargate の利用料金 ECS / EKS のコスト最適化 = データプレーンのコスト最適化 ※: 2021/08/26 時点での AWS の利用料金
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. データプレーンのコスト最適化 オートスケーリング 適切なサイジング 購入オプション 必要な分だけ EC2 インスタンス・コンテナを実行 コンテナに適切な CPU やメモリを割り当て スポットインスタンスや Savings Plans の活用
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. データプレーンのコスト最適化 オートスケーリング 適切なサイジング 購入オプション 必要な分だけ EC2 インスタンス・コンテナを実行 コンテナに適切な CPU やメモリを割り当て スポットインスタンスや Savings Plans の活用 本日は購入オプションについてお話します
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon EC2 の購入オプション オンデマンド インスタンス リザーブド インスタンス (RIs) Savings Plans スポット インスタンス 長期のコミット無し、使用分 への支払い (秒単位/時間単位)。 Amazon EC2 の定価 1年/3年の長期コミットに応じた 大幅なディスカウント価格 RI と同等のディスカウント に加え、さらなる柔軟性 EC2 の空きキャパシティ を活用し最大 90 % 引き。 中断あり スパイクするような ワークロード 一定の負荷の見通しがある ワークロード ワークロードを またがる柔軟性 中断に強く、様々な インスタンスタイプを活用 できるワークロード EC2 インスタンスとしての性能に違いはない
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS Fargate の購入オプション • 柔軟な設定の選択肢 – 50 の CPU/メモリ設定から • Fargate Spot は、通常の Fargate の価格と比較して 最大70% の割引 • 現時点 (2021-08-26) では ECS でのみ利用可能 • Savings Plan は、最大 約 50% の割引 (3年コミット/全額一括前払い)、下限は 約 15 % 料金 料金 料金 1 vCPU $0.05056 $0.0394368 (22% Off) $0.01584035 (69% Off) 1 GB メモリ $0.00553 $0.0043134 (22% Off) $0.00173254 (69% Off) Fargate Spot Fargate ※ 東京リージョンでの 2021-08-24 時点での料金 Savings Plan 期間 1 年、全額前払い AWS Fargate の料金: https://aws.amazon.com/jp/fargate/pricing/
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. EKS における Pod 実行環境の選択肢 セルフマネージド型 ノード マネージド型 ノードグループ Fargate ユーザーが自身で EC2 インスタンス / Auto Scaling グループを管理 https://docs.aws.amazon.com/eks/latest/userguide/eks-compute.html EKS がプロビジョニングやライフサイクルを管理 サーバーレスのコンピューティングエンジン
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. Pod 実行環境と購入オプションの組み合わせ セルフマネージド型 ノード マネージド型 ノードグループ Fargate Savings Plans リザーブド インスタンス (RIs) スポット インスタンス
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. Pod 実行環境と購入オプションの組み合わせ セルフマネージド型 ノード マネージド型 ノードグループ Fargate Savings Plans リザーブド インスタンス (RIs) スポット インスタンス 本日はスポットインスタンスの 活用についてお話します
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. EC2 スポットインスタンスの活用
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. スポットインスタンスの利用において考慮するポイント • スポットインスタンスを利用すること自体は簡単 ➢ [セルフマネージド型ノード] スポットを利用する Auto Scaling グループを作成 ➢ [マネージド型ノードグループ] キャパシティータイプに “スポット” を指定 • 実際の運用においては様々なポイントを考慮する必要がある スポットのキャパシティ 不足対応 スポット中断への対応 スポット/オンデマンドの Pod 配置
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット中断への対応 Node Termination Handler (NTH) を利用する • 以下のようなイベントを検知してノードの cordon/drain を行う ➢ スポットインスタンスの中断 ➢ キャパシティリバランス通知 ➢ EC2 インスタンスの予定されたイベント ➢ Auto Scaling グループ (ASG) のスケールイン • インスタンスメタデータ (IMDS) / キューの 2 モードが利用可能 セルフマネージド型ノードの場合 https://github.com/aws/aws-node-termination-handler
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. Node Termination Handler (キュープロセッサーモード) キュー Amazon EventBridge EC2 スポットインスタンス 中断通知 AWS Cloud ASG ライフサイクル アクション Amazon SQS EC2 スポットインスタンス リバランス通知 Kubernetes クラスター Pod (NTH) Node Node cordon/drain 各種イベントを SQS キューに集約して Node Termination Handler が処理を行う
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット中断への対応 • Node Termination Handler の導入など、お客様のアクションは不要 • リバランス通知を受け取ると、新規ノードの起動および通知対象のノードの drain を行う マネージド型ノードグループの場合 インスタンスの初期化処理の後、 Kubernetes に登録 Kubernetes ノードが 実行中の Podを退避 置換される インスタンスが起動 Kubernetes ノードの cordon および drain が開始 インスタンスが終了 中断のリスクが⾼まった スポットインスタンス 代替の スポットインスタンス 時間 時間 EC2 Auto Scaling キャパシティリバランシング
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. [補足] コンテナアプリケーション側での対応 • これらの仕組みは、あくまで Pod に SIGTERM を送るまでの仕組み • SIGTERM を受けとった後の graceful shutdown や checkpoint の書き出しなどは コンテナアプリケーション側でシグナルハンドリングを行う必要がある
  • 19. © 2021, Amazon Web Services, Inc. or its Affiliates. スポットのキャパシティ不足対応 Cluster Autoscaler (priority expander) を利用 セルフマネージド型ノード / マネージド型ノードグループ共通 Auto Scaling グループ Pod Node Pod Pod Node Pod Pod Node Pod Pod Pending Cluster Autoscaler Node Pod 1. スケジューリングできない Pod の情報を取得 2. Auto Scaling グループの 希望する容量を増加 例) Cluster Autoscaler によるスケールアウト 3. 新しく起動したノードに Pod が配置される
  • 20. © 2021, Amazon Web Services, Inc. or its Affiliates. Cluster Autoscaler の priority expander ユーザーが定義した優先度に基づきスケールアウトする Auto Scaling グループを選択 apiVersion: v1 kind: ConfigMap metadata: name: cluster-autoscaler-priority-expander namespace: kube-system data: priorities: |- 20: - eks-spot.* 10: - eks-on-demand.* Auto Scaling グループ (eks-spot) Auto Scaling グループ (eks-on-demand) Cluster Autoscaler 1. ASG ”eks-spot“ のスケールアウトを試みる 2. 一定時間内にスケールアウトが完了しない場合、 ASG “eks-on-demand” のスケールアウトを試みる
  • 21. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット活用における Cluster Autoscaler の考慮事項 (1) Auto Scaling グループでは、同じサイズの vCPU とメモリリソースを持つ インスタンスタイプを柔軟に組み合わせての使用を推奨 apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: “4” # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB cpuArchitecture: x86_64 # default value eksctl での利用例 EC2 instance selector $ ec2-instance-selector ¥ > --memory 4 ¥ > --vcpus 2 ¥ > --cpu-architecture x86_64 ¥ > -r ap-northeast-1 c5.large c5a.large c5d.large t2.medium t3.medium t3a.medium
  • 22. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット活用における Cluster Autoscaler の考慮事項 (2) • Kubernetes バージョン 1.20 以前の EKS クラスターでは、マネージド型ノードグループの 作成する Auto Scaling グループ名がランダムなため priority expander の指定が難しい • Kubernetes バージョン 1.21 の EKS クラスターより Auto Scaling グループの命名規則が 変更され、 priority expander の指定が容易に Kubernetes バージョン 命名規則 1.20 以前 eks-<uuid> 1.21 eks-<managed-node-group-name>-<uuid> Auto Scaling グループ (eks-spot-XXX...) マネージド型ノードグループ (名前: spot)
  • 23. © 2021, Amazon Web Services, Inc. or its Affiliates. スポット/オンデマンドの Pod 配置 Taint や Affinity を利用して、Pod のスケジューリングを制御する 例) 優先的にスポットインスタンスへ配置 例) 必ずオンデマンドインスタンスへ配置 affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: eks.amazonaws.com/capacityType operator: In values: - SPOT affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/capacityType operator: In values: - ON_DEMAND Node eks.amazonaws.com/capacityType=SPOT Node eks.amazonaws.com/capacityType=ON_DEMAND Pod Node eks.amazonaws.com/capacityType=SPOT Node eks.amazonaws.com/capacityType=ON_DEMAND Pod
  • 24. © 2021, Amazon Web Services, Inc. or its Affiliates. [補足] マネージド型ノードグループ x スポットインスタンス マネージド型ノードグループのキャパシティータイプに “スポット” を選択した場合、 以下のベストプラクティスが適用された状態で作成される • eks.amazonaws.com/capacityType: SPOT という Kubernetes ラベルが付与 • 配分戦略に capacity-optimized を使用 • キャパシティリバランスがオプトイン済み • リバランス通知を受け取ると、新規ノードの起動および通知対象のノードの drain を実施 https://aws.amazon.com/jp/blogs/news/amazon-eks-now-supports-provisioning-and-managing-ec2-spot-instances-in-managed-node-groups-jp/
  • 25. © 2021, Amazon Web Services, Inc. or its Affiliates. まとめ • Amazon EKS におけるコスト最適化 ➢ データプレーンの「オートスケーリング」「適切なサイジング」「購入オプション」 • EC2 スポットインスタンスの活用 • スポット中断への対応 ➢ [セルフマネージド型ノード] Node Termination Handler ➢ [マネージド型ノードグループ] 対応不要 • スポットのキャパシティ不足対応 ➢ Cluster Autoscaler の Priority Expander • スポット/オンデマンドの Pod 配置 ➢ Taint や Affinity の利用
  • 26. © 2021, Amazon Web Services, Inc. or its Affiliates. Thank you!