##はじめに
本記事では、Udemy にて Stephane Maarek 氏 が提供している「Amazon EKS Starter: Docker on AWS EKS with Kubernetes」 について紹介したいと思います。
※注意
本コースでは、様々な AWS サービスを利用することになるので、請求金額には気をつけておく必要があります(コース内で Stephan 氏自身も、請求金額には気をつけるようにと述べております)。そのため、使わなくなったサービスやインスタンスの停止や削除、サービスの稼働時間をなるべく短くするなどして、本コースに取り組んで頂けたらと思います。
##Introduction
Amazon EKS はマネージド型のサービスで、AWS 内で Kubernetes を実行することが可能となるサービスです。
Amazon EKS のユースケースとしては、以下が考えられます。
- ユースケース毎にクラスターを作成
- コンテナ内にマイクロサービスを用意
- オンプレクラスターからクラウド Kubernetes クラスターへ移行
- ML クラスターの用意
##Set Up
それでは、 AWS EKS を利用する環境の準備をしていきたいと思います。
環境自体は、図のように3つの AZ を準備し、それぞれの AZ に対して Master Node、Etcd、K8s worker node を用意します。
また、それ以外にも IAM ユーザなども用意する必要があります。
###IAM User
本コース用の IAM ユーザを作成します。基本的には root アカウントではなく、個別に作成した IAM ユーザを利用しましょう。
作成するIAMユーザには「AdministratorAccess」というポリシーをアタッチすることで、AWS 環境の全サービスを利用することができます。
作成が完了したら、作成した IAM User の「Security Credentials」を選択すると、「Create access key」という項目が表示されるので、そちらをクリックします。
「Create access key」をクリックしたら、csvファイルをダウンロードします。csvファイルはくれぐれも無くさないようにお願いします。
###IAM Role
次に IAM Role を作成します。K8s がAWS リソースを作成できるようにするためです。
「Roles」を選択したら、「Create role」をクリックして作成に移りましょう。
「EKS」を選択します。
「Role name」「Role description」を入力したら、「Create role」を選択します。
これで IAM Role の作成完了です。
###SSH
次に、SSH キーペアの作成を行います。
コンソール画面より EC2 の画面に移動して、「Key Pairs」を選択します。
「Create Key Pair」を選択して、キーペアの作成を行います。
作成が完了すると、pem ファイルがダウンロードされるので、ちゃんと保管しましょう。
##VPC
次は、VPCを作成したいと思います。図は、今回作成する AWS の全体構成図です。
- VPC:リージョンは us-east-1 を指定
- Subnet:3つ用意し、全て同じ VPC 内に用意
- Security Group:共通の内容で、IGW への接続が可能
###CloudFormation
今回は、 CloudFormation を利用して上記の AWS 構成図を用意します。
コンソール画面より CloudFormation を選択し、「Create Stack」から作成します。
テンプレートは、本コースを受講することでダウンロードが可能となるファイルの中に用意されているので、そちらを利用します。ファイル名は「eks-course-vpc.yaml」です。
ここでは、作成したスタックの名前を決めます。
スタック名を入力したら、Option は飛ばしていただき、Review で作成するスタックの内容を最終確認して、「Create」を選択します。これで、作成完了です。
##EKS Control Plane
次は、EKS 制御 Plane を作成します。
AWS コンソール画面より「EKS」を選択します。EKS の画面に飛んだら、「クラスター」を選択し、「クラスターの作成」を行います。
クラスター作成時には、以下の項目を埋めていきます。
- クラスター名:任意
- Kubernetes のバージョン:最新バージョンを使用
- VPC(サブネットも自動的に選択されます):CloudFormation で作成した VPC を選択
- ロール名:先程作成したものを選択
- セキュリティグループ:先程作成したものを選択
項目を全部埋めたら、「Create」を選択して作成完了です。
##Command line Cli tools の準備
次は Kubectl のセットアップを行います。
kubectl のインストールを行う際には、MobaXterm を利用するのがオススメですので、ぜひ利用してみて下さい。
インストールする項目は以下となります。それぞれ、AWS 公式より OS 毎に手順が用意されておりますので、そちらをご参照ください。
##Worker node の準備
Amazon EKS ワーカーノードはスタンダードな Amazon EC2 インスタンスです。
EKS ワーカーノードを CloudFormation で作成します。
マネジメントコンソールから、CloudFormation を検索し、「Create Stack 」を選択します。
本コースでダウンロードしたコードファイルから、「eks-course-nodegroup.yaml」を選択して、アップロードします。
後は、インスタンスタイプなどを選択し、確認画面で内容を確認したら「Create」を選択して作成完了です。
EC2画面に移ると、3台のワーカーノードが作成されたのが確認できます。
###おわりに
これで、無事に環境を用意することができました。
次回は、EKS のより詳しい内容についてお話しして行きたいと思います。