chroju.dev/blog

the world as code

EKS 学び始めに使った資料のまとめ

EKS を今年はじめぐらいから調べて使い始めているのだが、それにあたって参考にした資料群を一度まとめておく。

EKS 全体

AWS がオフィシャルで提供する Workshop がハンズオンしながら学べてわかりやすい。ドキュメントを脇に携えつつ、まずはこれの「Beginner」にあるコンテンツを全部通すといい感じになれる。「Intermediate」「Advanced」の内容は人によって要不要が分かれるので、各項で何が学べるのか調べつつ、不要であれば飛ばしてもいいかもしれない。

2つ目に挙げている mumoshu 氏の資料が情報量多くてすごい。EKS を使う上で考えなくてはならない点がかなり網羅されている。この資料を読んで、「何言ってるかわからない」と感じるページが無くなるように学習を進めたりしていた。ただし1年前のものなので、一部内容が古くなっている点は注意。

EKS on Fargate

ちょうど Fargate が EKS 対応してすぐの時期にあたり、 Fargate を採用するべきか、採用するのであればどのような場面で採用するべきかを考えた。 Fargate って Fargate 以前の EKS と比べてどうなの?という点については前者2つの URL が参考になった。最後のエントリーは Fargate とは何者なのか?ということを知る上で勉強になるのだが、まだ半分ぐらい理解できていない自覚がある。

EKS 特有の観点

Kubernetes ではなく、 EKS にしか存在しない特有の観点というものがいくつかある。

IAM Roles for Service Accounts (IRSA)

Kubernetes の権限管理の仕組みである Service Accounts と、 AWS の権限管理サービスである IAM を連携した仕組みが IRSA 。導入が2019年9月と比較的最近であり、資料はまだ少なめな印象がある。また IRSA 登場以前に書かれたエントリーでは、 kube2iam など別のソリューションがベストとされていることもあり、注意したい。現時点では IRSA を基本的には使えばいいと捉えている。

Amazon VPC CNI Plugin

EKS には CNI として VPC と連携するためのものがデフォルトインストールされている。あまりこれに特化して解説した資料が見つからなかったのでひたすら公式を読んでいる。 Calico の導入方法にも触れられている。

kubectl

これも2019年5月と比較的最近のリリースで、 aws-iam-authenticator を勧めるのはすでに old な方法になっている。現状は aws eks update-kubeconfig を打つだけで ~/.kube/config が更新されて kubectl が使えるようになる。シンプルで好き。

監視

EKS 特有の監視方法やプラクティスは Datadog blog を参考とした。 Datadog はこれに限らず、システム監視について体系的にまとまった記事を量産していていつもお世話になっている。

Kubernetes 自体の監視については 我々は Kubernetes の何を監視すればいいのか? | はったりエンジニアの備忘録 を読んだりしたが、まだはっきり答えが出せていない。調べているとよく名前を見かける kubernetes-retired/heapster がすでに Deprecated になっていたり、変化も激しい。

Kubernetes 全般

Google Cloud Blog

Kubernetes 自体のプラクティスについては、やはり Google のほうが豊富に資料を用意している。特に Kubernets best practices の各記事は一読しておいて損はなさそう。どう使えばいいのか迷ったらここを読む感じにしていた。

書籍

いずれも O'Reilly online learning で読んでいる。全部通読したわけではなくて、何か調べたいことがあったときに逐次辞書のように引いている。特に1番目の『Cloud Native 〜』は Kubernetes の初歩から始まり、 Kubernetes cluster をどのように運用していくのか、カオスエンジニアリングやシークレット管理の話、デプロイまわりなどかなり幅広くまとまっていておすすめ。1つのベンダーにとらわれることなく、各種 OSS や SaaS に少しずつ触れているので、cluster 運用に活用するツールの比較検討を進める端緒として使いやすい。最近日本語版も出ている。

Kubernetesで実践するクラウドネイティブDevOps
Kubernetesが標準プラットフォームであるクラウドネイティブの世界でアプリケーションを開発し運用する方法を解説する書籍です。 はじめに、Kubernetesの概要と背景、ソフトウェアの開発と運用にKubernetesがもたらす変化、コンテナの動作原理、コンテナの構築および管理方法、クラウドネイティブなサービスおよびインフラの設計方法などの基礎を紹介します。 そしてKubernetesアプリケーションの作成とデプロイ、Kubernetesクラスタの設定と運用、クラウドインフラの自動化、Helmなどのツールを用いたデプロイについてサンプルコードを使って学習します。ロールベースのアクセス制御(RBAC)をはじめとした、セキュリティ、認証、パーミッションなどに対するKubernetesのサポートや、本番でコンテナとKubernetesの安全性を確保するためのベストプラクティスについても学びます。 さらにKubernetesで継続的インテグレーションと継続的デプロイをセットアップする方法、データをバックアップおよび復元する方法、クラスタの適合性や信頼性をテストする方法、監視・トレーシング・ロギング・メトリクスを集約する方法、Kubernetesインフラの拡張性・耐障害性・費用対効果を高める方法を解説します。 Kubernetesの基本から、継続的デプロイ、機密情報管理、オブザーバビリティなどの高度なトピックを扱う本書は、サーバ、アプリケーション、サービスを管理するIT運用者、クラウドネイティブサービスの構築や移行を行う開発者必携の一冊です。
Kubernetesで実践するクラウドネイティブDevOps favicon https://www.oreilly.co.jp//books/9784873119014/
Kubernetesで実践するクラウドネイティブDevOps

あとデプロイ(CI/CD)まわりもいろいろ読んだと思うのだけど、どれを読んだかちょっと思い出せなくなってしまった。