LoginSignup
0
1

More than 5 years have passed since last update.

AWS EKS を AWS CDK で立てる

Last updated at Posted at 2019-03-03

(2019-04-22 追記) 下記のエラーが出るようになっていた。 tsconfig.json を修正

../../../../node_modules/@types/graphql/subscription/subscribe.d.ts:36:13 - error TS2583: Cannot find name 'AsyncIterator'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

36 }): Promise<AsyncIterator<ExecutionResult<TData>> | ExecutionResult<TData>>;

AWS CDK(Cloud Development Kit) で、 EKS(Elastic Container Service for Kubernetes) の Cluster を立ててみたけど、思いのほか苦労したので、これを見た誰かがより良い情報を発信してくれたら、自分が助かるなとの目論見で書く。

現在 AWS CDK は

このドキュメントはAWS CDKの開発者プレビューリリース用です。本バージョンでAWS CDKのこのバージョンを使用しないでください。その後のAWS CDKのリリースには、重大な変更が含まれる可能性があります。

引用: Reference — AWS Cloud Development Kit (Google 翻訳)

だそうです。下記でごちゃごちゃ言ってるかもしれないけど、この前提は一応頭にはあります。
ドキュメントよりは、AWS CDK のソースコード眺めてたことが多かったな。

EKS Cluster 用に書いた CDK のソースコード

README を見てもらえれば、クラスター作成まではいくはず。情報足りなければ指摘欲しいなと。
moofish32/cdk-eks-example を非常に参考にさせてもらっている。

上記ソースコードの注意点

README にも書いたけど

  • AWS CDKv0.24.1 で確認したもの。
    • 書き始めた時は、 v0.22.0 だった気がするけど、気がついたら v0.24.0 にアップデートされて、 v0.24.1 になるまで、ドキュメント がバグってた。って、書いてたら v0.25.0 になってた。
  • Security Group や Policy はずぶずぶに緩い。
    • ここは AWS の Quick Start とかに合わせたいけど、現状では断念。。 cfnXxxxxx なやつ使えばできるのかも。
  • Public Subnet のみの対応。
    • Private Subnet もできると思うけど、現状は、Bastion とか NAT Gateway/Instance などの料金を節約したい状況のため、一旦ほっておいてる。
  • インスタンスのタグも CDK で付けたかったけど、今は Userdata のスクリプトで対応。
    • Userdata での対応が正解と思えず。。これも cfnXxxxxx 使えばできるのかな?
  • パラメータで変更できない固定値(ハードコーディング)がある。
    • これ自体はたいした問題ではないけど。
  • EBS の容量が指定できない。
    • これも cfnXxxxxx なのか。見逃しているのか。
  • 1 つのEKSに、Auto Scaling Group が複数作れるのかと思い込んでいるので、 CDK を 2 つに分けている。
    • 試せばすぐに分かるんだけどね。
  • 最近コーディングあまりしていない、過去に Cloudformation で苦しんだ TypeScript 初心者が書いている。

まとめ

素直に eksctl 使えと言われそうだ。
TypeScript は初体験だけど、良かった。
v0.25.0 で確認しなくては。。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1