MEGAZONEブログ

Inner workings of Amazon EKS
Amazon EKSの内部構造
Pulisher : Strategic Tech Center チャン・セジョン
Description:Amazon EKSのEKS Control Planeについての紹介セッション
はじめに
お客様を通じて普段EKSを運営しながら、AWSでManagedで管理してくれるEKS Control Planeの内部構造や動作原理は知らなかったのですが、このセッションがその内容を扱っていたので、セッションを聞いた後、お客様にEKS Control Planeについて説明できることを期待して申し込みました。
セッションの概要紹介
Kubernetesは、自動化、スケーラビリティ、移植性、オープンソースコミュニティの繁栄などの利点を持つコンテナ化されたアプリケーションを管理するための強力なソリューションです。このセッションでは、Amazon EKSがKubernetesを使用してコンテナ化されたアプリケーションを簡単にデプロイ、管理、拡張できるようにする方法について説明します。

Amazon EKSが何なのか説明してくれています。
認証された適切なバージョンのKubernetesを使用し、テストとアップグレードが可能な最低6つのバージョンをサポートします。 そして、優れた性能と安定したKubernetes環境を提供します。最後に、EKSはKubernetesの運営と管理を簡単にします。
Kubernetesの運営は難しいですが、Amazon EKSはControl PlaneをAmazonで管理し、重要なAdd-onを簡単にインストール・管理することができます。

では、なぜAmazon EKSを使うべきなのか?
Kubernetesの実行とスケーリングは難しく、かなりの投資が必要です。
アプリケーションは、他のAWSサービスと安全かつ安定的に統合できる基本的な方法が必要で、高可用性(HA)とディザスタリカバリも必要です。
Amazon EKSはこれらを解決してくれます。

お客様は、Amazon EKSでレガシーアプリを近代化し、AI/ML関連サービスを実行し、リアルタイムデータ処理、Backendのアプリやサービス、ウェブサイトなどを構築しています。

AWSで管理しているControl Planeのアーキテクチャです。
高可用性のためにAPI Server、ETCDがマルチAZに構成されており、Control PlaneはVPCレベルの隔離をしてAWSで別途管理します。このようなアーキテクチャでSLA 99.95%を維持し、1年365日サポートします。 また、Kubernetesのクラスターに対する全てのデータが保管されるETCDをAWSが独自に管理してくれるので安定的で、ユーザーの管理ポイントが大幅に減ります。

EKSのData Planeアーキテクチャです。
ユーザーはEC2を通じてノードグループにアクセスしたり、AWSで管理するアカウントに属するEndpoint接続情報を通じてノードグループにアクセスすることができます。
自己管理型ノード、管理型ノードなど、好きな方法で全てのノードグループを構成することができます。
Cluster AutoscalerやKarpenterを通じてノードレベルのスケーリングを実装します。

Amazon EKS Control Planeはどうやってスケーリングするのか見てみましょう。
まず、色んな情報を参照します。CPU/Memory使用量、EC2ノード数、ETCD DBサイズ、ETCDの読み書きスループットなどの情報を参照します。
Control Planeのスケーリングは数分以内に垂直・水平方向に行われます。
接続を継続的に再調整して負荷分散を行い、このようなすべてのことをAWSが自ら管理してくれます。ユーザーはこの部分について気にする必要がないことが最大のメリットとなります。

では、これから私たちがやるべきことは何でしょうか?
お客様の運用上の問題点を解決してあげなければならないし、クラスターの様々なモニタリングやログ収集などのパフォーマンスの向上を実現し、効率性や膨大なレベルの運用改善を実現しなければなりません。

上で言及した私たちがすべきことに対するベストプラクティスをAWSでガイドとして提供しています。
メトリックとログのモニタリング、APIの使用最適化、EKSを使用しながらぶつかる様々なLimitsに対する理解と対応方法など、様々なベストプラクティスを通じて私たちがすべきことを進めればいいのです。
セッションを終えて
このセッションを聞きながら、普段よく言及されないEKS Control Planeのアーキテクチャと動作原理を知ることができ、本当に便利なセッションでした。
KubernetesでControl Plane内にETCDを人が直接管理すると、HA構成からバックアップ計画まで気にしなければならないのですが、確かにEKSを使うとこれを管理する必要がなく、AWSで非常に安定的に管理してくれるので、EKSを使う理由が明確になったと感じたセッションだったようです。
この記事の読者はこんな記事も読んでいます
-
Compute re:Invent 2023Apple on AWS: Managing dev environments on Amazon EC2 Mac instances(Apple on AWS:Amazon EC2 Macインスタンスで開発環境を管理する)
-
Compute re:Invent 2023Optimizing for cost and performance with AWS App Runner(AWS App Runnerによるコストとパフォーマンスの最適化)
-
Partner Enablement re:Invent 2023Migration and modernization: Become your customer’s strategic partner