2020年のAmazon EKSを振り返る
こんにちは!インフラエンジニアのずやです!
この記事はiCARE Advent Calendar 2020の11日目の記事です。
今年1年でAmazon EKSにもたくさんのアップデートが発表されましたね。
今回は2020年のEKSのアップデートをざっくりとまとめてみました。
下記の4カテゴリ別に時系列順で振り返っていきます!
・全体
・マネージドノードグループ
・Farrgate
・Kubernetesバージョンのサポート状況の遷移
全体
[1月] 料金が半額に!
Amazon EKS Announces が 50% の値下げを発表
EKSクラスタごとの毎時の課金額が0.20USDから0.10USDに値下げされました。
1か月の料金で見ると144USDから72USDになります。
EKSをより気軽に使いやすくなる素敵なアップデートですね。
ちなみにEKSクラスタ≒コントロールプレーンなので、データプレーン(EC2 or Fargate)の料金は変わりません。
[3月] Kubernetes secretsをKMSで暗号化可能に
Amazon EKS が AWS KMS を使った Secrets のエンベロープ暗号化に対応
デフォルトでKubernetesのSecretsの内容はbase64エンコードされるだけですが、本アップデートによりKMSのCMK(カスタマーマスターキー)を利用して暗号化することができるようになりました。
[3月] SLAが99.95%に更新
Amazon EKS がサービスレベルアグリーメントを 99.95% に更新
SLAが99.9%から99.95%に変更されました。
[4月] クラスター作成時のIAMロールのセットアップが簡略化
Amazon EKS がサービスにリンクされたロールのサポートを開始
EKSクラスターを作成する際、EKSにクラスターに必要なリソースを作成・管理するためのIAMロールを用意する必要がありましたが、その一部が「サービスにリンクされたロール」としてAWSでデフォルトで用意されるようになり、クラスター作成時のセットアップが一部省略できるようになりました。
[4月] EKSのコンソール画面の改善
Amazon EKS が AWS コンソールでのクラスターの作成と管理を改善
こちらのAWSさんのブログでどう改善されたのかが説明されています。
[7月] CIS Amazon EKSベンチマーク
CIS Amazon EKS ベンチマークが発表され、EKSクラスターのセキュリティ設定の評価が可能になりました。評価はコントロールプレーンのログ記録設定、ノードのセキュリティ設定、ポリシー、マネージドサービスの4セクションで構成されます。
kube-benchというOSSのCLIツールを利用することもできます。
[7月] EFS CSIドライバーの登場でEFSの利用が楽に
EFS CSIドライバーによりEFSがこれまでよりも楽に利用できるようになりました。
以前はefs-provisionerが必要で手順もEFS CSIドライバーに比べ少し面倒でした。
[8月] AWS Service QuotasからEKSの制限管理が可能に
Amazon EKS クォータが、AWS Service Quotas を通じて管理可能に
各種AWSサービスの制限(クォータ)の一括管理を行えるAWS Service QuotasでEKSもサポートされるようになりました。AWS Service Quotasの画面からEKSの制限を一覧できたり制限緩和が行えます。
[8月] NLBでUDPが利用可能に
Amazon EKS が Network Load Balancer を使用した UDP ロードバランシングのサポートを開始
EKSからNLBを利用する場合、それまではTCPのみが使用可能でしたが、本アップデートによりUDPも利用可能になりました。
普通のWebサービスであれば特に不要かなと思いますが、ストリーミング系のサービスとかなら需要があるのかなと想像。
[8月] AWS Graviton2搭載のインスタンスが利用可能に
AWS Graviton を搭載した Arm ベースのインスタンスの Amazon EKS サポートの一般提供を開始
ArmベースのAWS Graviton2を搭載したM6g、C6g、R6gのインスタンスが利用可能になりました。
従来のインスタンスに比べてコストパフォーマンスが良いとのことです。
最近ではRDSやElastiCache等でもサポートが発表されましたね。
[8月] EC2インスタンスメタデータサービスv2をサポート
Amazon EKS が新たに EC2 インスタンスメタデータサービス v2 をサポート
よりセキュアにインスタンスメタデータを取得できるEC2インスタンスメタデータサービスv2(IMDSv2)をEKSノードのインスタンスでも利用できるようになりました。
IMDSv2については以下の記事を参照ください。
[待望のアプデ]EC2インスタンスメタデータサービスv2がリリースされてSSRF脆弱性等への攻撃に対するセキュリティが強化されました!
[9月] pod単位でセキュリティグループを割り当て可能に
Amazon EKS で Kubernetes ポッドへの EC2 セキュリティグループの割り当てが可能に
Introducing security groups for pods
Kubernetesのpodに対して、SecurityGroupPolicy
というリソースを用いて、セキュリティグループを割り当てることができるようになりました。
それまではノード(EC2インスタンス)単位でしかセキュリティグループを設定できませんでしたが、これによってpod単位でのより厳密なネットワークアクセス制御が可能となりました。
なお、Fargateは対象外となります。
[10月] Kubernetes Seviceで利用可能なIPアドレスの範囲を設定可能に
Amazon EKS が設定可能な Kubernetes サービスの IP アドレス範囲のサポートを開始
オンプレミスとの接続やVPCピアリングの利用をする場合にIPアドレスの競合を防ぐことができるようになります。
[10月] ALB Ingress Controllerが拡張
AWS Load Balancer Controller の紹介
Introducing the AWS Load Balancer Controller
EKS自体のアップデートではないですがご紹介。
ALB Ingress Controllerが「AWS Load Balancer Controller」と名前を変え、ALBだけでなくNLBもサポートするようになりました。また、一つのALBで複数のIngressリソースを扱うことができるようになりました。
[11月] Amazon VPC CNI Pluginのバージョン1.7がデフォルトに
Amazon VPC CNI プラグインバージョン 1.7 が Amazon EKS クラスターのデフォルトに
[11月] Step FunctionsからEKS上のKubernetes jobを実行可能に
AWS Step Functions が Amazon EKS サービスとの統合のサポートを開始
EKSクラスターに作成したKubernetesのjobをStep Functionsのワークフローに組み込めるようになりました。詳しい方法はStep Functionsのドキュメントに記載されています。
[11月] AWS CDK EKS Construct Libraryがデベロッパープレビューに
AWS CDK EKS Construct Library がデベロッパープレビューとして利用可能になり、cdk8s のサポートが追加
CDKのEKS用モジュールがデベロッパープレビューにという内容です。
(業務ではTerraform使っているのですが、そろそろCDKも勉強せねばですかね)
[12月] コンソール改善: Kubernetesのリソースが確認できるように
Amazon EKS Console Now Includes Kubernetes Resources to Simplify Cluster Management
[アップデート]EKSコンソールでKubernetesの各種リソースが確認できるようになりました #reinvent
地味に嬉しいアップデートです。
GKEとEKSの比較でEKSのコンソール画面が貧相というのを耳にしますが、それが今後少しでも改善されることに期待です。
正直まだ少し手間をかけてでもKubernetes Dashboardをセットアップした方が便利かなという印象です。
[12月] 一部アドオンの管理がマネージドに
Amazon EKS simplifies installation and management for Kubernetes cluster add-ons
Introducing Amazon EKS add-ons: lifecycle management for Kubernetes operational software
EKSコンソールからAmazon VPC CNIのバージョン確認・アップデートができるようになりました。今後他のアドオンツールのサポートも追加されていくようです。バージョン確認もアップデートするのも手間だったのでとても嬉しいアップデートです。
なお、対応するKubernetesバージョンは1.18以降となっています(1.18からベータ機能として追加されたServer-side Applyを利用しているようです)。
マネージドノードグループ
[4月] パブリックIP付与の仕様が変更
Amazon EKS マネージドモードグループで完全にプライベートなクラスターネットワーキングが可能に
[アップデート] EKSでマネージドノードグループをデプロイする際のパブリックIPアドレス付与の挙動が変更されました
それまではマネージドノードグループとして起動したEC2にはサブネットの設定に関わらずパブリックIPが付与されていました。
本アップデート以降はサブネットの「パブリック IPv4 アドレスを自動割り当て」設定を有効にしない限りパブリックIPは付与されなくなり、プライベートネットワークのみのノードを作成可能になりました。
[8月] 起動テンプレートとカスタムAMIを利用可能に
Amazon EKS 管理対象ノードグループが EC2 起動テンプレートとカスタム AMI のサポートを開始
起動テンプレートサポートによりカスタムAMIやユーザデータの使用など、ノードとなるEC2の設定の自由度が大幅に広がりました。
本アップデートについては以下の記事にもまとめています。
https://qiita.com/Uro3/items/d966b9bf77dc2b81e7f2
[12月] スポットインスタンスが利用可能に
Amazon EKS adds support for EC2 Spot Instances in managed node groups
マネージドノードグループでもスポットインスタンスを利用できるようになりました。
コスト削減のためにありがたいアップデートです。
Fargate
[8月] Savings Plansによる割引の対象に追加
AWS Fargate for Amazon EKS が Compute Savings Plans に含まれるように
Savings Plans適用により最大で52%の料金割引が受けられます。
元々2019年11月からECSのFargateでSavings Plans適用が可能になっていたのですが、今回EKSも対象に加わった形となります。
[8月] EFSをサポート
AWS Fargate 上の Amazon EKS が Amazon EFS ファイルシステムのサポートを開始
[アップデート] Fargate for EKSがEFSを正式サポートしました
本アップデートの一月前に一般公開されたEFS CSIドライバーを利用してFargate上のEKSノードにEFSファイルシステムをマウントできるようになりました。
[9月] CloudFormationからFargateプロファイルを作成可能に
EKS が新たに AWS CloudFormation を使用した Fargate プロファイルの作成と管理をサポート
CloudFormationからFargateプロファイルを作成できるようになりました。
[12月] Firelensサポートでログ転送が楽に
Amazon EKS adds built-in logging support for AWS Fargate
Fluent Bit for Amazon EKS on AWS Fargate is here
待望のFirelensサポートですね。
sidecarの実装なしにpodのログをCloudwatchやElasticsearch、Kinesisなど様々なサービスに転送することができるようになります。
Kubernetesバージョンのサポート状況の遷移
本記事執筆時点での最新バージョンは1.18で、Kubernetesのバージョンサイクルに追従しておおよそ3か月ごとにサポートバージョンが追加されています。
同時期にサポートされるバージョンは四つで、新しいバージョンのサポートと入れ替わりで古いバージョンが廃止されていきます。
[3月] 1.15
Amazon EKS で Kubernetes バージョン 1.15 のサポートを開始
[4月] 1.16
Amazon EKS で Kubernetes バージョン 1.16 のサポートを開始
[7月] 1.17
Amazon EKS で Kubernetes バージョン 1.17 のサポートを開始
[10月] 1.18
Amazon EKS で Kubernetes バージョン 1.18 のサポートを開始
ちなみに弊社での話ですが、一年前に作成されたEKSクラスター(バージョン1.14)をバージョンアップせずに運用し続けた結果、サポート切れ直近に最新バージョン(1.18)のクラスターに洗い替えしたのが記憶に新しいです。
このようなことにならないようにバージョンアップは都度実施していけるように気をつけましょう。。。
この話はまた別の機会に詳しく語れればと思います。
おわりに
振り返ってみるとたくさんのアップデートがありましたね。
どんどんと使いやすさが増していますし、まだまだ開発は活発に進んでいるはずなので今後のアップデートにも期待です。
なお、EKSをはじめAWSのコンテナ関連サービスのロードマップはContainers Roadmapで確認することができるので要チェックです。
また、技術書典9に出展した「iCARE Tech Book」でEKSクラスターの構築方法について執筆したので、ご興味あれば是非ご覧になってください。
ダウンロードはこちらから(無料です)
最後に、iCAREでは一緒に働いてくれるエンジニアを絶賛募集中です!
先日15億円を調達して勢いを増している環境で共に成長しましょう!
募集はこちらから