Terraformを使用したMicrosoft Azureへのリソースデプロイ ~part1~

Terraformとは、HashiCorpが提供しているIaaC(Infrastructure as Code)ツールになります。

AWS,Microsoft Azure,GCPなどのマルチクラウドに対応しています。

今回は、Terraformを使用したMicrosoft Azureへのリソースデプロイ自動化について解説いたします。

事前準備

Terraformのインストール

下記のサイトよりTerraformのインストールを実施します。

Install | Terraform | HashiCorp Developer

Azure CLIのインストール

Microsoft Azureへのログイン操作等に使用するため、Azure CLIのインストールを実施します。

Azure CLI をインストールする方法 | Microsoft Learn

Visual Studio Codeのインストール(推奨)

ソースコードエディターとして使用するため、Visual Studio Code(以下、VSCode)のインストールを実施します。

Download Visual Studio Code - Mac, Linux, Windows

Terraformファイルの作成

事前準備が完了したら、次にTerraformコードを記述した以下のファイルを用意します。

provider.tf

「provider.tf」は、どのクラウドプロバイダーを使用するかを定義するファイルです。

######################################
#Azure Providerの指定
######################################
terraform {
  required_providers {
    azurerm = {
      version = ">=2.68.0"
    }
  }
}

provider "azurerm" {
  features {}
}

maint.tf

「maint.tf」は、どのリソースをデプロイするかを定義しているファイルになります。

今回は以下のリソースをMicrosoft Azure上へデプロイします。

・リソースグループ

・VirtualNetwork

・Subnet

######################################
#resource groupの作成
######################################

resource "azurerm_resource_group" "rg" {
  name      =  "demorg01" #リソースグループ名を指定
  location  =  "japaneast" #リージョンを指定
}

######################################
#VirtualNetworkの作成
######################################

resource "azurerm_virtual_network" "virtualnetwork" {
  name                = "demovnet01" #VirtualNetwork名を指定
  resource_group_name = azurerm_resource_group.rg.name
  location            = "japaneast" #リージョンを指定
  address_space       = ["192.168.0.0/24"] #VirtualNetworkのアドレス空間を指定
}

######################################
#Subnetの作成
######################################

resource "azurerm_subnet" "subnet" {
  name                = "demosubnet01" #Subnet名を指定
  virtual_network_name = azurerm_virtual_network.virtualnetwork.name
  resource_group_name = azurerm_resource_group.rg.name
  address_prefixes = ["192.168.0.0/25"] #Subnetのアドレス空間を指定
}

 

上記Terraformファイルの作成が完了したら、任意のフォルダへ格納します。

今回はCドライブ直下に「terraform」というフォルダを作成し格納しています。

Terraformコマンドの実行

次に、Terraformコマンドを実行しリソースデプロイをしていきます。

VSCodeを起動し、画面左上のFile>Open FolderでTerraformファイルを格納したフォルダを選択します。

次に画面左上のView>Terminalを選択しTerminalを起動します。

az login

以下のコマンドを実行し、Microsoft Azureへログインします。

az login

terraform init

以下のコマンドを実行します。

terraform init

「terraform init」は、作業用ディレクトリを初期化するコマンドであり、Terraformを動かす際には必ず最初に実行する必要があります。

「Terraform has been successfully initialized!」と出力されたら成功になります。

terraform plan

次に以下のコマンドを実行します。

terraform plan

「terraform plan」はterraformによる実行計画を参照するコマンドあり、どのリソースが追加・変更・削除されるかが分かります。

今回は3つのリソースが追加されるため、「Plan: 3 to add, 0 to change, 0 to destroy.」と出力されていればOKです。

terraform apply

次に以下のコマンドを実行します。

terraform apply

「terraform apply」はリソースをデプロイするコマンドになります。

「Enter a value:」と出力されたら「yes」と入力すると、実際にデプロイが始まります。

「Apply complete! Resources: 3 added, 0 changed, 0 destroyed.」と出力されたらデプロイ完了になります。

Microsoft Azureのポータル画面で確認するとリソースグループ「demorg01」配下に仮想ネットワーク「demovnet01」が作成されています。

更に仮想ネットワーク「demovnet01」にサブネット「demosubnet01」が作成されています。

これで問題なくリソースがデプロイされたことを確認できました。

最後に

今回はTerraformの基本的な部分について解説しました。

本記事がTerraformの理解に役立てたら幸いです。

執筆担当者プロフィール
八鍬 洸祐

八鍬 洸祐(日本ビジネスシステムズ株式会社)

ハイブリッドクラウド本部に所属しています。業務では主にMicrosoft Azure,Terraformなどを扱っています。趣味はゲーム,バンドなどです。

担当記事一覧