Envie notificações para uma instância de banco de dados Amazon RDS para SQL Server usando um servidor SMTP on-premises e o Database Mail - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Envie notificações para uma instância de banco de dados Amazon RDS para SQL Server usando um servidor SMTP on-premises e o Database Mail

Criado por Nishad Mankar (AWS)

Ambiente: PoC ou piloto

Tecnologias: bancos de dados; gerenciamento e governança

Workload: Microsoft

Serviços da AWS: Amazon RDS

Resumo

O Database Mail (documentação da Microsoft) envia mensagens de e-mail, como notificações ou alertas, de um banco de dados do Microsoft SQL Server usando um servidor SMTP (Simple Mail Transfer Protocol). A documentação do Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server fornece instruções para usar o Amazon Simple Email Service (Amazon SES) como servidor SMTP para o Database Mail. Para ter mais informações, consulte Usar o Database Mail no Amazon RDS para SQL Server. Como configuração alternativa, esse padrão explica como configurar o Database Mail para enviar e-mails de uma instância de banco de dados (DB) do Amazon RDS para SQL Server usando um servidor SMTP on-premises como servidor de e-mail.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Uma instância de banco de dados do Amazon RDS executando uma edição Standard ou Enterprise do SQL Server

  • O endereço IP ou nome do host do servidor SMTP on-premises.

  • Uma regra de grupo de segurança de entrada que permite conexões com a instância de banco de dados Amazon RDS para SQL Server a partir do endereço IP do servidor SMTP

  • Uma conexão, como uma conexão do AWS Direct Connect, entre sua rede on-premises e a nuvem privada virtual (VPC) que contém a instância de banco de dados Amazon RDS

Limitações

  • Não há suporte para edições Express do SQL Server.

  • Para obter mais informações sobre limitações, consulte Limitações no uso do Database Mail no Amazon RDS para SQL Server na documentação do Amazon RDS.

Versões do produto

Arquitetura

Pilha de tecnologias de destino

  • Instância de banco de dados do Amazon RDS para SQL Server

  • Regra de redirecionamento do Amazon Route 53

  • Correspondência de banco de dados

  • Servidor SMTP no on-premises

  • Microsoft SQL Server Management Studio (SSMS)

Arquitetura de destino

A imagem a seguir mostra a arquitetura de destino para esse padrão. Quando ocorre um evento ou ação que inicia uma notificação ou alerta sobre a instância do banco de dados, o Amazon RDS para SQL Server usa o Database Mail para enviar uma notificação por e-mail. O Database Mail usa o servidor SMTP on-premises para enviar o e-mail.

Amazon RDS para SQL Server usando um servidor SMTP on-premises para enviar notificações por e-mail aos usuários.

Ferramentas

Serviços da AWS

Outras ferramentas

  • O Database Mail é uma ferramenta que envia mensagens de email, como notificações e alertas, do Mecanismo de Banco de Dados do SQL Server para os usuários.

  • O Microsoft SQL Server Management Studio (SSMS) é uma ferramenta para gerenciar o SQL Server, incluindo acesso, configuração e administração de componentes do SQL Server. Nesse padrão, você usa o SSMS para executar os comandos SQL para configurar o Database Mail em uma instância de banco de dados Amazon RDS para SQL Server. 

Épicos

TarefaDescriçãoHabilidades necessárias

Remover Multi-AZ da instância de banco de dados do RDS.

Se você estiver usando uma instância de banco de dados do Multi-Zone, converta a instância Multi-AZ em uma instância Single-AZ. Ao terminar de configurar o Database Mail, você converterá a instância de banco de dados de volta para uma implantação Multi-AZ. A configuração do Database Mail funciona, então, nos nós primário e secundário. Para obter instruções, consulte Remover multi-AZ de uma instância de banco de dados do Microsoft SQL Server.

DBA

Crie uma lista de permissões para o endpoint ou endereço IP do Amazon RDS no servidor SMTP on-premises.

O servidor SMTP está fora da rede da AWS. No servidor SMTP on-premises, crie uma lista de permissões que permita que o servidor se comunique com o endpoint de saída ou o endereço IP da instância do Amazon RDS ou da instância do Amazon Elastic Compute Cloud (Amazon EC2) hospedada no Amazon RDS. Esse procedimento varia de organização para organização. Para obter mais informações sobre o endpoint da instância de banco de dados, consulte Como encontrar o endpoint da instância de banco de dados e o número da porta.

DBA

Remova as restrições da porta 25.

Por padrão, a AWS restringe a porta 25 nas instâncias do EC2. Para remover a restrição da porta 25, faça o seguinte:

  1. Faça login com sua conta da AWS e, em seguida, abra o Formulário Solicitação para remover limitações de envio de e-mail.

  2. Insira seu endereço de e-mail para que o AWS Support possa entrar em contato com você com atualizações sobre sua solicitação.

  3. Forneça as informações necessárias no campo Descrição do caso de uso.

  4. Selecione Enviar.

Observações:

  • Se você tiver instâncias em mais de uma região da AWS, envie uma solicitação separada para cada região.

  • Pode levar até 48 horas para que sua solicitação seja processada.

AWS geral

Adicione uma regra do Route 53 para resolver consultas de DNS para o servidor SMTP.

Use o Route 53 para resolver consultas ao DNS entre seus recursos da AWS e o servidor SMTP on-premises. Você deve criar uma regra que encaminhe as consultas de DNS para o domínio do servidor SMTP, como example.com. Para obter instruções, consulte Criação de regras de encaminhamento na documentação do Route 53.

Administrador de rede
TarefaDescriçãoHabilidades necessárias

Habilite o Database Mail.

Crie um grupo de parâmetros para o Database Mail, defina o parâmetro database mail xps como 1 e associe o grupo de parâmetros do Database Mail à instância de banco de dados RDS de destino. Para obter instruções, consulte Habilitando o Database Mail na documentação do Amazon RDS. Não vá para a seção Configurando o Database Mail nestas instruções. A configuração do servidor SMTP on-premises é diferente da do Amazon SES.

DBA

Conecte-se à instância de banco de dados.

Em um Bastion Host, use o Microsoft SQL Server Management Studio (SSMS - Microsoft SQL Server Management Studio) para conectar-se à instância de banco de dados do Amazon RDS para SQL Server. Para obter instruções, consulte Conectar-se a uma instância de banco de dados executando o mecanismo de banco de dados Microsoft SQL Server. Se você encontrar algum erro, consulte as referências de solução de problemas de conexão na seção Recursos relacionados.

DBA

Crie o perfil.

Em SSMS, insira a seguinte instrução SQL para criar o perfil Database Mail. Substitua os valores a seguir:

  • Em profile_name, insira um nome para o novo perfil.

  • Em description, insira uma breve descrição do novo perfil.

Para obter mais informações sobre esse procedimento armazenado e seus argumentos, consulte sysmail_add_profile_sp na documentação da Microsoft.

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

Adicione diretores ao perfil.

Insira a seguinte instrução SQL para adicionar entidades públicas ou privadas ao perfil do Database Mail. Um principal é uma entidade que pode solicitar recursos do SQL Server. Substitua os valores a seguir:

  • Em profile_name, insira o nome do perfil criado anteriormente.

  • Em principal_name, insira o nome do usuário ou do perfil do banco de dados. Esse valor deverá ser mapeado para um usuário de autenticação do SQL Server, um usuário de autenticação do Windows ou um grupo de autenticação do Windows.

Para obter mais informações sobre esse procedimento armazenado e seus argumentos, consulte sysmail_add_principalprofile_sp na documentação da Microsoft.

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

Crie a conta.

Digite a seguinte instrução SQL para criar a conta Database Mail. Substitua os valores a seguir:

  • Em account_name, insira um nome para a nova conta.

  • Em description, insira uma breve descrição da nova conta.

  • Para email_address, insira o endereço de e-mail do qual enviar as mensagens do Database Mail.

  • Para display_address, insira um nome de exibição para usar nas mensagens enviadas para essa conta, como SQL Server Automated Notification. Você também pode usar o valor inserido para email_address.

  • Em mailserver_name, insira o nome ou endereço IP do servidor de e-mail SMTP.

  • Para port, deixe o valor em 25.

  • Para enable_ssl, deixe o valor em 1 ou insira 0 se você não quiser que o Database Mail criptografe a comunicação usando SSL.

  • Para username, insira o nome de usuário para fazer login no servidor de e-mail SMTP. Se o servidor não exigir autenticação, insira NULL.

  • Para password, digite a senha para fazer login no servidor de e-mail SMTP. Se o servidor não exigir autenticação, insira NULL.

Para obter mais informações sobre esse procedimento armazenado e seus argumentos, consulte sysmail_add_account_sp na documentação da Microsoft.

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

Adicione a conta ao perfil.

Digite a seguinte instrução SQL para adicionar a conta Database Mail ao perfil Database Mail. Substitua os valores a seguir:

  • Em profile_name, insira o nome do perfil criado anteriormente.

  • Em account_name, insira o nome da conta criada anteriormente.

Para obter mais informações sobre esse procedimento armazenado e seus argumentos, consulte sysmail_add_profileaccount_sp na documentação da Microsoft.

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

(Opcional) Adicione Multi-AZ à instância de banco de dados do RDS.

Se você quiser adicionar Multi-AZ com Database Mirroring (DBM - Database Mirroring) ou grupos de disponibilidade (AGs - Availability Groups) Always On, consulte as instruções em Adicionar Multi-AZ a uma instância de banco de dados do Microsoft SQL Server.

DBA

Recursos relacionados