コンテナオーケストレーション - Amazon EKS による Kubernetes 運用の最適化

Amazon EKS を活用した Kubernetes のマネージド運用を解説します。

Kubernetes 運用の課題と EKS の価値

Kubernetes はコンテナオーケストレーションのソフトウェアですが、その運用は複雑です。コントロールプレーン (API サーバー、etcd、スケジューラー、コントローラーマネージャー) の高可用性構成、バージョンアップグレード、セキュリティパッチの適用、etcd のバックアップと復旧など、クラスターの管理には継続的な作業が要ります。Amazon EKS はコントロールプレーンをフルマネージドで提供し、3 つのアベイラビリティゾーンにまたがる高可用性構成を自動的に維持します。etcd のバックアップ、API サーバーのスケーリング、セキュリティパッチの適用は AWS が管理します。オンプレミスで同等の高可用性 Kubernetes クラスターを構築するには、複数のマスターノード、外部 etcd クラスター、ロードバランサーの構成と、継続的な運用の体制が必要です。

EKS の AWS サービス統合

EKS の特徴の 1 つは、AWS エコシステムとの統合です。IAM Roles for Service Accounts (IRSA) により、Pod 単位で AWS サービスへのきめ細かいアクセス制御が可能です。AWS Load Balancer Controller は Application Load Balancer と統合し、パスベースやホストベースのルーティングを Kubernetes のネイティブリソースとして管理できます。Amazon EBS CSI Driver と EFS CSI Driver により、永続ボリュームとして EBS や EFS を利用できます。CloudWatch Container Insights は EKS クラスターのメトリクスとログを収集して可視化します。EKS の VPC CNI は VPC ネイティブ IP を割り当て、既存の VPC ネットワーク設計やセキュリティポリシーを Kubernetes 環境に適用できます。クラスターの作成は eksctl create cluster --name my-cluster --region ap-northeast-1 --nodegroup-name workers --node-type t3.medium --nodes 3 のように CLI で実行できます。

EKS のコンピューティングオプション

EKS には複数のコンピューティングオプションがあり、組み合わせて使えます。 EC2 マネージドノードグループは、 EC2 インスタンスのプロビジョニングとライフサイクル管理を自動化し、 AMI の更新やノードのドレインを安全に実行します。 Fargate プロファイルを使えば、 Pod 単位のサーバーレスコンピューティングが可能で、ノードの管理が不要になります。 Karpenter は EKS 向けのオープンソースノードプロビジョナーで、 Pod の要件に基づいてインスタンスタイプを自動選択し、ノードをプロビジョニングします。 Karpenter は、ノードのスケーリングと、コスト最適化のためのインスタンスタイプの多様化を自動的に行います。 Spot インスタンスとの組み合わせにより、コンピューティングコストを抑えられます。

セキュリティとコンプライアンス

EKS はセキュリティの機能を備えます。コントロールプレーンの API サーバーへのアクセスは、パブリックエンドポイントとプライベートエンドポイントの両方をサポートし、プライベートエンドポイントのみに制限することで VPC 内からのアクセスに限定できます。EKS は SOC 1/2/3、PCI DSS、ISO 27001、HIPAA など主要なコンプライアンス認証を取得しています。Kubernetes の RBAC と AWS IAM の統合により、クラスター内のリソースアクセスと AWS サービスへのアクセスを統一的に管理できます。EKS Pod Identity でも、Pod に IAM ロールを割り当てられます。Amazon GuardDuty の EKS Protection は、Kubernetes の監査ログを分析し、不審なアクティビティ (特権エスカレーション、暗号通貨マイニングなど) を自動検出します。オンプレミスの Kubernetes 環境では、これらのセキュリティ機能を個別に構築 / 統合する必要があり、セキュリティチームの負荷が増えます。

EKS の料金

EKS のコントロールプレーンは 1 クラスターあたり 1 時間ごとの料金で、料金はクラスターの Kubernetes のバージョンのサポートの段階で異なります。ワーカーノードは EC2 インスタンスまたは Fargate の料金が別途発生します。Fargate の Pod は、使った vCPU とメモリの量と時間で課金されます。EKS Auto Mode はノード管理を自動化し、起動して管理する EC2 インスタンスの種類と時間に応じた料金が EC2 の料金に加わります。Karpenter によるノードの自動プロビジョニングでスポットインスタンスを活用すると、コストを下げられます。

まとめ - Kubernetes 運用の最適解

Amazon EKS は、Kubernetes の運用複雑性を軽減しつつ、AWS エコシステムとの統合を提供するマネージドサービスです。Fargate によるサーバーレスコンピューティング、Spot インスタンスとの組み合わせによるコスト最適化、GuardDuty による脅威検知など、エンタープライズの要件に応えます。Kubernetes の本番運用を検討する組織にとって、EKS は選択肢の 1 つです。

参考資料 (AWS 公式)

本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。

本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。

共有する