このチュートリアルでは、Microsoft Exchange Server 2016 を Compute Engine にデプロイし、高可用性とサイト復元を構成する方法について説明します。
Exchange 環境は 1 つのリージョン内で 2 つのゾーンに分かれます。各ゾーンにメールボックス サーバーとエッジ トランスポート サーバーをデプロイします。ゾーン間でメールボックス データが複製されるように、メールボックス サーバーをデータベース可用性グループに追加します。
この環境を次の図に示します。
以下の説明は、Google Cloud に Active Directory がデプロイされていることと、Exchange Server 2016、Active Directory、Compute Engine の基本的な知識があることを前提としています。
目標
- プロジェクトと VPC ネットワークを設定し、Exchange Server 2016 のデプロイを準備する。
- Exchange メールボックス サーバーを 2 つのゾーンにデプロイし、データベース可用性グループを作成する。
- Exchange エッジ トランスポート サーバーを 2 つのゾーンにデプロイする。
- ロード バランシング ルールとファイアウォール ルールを構成する。
費用
このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。
始める前に
このガイドを完了するには、次の準備が必要です。
ドメイン コントローラが 1 つ以上配置された Active Directory ドメイン。Active Directory ドメインには、一般公開された有効かつルーティング可能な DNS ドメイン名を使用する必要があります。
corp.local
などのローカル ドメイン名や、example.com
などの予約済みのドメイン名は使用できません。Compute Engine に Active Directory 環境をデプロイする方法についての詳細は、フォールト トレラントな Microsoft Active Directory 環境のデプロイをご覧ください。
Active Directory の DNS ドメイン名に対する限定公開 DNS 転送ゾーン。DNS クエリをドメイン コントローラに転送する際に使用されます。
Active Directory ドメインに対する管理者権限。
Active Directory ドメイン コントローラと Google Cloud プロジェクトおよび VPC の接続。
Exchange VM インスタンスに使用するサブネット。サブネットは 2 つ以上のゾーンにまたがる必要があります。
デプロイを開始する前に、Exchange Server の高可用性とサイト復元の要件を確認してください。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
プロジェクトとネットワークの準備
SharePoint Server をデプロイするために Google Cloud プロジェクトと VPC を準備するには、次の操作を行います。
Google Cloud コンソールでプロジェクトに切り替え、Cloud Shell を開きます。
次の変数を初期化します。
VPC_NAME=VPC_NAME SUBNET_NAME=SUBNET_NAME SUBNET_REGION=SUBNET_REGION SUBNET_ZONE_1=$SUBNET_REGION-a SUBNET_ZONE_2=$SUBNET_REGION-b
ここで
- VPC_NAME は VPC の名前です。
- SUBNET_NAME は、サブネットの名前です。
- SUBNET_REGION は、サブネットのリージョンです。
デフォルトのプロジェクト ID を設定します。
gcloud config set project PROJECT_ID
PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。
インストール ディスクの作成
Exchange Server インストール メディアを含むディスクを作成します。複数の VM インスタンスにアタッチできるディスクを作成しておくと、各 VM インスタンスで個別にインストール メディアをダウンロードする必要がなくなります。
ISO ファイルからのイメージの作成の手順を行います。ダウンロード URL として次の URL を使用します。
https://download.microsoft.com/download/6/6/F/66F70200-E2E8-4E73-88F9-A1F6E3E04650/ExchangeServer2016-x64-cu11.iso
新しいイメージを使用して、最初のゾーンのディスクを作成します。
gcloud compute disks create exchange-media-1 \ --zone=$SUBNET_ZONE_1 \ --image-project=$GOOGLE_CLOUD_PROJECT \ --image=IMAGE
IMAGE は、前の手順で作成したイメージの名前に置き換えます。
2 番目のゾーンにディスクを作成します。
gcloud compute disks create exchange-media-2 \ --zone=$SUBNET_ZONE_2 \ --image-project=$GOOGLE_CLOUD_PROJECT \ --image=IMAGE
IMAGE は、最初の手順で作成したイメージの名前に置き換えます。
ファイアウォール ルールの作成
クライアントに Exchange との接続を許可し、Exchange Server 間の通信を可能にするには、複数のファイアウォール ルールを作成する必要があります。ネットワーク タグを使用すると、こうしたファイアウォール ルールを簡単に作成できます。
- エッジ トランスポート サーバーには
exchange-transport
タグが付きます。 - メールボックス サーバーには
exchange-mailbox
タグが付きます。 - 監視サーバーには
exchange-witness
タグが付きます。 - すべてのサーバーに
exchange
タグが付きます。
こうしたネットワーク タグを使用してファイアウォール ルールを作成します。
- 既存の Cloud Shell セッションに戻ります。
メールボックス サーバーにファイアウォール ルールを作成します。
gcloud compute firewall-rules create allow-all-between-exchange-servers \ --direction=INGRESS \ --action=allow \ --rules=tcp,udp,icmp \ --enable-logging \ --source-tags=exchange \ --target-tags=exchange \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-smtp-from-transport-to-mailbox \ --direction=INGRESS \ --action=allow \ --rules=tcp:25 \ --enable-logging \ --source-tags=exchange-transport \ --target-tags=exchange-mailbox \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-edgesync-from-mailbox-to-transport \ --direction=INGRESS \ --action=allow \ --rules=tcp:50636 \ --enable-logging \ --source-tags=exchange-mailbox \ --target-tags=exchange-transport \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-mail-to-mailbox \ --direction=INGRESS \ --action=allow \ --rules=tcp:25,tcp:110,tcp:135,tcp:143,tcp:443,tcp:993,tcp:995 \ --enable-logging \ --target-tags=exchange-mailbox \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-smb-within-dag \ --direction=INGRESS \ --action=allow \ --rules=tcp:135,tcp:445,udp:445,tcp:49152-65535 \ --enable-logging \ --source-tags=exchange-mailbox,exchange-witness \ --target-tags=exchange-mailbox,exchange-witness \ --network=$VPC_NAME \ --priority 10000
エッジ トランスポート サーバーにファイアウォール ルールを作成します。
gcloud compute firewall-rules create allow-smtp-to-transport \ --direction=INGRESS \ --action=allow \ --rules=tcp:25 \ --enable-logging \ --target-tags=exchange-transport \ --network=$VPC_NAME \ --priority 10000
これで、Exchange Server のデプロイでプロジェクトと VPC を使用する準備が整いました。
メールボックス ロールのデプロイ
これで、メールボックス サーバーと Exchange の管理に使用する管理サーバーがデプロイされました。
VM インスタンスは、n1-standard-8
マシンタイプを使用します。ニーズとそのシステム要件について詳しい分析を行う場合は、Exchange コマンドレットの実行に必要な権限を確認するをご覧ください。
管理サーバーのデプロイ
管理サーバーとして機能する VM インスタンスを作成するには、次の操作を行います。
- 既存の Cloud Shell セッションに戻ります。
VM インスタンス用の specialize スクリプトを作成します。このスクリプトは VM の初期化中に実行され、Exchange 2016 管理ツールに必要なクライアント コンポーネントがインストールされます。
cat << "EOF" > specialize-admin.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature RSAT-ADDS,RSAT-DNS-Server Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementScriptingTools, ` IIS-ManagementScriptingTools, ` IIS-IIS6ManagementCompatibility, ` IIS-LegacySnapIn, ` IIS-ManagementConsole, ` IIS-Metabase, ` IIS-WebServerManagementTools, ` IIS-WebServerRole # Install Visual C++ Redistributable Package for Visual Studio 2012 (New-Object System.Net.WebClient).DownloadFile( 'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe', "$env:Temp\vcredist_2012_x64.exe") & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default EOF
specialize-admin.ps1
を専用スクリプトとして使用する VM インスタンスを作成し、Exchange インストール ディスクをセカンダリ ディスクとしてアタッチします。後でセカンダリ ディスクを使用して、Exchange 管理ツールをインストールします。gcloud compute instances create exchange-admin \ --image-family=windows-2019 \ --image-project=windows-cloud \ --machine-type=n1-standard-2 \ --subnet=$SUBNET_NAME \ --zone=$SUBNET_ZONE_1 \ --tags=exchange \ --disk=name=exchange-media-1,auto-delete=no,mode=ro \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-admin.ps1
シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。
gcloud compute instances tail-serial-port-output exchange-admin --zone=$SUBNET_ZONE_1
Instance setup finished
という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。VM インスタンスにユーザー名とパスワードを作成します。
リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
[スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
管理者のコマンド プロンプトで、PowerShell セッションを開始します。
powershell
コンピュータを Active Directory ドメインに追加します。
Add-Computer -Domain DOMAIN
DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。
コンピュータを再起動します。
Restart-Computer
再起動が完了するまで 1 分ほど待ちます。
リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。
手順に沿って Exchange Server の Active Directory スキーマとドメインを準備します。Exchange インストール メディアはドライブ
D:
にあります。手順に沿って Exchange 管理ツールをインストールします。
メールボックス サーバーのデプロイ
これで、メールボックス サーバーとして機能する VM インスタンスをデプロイする準備ができました。
- 既存の Cloud Shell セッションに戻ります。
VM インスタンス用の specialize スクリプトを作成します。このスクリプトは VM の初期化中に実行され、メールボックス サーバーに必要なコンポーネントがインストールされます。
cat << "EOF" > specialize-mailbox.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature RSAT-ADDS Install-WindowsFeature ` NET-Framework-45-Features, ` Server-Media-Foundation, ` RPC-over-HTTP-proxy, ` RSAT-Clustering, ` RSAT-Clustering-CmdInterface, ` RSAT-Clustering-Mgmt, ` RSAT-Clustering-PowerShell, ` 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 # Install Visual C++ Redistributable Package for Visual Studio 2012 (New-Object System.Net.WebClient).DownloadFile( 'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe', "$env:Temp\vcredist_2012_x64.exe") & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default # Visual C++ Redistributable Package for Visual Studio 2013 (New-Object System.Net.WebClient).DownloadFile( 'http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe', "$env:Temp\vcredist_2013_x64.exe") & $env:Temp\vcredist_2013_x64.exe /passive /norestart | Out-Default # Install Microsoft Unified Communications Managed API (New-Object System.Net.WebClient).DownloadFile( 'https://download.microsoft.com/download/2/C/4/2C47A5C1-A1F3-4843-B9FE-84C0032C61EC/UcmaRuntimeSetup.exe', "$env:Temp\UcmaRuntimeSetup.exe") & $env:Temp\UcmaRuntimeSetup.exe /passive /norestart | Out-Default EOF
最初のゾーンで VM インスタンスを作成し、
specialize-mailbox.ps1
を専用スクリプトとして指定します。Exchange インストール ディスクをセカンダリ ディスクとしてアタッチします。後でセカンダリ ディスクを使用して、Exchange Server メールボックスのロールをインストールします。gcloud compute instances create mailbox-1-a \ --image-family=windows-2016 \ --image-project=windows-cloud \ --machine-type=n1-standard-8 \ --subnet=$SUBNET_NAME \ --tags exchange,exchange-mailbox \ --zone=$SUBNET_ZONE_1 \ --boot-disk-type pd-ssd \ --disk=name=exchange-media-1,auto-delete=no,mode=ro \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-mailbox.ps1
2 番目のゾーンに別の VM インスタンスを作成します。
gcloud compute instances create mailbox-1-b \ --image-family=windows-2016 \ --image-project=windows-cloud \ --machine-type=n1-standard-8 \ --subnet=$SUBNET_NAME \ --tags exchange,exchange-mailbox \ --zone=$SUBNET_ZONE_2 \ --boot-disk-type pd-ssd \ --disk=name=exchange-media-2,auto-delete=no,mode=ro \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-mailbox.ps1
シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。
gcloud compute instances tail-serial-port-output mailbox-1-b --zone=$SUBNET_ZONE_2
Instance setup finished
という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。それぞれの VM インスタンスに対して次の操作を行います。
- VM インスタンスにユーザー名とパスワードを作成します。
- リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
- [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
- 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
管理者のコマンド プロンプトで、PowerShell セッションを開始します。
powershell
コンピュータを Active Directory ドメインに追加します。
Add-Computer -Domain DOMAIN
DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。
コンピュータを再起動します。
Restart-Computer
再起動が完了するまで 1 分ほど待ちます。
リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。
セットアップ ウィザードまたは無人モードを使用して、Exchange Server のメールボックスのロールをインストールします。Exchange インストール メディアはドライブ
D:
にあります。
監視サーバーのデプロイ
2 つのメールボックス サーバーにデータベース可用性グループ(DAG)を設定するには、監視サーバーとして機能する VM インスタンスが必要です。監視サーバーをデプロイするには、次の操作を行います。
- 既存の Cloud Shell セッションに戻ります。
最初のゾーンに監視サーバーを作成します。
gcloud compute instances create witness \ --image-family=windows-2016 \ --image-project=windows-cloud \ --machine-type n1-standard-8 \ --subnet $SUBNET_NAME \ --tags exchange,exchange-witness \ --zone $SUBNET_ZONE_1 \ --boot-disk-type pd-ssd \ "--metadata=sysprep-specialize-script-ps1=add-windowsfeature FS-FileServer"
シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。
gcloud compute instances tail-serial-port-output witness --zone=$SUBNET_ZONE_1
Instance setup finished
という出力が表示されるまで 3 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。VM インスタンスにユーザー名とパスワードを作成します。
リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
[スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
管理者のコマンド プロンプトで、PowerShell セッションを開始します。
powershell
コンピュータを Active Directory ドメインに追加します。
Add-Computer -Domain DOMAIN
DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。
コンピュータを再起動します。
Restart-Computer
再起動が完了するまで 1 分ほど待ちます。
リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。
[スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
管理者のコマンド プロンプトで、PowerShell セッションを開始します。
powershell
Exchange Trusted Subsystem ユニバーサル セキュリティ グループをローカルの Administrators グループに追加します。
Add-LocalGroupMember -Group Administrators -Member "DOMAIN\Exchange Trusted Subsystem"
DOMAIN は、Active Directory ドメインの NetBIOS 名に置き換えます。
これで、2 つのメールボックス サーバーと監視サーバーのデプロイが完了しました。次に、これらのサーバーをデータベース可用性グループに追加します。
データベース可用性グループの作成
DAG を作成するには、次の操作を行います。
- リモート デスクトップを使用して管理 VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。
- [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
- 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
管理者のコマンド プロンプトで、PowerShell セッションを開始します。
powershell
Chrome ブラウザをダウンロードしてインストールします。
Start-BitsTransfer ` -Source 'https://dl.google.com/chrome/install/latest/chrome_installer.exe' ` -Destination "$env:Temp\chrome_installer.exe" & $env:Temp\chrome_installer.exe
Chrome を起動して次の URL に移動し、Exchange 管理センター(EAC)を開きます。
https://mailbox-1-a/ecp/?ExchClientVer=15
Enterprise Admins グループのメンバーであるドメイン ユーザーを使用してログインします。
EAC メニューで、[サーバー] > [データベース可用性グループ] の順に選択します。
[+] をクリックします。
ダイアログで次の設定を入力して、データベース可用性グループを作成します。
- データベース可用性グループ名:
mailbox
- 監視サーバー:
witness
- データベース可用性グループ名:
[保存] をクリックします。
[DAG メンバーシップの管理] アイコンをクリックします。
ダイアログで [+] をクリックして、メンバー サーバーを追加します。
mailbox-1-a と mailbox-1-b を選択し、[追加] をクリックします。
[OK] をクリックします。
[保存] をクリックします。
必要に応じて、Exchange Server のインストール後のタスクを行います。
ロード バランシングの設定
クライアントがメールボックス サーバーに接続できるように、内部ロードバランサ リソースを作成します。
- 既存の Cloud Shell セッションに戻ります。
ゾーンごとに 1 つの非マネージド インスタンス グループを作成します。
gcloud compute instance-groups unmanaged create mailbox-a --zone=$SUBNET_ZONE_1 gcloud compute instance-groups unmanaged create mailbox-b --zone=$SUBNET_ZONE_2
メールボックス サーバーを実行している VM インスタンスをインスタンス グループに追加します。
gcloud compute instance-groups unmanaged add-instances mailbox-a \ --zone=$SUBNET_ZONE_1 \ --instances=mailbox-1-a gcloud compute instance-groups unmanaged add-instances mailbox-b \ --zone=$SUBNET_ZONE_2 \ --instances=mailbox-1-b
HTTP パス
/owa/healthcheck.htm
を調査するヘルスチェックを作成します。gcloud compute health-checks create http http-80\ --port=80 \ --request-path=/owa/healthcheck.htm
ロードバランサのバックエンドを作成し、2 つのインスタンス グループを追加します。
gcloud compute backend-services create mailbox-backend \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=$SUBNET_REGION \ --health-checks=http-80 \ --session-affinity=CLIENT_IP_PORT_PROTO gcloud compute backend-services add-backend mailbox-backend \ --region=$SUBNET_REGION \ --instance-group=mailbox-a \ --instance-group-zone=$SUBNET_ZONE_1 gcloud compute backend-services add-backend mailbox-backend \ --region=$SUBNET_REGION \ --instance-group=mailbox-b \ --instance-group-zone=$SUBNET_ZONE_2
ロードバランサに静的 IP アドレスを予約します。
gcloud compute addresses create mailbox-frontend \ --region=$SUBNET_REGION \ --subnet=$SUBNET_NAME
ロードバランサの転送ルールを作成します。
gcloud compute forwarding-rules create mailbox-frontend \ --region=$SUBNET_REGION \ --address=mailbox-frontend \ --load-balancing-scheme=internal \ --network=$VPC_NAME \ --subnet=$SUBNET_NAME \ --ip-protocol=TCP \ --ports=ALL \ --backend-service=mailbox-backend \ --backend-service-region=$SUBNET_REGION
ロードバランサの IP アドレスを検索します。
gcloud compute addresses describe mailbox-frontend \ --region=$SUBNET_REGION \ --format=value\(address\)
メールボックス サーバーのテスト
メールボックス サーバーが正常にデプロイされたことを確認するには、次の操作を行います。
- 管理 VM で Chrome を開き、
https://<var>IP</var>/owa/
に移動します。ここで、IP は、前に検索したロードバランサの IP アドレスです。 ドメイン ユーザーとしてログインします。
Outlook Web Access のユーザー インターフェースが表示されます。
エッジ トランスポートのロールのデプロイ
エッジ トランスポート サーバーをデプロイします。エッジ トランスポート サーバーは、すべての受信メールフローと送信メールフローを処理します。
メールボックス サーバーとは異なり、エッジ トランスポート サーバーはインターネットに公開されます。オンプレミスにデプロイする場合は、ファイアウォールで内部ネットワークから分離された境界ネットワークにエッジ トランスポート サーバーをデプロイできます。
Google Cloud の場合、エッジ トランスポート サーバーを別の VPC またはサブネットにデプロイする必要はありません。代わりにファイアウォール ルールを使用してネットワークをマイクロセグメント化し、エッジ トランスポート サーバーとのネットワーク通信を制限します。
メールボックス サーバーとは異なり、エッジ トランスポート サーバーは Active Directory ドメインのメンバーではありません。
VM インスタンスは、n1-standard-8
マシンタイプを使用します。Exchange 環境の使用方法によっては、より大きなマシンタイプが必要になる場合があります。ニーズとシステム要件について詳しい分析を行う場合は、Exchange コマンドレットの実行に必要な権限を確認するをご覧ください。
エッジ トランスポート サーバーのデプロイ
エッジ トランスポート サーバーをデプロイするには、次の操作を行います。
- 既存の Cloud Shell セッションに戻ります。
VM インスタンス用の specialize スクリプトを作成します。このスクリプトは VM の初期化中に実行され、エッジ トランスポート サーバーに必要なコンポーネントがインストールされます。
cat << "EOF" > specialize-transport.ps1 # Install required Windows features Install-WindowsFeature ADLDS # Install Visual C++ Redistributable Package for Visual Studio 2012 (New-Object System.Net.WebClient).DownloadFile( 'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe', "$env:Temp\vcredist_2012_x64.exe") & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default EOF
最初のゾーンで VM インスタンスを作成し、
specialize-transport.ps1
を専用スクリプトとして指定します。後で Exchange Server トランスポート サーバーのロールをインストールできるように、Exchange インストール ディスクを読み取り専用モードでアタッチします。gcloud compute instances create transport-1-a \ --image-family=windows-2016 \ --image-project=windows-cloud \ --machine-type=n1-standard-8 \ --subnet=$SUBNET_NAME \ --tags exchange,exchange-transport \ --zone=$SUBNET_ZONE_1 \ --boot-disk-type pd-ssd \ --disk=name=exchange-media-1,auto-delete=no,mode=ro \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-transport.ps1
2 番目のゾーンに別の VM インスタンスを作成します。
gcloud compute instances create transport-1-b \ --image-family=windows-2016 \ --image-project=windows-cloud \ --machine-type=n1-standard-8 \ --subnet=$SUBNET_NAME \ --tags exchange,exchange-transport \ --zone=$SUBNET_ZONE_2 \ --boot-disk-type pd-ssd \ --disk=name=exchange-media-2,auto-delete=no,mode=ro \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-transport.ps1
シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。
gcloud compute instances tail-serial-port-output transport-1-b --zone=$SUBNET_ZONE_2
Instance setup finished
という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。それぞれのエッジ トランスポート サーバー VM インスタンスに次の操作を行います。
- VM インスタンスにユーザー名とパスワードを作成します。
- リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
- Active Directory ドメインで使用される DNS ドメイン名に一致するように、プライマリ DNS サフィックスを構成します。
- 設定ウィザードまたは無人モードを使用して、Exchange Server のエッジ トランスポート サーバーのロールをインストールします。Exchange インストール メディアはドライブ
D:
にあります。
DNS へのエッジ トランスポート サーバーの登録
エッジ トランスポート サーバーにエッジ サブスクリプションを設定する前に、サーバーに DNS 名を割り当てる必要があります。エッジ トランスポート サーバーは Active Directory ドメインのメンバーではないため、これらの名前を手動で割り当てる必要があります。
- 管理サーバーで、PowerShell コンソールを開きます。
transport-1-a
とtransport-1-b
に CNAME レコードを作成します。Add-DnsServerResourceRecordCName ` -ComputerName (Get-ADDomainController).Hostname ` -HostNameAlias "transport-1-a.REGION-a.c.PROJECT-ID.internal." ` -Name "transport-1-a" ` -ZoneName "DOMAIN" Add-DnsServerResourceRecordCName ` -ComputerName (Get-ADDomainController).Hostname ` -HostNameAlias "transport-1-b.REGION-b.c.PROJECT-ID.internal." ` -Name "transport-1-b" ` -ZoneName "DOMAIN"
ここで
- PROJECT-ID は、Exchange VM インスタンスがデプロイされているプロジェクトのプロジェクト ID です。
- REGION は、Exchange VM インスタンスがデプロイされているリージョンです。
- DOMAIN は、Active Directory ドメインの DNS ドメインです。
エッジ サブスクリプションの設定
エッジ トランスポート サーバーの Active Directory Lightweight Directory Service(AD LDS)インスタンスに Active Directory データを提供するため、エッジ サブスクリプションを設定します。
- [スタート] を右クリックして [Exchange 管理シェル] を選択し、[その他] > [管理者として実行] の順に選択して、管理者権限で Exchange 管理シェルを開きます。
エッジ サブスクリプションを作成します。
New-EdgeSubscription -FileName "$env:UserProfile\Desktop\EdgeSubscriptionInfo-$env:computername.xml"
デスクトップにサブスクリプション ファイルが表示されます。
Exchange AD LDS サーバー証明書をエクスポートします。
- [スタート]、[ファイル名を指定して実行] の順にクリックします。「
mmc
」と入力して [OK] を選択し、Microsoft 管理コンソールを開きます。 - [ファイル] > [スナップインの追加と削除] を選択します。
- スナップインのリストで証明書を選択し、[追加] をクリックします。
- [サービス アカウント] を選択し、[次へ] をクリックします。
- [ローカル コンピューター] を選択し、[次へ] をクリックします。
- Microsoft Exchange ADAM を選択し、[完了] をクリックします。
- [OK] をクリックします。
- 左側のペインで、[証明書] > [ADAM_MSExchange\Personal] > [証明書] の順に移動します。
- 右側のペインで証明書を右クリックして、[すべてのタスク] > [エクスポート] の順に選択します。
- [次へ] をクリックします。
- [いいえ、秘密キーをエクスポートしません] を選択して、[次へ] をクリックします。
- [Base 64 encoded X.509(.CER)] を選択し、[次へ] をクリックします。
- 証明書の保存先を選択して、[次へ] をクリックします。
- [スタート]、[ファイル名を指定して実行] の順にクリックします。「
それぞれのメールボックス サーバーの VM インスタンスに次の操作を行います。
- 両方のエッジ トランスポート サーバーの Exchange AD LDS サーバー証明書を一時的な場所にコピーします。
- 両方のエッジ トランスポート サーバーのサブスクリプション ファイルを一時的な場所にコピーします。
- [スタート] を右クリックして [Exchange 管理シェル] を選択し、[その他] > [管理者として実行] の順に選択して、管理者権限で Exchange 管理シェルを開きます。
transport-1-a
の Exchange AD LDS サーバー証明書をインポートします。Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
PATH は、
transport-1-a
の Exchange AD LDS サーバー証明書へのパスで置き換えます。transport-1-b
の Exchange AD LDS サーバー証明書をインポートします。Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
PATH は、
transport-1-b
の Exchange AD LDS サーバー証明書へのパスで置き換えます。transport-1-a
とtransport-1-b
のエッジ サブスクリプション ファイルをインポートします。メールボックス サーバーで EdgeSync プロセスを手動で開始し、同期が成功したことを確認します。
受信メールフローのロード バランシングの設定
エッジ トランスポート サーバーへの受信メールフローを有効にするには、ネットワーク ロードバランサ リソースを作成します。
- 既存の Cloud Shell セッションに戻ります。
ターゲット プールを作成します。
gcloud compute target-pools create transport-pool --region $SUBNET_REGION
エッジ トランスポート サーバーの VM インスタンスをターゲット プールに追加します。
gcloud compute target-pools add-instances transport-pool \ --instances-zone $SUBNET_ZONE_1 \ --instances transport-1-a gcloud compute target-pools add-instances transport-pool \ --instances-zone $SUBNET_ZONE_2 \ --instances transport-1-b
ロードバランサに外部 IP アドレスを予約します。
gcloud compute addresses create transport-frontend --region=$SUBNET_REGION
転送ルールを作成します。
gcloud compute forwarding-rules create www-rule \ --region $SUBNET_REGION \ --ports 25 \ --address transport-frontend \ --target-pool transport-pool
ロードバランサの IP アドレスを調べます。
gcloud compute addresses describe transport-frontend \ --region=$SUBNET_REGION \ --format=value\(address\)
これで、トランスポート サーバーを使用して、この IP アドレスのポート 25 でメールを受信できるようになり、受信メールがメールボックス サーバーに渡されます。
Telnet を使用して Exchange サーバー上の SMTP 通信をテストするの手順に沿って、メール配信が機能することを確認します。
エッジ トランスポート サーバーの設定を完了するには、Exchange サーバーのメールフローおよびクライアント アクセスの構成の手順を行います。
SendGrid を使用した送信メールフローの設定
Google Cloud はポート 25 での送信接続を許可しないため、カスタム送信コネクタを設定して送信メールを処理します。
- Google Cloud Marketplace を使用して、SendGrid メールサービスに登録します。
- SendGrid ウェブサイトで、新しい API キーを作成します。
- VM インスタンス
transport-1-a
とtransport-1-b
のパブリック IP アドレスを、許可された IP アドレスのリストに追加します。
送信コネクタの作成
SendGrid をスマートホストとして使用する送信用の送信コネクタを作成します。
- Exchange 管理センター(EAC)に戻ります。
- EAC メニューで、[mail flow] > [send connectors] の順に選択します。
- [+] をクリックします。
- [New send connector] ダイアログで、次の設定を入力します。
- Name:
SendGrid
- Type: インターネット(インターネット メールの送信など)
- Name:
- [Next] をクリックします。
- [Network settings] で、[Route mail through smart hosts] を選択し、[+] をクリックします。
- [Add smart host] ページで、「
smtp.sendgrid.net
」と入力します。 - [Save] をクリックします。
- [Next] をクリックします。
- [Smart host authentication] で、[Basic authentication] を選択します。
- 次の情報を入力します。
- User name:
apikey
- Password: SendGrid ウェブサイトで作成した API キーを貼り付けます。
- User name:
- [Next] をクリックします。
- [Address space] で、[+] をクリックします。
- 次の情報を入力します。
- Type:
SMTP
- Full Qualified Domain Name (FQDN):
*
- Cost:
1
- Type:
- [Next] をクリックします。
- [Source server] で、[+] をクリックします。
- [
transport-1-a
] と [transport-1-b
] を選択して [OK] をクリックします。 - [Finish] をクリックします。
SMTP ポートの変更
カスタムポートを使用するように送信コネクタを構成します。
- いずれかのメールボックス サーバーで [Start] を右クリックし、[Exchange Management Shell] を選択して Exchange 管理シェルを開きます。
送信コネクタを変更してポート
2525
を使用します。Set-SendConnector -Identity "SendGrid" -port 2525
エッジ同期をトリガーして、構成変更がすべてのエッジ トランスポート サーバーに伝播されることを確認します。
Start-EdgeSynchronization -ForceFullSync
クリーンアップ
このチュートリアルの完了後に請求が発生しないようにするには、作成したエンティティを削除してください。
Google Cloud プロジェクトの削除
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
次のステップ
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。