EKS を簡単に構築するための CloudFormation

結論

AWS EKS 環境を簡単に構築するための CloudFormation を書いた。

動機

AWSKubernetes、EKS のチュートリアルは結構手間が多い
Amazon EKS の使用開始 - Amazon EKS
aws-cli を駆使して自動化する試みもある
qiita.com
が、そもそも VPC だの Role だのは CloudFormation としてまとめて作ってしまえば良いのではないかと思い CloudFormation を書いた。

CloudFormationファイル

github からダウンロードできる
https://raw.githubusercontent.com/ororog/eks-cloudformation/master/eks.yml

この CloudFormation を使った場合のインストール手順

こちらを開いてスタックの作成を選ぶ。
https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks?filter=active

テンプレートを Amazon S3 にアップロードを選択して、先程の yaml ファイルを選択する

f:id:ororog:20181210190940p:plain
アップロード

次の画面では、以下の赤枠の箇所を埋める

f:id:ororog:20190103223316p:plain

スタックの名前は任意の名前で、eks-stack とでもしておけばよい。
KeyName は事前に作っておく必要がある。
Amazon EC2 のキーペア - Amazon Elastic Compute Cloud
ここなどを参考に、先に作っておく。
NodeImageId は、リージョンによって変更する。東京であればデフォルトのまま、それ以外であれば説明に従って選べばいい。
ちなみに、東京リージョンの AMI はなかったのでコピーして作った。

NodeAutoScalingGroupMaxSize はあとで変更するので、最初は0で良い。
クラウドフォーメーション作成時は EKS が立ち上がっていないため、Node を追加することができないため、このようにしている。

以後のページは特に変更する必要はない。そのまま作成。しばらくするとステータスが CREATE_COMPLETE になる
f:id:ororog:20190103224050p:plain

CREATE_COMPLETE になったあとは、スタックの更新から NodeAutoScalingGroupMaxSize の数を変更する
f:id:ororog:20190103224703p:plain
「テンプレートの選択」では、そのまま次へを選択し、
次の画面の「パラメータ」で、数を変更。とりあえず1で良いと思う。
f:id:ororog:20190103224938p:plain

これで以下の手順のステップ1はすべて終わる。あとはステップ2以降に従って進めれば良い。
Amazon EKS の使用開始 - Amazon EKS

まとめ

EKS に必要なリソースを簡単に作成できるようにした