Amazon EKS の機能

概要

Amazon Elastic Kubernetes Service (Amazon EKS) は、AWS およびオンプレミスでの Kubernetes の実行を容易にするマネージド Kubernetes サービスです。Kubernetes は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動的に行うためのオープンソースシステムです。Amazon EKS は Kubernetes 準拠を認定されているため、アップストリームの Kubernetes で実行される既存のアプリケーションには Amazon EKS との互換性があります。

Amazon EKS は、コンテナのスケジューリング、アプリケーションの可用性管理、クラスターデータの保存などの主要タスクを担当する Kubernetes コントロールプレーンノードの可用性とスケーラビリティを自動的に管理します。

Amazon EKS を使用すれば、Amazon Elastic Compute Cloud (Amazon EC2) と AWS Fargate の両方で Kubernetes アプリケーションを実行できます。Amazon EKS を使用すると、AWS インフラストラクチャのあらゆるパフォーマンス、スケール、信頼性、可用性とともに、AWS ネットワークサービスおよびセキュリティサービス、たとえば負荷分散のための Application Load Balancer (ALB)、ロールに基づいたアクセスコントロール (RBAC) 向けの AWS Identity and Access Management (IAM)、ポッドネットワーク向け AWS Virtual Private Cloud (VPC) サポートなどとの統合を活用できます。

コンピューターデータの写真

フルマネージドクラスター

Amazon EKS には、複数の AWS アベイラビリティーゾーン (AZ) 全体で動作するスケーラブルで可用性の高い Kubernetes コントロールプレーンがあります。Amazon EKS は、Kubernetes API サーバーと etcd 永続レイヤーの可用性とスケーラビリティを自動的に管理します。Amazon EKS は 3 つの AZ にわたって Kubernetes コントロールプレーンを実行し、高可用性を確保します。また、正常に作動していないコントロールプレーンノードを自動的に検出して置き換えます。

Amazon EKS Auto Mode は、AWS のコンピューティング、ストレージ、ネットワーキング向けの Kubernetes クラスターインフラストラクチャ管理をワンクリックで完全に自動化します。インフラストラクチャのプロビジョニング、最適なコンピューティングインスタンスの選択、リソースの動的スケーリング、継続的なコストの最適化、オペレーティングシステムのパッチ適用、アドオンの管理、AWS セキュリティサービスとの統合を自動的に行うことで、Kubernetes の管理を簡素化します。

AWS Controllers for Kubernetes (ACK) では、Kubernetes 環境内から AWS のサービスを直接管理制御することができます。ACK を使用すると、AWS のサービスを利用するスケーラブルで可用性の高い Kubernetes アプリケーションを簡単に構築できます。

EKS には、クラスター全体を表示するための統合コンソールが用意されています。クラスターオペレーターとアプリケーションのデベロッパーは、EKS を単一の場所として使用して、Amazon EKS で実行されている Kubernetes アプリケーションを整理、視覚化、トラブルシューティングすることができます。EKS コンソールは AWS がホストしており、すべての EKS クラスターで自動的に利用可能になります。

Amazon EKS では、1 つのコマンドでクラスターのノードを作成、更新、スケーリング、および終了できます。これらのノードには、コスト削減のために Amazon EC2 スポットインスタンスを活用することもできます。マネージド型ノードグループは AWS アカウントの最新の EKS 最適化またはカスタム Amazon マシンイメージ (AMI) を使用して Amazon EC2 インスタンスを実行しますが、更新と終了はアプリケーションが使用可能な状態を維持するようにノードを適切にドレインします。

Amazon EKS では、アップストリーム版の Kubernetes が実行されており、Kubernetes への準拠性が認証されていますので、Kubernetes コミュニティで提供されている既存のプラグインやツールがすべて利用可能です。Amazon EKS で動作するアプリケーションは、オンプレミスのデータセンターで実行されているかパブリッククラウドで実行されているかにかかわらず、標準的な Kubernetes 環境で動作しているアプリケーションと完全に互換性があります。これは、コードをリファクタリングすることなく、標準的な Kubernetes アプリケーションならどれでも Amazon EKS に簡単に移行できることを意味します。

任意の準拠した Kubernetes クラスターを AWS に接続し、Amazon EKS コンソールで視覚化します。オンプレミスで実行されている Amazon EKS Anywhere クラスター、Amazon Elastic Compute Cloud (Amazon EC2) でのセルフマネージドクラスター、AWS の外部で実行されている他の Kubernetes クラスターなど、任意の準拠した Kubernetes クラスターに接続できます。クラスターが実行されている場所にかかわらず、Amazon EKS コンソールを使用して、接続されているすべてのクラスターとそれらで実行されている Kubernetes リソースを表示できます。

コンピューティング

Amazon EKS では EC2 インスタンスタイプにフルアクセスできるため、柔軟性が高まり、ワークロードに最適なコンピューティングを自動的にプロビジョニングできます。コンピューティングはオンデマンド、節約プラン経由、または Spot で購入できます。

AWS Nitro System は専用ハードウェアと軽量ハイパーバイザーを組み合わせたもので、イノベーションを迅速化しセキュリティを強化できます。

AWS Graviton は、Amazon EC2 で実行されるクラウドワークロードに最高のコストパフォーマンスを提供するように設計されたプロセッサーファミリーです。

AWS クラウドの未使用の EC2 容量を活用でき、オンデマンド価格と比較して最大 90% 割引で利用できます。スポットインスタンスは、ビッグデータ、コンテナ化されたワークロード、CI/CD、ウェブサービス、ハイパフォーマンスコンピューティング (HPC)、テストおよび開発ワークロードなど、ステートレス、耐障害性、または柔軟性を備えたさまざまなアプリケーションで使用できます。

EKS では、サーバーレスコンピューティングを使用して Kubernetes アプリケーションを実行するための AWS Fargate がサポートされています。Fargate ではサーバーのプロビジョニングと管理が不要となり、アプリケーションごとにリソースを指定してその分のみ料金を支払うことができます。また、設計段階からのアプリケーション分離によりセキュリティを強化できます。

ネットワーキング、セキュリティ、アクセス

EKS クラスターは Amazon VPC で実行されるため、独自の VPC セキュリティグループとネットワークアクセスコントロールリスト (ACL) を使用することができます。他のお客様とコンピューティングリソースを共有しないため、安全で信頼性の高いアプリケーションを構築するための高レベルの分離性が得られます。EKS は Amazon VPC のコンテナネットワークインターフェイス (CNI) を使用して、Kubernetes ポッドが VPC から IP アドレスを受け取ることを可能にします。Amazon EKS は Project Calico ネットワークポリシーエンジンと連動して、Kubernetes ワークロードのためのきめ細かなネットワークポリシーを提供します。Kubernetes ネットワークポリシー API を使用して、サービス単位でアクセスを制御することができます。

Amazon Elastic Kubernetes Service (EKS) が IPv6 をサポートすることで、顧客は Kubernetes 上でプライベート IPv4 アドレス空間の限界をはるかに超えてスケールできます。IPv6 をサポートする EKS では、ポッドにはグローバルにルーティング可能な IPv6 アドレスのみが割り当てられ、限られたプライベート IPv4 アドレス空間を消費することなく、クラスター内のアプリケーションをスケールすることができます。このグローバルにルーティング可能な IPv6 アドレスは、Amazon VPC、オンプレミスネットワーク、または公開インターネット内の任意の IPv6 エンドポイントとダイレクトに通信するために使用できます。また、EKS は、ポッドがクラスター外の IPv4 ベースのエンドポイントと通信できるようにネットワークを設定するため、組織全体にデプロイされているすべての依存サービスを IPv6 にデプロイする必要なく、Kubernetes を使用して IPv6 の利点を導入することができます。

Amazon EKS は、Application Load Balancer (ALB)、Network Load Balancer (NLB)、および Classic Load Balancer を含む Elastic Load Balancing の使用をサポートしています。Amazon EKS クラスターでは、標準の Kuberentes クラスターロードバランシング、または Kubernetes をサポートする任意のイングレスコントローラーを実行することができます。

Amazon VPC Lattice は、AWS ネットワーキングインフラストラクチャに直接組み込まれたフルマネージド型のアプリケーションネットワーキングサービスであり、これを使用すると、複数のアカウントや仮想プライベートクラウド (VPC) にわたってサービスを接続、保護、モニタリングできます。Amazon EKS では、Kubernetes Gateway API の実装である AWS Gateway API Controller を使用して Amazon VPC Lattice を活用できます。Amazon VPC Lattice を使用すると、標準の Kubernetes セマンティクスを使用してクラスター間の接続を簡単かつ一貫した方法でセットアップできます。

EKS Pod Identity は、お客様が AWS サービスにアクセスするために EKS クラスターにアプリケーションをセットアップするために行う必要のある作業を簡素化します。EKS クラスター管理者は、Kubernetes アプリケーションが S3 バケット、DynamoDB テーブルなどの AWS リソースにアクセスするための認証に必要な IAM 認証情報を取得するためのワークフローを簡素化できます。EKS Pod Identity により、複数のクラスターで IAM ロールを簡単に使用できるようになり、IAM ロール間でのポリシーの再利用をサポートすることで IAM ポリシー管理が簡素化されます。

Amazon EKS は Kubernetes RBAC (Kubernetes 用ネイティブロールベースのアクセスコントロールシステム) を AWS IAM に統合します。RBAC ロールを各 IAM エンティティにを直接割り当てることができるため、Kubernetes コントロールプレーンノードへのきめ細かなアクセス許可の制御が可能になります。

Amazon EKS は、規制された機密性の高いアプリケーション向けの複数のコンプライアンスプログラムによって認定されています。Amazon EKS は、SOCPCIISOFedRAMP-ModerateIRAPC5K-ISMSENS HighOSPAR、および HITRUST CSF に準拠しており、HIPAA 対応サービスでもあります。

Amazon EKS には、承認されたイメージとアーティファクトを使用したコンテナワークロードのデプロイを可能にするコンテナイメージ署名検証との互換性があります。Amazon EKS クラスターにイメージをデプロイする前に、フルマネージド署名ソリューションである AWS Signer によって署名されたイメージ (またはソフトウェア部品表などのその他の OCI アーティファクト) を検証できます。AWS はオープンソースベースのイメージ署名および検証ソリューションをサポートしているため、レジストリに保存されているアーティファクトに簡単に署名し、オープンソースの Policy-as-Code またはアドミッションコントローラを使用して検証できます。

バージョンとアップデート

Amazon EKS では、更新プロセスを管理することなく、実行中のクラスターを最新の Kubernetes バージョンに簡単にアップデートできます。Kubernetes バージョンのアップデートはインプレースで実行されるため、新規クラスターの作成やアプリケーションの新規クラスターへの移行の必要もありません。Kubernetes の新バージョンは Amazon EKS での使用向けにリリースされ検証されています。3 種類の Kubernetes の安定バージョンが更新プロセスの一部として常にサポートされています。SDK、CLI、または AWS コンソールを介して、新しいバージョンのインストールを開始し、飛行中のアップデートステータスを確認することができます。

Amazon EKS は Kubernetes コミュニティツールと完全な互換性があり、よく利用されている Kubernetes アドオンをサポートしています。これには、クラスター用の DNS サービスを作成する CoreDNS および Kubernetes Dashboard のウェブベースの UI と kubectl コマンドラインツールの両方が含まれ、Amazon EKS でクラスターにアクセスし管理するのに役立ちます。詳細については、Kubernetes コミュニティツールの GitHub ページを参照してください。

アドオン

Amazon EKS は、Kubernetes クラスターの主要な運用機能やさまざまな AWS サービスとの統合を実現する、アドオンとも呼ばれる、厳選された Kubernetes ソフトウェア一式を提供しています。これらのアドオンには、クラスター DNS 機能を有効にする CoreDNS や、Kubernetes クラスター内のサービスネットワーキング機能を有効にする kube-proxy などの運用ソフトウェアが含まれています。さらに、アドオンには、Amazon VPC との統合を通じてポッドネットワーキング機能を有効にする Amazon VPC CNI などの運用ソフトウェアや、Amazon Elastic Block Storage (Amazon EBS)、Amazon Elastic File System (Amazon EFS)、Amazon Simple Storage Service (Amazon S3) との統合を可能にする CSI ドライバーも含まれています。他にも、アドオンには、さまざまな AWS サービスとの統合を可能にするオブザーバビリティエージェントとセキュリティエージェントが含まれています。

Amazon EKS では、EKS API、AWS マネジメントコンソール、AWS コマンドラインインターフェイス (AWS CLI)、eksctl、AWS CloudFormation、およびサードパーティーの Infrastructure as Code (IaC) ツールを使用して、アドオンのインストール、管理、設定を実行できます。AWS の Amazon EKS アドオンにはすべて、最新のセキュリティパッチとバグ修正が含まれており、Amazon EKS との連携が AWS によって検証されています。これにより、Amazon EKS クラスターは常に安全で安定しており、アドオンのインストール、設定、更新に必要な作業量を削減できます。AWS のアドオンの詳細については、EKS ユーザーガイドを参照してください。

Amazon EKS では、EKS クラスター上の独立系ソフトウェアベンダーのサードパーティ Kubernetes 運用ソフトウェア (アドオン) の検索、選択、インストール、管理、設定を一元的に管理できます。これは、EKS API、AWS マネジメントコンソール、AWS CLI、eksctl、AWS CloudFormation、およびサードパーティーの IaC ツールの使用を通じて可能になります。これらのツールは AWS の EKS アドオンの管理にも使用されます。これにより、オブザーバビリティ、サービスメッシュ、GitOps、EKS クラスターのストレージなどの運用機能を提供するサードパーティの Kubernetes アドオンを検索し、サブスクライブし、デプロイする管理作業が簡単になります。サードパーティのアドオンは AWS Marketplace から提供されており、よくある脆弱性と暴露 (CVE) がないか、ソフトウェアを継続的にスキャンしています。さまざまな Kubernetes バージョンと互換性のあるアドオンバージョンのみが表示されるため、アドオンの互換性を検証するためのオーバーヘッドが軽減されます。EKS を通じてこれらのアドオンを選択すると、一括請求、柔軟な支払いオプション、長期契約の割引料金など、AWS Marketplace の他の製品と同じ利点を得られます。AWS のアドオンの詳細については、EKS ユーザーガイドを参照してください。

オブザーバビリティ

Amazon Managed Service for Prometheus は、オープンソースの Prometheus 向けに、スケーラブルで安全な AWS マネージドサービスを提供します。Prometheus のクエリ言語 (PromQL) を使用すると、運用メトリクスの取り込み、保存、クエリの基盤となるインフラストラクチャを管理しなくても、コンテナ化されたワークロードのパフォーマンスをモニタリングできます。AWS Distro for OpenTelemetry または Prometheus サーバーを収集エージェントとして使用することで、Amazon EKS から Prometheus メトリクスを収集できます。Amazon Managed Service for Prometheus は、Amazon EKS クラスターからメトリクスを自動的にスクレイピングする、フルマネージドエージェントレススクレイパーを提供します。スクレイピングは、Prometheus 互換のエンドポイントから自動的にメトリクスを取得します。

Amazon CloudWatch Container Insights は、DevOps エンジニア、デベロッパー、サイトリライアビリティエンジニア (SRE)、IT マネージャーに、コンテナ化されたアプリケーションとマイクロサービス環境をすぐに可視化できる、フルマネージド型のモニタリングおよびオブザーバビリティサービスです。Amazon CloudWatch Container Insights を使用すると、EKS クラスターの問題を最小限の労力でモニタリング、切り分け、診断できます。クラスター、サービス、ポッドの CPU、メモリ、ネットワーク、ディスク使用量などのインフラストラクチャテレメトリを、CloudWatch コンソールで簡単に視覚化できるメトリクスとログの形で提供します。

Amazon CloudWatch オブザーバビリティ EKS アドオンを使用すると、Amazon EKS クラスターのオブザーバビリティを強化できます。Amazon EKS アドオンを使用すると、Amazon EKS クラスターのオブザーバビリティが強化されます。このアドオンは CloudWatch エージェントと Fluent Bit をインストールし、インフラストラクチャとコンテナログに関する洞察を提供します。CloudWatch エージェントは、主要なインフラストラクチャメトリクスをクラスターノードから CloudWatch に送信します。これにより、CPU、ネットワーク、ディスク、およびその他の低レベルのノードメトリクスをモニタリングできます。Fluent Bit はコンテナログをクラスターから CloudWatch ログに送信します。これにより、コンテナからのアプリケーションログとシステムログに関する洞察を得ることができます。

Amazon EKS は AWS CloudTrail と統合することで、監査履歴を含む EKS 管理運用を可視化できます。CloudTrail を用いると Amazon EKS API への API コールを見ることができます。また、Amazon EKS は、分析、デバッグ、および監査のために、Kubernetes コントロールプレーンログを Amazon CloudWatch に配信します。

Amazon EKS は、クラスターに参加するすべての EC2 インスタンスに、AWS コスト配分タグを自動的に追加します。これにより、クラスターレベルのコストのインサイトを得るために、組織全体でカスタムタギングポリシーを実施する必要がなくなります。AWS 請求コンソールで EKS クラスター名のコスト配分タグを有効にすると、AWS Cost and Usage レポート使用して EKS クラスターに関連する EC2 コストを追跡できるようになります。

Amazon EKS は、ポッド、ノード、ネームスペース、ラベルなどの Kubernetes リソースごとに分類されたコストをモニタリングできる Kubecost をサポートしています。Kubernetes プラットフォームの管理者や財務のリーダーは、Kubecost を使用して Amazon EKS の関連料金の内訳を可視化し、コストを配分し、アプリケーションチームなどの組織単位にチャージバックすることができます。社内のチームやビジネスユニットに対して、実際の AWS 請求に基づく透明で正確なコストデータを提供し、インフラストラクチャ環境やクラスター内の使用パターンに基づいて、コスト最適化のためのカスタマイズされたレコメンデーションを得ることができます。

AWS への統合

AWS Controllers for Kubernetes (ACK) は、Kubernetes から AWS のサービスを直接管理できるツールです。ACK を使用すると、AWS のサービスを利用するスケーラブルで可用性の高い Kubernetes アプリケーションを簡単に構築できます。ACK は、AWS のサービス API に関係なく、一貫性のある Kubernetes インターフェイスを AWS に提供します。

Amazon ECR は、ハイパフォーマンスホスティングを提供するフルマネージド型のコンテナレジストリであるため、アプリケーションイメージとアーティファクトをどこにでも確実にデプロイすることができます。Amazon ECR からイメージを取得して、Amazon EKS で Kubernetes ワークロードを実行できます。

GuardDuty EKS Protection を使用すると、Amazon GuardDuty は Kubernetes 監査ログを分析することで、EKS クラスターの疑わしいアクティビティや侵害の可能性を検出できます。Amazon GuardDuty EKS ランタイムモニタリングは、30 を超えるセキュリティ検出結果からランタイムの脅威を検出し、EKS クラスターを保護します。EKS Runtime Monitoring は、ファイルアクセス、プロセスの実行、ネットワーク接続など、個々のコンテナのランタイムアクティビティを可視化するフルマネージド型の EKS アドオンを使用します。GuardDuty は EKS クラスター内の侵害されている可能性がある特定のコンテナを特定し、個々のコンテナから基盤となる Amazon EC2 ホストやより広い AWS 環境に権限を昇格させようとする試みを検出できるようになります。GuardDuty EKS ランタイムモニタリングの検出結果は、潜在的な脅威を特定し、脅威が拡大する前に封じ込めるためのメタデータコンテキストを提供します。

ハイブリッドデプロイ

同じ Amazon EKS を使用して、AWS リージョン、AWS Local Zones、AWS Wavelength Zone で AWS がホストするインフラストラクチャ上でノードを実行することも、AWS Outposts と Amazon EKS Hybrid Node を使用する独自のオンプレミス環境でノードを実行することもできます。AWS Outposts は、データセンターまたはコロケーション施設で実行される AWS が管理するインフラストラクチャです。一方、Amazon EKS Hybrid Node は、オンプレミスまたはエッジ環境で管理する仮想マシンまたはベアメタルインフラストラクチャ上で実行されます。隔離された環境やエアギャップされた環境で実行する必要がある場合は、Amazon EKS Anywhere を使用できます。これは AWS がサポートする Kubernetes 管理ソフトウェアで、皆様が管理するインフラストラクチャ上で動作します。Amazon EKS Anywhere では、Amazon EKS Anywhere クラスターのクラスターライフサイクル運用とメンテナンスをご自身で担当していただく必要があります。Amazon EKS コネクタを使用すると、任意の Kubernetes クラスターとそのリソースを Amazon EKS コンソールに表示できます。Amazon EKS Distro は、すべての Amazon EKS サービスの基盤となる Kubernetes コンポーネントの AWS ディストリビューションです。

Amazon EKS Hybrid Node は、クラウド、オンプレミス、エッジ環境にわたって Kubernetes の管理を統合し、可用性、スケーラビリティ、効率を高めながら、ワークロードをどこでも柔軟に実行できるようにします。環境全体で Kubernetes の運用とツールを標準化し、AWS のサービスとネイティブに統合して、モニタリング、ログ記録、ID 管理を一元化します。EKS Hybrid Node は、Kubernetes コントロールプレーンの可用性とスケーラビリティを AWS にオフロードすることで、オンプレミスとエッジでの Kubernetes の管理に必要な時間と労力を削減します。EKS Hybrid Node は、ハードウェアに追加投資することなく、既存のインフラストラクチャ上で実行してモダナイゼーションを加速できます。

AWS OutpostsAWS Local ZonesAWS Wavelength Zones を使用すると、エンドユーザーの近くでアプリケーションを実行できるため、低レイテンシーとデータレジデンシーの要件を満たすことができます。Amazon EKS では、AWS リージョンでアプリケーションを実行するのと同じ Amazon EKS クラスター、機能、ツールを使用して、これらの種類の AWS インフラストラクチャでノードを実行できます。

Amazon EKS Anywhere は、オンプレミスやエッジ環境でのインフラストラクチャの設定や Kubernetes クラスターのライフサイクルオペレーションなど、差別化につながらない手間のかかる作業の自動化を通じて、Kubernetes クラスター管理を簡素化します。Amazon EKS Anywhere は Kubernetes サブプロジェクトの Cluster API (CAPI) に基づいて構築されており、VMware vSphere、ベアメタル、Nutanix、Apache CloudStack、AWS Snow ファミリーなどのさまざまなインフラストラクチャをサポートしています。Amazon EKS Anywhere はエアギャップ環境でも実行でき、オブザーバビリティと ID 管理のために地域の AWS サービスとオプションで統合できます。Amazon EKS Anywhere のサポートを受けたり、AWS が提供する Kubernetes アドオンにアクセスしたりするために、Amazon EKS Anywhere エンタープライズサブスクリプションを購入できます。

Amazon EKS コネクタを使用すると、任意の準拠した Kubernetes クラスターを登録し、AWS に接続して、Amazon EKS コンソールで表示することができます。クラスターを接続すると、Amazon EKS コンソールでそのクラスターのステータス、設定、ワークロードを確認できます。この機能を使用して Amazon EKS コンソールで接続されたクラスターを表示できますが、Amazon EKS コネクタでは、Amazon EKS コンソールを使用して接続されたクラスターの管理や変更操作を行うことはできません。

Amazon EKS Distro は、すべての Amazon EKS サービスの基盤となる Kubernetes コンポーネントの AWS ディストリビューションです。これには、Kubernetes コントロールプレーンコンポーネント (etcd、kube-apiserver、kube-scheduler、kube-controller manager) やネットワークコンポーネント (CoreDNS、kube-proxy、CNI プラグイン) など、Kubernetes クラスターが機能するのに必要なコアコンポーネントが含まれます。Amazon EKS Distro では、お好みのツールを使用して Kubernetes クラスターを自己管理できます。