Azure PowerShellモジュールを活用したクラウドインフラストラクチャの自動化

近年、クラウドコンピューティングの普及により、インフラストラクチャの自動化が急速に進んでいます。Azureは、Microsoftが提供するクラウドサービスで、特にエンタープライズ用途での利用が増加しています。Azure上でインフラを効率的に管理するには、手動の操作よりもスクリプト化による自動化が有効です。そのために利用されるのがAzure PowerShellモジュールです。

本記事では、Azure PowerShellモジュールを活用してクラウドインフラを自動化する方法について解説します。さらに、実際の演習問題を通じて実践的なスキルを身につけていただけます。


Azure PowerShellとは?

Azure PowerShellは、Azureのリソース管理を自動化するためのMicrosoft製のPowerShellモジュールです。このモジュールはAzureのリソース(仮想マシン、ストレージ、ネットワークなど)の操作をコマンドラインから簡単に行えるようにし、スクリプトによる自動化を可能にします。

Azure PowerShellの利点

  • 迅速なリソース展開:PowerShellを用いることで、GUIよりも速やかにリソースの作成や管理が可能です。
  • スクリプトによる自動化:手動操作の手間を省き、スクリプトで複数のリソース管理をまとめて行えます。
  • クロスプラットフォーム対応:Windows、Mac、Linuxなど異なるOS上で動作するため、柔軟に利用可能です。

Azure PowerShellモジュールのインストール

Azure PowerShellモジュールは、PowerShell Galleryからインストールできます。以下のコマンドでインストールを行います。

Install-Module -Name Az -AllowClobber -Scope CurrentUser

インストールが完了したら、Azureアカウントにサインインします。

Connect-AzAccount

サインインが成功すると、Azure環境のリソースに対して操作が可能となります。


基本的なコマンドの紹介

1. リソースグループの作成

リソースグループは、Azureでリソースを管理するための基本単位です。次のコマンドでリソースグループを作成します。

New-AzResourceGroup -Name "MyResourceGroup" -Location "EastUS"

2. 仮想マシンの作成

仮想マシンは、Azureでよく利用されるリソースです。以下のコマンドで仮想マシンを作成できます。

New-AzVM -ResourceGroupName "MyResourceGroup" -Name "MyVM" -Location "EastUS"

3. ストレージアカウントの作成

Azureストレージアカウントは、Azure上でデータを保存するための基本単位です。

New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "EastUS" -SkuName "Standard_LRS"

インフラストラクチャの自動化例:仮想マシンの自動デプロイ

Azure PowerShellを使って仮想マシンの自動デプロイを行う方法を紹介します。以下のスクリプトは、指定されたリソースグループに仮想マシンをデプロイし、接続に必要なネットワークやIPアドレスを自動で設定します。

# リソースグループの作成
New-AzResourceGroup -Name "AutoDeployGroup" -Location "EastUS"

# 仮想ネットワークの作成
$virtualNetwork = New-AzVirtualNetwork -ResourceGroupName "AutoDeployGroup" -Name "AutoVNet" -AddressPrefix "10.0.0.0/16" -Location "EastUS"

# サブネットの作成
$subnet = Add-AzVirtualNetworkSubnetConfig -Name "AutoSubnet" -AddressPrefix "10.0.0.0/24" -VirtualNetwork $virtualNetwork
$virtualNetwork | Set-AzVirtualNetwork

# パブリックIPアドレスの作成
$publicIP = New-AzPublicIpAddress -ResourceGroupName "AutoDeployGroup" -Name "AutoPublicIP" -Location "EastUS" -AllocationMethod Dynamic

# ネットワークインターフェースの作成
$nic = New-AzNetworkInterface -Name "AutoNIC" -ResourceGroupName "AutoDeployGroup" -Location "EastUS" -SubnetId $subnet.Id -PublicIpAddressId $publicIP.Id

# 仮想マシンの作成
$vmConfig = New-AzVMConfig -VMName "AutoVM" -VMSize "Standard_DS1_v2"
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName "AutoVM" -Credential (Get-Credential)
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id

New-AzVM -ResourceGroupName "AutoDeployGroup" -Location "EastUS" -VM $vmConfig

演習問題

問題 1:リソースグループを作成する

新しいリソースグループ「PracticeResourceGroup」を「Japan East」リージョンに作成してください。

問題 2:仮想マシンの作成

  1. リソースグループ:作成した「PracticeResourceGroup」を使用してください。
  2. 仮想マシン名PracticeVM
  3. リージョン:「Japan East」
  4. ネットワーク設定:仮想ネットワーク「PracticeVNet」とサブネット「PracticeSubnet」を設定してください。

問題 3:ストレージアカウントの作成

  1. リソースグループ「PracticeResourceGroup」に、ストレージアカウント「practicestorageaccount」を作成してください。
  2. 場所は「Japan East」、SKUは「Standard_RAGRS」を指定してください。

解答例

解答例 1:リソースグループの作成

New-AzResourceGroup -Name "PracticeResourceGroup" -Location "Japan East"

解答例 2:仮想マシンの作成

# 仮想ネットワークの作成
$practiceVNet = New-AzVirtualNetwork -ResourceGroupName "PracticeResourceGroup" -Name "PracticeVNet" -AddressPrefix "10.1.0.0/16" -Location "Japan East"

# サブネットの作成
$practiceSubnet = Add-AzVirtualNetworkSubnetConfig -Name "PracticeSubnet" -AddressPrefix "10.1.0.0/24" -VirtualNetwork $practiceVNet
$practiceVNet | Set-AzVirtualNetwork

# パブリックIPアドレスの作成
$publicIP = New-AzPublicIpAddress -ResourceGroupName "PracticeResourceGroup" -Name "PracticePublicIP" -Location "Japan East" -AllocationMethod Dynamic

# ネットワークインターフェースの作成
$nic = New-AzNetworkInterface -Name "PracticeNIC" -ResourceGroupName "PracticeResourceGroup" -Location "Japan East" -SubnetId $practiceSubnet.Id -PublicIpAddressId $publicIP.Id

# 仮想マシンの作成
$vmConfig = New-AzVMConfig -VMName "PracticeVM" -VMSize "Standard_DS1_v2"
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName "PracticeVM" -Credential (Get-Credential)
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id

New-AzVM -ResourceGroupName "PracticeResourceGroup" -Location "Japan East" -VM $vmConfig

解答例 3:ストレージアカウントの作成

New-AzStorageAccount -ResourceGroupName "PracticeResourceGroup" -Name "practicestorageaccount" -Location "Japan East" -SkuName "Standard_RAGRS"

おわりに

本記事では、Azure PowerShellモジュールを活用したクラウドインフラストラクチャの自動化について解説しました。Azure PowerShellは非常に強力なツールであり、使いこなすことで

業務効率の向上や運用コストの削減が可能です。