技業LOG
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コネクション数を例にあげましたが、前述した通り、現在のメールシステムが抱える課題は多数あり、安定的なサービスを提供するには、システム設計、運用対応が重要となります。
また、日々新しい技術が開発、利用されているため、いくら完璧な設計を目指したとしても、想定外の動作が発生することは否めません。
その想定外の動作に対応できるシステム設計・運用者の技術力、柔軟性こそが、本当の安定的なサービスを提供するために必要な要素であると考えます。
今後も品質向上実現のために新しい技術の習得、活用を続けていきます。
技業LOG
NTTPCのサービスについても、ぜひご覧ください