Amazon Web Services ブログ

Amazon Elastic Container Service for Kubernetes

私の同僚 Deepak Singh が、コンテナに関してたくさんお伝えしたいことがあります!
Jeff;


AWS 上で Kubernetes を利用している多くのお客様がいます。実際、Cloud Native Computing Foundationによると、Kubernetes のワークロードの63%が AWS 上で動作しています。AWS は Kubernetes を実行するうえで人気の場所ですが、お客様が Kubernetes クラスターを管理するためには、依然として多くの手動設定が必要となります。Kubernetes のマスターをインストールして運用し、Kubernetes のワーカーのクラスターを構成する必要があります。Kubernetes クラスターで高可用性を実現するには、異なる AZ 間で少なくとも三つの Kubernetes マスターを実行する必要があります。各マスターは、それぞれで対話し、障害が発生した場合に備え情報を共有し、負荷分散、フェールオーバーを他のマスターに確実に実行するように構成する必要があります。そして、すべての設定と実行が完了しても、マスターとワーカーのソフトウェアのアップグレードとパッチ適用を行う必要があります。これらは運用の専門家とその努力必要としており、我々はお客様からもっと簡単にしてほしいと言われてきました。

Amazon EKS の紹介

Amazon Elastic Container Service for Kubernetes (Amazon EKS) は、Kubernetes クラスターの専門家でなくてもKubernetesを AWS 上で簡単に使用することができるフルマネージドサービスです。開発者の皆様にこのサービスを気に入ってもらえるいくつかの点があります。まず、Amazon EKS は オープンソースの Kubernetes を基に実行されますので、Kubernetes コミュニティの全ての既存のプラグインとツールを使用できます。Amazon EKS 上で動作するアプリケーションは、オンプレミスのデータセンターやパブリッククラウドで動作しているかにかかわらず、標準の Kubernetes 環境で動作するアプリケーションと完全に互換性があります。つまり、コード変更なしで簡単にあなたの Kubernetes アプリケーションを Amazon EKS に移行することが可能です。次に、Amazon EKSは、単一の障害点を回避するために、三つ AZ をまたいだ三つのマスターを持つ Kubernetes を自動的に実行します。このマルチ AZ アーキテクチャーは、AWS のAvailability Zone の喪失に対する回復力を提供します。

三つ目は、Amazon EKS は不健全なマスターを自動的に検出して置き換え、マスターの自動バージョンアップとパッチ適用も行います。最後に、Amazon EKS は、負荷分散用の Elastic Load Balancing、認証用の IAM、Amazon VPC によるネットワークの分離、プライベートネットワークアクセス用の AWS PrivateLink、ロギング用の AWS CloudTrail などの主要な AWS 機能と統合されています。

どのように動くか

それでは、いくつかを見てみましょう。Heptio とのコラボレーションによって、Amazon EKS は IAM 認証と Kubernetes RBAC(Kubernetesのネイティブなロールベースアクセス制御システム)を連携させています。

各 IAM エンティティに RBAC のロールを紐付けることで、Kubernetes マスターへのアクセス権限を細かく制御することができます。これによって、kubectl のような標準的な Kubernetes のツールを使って Kubernetes クラスターを簡単に管理することが可能となります。

また、PrivateLink を使って、自身の Amazon VPC から直接 Kubernetes マスターにアクセスすることもできます。PrivateLink によって、Kubernetes のマスターと Amazon EKS サービスのエンドポイントが、Amazon VPC のプライベート IP アドレスを持つ Elastic Network Interface として設定されます。

これによって、自身の Amazon VPC の中からパブリック IP アドレスを使ったりインターネットへトラフィックを通すことなくKubernetes のマスターと Amazon EKS サービスにアクセスすることができます。

最後に、AWS 上の Kubernetes で誰でも利用できるオープンソースのCNIプラグインも開発しました。これによって Kubernetesの Pod で Amazon VPC のネットワークをネイティブに利用することができます。

Amazon EKS によって、Kubernetes クラスターを起動するのは AWS Management Console で数クリックするだけに簡素化されます。Amazon EKS が残りの、アップグレード、パッチ当て、そして高可用性といったことを扱ってくれます。Amazon EKS はプレビューで利用可能です。皆さんのフィードバックを楽しみにしています。

— Deepak Singh, General Manager of AWS Container Services

原文: Amazon Elastic Container Service for Kubernetes (翻訳: SA辻)