GKEについて軽く学んでみる
なぜGKEを学ぶか
GAE、Cloud Runで済ませたいと思っていたものの
- 既にあるSidekiq(ジョブキュー)のサーバを移そう思った時に、キューの長さでオートスケールするようにというのが自然に実現できなさそう
- StatsDのようなものを自然に置くのが難しそう
などがあって、一応GKEもざっと学んでみることに。
あまりに学習コストが高そうだったら撤退すると思う。
をやっていく。内容をそのまま書くわけにもいかないし、あまり書かないで終わるかも。
4コースからなっている。
Google Cloud Platform Fundamentals: Core Infrastructure
他のコースの過程で既にやっていた。GCPを概観するやつ。
Architecting with Google Kubernetes Engine: Foundations
- GCPの概観
- なぜコンテナ ?なぜKubernetes?
- Kubernetesざっくり
- どんなアーキテクチャか
- GKEだと、どこを気にしなくていいか
- 使う時に必要な大きい概念
Architecting with Google Kubernetes Engine: Workloads
Kubernetesのイカしたメンバーをひたすら紹介される。講義は量も結構あるし退屈でつらめ。Kubernetesは登場人物がかなり多く、すぐに使わないかもというものも結構あるので、実際にWebサービスを動かそうとしてみる→必要な要素を学ぶ、とlazyにやっていったほうが辛くなさそう。
このコースに限らない話ではあるけど、Qwiklabsで、GCPのコンソールを実際に使いながら学べるところはいい。ただ、どうやってもクリアできないLabがあって悲鳴をあげている人がいっぱいいた( あげた)。Qwiklabsに問い合わせたところ、バグで直してくれるとのこと。Clusterを作ったりする待ち時間が結構ある上に、絶対クリアできないのは理不尽で泣いた。
このコースは人には薦めない。
ここまでやってみたところでの感想
GKE便利そうではある。
Kubernetes上の語彙で「これが欲しい」というと、GCP上で勝手に調達してきてくれるというのは便利。GKEを使うことで、直接使う必要がなくなるGCP上のサービスもたぶん結構ある。GCPには色んなサービスがあるけれど、そのサービスが1段階抽象化されたリソースとして扱えるということで、GCPの各サービスに詳しくないほど、より便利に感じるかもしれない?EKSでもある程度そのまま使えるのかな?
Kubernetestには運用上便利そうなものが揃っているなというのは理解した。今consul使ってやっているようなものも元々入っているし、ロードバランサーもオートスケールも定期実行もなんでも入っている感。
自分で設計する大変さ、実際運用する大変さはまだ全くわからない。
Architecting with Google Kubernetes Engine: Production - Home | Coursera
- セキュリティ
- Logging, Monitoring, Probes
- GCPのサービスとの連携
気になる部分の情報が結構多かった。
ここまでやってみての感想
GKEは、GCPの中に小さいGCPがあるという感じで、二重の管理が発生してしまう部分はちょっと大変そうだなと思った。
GKEを知らない状態で新規に作るなら、ジョブキューにあたるものもHTTPベースにして(Cloud Pub/Sub | Cloud Tasks) + (Cloud Functions | Cloud Run)とかで作る方が、楽に済むかなという気がする。
ただ、既にあるものを移す先としてはGKEありかもなと思った。GKE上で統一管理できるというのも良さそうだし。
事前のイメージでは、microservicesとかが適しているような規模じゃ無ければ見合わない複雑さなのかなと思っていたけれど、そんなこともないかもな?試しにRailsアプリを動かすところまでやってみる。