Slide 1

Slide 1 text

Amazon EKS Auto Modeで はじめるEKS JAWS-UG初心者支部 x 千葉支部 re:Invent 2024 re:Cap & 新年LT大会 @_takahash

Slide 2

Slide 2 text

自己紹介 • Hiroki Takahshi (@_takahash) • CCoE的なお仕事してます • 社内AWS基盤の運用 • ガイドライン整備 • クラウド人材育成 • Like • CDK, ECS, EKS • Others • 2024 Japan AWS Top Engineers 2

Slide 3

Slide 3 text

もくじ • はじめに • EKS Auto Mode概要 • はじめかた • 利用する上での注意点 • まとめ

Slide 4

Slide 4 text

はじめに

Slide 5

Slide 5 text

Kubernetes OSSのコンテナオーケストレーションツール

Slide 6

Slide 6 text

Kubernetesの構成 Kubernetesのコンポーネント - kubernetes.io コントロールプレーンとノードと呼ばれるマシン群で構成 クラスタ全体の管理を行う。 EKSはここがマネージドになる。 ユーザのコンテナを動かす。

Slide 7

Slide 7 text

ノードの管理はユーザの責務 専門的な知識と労力が必要 • ノードの選定、追加、削除 • OSへのパッチ適用 • クラスタのアップグレード • アドオンの導入・メンテ https://aws.amazon.com/jp/blogs/news/getting-started- with-amazon-eks-auto-mode/

Slide 8

Slide 8 text

AWS Fargate ノード管理が不要になるサービス @re:Invent 2019 ご要望にお応えしてEKS にも対応しました! Pod(コンテナの集合) に必要なリソース量さえ 教えてくれれば ノード管理するよ!

Slide 9

Slide 9 text

EKS on Fargateの制限 • GPUが利用できない • Spotインスタンスが利用できない • DaemonSetが利用できない • イメージのキャッシュが効かない(スケール遅い) • EBSをマウントできない • etc… 対応できないケースが少なからずあった

Slide 10

Slide 10 text

Amazon EKS Auto Mode @pre:Invent 2024 EKSの使用感を維持して インフラの運用をAWS にオフロードできるよ GPUやSpot, DaemonSet 使えるよ! Auto Mode 顧客が欲しかったもの?

Slide 11

Slide 11 text

今後はEKS Auto Mode > Fargateの流れ Amazon EKS よくある質問 EKSの公式FAQで言及あり

Slide 12

Slide 12 text

EKS Auto Mode概要

Slide 13

Slide 13 text

EKS Auto Modeとは EKSのCompute、Storage、NWの管理をオフロードする機能 https://aws.amazon.com/jp/blogs/news/getting-started- with-amazon-eks-auto-mode/

Slide 14

Slide 14 text

Computeの管理(Managed Instance) EKS Auto Mode!

Slide 15

Slide 15 text

Computeの管理(Karpenter) • Podの要求するリソース量と 設定(NodePool)に基づいて 適切なEC2インスタンスをデ プロイしてくれる Kubenetesのノードのライフサイクルマネージャ

Slide 16

Slide 16 text

Computeの管理(Karpenter) • EKS Auto Modeのデフォルト NodePoolではC/M/Rファミ リーのamd64の第5世代以降の オンデマンドインスタンスがデ プロイされる • GPUやSpotを使いたいなど上記以 外の要望がある場合は独自の NodePoolを作成する Node

Slide 17

Slide 17 text

Computeの管理(Karpenter) Karpenter ≠ Node Auto Scaler Consolidation:ノードのコスト最適化を図る Expiration: 指定時間後にノードを退役させる Drift:望む仕様から離れたノードを退役させる Interruption:中断Eventに備えPodを退避する m7a.large m7a.large m7a.large ami: v1.30 ami: v1.31 EKS Auto Modeでは デフォルト:14日 最大:21日 Spotインスタンス お、Spot中断対象に なった!退避! Control Plane v1.30⇒v1.31

Slide 18

Slide 18 text

Storage、NWの管理 • NW • systemdサービスとして以下を実行 • Core DNS • Amazon VPC CNI Plugin • kube-proxy • AWS LoadBalancer Controllerをマネージドで実行 • Storage • Amazon EBS CSIドライバをマネージドで実行 メジャーなアドオンについて導入・メンテの手間が削減された

Slide 19

Slide 19 text

はじめかた

Slide 20

Slide 20 text

マネコンからの作成 最低限IAMロールとVPC、サブネットを指定すればOK

Slide 21

Slide 21 text

eksctlからの作成 $ eksctl create cluster --name= --enable-auto-mode 以下のコマンドを実行 ※ eksctlのver0.195.0以上が必要

Slide 22

Slide 22 text

既存のクラスタからの移行 クラスタ設定からEKS Auto Modeをオンにする ※移行にあたってELB/EBSの制約あり(後述)

Slide 23

Slide 23 text

サンプルアプリケーション AWSブログに体験できる手順があります https://aws.amazon.com/jp/blogs/news/getting-started- with-amazon-eks-auto-mode/

Slide 24

Slide 24 text

利用する上での注意点

Slide 25

Slide 25 text

制限について • ノード関連の設定は変更できません • AMIの変更 • SSH/SSMによるリモート接続 • ルートボリュームの変更 • ENIの追加 • カーネルパラメータの変更 • etc.. • VPC CNI Pluginの一部機能が使えません • Security Group for Pods他 • 既存のEKSクラスタをAuto Modeにする場合 • 既存のEBS CSIドライバが管理するボリュームを管理対象にできません • 既存のAWS Load Balancer Controllerが管理するALB/NLBを管理対象にできません

Slide 26

Slide 26 text

可用性について • Karpenterの挙動を理解して停止に備えましょう • PDB(PodDisruptionBudget)の設定 • Podトポロジ分散制約によるAZ分散 • アプリケーションの正常なシャットダウン(graceful-shutdown)処理を実装 • NodePoolでdisruptionを許容しない時間帯を設定 • Spotインスタンスを利用する場合、 • キャパシティリバランシング機能を使えない(Issues#2813) • 設定しているPDBで2分以内にPodを別ノードに退避可能か要考慮 EKS Auto Mode(Karpenter)は設定に基づ いてドラスティックにEC2を止めにきます

Slide 27

Slide 27 text

コストについて • EKS Auto Modeは追加コストがかかります • オンデマンドの料金+ 10%くらい • 適切なリソース要求を設定しましょう • Karpenterはrequestをみてノードを準備します • requestが過剰に大きいと過剰なスペックのノードが用意されます • 特にHelmなど外部からパッケージ持ってくる場合はスペックを確認する • ノードのデプロイにSavings PlanやRIの有無は考慮してくれません • Savings PlanやRIを使ってもらえるようなNodePoolを設定しましょう • 利用状況のモニタリングも忘れずに

Slide 28

Slide 28 text

まとめ

Slide 29

Slide 29 text

まとめ • EKS Auto Modeについて紹介しました! • EKS Auto Modeは今後、EKSの第一の選択肢となるのではと期 待しています • カスタマイズ性が必要ならEKS Managed Node Groupやセルフマネー ジドを利用 • やっぱりFargate推しならFargateを利用 • 参考:EKS Auto ModeとEKS on Fargateの違いを調べてみた – Qiita • ぜひ使ってみてください!