なになれ

IT系のことを記録していきます

Amazon EKSのマネージド型ノードグループを理解する

Amazon EKSには、マネージド型ノードグループでノードを用意する方法とセルフでノードを用意する方法の2つのノードを作成する方法があります。

docs.aws.amazon.com

Getting startedを見ると、マネージド型ノードグループを前提とした手順になっています。
公式ではマネージド型ノードグループを推奨しているように見えます。

docs.aws.amazon.com

この2つ方法の違いは何なのか、マネージド型ノードグループとセルフでノードを用意することについて説明したいと思います。

マネージド型ノードグループとは

マネージド型ノードグループはEKSの機能で管理されているノードグループです。
ノードグループのアップデートがEKSの機能として用意されています。

簡単に言うと、ノードの更新が簡単になるノードの作成方法です。

EKSを利用するにあたっては、EKSにおけるKubernetesのバージョンサポートのアップデートにしたがって、ノードの更新が必要になります。
このアップデートはある程度Kubernetesのリリースサイクルと同期されるため、少なくとも3ヶ月から半年に1度くらいのタイミングでバージョンアップを実施する必要があります。
バージョンアップの運用負荷を下げるために、通常はマネージド型ノードグループを採用するべきだと思います。

セルフでノードを用意する

EKSの機能から分離されているノードの作成方法です。
EKSリリース当初はこのノード作成方法しかなく、自分たちでEKSの仕様に合う形でノードを用意する必要がありました。
EKS向けにノードを用意するためのCloudFormationのテンプレートを提供するといったサポートはあるもののやはり手間でした。

それを簡単にしたのがeksctlというツールです。
コマンド実行で簡単にEKSとそのEKSと連携したノードグループが作成できます。
このツールを使うことでセルフでも簡単にEKSの環境を用意することができます。

ただし、ノードを更新する場合は、新しいノードグループを作成して、古いノードグループを消す対応を自分で実施する必要があります。

マネージド型ノードグループの注意点

eksctlによるノードグループではできることがマネージド型ノードグループではできないことがあります。

  • スポットインスタンスを利用できない
  • Autoscaling Groupのターゲットグループの指定ができない

その他の違いは以下が参考になります。
eksctl.io

まとめ

EKSを長期間運用していくにあたっては更新の手間が気になります。
マネージド型ノードグループを活用することによって、その手間が軽減できるのはありがたいです。