銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Radiusを知る(3) Recipeを試す

前回に続いてTutorialを進めていきますが、Daprのチュートリアルが一部動かなかったのでRecipesを試してみました。

docs.radapp.io

RadiusではRecipeを使ってインフラのデプロイを自動化することで、インフラチームと開発者間の懸念事項の分離を行います。開発者は必要なもの(Redis、Mongoなど)を定義し、インフラチームのオペレーターはそれがどのようにデプロイされるか(Azure/AWS/Kubernetesインフラストラクチャ)を定義します。 Reidsを例にして次の図がRecipeの説明に載っています。RedisサービスとしてAzure Cache for Reidisを選べるというだけでなく、Private Endpointなどその他必要なクラウドサービスも定義できるようです。

https://docs.radapp.io/guides/recipes/overview/recipes.png

今、Tutorialの中で使っているRecipeは「local-dev」と呼ばれる軽量なものとも書かれています。実際にrad recipe listを実行して表示される利用可能なレシピはlocal-devなものです。

Tutorialの記載通りアプリを定義して展開すると、kubernetes上のコンテナとして起動されたMongodbに接続されていることがわかります。

Tutorialでは次に、Azure上のクラウドサービスと共に使うために以下のドキュメントに従ってAzureクラウドプロバイダーを登録することになっています。

docs.radapp.io

リソースを展開するサブスクリプションとリソースグループを指定して、RadiusがAzureリソースを操作するための権限をService Principalで設定しています。このとき、上のドキュメントにはrad credential register azureコマンドを実行してとしか書いていませんが、そのリンクのコマンドの説明を見ると、該当のService Principalには対象のリソースグループのContributorかOwner role権限が必要と記載されているので忘れずに設定しておきます。

docs.radapp.io

ここまで設定したら、アプリケーションの定義でRedisのレシピでAzureレシピを使うように設定してアプリを展開しなおすと、Azure Cache for RedisがRadiusによって作成されるのがわかります。

独自のレシピを作れるとも書いているので、そこはまた別途調べたいと思います。