Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon EC2 Auto Scaling によるスポットインスタンス活用講座

Amazon EC2 Auto Scaling によるスポットインスタンス活用講座

最大9割引で提供するEC2スポットインスタンスの上でコンテナワークロードを効果的に運用するために理解しておきたい2つのポイント、スポットインスタンスの基礎とAmazon EC2 Auto Scalingのミックスインスタンスグループ機能について説明します。

0717122be6603bfe987cdc814030c0d6?s=128

Haruyoshi Takiguchi

June 10, 2020
Tweet

Transcript

  1. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 1 滝⼝ 開資 (はるよし) ソリューションアーキテクト - EC2スポットインスタンススペシャリスト アマゾンウェブサービスジャパン株式会社 2020-06-10 Amazon EC2 Auto Scaling による スポットインスタンス活⽤講座
  2. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 2 ⾃⼰紹介 滝⼝ 開資 (はるよし) ソリューションアーキテクト - EC2スポットインスタンススペシャリスト ⽇本市場でのEC2スポットインスタンス製品担当 普段の業務 EC2スポットインスタンスを活⽤するお客様を 技術⾯からサポート 好きなAWSサービス • Amazon EC2 Auto Scaling • AWS Support
  3. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 3 はじめに
  4. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 4 本⽇お話しする内容 • スポットインスタンスの基礎 • EC2 Auto Scalingの基礎
  5. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 5 本⽇わかるようになること • スポットインスタンスはEC2キャパシティがあるときに( )できる • 今は「⼊札」は不要。最⼤で( )インスタンス価格まで⽀払っても良い、 というデフォルトの設定(上限価格)の使⽤を推奨 • スポット( )ールの数 = インスタンスタイプの数 x AZの数。多ければ多いほど中 断に強くなる • EC2キャパシティが使⽤できなくなると、スポットインスタンスの( )が発⽣ • 中断の( )分前に中断通知イベントを取得できる。スポットフリートでテストできる • Auto Scalingでスポットインスタンスを管理する場合、ミッ( )スインスタンスグ ループ機能を⽤いる • ミックスインスタンスグループによりスポットプ( )ルの追加が容易になる • ミックスインスタンスグループは起動テン( )レートからの作成が必要 • 最も余裕のあるスポットプールからスポットインスタンスを起動できるよう、オス スメ配分戦略のcapacity-o( )timizedを選択する • ステートレスなコンテナワークロードには( )インスタンス + EC2 Auto Scaling が最適
  6. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 6 スポットインスタンス これだけは
  7. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 7 Amazon EC2の購⼊オプション オンデマンドインスタンス ⻑期コミット無し、使⽤分への⽀払い (秒単位/時間単位)。Amazon EC2の定価 スパイクするようなワーク ロード リザーブドインスタンス とSavings Plans 1年/3年の⻑期コミットに応じた ⼤幅なディスカウント価格 ⼀定の負荷の⾒通しがある ワークロード スポットインスタンス Amazon EC2の空きキャパシティを活 ⽤し最⼤90%値引き。中断あり 中断に強く、かつ様々な インスタンスタイプを活⽤ できるワークロード EC2インスタンスとしての性能に違いはない
  8. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 8 EC2購⼊オプションをどう組み合わせるか? ⼀定の負荷が⾒込めるワーク ロードには 中断に強く、スケールするワーク ロードには 新規のワークロード、あるいはス テートフルなワークロードには オンデマンドインスタンス
  9. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 9 スポットインスタンスの活⽤シーン スポットインスタンスを使いこなす ための 4 原則 ü 再開可能 ü ステートレス ü 疎結合 ü スポットプールの分散 さらに・・・・ コンテナ化されたワークロード © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
  10. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 10 スポットインスタンスのアンチパターン • ⾼可⽤性を求められるミッションクリティカルなワーク ロード • データベース(オンライントランザクション) • チェックポイントを設けにくいステートフルなワーク ロード • マルチプレイヤーのゲームステージ • デスクトップ⽤途など、常時インタラクションのあるアプリ ケーションやワークステーション
  11. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 11 スポットインスタンスのしくみ と価格
  12. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 12 空きキャパシティとスポット価格(1) ap-northeast-1a (Tokyo Region) m4.large … r4.large c4.large ap-northeast-1c m4.large … r4.large c4.large
  13. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 13 空きキャパシティとスポット価格(2) ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中
  14. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 14 空きキャパシティとスポット価格(3) ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 スポットプール…リージョン、アベイラビリティゾーン(AZ), インスタンスタイプごとに独⽴した空きキャパシティ
  15. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 15 スポットインスタンスの価格設定履歴 • EC2マネジメントコンソール「スポットリクエスト」→「価格設定履歴」
  16. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 16 スポットインスタンス価格の特徴
  17. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 17 スポットインスタンス価格の特徴
  18. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 18 スポットインスタンス価格の特徴
  19. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 19 スポット価格安定化 - 2017年11⽉
  20. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 20 スポット価格安定化 - 2017年11⽉
  21. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 21 スポット価格安定化 - 2017年11⽉
  22. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 22 スポット価格安定化 - 2017年11⽉ 新しい価格体系
  23. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 23 空きキャパシティとスポット価格(4) ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 $0.0349 $0.0317 $0.0317 r4.large 使⽤中 $0.0375 $0.0333 スポット価格…その時点のスポットインスタンス価格。ス ポットプールごとの需要と供給で決まる $0.0356
  24. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 24 スポットインスタンス価格の決まり⽅ スポットインスタンス価格は⻑期供給と需要に基づいて徐々に調整される
  25. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 25 スポットインスタンスの起動条件(1) ap-northeast-1a (Tokyo Region) m4.large … c4.large 使⽤中 使⽤中 r4.large 使⽤中 $0.0349 $0.0317 $0.0333 上限価格…スポットインスタンスに⽀払っても良いと思う最 ⼤料⾦。デフォルトはオンデマンドインスタンス価格 • 東京リージョン1aで c4.largeを起動したい • リクエスト時に「上限価 格」を指定:最⼤$0.1260ま で⽀払っても良い $0.1260
  26. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 26 スポットインスタンスの起動条件(2) ap-northeast-1a (Tokyo Region) m4.large … c4.large 使⽤中 使⽤中 r4.large 使⽤中 $0.0349 $0.0317 $0.0333 上限価格がスポット価格を上回り、スポットプールに空きが ある場合に希望したスポットインスタンスを使⽤できる • 東京リージョン1aでc4.largeを起動 したい • その時点のスポット価格 ($0.0317)が上限価格($0.1260) 以内 • スポットプールに空きがある リクエストが即座に受理され 起動できる $0.1260
  27. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 27 スポットインスタンスの中断(1) ap-northeast-1a (Tokyo Region) m4.large … c4.large 使⽤中 使⽤中 r4.large 使⽤中 $0.0349 $0.0333 中断理由(1)…Amazon EC2のキャパシティ要件(オンデマン ドインスタンスの需要増加など) • 東京リージョン1aで c4.largeの空きキャパシティ が不⾜ 2分前の中断通知
  28. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 28 スポットインスタンスの中断(2) ap-northeast-1a (Tokyo Region) m4.large … c4.large 使⽤中 使⽤中 r4.large 使⽤中 $0.0349 $0.0317 ↓ $0.0350 $0.0333 中断理由(2)…スポット価格が変動した結果、設定していた上 限料⾦を上回った • 東京リージョン1aでc4.largeのス ポット価格が変動 • 上限価格に$0.0320を指定して いた • スポット価格($0.0317)が $0.0350に変動 $0.0320 2分前の中断通知
  29. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 29 スポットインスタンスのシンプルなルール • スポットインスタンスの価格は⻑期供給と需要に基づい て徐々に調整される • スポットインスタンスは AWS によって中断されること があり、その際には 2 分前までに通知される • Amazon EC2の空きキャパシティが使⽤できなくなったとき • 指定した価格(「上限価格」)をスポットインスタンス価格が上 回ったとき
  30. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 30 スポットインスタンスの ライフサイクル
  31. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 31 スポットインスタンスのライフサイクル • 起動までの流れはオンデマ ンドインスタンスと同⼀ • 終了に⾄る道筋は2通り • ユーザーによるインスタンス終了 • EC2スポットサービスによる中断 • インスタンスは削除される (デフォルト動作) • 92%のスポットインスタン スがユーザーにより終了さ れている AMI
  32. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 32 中断通知→すみやかに後処理を!! • 仕掛かり中の処理を退避す る • 途中の計算結果をS3にアップロード • 新規処理の受付を停⽌する • ELBから登録解除 • コンテナステータスをDRAININGに • などなど AMI 2分間の活⽤が 使いこなしのポイント
  33. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 33 中断のハンドリング
  34. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 34 中断通知の例 { "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Spot Instance Interruption Warning", "source": "aws.ec2", "account": "123456789012", "time": "2019-06-12T12:00:00Z", "region": "us-east-2", "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"], "detail": { "instance-id": "i-1234567890abcdef0", "instance-action": "action” } }
  35. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 35 中断通知 - 受信の2つの⽅法 • インスタンスメタデータ • インスタンス内部からアクセス • 5秒おきのチェック(pull型) • 後処理 • シェルスクリプトを書く • ⾃インスタンスのことなので⾃分の 処理を記述 • EventBridge (CloudWatch Events) • インスタンス外部からアクセス • ⾃動受信(push型) • 後処理 • Lambda関数を書く • どのインスタンスが中断対象なのか をまず把握 • 汎⽤的に記述 Spot Instance シェルスクリプト S3に書き出し ELBから登録解除 CloudWatch Event Spot Instance 中断通知 Lambda関数 どのインスタンスか把握 S3に書き出し ELBから登録解除 中断通知
  36. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 36 コンテナ環境での⾃動ドレイン(縮退) • コンテナインスタンスにスポットインスタンスを⽤いる場合、2分前の 中断通知をトリガーに⾃動的にdrainingしてくれる機能を提供 • これまでは中断通知のハンドリングをコンテナインスタンス内部に持 つ必要があった • ECS, EKSいずれも使⽤可能 • ECS • /etc/ecs/ecs.configにECS_ENABLE_SPOT_INSTANCE_DRAINING=trueを指定しておく • https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/container- instance-spot.html • Kubernates / EKS • node-termination-handler という名前のPodを各スポットインスタンスで稼働 • https://github.com/aws/aws-node-termination-handler
  37. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 37 <参考>中断通知の受信 - インスタンスメタデータから • インスタンスメタデータサービス • 実⾏中のインスタンスそのものに関する情報・属性を提供 • http://169.254.169.254/latest/meta-data/ 以下に格納される • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2- instance-metadata.html • 中断通知 • http://169.254.169.254/latest/meta-data/spot/instance-action に格納される • 普段は空 • cronやシェルスクリプトから5秒おきのチェックを推奨 • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot- interruptions.html • 後処理 • シェルスクリプトを記述する
  38. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 38 <参考>中断通知の受信 ‒ EventBridgeから • Amazon EventBridge (旧 CloudWatch Events) • AWSリソースの変更をリアルタイムに把握できるストリーム(イベントの流れ)を提供 • あるイベントに対してルールを記述し、⼀致したときにターゲットアクションを⾃動 実⾏ • https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/what-is- amazon-eventbridge.html • 中断通知 ‒ イベントソース • サービス名:EC2 • EC2 Spot Instance Interruption Warning • 後処理 ‒ ターゲットアクション • Lambda関数 • どのインスタンスが中断するかをまず把握 • SNSトピック
  39. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 40 スポットフリートで 中断通知のテストができます!
  40. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 41 中断のテスト - スポットフリートから(1)
  41. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 42 中断のテスト - スポットフリートから(2) • 作成時、「ターゲット容量を維持する」を選択 • 「中断動作」は「終了」を選択
  42. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 43 中断のテスト - スポットフリートから(3) • 「ターゲット容量の変更」を選択
  43. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 44 中断のテスト - スポットフリートから(4) • 「新しいターゲットキャパシティ」に現在の容量から1を減じた値を指定 • 「インスタンスの削除」にチェックを⼊れる(デフォルト)
  44. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 45 Auto Scaling これだけは
  45. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 46 Auto Scalingの動作原理 Auto Scalingは、 1. 希望容量と現実の起動台数との差を監視し、 2. 常に希望容量に合致するようにEC2インスタンスを増減する 現実の 起動台数 現実の 起動台数 スケール アウト 希望容量 希望容量 スケール イン 現実の 起動台数 希望容量 1) 静観 2) スケールアウト 3) スケールイン
  46. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 47 希望容量の使われ⽅ • サイズの維持 • ⼿動スケーリング • ⾃動スケーリング
  47. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 48 希望容量の使われ⽅ • サイズの維持 • 希望容量は固定 • 現実の台数が減るとその差分を検知して1台追加する • ⼀番シンプルな使い⽅ Auto Scaling group 希望容量: 4 Auto Scaling Auto Scaling group 希望容量: 4 Auto Scaling Auto Scaling group 希望容量: 4 Auto Scaling Auto Scalingが スケールアウトを 実⾏ 障害により 1台停⽌
  48. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 49 希望容量の使われ⽅ • ⼿動スケーリング • 希望容量を⼿動で変更する • これに追随してAuto Scalingサービスが台数を変化させる • 「サイズの維持」も引き続き⾏われる Auto Scaling group 希望容量: 2 Auto Scaling Auto Scaling group 希望容量: 2→4 Auto Scaling Auto Scaling group 希望容量: 4 Auto Scaling Auto Scalingが スケールアウトを 実⾏ 希望容量を ⼿動で変更 希望容量変更が 指⽰される
  49. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 50 希望容量の使われ⽅ • ⾃動スケーリング • 様々な条件に応じて希望容量が動的に変化する • これに追随してAuto Scalingサービスが現実の台数を変化させる • この設定⽅法として様々なスケーリングポリシーが提供されている Auto Scaling group 希望容量: 2 Auto Scaling ポリシー: アラーム が発動したら希望 容量を4に Auto Scaling group 希望容量: 2→4 Auto Scaling Auto Scaling group 希望容量: 4 Auto Scaling Auto Scalingが スケールアウトを 実⾏ アラーム発動 →ポリシー実⾏ 希望容量変更が 指⽰される
  50. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 51 インスタンスの分散 • 使⽤できるアベイラビリティ ゾーン間で、均等にインスタ ンスを配置しようとする • スケールアウトするとき:インス タンス数が最も少ないアベイラビ リティゾーンに新規起動 • これに失敗する場合、別のアベイラビ リティゾーンを選択 EC2 Auto Scalingはスケール動作時に 「インスタンスの分散」を最も重視する Availability zone A Availability zone B Auto Scaling group Availability zone A Availability zone B Availability zone C
  51. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 52 ミックスインスタンスグループ (Mixed Instance Policy Group)
  52. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 53 Auto Scaling: ミックスインスタンスグループ以前 m4.large Spot ASG Min: 1 Max: 10 m5.large Spot ASG Min: 1 Max: 10 c4.xlarge O-D ASG Min: 1 Max: 10 Availability Zone 1 Availability Zone 2 Availability Zone 3 以前の設計 - オンデマンド⽤ ASGとスポット ⽤ASGを別に⽤ 意 - 使⽤するインス タンスタイプご とにASGを⽤意 ASG: Auto Scaling Group O-D: On Demand Instance
  53. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 54 Auto Scaling:ミックスインスタンスグループ機能 m4.large Spot Instances m5.large Spot Instances c4.xlarge On-Demand instances Availability Zone 1 Availability Zone 2 Availability Zone3 現在の設計:単⼀ のASGに複数購⼊ オプションや複数 のインスタンスタ イプを指定できる Single ASG ASG: Auto Scaling Group O-D: On Demand Instance RI: Reserved Instance
  54. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 55 EC2 Auto Scaling Groupの作成 (1)
  55. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 56 EC2 Auto Scaling Groupの作成 (2) ミックスインスタンスグループ機能を使うには 「起動テンプレート」を⽤いる必要がある
  56. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 57 EC2 Auto Scaling Groupの作成 (3) 「購⼊オプションとインスタンスを組み合わせる」を選択
  57. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 58 EC2 Auto Scaling Groupの作成 (4)
  58. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 59 EC2 Auto Scaling Groupの作成 (5)
  59. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 60 EC2 Auto Scaling Groupの作成 (6) • 要件に合うインスタンスタイプを複数選択する • 起動テンプレートに指定しておくことも可能
  60. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 61 EC2 Auto Scaling Groupの作成 (7) 「インスタンスの分散」のチェックを外す
  61. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 62 EC2 Auto Scaling Groupの作成 (9) 台数の考え⽅について次のスライドで説明
  62. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 63 EC2 Auto Scaling Groupの作成 (10) 台数の考え⽅の例 • 「グループサイズ」: 12 グループサイズ = 12
  63. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 64 EC2 Auto Scaling Groupの作成 (10) 台数の考え⽅の例 • 「グループサイズ」: 12 • 「オプションのオンデマンドベース」: 2 グループサイズ = 12 オンデマンド = 2
  64. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 65 EC2 Auto Scaling Groupの作成 (10) 台数の考え⽅の例 • 「グループサイズ」: 12 • 「オプションのオンデマンドベース」: 2 • 「ベースを超えるオンデマンド割合」: 70:30 グループサイズ = 12 オンデマンド = 2 オンデマンド = 7 スポット = 3
  65. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 66 オンデマンド = 7 スポット = 3 EC2 Auto Scaling Groupの作成 (10) 台数の考え⽅の例 • 「グループサイズ」: 12 • 「オプションのオンデマンドベース」: 2 • 「ベースを超えるオンデマンド割合」: 70:30 結果 オンデマンド 9台 スポット 3台 グループサイズ = 12 オンデマンド = 2 3台 2+7 = 9台
  66. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 67 EC2 Auto Scaling Groupの作成 (11) 「スポット割り当て戦略」とは?
  67. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 68 配分戦略 (Allocation Strategy)
  68. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 69 6台のスポットインスタンスを 起動します。 どちらが中断に強いでしょうか?
  69. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 70 (a) 6つのスポットプールを選択 ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 6つのスポットプールすべてを選択 <参考> 選択したスポットプールすべてに均等にスポットインスタンスを分散する起動オプションを指定した (「配分戦略」 – diversified) https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-fleet.html#spot-fleet-allocation-strategy
  70. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 71 (b) 2つのスポットプールを選択 ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 1aゾーン、1cゾーンそれぞれのm4.largeだけを選択
  71. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 72 (a) 1cゾーンm4.largeの空きキャパシティ不⾜ ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 1台は中断するが、残り5台は業務継続できる
  72. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 73 (b) 1cゾーンm4.largeの空きキャパシティ不⾜ ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 半数の3台が中断リスクを負うことになる
  73. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 74 ところで、⼀番中断しにくい スポットプールはどこでしょう?
  74. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 75 ⼀番中断しにくいスポットプールは? ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中
  75. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 76 ⼀番中断しにくいスポットプールはどこでしょう? ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中
  76. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 77 各AZで最も余裕のある スポットプールを選択できたら?
  77. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 78 ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中
  78. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 79 (c) もし、⼀番⼤きな空きキャパシティを選べたら…… ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 こうなりますね。
  79. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 80 再掲:(a) 6つのスポットプールを選択 ap-northeast-1a (Tokyo Region) m4.large … c4.large ap-northeast-1c m4.large … c4.large 使⽤中 使⽤中 使⽤中 使⽤中 r4.large 使⽤中 r4.large 使⽤中 6つのスポットプールすべてを選択
  80. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 81 ⽐べてみましょう
  81. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 82 ⽐べてみましょう
  82. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 83 ⽐べてみましょう 6台中5台稼働 6台中6台稼働
  83. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 84 ⽐べてみましょう 6台中5台稼働 6台中6台稼働 配分戦略: capacity-optimized
  84. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 85 再掲:EC2 Auto Scaling Groupの作成 (11) 「スポット割り当て戦略」とは? 配分戦略: capacity-optimized
  85. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 86 活⽤のコツ:スポットプールの分散 (1) • インスタンスタイプ・アベイラビリティゾーンを複数選択 する→中断に対するリスクを分散できる • インスタンスタイプ選定の⼀般論: 近いインスタンスタイプを選ぶ + 1世代前を選ぶ • m5.large (2 vCPU, 8GB, $0.124/h)が使える • c5.large (2 vCPU, 4 GB, $0.107/h), r5.large (2 vCPU, 16GB, $0.152/h)を候 補にする • m4.large (2 vCPU, 8GB, 0.129/h)を候補にする (+c4.large, r4.large) 価格は2020年6⽉9⽇現在、東京リージョンでのオンデマンドインスタンスのもの
  86. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 87 活⽤のコツ:スポットプールの分散 (2) • インスタンスタイプ・アベイラビリティゾーンを複数選択 する→中断に対するリスクを分散できる • EC2 Auto Scalingのミックスインスタンスグループを活⽤ する • 配分戦略:capacity-optimizedを選択する
  87. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 88 Auto Scaling Groupの スポットインスタンス台数は どうやって決めたら良いの?
  88. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 89 活⽤のコツ:ASG内のスポットインスタンス⽐率(1) • 単純な⽅法 • スポットインスタンスの⽐率を10%からスタートする • オプションのオンデマンドベースは0を指定 • 1週間運⽤し、きちんとスポットインスタンスの中断などに対処でき るようであれば徐々に⽐率を上げていく
  89. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 90 活⽤のコツ:ASG内のスポットインスタンス⽐率(2) • ワークロードを分析して積み上げる⽅法 • 最低限満たすべき性能要件があるのであれば、それに応じたキャパシ ティを「オプションのオンデマンドベース」に指定 • スポットインスタンス⽐率をある程度⼤きな値からスタート (50%など)
  90. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 91 活⽤のコツ:ASG内のスポットインスタンス⽐率(2) • ワークロードを分析して積み上げる⽅法 • 最低限満たすべき性能要件があるのであれば、それに応じたキャパシ ティを「オプションのオンデマンドベース」に指定 • スポットインスタンス⽐率をある程度⼤きな値からスタート (50%など) • スポット⽐率を100%に近づけられるパターン • 中断やインスタンス障害に対して、リトライ可能な仕組みがある • ⼀定のダウンタイム、あるいは処理遅延を許容できる
  91. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 92 活⽤のコツ:ASG内のスポットインスタンス⽐率(2) • その上で、オンデマンド:スポット⽐率を考える • スポット⽐率を100%に近づけられるパターン • 中断やインスタンス障害に対して、リトライ可能な仕組みがある • ⼀定のダウンタイム、あるいは処理遅延を許容できる
  92. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 93 まとめ
  93. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 94 スポットインスタンスの活⽤シーン 使いこなすための 4 原則: ü 再開可能 ü スポットプールの分散 ü 疎結合 ü ステートレス さらに・・・・ コンテナ化されたワークロード © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
  94. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 95 (再掲) 本⽇わかるようになること クイズ • スポットインスタンスはEC2キャパシティがあるときに( )できる • 今は「⼊札」は不要。最⼤で( )インスタンス価格まで⽀払っても良い、 というデフォルトの設定(上限価格)の使⽤を推奨 • スポット( )ールの数 = インスタンスタイプの数 x AZの数。多ければ多いほど中 断に強くなる • EC2キャパシティが使⽤できなくなると、スポットインスタンスの( )が発⽣ • 中断の( )分前に中断通知イベントを取得できる。スポットフリートでテストできる • Auto Scalingでスポットインスタンスを管理する場合、ミッ( )スインスタンスグ ループ機能を⽤いる • ミックスインスタンスグループによりスポットプ( )ルの追加が容易になる • ミックスインスタンスグループは起動テン( )レートからの作成が必要 • 最も余裕のあるスポットプールからスポットインスタンスを起動できるよう、オス スメ配分戦略のcapacity-o( )timizedを選択する • ステートレスなコンテナワークロードには( )インスタンス + EC2 Auto Scaling が最適
  95. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 96 本⽇わかるようになること(回答例) • スポットインスタンスはEC2キャパシティがあるときに起動できる • 今は「⼊札」は不要。最⼤でオンデマンドインスタンス価格まで⽀払っても良い、 というデフォルトの設定(上限価格)の使⽤を推奨 • スポットプールの数 = インスタンスタイプの数 x AZの数。多ければ多いほど中断 に強くなる • EC2キャパシティが使⽤できなくなると、スポットインスタンスの中断が発⽣ • 中断の2分前に中断通知イベントを取得できる。スポットフリートでテストできる • Auto Scalingでスポットインスタンスを管理する場合、ミックスインスタンスグ ループ機能を⽤いる • ミックスインスタンスグループによりスポットプールの追加が容易になる • ミックスインスタンスグループは起動テンプレートからの作成が必要 • 最も余裕のあるスポットプールからスポットインスタンスを起動できるよう、オス スメ配分戦略のcapacity-optimizedを選択する • ステートレスなコンテナワークロードにはスポットインスタンス + EC2 Auto Scalingが最適
  96. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 97 EC2 スポットインスタンスワークショップ https://ec2spotworkshops.com/ja/
  97. © 2019, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 98 Thank you!