[Mail][Office365][Cloud] メール基盤のクラウド化

グループウェアを変更して間もないんだけど

過去、メール基盤に手を加えるという記事の中で、WebメールをZimbra Community EditionというOSSグループウェアに切り替えたのですが、ここ最近仕事上でもこの手のサービスのクラウド化とかが耳に聞こえたりすることが多く、ちょうど私自身Office365 for Businessを触っていることから、ついでにExchange Onlineなるものを触ってみようかということで手を出しました。

Exchange Onlineとは

Exchange Onlineというのは、グループウェアサーバであるMicrosoft Exchange ServerをSaaS化したようなものかなと思っています。月額サービスですが、意外とお安いんですよね。

https://products.office.com/ja-jp/exchange/exchange-online

私が契約したのはExchange Online プラン1というもので、50GBのメールボックスとMAPIインタフェースが扱えるもので、月額にして440円。年額だと若干のボリュームディスカウントが入って、5,702円でした。思い切って年額一括払いでドーン。

既存メール基盤からどうして切り替えるのか

先述した理由もあるんですが、その他にもいくつか理由があります。

  • Zimbraのモバイルインタフェースが少々貧弱
  • WAFの穴あけがつかれた
  • 内部コアメールサーバが老朽化
  • 外部にサービス移管することによる運用上のメリット・デメリットを探りたい

特に、「モバイルインタフェース」のくだりは非常に要因として大きく、デスクトップ版であればZimbra Desktopというアプリケーションが存在するのですが、モバイルインタフェースはWebクライアントしかなく、プッシュ通知が行えないのがちょっとつらいなと感じました。
メールリマインダがあるので、カレンダーの通知はそれで代替できるのですが、メールの着信がちょっと厳しいかなーと感じた次第です。

加えて、内部コアメールサーバのOSはCentOS6.9であり、もう稼働してだいぶ長いこと経過しており、当時の構築不備等もあってあまり長々動かせる状況にはないのかなと感じていました。幸いあまり大事なメールのやりとりはしてないので、これを機にスパッと切り替えてみるかと背中を押した要因になってるかなと思います。

構成

こちらが旧環境。

こちらが新環境。

新環境のメールプロキシとインターネットゲートウェイは同一機器です。すでに構築済みのオンプレミスAD環境・AADサーバ環境・AzureAD環境に上図のように乗っかる感じになりました。Azure ADはオンプレミスADの情報を正として同期している状態で、ユーザ情報の修正は基本的にAD側で修正する形となっています。

各サーバのメールは、メールプロキシを通じてExchange Onlineへ転送する形をとっています。この時、Exchange Online側としては、メールプロキシのグローバルIPアドレスを登録し、それを受信条件にした受信コネクタを構成することで、内部メールとして受け取ることができるようになっています。

権威DNSサーバは内部はWindows DNS、外部はAWS Route53です。メールクライアントは

  • OWA(WebClient)
  • Outlook(Desktop Client)
  • Outlook for iPhone(Mobile Client)

を使っていくことになります。

サブスクリプション購入から実際に使えるまでの流れ

今回細かく書くと体力的にもたないため、ざっくり書くことにします。結果的に以下の流れとなりました。

  1. サブスクリプションを買う
  2. ユーザにライセンスを割り当てる
  3. 既存オンプレミスメールデータをExchange Onlineへ移行する
  4. DNS設定を切り替えて、メール配送経路やSPF情報などを更新する

で、作業中ハマったのは以下のポイントです。

  • 過去のExchange Serverのゴミが残り、色々設定が狂ってた
    過去の記事を見ると分かるかもしれないのですが、これまでBLUECORE.NETでは技術を知るためにExchange Server 2003やExchange Sever 2007を構築して評価してた時期があります。
    特にExchange Server 導入時に拡張されたスキーマや、Active Directory内の追加情報にオンプレミスExchange Serverを使ってた頃のゴミが結構残っています。
    これらは、2011年にGmailをメインに切り替えた時点で一度綺麗さっぱり削除しているんですが、ユーザ内のプロパティに残ったゴミは消しきれてなかったようで、そのために、メールボックスに意図しないメールアドレス等が残ってかなり苦労しました。

    今回、意図せず残ってた属性の一つに「ProxyAddresses」というものがあります。ここで「SMTP」を接頭辞に定義したアドレスがプライマリアドレスに、「smtp」を接頭辞に定義したアドレスがセカンダリアドレスになります。
    このアドレスが意図しない設定になってる場合、特にアカウント情報と整合性が取れてない場合には移行は結構苦労しますので注意をしてください。」

  • ZimbraのIMAP直接同期ができなかった
    ZimbraはSecureなIMAPに対応していて、そのポートは7993/tcpだったりします。
    本来はこれで動くはず・・・・なんですが、どうしても同期ができない。エラーを確認したところ、一部属性で、互換性がなかったことが原因のようです。
    結果、以下の通り対応しています。
    すごく安直なやり方なんですが、要はサーバ的移行を諦め、クライアント的移行に逃げたという感じです。ただ、PSTファイルの移行もそんな簡単ではなく、Azure上にExchange Onlineが払い出してくれる領域へAzCopyというツールを使ってこれをアップロードしなければなりません。

    また、後述する権限不足になかなか気づけず、そこでかなり時間を浪費しました。

  • メールのImport/Export権限がない
    「俺は全体管理者だぞー」と思ってたら、実はExchange 管理センターに対してメールのImport/Export権限がないことを知りました。Exchange管理センターで、きちんとロール定義を行い、メールのImport/Export権限を付与することが必要です。

    ただ、この権限付与の反映にはそれなりな時間がかかるようで、最大24時間かかるとのこと。当方の場合ですと、およそ2時間程度待つことになりました。他のブログとか見てみますと10分待ってればOKだったという話もあり、どうやらユーザによってまちまちのようです。

  • インポートしたメールフォルダがローカルクライアントで参照できない
    厳密には、Officeデスクトップクライアントでインポートしたメールフォルダの中身が見えない、Outlook for iPhoneに至ってはそもそもメールフォルダが見えないと言う状況になりました。
    これに対しては、フォルダを構成し直して、メールフォルダの移動をかけたら各クライアントに反映され、無事見えるようになりました。
    インポートしたデータに何らかのゴミが残ってたりしたのかな?と言う感じで、あまり細かい裏付けはしていません。

得られた効果

こんな感じですね。

  • 自前メールアドレス運用不安の軽減
    これまで「自前メールアドレス≒おもちゃ」と言う認識が強かったです。そもそも自宅インフラ自体が「実験場」と同等であるが故、まともなサービスレベルを維持できんのです。しかしながら、このあたりのサーバとしての運用をSaaSで吸収させることで、一定のサービスレベルを確保でき、このアドレスをプライマリアドレスとして使えるに足る状況までもってこれたかなと思います。
    現在、メインで使ってるGmailをこれに移行しようかなと進めてるところです。
  • 自宅仮想化基盤リソースの節約
    メールサーバに割り当てた2GBメモリ、Zimbraサーバに割り当てた8GBメモリを開放することができ、加えてNFSストレージに対する負荷も軽減できたので、また色々な勉強に手を出すことができるようになったのかなという気持ちです。
  • プッシュ通知が本当に便利
    カレンダーやメールのプッシュ通知が本当に便利です。あと、GMailではSophos UTM9のExecutive Summaryが正しく表示できず、毎日初回表示させる際にほぼ100%固まってたんですが、それが解消されたのは嬉しいです。
    ただ、GMailと違ってメール本文はフル表示を基本するので、場合によって使いにくいことがあるかもしれません。とは言え、監視系のメールは逆に省略されると把握が難しくなるので、それは良かったのかなと思います。

クラウド嫌いなおぢさん(=私)でもやらざるを得ない状況。だが・・

ぶっちゃけ私はクラウドというものが嫌いです。
ただ、その嫌いな原因として挙げていた「なんだかよくわからない代物」感が、ここ最近になってだいぶ晴れてきたような気がします。なので、私自身まだとっつけるのかなーと思っています。

昔はIaaSと称して単なる仮想基盤を「クラウド」と呼ぶケースが多かった気がします。結果として、「仮想基盤とクラウドって何が違うんや?」と言われてた時期があったのかなと思います。

しかし、今やSDNやサーバレスに代表されるような技術が出てきました。クラウドを本当にクラウドとして扱える基盤技術が充実し、それに伴って「クラウド=サービス」として出せる物が増えてきたのかなと。

これまで十数年に渡り、インフラエンジニア的な仕事を継続していますが、ここ最近になって仕入れる知識量が一番多いような気がします。それはそれで、とっても楽しい。体を病んでも維持できるQoLは、こうしたネタの量によるところが大きいのかもしれません。

タイトルとURLをコピーしました