はじめに
こんにちは。NewITソリューション部です。
クラウドインフラの管理や構築をコードで自動化する「Infrastructure as Code(IaC)」の考え方は、近年のクラウド活用で欠かせないものとなっています。
Azureでは従来からARMテンプレートが使用されてきましたが、複雑な記法のため習得や保守が難しいです。そこで登場するのがBicepです。Bicepはシンプルな宣言でAzureリソースをデプロイできるMicrosoft公式のドメイン固有言語です。
この記事では、Bicepの基本的な書き方から、実際にデプロイしてみるところまでをまとめました。参考になりましたら、幸いです。
Bicepの書き方の基本
Bicepファイル(.bicep)は、リソースごとに簡潔に記述します。
以下は、ストレージアカウントを作成する簡単な例です。
resource symbolicname 'Microsoft.Storage/storageAccounts@2024-01-01' = {
name: 'mystorageaccount'
location: 'japaneast'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Bicepの基本の流れとして、デプロイしたいリソースをresourceで宣言し、リソースの種類に応じて様々な設定値を埋めていく流れになります。
リソース毎の設定値に関してはMicrosoftの公式ドキュメントを参照して下さい。
また、Bicepでは変数や実行時のパラメータを宣言することができます。
var storageName = 'mystorageaccount'
// 指定しない場合、規定値が使用される
param sku string = 'Standard_LRS'
resource symbolicname 'Microsoft.Storage/storageAccounts@2024-01-01' = {
name: storageName
location: 'japaneast'
sku: {
name: sku
}
kind: 'StorageV2'
}
varで宣言するとファイル内で変数として使うことができます。
paramで宣言すると実行時のコマンドでパラメータとして指定することができ、指定しない場合はコード内で代入された値がデフォルト値として使用されます。
また、パラメータのデフォルト値はパラメータファイルとして別出しすることができ、.bicepparamで宣言できます。
ハンズオン
それでは、実際にAzureリソースをデプロイしてみます。
まずはBicepをインストールします。
az install bicep
作業ディレクトリ内で、main.bicepファイルを作成し、先ほどのコードを保存します。
var storageName = 'mystorageaccount'
// 指定しない場合、規定値が使用される
param sku string = 'Standard_LRS'
resource symbolicname 'Microsoft.Storage/storageAccounts@2024-01-01' = {
name: storageName
location: 'japaneast'
sku: {
name: sku
}
kind: 'StorageV2'
}
ログインし、サブスクリプションを指定します。
az login
az account set --subscription [サブスクリプション名またはID]
az account show
リソースグループを作成します。
az group create -l japaneast -n rg-bicep-test
以下コマンドでデプロイします。
az deployment group create --name biceptest --resource-group rg-bicep-test --template-file ./main.bicep
まとめ
Bicepは、Azure環境のIaCを簡単に始めるための最適なツールです。
従来のARMテンプレートに比べて学習コストが低く、業務でのIaC活用を加速させることができます。
まずは簡単なリソースデプロイから試して、チームでの開発に組み込みながら、より高度な活用へとステップアップしてみてはいかがでしょうか。
最後に、弊社にご興味をお持ちいただけましたらお気軽にお問い合わせいただけると幸いです。