[レポート] Amazon EKS の最新情報とロードマップ #CON205 #reinvent

2022.12.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アノテーション テクニカルサポートの川崎です。

本記事は AWS re:Invent 2022 のセッションレポートとなります。

概要

このセッションでは、フルマネージドの Kubernetes サービスである Amazon EKS の最近の機能強化について深く掘り下げます。 これらの新機能により、AWS およびオンプレミスで Kubernetes を簡単に実行できるようになり、ミッション クリティカルなアプリケーションの可用性とスケーラビリティを確保するのにどのように役立つかをご覧ください。

セッション動画

ゴール

  • デリバリーと変更を加速するために IT 運用を標準化
    • 急速な変化 == イノベーション
  • 固定費を削減
    • 複雑な契約と管理オーバーヘッドを排除
  • 組織全体を有効に
    • 複数の環境とさまざまなユースケースをサポート
  • 計画を立てリスクを軽減
    • 標準により、雇用と長期的な開発努力が可能に

ミッション

  • セキュリティファースト
  • オープンスタンダード
  • 組み込みのベストプラクティス
  • シームレスな統合
  • 常にサポートされています

クラウドおよびデータセンターにおける、アプリケーション対応、プロダクション環境 Kubernetes

Kubernetes の優先度の階層

  • 4 組織標準 (Organizational standards)
  • 3 自動化された操作 (Automated operations)
  • 2 効率性 (Efficiency)
  • 1 信頼性 (Reliability)
  • 0 セキュリティ (Security)

セキュリティ(Security)の要件

  • サプライチェーン
    • 使用するソフトウェアとシステムは安全であり、環境は攻撃から保護されています
  • コンプライアンス
    • システムは、組織、業界部門、および政府の標準を満たしています
  • コントロール
    • システムには、アクセス、情報処理、記録保持、修復を確実に制御できるオプションが含まれています

Kubernetes バージョンのサポート

  • サポート中
    • 1.24 2022/11/15 にリリース - このバージョンでは Dockershim が削除され、変更には Kubelet 証明書発行セキュリティの改善が含まれていました
    • 1.23 2022/08/11 にリリースされたこのバージョンでは、EBS CSI 移行と一時的なコンテナーが有効になりました
    • 1.22 2022/04/04 にリリースされ、2023/06 にサポート終了予定
    • 1.21 2021/07/20 にリリースされ、2023/02 にサポート終了予定
  • サポート終了
    • 1.20 2022/11/01 サポート終了
    • 1.19 2022/08/01 サポート終了
    • 1.18 2022/03/31 サポート終了
    • 1.17 2021/11/02 サポート終了

セキュリティの改善 【2022年の新機能】

  • Log4j インシデント対応
    • 実行中のコンテナーで JVM ホット パッチを実行する Log4j CVE ノード エージェント デーモンセットを構築およびリリースしました
    • Bottlerocket Hotdog - Log4j ホット パッチを Bottlerocket ホストのコンテナーに注入する OCI フックのセット
  • Amazon GuardDuty 監査ログのサポート
    • EKS クラスターでのセキュリティ調査結果または疑わしいコントロール プレーン アクティビティの根本原因を分析、調査、特定します
  • ロードマップ: Guard Duty ランタイム保護
    • サポートが拡張され、EKS クラスターで実行中のコンテナーが含まれるようになりました

AWS PrivateLink のサポート 【近日公開予定】

  • EKS API へのプライベート アクセス
    • パブリック インターネットにトラフィックを公開することなく、Virtual Private Cloud (VPC) から EKS クラスターのライフサイクルを管理します
  • 高度なアクセス構成
    • VPC エンドポイントと IAM ポリシーをインターフェイス エンドポイントにアタッチして、EKS API を呼び出すことができるユーザーを制御します
  • 簡素化されたセキュリティ モデル
    • VPC から EKS API に接続するために、インターネット ゲートウェイ、NAT デバイス、またはパブリック IP アドレスは必要ありません

IAM クラスター アクセス管理 【近日公開予定】

  • シンプルなアクセス管理
    • EKS API を介して、Kubernetes に対する IAM ID の認証と承認を管理します
  • アップストリームのユーザー向けの役割を活用します
    • クラスター管理者やビューアーなどの一般的な Kubernetes アクセス許可セットを、EKS から直接簡単に構成できます
  • EKS で特化した AWS サービスを活用します
    • アクセス管理を使用して、EMR や AWS Batch などの AWS サービスへのアクセスを許可するワークフローを簡素化します

VPC CNI ネットワーク ポリシーのサポート 【近日公開予定】

  • すぐに使えるセキュリティ
    • サードパーティのプラグインをインストールする必要なく、クラスター内のネットワーク トラフィックを保護します
  • 互換性
    • ポッド セキュリティ グループなどの既存の VPC CNI 機能と互換性のあるネットワーク ポリシーのサポート
  • パフォーマンス
    • eBPF ベースのネットワーク ポリシー ルールにより、最大規模のクラスターでもパフォーマンスが保証されます

サービス アカウントの簡素化された IAM ロール (IRSA: IAM Roles for Service Accounts) 【作業中】

  • 任意の数のクラスターでロールを活用します
    • 任意の数の EKS クラスターで簡単に使用できるロールを作成します。 信頼ポリシーは、特定のクラスターに限定されなくなりました
  • 一元化された IAM ロール マッピング
    • EKS API を介して IRSA ロールをサービス アカウント マッピングに適用します。 YAML ファイルに注釈を付ける必要はありません
  • セッションタグのサポート
    • きめ細かいアクセス許可を実装するために必要なロールとポリシーの数を最小限に抑えます

信頼性 (Reliability) の要件

  • SLA/SLOS
    • システムには稼働時間と安定性が保証されています。 アーキテクチャが冗長性を有効にして、希望する SLA を満たしているか、それを上回っていることを確認してください
  • 規模
    • コンピューティング、ストレージ、およびネットワーク容量が必要なときに利用できるようにします。 システムは、大規模な環境でも負荷がかかった状態でも許容範囲内で動作します
  • 変更管理
    • すべての変更はテストされ、予測どおりに行われます。 システムの状態は外部で宣言され、簡単に元に戻すことができます

クラスターの更新と作成 【2022年の新機能】

  • アップデートの高速化
    • クラスターを更新する平均時間が 40 分から 10 分未満に短縮されました
    • バージョンのアップグレードや OIDC プロバイダーの関連付けなど、あらゆる種類の更新をサポートします
  • ロードマップ: 自信を持ってアップグレードしてください
    • 次のバージョンにアップグレードするためのクラスターの準備状況について、EKS からレポートを生成します。 事前に通知を受け、非互換性を解決してください
  • ロードマップ: クラスター作成の高速化
    • 5 分未満でクラスターを作成して使用します

Kubernetes コントロール プレーンのスケーリング 【2022年の新機能】

  • 2022年の新機能
    • クラスターは負荷の変化に迅速に反応し、すべてのクラスター サイズで高いパフォーマンスを維持します
  • ロードマップ: 強化された垂直クラスター自動スケーリング
    • アップストリームの制限である 5,000 ノードを超えてクラスターをスケーリングします

EKS の IPv6 サポート 【2022年の新機能】

  • スケールとパフォーマンス
    • ポッドごとにグローバルに一意の IPv6 アドレスを使用して、IPv4 の制限をはるかに超えてスケーリングします。 事前に割り当てられた IP アドレスにより、ポッドの起動時間が短縮されます
  • シンプルなネットワーク設定
    • ネットワーク アドレス変換なしでポッドからインターネットへの接続
  • 簡単に移行できるように設計されています
    • Egress IPv4 トラフィックのサポートにより、両方の利点が得られます。 組織の残りの部分がサポートする前に、EKS で IPv6 に移行します

Amazon VPC Lattice のサポート 【re:Invent での新機能】

  • VPC Lattice によるフルマネージド アプリケーション ネットワーキング
    • Lattice は、レイヤー 7 アプリケーション ネットワーキング機能を VPC で直接提供します - サイドカーは必要ありません
  • Kubernetes ネイティブ
    • アップストリームの標準 Kubernetes Gateway API を使用して Lattice を構成します
  • クラスター/VPC/アカウント間の通信
    • Lattice は、ネットワーク分離境界を越えてトラフィックを自動的にルーティングします。 VPC ピアリング、Transit Gateway などを使用する必要はありません

Amazon のグローバル リーチ

  • 30 の地域
  • 96 のアベイラビリティーゾーン
  • 21 のローカル ゾーン
  • 29 の波長ゾーン

【近日公開予定】

  • 5 つの新しい地域
  • 15 の新しいアベイラビリティーゾーン
  • 30 の新しいローカル ゾーン

Outposts のローカル クラスター 【2022年の新機能】

  • AWS Outposts での Amazon EKS の新しいデプロイ オプションにより、お客様はクラウドへのネットワーク切断時に Kubernetes アプリケーションの可用性を維持できます

Amazon EKS Anywhere インフラストラクチャ オプション

  • Amazon EKS Anywhere
    • Cluster API providers
      • VMware
      • bare metal
      • Apache CloudStack
      • AWS Snowball Edge
      • Nutanix
    • OS
      • Ubuntu
      • Bottlerocket
      • RHEL

効率性 (Efficiency) の要件

  • 規模
    • システムを動的にスケールアップまたはスケールダウンして、無駄を最小限に抑えることができます。 これには、ゼロへのスケーリングまたはリソースが必要ない場合の一時停止が含まれます
  • 密度
    • スケーラブル ユニット内のコンピューティング リソースの使用率を最大化できます。 例: ノード内のポッドとクラスター内のノード
  • 柔軟性
    • 可用性をコストと引き換えにするか (例: スポット)、コンピューティング リソースを調整して使用率を高めることができます (例: より大きなインスタンス サイズへの移行)

AWS サービスへの Kubernetes アクセス

  • より高いレベルのサービス
  • Amazon EKS
  • サポートサービス
  • インフラストラクチャ サービス

マネージドノード グループはゼロにスケーリングされます 【2022年の新機能】

  • コンピューティング コストを最適化します
    • コストを節約するために、ダウンタイム中に非ミッション クリティカルなマネージドノード グループをゼロにスケーリングします
  • シンプルなセットアップ
    • Cluster Autoscaler は、EKS ノード グループ API を直接呼び出して、ゼロからスケールアップするために必要なメタデータを検出するようになりました

EKS マネージド ノードのロードマップ 【作業中】

  • アップグレードの機能強化
    • 自動 AMI アップグレード、構成可能なタイムアウト、改善された通知/ログ、プリフライト チェック、およびアップグレード ウィンドウ
  • Amazon Linux 2022 ベースの EKS 最適化 AMI
    • セキュリティと安定性が向上した AWS の次世代 Linux OS
  • ノードのヘルス モニタリングと自動修復
    • EC2 インスタンスの正常性の問題を表面化し、可能な場合は自動的に修復します
  • ウォーム プールの統合
    • 起動時間が非常に長いワークロードのスケールアウト レイテンシを短縮します
  • Outposts と Local Zones のマネージドノード
    • マネージド オンプレミス クラスターの EKS アーキテクチャと運用を統合します

Karpenter 【2022年に一般提供】

  • 適切な場所にある適切なノード
    • Karpenter は、ポッドの要件、可用性、カスタム設定に基づいて、クラスターに最適なノードを選択します
  • 効率性を改善します
    • Karpenter はわずか 15 秒でノードを追加および削除するため、コストのかかるオーバープロビジョニングを削減し、時間とコストのかかるスケールダウンを回避できます
  • スケールのために構築されています
    • 最大の Kubernetes クラスターであっても、需要が変化すると、スケーリングの決定は数秒で行われます
  • 本番利用可能
    • Karpenter は AWS によって完全にサポートされており、本番環境で定期的に使用されています

詳細については、github.com/aws/karpenter をご覧ください

Karpenter 【2022年に一般提供】

  • 最近のローンチ
    • ワークロードの統合
    • カスタム ユーザー データと AMI のサポート
    • EBS ボリュームと kubelet の構成
    • ステートフル ワークロードの AZ 対応スケジューリング
    • ノード終了処理 (例:スポット)
    • IPv6 サポート
    • 加重プロビジョナー

Karpenter ロードマップ 【作業中】

  • インスタンス タイプの設定が上書きされます
    • 予約済みの CPU/メモリのしきい値など、インスタンス タイプごとのオーバーライドを指定します
  • 強化されたノード アップグレード コントロール
    • いつ、いくつのノードをアップグレードするかをより詳細に制御できます。 ノードの AMI がプロビジョニング要件からずれている場合の調整
  • 管理された Karpenter
    • EKS ですぐに使用できる適切なサイズのコンピューティングをプロビジョニングします

Fargate プロファイルのワイルドカード名前空間 【2022年の新機能】

  • デフォルトで Fargate で起動します
    • クラスター全体にサービスを提供するために作成するプロファイルを減らします
    • 新しい名前空間は、Fargate でポッドを実行するために自動的に使用できます
  • ワイルドカード
    • Fargate で実行するポッドの名前空間の範囲を指定します
    • すべての名前空間のプロファイル名をハードコーディングする必要はありません

EC2 のコストと使用状況のシステム タグの伝達 【2022年の新機能】

  • タグを使用して、AWS での Kubernetes の使用状況を可視化します
    • EKS は、AWS のコストと使用状況レポート (CUR) タグを自動的に伝達し、EKS クラスターに関連する使用状況と EC2 の合計コストを正確に追跡します
  • カスタムタグ付けはもう必要ありません
    • 何百もの Kubernetes リソースにタグを付けるのは面倒で、エラーが発生しやすくなる可能性があります
  • コンプライアンス チェックを自動化し、レポートを改善します
    • セキュリティとコンプライアンスのチェックを自動化します
    • AWS で Kubernetes を実行するための全体的なコストについて理解を深めます

Kubecost のサポート 【2022年の新機能】

  • EKS のコストについて深い洞察を得る
    • 名前空間やポッドなどの Kubernetes の概念によってコストを並べ替えます
  • 追加料金なしでエンタープライズ機能を選択できます
    • 単一クラスターのコストの可視性、15 日間のメトリクスの保持、およびオプションの AWS のコストと使用状況の統合
  • Helm と EKS アドオンによる簡単なインストール
    • 単一の Helm インストール コマンドで Kubecost をインストールします。 コンテナ イメージと Helm チャートは、Amazon ECR パブリックから取得されます。 さらに、EKS アドオンを介してインストールするようになりました

自動操作 (Automated operations) の要件

  • ライフサイクル操作
    • システム コンポーネントのライフサイクル オペレーションはすべて自動化できます。 トリガーされると、操作はユーザーの介入なしで続行されます
  • コアツーリング
    • アプリケーションが必要とする一般的なツールとサービスは、システムに同梱されています。 標準のコア ツールのインストールと管理は最小限です
  • ベストプラクティス
    • ツールを使用すると、ワークフローを強化し、中断しないベストプラクティスを標準化して実施することが容易になります
  • 実用的な洞察
    • 複数のデータ ソースから簡単に取り込み、深い理解を得て、パフォーマンスを向上させ、コストを削減し、問題解決までの時間を最小限に抑えます

クラスターの本番環境を準備するには、多くの作業が必要です

  • モニタリング
  • ネットワーキング
  • 安全
  • 可観測性
  • ストレージ
  • 原価管理

EKS アドオン

  • ライフサイクル管理
    • EKS API を使用して、EKS クラスターのコア アドオンを開始、更新、および削除します。 メタデータ API には、すべての K8 およびアドオン バージョンとの互換性が含まれています
  • 起動時の制御
    • クラスターの起動時にアドオンを完全にカスタマイズまたは削除します。もう待つ必要はありません
  • すぐに使えるクラスター
    • 追加の手順を実行せずに、アプリケーションを実行する準備が整ったクラスターを開始します

EKS アドオンを使用して Marketplace ソフトウェアを起動 【re:Invent での新機能】

  • AWS によって構築および販売される一般的な OSS ツール
  • ベンダーが AWS Marketplace から提供するツール
  • EKS アドオンを使用して起動します
  • EKS クラスター

AWS Marketplace を利用した拡張アドオン カタログ 【re:Invent での新機能】

  • ローンチパートナー
  • 近日公開予定

EKS アドオンの構成 【近日公開予定】

  • ライフサイクル管理
    • EKS API を使用して、EKS クラスターのアドオンを開始、更新、構成、および削除します。メタデータ API には、すべての K8s およびアドオン バージョンの互換性が含まれています
  • 回避策なしで制御します
    • 二次構成なしで作成されたアドオンをカスタマイズします
  • いつでも構成を変更します
    • アドオンの展開中または展開後に、アドオンの構成を変更します

EKS Anywhere キュレーション パッケージ 【2022年の新機能】

EKS コンソールの更新 【2022年の新機能】

  • すべてを参照
    • 完全な構成データとディープリンクされた AWS リソースを含む、クラスター内のすべてのオブジェクトをナビゲートします
  • 統合された指標
    • アプリケーションのステータスをすばやく確認できます
  • どこでも接続
    • EKS コネクタを使用すると、EKS コンソールのどこからでも任意のクラスターを視覚化できます

組織標準 (Organizational standards) の要件

  • サポートされています
    • すべての環境で同じ一貫性のある、サポートされている Kubernetes エクスペリエンス
  • ベストプラクティスを適用します
    • ツールを使用すると、ワークフローを強化し、中断しないベストプラクティスを標準化して実施することが容易になります
  • 携帯性
    • アプリケーションや構成を大幅に変更することなく、必要な環境で実行できます。 アプリケーション構成を大幅に変更することなく、環境内の固有の機能を利用できます

Amazon EKS portfolio

  • Amazon EKS Distro
  • Amazon EKS Anywhere
  • Amazon EKS on Outposts
  • Amazon EKS in Wavelength Zones
  • Amazon EKS in Local Zones
  • Amazon EKS

AWS サービスへの Kubernetes アクセス

  • より高いレベルのサービス
  • Amazon EKS
  • サポートサービス
  • インフラストラクチャ サービス

Kubernetes 用の AWS コントローラー (ACK: AWS Controllers for Kubernetes) 【現在利用可能】

  • AWS を活用
    • クラスター内で AWS リソースを直接作成して使用します。 あらゆる規模で信頼性とアップタイムを向上させます
  • クラウドネイティブ コントロール
    • Kubernetes カスタム リソースとコントローラーを使用すると、アプリケーションが必要とする AWS リソースをクラスター内で直接定義できます
  • 常に最新の状態
    • ACK は AWS SDK を使用して自動的に生成されます。これにより、コントローラーが最新の機能で最新の状態に保たれます

Kubernetes 用の AWS コントローラー (ACK: AWS Controllers for Kubernetes) 【現在利用可能】

  • 【現在一般提供中】
    • Amazon Managed Service for Prometheus Service
    • AWS API Gateway v2
    • AWS Application Autoscaling Amazon DynamoDB
    • Amazon EC2
    • Amazon ECR
    • Amazon EKS
    • AWS KMS
    • AWS Lambda
    • Amazon RDS
    • Amazon S3
    • Amazon SageMaker
    • AWS Step Functions
    • EMR Containers
  • 【近日公開】
    • Amazon API Gateway
    • Amazon CloudFront
    • AWS CloudTrail
    • Amazon ElastiCache
    • AWS IAM
    • Amazon MSK (Kafka)
    • Amazon Kinesis
    • Amazon MemoryDB
    • Amazon MQ
    • Amazon OpenSearch Service
    • Amazon SNS

Amazon EKS 上の Amazon EMR 【一般提供中】

  • 組織全体でコンピューティングを統合して、コストを最適化します
  • パフォーマンス要件を満たすために、チーム、アプリケーション、またはジョブごとにリソースを割り当てます
  • 既存の容量を活用するか、AWS Fargate を使用して、ジョブをすばやく開始します
  • 複数のアベイラビリティ ゾーンで高可用性データ処理ワークロードを実行します

EKS の AWS Batch 【2022年の新機能】

  • ゲノミクスと創薬
  • ML トレーニング
  • データ エンジニアリング パイプライン
  • ログ処理

  • 特徴

    • 完全に管理されたバッチ コンピューティング、AWS へのオペレーションのオフロード
    • マルチクラスター対応のスケジューリング
    • ワークロードを意識したスケーリングとスケジューリング
    • 任意の EKS クラスターと互換性があります
  • 推奨される監視およびガバナンス ツールを使用します

  • Batch は、他の EKS ワークロードからのアプリケーション分離を管理します

公開ロードマップをフォロー

  • 私たちの取り組みの最新情報を入手してください
  • フィードバックをお寄せいただき、アイデアを提案してください
  • 新機能が利用可能になった際に通知を受け取ります