このチュートリアルでは、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 ドメイン コントローラに接続しているプロジェクトと VPC。 Google Cloud 
- Exchange VM インスタンスに使用するサブネット。サブネットは 2 つ以上のゾーンにまたがる必要があります。 
デプロイを開始する前に、Exchange Server の高可用性とサイト復元の要件を確認してください。
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
プロジェクトとネットワークの準備
Exchange 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 アーキテクチャ センターをご覧ください。