Compute Engine への Microsoft Exchange Server 2016 のデプロイ


このチュートリアルでは、Microsoft Exchange Server 2016 を Compute Engine にデプロイし、高可用性とサイト復元を構成する方法について説明します。

Exchange 環境は 1 つのリージョン内で 2 つのゾーンに分かれます。各ゾーンにメールボックス サーバーとエッジ トランスポート サーバーをデプロイします。ゾーン間でメールボックス データが複製されるように、メールボックス サーバーをデータベース可用性グループに追加します。

この環境を次の図に示します。

Microsoft Exchange のデプロイ

以下の説明は、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 の高可用性とサイト復元の要件を確認してください。

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

プロジェクトとネットワークの準備

SharePoint Server をデプロイするために Google Cloud プロジェクトと VPC を準備するには、次の操作を行います。

  1. Google Cloud コンソールでプロジェクトに切り替え、Cloud Shell を開きます。

    Cloud Shell を開く

  2. 次の変数を初期化します。

    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 は、サブネットのリージョンです。
  3. デフォルトのプロジェクト ID を設定します。

    gcloud config set project PROJECT_ID
    

    PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。

インストール ディスクの作成

Exchange Server インストール メディアを含むディスクを作成します。複数の VM インスタンスにアタッチできるディスクを作成しておくと、各 VM インスタンスで個別にインストール メディアをダウンロードする必要がなくなります。

  1. ISO ファイルからのイメージの作成の手順を行います。ダウンロード URL として次の URL を使用します。

    https://download.microsoft.com/download/6/6/F/66F70200-E2E8-4E73-88F9-A1F6E3E04650/ExchangeServer2016-x64-cu11.iso
    
  2. 新しいイメージを使用して、最初のゾーンのディスクを作成します。

    gcloud compute disks create exchange-media-1 \
      --zone=$SUBNET_ZONE_1 \
      --image-project=$GOOGLE_CLOUD_PROJECT \
      --image=IMAGE
    

    IMAGE は、前の手順で作成したイメージの名前に置き換えます。

  3. 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 タグが付きます。

こうしたネットワーク タグを使用してファイアウォール ルールを作成します。

  1. 既存の Cloud Shell セッションに戻ります。
  2. メールボックス サーバーにファイアウォール ルールを作成します。

    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
    
  3. エッジ トランスポート サーバーにファイアウォール ルールを作成します。

    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 Server のロール要件の計算ツールをご覧ください。

管理サーバーのデプロイ

管理サーバーとして機能する VM インスタンスを作成するには、次の操作を行います。

  1. 既存の Cloud Shell セッションに戻ります。
  2. 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
    
  3. 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
    
  4. シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。

    gcloud compute instances tail-serial-port-output exchange-admin --zone=$SUBNET_ZONE_1
    

    Instance setup finished という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。

  5. VM インスタンスにユーザー名とパスワードを作成します。

  6. リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。

  7. [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。

  8. 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。

  9. 管理者のコマンド プロンプトで、PowerShell セッションを開始します。

    powershell
    
  10. コンピュータを Active Directory ドメインに追加します。

    Add-Computer -Domain DOMAIN
    

    DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。

  11. コンピュータを再起動します。

    Restart-Computer
    

    再起動が完了するまで 1 分ほど待ちます。

  12. リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。

  13. 手順に沿って Exchange Server の Active Directory スキーマとドメインを準備します。Exchange インストール メディアはドライブ D: にあります。

  14. 手順に沿って Exchange 管理ツールをインストールします。

メールボックス サーバーのデプロイ

これで、メールボックス サーバーとして機能する VM インスタンスをデプロイする準備ができました。

  1. 既存の Cloud Shell セッションに戻ります。
  2. 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
    
  3. 最初のゾーンで 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
    
  4. 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
    
  5. シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。

    gcloud compute instances tail-serial-port-output mailbox-1-b --zone=$SUBNET_ZONE_2
    

    Instance setup finished という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。

  6. それぞれの VM インスタンスに対して次の操作を行います。

    1. VM インスタンスにユーザー名とパスワードを作成します。
    2. リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
    3. [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
    4. 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
    5. 管理者のコマンド プロンプトで、PowerShell セッションを開始します。

      powershell
      
    6. コンピュータを Active Directory ドメインに追加します。

      Add-Computer -Domain DOMAIN
      

      DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。

    7. コンピュータを再起動します。

      Restart-Computer
      

      再起動が完了するまで 1 分ほど待ちます。

    8. リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。

    9. セットアップ ウィザードまたは無人モードを使用して、Exchange Server のメールボックスのロールをインストールします。Exchange インストール メディアはドライブ D: にあります。

監視サーバーのデプロイ

2 つのメールボックス サーバーにデータベース可用性グループ(DAG)を設定するには、監視サーバーとして機能する VM インスタンスが必要です。監視サーバーをデプロイするには、次の操作を行います。

  1. 既存の Cloud Shell セッションに戻ります。
  2. 最初のゾーンに監視サーバーを作成します。

    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"
    
  3. シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。

    gcloud compute instances tail-serial-port-output witness --zone=$SUBNET_ZONE_1
    

    Instance setup finished という出力が表示されるまで 3 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。

  4. VM インスタンスにユーザー名とパスワードを作成します。

  5. リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。

  6. [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。

  7. 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。

  8. 管理者のコマンド プロンプトで、PowerShell セッションを開始します。

    powershell
    
  9. コンピュータを Active Directory ドメインに追加します。

    Add-Computer -Domain DOMAIN
    

    DOMAIN は、Active Directory ドメインの DNS 名に置き換えます。

  10. コンピュータを再起動します。

    Restart-Computer
    

    再起動が完了するまで 1 分ほど待ちます。

  11. リモート デスクトップを使用して VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。

  12. [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。

  13. 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。

  14. 管理者のコマンド プロンプトで、PowerShell セッションを開始します。

    powershell
    
  15. Exchange Trusted Subsystem ユニバーサル セキュリティ グループをローカルの Administrators グループに追加します。

    Add-LocalGroupMember -Group Administrators -Member "DOMAIN\Exchange Trusted Subsystem"
    

    DOMAIN は、Active Directory ドメインの NetBIOS 名に置き換えます。

これで、2 つのメールボックス サーバーと監視サーバーのデプロイが完了しました。次に、これらのサーバーをデータベース可用性グループに追加します。

データベース可用性グループの作成

DAG を作成するには、次の操作を行います。

  1. リモート デスクトップを使用して管理 VM に接続し、Enterprise Admins グループのメンバーであるドメイン ユーザーとしてログインします。
  2. [スタート] ボタンを右クリックするか Win + X を押して、[コマンド プロンプト(管理者)] をクリックします。
  3. 特権昇格を確認するプロンプトが表示されたら [はい] をクリックします。
  4. 管理者のコマンド プロンプトで、PowerShell セッションを開始します。

    powershell
    
  5. 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
    
  6. Chrome を起動して次の URL に移動し、Exchange 管理センター(EAC)を開きます。

    https://mailbox-1-a/ecp/?ExchClientVer=15
    
  7. Enterprise Admins グループのメンバーであるドメイン ユーザーを使用してログインします。

  8. EAC メニューで、[サーバー] > [データベース可用性グループ] の順に選択します。

  9. [+] をクリックします。

  10. ダイアログで次の設定を入力して、データベース可用性グループを作成します。

    1. データベース可用性グループ名: mailbox
    2. 監視サーバー: witness
  11. [保存] をクリックします。

  12. [DAG メンバーシップの管理] アイコンをクリックします。

  13. ダイアログで [+] をクリックして、メンバー サーバーを追加します。

  14. mailbox-1-amailbox-1-b を選択し、[追加] をクリックします。

  15. [OK] をクリックします。

  16. [保存] をクリックします。

必要に応じて、Exchange Server のインストール後のタスクを行います。

ロード バランシングの設定

クライアントがメールボックス サーバーに接続できるように、内部ロードバランサ リソースを作成します。

  1. 既存の Cloud Shell セッションに戻ります。
  2. ゾーンごとに 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
    
  3. メールボックス サーバーを実行している 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
    
  4. HTTP パス /owa/healthcheck.htm を調査するヘルスチェックを作成します。

    gcloud compute health-checks create http http-80\
      --port=80 \
      --request-path=/owa/healthcheck.htm
    
  5. ロードバランサのバックエンドを作成し、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
    
  6. ロードバランサに静的 IP アドレスを予約します。

    gcloud compute addresses create mailbox-frontend \
      --region=$SUBNET_REGION \
      --subnet=$SUBNET_NAME
    
  7. ロードバランサの転送ルールを作成します。

    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
    
  8. ロードバランサの IP アドレスを検索します。

    gcloud compute addresses describe mailbox-frontend  \
      --region=$SUBNET_REGION \
      --format=value\(address\)
    

メールボックス サーバーのテスト

メールボックス サーバーが正常にデプロイされたことを確認するには、次の操作を行います。

  1. 管理 VM で Chrome を開き、https://<var>IP</var>/owa/ に移動します。ここで、IP は、前に検索したロードバランサの IP アドレスです。
  2. ドメイン ユーザーとしてログインします。

    Outlook Web Access のユーザー インターフェースが表示されます。

エッジ トランスポートのロールのデプロイ

エッジ トランスポート サーバーをデプロイします。エッジ トランスポート サーバーは、すべての受信メールフローと送信メールフローを処理します。

メールボックス サーバーとは異なり、エッジ トランスポート サーバーはインターネットに公開されます。オンプレミスにデプロイする場合は、ファイアウォールで内部ネットワークから分離された境界ネットワークにエッジ トランスポート サーバーをデプロイできます。

Google Cloud の場合、エッジ トランスポート サーバーを別の VPC またはサブネットにデプロイする必要はありません。代わりにファイアウォール ルールを使用してネットワークをマイクロセグメント化し、エッジ トランスポート サーバーとのネットワーク通信を制限します。

メールボックス サーバーとは異なり、エッジ トランスポート サーバーは Active Directory ドメインのメンバーではありません。

VM インスタンスは、n1-standard-8 マシンタイプを使用します。Exchange 環境の使用方法によっては、より大きなマシンタイプが必要になる場合があります。ニーズとシステム要件について詳しい分析を行う場合は、Exchange Server のロール要件の計算ツールをご覧ください。

エッジ トランスポート サーバーのデプロイ

エッジ トランスポート サーバーをデプロイするには、次の操作を行います。

  1. 既存の Cloud Shell セッションに戻ります。
  2. 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
    
  3. 最初のゾーンで 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
    
  4. 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
    
  5. シリアルポートの出力を表示して、VM の初期化プロセスをモニタリングします。

    gcloud compute instances tail-serial-port-output transport-1-b --zone=$SUBNET_ZONE_2
    

    Instance setup finished という出力が表示されるまで 5 分ほど待ちます。表示されたら Ctrl+C キーを押します。この時点で、VM インスタンスが使用できるようになります。

  6. それぞれのエッジ トランスポート サーバー VM インスタンスに次の操作を行います。

    1. VM インスタンスにユーザー名とパスワードを作成します。
    2. リモート デスクトップを使用して VM に接続し、前のステップで作成したユーザー名とパスワードを使用してログインします。
    3. Active Directory ドメインで使用される DNS ドメイン名に一致するようにプライマリ DNS サフィックスを構成します。
    4. セットアップ ウィザードまたは無人モードを使用して、Exchange Server のエッジ トランスポート サーバーのロールをインストールします。Exchange インストール メディアはドライブ D: にあります。

DNS へのエッジ トランスポート サーバーの登録

エッジ トランスポート サーバーにエッジ サブスクリプションを設定する前に、サーバーに DNS 名を割り当てる必要があります。エッジ トランスポート サーバーは Active Directory ドメインのメンバーではないため、これらの名前を手動で割り当てる必要があります。

  1. 管理サーバーで、PowerShell コンソールを開きます。
  2. transport-1-atransport-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 データを提供するため、エッジ サブスクリプションを設定します。

  1. [スタート] を右クリックして [Exchange 管理シェル] を選択し、[その他] > [管理者として実行] の順に選択して、管理者権限で Exchange 管理シェルを開きます。
  2. エッジ サブスクリプションを作成します。

    New-EdgeSubscription -FileName "$env:UserProfile\Desktop\EdgeSubscriptionInfo-$env:computername.xml"
    

    デスクトップにサブスクリプション ファイルが表示されます。

  3. Exchange AD LDS サーバー証明書をエクスポートします。

    1. [スタート]、[ファイル名を指定して実行] の順にクリックします。「mmc」と入力して [OK] を選択し、Microsoft 管理コンソールを開きます。
    2. [ファイル] > [スナップインの追加と削除] を選択します。
    3. スナップインのリストで証明書を選択し、[追加] をクリックします。
    4. [サービス アカウント] を選択し、[次へ] をクリックします。
    5. [ローカル コンピューター] を選択し、[次へ] をクリックします。
    6. Microsoft Exchange ADAM を選択し、[完了] をクリックします。
    7. [OK] をクリックします。
    8. 左側のペインで、[証明書] > [ADAM_MSExchange\Personal] > [証明書] の順に移動します。
    9. 右側のペインで証明書を右クリックして、[すべてのタスク] > [エクスポート] の順に選択します。
    10. [次へ] をクリックします。
    11. [いいえ、秘密キーをエクスポートしません] を選択して、[次へ] をクリックします。
    12. [Base 64 encoded X.509(.CER)] を選択し、[次へ] をクリックします。
    13. 証明書の保存先を選択して、[次へ] をクリックします。
  4. それぞれのメールボックス サーバーの VM インスタンスに次の操作を行います。

    1. 両方のエッジ トランスポート サーバーの Exchange AD LDS サーバー証明書を一時的な場所にコピーします。
    2. 両方のエッジ トランスポート サーバーのサブスクリプション ファイルを一時的な場所にコピーします。
    3. [スタート] を右クリックして [Exchange 管理シェル] を選択し、[その他] > [管理者として実行] の順に選択して、管理者権限で Exchange 管理シェルを開きます。
    4. transport-1-a の Exchange AD LDS サーバー証明書をインポートします。

      Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
      

      PATH は、transport-1-a の Exchange AD LDS サーバー証明書へのパスで置き換えます。

    5. transport-1-b の Exchange AD LDS サーバー証明書をインポートします。

      Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
      

      PATH は、transport-1-b の Exchange AD LDS サーバー証明書へのパスで置き換えます。

    6. transport-1-atransport-1-bエッジ サブスクリプション ファイルをインポートします。

    7. メールボックス サーバーで EdgeSync プロセスを手動で開始し、同期が成功したことを確認します。

受信メールフローのロード バランシングの設定

エッジ トランスポート サーバーへの受信メールフローを有効にするには、ネットワーク ロードバランサ リソースを作成します。

  1. 既存の Cloud Shell セッションに戻ります。
  2. ターゲット プールを作成します。

    gcloud compute target-pools create transport-pool --region $SUBNET_REGION
    
  3. エッジ トランスポート サーバーの 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
    
  4. ロードバランサに外部 IP アドレスを予約します。

    gcloud compute addresses create transport-frontend --region=$SUBNET_REGION
    
  5. 転送ルールを作成します。

    gcloud compute forwarding-rules create www-rule \
      --region $SUBNET_REGION \
      --ports 25 \
      --address transport-frontend \
      --target-pool transport-pool
    
  6. ロードバランサの IP アドレスを調べます。

    gcloud compute addresses describe transport-frontend  \
      --region=$SUBNET_REGION \
      --format=value\(address\)
    

    これで、トランスポート サーバーを使用して、この IP アドレスのポート 25 でメールを受信できるようになり、受信メールがメールボックス サーバーに渡されます。

  7. Telnet を使用して Exchange サーバー上の SMTP 通信をテストするの手順に沿って、メール配信が機能することを確認します。

  8. エッジ トランスポート サーバーの設定を完了するには、Exchange サーバーのメールフローおよびクライアント アクセスの構成の手順を行います。

SendGrid を使用した送信メールフローの設定

Google Cloud はポート 25 での送信接続を許可しないため、カスタム送信コネクタを設定して送信メールを処理します。

  1. Google Cloud Marketplace を使用して、SendGrid メールサービスに登録します。
  2. SendGrid ウェブサイトで、新しい API キーを作成します。
  3. VM インスタンス transport-1-atransport-1-b のパブリック IP アドレスを、許可された IP アドレスのリストに追加します。

送信コネクタの作成

SendGrid をスマートホストとして使用する送信用の送信コネクタを作成します。

  1. Exchange 管理センター(EAC)に戻ります。
  2. EAC メニューで、[mail flow] > [send connectors] の順に選択します。
  3. [+] をクリックします。
  4. [New send connector] ダイアログで、次の設定を入力します。
    • Name: SendGrid
    • Type: インターネット(インターネット メールの送信など)
  5. [Next] をクリックします。
  6. [Network settings] で、[Route mail through smart hosts] を選択し、[+] をクリックします。
  7. [Add smart host] ページで、「smtp.sendgrid.net」と入力します。
  8. [Save] をクリックします。
  9. [Next] をクリックします。
  10. [Smart host authentication] で、[Basic authentication] を選択します。
  11. 次の情報を入力します。
    • User name: apikey
    • Password: SendGrid ウェブサイトで作成した API キーを貼り付けます。
  12. [Next] をクリックします。
  13. [Address space] で、[+] をクリックします。
  14. 次の情報を入力します。
    • Type: SMTP
    • Full Qualified Domain Name (FQDN): *
    • Cost: 1
  15. [Next] をクリックします。
  16. [Source server] で、[+] をクリックします。
  17. [transport-1-a] と [transport-1-b] を選択して [OK] をクリックします。
  18. [Finish] をクリックします。

SMTP ポートの変更

カスタムポートを使用するように送信コネクタを構成します。

  1. いずれかのメールボックス サーバーで [Start] を右クリックし、[Exchange Management Shell] を選択して Exchange 管理シェルを開きます。
  2. 送信コネクタを変更してポート 2525 を使用します。

    Set-SendConnector -Identity "SendGrid" -port 2525
    
  3. エッジ同期をトリガーして、構成変更がすべてのエッジ トランスポート サーバーに伝播されることを確認します。

    Start-EdgeSynchronization -ForceFullSync
    

クリーンアップ

このチュートリアルの完了後に請求が発生しないようにするには、作成したエンティティを削除してください。

Google Cloud プロジェクトの削除

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ

  • Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud Architecture Center をご覧ください。