当記事の概要
Amazon Lightsailは、月額数ドル〜でAWS上に簡単にサーバ・Webアプリケーションを構築できるサービスです。
このAmazon LightsailでRedmineサーバを構築した際、Redmineからのメール通知用に Amazon SES も一緒に利用したのですが、SESのドメイン認証が当初うまくいかなかったので、その解決方法を記載します。
ハマったポイント
Amazon SESからメールを送信するためには、送信元のメールアドレス、または、ドメインを事前に検証する必要があります。
このうち、ドメイン検証では、例えばAWSのRoute 53でドメインを取得し、Route 53でDNSを管理している場合、SESの設定の中で容易にドメイン検証を行うことができます。ただ、LightsailでDNS Zoneを作成している場合、SESの設定で完結せず、LightsailでのDNS設定が必要になります。
整理すると、当記事の対象とするケースは以下になります。
- ドメインはRoute 53で取得済み
- LightsailでDNS Zoneを作成済み
※ドメインをRoute 53で取得していたため、SESのRoute 53連携で事足りるかと勘違いしていたのですが、LightsailでDNS Zoneを作成している以上、Lightsail側での設定が必要であった、というオチになります。
SESのドメイン検証の手順
上記のケースにおけるSESのドメイン検証の手順は以下の通りです。
SESの管理画面で、メニューの「ID」を選択し、「IDの作成」ボタンをクリックします。
IDの作成画面で、「IDタイプ」として「ドメイン」を選択し、対象のドメインを入力します。
同画面で、「DKIMの詳細設定」を展開します。
DKIMの詳細設定で以下の通り設定し、画面最下部の「IDの作成」ボタンをクリックします。
- IDタイプ : Easy DKIM
- DKIM署名キーの長さ : 「RSA_2048_BIT」
- DNSレコードのRoute 53への発行 : チェックを外す
すると、IDが作成され、作成されたIDの「DKIMの設定」が「保留中」ステータスとなります。
DNSへの設定内容は「DNSレコードの発行」の箇所に表示されています。ここでは3つのCNAMEレコードが表示されていますので、それをDNSに設定します。
Lightsailの管理画面のメニューの「Domain & DNS」を選択し、対象のDNS Zoneを選択します。
「DNS Records」タブを選択し、「Add record」をクリックします。
「CNAME record」を選択し、先ほどのSESのIDの画面で表示されていたCNAMEレコードの内容をコピペし、「Save」をクリックします。3つのCNAMEレコードを設定するため、「Add record」〜「Save」を3回実施します。
3つのCNAMEレコードを登録してしばらくすると、SESの対象IDの画面で、「IDステータス」が「検証済み」となります(ドキュメントでは検証には最大72時間かかると記載されていますが、実際には数分で完了します。もししばらく待っても「検証済み」にならない場合、設定が何らか誤っている可能性が高いと思います)。
以上でSESのドメイン検証が完了です。