オンプレミスサーバーSMTPと Database Mail を使用して Amazon RDS for SQL Server データベースインスタンスの通知を送信する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

オンプレミスサーバーSMTPと Database Mail を使用して Amazon RDS for SQL Server データベースインスタンスの通知を送信する

作成者: Nishad Mankar (AWS)

環境:PoC またはパイロット

テクノロジー: データベース、管理とガバナンス

ワークロード:Microsoft

AWS サービス: Amazon RDS

[概要]

Database Mail (Microsoft ドキュメント) は、Simple Mail Transfer Protocol (SMTP) サーバーを使用して、Microsoft SQL Server データベースから通知やアラートなどの E メールメッセージを送信します。Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server のドキュメントには、Amazon Simple Email Service (Amazon SES) をデータベースメールのSMTPサーバーとして使用する手順が記載されています。詳細については、「Amazon RDS for SQL Server でのデータベースメールの使用」を参照してください。このパターンでは、オンプレミスサーバーをメールサーバーSMTPとして使用して、Amazon RDS for SQL Server データベース (DB) インスタンスから E メールを送信するように Database Mail を設定する方法を説明します。

前提条件と制限

前提条件

  • アクティブなAWSアカウント

  • SQL サーバーの Standard または Enterprise エディションを実行する Amazon RDS DB インスタンス

  • オンプレミスSMTPサーバーの IP アドレスまたはホスト名

  • SMTP サーバーの IP アドレスから Amazon RDS for SQL Server DB インスタンスへの接続を許可するインバウンドセキュリティグループルール

  • オンプレミスネットワークと Amazon RDS DB インスタンスを含む仮想プライベートクラウド (VPC) 間の AWS Direct Connect 接続などの接続

制約事項

  • SQL サーバーの Express エディションはサポートされていません。

  • 制限の詳細については、Amazon ドキュメントの「Amazon RDS for SQL Server でのデータベースメールの使用における制限」を参照してください。 RDS

製品バージョン

アーキテクチャ

ターゲットテクノロジースタック

  • Amazon RDS for SQL Server データベースインスタンス

  • Amazon Route 53 転送ルール

  • データベースメール

  • オンプレミスSMTPサーバー

  • Microsoft SQL Server Management Studio (SSMS)

ターゲット アーキテクチャ

次の図は、このパターンのターゲットアーキテクチャを示しています。データベースインスタンスに関する通知またはアラートを開始するイベントまたはアクションが発生した場合、Amazon RDS for SQL Server は Database Mail を使用して E メール通知を送信します。Database Mail は、オンプレミスSMTPサーバーを使用して E メールを送信します。

Amazon RDS for SQL Server は、オンプレミスSMTPサーバーを使用して E メール通知をユーザーに送信します。

ツール

AWS サービス

その他のツール

  • Database Mail は、SQLサーバーデータベースエンジンからユーザーに通知やアラートなどの E メールメッセージを送信するツールです。

  • Microsoft SQL Server Management Studio (SSMS) は、SQLサーバーコンポーネントへのアクセス、設定、管理など、SQLサーバーを管理するためのツールです。このパターンでは、 SSMS を使用してSQLコマンドを実行し、Amazon RDS for SQL Server DB インスタンスでデータベースメールを設定します。 

エピック

タスク説明必要なスキル

RDS DB インスタンスからマルチ AZ を削除します。

マルチゾーン RDS DB インスタンスを使用している場合は、マルチ AZ インスタンスをシングル AZ インスタンスに変換します。データベースメールの設定が完了したら、DB インスタンスをマルチ AZ 配置に戻します。次に、プライマリノードとセカンダリノードの両方に、データベースメールの設定が実行します。手順については、「Microsoft SQL Server DB インスタンス からのマルチ AZ の削除」を参照してください。

DBA

オンプレミスSMTPサーバーで Amazon RDSエンドポイントまたは IP アドレスの許可リストを作成します。

SMTP サーバーがAWSネットワーク外にあります。オンプレミスSMTPサーバーで、サーバーが Amazon RDSインスタンスまたは Amazon でホストされている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのアウトバウンドエンドポイントまたは IP アドレスと通信できるようにする許可リストを作成しますRDS。この手順は組織によって異なります。DB インスタンスエンドポイントの詳細については、「DB インスタンスのエンドポイントとポート番号の検索」 を参照してください。

DBA

ポート 25 の制限を解除します。

デフォルトでは、 はEC2インスタンスのポート 25 AWSを制限します。ポート 25 の制限を解除するには、次の手順を実行します。

  1. AWS アカウントでサインインし、リクエストを開いて E メール送信制限フォーム を削除します

  2. AWS サポートがリクエストに関する最新情報を連絡できるように、E メールアドレスを入力します。

  3. ユースケースの説明フィールドに必要な情報を入力します。

  4. [送信] を選択します。

[Note:] (メモ:)

  • 複数のAWSリージョンにインスタンスがある場合は、リージョンごとに個別のリクエストを送信します。

  • リクエストの処理には最大 48 時間かかります。

全般 AWS

Route 53 ルールを追加して、SMTPサーバーのDNSクエリを解決します。

Route 53 を使用して、AWSリソースとオンプレミスSMTPサーバー間のDNSクエリを解決します。DNS クエリを などのSMTPサーバードメインに転送するルールを作成する必要がありますexample.com。手順については、Route 53 ドキュメントの 「転送ルールの作成」 を参照してください。

ネットワーク管理者
タスク説明必要なスキル

データベースメールを有効化します。

Database Mail のパラメータグループを作成し、 database mail xps パラメータを に設定してから1、Database Mail パラメータグループをターゲット RDS DB インスタンスに関連付けます。手順については、Amazon RDSドキュメントの「データベースメールの有効化」を参照してください。この説明のデータベースメールの設定セクションには進まないでください。オンプレミスSMTPサーバーの設定は、Amazon とは異なりますSES。

DBA

DB インスタンスに接続します。

踏み台ホストから、Microsoft SQL Server Management Studio (SSMS) を使用して Amazon RDS for SQL Server データベースインスタンスに接続します。手順については、「Microsoft SQL Server データベースエンジン を実行している DB インスタンスへの接続」を参照してください。エラーが発生した場合は、「関連リソース」 セクションの「接続トラブルシューティングに関する参考資料」を参照してください。

DBA

プロフィールを作成します。

でSSMS、次のSQLステートメントを入力してデータベースメールプロファイルを作成します。以下の値を置き換えます:

  • profile_name の場合、新しいプロファイルの名前を入力します。

  • description に、新しいプロファイルの簡単な説明を入力します。

このストアドプロシージャとその引数の詳細については、Microsoft のドキュメントの 「sysmail_add_profile_sp」 を参照してください。

EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'SQL Alerts profile', @description = 'Profile used for sending outgoing notifications using OM SMTP Server.';
DBA

プリンシパルをプロファイルに追加します。

データベースメールプロファイルにパブリックプリンシパルまたはプライベートプリンシパルを追加するには、次のSQLステートメントを入力します。プリンシパルは、SQLサーバーリソースをリクエストできるエンティティです。以下の値を置き換えます:

  • profile_name には、事前に作成したプロファイルの名前を入力します。

  • principal_name には、データベースユーザーまたはロールの名前を入力します。この値は、SQLサーバー認証ユーザー、Windows 認証ユーザー、または Windows 認証グループにマッピングする必要があります。

このストアドプロシージャとその引数の詳細については、Microsoft のドキュメントの 「sysmail_add_profile_sp」 を参照してください。

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'SQL Alerts profile', @principal_name = 'public', @is_default = 1 ;
DBA

アカウントを作成します。

データベースメールアカウントを作成するには、次のSQLステートメントを入力します。以下の値を置き換えます:

  • account_name に、新しいアカウントの名前を入力します。

  • description に、新しいアカウントの簡単な説明を入力します。

  • email_address に、データベースメールメッセージの送信元の電子メールアドレスを入力します。

  • display_address に、このアカウントの送信メッセージに使用する表示名 (SQL Server Automated Notification など) を入力します。email_address に入力した値を使用することもできます。

  • mailserver_name、SMTPメールサーバーの名前または IP アドレスを入力します。

  • port については、25 の値はそのままにします。

  • ではenable_ssl、 を使用して Database Mail 0が通信を暗号化しない場合は、 値を のままに1するか、 を入力しますSSL。

  • にはusername、SMTPメールサーバーにログオンするためのユーザー名を入力します。サーバーが認証を必要としない場合は、NULL と入力します。

  • にはpassword、SMTPメールサーバーにログオンするためのパスワードを入力します。サーバーが認証を必要としない場合は、NULL と入力します。

このストアドプロシージャとその引数の詳細については、Microsoft 「のドキュメントの sysmail_add_account_sp」 を参照してください。

EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = 'SQL Alerts account', @description = 'Database Mail account for sending outgoing notifications.', @email_address = 'xyz@example.com', @display_name = 'xyz@example.com', @mailserver_name = 'test_smtp.example.com', @port = 25, @enable_ssl = 1, @username = 'SMTP-username', @password = 'SMTP-password';
DBA

プロファイルにアカウントを追加します。

次のSQLステートメントを入力して、データベースメールアカウントをデータベースメールプロファイルに追加します。以下の値を置き換えます:

  • profile_name には、事前に作成したプロファイルの名前を入力します。

  • account_name の場合、事前に作成したアカウント名を入力します。

このストアドプロシージャとその引数の詳細については、Microsoft のドキュメントの 「sysmail_add_profileaccount_sp」 を参照してください。

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'SQL Alerts profile', @account_name = 'SQL Alerts account', @sequence_number = 1;
DBA

(オプション) RDS DB インスタンスにマルチ AZ を追加します。

データベースミラーリング (DBM) または Always On アベイラビリティーグループ (AGs) でマルチ AZ を追加する場合は、Microsoft SQL Server DB インスタンス にマルチ AZ を追加するの手順を参照してください。

DBA

関連リソース