SaaS における EKS のシングルテナントクラスタ戦略とスポットインスタンス活用術 / EKS single-tenant cluster strategy and Spot Instances

SaaS における EKS のシングルテナントクラスタ戦略とスポットインスタンス活用術 / EKS single-tenant cluster strategy and Spot Instances

「コンテナ × スポットインスタンス」 活用セミナーの登壇資料です。

Dacd98e0fcfc478b24f9cd7ec9208904?s=128

Manabu Sakai

June 10, 2020
Tweet

Transcript

  1. 2.

    • freee 株式会社 SRE チーム所属 ◦ 2018 年からプレイングマネージャー • 複業でスタートアップの技術アドバイザー

    • 1 児の父 • Twitter ◦ @manabusakai • Blog ◦ manabusakai.dev Manabu Sakai 坂井 学 freee 株式会社 2
  2. 9.

    シングルテナントクラスタ戦略 K8s cluster Product A Service A-1 Service A-2 Service

    A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 プロダクト単位で EKS クラスタを分割
  3. 10.

    Blast radius を小さくする K8s cluster Product A Service A-1 Service

    A-2 Service A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 オペミスなどによる影 響をクラスタに留める
  4. 13.

    eksctl EKS でスポットインスタンスを使うなら "eksctl" がオススメ。 https://eksctl.io/ • eksctl の nodegroup

    の実体は Auto Scaling Group • スポットの指定には Auto Scaling Group に統合された EC2 Fleet の 機能が使われる
  5. 14.

    スポットインスタンスの活用 本番環境以外の nodegroup にスポットインスタンスを活用。 シングルテナントクラスタによるコスト増を抑える。 活用のコツ • オンデマンドで最低台数を確保 • 1

    つの nodegroup に複数のインスタンスファミリーを指定 ◦ 現行世代と 1 世代前を指定 ◦ CPU を問わない場合は m5a など AMD プロセッサも検討 • 適正なスポットプールの指定 ◦ アベイラビリティゾーン × インスタンスタイプ × OS

  6. 16.

    本番環境で使っていない理由 コンテナはステートレスだが、中断通知を受け取ってから 2 分以内に drain 処理が終わらないケースがある。 • 大量のデータを持つユーザーの場合、2 分以内に処理を終えられない ケースがある

    • お金に関するデータは一貫性のトランザクションが重要なので、単純 に分割すれば良いというわけにはいかない ◦ 分散システムにおけるデータ整合性担保の難しさ