IstioでgRPCのリクエストを振り分ける

前回 はIstioでHTTPのリクエストを振り分けていたので,今度はgRPCを扱ってみようと思う. といっても基本的な構成はそんなに変わらない.

前回とほとんど同じような環境を使うので,

  • Helm
  • Istio
  • Auto injection

あたりの設定は終わっているものとする. また,今回も基本的にクラスタ内でマイクロサービス間通信を扱うことを前提にするため,外部との接続は行わない.

続きを読む

IstioでHTTPのリクエストを振り分ける

前回の記事で,Envoyの話をした. Envoy,すごく便利なのだがこの設定を全コンテナごとに書いてやるのはなかなかにめんどくさい. せっかくSidecarなのでもっと楽に差し込めたら良い.

あと,せっかくEnvoyを使っているので,static_resourcesだけじゃなくdynamic_resourcesをつかったカナリアリリースとかやってみたい.

というわけでIstioを使ってみる. この分野だとIstioは非常に筋がいいのだが,いまいち枯れてないので,本番導入するのはちょっと悩む……

Istio関連だと,公式で出しているBookinfoというアプリケーションを 動かしてみた という記事はたくさん見かけるんだけど,自分のアプリケーションでIstio組み込んだ記事が非常に少ない.

istio.io

ので,今回は自分で作ったサンプルアプリケーションをIstioの上で動かしてみる.もちろんKubernetesクラスタは構築済みという前提で話をすすめる.

続きを読む

EKSのノードをSpot Fleetで構築する

EKSをterraformで作っている.そうするとEKSのノード群をAutoscalingGroupで構築する例は出てくるのだが,これをSpotFleetを使って構築しようと思う.

続きを読む

AWS ECS上にErlang(Elixir) Clusterを組むためのツールを作った

PhoenixをDockerに乗せてAWS ECS上で運用している. PhoenixはPubSubの機構を持っているが,このバックエンドは,デフォルトではPG2というErlangクラスタ内のプロセス間通信を前提にしたものになっている.

ECSのようなDockerクラスタ上にPhoenixを載せる際は,たいていこの部分をPG2ではなくRedis等にして,Erlangクラスタは構成できないがRedisを介してPubSubのメッセージがやり取りできる状態を作ったりする.

ただ,Redisバックエンドはいまいち安定しないという噂と,そもそもErlangVM自身がそういう機能を持っており,バックグラウンドプロセスを分散できるのであればそれを活用したくなるものである.

というわけで,あえてErlangクラスタを作りたくなった.

続きを読む