APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

入門Azure Bicep 3

f:id:turtle2005:20210609141446p:plain

APC 亀崎です。前回に続き、第3回になります。

複数リソースをデプロイする

Azure BicepはAzureリソースデプロイを宣言的に記述できるDSLです。Azureのリソースデプロイ用の定義ファイルARM(Azure Resource Management) Templateを拡張したものになります。

github.com

前回までのように1つのリソースをデプロイするだけならば、「ARM TemplateのJSONファイルよりはちょっとだけ見やすいかもしれない」程度の認識だったかもしれません。Bicepの本領発揮はもう少し複雑な定義をしたときです。

PostgreSQL関係リソースのデプロイ

前回に引き続きAzure Database for PostgreSQLをデプロイするユースケースを考えてみましょう。

PostgreSQLをデプロイする際、プライベートネットワークからのみアクセス可能にするといったことも一般的かと思います。この場合以下の内容を設定しなければなりません。

  • VNet作成
  • PostgreSQL作成
  • PostgreSQL用プライベートエンドポイント作成
  • 内部ネットワーク側アクセス用 Private DNSの用意
  • Private DNSへエンドポイントアドレスレコードを追加

今回はこれらの項目を一括してデプロイする定義ファイルを作成します。 作成したファイルはGitHubにて公開しています。

リソースとモジュール

Azure Bicepではモジュールという仕組みがあり、別ファイルで定義した内容を呼び出すことができます。上記の例ではVNetやendpointといった個別の要素を独立したファイルで定義し、それをまとめた1つのファイルをAzコマンドで呼び出すことで一連のリソースをまとめてデプロイするようにしています。

まとめファイル

deploy azure database for PostgreSQL with private…

前回あった resource の代わりに module という指定が見えると思います。これらが別ファイルを呼び出している部分です。postgresqlの定義は postgresql.bicep ファイルに、VNetについては vnet.bicep にと、それぞれわけて定義することで内容の見通しがよくなり、再利用もしやすくなります。またそれを module でまとめていくことで一連のリソースをまとめてデプロイすることが可能になります。

今回のPostgreSQL リソースは以下のコマンドでデプロイできます。とても簡単ですね。

# Resource Group作成
az group create --name rg-sample --location japaneast

# postgresql関連リソースデプロイ
az deployment group create -f ./deploy.bicep -g rg-sample \
  --parameters adminUser=<admin user name> adminPassword=<password>

今回はまず全体像をご紹介するところに留め、次回は個別の解説をしていきたいと思います。