C#でawsのalb用にヘルスチェックを実装する方法

MagicOnionで動くサーバーアプリケーションをデプロイしていて、albのヘルスチェックを通す必要があった。C#で実装自体はやり方が書いてあって learn.microsoft.com

builder.Services.AddGrpcHealthChecks()
    .AddCheck("sample", () => HealthCheckResult.Healthy());
app.MapGrpcHealthChecksService();

でヘルスチェックを実装できることは分かった。ただ、公式ページにはC#でヘルスチェックを呼び出す方法はあったが、AWSのALB(厳密にはターゲットグループ)でヘルスチェックを通すためにどうすれば良いかわからなくてちょっと躓いたのでメモ

単にパスに

/grpc.sample.v1.Health/Check

と指定すればよいだけだった。grpcのヘルスチェックの実装には仕様があり、

github.com

その仕様によるとCheck()を呼び出すことでヘルスチェックができる。ターゲットグループのパスはhogehoge.co/index.htmlの /index.htmlと同等で、通常のwebアプリならヘルスチェックようのエンドポイントを用意してそれを指定すればよいが、grpcの場合は特殊な記法が指定する必要があってこのような記載になっているらしい