話題の記事

【EKSWorkshop】EKSやkubernetes周辺を効率よく学ぶのにオススメなチュートリアル集

底なし沼のEKSやKubernetesを学ぶにあたって、そのよき道標となってくれるワークショップの紹介です。
2019.06.04

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

( ´・ω・`)_且~~

EKSWorkshopとは

Amazon EKS Workshop :: Amazon EKS Workshop

AWSが提供するWebを使って学べる、EKSのワークショップ。VPCやALBやEC2のワーカーノードの構築含めて、いろんな観点からEKSを学ぶことができます。

また、EKSやAWSマネージドサービスだけではなく、Helm,Istio,Prometheus and Grafanaなどといった、kubernetes周辺の代表的なツールもこのワークショップに含まれているのが一番の特徴。まさに王道が揃い踏み。

もちろん、AWSのワークショップなので、マネージドサービスのAWS X-Rayや、App Meshも含まれています。

元がWorkshopなので、基本的には全て手を動かしながら学ぶことができて、物凄くありがたい!この後、ハマコーが気になったメニューを紹介していきます。

「Introduction」

Introduction :: Amazon EKS Workshop

ここは、EKSの前段、kubernetesの概要を学ぶことができます。基本座学ですが、Kubernetesの基礎からそのアーキテクチャ、そしてEKSがKubernetesのどの部分をカバーしているのかが、コンパクトに纏まっています。

代表的な用語には、都度、Kubernetes公式ドキュメントにリンクがあるので、詳細を深掘りしやすいのも良いです。

(引用元:https://eksworkshop.com/introduction/architecture/architecture_control_and_data_overview/)

「Amazon EKS」

Amazon EKS :: Amazon EKS Workshop

(引用元:https://eksworkshop.com/introduction/eks/eks_customers/)

ここから、実際にEKSクラスターを作成していきます。EKSクラスターを作成するとき、後ろ側ではクラスターの作成以外にもWorkerノードのプロビジョニングやネットワークの各種設定が一括で実施されるため、結構わかりにくくブラックボックスになりがち。

そのあたりを、上で学んだKubernetesの基礎知識にそって、EKSだとどのように動作しているのかを解説してくれるのがポイントです。

ここ、めっちゃ図が多いです。それはそれで、クラスターをWorkerノードがどうやって通信しているのかなどを概要抑えることができるので、eksctlでプリッと構築しちゃった人も、一度目を通しておくことをオススメします。

「Start the workshop」

Start the workshop... :: Amazon EKS Workshop

ここから、実際の手を動かすワークショップが始まります。ここで作業環境を作ります。

作業環境作るのに手間取るのってなにか新しいことを始めるときに致命的ですよね。一気にやる気を無くすと言うか。このWorkshopでは、AWSアカウントの作成方法からIAMロールの設定まで含まれているので、めちゃくちゃ親切です。EKS触ろうとしている人にはあんまりここまでの情報不要かなと思ったりしますが、前提知識から全てそろっているのは素晴らしい。

ひとつポイントなのは、作業環境でCloud9を利用しているところ。

Cloud9は、クラウド上で動くIDEとして利用できるもので、EKSWorkshopでは作業環境をこのCloud9で動かすことになります。

eksctlなどを手元の環境にさくっとインストールできる人であれば、Cloud9も別に必須じゃないですが、EKS触るのになれていない人は、まずは、作業環境を整えやすいCloud9でやってみるのもありですね。構築手順は非常に親切なので、丁寧にやっていけばハマるポイントもあまりないと思います。

「Deploy the Example Microservices」

Deploy the Example Microservices :: Amazon EKS Workshop

ようやく、実際にPodを配置してサービスを動かしていきます。サンプルは全てGitHubに上がっているので、kubectl applyをポチポチやっていくと、サンプルのマイクロサービスがデプロイされます。

ここで、kubernetesの要となるマニフェストファイルも合わせて学びます。一通りデプロイが完了するとこんな画面が表示されます。ELBから各AZのPodにリクエストが分散される様子がアニメーションで表示されて面白い。

サンプルを適用するだけだと、フーンで終わっちゃいますが、最小構成のマニフェストファイルから自分で徐々に学んでいくのもこのタイミングですね。以前書評を書かせていただいた、この書籍等をを参考にしながらあれこれ試してみてください。

書評「Kubernetes完全ガイド」Kubernetesを学ぶ全ての人にオススメしたい | DevelopersIO

「Helm」

Helm :: Amazon EKS Workshop

KubernetesパッケージマネージャーのHelmですよ。これ。このチュートリアルでは、Helmの基本的概念と、インストール。そのあと、Helmを利用したシンプルなNGINXのWebサーバーのデプロイと、さらにその先、洗練されたマイクロサービスのデプロイまで実施します。

パッケージマネージャーとして、最近はkubernetes-sigs/kustomizeも有名ですが、マニフェストファイルをパッケージングする技術としてのHelmをこのタイミングで触ってみるのも良いんじゃないでしょうか。

「Autoscaling our Applications and Clusters」

Autoscaling our Applications and Clusters :: Amazon EKS Workshop

EKSを構築する上で肝心要のAutoscaling設定について学びます。Horizontal Pod Autoscaler(HPA)Cluster Autoscalerは、必須の概念ですね。

それぞれの設定を、Helmを用いながら、デプロイしていきつつ動作を確認することができます。

「Using Spot Instances with EKS」

Using Spot Instances with EKS :: Amazon EKS Workshop

最近にわかに熱く感じているスポットインスタンス。ここでは、EKSクラスターの中でスポットインスタンスを使うことで、具体的にどのように設定することで、EKSクラスターをコスト最適化しながらスケールさせることができるかを学ぶことができます。

「Monitoring Using Prometheus and grafana」

Monitoring using Prometheus and Grafana :: Amazon EKS Workshop

今をときめく監視アプリケーションのPrometheusGrafanaによる監視設定のチュートリアル。

Helmを使った、Prometheus、Grafanaのインストールからダッシュボードの確認まで、一通り解説されているので、ちょっと手を動かして実際にどんな監視ができそうか試してみるのに良いんじゃないでしょうか。

「Batch Processing With Argo」

Batch Processing with Argo :: Amazon EKS Workshop

Kubernetes向けのGitOpsによるCDを標榜するArgo CD のチュートリアルです。

このチュートリアルでは、BatchワークフローをArgo CDを利用して実装する手順が紹介されています。

「Service Mesh With App Mesh」

Service Mesh with App Mesh :: Amazon EKS Workshop

AWSマネージドのIstioといえる、AWS App Meshのチュートリアル。

App Meshを理解するのに必要なサンプルアプリケーションの作成と、サイドカーとしてのApp Meshの導入。サンプルアプリケーションへの導入とテストから、最終的にカナリアデプロイまで含めたチュートリアルが詳細に解説されています。

EKSWorkshopがオススメな理由3点

というわけで、ざざーっとめぼしいところから、どんな内容が入っているか紹介させてもらいました。

オススメ①「実行環境含めて最初から全て説明してくれる」

kubernetesの実行環境をきちんと用意するのって、すごい手間なんですよね。ローカルマシン内でだけ動作させるんだったら最近は便利なツールが出ていますが、クラウド上にクラスタを展開して検証環境を用意するのは、なれていないとハードルが高い。

そこらへん、AWSのアカウント取得からCloud9での環境構築まで、全て丁寧に解説してくれているので、引っかかる要素が少なく、安心してAWS上でKubernetesやEKSを検証することができます。

オススメ②「メニューの網羅性が高い」

およそ、Kubernetesを扱う上で知っておくべきこと、検証すべき関連ツールや概念などが網羅的に含まれているのが良いです。

  • マニフェストファイルの管理
  • 監視、モニタリング
  • CI/CD
  • サービスメッシュ
  • 分散トレーシング
  • セキュリティ
  • サービスの公開方法

それらの関連項目について、具体的なオープンソースやAWSのマネージドサービスを利用しての概念説明やチュートリアルが含まれているので、参考になりますね。これを起点に各サービスの検証を深めていければ良いと思います。まずは最初の感触を掴むのが非常に楽。

オススメ③「一つ一つのメニューがコンパクト」

それぞれのメニューが、コンパクトに纏まっているのが使いやすいです。各サービスの概念や概要説明から、実際に手を動かして導入して感触を掴むまでのところが簡潔にまとまってます。

もちろん、このチュートリアルをやるだけで、即本番運用するだけの知識が手に入るわけではないですが、まずは「これ、どないなもんやねん」と試してみるのに非常に使いやすいと思うので、一度触ってみていただくことをオススメします。

関連知識を膨大に必要とするEKSにおける良き羅針盤として

散々言われていることですが、EKS(Kubernetes)の運用に必要な知識は膨大にあり、学習コストが高いのは事実です。AWSのコンテナマネージドサービスのECSに比べても、周辺事象として知っておくべきことはどうしても多くなりがちです。

もちろん、全ての環境で全ての完璧な知識が必要というわけではないですし、スモールスタートから徐々に始めていくので良いのですが、そういったときにこのWorkshopを使いながら、徐々にいまの運用をブラッシュアップしていくための道標として使ってみるのが良いんじゃないでしょうか。

もちろん、初めてEKSを触ろうとする人にも非常に有用なドキュメントなので、皆さんのEKS運用の良きチュートリアルとなってくれると思います。

それでは、今日はこのへんで。濱田(@hamako9999)でした。