Amazon EKSのマネージド型ノードグループを理解する
Amazon EKSには、マネージド型ノードグループでノードを用意する方法とセルフでノードを用意する方法の2つのノードを作成する方法があります。
Getting startedを見ると、マネージド型ノードグループを前提とした手順になっています。
公式ではマネージド型ノードグループを推奨しているように見えます。
この2つ方法の違いは何なのか、マネージド型ノードグループとセルフでノードを用意することについて説明したいと思います。
マネージド型ノードグループとは
マネージド型ノードグループはEKSの機能で管理されているノードグループです。
ノードグループのアップデートがEKSの機能として用意されています。
簡単に言うと、ノードの更新が簡単になるノードの作成方法です。
EKSを利用するにあたっては、EKSにおけるKubernetesのバージョンサポートのアップデートにしたがって、ノードの更新が必要になります。
このアップデートはある程度Kubernetesのリリースサイクルと同期されるため、少なくとも3ヶ月から半年に1度くらいのタイミングでバージョンアップを実施する必要があります。
バージョンアップの運用負荷を下げるために、通常はマネージド型ノードグループを採用するべきだと思います。
セルフでノードを用意する
EKSの機能から分離されているノードの作成方法です。
EKSリリース当初はこのノード作成方法しかなく、自分たちでEKSの仕様に合う形でノードを用意する必要がありました。
EKS向けにノードを用意するためのCloudFormationのテンプレートを提供するといったサポートはあるもののやはり手間でした。
それを簡単にしたのがeksctl
というツールです。
コマンド実行で簡単にEKSとそのEKSと連携したノードグループが作成できます。
このツールを使うことでセルフでも簡単にEKSの環境を用意することができます。
ただし、ノードを更新する場合は、新しいノードグループを作成して、古いノードグループを消す対応を自分で実施する必要があります。
マネージド型ノードグループの注意点
eksctl
によるノードグループではできることがマネージド型ノードグループではできないことがあります。
- スポットインスタンスを利用できない
- Autoscaling Groupのターゲットグループの指定ができない
その他の違いは以下が参考になります。
eksctl.io
まとめ
EKSを長期間運用していくにあたっては更新の手間が気になります。
マネージド型ノードグループを活用することによって、その手間が軽減できるのはありがたいです。