Amazon EKS
そこでこの記事では、EKSのアップグレードに携わるエンジニアに向けて、Claude Codeを活用して作業を効率化する実践知を紹介します。具体的には、筆者が実務でEKSを1.
対象読者は、EKSやKubernetesクラスタの運用を担当するSRE・
Before / After:ひと目でわかる変化
従来の
| フェーズ | 作業内容 | Before | After |
|---|---|---|---|
| 事前作業 | Kubernetes本体・ |
リリースノートや公式ドキュメントを自分で読んで内容確認 | Claude Codeに整理してもらい、内容確認 |
| 事前作業 | 周辺コンポーネント互換性調査 | リリースノートや公式ドキュメントを自分で読んで内容確認 | Claude Codeに整理してもらい、内容確認 |
| 事前作業 | 対応方針の判断 | 自分で調べて決断 | Claude Codeに判断材料を整理してもらい、自分で決断 |
| 更新作業 | トラブル対応 | コマンドの実行結果を読んで自分で原因を調べる | Claude Codeに実行結果を共有し、原因の仮説を整理してもらう |
| 更新後の作業 | 作業証跡の可視化 | コマンド結果を手動でまとめる | Claude Codeに前後比較・ |
ここからは、この表の各項目を詳しく見ていきます。
事前作業:互換性調査をClaude Codeと進める
まずは、実際にアップグレードを行う前のKubernetes本体・
Kubernetes本体・EKSの互換性調査
最初に、リリースノートや公式ドキュメントの精査を行います。この事例ではKubernetes本体のリリースノート
たとえば1.status.フィールドの削除やEndpoints APIの非推奨化がありましたが、いずれも自分たちの利用実態には影響しないと判断できました。Amazon Linux 2ベースδAMIが廃止された点も、すでにAmazon Linux 2023へ移行済みだったため対応不要でした。
周辺コンポーネント互換性調査
調査方法の基本的な型はシンプルです。使用中の周辺コンポーネントのバージョン一覧をClaude Codeにまとめてもらい、リリースノート全般
external-secrets-operator の現行バージョンは 0.16.2 です。 EKS を 1.33、1.34 まで上げる予定です。 0.16.2 から最新の 2.0.1 までのリリースノートを確認し、バージョンごとの変更点を整理してください。 特に破壊的変更がないかは重点的に見てください。 根拠となる公式リリースノートのリンクも添えて教えてください。
以前、Claude Codeが非公式記事から引用してきたことがあったため、必ず根拠となる公式ドキュメントのリンクも教えてもらうようにしています。そのうえで、最終確認は必ず自分で行います。
対応方針の判断
Claude Codeを壁打ち相手にして特に助かったのが、判断が難しかったArgo WorkflowsとExternal Secrets Operatorの対応方針の検討です。
Argo Workflowsは、3.
Claude Codeは
External Secrets Operatorは、現行バージョンの0.kubectl apply --server-sideが必須になった点が大きな変更でした。
Claude CodeはServerSideApply=trueを設定する方法をClaude Codeと一緒に整理しました。これらの例のように、調査はClaude Codeに手伝ってもらったとしても
更新作業:Claude Codeと並走しながらアップグレードを進める
更新作業について、安全性を高めるために実施していたことを紹介します。Claude Codeによる調査やクラスタの状態確認を行うシェルでは、意図しない破壊的変更を防ぐためにkubectxのread-onlyモード--readonlyオプション)
❯ kubectx --readonly arn:aws:eks:ap-northeast-1:123456789012:cluster/my-eks-cluster [READONLY SHELL] kubectl context is arn:aws:eks:ap-northeast-1:123456789012:cluster/my-eks-cluster in READ-ONLY mode — type 'exit' to leave.
更新作業の初めには、Amazon EKSのCluster Insights を使い、aws eks list-insightsでPASSINGを確認します。この機能自体、今回Claude Codeに教えてもらって初めて知りました。このAWS公式の自動チェックを、安全性確認の最後の砦として使っています。
更新作業の手順自体は、すでにEKSを運用している企業であれば既存のドキュメントがあるケースが多いでしょう。筆者の環境でも先人たちが積み重ねてきた資産があったため、ゼロから作り直すようなことはしていません。この事例では、ノードグループ入れ替えの失敗時におけるリカバリーフローを中心に、Claude Codeと一緒に見直し・
トラブル対応
途中、Spotノードグループの入れ替えで残り7台ほどになったところでdrainが進まなくなりました。Podの入れ替え中に新しいReplicaSetがCrashLoopBackOffとなっており、イベントを見るとPDBが原因になっていそうでした。実際にClaude Codeへ投げたプロンプトは、次のようなものです。
❯ kubectl get pdb --all-namespaces -o wide | awk 'NR==1 || $5 == "0"' NAMESPACE NAME MIN AVAILABLE MAX UNAVAILABLE ALLOWED DISRUPTIONS AGE my-namespace my-service 40% N/A 0 43h PDB の ALLOWED DISRUPTIONS が 0 になっていて、drain が止まっています。 原因を整理してください。あわせて、考えられる対応策も教えてください。
Claude Codeと調査することで、ALLOWED DISRUPTIONSが0になっている原因を理解したうえで対応ができました。
- 全4台のPodのうち正常なのはRunningの2台
(CrashLoopBackOffの2台はカウントされない) - minAvailableは40% → 4台中2台
(切り上げ) が必要 - ALLOWED DISRUPTIONS = 2
(正常Pod)− 2 (必要数) = 0
新しいReplicaSetが壊れ続けているせいで、退避可能なPodがないと判定されていたわけです。クラッシュしていたのは検証環境のアプリケーションだったため、恒久対応はCrashLoopBackOff自体の解消ですが、今回は対症療法としてPDBを削除する方針を取りました。
読者の方々も、万が一作業中にトラブルが発生した際にはkubectlコマンドでPodやノードの状況を可視化したうえで、原因や解決策の調査をClaude Codeに依頼してみてください。
更新後の作業:Claude Codeでアップグレード前後を可視化する
作業証跡の可視化
アップグレード前後の状態を比較するため、Claude Codeにkubectl get nodes / kubectl get pods --all-namespaces / kubectl get deployments,statefulsets,daemonsets --all-namespaces相当のコマンドを実行してもらい、Before/
# 🎉 EKSアップグレード完了レポート ## ✅ アップグレード成功 Cluster: my-eks-cluster 期間: 2026-03-02 → 2026-03-03 ## 📊 主要な変更 ### Kubernetesバージョン - Before: v1.32.11-eks-ac2d5a0 - After: v1.34.4-eks-3a10415 - ✅ 2バージョンアップ成功 ### ノード - Before: 65台(v1.32.9: 65台) - After: 75台(v1.34.4: 75台) - ✅ 全ノードが v1.34.4 に統一 - 📈 10台増加(スケールアウト) ### ワークロード - Deployments: 252 → 286 ✅ - StatefulSets: 5 → 5 ✅ - DaemonSets: 9 → 9 ✅ ### Pod状態 - Before: 1,011 Pods - After: 1,180 Pods - 📈 Pod数増加は新ノード追加による正常な動作
ここで重要なのは、Claude Codeの
おわりに
この事例では、アップグレードの調査・
加えて、今回aws eks list-insightsという機能を活用できたのは、Claude Codeに教えてもらったからです。裏を返せば、教えてもらわなければ気づかないまま終わっていたということでもあり、AIに頼るだけでなく、自分自身も最新の仕様やベストプラクティスをキャッチアップし続ける姿勢が大切だと改めて感じました。
こうした気づきも含め、Claude Codeを活用することで自分の理解力そのものも引き上げられた実感があります。単なる作業代行ではなく、判断を研ぎ澄ます壁打ち相手として、今後もAIとうまく付き合っていきたいと思います。
次回に向けては、今回得られた知見をその場限りにせず仕組み化していきたいと考えています。チェックを仕組み化する発想も、当時は頭にありませんでしたが、今回のアップグレードを振り返る中で、AWS公式サンプルの sample-eks-upgrade-skill の存在を知りました。これを参考にしながら、今回のプロンプトやチェック観点を自分たちの環境向けのスキルとして育てていくつもりです。
読者のみなさんも本稿を参考にして、EKSアップグレードの作業にClaude Codeを取り入れていただければ幸いです。