

# Arquitetura do Amazon RDS Custom
<a name="custom-concept"></a>

A arquitetura do Amazon RDS Custom se baseia no Amazon RDS, com diferenças importantes. O diagrama a seguir mostra os principais componentes da arquitetura do RDS Custom.

![\[Componentes da arquitetura do RDS Custom\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/RDS_Custom_gen_architecture.png)


**Topics**
+ [VPC](#custom-concept.components.VPC)
+ [Automação e monitoramento do RDS Custom](#custom-concept.workflow.automation)
+ [Amazon S3](#custom-concept.components.S3)
+ [AWS CloudTrail](#custom-concept.components.CloudTrail)

## VPC
<a name="custom-concept.components.VPC"></a>

Como no Amazon RDS, a instância de banco de dados do RDS Custom reside em uma nuvem privada virtual (VPC). 

![\[Componentes de uma instância de banco de dados do RDS Custom\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/RDS_Custom_instance.png)


A instância de banco de dados do RDS Custom é formada pelos seguintes componentes principais:
+ Instância do Amazon EC2
+ Endpoint da instância
+ Sistema operacional instalado na instância do Amazon EC2
+ Armazenamento do Amazon EBS, que contém quaisquer sistemas de arquivos adicionais

## Automação e monitoramento do RDS Custom
<a name="custom-concept.workflow.automation"></a>

O RDS Custom tem um software de automação que é executado fora da instância de banco de dados. Esse software se comunica com agentes na instância de banco de dados e com outros componentes dentro do ambiente geral do RDS Custom.

Os recursos de monitoramento e recuperação do RDS Custom oferecem funcionalidade semelhante à do Amazon RDS. Por padrão, o RDS Custom está no modo de automação total. O software de automação tem as seguintes responsabilidades principais:
+ Coletar métricas e enviar notificações
+ Realizar a recuperação automática de instâncias

Uma responsabilidade importante da automação do RDS Custom é responder a problemas com a sua instância do Amazon EC2. Por vários motivos, o host pode ficar prejudicado ou inacessível. O RDS Custom resolve esses problemas reiniciando ou substituindo a instância do Amazon EC2.

**Topics**
+ [Substituição do host do Amazon RDS Custom](#custom-troubleshooting.host-problems)
+ [Perímetro de suporte do RDS Custom](#custom-troubleshooting.support-perimeter)

### Substituição do host do Amazon RDS Custom
<a name="custom-troubleshooting.host-problems"></a>

Se o host do Amazon EC2 for afetado, o RDS Custom tentará reinicializá-lo. Se esse esforço falhar, o RDS Custom utilizará o mesmo recurso de parada e início incluído no Amazon EC2. A única alteração visível para o cliente quando um host é substituído é um novo endereço IP público.

**Topics**
+ [Interromper e iniciar o host](#custom-troubleshooting.host-problems.replacement.stop-start)
+ [Efeitos da substituição do host](#custom-troubleshooting.host-problems.replacement.host-state)
+ [Práticas recomendadas para o Amazon EC2](#custom-troubleshooting.host-problems.best-practices)

#### Interromper e iniciar o host
<a name="custom-troubleshooting.host-problems.replacement.stop-start"></a>

O RDS Custom executa automaticamente as seguintes etapas, sem a necessidade de intervenção do usuário:

1. Interrompe o host do Amazon EC2.

   A instância do EC2 realiza um desligamento normal e encerra a execução. Todos os volumes do Amazon EBS permanecem associados à instância, e seus dados persistem. Todos os dados armazenados nos volumes do armazenamento de instâncias (sem suporte no RDS Custom) ou na RAM do computador host desaparecem.

   Para obter mais informações, consulte [Encerrar e iniciar sua instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) no *Guia do Usuário do Amazon EC2*.

1. Inicia o host do Amazon EC2.

   A instância do EC2 é migrada para um novo hardware de host subjacente. Em alguns casos, a instância de banco de dados do RDS Custom permanece no host original.

#### Efeitos da substituição do host
<a name="custom-troubleshooting.host-problems.replacement.host-state"></a>

No RDS Custom, você tem controle total sobre o volume do dispositivo raiz e os volumes de armazenamento do Amazon EBS. O volume raiz pode conter dados e configurações importantes que você não quer perder.

O RDS Custom for Oracle retém todos os dados do banco de dados e do cliente após a operação, incluindo os dados de volume raiz. Nenhuma intervenção do usuário é necessária. No RDS Custom para SQL Server, os dados do banco de dados são retidos, mas todos os dados na unidade `C:`, incluindo dados do sistema operacional e do cliente, são perdidos.

Após o processo de substituição de host, o host do Amazon EC2 tem um novo endereço IP público. O novo host retém os dados e os metadados mostrados na tabela a seguir.


| Metadados ou dados | Retenção do RDS Custom para Oracle | Retenção do RDS Custom para SQL Server | 
| --- | --- | --- | 
| IDs de instância EC2 | Sim | Não | 
| Metadados da instância do EC2 | Sim | Sim | 
| Dados de volumes de armazenamento de dados | Sim | Sim | 
| Dados do volume raiz | Sim | Não | 
| Endereços IP privados | Sim | Sim | 
| Endereços IP elásticos | Sim | Sim | 

#### Práticas recomendadas para o Amazon EC2
<a name="custom-troubleshooting.host-problems.best-practices"></a>

O recurso de substituição de host do Amazon EC2 abrange a maioria dos cenários de comprometimento do Amazon EC2. Convém seguir estas práticas recomendadas:
+ Antes de alterar a configuração ou o sistema operacional, faça backup dos seus dados. Se o volume raiz ou o sistema operacional ficar corrompido, a substituição do host não conseguirá repará-lo. Suas únicas opções são restaurar de um snapshot do banco de dados ou recuperação em um ponto anterior no tempo.
+ Não pare ou encerre manualmente o host físico do Amazon EC2. Ambas as ações fazem com que a instância seja colocada fora do perímetro de suporte do RDS Custom.
+ (RDS Custom para SQL Server) Se você anexar volumes adicionais ao host do Amazon EC2, configure-os para remontagem após a reinicialização. Se o host estiver afetado, o RDS Custom poderá pará-lo e iniciá-lo automaticamente.

### Perímetro de suporte do RDS Custom
<a name="custom-troubleshooting.support-perimeter"></a>

O RDS Custom fornece recurso de monitoramento adicional chamado de *perímetro de suporte*. Esse monitoramento adicional garante que a instância do RDS Custom utilize uma infraestrutura da AWS, um sistema operacional e um banco de dados compatíveis. 

O perímetro de suporte verificará se a instância de banco de dados está em conformidade com os requisitos listados em [Corrigir configurações não compatíveis no RDS Custom para Oracle](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported) e [Corrigir configurações não compatíveis no RDS Custom para SQL Server](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported). Se algum desses requisitos não for atendido, o RDS Custom considerará que a instância de banco de dados está fora do perímetro de suporte.

**Topics**
+ [Configurações não compatíveis no RDS Custom](#custom-concept.support-perimeter.unsupported-config)
+ [Solução de problemas de configurações não compatíveis](#custom-concept.support-perimeter.fix-unsupported-config)

#### Configurações não compatíveis no RDS Custom
<a name="custom-concept.support-perimeter.unsupported-config"></a>

Quando a instância de banco de dados está fora do perímetro de suporte, o RDS Custom altera o status da respectiva instância para `unsupported-configuration` e envia notificações de eventos. Depois de corrigir os problemas de configuração, o RDS Custom alterará o status da instância de banco de dados para `available`.

Enquanto a instância de banco de dados está no estado `unsupported-configuration`, o seguinte se aplica:
+ Seu banco de dados permanece acessível. Exceto quando a instância de banco de dados está na `unsupported-configuration` porque o banco de dados está encerrando inesperadamente.
+ Não é possível modificá-la.
+ Não é possível obter snapshots de banco de dados.
+ Não são criados backups automáticos.
+ Somente no caso de instâncias de banco de dados do RDS Custom para SQL Server, o RDS Custom não substituirá a instância subjacente do Amazon EC2 se ela ficar prejudicada. Para obter mais informações sobre substituição de host, consulte [Substituição do host do Amazon RDS Custom](#custom-troubleshooting.host-problems).
+ Você pode excluir a instância de banco de dados, mas a maioria das outras operações de API do RDS Custom não está disponível.
+ O RDS Custom continua comportando a recuperação para um ponto no tempo (PITR) ao arquivar arquivos de redo log e enviá-los ao Amazon S3. A PITR em um estado `unsupported-configuration` apresenta as seguintes diferenças:
  + A PITR pode demorar muito tempo para restaurar completamente para uma nova instância de banco de dados do RDS Custom. Essa situação ocorre porque não é possível obter snapshots automatizados ou manuais enquanto a instância está no estado `unsupported-configuration`.
  + A PITR precisa reproduzir mais logs de redo a partir do snapshot mais recente obtido antes da entrada da instância no estado `unsupported-configuration`.
  + Em alguns casos, a instância de banco de dados está no estado`unsupported-configuration` porque você fez uma alteração que impediu o carregamento de arquivos de redo log arquivados. Exemplos incluem interromper a instância do EC2, interromper o agente do RDS Custom e desanexar volumes do EBS. Nesses casos, a PITR não pode restaurar a instância de banco de dados para o último momento restaurável.

#### Solução de problemas de configurações não compatíveis
<a name="custom-concept.support-perimeter.fix-unsupported-config"></a>

O RDS Custom fornece orientações para solução de problemas referentes ao estado `unsupported-configuration`. Embora algumas orientações se apliquem ao RDS Custom para Oracle e ao RDS Custom para SQL Server, outras orientações dependem do seu mecanismo de banco de dados. Para obter informações de solução de problemas específicas ao mecanismo, consulte os seguintes tópicos:
+ [Corrigir configurações não compatíveis no RDS Custom para Oracle](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported)
+ [Corrigir configurações não compatíveis no RDS Custom para SQL Server](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)

## Amazon S3
<a name="custom-concept.components.S3"></a>

Se você usar o RDS Custom for Oracle, carregará a mídia de instalação para um bucket do Amazon S3 criado pelo usuário. O RDS Custom for Oracle usa a mídia neste bucket para criar uma versão de mecanismo personalizada (CEV). Uma *CEV* é um snapshot de volume binário de uma versão do banco de dados e de uma imagem de máquina da Amazon (AMI). A partir da CEV, você cria uma instância de banco de dados do RDS Custom. Para obter mais informações, consulte [Trabalhar com versões de mecanismo personalizadas para o Amazon RDS Custom for Oracle](custom-cev.md).

Tanto para o RDS Custom for Oracle quanto para o RDS Custom for SQL Server, o RDS Custom cria automaticamente um bucket do Amazon S3 prefixado com a string `do-not-delete-rds-custom-`. O RDS Custom usa o bucket do S3 do `do-not-delete-rds-custom-` para armazenar os seguintes tipos de arquivos:
+ AWS CloudTrailLogs do para a trilha criada pelo RDS Custom
+ Artefatos de perímetro de suporte (consulte [Perímetro de suporte do RDS Custom](#custom-troubleshooting.support-perimeter))
+ Arquivos de redo log de banco de dados (somente no RDS Custom for Oracle)
+ Logs de transações (somente no RDS Custom for SQL Server)
+ Artefatos de versão do mecanismo personalizado (somente no RDS Custom for Oracle)

O RDS Custom cria o bucket do S3 do `do-not-delete-rds-custom-` quando você cria um dos seguintes recursos:
+ Seu primeiro CEV para RDS Custom for Oracle
+ Sua primeira instância de banco de dados para o RDS Custom for SQL Server

O RDS Custom cria um bucket para cada combinação dos seguintes tipos:
+ ID da Conta da AWS
+ Tipo de mecanismo (RDS Custom for Oracle ou RDS Custom for SQL Server)
+ Região da AWS

Por exemplo, se você criar CEVs do RDS Custom for Oracle em um único Região da AWS, existirá um bucket do `do-not-delete-rds-custom-`. Se você criar várias instâncias do RDS Custom for SQL Server e elas residirem em um Regiões da AWS diferente, existirá um bucket do `do-not-delete-rds-custom-` em cada Região da AWS. Se você criar uma instância do RDS Custom for Oracle e duas instâncias do RDS Custom for SQL Server em uma única Região da AWS, existirão dois buckets do `do-not-delete-rds-custom-`. 

## AWS CloudTrail
<a name="custom-concept.components.CloudTrail"></a>

O RDS Custom cria automaticamente uma trilha AWS CloudTrail cujo nome começa com `do-not-delete-rds-custom-`. O perímetro de suporte do RDS Custom depende dos eventos do CloudTrail para determinar se suas ações afetam a automação do RDS Custom. Para obter mais informações, consulte [Solução de problemas de configurações não compatíveis](#custom-concept.support-perimeter.fix-unsupported-config).

O RDS Custom cria a trilha quando você cria sua primeira instância de banco de dados. O RDS Custom cria uma trilha para cada combinação do seguinte:
+ ID da Conta da AWS
+ Tipo de mecanismo (RDS Custom for Oracle ou RDS Custom for SQL Server)
+ Região da AWS

Quando você exclui uma instância de banco de dados do RDS Custom, o CloudTrail dessa instância não é removido automaticamente. Nesse caso, a Conta da AWS continua sendo cobrada pelo CloudTrail não excluído. O RDS Custom não é responsável pela exclusão desse recurso. Para saber como remover o CloudTrail manualmente, consulte [Excluir uma trilha](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-delete-trails-console.html) no *Guia do usuário do AWS CloudTrail*.