ARM Templateを利用していく中で、Azure Resource Managerには2つのデプロイモードがあることを知りました。
今回は2つのデプロイモードについて調べてみました。
デプロイモードについて
Azure Resource Managerには「完全モード」と「増分モード」という、2つのデプロイモードがあります。
完全モード
完全モードでは、リソースグループに存在していてもARM Templateに存在していないリソースは、 ARM Templateデプロイ時に削除されます。
ただし、完全モードで削除されるかどうかはリソースによって異なるようです。詳しくは以下のドキュメントをご参照ください。
また、以下の場合では、まだ完全モード利用はサポートされていないようです。
- サブスクリプションレベルでのデプロイ
- Azureポータルでのデプロイ
- 入れ子になっているARM Template ※ルートレベルのARM Templateのみサポートされています。
増分モード
増分モードでは、リソースグループに存在していてもARM Templateに存在していないリソースは、 ARM Templateデプロイ時にリソースグループから削除されません。
既定のデプロイモードはこの増分モードとなります。
増分モードについて調べていく中で、誤解していたことがありました。
増分モードでリソースの設定変更をする際は変更したい箇所だけARM Templateに記載しておけば良く、既存の設定はARM Templateに記載しなくても再デプロイ時に設定は変わらないものだと勘違いをしていました。
実際には、増分モードで再デプロイする場合は全ての設定値が再適用され、ARM Templateで記載していない設定はデフォルト値に戻るようです。
そのため、ARM Templateには設定したいすべての設定値を記載しておく必要があります。
まとめ
今回は完全モードと増分モードの違いについてまとめてみました。
次回以降の記事では、実際に完全モードと増分モードの動作を確認していきたいと思います。