スキップしてコンテンツを表示

Amazon RDS for Microsoft SQL Server インスタンスがパブリックサブネットまたはプライベートサブネットのどちらかにある場合、Amazon SES を使用して E メールを送信する方法を教えてください。

所要時間2分
0

Amazon Simple Email Service (Amazon SES) を使用して、プライベートサブネットまたはパブリックサブネットでホストされている Microsoft SQL Server インスタンス用 Amazon Relational Database Service (Amazon RDS) に E メールを送信したいと考えています。

解決策

Amazon SES を設定する

Amazon SES コンソールを使用して、Simple Mail Transfer Protocol (SMTP) 認証情報を取得します。

確認メールを受信するには、次の手順を実行します。

  1. Amazon SES コンソールを開き、[E メールアドレス] をクリックします。
  2. [新しい E メールアドレスを検証する] をクリックし、確認メールを受信する E メールアドレスを入力します。
  3. [検証ステータス][検証済み] であることを確認します。

データベースメールのパラメータグループを設定する

注: データベースメールで使用するカスタムパラメータグループが既にある場合は、「データベースメールの設定」セクションに進んでください。パラメータグループが既に RDS for SQL Server インスタンスに関連付けられている場合は、このセクションの次の手順に進んでください。

カスタムパラメータグループを作成するには、次の手順を実行します。

  1. Aurora と RDS コンソールを開きます。
  2. [パラメータグループ] をクリックし、[パラメータグループの作成] をクリックします。
  3. [パラメータグループファミリー] で、使用している SQL Server のバージョンとエディションを選択します。例えば、SQL Server 2016 Enterprise Edition は sqlserver-ee-13.0 を使用します。
  4. グループ名と説明を入力してから、[作成] をクリックします。
  5. [パラメータグループ] ページで、グループを選択します。
  6. [パラメータの編集] をクリックし、[データベースメール xps] を選択します。
  7. [値][1] を選択します。
  8. [保存] をクリックします。

パラメータグループを RDS for SQL Server インスタンスに関連付けるには、次の手順を実行します。

  1. Aurora と RDS コンソールを開きます。
  2. [データベース] をクリックし、[変更] をクリックします。
  3. [データベースオプション] でパラメータグループを選択し、[続行] をクリックします。
  4. [変更のスケジューリング] で、[今すぐ] をクリックします。
  5. [DB インスタンスを変更] を選択して変更を適用し、インスタンスを再起動します。

データベースメールを設定する

RDS for SQL Server インスタンスがパブリックサブネットでホストされている場合は、データベースメールを設定できます。

インスタンスがプライベートサブネットにある場合、データベースメールを設定すると次のエラーメッセージが表示されることがあります。

"The mail could not be sent to the recipients because of the mail server failure.Exception Message: Could not connect to mail server."

上記のエラーメッセージを受け取った場合、DB インスタンスはメールサーバーに到達できません。この問題を解決するには、Amazon SES 用の Amazon Virtual Private Cloud (Amazon VPC) エンドポイントを作成します。

次の手順を実行します。

  1. インスタンスのプライベート IP アドレスを特定します

  2. インスタンスに関連付けられているセキュリティグループに対するインバウンドルールを含む新しいセキュリティグループを作成します
    [タイプ] で、[カスタム TCP] を選択します。
    [ポート範囲] で、E メールの送信に使用するポート番号を入力します。25、465、587、2465、または 2587 を使用できます。
    [送信元タイプ][カスタム] を選択します。
    [送信元] で、RDS for SQL Server インスタンスのプライベート IP アドレスを入力します。

  3. VPC エンドポイントを作成します

  4. エンドポイントを選択し、[DNS] フィールドの下の名を書き留めます。

  5. データベースメールアカウントを再作成します。

    use msdbgo
    
    EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'Acc1',
    @description = 'Mail account for sending outgoing
    notifications.',
    @email_address = 'example@example.com',
    @display_name = 'Automated Mailer',
    @mailserver_name =
    'vpce-0a9cxxxxxxxxxxxxx-xxxxxxxx.email-smtp.ap-southeast-2.vpce.amazonaws.com',
    <---- VPC endpoint created in previous step
    @port = 587,
    @enable_ssl = 1,
    @username = 'SMTP-username', <---- For user name and
    password, please use the SES credentials
    @password = 'SMTP-password' ;
    

    注: @mailserver_name[DNS] フィールドからメモした DNS 名に置き換えてください。

  6. 次のコマンドを実行して、データベースメールが正しく設定されていることを確認します。

    EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'success@simulator.amazonses.com',@body = 'The database mail configuration was completed successfully.',
    @subject = 'Automated Success Message';
    

    注: データベースメールが正しく設定されていれば、メールが送信されます。

  7. 次のストアドプロシージャを実行して、すべての E メールアイテムを確認します。

    SELECT * FROM msdb.dbo.sysmail_allitems
    
  8. [sent_status] 列で、ステータスが [送信済み] であることを確認します。

関連情報

Amazon RDS Custom for SQL Server DB インスタンスの管理

Using Database Mail on Amazon RDS for SQL Server (Amazon RDS for SQL Server でのデータベースメールの使用)

AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ