Taiki's Blog

ビジネスとテクノロジーの変化に迫る

【Azure】オンプレADをクラウドに移行してみた。その結果、高い授業料に。。

こんにちは、Taikiです。

今回は、個人的な勉強として、自宅(以下オンプレ)でVirtualbox内にActive Directoryを構築しAzureに移行してみました。その検証を通して、Azureの仕組みと躓きやすいポイントをまとめてみました。高い授業料を払う羽目になりましたが、目次はこちらです。

オンプレのADをクラウドに移行する理由は、BCP対策、管理コストの削減などがありますが、基本的にはドメコンは2台以上あった方がいいので、1台はオンプレ、もう1台はクラウドのような構成がおすすめですが、今回クラウドのみの構成にしています。

f:id:vtaiki:20191213002800p:plain

システム構成と作業手順

【システム構成】

【作業手順】

 Azureを契約する

まずはAzureを契約します。契約に必要なのはこの情報です。

  • Microsoft Azureアカウント(ない場合は新規作成)
  • クレジットカード情報(請求書払いもOK)
  • 秘密鍵・公開鍵の作成( PuTTYgen等で作成する)

AWSの場合だと、AWS側が秘密鍵・公開鍵を生成しますが、Azureは自分で作成した鍵を保存しないといけません。少し面倒ですが、PuTTgen等で作成できます。

仮想ネットワークを作成する

次にAzureに仮想ネットワークを作成します。

  • 仮想ネットワークアドレス空間:172.16.0.0/16
  • 仮想ネットワークサブネット:172.16.2.0/24
  • 仮想ネットワークゲートウェイサブネット:172.16.1.0/29
  • ローカルネットワークゲートウェイサブネット:192.168.100.0/24

仮想ネットワークでクラウド全体のアドレス空間ゲートウェイサブネット、サーバーサブネットを切ります。ローカルネットワークで、オンプレのローカルサブネットを定義し、オンプレ・クラウド間でNAT越えができるようにします。

一通りネットワークを作成したら、仮想ゲートウェイ・ローカルネットワークゲートウェイを組み合わせ、「接続」という状態を作成してあげます。その際に、オンプレとのIPSec接続で使う共通キー(PSK)を設定します。

f:id:vtaiki:20191213223254p:plain

Site-to-Site (サイト間) 接続

オンプレとAzureとのハイブリッド通信方法は3種類あります。

  • Point-to-Site (ポイント対サイト) 接続
  • Site-to-Site (サイト間) 接続
  • ExpressRoute

Point-to-Siteですが、MSからVPNポリシーをダウンロードしWindowsのPCにあるVPNクライアントを使ってクラウドに接続します。ユーザー数が少ない場合は、この方法がいいです。

ユーザーが多い場合は、Site-to-Site(サイト間)がいいですね。

ExpressRouteは、信頼性が高い、速度が速い、待機時間 (レイテンシ) が短い、安全性が高いという特長があります。ネットワークサービスプロバイダーが提供するMPLS回線を経由しての接続となるため、費用が高くなります。

Site-to-Site(サイト間)のVPN通信を抑えるポイントはこの3点です。

VPN ゲートウェイを設定する

IPSecでAzureと認証を取る

・NATトラバーサルを設定する

あとはフィルターの設定を行い不正な通信を遮断すればOKです。実際のYAMAHAのコンフィグに設定した情報はこちらです。

# ゲートウェイの設定
ip route 172.16.0.0/16 gateway tunnel 1

# VPN(IPsec)の設定
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha256-hmac anti-replay-check=off
ipsec ike version 1 2
ipsec ike duration child-sa 1 27000
ipsec ike duration ike-sa 1 28800
ipsec ike group 1 modp1024
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on rfc4306
ipsec ike local address 1 192.168.100.1
ipsec ike local name 1 [オンプレ側のグローバルアドレス] ipv4-addr
ipsec ike nat-traversal 1 on
ipsec ike message-id-control 1 on
ipsec ike child-exchange type 1 2
ipsec ike pre-shared-key 1 text 1234567890
ipsec ike remote address 1 [Azure側のグローバルアドレス]
ipsec ike remote name 1 [Azure側のグローバルアドレス] ipv4-addr
ipsec ike negotiation receive 1 off
ip tunnel tcp mss limit auto
tunnel enable 1
ipsec auto refresh on

# NATの設定
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 [オンプレ側のグローバルアドレス]
nat descriptor masquerade static 1000 1 192.168.100.1 udp 500
nat descriptor masquerade static 1000 2 192.168.100.1 esp
nat descriptor masquerade static 1000 3 192.168.100.1 udp 4500

Yamahaのサイトに設定手順が掲載されていますのでご参考ください。

network.yamaha.com

Azureで仮想マシンを作成する

仮想マシンを作成する上で失敗したことが何個かあります。

  1. 最小サイズの仮想マシンWindows Server 2019 DataCenterを構築しようとした
  2. 先で作成した仮想ネットワークに仮想マシンを追加しなかった
  3. 仮想マシン上でネットワークを設定した

上記1ですが、B1の最小サイズの仮想マシンで2019サーバーを立てようとしたらスタックオーバーで起動不良を起こしました。リモート接続もできず何もできずです。仕方なくサイズを変え作り直しました。個人検証とはいえケチるとだめですね。

f:id:vtaiki:20191213223447p:plain

上記2ですが、仮想マシンを作成するときに、仮想ネットワークを選択するオプションがあるのですが、仮想ネットワークを新規に作成してしまいました。先で作成した仮想ネットワークでローカルネットワークゲートウェイと対応付けしているため、新規のネットワークだとVPN通信ができません。失敗でした。

最後の3ですが、これは単純に無知でした。オンプレ同様にWindows Server上のネットワークアダプタで固定IPを設定したのですが、ネットワークエラーを起こし、通信が取れなくなりました。調べてみると、IPやDNS指定などネットワーク設定はAzure Portalのサービス側で設定しないといけなかったのです。

こちらがAzure Portalの固定IP設定画面です。

f:id:vtaiki:20191213224135p:plain

DNSはこちらで指定します。

f:id:vtaiki:20191213224229p:plain

メコンをハイブリッド構成にする

ADのサイトとサービスで、新しいサイトとクラウドのローカルサブネットを追加し、ドメコンをハイブリッド構成にします。ここはオンプレと同じ要領です。

f:id:vtaiki:20191213232303p:plain

ここでは、仮想マシン上にをADを作成していますが、AzureにはActive Directoryドメインの機能をPaaSで提供する、Azure Active Directory Domain Services(以下、AADDS)があります。ではオンプレのADをAADDSに移行できるのでしょうか。

正解は一部移行できますが、完全にはできません。オンプレADをAADDSに移行する場合、幾つかの手順を踏みます。

  1. Azure側のAADDSでドメインを作成する
  2. オンプレ側でAzure AD Connectサーバーを構築する(ドメコンと共存できない)
  3. Azure AD ConnectサーバーとAzure ADを同期させる
  4. Azure ADに同期されたユーザーをAzure AD Domain Servicesでドメインユーザーとして利用する

しかし、Azure AD Connectから同期できるオブジェクトに制約があります。下記のオブジェクトは同期することができません。

  • GPO
  • コンピューターオブジェクト
  • OU

f:id:vtaiki:20191215104907p:plain

なので、オンプレADをAADDSに移行後は、足りない分を手動でカスタマイズしないといけません。もちろんAzure AD ConnecとAzure ADでは信頼関係が結べないため、並行期間という選択肢はありません。完全に独立した別個のドメインとなるため、エイヤで一気に移行となります。もし同一ドメインを継続利用したい場合、DNSレコードの書き換え等、ドメイン移行業務も発生します。

つまり、AADDSのPaaSサービスは、オンプレからのドメコン移行には向かないという事です。サーバーレスでクラウド完結型のドメコンを新規に立てたい場合は重宝するでしょう。

プライマリドメコン(FSMO)の役割を委任する

プライマリのドメコンにはセカンダリにはない、特別な役割があります。

なぜこれがプライマリにあるのか。ドメコンが沢山ある環境では、直ぐには同期が行き渡らず不整合を起こし、サーバーやコンピュータで通信や認証のエラーを引き起こす恐れがあります。それを防ぐため、最新の情報は常にプライマリが保有し、何かあればプライマリドメインを参照する約束になっています。プライマリドメインはFSMO(操作マスター)と呼ばれる理由です。

従って、この役割を委任すればセカンダリがプライマリに昇格します。

具体的には、CMDでコマンドを打ち、各役割をセカンダリに転送しますが、時刻同期をしていなかったため、オンプレとクラウド間に時差が生じ何度か失敗しました。操作手順はこちらのブログを参考にさせて頂きました。

fsmo セカンダリADの昇格

役割委任の前は、オンプレの2008サーバーにFSMO(操作マスター)でした。

f:id:vtaiki:20191213224624p:plain

委任後はクラウドの2019サーバーにFSMO(操作マスター)が移行されました。

f:id:vtaiki:20191213224808p:plain

オンプレサーバーを停止しクラウドのシングル構成を確立

FSMOの委任が完了したら、オンプレにあるPCのDNSクラウドADのみに向け、オンプレADをシャットダウンします。シャットダウン後も内外のネットワークに接続できれば成功です。お疲れ様でした。

まとめ

今回は完全自費で検証してみましたが。発生した費用は約30,000円と高い授業料になりました(YamahaVPNルーターが約15,000円、Azureのサブスクリプションが約15,000円)。。

Azure料金内訳をみると、興味本位で作成したAzure AD Domain Service、大容量のプレミアムSSDが料金を圧迫し、無料枠の¥22,500を超過してしまいました。皆様もクラウド利用の際はご注意ください。

f:id:vtaiki:20191213230844p:plain