AWS EKS本番設計ガイド|マネージドノードグループ・Karpenter・GitOpsによる本番クラスター構築

現場実践|AWS EKS本番設計
AWS EKS本番設計ガイド|マネージドノードグループ・Karpenter・GitOpsによる本番クラスター構築
「EKSクラスターをゼロから設計したい」「Karpenterって何がいいの?」——Amazon EKSの本番グレードなクラスター設計・Karpenterによるオートスケール・ArgoCD(GitOps)の実践を解説します。
💡 EKSはKubernetesのマネージドサービスですがコントロールプレーンを管理してくれるだけ。ノードグループ設計・オートスケール・GitOpsの整備は自分で行う必要があります。本番環境では特にこの3点の設計が品質を左右します。
1. EKSのノードグループ設計パターン
システムノードグループ
CoreDNS・kube-proxy・metrics-serverなどのシステムコンポーネント専用のノード。汚染(Taint)を設定してアプリケーションが乗らないようにする。
アプリケーションノードグループ
実際のアプリケーションが動くノード。Karpenterでオンデマンド/スポットを組み合わせてコストを最適化する。
GPUノードグループ(必要な場合)
機械学習ワークロード用のGPUインスタンス(p3・g4dn等)。NodeSelectorとToleration でGPU Podのみを配置する。
2. Karpenterによるインテリジェントなオートスケール
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
name: general-purpose
spec:
template:
spec:
requirements:
- key: karpenter.sh/capacity-type
operator: In
values: ["on-demand", "spot"] # スポット優先でコスト削減
- key: kubernetes.io/arch
operator: In
values: ["arm64"] # Graviton優先
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["m", "c", "r"] # m/c/r系に限定
limits:
cpu: 1000
disruption:
consolidationPolicy: WhenUnderutilized # 空きノードを自動削除3. ArgoCD(GitOps)の導入
1
GitリポジトリにKubernetesマニフェストを管理
全てのKubernetesリソース(Deployment・Service・ConfigMap等)をGitで管理する。手動kubectlでの変更を禁止する。
2
ArgoCDがGitの状態をクラスターに同期
ArgoCDはGitリポジトリの変更を監視して自動的にクラスターに適用する。「Gitがソースオブトゥルース」という運用が実現する。
3
PRベースのリリースフロー
新機能のデプロイはGitHubのPull Requestをマージするだけ。ArgoCDが自動で検知してクラスターを更新する。
📌 この記事のポイント
- EKSのノードはシステム専用(CoreDNS等)とアプリケーション用を分離し汚染(Taint)で制御する
- KarpenterはPodの要求に合わせてオンデマンド/スポット/Gravitonを自動選択してコストを最適化する
- ArgoCD+GitOpsで「Gitマージ=デプロイ」の安全で再現性の高いリリースフローを実現する
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




