技術者が紹介するテクノロジー

変化しているメールのポジションとメールシステムの課題

IP電話、電子メール、掲示板、IM(インスタントメッセンジャー)、グループウェア、ブログ、SNS、ミニブログ(twitter) 等々

昨今、コンピュータネットワークを介して、多様なコミュニケーションツールが利用されており、法人、個人問わず、様々なシーンにおいて、これらは必要不可欠なものばかりです。
また、利用環境も固定のパソコンから、ロケーションを選ばない携帯電話やスマートフォンからの利用へと広がりをみせています。

今後も多様化は進み、いろいろな分野で利用されていくことと予測されます。
それぞれのツールを利用するにあたり必要となるのは、大別するとパソコン、スマートフォン、タブレットなどのクライアントとコンピュータネットワーク環境、そしてそれぞれの機能を提供するサーバーです。
そのクライアントとサーバーが相互通信することで、メールの送受信やブログの投稿、閲覧などコミュニケーションサービスを利用できるのです。

各サーバーについては古くから利用されていて広く知られている技術から、クライアント機器の発展に伴い、最近使われるようになった技術までいろいろなものがあり、1つのコミュニケーションツールを例にとっても多くの技術が利用されています。
その中から現在も広く利用されている電子メールについて紹介します。

電子メールについて

電子メール (以下メール)とはコンピュータネットワークを介してメッセージをやりとりする最も一般的な手法です。
古くから利用されているメールサービスを実現するプロトコル (仕組み)として

SMTP(メールを該当のメールアカウントが属するメールサーバーまで配送する)
POP(メールサーバーから該当のメールを取得する)
IMAP(メールサーバー上でメール操作を行う)

などが広く用いられています。

電子メールの配送の簡単な概要は下図の通りです。

MTA:コンピュータネットワーク内で電子メールを配信する機能、ソフトウェア
MDA:メールサーバー内の電子メールを受信者に配送する機能
MUA:一般に「電子メールソフト」「メールクライアント」「メーラー」などと呼ばれるもの

前例で示した通り、従来は電子メールと言えば「1対1の意思疎通のためのテキスト送受信」のための単純なツールとして利用されてきました。
現在では、「同時に多数との情報共有」、「ビジネスにおける証跡記録」、「ファイル管理」、「企業内外システムとの連携」等、企業活動における様々な利用シーンで必要不可欠、かつ複雑なツールへと変化しています。

また、法的整備も追随し、メールの重要性が高まり、大企業のみならず中小企業においてもメール利用における変化が、顕著になってきています。この変化に対応すべく、システム拡張、更改を行う企業が増えています。

何れの選択を行うにしても課題や運用業務の肥大化が日々、システム設計者、管理者の頭を悩ませています。その一部を下記します。

メールボックス大容量化、監査保存機能追加に伴う、「ストレージへの負荷」

要求:「大容量で安いストレージ」の開発が必要 (GlusterFSの利用)

メールデータの重要性向上に伴う、「冗長性の仕組み」

要求:「データの2重化、ディザスタリカバリ」のシステム構築が必要

高セキュリティ環境での「メールデータの管理(NW機器やサーバーの脆弱性対応)」

要求:「L7レベルのファイヤーウォール」「高度な認証システム」が必要

外部ツール(グループウェア、データベース)との「システム連携(認証方法)」

要求: 「アクティブディレクトリ」「LDAP」等のデータベース連携が必要

メールクライアント、利用シーンの多様化に伴う、「メール流量の増加」

要求: 「セッション数コントロール」「フローコントロール」が必要

スパム、ウィルス対策、メール不通、機器故障、アカウント管理等の「トラブル対応や運用業務」

要求: 「品質向上」「クイックレスポンス」が必要

上記より、今回は「メール流量の増加」に関して、考えてみたいと思います。

メール流量増加について

昨今、スマートフォンの普及などにより様々な環境でメールの利用範囲が広がったことから、単純にメール流量数(SMTP)も増えました。
また、環境に依存せず、WEBブラウザからメールサーバー上のメールを直接閲覧、削除を行えるWEBメールが広く利用され、IMAPの利用も増えてきました。

SMTP数の増大に比例して、単純にシステムへの負荷は増大します。また、従来、よく利用されていたPOPはメールサーバーからメールを取得し終わるとコネクションを切断するのに対し、メールサーバーにコネクションを保持し続けるIMAPは、さらにシステムへ負荷がかかってしまい、場合によっては正常な動作が保証できなくなります。

当たり前に利用できるはずのメールが利用できないととても困りますよね?
そのため、メール流量やコネクション数の上限をなくして、システムへの負荷が増え続けてもいけません。そうかと言って、必要以上に制限してしまっては快適な利用もできません。
基本的に、システムを構築する前に利用者の使い方を十分に検討し、設計構築する必要があります。
とはいっても、IMAPのようにコネクション接続数はMUA(メールクライアント)の仕様により可変するものもあり、日々、アップデートされるクライアントの環境依存で、当初の想定収容数を超えることも想定できます。そのため、システム運用上で、より適正な値へ修正していく必要があります。

あるメールシステム構成(マルチドメイン対応)での事例を考えてみます。

メールシステム構成概要(マルチドメイン対応)

ここで、IMAP負荷が発生し、障害となりうる一般的な例とその対応方法を示します。

【1】特定のユーザー(ドメイン)からのアクセスが増加している場合

対応
特定のユーザーのみのアクセスが原因となります。
そのため、対応策は特定のユーザーのIMAPアクセスのみ流量コントロールを実施することです。手法の詳細は後述します。

【2】対象サーバーに収容されているユーザー単位ではなく、全体的なアクセスが上昇し、サーバーの負荷となっている場合

対応
収容ユーザー全体のアクセスが原因となります。
そのため、対応策はサーバーに対する流量コントロールを実施することです。
【1】のように対象サーバーに収容されている個別ユーザーをそれぞれ制御するのでは、手間がかかります。解決手法としては対象サーバーで利用しているソフトウェアの設定でIMAP流量コントロールを実施することが簡単かつ最良な対応方法でしょう。詳細は割愛します。

【1】ある利用ユーザーのみのアクセスによる負荷
→特定の通信のみ流量コントロールを実施する

ロードバランサーはF5ネットワークスジャパン株式会社 BIG-IP(LTMv10)を利用。
本ロードバランサーではWAN側に「GlobalIP:port番号」でVirtual Serverを設定しており、内部通信向けに各poolメンバーへSource NATを実施していることを前提としています。
そのため、Virtual IPが割り振られるため、ユーザーごとに通信を制御することができるのです。

上記の設計より、各Virtual Serverごとに「アクセス元IP:port番号」の特定ができます。その特定したVirtual Serverに「Connection Limit」を設定することで、そのユーザー(プロトコル単位)のみのコントロールを実施することができます。

ターミナルでの手順例を以下に記載します。

まず、すべてのVirtual Serverへのアクセス確認コマンドを実行し、現在のコネクション数情報を取得し、コネクション数が多いVirtual Serverを特定します。

最後にサーバーへの負荷状況を確認し、手順は完了です。

【2】特定サーバーへの多数アクセスよる負荷
→対象のサーバーで流量コントロールを実施する

ソフトウェアの設定(ポート番号ごとの最大同時接続数)にて制御する

まとめ

今回は、IMAPコネクション数を例にあげましたが、前述した通り、現在のメールシステムが抱える課題は多数あり、安定的なサービスを提供するには、システム設計、運用対応が重要となります。

また、日々新しい技術が開発、利用されているため、いくら完璧な設計を目指したとしても、想定外の動作が発生することは否めません。

その想定外の動作に対応できるシステム設計・運用者の技術力、柔軟性こそが、本当の安定的なサービスを提供するために必要な要素であると考えます。

今後も品質向上実現のために新しい技術の習得、活用を続けていきます。

記事内容に関しNTTPC社が提供する関連サービス

Mail Luck!

page top