1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、AzureのInfrastructure as Code(IaC)戦略について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、AzureをInfrastructure as Code(IaC)で管理したいときに、参考になる情報やプラクティスをまとめています。
3. AzureのIaCの選択肢
AzureのInfrastructure as Code(IaC)のベストプラクティスについて考えていきます。
Infrastructure as Code(IaC)とは、クラウド上のITインフラの構成管理をファイルで定義し、構築などを自動化するプロセスのことです。
①ARMテンプレート
Azure Resource Managerテンプレートの略語で、JSON形式で記載されているファイルです。
PowerShellやAzure Cloud Shell、VMやローカルなど、Azureコマンド実行でリソースをデプロイします。
メリットとしては、Azure公式のためWeb上にナレッジが豊富で、トラブルシュートも容易です。
デメリットとしては、やや可読性に欠け、運用難易度が高いことが挙げられます。
②Terraform
TerraformはHashicorp社が提供するInfrastructure as Code(IaC)ツールで、HCLという独自言語を利用します。
こちらもコマンドでデプロイするため、Azure Cloud Shell、VMやローカルからのAzure CLIでリソースを構築します。
メリットとしては、AWSやGCPなどのマルチクラウドに対応していること、可視性が高いことなどが挙げられます。
デメリットとしては、Azure公式でないこと、認証情報を管理する必要があること等があります。
4. ARMテンプレート vs Terraform 実際のコードの比較
それでは、実際に同一リソースをARMテンプレートとTerraformで記載するとどうなるかを比較していきます。
ARMテンプレートとTerraformでVnetを作成してみます。
まずはARMテンプレートを見ていきましょう。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-05-01",
"name": "test-vnet",
"location": "japaneast",
"properties": {
"addressSpace": {
"addressPrefixes": [
"172.16.0.0/16"
]
}
}
}
]
}
続いてTerraformです。
こちらのがやや可視性は高いでしょうか。
provider "azurerm" {
features {}
}
resource "azurerm_virtual_network" "example" {
name = "test-vnet"
location = ”japaneast”
resource_group_name = "${リソースグループ名}"
address_space = ["172.16.0.0/16"]
}
5. 引用・参考記事
6. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
7. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。