ある企業がAzureでDevOpsパイプラインを構築しており、CI/CDによってAzureリソースを自動デプロイしたい。Azureのリソースをコードとして定義し、繰り返し一貫性のある形でデプロイするInfrastructure as Codeの標準ツールとして、Azureネイティブなものはどれか。
- A. ARM(Azure Resource Manager)テンプレートまたはBicep:Azureリソースを宣言的に定義するAzureネイティブIaCツール
- B. Terraform:HashiCorpのオープンソースIaCツール(マルチクラウド対応)
- C. Docker Compose:コンテナアプリの定義・実行ファイル
- D. Ansible:エージェントレスの構成管理ツール
解答と解説を見る
正解: A
ARM(Azure Resource Manager)テンプレート(JSONフォーマット)とBicep(ARMテンプレートのドメイン特化言語で可読性が高い)はAzureリソースを宣言的に定義するAzureネイティブのIaCツールである。AzureポータルからもARMテンプレートをエクスポートできる。Bicepは現在Microsoftが推奨するAzureネイティブIaCの主流ツールとなっている。選択肢BのTerraformはマルチクラウド対応のIaCツールとして広く使われているが、Azureネイティブのツールではなくサードパーティ製品。選択肢DのAnsibleはIT自動化・構成管理ツールで、IaCとして使えるが、AzureネイティブではなくAzureリソースの宣言的な定義にはARMまたはBicepが最適。選択肢CのDocker ComposeはコンテナのマルチサービスデプロイをYAMLで定義するツールで、Azureクラウドリソース(VM・DB・ネットワーク等)のプロビジョニングには使用しない。