Azure の Exchange 開発/テスト環境
このトピックでは、Microsoft Azure で Exchange 2016 または Exchange 2019 開発/テストのデプロイを作成する手順について説明します。 最終的な構成は、次のようになります。
この構成は、1 つの Exchange サーバーと、Azure 仮想ネットワークのサブネット内のWindows Server Active Directory (AD) ドメイン コントローラーで構成されます。 これにより、Exchange をデモンストレーションし、Exchange Serverアプリケーションを開発するための基礎と共通の出発点が提供されます。 この構成は、Exchange サーバー上の内部電子メールとアプリケーションのテストに対してのみ行われます。 外部電子メール フローが構成されていません。
次の 3 つの主要なフェーズを経て、この開発/テスト環境を設定します。
- 仮想ネットワークとドメイン コントローラー (adVM) を設定する。
- Exchange サーバー (exVM) を追加します。
- Exchange を構成します。
Azure サブスクリプションをお持ちでない場合は、 Azure 無料試用版にサインアップできます。 MSDN または Visual Studio のサブスクリプションを取得している場合は、「Visual Studio サブスクライバー向けの月単位の Azure クレジット」を参照してください。
注:
Exchange はWindows Server ADでスキーマを変更するため、この構成ではMicrosoft Entra Domain Servicesを使用できません。
フェーズ 1:仮想ネットワークとドメイン コントローラーの展開
Azure PowerShell を使用して、ドメイン コントローラーのある新しい Azure 仮想ネットワークを作成できます。 Windows PowerShell コマンド プロンプトまたは PowerShell 統合スクリプト環境 (ISE) から、次の PowerShell コマンドを実行できます。 Azure PowerShell をまだインストールしていない場合は、「Azure PowerShell コマンドレットの概要」をご覧ください。
注:
これらのコマンドは Azure PowerShell 1.0.0 以降を対象としています。
Azure アカウントにサインインします。
Connect-AzAccount
次のコマンドを使用して、サブスクリプションの名前を取得します。
Get-AZSubscription | Sort-Object Name | Select-Object Name
次のコマンドを使用して Azure サブスクリプションを設定します。 $subscrName変数を設定します。引用符内のすべて (および > 文字を含む<) を正しい名前に置き換えます。
$subscrName="<subscription name>" Select-AzSubscription -SubscriptionName $subscrName
新しいリソース グループを作成します。 一意のリソース グループ名を決定するには、このコマンドを使用して既存のリソース グループを一覧表示します。
Get-AZResourceGroup | Sort-Object ResourceGroupName | Select-Object ResourceGroupName
これらのコマンドを使用して、新しいリソース グループを作成します。 二重引用符内のすべて (< 文字と > 文字を含む) を正しい名前に置き換えて変数を設定します。
$rgName="<resource group name>" $locName="<location name, such as West US>" New-AZResourceGroup -Name $rgName -Location $locName
リソース マネージャー ベースの仮想マシンでは、リソース マネージャー ベースのストレージ アカウントが必要です。 ストレージ アカウント名は、小文字の英字と数字のみを含み、グローバルに一意である必要があります。 このコマンドを使用して、既存のストレージ アカウントを一覧表示できます。
Get-AZStorageAccount | Sort-Object StorageAccountName | Select-Object StorageAccountName
提案されるストレージ アカウントの名前が一意かどうかをテストするには、このコマンドを使用します。
Get-AZStorageAccountNameAvailability "<proposed name>"
これらのコマンドを使用して、新しいテスト環境に新しいストレージ アカウントを作成します。
$saName = "<storage account name>" New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
EXSrvrSubnet サブネットをホストし、ネットワーク セキュリティ グループで保護する EXSrvrVnet Azure Virtual Networkを作成します。
$exSubnet=New-AZVirtualNetworkSubnetConfig -Name EXSrvrSubnet -AddressPrefix 10.0.0.0/24 New-AZVirtualNetwork -Name EXSrvrVnet -ResourceGroupName $rgName -Location $locName -AddressPrefix 10.0.0.0/16 -Subnet $exSubnet -DNSServer 10.0.0.4 $rule1 = New-AZNetworkSecurityRuleConfig -Name "RDPTraffic" -Description "Allow RDP to all VMs on the subnet" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 $rule2 = New-AZNetworkSecurityRuleConfig -Name "ExchangeSecureWebTraffic" -Description "Allow HTTPS to the Exchange server" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix "10.0.0.5/32" -DestinationPortRange 443 New-AZNetworkSecurityGroup -Name EXSrvrSubnet -ResourceGroupName $rgName -Location $locName -SecurityRules $rule1, $rule2 $vnet=Get-AZVirtualNetwork -ResourceGroupName $rgName -Name EXSrvrVnet $nsg=Get-AZNetworkSecurityGroup -Name EXSrvrSubnet -ResourceGroupName $rgName Set-AZVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name EXSrvrSubnet -AddressPrefix "10.0.0.0/24" -NetworkSecurityGroup $nsg $vnet | Set-AzVirtualNetwork
Azure で adVM 仮想マシンを作成します。 adVM は、corp.contoso.com Windows Server AD ドメインのドメイン コントローラーであり、EXSrvrVnet 仮想ネットワークの仮想マシン用の DNS サーバーです。
最初に、お使いのリソース グループの名前、Azure の場所、ストレージ アカウント名を入力し、ローカル コンピューターの Azure PowerShell コマンド プロンプトでこれらのコマンドを実行して、adVM 用の Azure 仮想マシンを作成します。
# Create an availability set for domain controller virtual machines New-AZAvailabilitySet -ResourceGroupName $rgName -Name dcAvailabilitySet -Location $locName -Sku Aligned -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2 # Create the domain controller virtual machine $vnet = Get-AZVirtualNetwork -Name EXSrvrVnet -ResourceGroupName $rgName $pip = New-AZPublicIpAddress -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic $nic = New-AZNetworkInterface -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 10.0.0.4 $avSet=Get-AZAvailabilitySet -Name dcAvailabilitySet -ResourceGroupName $rgName $vm=New-AZVMConfig -VMName adVM -VMSize Standard_D1_v2 -AvailabilitySetId $avSet.Id $vm=Set-AZVMOSDisk -VM $vm -Name adVM-OS -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS" $diskConfig=New-AZDiskConfig -AccountType "Standard_LRS" -Location $locName -CreateOption Empty -DiskSizeGB 20 $dataDisk1=New-AZDisk -DiskName adVM-DataDisk1 -Disk $diskConfig -ResourceGroupName $rgName $vm=Add-AZVMDataDisk -VM $vm -Name adVM-DataDisk1 -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1 $cred=Get-Credential -Message "Type the name and password of the local administrator account for adVM." $vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName adVM -Credential $cred -ProvisionVMAgent -EnableAutoUpdate $vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest" $vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm
ユーザー名とパスワードの入力を求められます。 この記事では、このユーザー名をADMIN_NAMEと参照します。 強力なパスワードを使用して、安全な場所に両方を記録します。
注: 指定するパスワードを "pass@word1" にすることはできません。 パスワードは、長さを 8 から 123 文字とし、次のパスワードの複雑さの要件を 3 つ以上満たす必要があります。
- 大文字を含んでいること
- 小文字を含んでいること
- 数字を含んでいること
- 特殊文字を含んでいること
Azure で仮想マシンを構築するのに数分かかることがあります。
ローカルの管理者アカウントの認証情報を使用してドメイン コントローラーの仮想マシンに接続する
Azure portalで、リソース グループ><名>> adVM > Connect をクリックします。
ダウンロードされる adVM.rdp ファイルを実行し、次に [接続] をクリックします。
[Windows セキュリティ] で [別のアカウントを使用] をクリックします。 [ ユーザー名] に「**adVM**ADMIN_NAME」と<入力します>。
[パスワード] に ADMIN_NAME アカウントのパスワードを入力し、次に [OK] をクリックします。
確認を求められたら、 [はい] をクリックします。
adVM の管理者レベルのコマンド プロンプトで次のコマンドを使用して、ドライブ文字 F: を使用して、新しいボリュームとして追加のデータ ディスクWindows PowerShell追加します。
$disk=Get-Disk | where {$_.PartitionStyle -eq "RAW"} $diskNumber=$disk.Number Initialize-Disk -Number $diskNumber New-Partition -DiskNumber $diskNumber -UseMaximumSize -AssignDriveLetter Format-Volume -DriveLetter F
adVM をドメイン コントローラーとして構成し、corp.contoso.com ドメインの DNS サーバーを構成します。 adVM の管理者レベルの Windows PowerShell コマンド プロンプトから、次のコマンドを実行します。
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools Install-ADDSForest -DomainName corp.contoso.com -DatabasePath "F:\NTDS" -SysvolPath "F:\SYSVOL" -LogPath "F:\Logs"
これらのコマンドの完了には数分かかることがあります。
adVM の再起動後に、adVM 仮想マシンに再接続します。
ドメインの認証情報を使用してドメイン コントローラーの仮想マシンに接続する
Azure portalで、新しいリソース グループ ><>> adVM > Connect の名前をクリックします。
ダウンロードされる adVM.rdp ファイルを実行し、次に [接続] をクリックします。
[Windows セキュリティ] で [別のアカウントを使用] をクリックします。 [ ユーザー名] に「**CORP**<ADMIN_NAME>」と入力します。
[パスワード] に ADMIN_NAME アカウントのパスワードを入力し、次に [OK] をクリックします。
確認を求められたら、 [はい] をクリックします。
デスクトップで、管理者レベルの Windows PowerShell コマンド プロンプトを開き、次のコマンドを実行します。
Add-WindowsFeature RSAT-ADDS-Tools
フェーズ 1 の結果は次のとおりです。
フェーズ 2: Exchange 仮想マシンを作成する
このフェーズでは、EXSrvrVNet 仮想ネットワークに Exchange 仮想マシンを作成し、それを CORP ドメインのメンバーにします。
Azure PowerShellを使用して Exchange 仮想マシンを作成するには、まず、Windows PowerShell コマンド プロンプト (必要に応じて) から Azure アカウントで Azure にログインします。
Connect-AzAccount
exVM 仮想マシンには、グローバルに一意の DNS 名を指定する必要があります。 小文字と数字のみを含むグローバルに一意の DNS 名を選択する必要があります。 そのためには、次の PowerShell コマンドを使用します。
$vmDNSName="<DNS name to test>"
$rgName="<resource group name>"
$locName=(Get-AZResourceGroup -Name $rgName).Location
Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName
"True" が表示された場合、提案した名前はグローバルに一意です。
次に、変数の値を入力し、PowerShell プロンプトで結果のブロックを実行します。
# Set up key variables
$subscrName="<name of your Azure subscription>"
$vmDNSName="<unique, public DNS name for the Exchange server>"
# Set the Azure subscription
Select-AzSubscription -SubscriptionName $subscrName
# Get the Azure location and storage account names
$locName=(Get-AZResourceGroup -Name $rgName).Location
$saName=(Get-AZStorageaccount | Where {$_.ResourceGroupName -eq $rgName}).StorageAccountName
# Create an availability set for Exchange virtual machines
New-AZAvailabilitySet -ResourceGroupName $rgName -Name exAvailabilitySet -Location $locName -Sku Aligned -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2
# Specify the virtual machine name and size
$vmName="exVM"
$vmSize="standard_d8s_v3"
$vnet=Get-AZVirtualNetwork -Name "EXSrvrVnet" -ResourceGroupName $rgName
$avSet=Get-AZAvailabilitySet -Name exAvailabilitySet -ResourceGroupName $rgName
$vm=New-AZVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id
# Create the NIC for the virtual machine
$nicName=$vmName + "-NIC"
$pipName=$vmName + "-PublicIP"
$pip=New-AZPublicIpAddress -Name $pipName -ResourceGroupName $rgName -DomainNameLabel $vmDNSName -Location $locName -AllocationMethod Dynamic
$nic=New-AZNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress "10.0.0.5"
# Create and configure the virtual machine
$cred=Get-Credential -Message "Type the name and password of the local administrator account for exVM."
$vm=Set-AZVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS"
$vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2019-Datacenter -Version "latest"
$vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id
New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm
注:
このコマンド ブロックでは、フェーズ 1 で作成した標準のストレージ アカウントを使用して、この開発/テスト環境のコストを削減します。 運用 Exchange サーバーの場合は、Premium ストレージ アカウントを使用する必要があります。
Azure ポータルから、ローカル管理者アカウントの認証情報を使用して exVM 仮想マシンに接続します。
次に、Windows PowerShell プロンプトでこれらのコマンドを使用して、exVM を Windows AD ドメインに結合します。
Add-Computer -DomainName "corp.contoso.com"
Restart-Computer
なお、 Add-Computer コマンドを入力した後、ドメイン アカウントの認証情報を入力する必要があります。 CORP\<ADMIN_NAME> アカウントとパスワードを使用します。
フェーズ 2 の結果は次のとおりです。
フェーズ 3: Exchange を構成する
このフェーズでは、exVM で Exchange を構成し、2 つのメールボックス間のメール配信をテストします。
Windows Server AD の準備
ローカル コンピューターのWindows PowerShell コマンド プロンプトで、次のコマンドを実行します。
Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
コマンドの表示から完全な DNS 名をメモまたはコピーします。 これが、exVM 仮想マシンのインターネット DNS 名です。 後でこの値が必要になります。
必要に応じて、CORP\<ADMIN_NAME アカウントとパスワードを使用して、Azure portalを使用して adVM 仮想マシンに>接続します。
Windows PowerShell コマンド プロンプトで、次のコマンドを実行します。
Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
adVM でのリモート デスクトップ セッションを終了します。
Exchange をインストールする
CORP\<ADMIN_NAME> アカウントとパスワードを使用して、Azure portalを使用して exVM 仮想マシンに接続します。
exVM から管理者レベルの Windows PowerShell コマンド プロンプトを開き、次のコマンドを実行します。
Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-ASPNET, NET-WCF-HTTP-Activation45, NET-WCF-Pipe-Activation45, NET-WCF-TCP-Activation45, NET-WCF-TCP-PortSharing45, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS-Tools Restart-Computer
CORP\<ADMIN_NAME> アカウントとパスワードを使用して、Azure portalを使用して exVM 仮想マシンに接続します。
サーバー マネージャーから [ローカル サーバー] をクリックします。 exVM の [プロパティ] で、 [IE セキュリティ強化の構成] の [オン] をクリックします。 [Internet Explorer セキュリティ強化の構成] で、[管理者] と [ユーザー] 両方の [オフ] をクリックし、次に [OK] をクリックします。
スタート画面で Internet Explore をクリックし、次に https://www.microsoft.com/download/details.aspx?id=34992 から Unified Communications Managed API 4.0 Runtime をダウンロードします。 確認を求められたら、 [実行] をクリックします。
Microsoft Unified Communications Managed API 4.0, Runtime Setup で確認を求められたら、 [次へ] をクリックします。
[ライセンス条項を読み、これに同意します] をクリックし、次に [インストール] をクリックします。 [インストールが完了しました] ページで [完了] をクリックします。
インターネット エクスプローラーから、最新バージョンの Exchange をダウンロードします。 詳細については、「Exchange Server の更新プログラム」を参照してください。
[保存] をクリックし、ISO ファイルをダウンロード フォルダーに保存します。
[フォルダーを開く] をクリックし、Exchange ISO ファイルを右クリックしたら [マウント] をクリックします。
exVM の管理者レベルの Windows PowerShell コマンド プロンプトから、次のコマンドを実行します。
注:
以前の /IAcceptExchangeServerLicenseTerms スイッチは、2021 年 9 月の累積的な更新プログラム (CU) 以降は機能しません。 無人およびスクリプトによるインストールには、/IAcceptExchangeServerLicenseTerms_DiagnosticDataON または /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF のいずれかを使用する必要があります。
以下の例では、/IAcceptExchangeServerLicenseTerms_DiagnosticDataON スイッチを使用しています。 スイッチを /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF に変更するのはあなた次第です。
e:
.\setup.exe /mode:Install /role:Mailbox /OrganizationName:Contoso /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
Restart-Computer
Exchange のセットアップが完了し (時間がかかる場合があります)、exVM が再起動するまで待ちます。
2 つのメールボックスを Exchange サーバーに追加
CORP\<ADMIN_NAME> アカウントとパスワードを使用して、Azure portalを使用して exVM 仮想マシンに接続します。
スタート画面で「 Exchange」と入力し、次に [Exchange 管理シェル] をクリックします。
メモ帳に次のコマンドをコピーし、 $dnsName の変数部分に exVM 仮想マシンのインターネット DNS 名を挿入します。次に、インターネット DNS 名を挿入したコマンドをコピーして、Exchange 管理シェルに貼り付けます。
$dnsName="<Internet DNS name of the exVM virtual machine>" $user1Name="chris@" + $dnsName $user2Name="janet@" + $dnsName $db=Get-MailboxDatabase $dbName=$db.Name $password = Read-Host "Enter password" -AsSecureString
指定されたパスワードを安全な場所に記録します。 次に、これらのコマンドを実行して 2 つのメールボックスを作成します。
New-Mailbox -UserPrincipalName $user1Name -Alias chris -Database $dbName -Name ChrisAshton -OrganizationalUnit Users -Password $password -FirstName Chris -LastName Ashton -DisplayName "Chris Ashton" New-Mailbox -UserPrincipalName $user2Name -Alias janet -Database $dbName -Name JanetSchorr -OrganizationalUnit Users -Password $password -FirstName Janet -LastName Schorr -DisplayName "Janet Schorr"
メールボックス間での電子メール配信のテスト
ローカル コンピューターのブラウザーから、exVM 仮想マシン>/owaの Web サイト https://< Internet DNS 名にアクセスします。 Web サイトのセキュリティ証明書のエラー ページが表示されたら、 [この Web サイトの閲覧を続行する] をクリックします。 Outlook の [サインイン] ページで、corp\chris のアカウント名とそのパスワードを使用します。
言語およびタイム ゾーンを指定するよう求められたら、それぞれ適切な値を選択してから [保存] をクリックします。
Chris Ashton の受信トレイで [新規] をクリックします。 [宛先] に「 janet」と入力し、次に [ディレクトリ検索] をクリックします。 [件名] に「 テスト メッセージ」と入力し、次に [送信] をクリックします。
Mail Web ページの右上部分にあるユーザー アイコンをクリックし、次に [サインアウト] をクリックします。
Outlook の [サインイン] ページで、corp\janet のアカウント名とそのパスワードを使用します。 言語およびタイム ゾーンを指定するよう求められたら、それぞれ適切な値を選択してから [保存] をクリックします。
受信トレイに Chris Ashton からのテスト メッセージが含まれていることを確認します。 そのメールをクリックし、次に [全員に返信] をクリックします。 メッセージの本文に 返信済みと入力し、次に [送信] をクリックします。
Mail Web ページの右上部分にあるユーザー アイコンをクリックし、次に [サインアウト] をクリックします。
Outlook の [サインイン] ページで、corp\chris のアカウント名とそのパスワードを使用します。 Janet から送信された返信メールのメッセージが受信トレイにあることを確認します。
これで、Exchange の機能またはアプリケーションをテストする準備ができました。
仮想マシンの停止と開始
Azure 仮想マシンの実行中は、継続的なコストが発生します。 Exchange 開発/テスト環境のコストを最小限に抑えるには、次のコマンドを使用して仮想マシンを停止します。
$rgName="<your resource group name>"
Stop-AZVM -Name exVM -ResourceGroupName $rgName -Force
Stop-AZVM -Name adVM -ResourceGroupName $rgName -Force
仮想マシンをもう一度開始するには、次のコマンドを使用します。
$rgName="<your resource group name>"
Start-AZVM -Name adVM -ResourceGroupName $rgName
Start-AZVM -Name exVM -ResourceGroupName $rgName