HinemosからAmazon SESへメール通知してみる

作成日 2014/12/25
更新日 2014/12/25

概要

HinemosからAmazon Simple Email Service(Amazon SES)を使ったメール通知の設定例と注意事項を説明します。

<参考情報>
Hinemosの[実践]入門の本が出ました。Hinemosをもっと詳しく知りたい方は、以下の書籍がお勧めです。

Hinemos統合管理[実践]入門

課題

Hinemosのメール通知機能を使用することで、システムの障害やジョブ異常終了などのタイミングでメールを送信することができます。AWSのAmazon SESもSMTPサービスとして、Hinemosのメール通知機能を使用できます。しかし、ハイブリッドクラウド環境などAWS以外の環境にHinemosマネージャが動作する場合、その環境の要件によってAmazon SESを利用するに当たり注意する点があります。

例えば、プライベートクラウド環境(例えば、MCP上の環境)では、セキュリティの都合上、OUT BOUNDのポートとしてデフォルトで25,587ポートがブロックされています。そのため、MCP上のHinemosマネージャからAmazon SESへメール通知する際には、465ポートのみという選択肢になります。そして、Amazon SESの待ち受けポート25, 465,587では使用できるプロトコルが異なるため、Hinemos側の設定もそれに合わせて変更する必要があります。

本技術情報では、このような環境要件で変わるケースでHinemosからAmazon SESを使用する場合の注意点を設定例と合わせて説明します。

メリット

HinemosからAmazon SESを使用する場合の注意点が分かります。

前提条件

この技術情報を用いる上で前提条件を説明します。

・AWSアカウント
 読者のAWSアカウントを利用します。
 このアカウントでは、Amazon SESの設定を行います。
 Amazon SES設定時の注意事項も、本技術情報にて説明します。

対象環境

この技術情報を適用する環境について説明します。本技術情報では、CentOS 6.5、Hinemos v4.1の環境を想定します。

・インターネットに接続可能なHinemosマネージャサーバ
 Hinemos v4.1を想定しています。
 HinemosマネージャからAmazon SESへの接続のためのインターネット接続環境が必要です。
 オンプレミス環境、仮想化環境、パブリッククラウド環境上の何れも問いません。

実現方法/解決策(Amazon SESの設定について)

Amazon SESは、AWSの発信専用のメール送信サービスです。Amazon SESの待ち受けポートは25,465,587です。Amazon SESを利用できるリージョンは以下の通りです。

・US East (N. Virginia)
・EU (Ireland)
・US West (Oregon)

また、Amazon SESではsandbox環境とproduction環境があり、両者の違いについては以下の表の通りです。

項目 sandbox production
1日のメール送信数 200 10,000
1秒間のメール送信数 1 5
送信元のメールアドレス認証(FROM) 必要 必要
送信先のメールアドレス認証(TO) 必要 不要

本技術情報では、sandbox環境で問題ありませんが、送信元のメールアドレス認証(FROM)とだけでなく、送信先のメールアドレス認証(TO)があるため、送信先のメールアドレスも事前に認証する必要があります。また、1日のメール送信数や1秒間のメール送信数に制限があるため、検証等の用途ではご注意ください。

以下に、sandbox環境の設定手順(2014.9)を説明します。この手順に従い、送信元のメールアドレスと送信先のメールアドレスの両方を認証してください。

[Amazon SES利用とメールアドレス認証手順]
1.AWSマネジメントコンソールにログインして、Amazon SESの画面を表示してください。「SMTP Settings」をクリックしてください。
2.「Create My SMTP Credentials」をクリックしてください。
3.IAMのユーザ名を入力して、「Create」をクリックしてください。
4.「Download Credentials」をクリックしてください。Smtp UsernameとSmtp Passwordが記載されたcredentials.csvがダウンロードされます。「Close Window」をクリックしてください。
5.「Email Addresses」をクリックしてください。
6.「Verity a New Email Address」をクリックしてください。
7.メールアドレスを入力して、「Verity This Email Address」をクリックしてください。
8.「Close」をクリックしてください。
9.入力したメールアドレスにメールが送信されてきますので、リンクをクリックしてください。
10.AWSマネジメントコンソールAmazon SESの画面にて、「Email Addresses」をクリックし、登録したメールアドレスの「Status」が「verified」であることを確認してください。
11.登録するメールアドレスが複数ある場合は、「Verity a New Email Address」をクリックして同様の手順で登録してください。

[SMTP認証情報の作成手順]
1.AWSマネジメントコンソールAmazon SESの画面にて、「SMTP Settings」をクリックし、「Create My SMTP Credentials」からSMTPサーバへの認証のためのアクセスキーとシークレットキーを作成してください。

実現方法/解決策(Hinemosの設定例)

Hinemosのメール通知で使用するSMTPサーバの設定は、Hinemosマネージャの設定ファイル「/opt/hinemos/etc/mail-service.properties」に指定します。mail-service.propertiesの設定変更の反映は、Hinemosマネージャの再起動が必要です。(Hinemosのメール通知はJavaMailを使用していますので、JavaMailのサンプル設定としても活用頂けます。)

SMTPサーバのホスト名は、AWSマネジメントコンソールAmazon SESの画面にて、「SMTP Settings」をクリックし、表示される「Server Name」の値です。例えば、「email-smtp.us-east-1.amazonaws.com」がこれに該当します。

[Amazon SES ポート共通の設定]

パラメータ 設定値 備考
hinemos.mail.transport.user SMTP認証情報のアクセスキー
hinemos.mail.transport.password SMTP認証情報のシークレットキー
hinemos.mail.from.address 送信元メールアドレス 認証済メールアドレス
mail.smtp.starttls.enable true プロパティ追記

[Amazon SES ポート25/587の場合]
SMTPプロトコルで通信します。

パラメータ 設定値 備考
mail.transport.protocol smtp smtp 変更不要
mail.smtp.host

Amazon SESのServerName

(email-smtp.us-east-1.amazonaws.com等)

「SMTP Settings」参照
mail.smtp.port 25 ポート587を使用する場合は変更
mail.smtp.connectiontimeout 15000 変更不要
mail.smtp.timeout 30000 変更不要
mail.smtp.auth true 変更必要

[Amazon SES ポート465の場合]
SMTPSプロトコルで通信します。SMTPプロトコルで使用するプロパティと違うため注意が必要です。

パラメータ 設定値 備考
mail.transport.protocol smtps 変更必要
mail.smtps.host Amazon

SESのServerName

(email-smtp.us-east-1.amazonaws.com等)

プロパティ追記
mail.smtps.port 465 プロパティ追記
mail.smtps.connectiontimeout 15000 プロパティ追記
mail.smtps.timeout 30000 プロパティ追記
mail.smtps.auth true プロパティ追記

この設定を行い、Hinemosマネージャを再起動することで、HinemosにAmazon SESの設定が反映されます。あとは、メール通知の設定にて、認証済みのメールアドレスに対してメールが送信できることを確認してください。

免責事項

本ソフトウェアの使用・本ドキュメントに従った操作により生じたいかなる損害に対しても、 弊社は一切の責任を負いません。

注意事項

本ドキュメントの内容を実施すると、AWSにおいて料金が発生する場合があります。AWSの料金体系等を理解した上で操作を実施してください。
本ドキュメントにおいて、2014年12月現在の AWSのサービスに従い記載しておりますが、AWSのサービス変更に伴い、これらの操作が変更となる可能性があります。

関連情報

お問い合わせ