AWS認定資格 WEB問題集&徹底解説
AIプラクティショナー
AWSサービスの一つであるAmazon Elastic Kubernetes Service (Amazon EKS)はどんな内容なのでしょうか?また、AWS認定資格のAIプラクティショナー(AIF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Amazon Elastic Kubernetes Service (EKS) は、Kubernetesクラスターをフルマネージドで提供するAWS公式のKubernetesサービスです。 Control Plane(API Server・etcd・Scheduler)はAWSが完全管理し、マルチAZ構成で高可用性を実現します。
EKSは「ECSの代替」ではなく、「Kubernetes互換・移植性・エコシステム活用」が要件のときに選ぶサービスです。 既存のKubernetesワークロードのAWS移行、マルチクラウド戦略、Helmチャートやオープンソースアドオン活用など多様なシーンで採用されます。
データプレーンは マネージドノードグループ(EC2)・Fargate(サーバーレス)・セルフマネージドノード の3形態から選択します。
2. 主な特徴と機能
2.1 データプレーンの選択
- マネージドノードグループ: ノードのプロビジョニング・ドレイン・更新をAWSが管理。EC2 ASGと統合。GPU・カスタムAMI対応。最も一般的な選択。
- Fargate プロファイル: Podに対してサーバーレス実行。ノード管理不要。DaemonSet不可、特権Pod不可、GPU不可。
- セルフマネージドノード: AMI・ライフサイクルをユーザーが完全制御。最大の柔軟性。
2.2 マネージド Control Plane
- API Server・etcd・Scheduler をAWSが管理。マルチAZ配置で冗長化。
- クラスター当たり固定料金(時間課金)。
- Kubernetesバージョン管理・アップグレードをAWSがサポート(in-place)。
2.3 IAM とPodレベルの権限(最頻出)
- IRSA(IAM Roles for Service Accounts): PodにIAMロールを割り当てる従来方式。KubernetesサービスアカウントとOIDCプロバイダーを紐付け。
- EKS Pod Identity: 2023年リリースの新方式。設定がよりシンプル。クラスターレベルで関連付けるためOIDCプロバイダー設定が不要。
- ノードEC2ロールにAWSリソースの権限を付与するのはアンチパターン(最小権限原則違反)。
2.4 EKS Add-ons と AWS統合
- CoreDNS・kube-proxy・VPC CNI などをマネージド Add-on として自動更新。
- AWS Load Balancer Controller: ALB Ingress / NLB Service をKubernetes Ingressリソースで制御。
- Amazon EBS/EFS CSIドライバー: Persistent Volumeとして EBS/EFS を利用。
- CloudWatch Container Insights でメトリクス・ログ収集。
2.5 Auto Scaling
- HPA(Horizontal Pod Autoscaler): CPU/メモリ等でPod数をスケール。
- Cluster Autoscaler: Pending PodをトリガーにASGでノード数をスケール(EC2ノードグループ)。
- Karpenter: AWSネイティブのノードプロビジョナー。Cluster Autoscalerより高速・効率的。インスタンスタイプを自動選定。
2.6 EKS Anywhere と EKS Distro
- EKS Anywhere: オンプレミスや他クラウドにEKSと同一のKubernetesバージョンをデプロイ。AWS EKS Connectorでコンソール可視化。
- EKS Distro: EKSが使うKubernetesバイナリ・依存関係をオープンソース提供。自前Kubernetesの標準化用途。
3. アーキテクチャおよび技術要素
- AWSがControl Plane(API Server・etcd)をマルチAZで管理する。
- データプレーン(マネージドノードグループ / Fargate)にPodを配置する。
- Pod間通信はVPC CNI(各PodにENI割り当て)で行う。
- 外部通信はAWS Load Balancer Controller が ALB Ingress / NLB を自動作成。
- EBS/EFS CSIドライバーで永続ストレージを提供。
- CloudWatch / Prometheus / Grafana で監視・可視化。
典型パターン: ALB(Ingress) → EKS Pod(Fargate or EC2) → RDS/ElastiCache。 CI/CDは CodePipeline / GitHub Actions + Helm deploy が標準。
4. セキュリティと認証・認可
- IAM × Kubernetes RBAC: IAMはAWS APIへのアクセス制御、RBACはKubernetes内部の操作制御(ClusterRole / Role)。両層の管理が必要。
- IRSA / EKS Pod Identity: Podに最小権限IAMロールを付与。ノードロールへの集約は禁止。
- aws-auth ConfigMap: IAMユーザー/ロールをKubernetes RBACにマッピング(IRSA方式では必須)。
- Secrets管理: Kubernetes Secrets は etcd に平文保存(KMSエンベロープ暗号化を推奨)。AWS Secrets Manager CSI Driverでマウントするのがベストプラクティス。
- ネットワーク: Kubernetes NetworkPolicy + セキュリティグループ(ノード / Pod)の二層制御。
- ECRイメージスキャン: Amazon Inspector統合でプッシュ時脆弱性検出。
5. 料金形態
- EKS クラスター: 1クラスター毎に時間課金(固定料金)。
- EC2ノード(マネージドノードグループ): EC2インスタンス料金が発生。
- Fargate: PodのvCPU・メモリの使用量-秒単位課金。
- EKS Anywhere: クラスター1台あたりの年間サブスクリプション(サポート付きの場合)。
- EKS Distro: ソフトウェアとして無料(サポートは有料)。
6. よくあるアーキテクチャ・設計パターン
- マイクロサービス移行: 既存Kubernetes構成をそのままEKSに移行。Helm/Argoのエコシステムを継続活用。
- マルチテナントクラスター: Namespace + RBAC + NetworkPolicyで分離。複数チームが1クラスターを共有。
- GPU/ML: マネージドノードグループ(p4d/p5)+ Karpenter でGPUノードをオンデマンド起動。
- ハイブリッド: EKS AnywhereでオンプレKubernetesを統一管理。AWS EKS Connectorでコンソール一元化。
- サーバーレスK8s: Fargateプロファイルでノード管理を排除。小規模・開発環境向け。
7. 設定・デプロイ手順(ハンズオン例)
eksctl create clusterでクラスター・マネージドノードグループを一括作成。- AWS Load Balancer Controller Add-on を Helm でインストールし、IRSAを設定する。
- アプリをHelmチャートでデプロイし、Ingress リソースでALBを自動作成。
- Karpenter をインストールし、Provisioner/NodePool を定義する(Cluster Autoscaler代替)。
- EKS Pod Identity でPodのIAMロールを設定する(OIDCプロバイダー不要)。
- CloudWatch Container Insights を有効化してメトリクス・ログを収集する。
8. 試験で問われやすいポイント
8.1 EKS を選ぶ条件(最頻出)
Q: 「Kubernetes互換が必要」「既存K8sワークロードを移行」したい場合は?
A: EKS。ECSはKubernetes非互換なので不正解。
Q: 「運用負荷を最小化」「AWS独自でシンプルなコンテナ実行」の場合は?
A: ECS(Fargate)。EKSはKubernetes知識と管理が必要。
8.2 データプレーンの選択
Q: ノード管理不要でKubernetes Podを実行したい場合は?
A: EKS on Fargate。ただしDaemonSet不可・GPU不可。
Q: GPUやDaemonSetが必要な場合は?
A: マネージドノードグループ(EC2)。
8.3 IAM × RBAC の理解
Q: PodがS3にアクセスする権限の正しい付与方法は?
A: IRSA または EKS Pod Identity。ノードEC2ロールへの権限付与は最小権限原則違反で誤り。
Q: IRSAとEKS Pod Identityの違いは?
A: IRSAはOIDCプロバイダー設定が必要。EKS Pod Identityはより新しく設定が簡単(2023年~)。
8.4 EKS Anywhere vs ECS Anywhere
Q: オンプレでKubernetesを使いたい場合は?
A: EKS Anywhere。ECS AnywhereはKubernetesではなくECS(AWS独自)。
8.5 Karpenter vs Cluster Autoscaler
Q: EKSノードの自動スケーリングを高速化・効率化したい場合は?
A: Karpenter。Cluster Autoscalerより起動が速く、インスタンスタイプを自動選定できる。