O Amazon Relational Database Service (Amazon RDS) é um serviço web que facilita a configuração, a operação e o escalamento de um banco de dados relacional na nuvem. Ele fornece uma capacidade acessível e redimensionável, enquanto gerencia tarefas de banco de dados demoradas para que você tenha mais tempo para se concentrar em seus aplicativos e negócios.
O Amazon RDS fornece a você acesso às capacidades de um banco de dados familiar MySQL, Oracle ou SQL Server. Isso significa que o código, o aplicativo e as ferramentas que você já utiliza com seus bancos de dados MySQL devem funcionar facilmente com o Amazon RDS. O Amazon RDS automaticamente faz um patch do software do banco de dados e faz o backup de seu banco de dados, armazenando backups por um período de retenção definido pelo usuário. Você se beneficia da flexibilidade de poder dimensionar os recursos computacionais ou a capacidade de armazenamento associada com sua Instância de banco de dados relacional através de uma única chamada API ou com apenas alguns cliques doAWS Management Console. Além disso, o Amazon RDS facilita a utilização da replicação (atualmente oferece suporte para MySQL e mecanismos de banco de dados Oracle) para aprimorar a disponibilidade do banco de dados, aprimorar a durabilidade de dados ou dimensionar para além das restrições de capacidade de uma única Instância de banco de dados para cargas de trabalho de banco de dados de difícil leitura. Assim como todos os Amazon Web Services, não são necessários investimentos imediatos, e você paga somente pelos recursos que utilizar.Imagine que uma Instância de banco de dados é um ambiente de banco de dados na nuvem com os recursos computacionais e de armazenamento que você especificar. É possível criar e excluir Instâncias de banco de dados, definir/redefinir atributos de infraestrutura de sua(s) Instância(s) de banco de dados e controlar o acesso e a segurança através do AWS Management Console, das APIs do Amazon RDS e das ferramentas de linha de comando. Vários esquemas de banco de dados Oracle ou bancos de dados SQL Server (até 30) podem ser criados em determinada Instância de BD.
O Amazon RDS gerencia o trabalho envolvido na configuração de um banco de dados relacional desde o provisionamento da capacidade de infraestrutura desejada até a instalação do software do banco de dados. Após seu banco de dados estar em operação a partir de sua própria Instância de banco de dados, o Amazon RDS automatiza tarefas administrativas comuns, realizando backups e fazendo patches do software de banco de dados que alimenta sua Instância de banco de dados. Para implantações Multi-AZ adicionais (atualmente oferece suporte para MySQL e mecanismos de banco de dados Oracle), o Amazon RDS também gerencia a replicação de dados sincronizados através de Zonas de disponibilidade e failover automático.
Visto que o Amazon RDS fornece acesso ao banco de dados nativo, é possível interagir com o software de banco de dados relacional da mesma maneira que você normalmente faria. Isso significa que você ainda é responsável por gerenciar as configurações de banco de dados que são específicas para seu aplicativo. É necessário construir o esquema relacional que melhor se adequa ao seu tipo de uso, e é de sua responsabilidade qualquer ajuste de desempenho para otimizar seu banco de dados para o fluxo de trabalho de seu aplicativo.
A Amazon Web Services fornece uma série de alternativas de banco de dados para os desenvolvedores. O Amazon RDS permite que você execute um banco de dados relacional com todos os recursos, simplificando a administração do banco de dados; o Amazon SimpleDB fornece capacidades simples de índice e consulta com escalabilidade perfeita; o Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado, que oferece desempenho rápido e previsível com escalabilidade perfeita; e usando uma de nossas muitas AMIs de bancos de dados relacionais no Amazon EC2 e Amazon EBS você pode operar seu próprio banco de dados relacional na nuvem. Existem diferenças importantes entre essas alternativas que podem fazer com que uma delas seja a mais adequada para o seu tipo de uso específico. Consulte Execução de banco de dados no AWS para obter orientações sobre a solução mais adequada para você.
Para se registrar no Amazon RDS, clique no botão "Registro para o Amazon RDS" na página de detalhes do Amazon RDS e conclua o processo de inscrição. É necessário ter uma conta da Amazon Web Services. Caso você não possua uma conta, será preciso criar uma ao iniciar o processo de solicitação do Amazon RDS. Após efetuar seu registro para o RDS, consulte a Documentação do Amazon RDS , que inclui o nosso Guia de Introdução.
Assim que você se familiarizar com o Amazon RDS, você pode iniciar uma Instância de banco de dados rapidamente usando o AWS Management Console ou as APIs do Amazon RDS.
Após sua Instância de banco de dados estar disponível, você pode recuperar seu ponto de extremidade através da descrição da Instância de banco de dados no AWS Management Console ou na API DescribeDBInstance. Ao utilizar esse ponto de extremidade, é possível construir a cadeia de caracteres de conexão exigida para se conectar diretamente à sua Instância de banco de dados usando sua ferramenta de banco de dados ou linguagem de programação preferida. Para autorizar solicitações de rede para sua Instância de banco de dados em operação, é necessário autorizar o acesso. Para mais detalhes sobre como construir e utilizar sua cadeia de caracteres de conexão, consulte nosso Guia de Introdução.
Como padrão, os clientes podem ter um total de até 20 Instâncias de banco de dados do Amazon RDS. Dessas 20, até 10 podem ser Instâncias de Banco de Dados do Oracle ou do SQL Server, sob o modelo de "Licença Incluída". Todas as 20 podem ser utilizadas para o MySQL, Oracle ou SQL Server sob o modelo "BYOL". Se seu aplicativo exige mais Instâncias de banco de dados, você pode solicitar Instâncias de banco de dados adicionais através deste formulário de solicitação.
Há várias formas simples de importar dados para o Amazon RDS, como com os utilitários mysqldump ou mysqlimport para MySQL, importar/exportar ou SQL Loader para Oracle e assistente de importação/exportação ou BCP (Bulk Copy Program, Programa de cópia em volume) para SQL Server. Para obter mais informações sobre importação e exportação de dados, consulte o Guia de importação de dados para MySQL ou o Guia de importação de dados para Oracle ou o Guia de importação de dados para SQL Server.
O Amazon RDS atualmente oferece suporte ao MySQL 5.1 e 5.5 (Community Edition) com InnoDB como mecanismo de armazenamento de banco de dados padrão e Oracle Database 11gR2 e SQL Server 2008 R2.
Se você estiver utilizando o MySQL, é possível usar o Amazon RDS MySQL DB Engine Version Management para controle opcional da versão anterior do MySQL de sua Instância de banco de dados.
Se você estiver utilizando o Oracle, é possível usar o Amazon RDS Oracle DB Engine Version Management para controle opcional do nível de patch de sua Instância de banco de dados.
Se você estiver utilizando o SQL Server, é possível usar o Amazon RDS SQL Server DB Engine Version Management para controle opcional do nível de patch de sua Instância de Banco de Dados.
Os recursos Point-In-Time-Restore e o Snapshot Restore do Amazon RDS para MySQL requerem um mecanismo de armazenamento de recuperação de falha e são compatíveis somente com o mecanismo de armazenamento InnoDB. Enquanto o MySQL é compatível com vários mecanismos de armazenamento com recursos variados, nem todos eles são otimizados para durabilidade de dados e recuperação de falha. Por exemplo, o mecanismo de armazenamento MyISAM não oferece suporte à recuperação de falhas confiável e pode resultar em dados perdidos ou corrompidos quando o MySQL é reiniciado após um acidente, impedindo que os recursos Point-In-Time-Restore ou Snapshot restore funcionem conforme o esperado. No entanto, se você ainda optar por usar a MyISAM com o Amazon RDS, seguir essas etapas pode ser útil em determinados cenários para a funcionalidade Snapshot Restore.
Se você desejar converter as tabelas MyISAM existentes para tabelas InnoDB, você pode usar o comando alterar tabela (por exemplo, alterar tabela TABLE_NAME engine=innodb;). Tenha em mente que o InnoDB e a MyISAM têm diferentes pontos fortes e fracos, assim que é necessário que você avalie totalmente o impacto que essas alteraçõe terão em seus aplicativos antes de fazê-las.
Além disso, o Federated Storage Engine atualmente não é compatível com o Amazon RDS para MySQL.
Pense na janela de manutenção do Amazon RDS como uma oportunidade de controlar modificações de Instâncias de banco de dados (como dimensionar uma classe de Instância de banco de dados) e a ocorrência de patches de software, caso alguma dessas atividades seja solicitada ou exigida. Se um evento de "manutenção" está programado para uma determinada semana, ele será iniciado e concluído em algum momento durante a janela de manutenção de 30 minutos que você identificar.
Os únicos eventos de manutenção que exigem o Amazon RDS para deixarem sua Instância de banco de dados offline são: dimensionar operações computacionais (que geralmente levam poucos minutos do início ao fim), ou realizar patches de software. A aplicação necessária de patches é automaticamente programada somente para patches relacionados à segurança e à durabilidade. Essas aplicações de patches não ocorrem com frequência (geralmente uma vez a cada dois meses) e raramente exigem mais do que uma fração de sua janela de manutenção. Se você não especificar uma janela de manutenção semanal preferencial ao criar sua Instância de banco de dados, é atribuído uma valor padrão de 30 minutos. Se você desejar modificar quando a manutenção será realizada, altere sua Instância de banco de dados no AWS Management Console ou utilizando a API ModifyDBInstance. Cada uma de suas Instâncias de banco de dados pode ter janelas de manutenção preferenciais diferentes, se assim você desejar.
Executar sua Instância de banco de dados como uma implantação Multi-AZ pode reduzir ainda mais o impacto de um evento de manutenção, pois o Amazon RDS fará a manutenção através das seguintes etapas: 1) Realizará a manutenção no modo de espera 2) Promoverá o modo de espera para principal 3) Realizará a manutenção em modo principal antigo, que se torna o novo modo de espera.
Para mais informações sobre o uso das APIs ou da interface de linha de comando para especificar sua janela de manutenção, consulte o Guia do desenvolvedor Amazon RDS. Para mais informações sobre implantações do modo Multi-AZ, clique aqui.
Se você estiver utilizando o MySQL, é possível acessar os logs de consulta mais lentos do MySQL de seu banco de dados para determinar se há consultas SQL sendo executadas de forma lenta e, se esse for o caso, quais as características de desempenho de cada uma. É possível configurar o Parâmetro de banco de dados "slow_query_log" e solicitar a tabela mysql.slow_log para revisar as consultas SQL que estão sendo executadas de forma lenta. Consulte o Guia do usuário do Amazon RDS para saber mais.
Se você estiver utilizando o Oracle, você pode utilizar os dados de rastreamento de arquivo para identificar consultas lentas. Para mais informações sobre como acessar dados de rastreamento de arquivo, consulte o Guia do usuário Amazon RDS.
Caso você esteja utilizando o SQL Server, é possível utilizar rastreamentos do cliente do SQL Server para identificar consultas lentas. Para mais informações sobre como acessar dados de arquivo de rastreamento de servidor, consulte o Guia do usuário do Amazon RDS.
Veja também as métricas de utilização de CPU para sua Instância de banco de dados através do Amazon Cloud Watch. Altos níveis de utilização de CPU podem reduzir o desempenho de consulta e, nesse caso, você talvez queira considerar dimensionar a classe de sua Instância de banco de dados. Para mais informações sobre como monitorar sua utilização de CPU, leia o Guia de monitoração do Amazon RDS.Você paga somente pelo que for usado e não há taxas mínimas ou de instalação. Você é cobrado baseado em:
Para informações sobre a definição de preços do Amazon RDS, visite a seção de definição de preços na página de produto do Amazon RDS.
A cobrança para uma Instância de banco de dados se inicia a partir do momento em que a Instância de banco de dados estiver disponível. O faturamento continua até a Instância de banco de dados ser encerrada, o que pode ocorrer após sua exclusão ou caso ocorra falha na instância.
As horas de Instância de banco de dados são cobradas por cada hora que sua Instância de banco de dados está sendo executada em um estado disponível. Se você não deseja ser cobrado pela Instância de banco de dados, você deve encerrá-la para evitar ser cobrado para horas adicionais de instância. Horas parciais de Instâncias de banco de dados são cobradas como horas completas.
O armazenamento provisionado à sua Instância de banco de dados para seus dados principais está localizado em uma única Zona de disponibilidade. Ao fazer backup de seu banco de dados, os dados de backup (incluindo logs de transações) são replicados de modo georredundante por meio de múltiplas Zonas de disponibilidade para oferecer níveis ainda maiores de durabilidade de dados. O preço para armazenamento de backup além de sua alocação grátis reflete essa replicação extra que ocorre para maximizar a durabilidade de seus backups críticos.
Se você especificar que sua Instância de banco de dados deve ser uma implantação Multi-AZ, sua fatura será de acordo com o preço Multi-AZ postado na página de definição de preços do Amazon RDS. A cobrança de Multi-AZ se baseia em:
Salvo indicado por acordo em contrário, nossos preços não incluem impostos ou taxas aplicáveis, incluindo IVA e impostos de vendas aplicáveis. Por exemplo, os nossos preços para a região da Ásia-Pacífico (Tóquio) já incluem os impostos de consumo do Japão.
Com Instâncias reservadas, agora é possível fazer um pagamento único e adiantado para criar uma reserva de um ou três ano(s) para executar sua Instância de banco de dados em uma Região específica e receber um desconto significativo sobre a taxa atual de uso por hora. Existem três tipos de Instância Reservada (Instâncias Reservadas de Utilização Leve, Média e Pesada) que permitem equilibrar o valor inicial pago e o preço efetivo da hora.
Em termos de funcionalidade, as Instâncias reservadas e as Instâncias de banco de dados On-Demand são exatamente as mesmas. A única diferença é a maneira em que sua(s) instância(s) de banco de dados são cobradas; com instâncias reservadas, você faz um pagamento único e adiantado e recebe uma taxa atual de uso por hora mais baixa (comparada com Instâncias de banco de dados On-Demand) pela duração do período.
Você pode utilizar a opção "Adquirir uma Instância de banco de dados Reservada" no AWS Management Console. Outra opção é usar as ferramentas API, listar as reservas disponíveis para compra com o método API DescribeReservedDBInstancesOfferings e depois comprar uma reserva de Instância de banco de dados chamando o método PurchaseReservedDBInstancesOffering.
Criar uma Instância reservada é o mesmo que iniciar uma instância On-Demand. Você deve simplesmente utilizar o comando rds-create-db-instance, a API CreateDBInstance, ou selecionar a opção Iniciar Instância de banco de dados no AWS Management Console, especificando a classe da Instância de banco de dados e a região para o qual você fez a reserva. Assim que você concluir sua aquisição de reserva com sucesso, o Amazon RDS aplicará a taxa horária reduzida para a qual você tem direito para a nova Instância de banco de dados.
As mudanças na definição de preço associadas com uma Instância reservada são ativadas após sua solicitação ser recebida enquanto a autorização de pagamento é processada. Você pode acompanhar o status de sua reserva na página Atividade da Conta da AWS ou utilizando a API DescribeReservedDBInstances. Se o pagamento único não for autorizado com sucesso até o período da próxima fatura, o preço descontado não terá efeito.
Quando o período de validade de sua reserva encerrar, sua Instância reservada sofrerá alteração para a taxa de uso On-Demand por hora apropriada para sua classe de Instância de banco de dados e sua região.
Para selecionar sua classe inicial de Instância de banco de dados, acesse as necessidades computacionais, de memória e de armazenamento de seu aplicativo. Para mais informações sobre a escolha correta de classe e capacidade de armazenamento de sua Instância de banco de dados, consulte o Guia de dimensionamento de Instância de banco de dados do Amazon RDS.
É possível dimensionar os recursos computacionais e a capacidade de armazenamento alocados à sua Instância de banco de dados com a API ModifyDBInstance ou com o AWS Management Console (selecionando a Instância de banco de dados desejada e clicando no botão "Modificar"). Recursos de memória e de CPU são modificados ao alterar sua classe de Instância de banco de dados e o armazenamento disponível é modificado ao alterar sua alocação de armazenamento. Leve em consideração que, ao modificar sua classe de Instância de banco de dados ou seu armazenamento alocado, suas alterações solicitadas serão aplicadas durante a janela de manutenção especificada. Outra opção é usar o marcador "aplicar imediatamente" para aplicar suas solicitações de dimensionamento imediatamente. Lembre-se de que qualquer outra alteração pendente do sistema também será aplicada.
Monitore a utilização computacional e de recursos de armazenamento de sua Instância de banco de dados, sem custo adicional, através do Amazon CloudWatch. É possível acessar métricas como utilização de CPU, utilização de armazenamento e tráfego de rede ao clicar na aba "Monitoramento" para sua Instância de banco de dados no AWS Management Console ou usando as APIs do Amazon CloudWatch. Para saber mais sobre como monitorar suas Instâncias de banco de dados ativas, leia o Guia de monitoramento do Amazon RDS.
Observe que o SQL Server, devido às limitações de capacidade de extensão de armazenamento distribuído, anexado a um ambiente Windows Server, o Amazon RDS não suporta atualmente o aumento de espaço de armazenamento. Embora esteja em nossos planos suportar esta função futuramente, recomendamos o provisionamento de espaço para armazenamento com base no crescimento antecipado do armazenamento futuro. Até que isso ocorra, se você precisar aumentar o espaço de armazenamento de uma Instância de Banco de Dados do SQL Server, você precisará exportar os dados, criar uma nova instância de Banco de Dados com maior espaço de armazenamento e importar os dados para ela. Consulte o guia de importação de dados do SQL Server para maiores informações.
O Amazon RDS utiliza volumes EBS para armazenamento de banco de dados e de log. Dependendo do tamanho do armazenamento solicitado, o Amazon RDS automaticamente cruza múltiplos volumes EBS para aprimorar o desempenho IOPS. Para MySQL e SQL Server, para uma Instância de Banco de Dados existente, é possível observar um aprimoramento de capacidade de E/S se você aumentar seu armazenamento. Você pode dimensionar a capacidade de armazenamento alocada para sua Instância de Banco de Dados com o AWS Management Console ou com a API ModifyDBInstance.
No entanto, para o SQL Server, devido às limitações de capacidade de extensão de armazenamento distribuído anexado a um ambiente Windows Server, o Amazon RDS não suporta atualmente o aumento de espaço de armazenamento.
A capacidade de armazenamento alocada para sua Instância de banco de dados pode ser expandida ao mesmo tempo em que a disponibilidade da Instância de banco de dados é mantida. Contudo, ao decidir expandir ou reduzir os recursos computacionais disponíveis para sua Instância de banco de dados, seu banco de dados ficará temporariamente indisponível enquanto a classe de Instância de banco de dados é modificada. Esse período de indisponibilidade geralmente tem duração de apenas alguns minutos e ocorrerá durante a janela de manutenção para sua Instância de banco de dados, a não ser que você especifique que a modificação deva ser aplicada imediatamente.
O Amazon RDS oferece suporte a uma variedade de classes de instância e alocação de armazenamento de banco de dados, a fim de atender as diferentes necessidades de aplicativos. Caso o seu aplicativo necessite mais recursos computacionais do que a maior classe de Instância de banco de dados ou mais armazenamento do que a alocação máxima, você pode implementar partições, distribuindo assim seus dados por várias Instâncias de banco de dados.
O Amazon RDS fornece dois métodos diferentes de fazer backup e restaurar seus backups automatizados de sua(s) instância(s) de banco de dados e seus snapshots de banco de dados.
O recurso de backup automatizado do Amazon RDS permite a recuperação de um momento exato de sua Instância de banco de dados. Ao ativar backups automatizados para sua Instância de Banco de Dados, o Amazon RDS automaticamente realiza um snapshot diário completo de seus dados (durante sua janela de backup preferencial) e captura os logs de transação (à medida que suas instâncias de banco de dados são atualizadas). Ao iniciar a recuperação de um momento exato, os logs de transação são aplicados ao backup diário mais apropriado, a fim de restaurar sua Instância de Banco de Dados para o momento específico solicitado. O Amazon RDS retém backups de uma Instância de Banco de Dados por um período de tempo específico definido pelo usuário, chamado de período de retenção, que por padrão é de um dia, mas pode ser configurado para até 35 dias. Você pode iniciar a restauração de um momento exato e especificar qualquer segundo durante seu período de retenção, até o último momento restaurável. É possível utilizar a API DescribeDBInstances para retornar o último momento restaurável para sua(s) instância(s) de banco de dados, que geralmente é dentro dos últimos cinco minutos. Outra opção para encontrar o último momento restaurável para uma Instância de banco de dados é selecioná-lo no AWS Management Console e procurar na aba "Descrição" no painel inferior do Console.
Os Snapshots de banco de dados são iniciados pelo usuário e permitem que você faça o backup de sua Instância de banco de dados em um estado conhecido e com a frequência que quiser para depois restaurar àquele estado específico a qualquer momento. Os Snapshots de banco de dados podem ser criados com o AWS Management Console ou com a API CreateDBSnapshot e são armazenados até que você voluntariamente os exclua com o Console ou com a API DeleteDBSnapshot.
Os snapshots que o Amazon RDS desempenha para habilitar backups automáticos estão disponíveis para a funcionalidade de cópia (usando o console AWS ou o comando rds-copy-db-snapshot) ou para a funcionalidade de restauração de snapshot. Você pode identificá-los usando o tipo de snapshot "automatizado". Além disso, é possível identificar a hora na qual o snapshot foi criado, visualizando o campo "Hora de criação de Snapshot". Alternativamente, o identificador dos snapshots "automatizados" também contêm a hora (em UTC) na qual o snapshot foi criado.
Atenção: ao realizar uma operação de restauração para um momento exato ou a partir de um Snapshot de banco de dados, uma nova Instância de banco de dados é criada com um novo ponto de extremidade (a antiga Instância de banco de dados pode ser excluída com o AWS Management Console ou com a API DeleteDBInstance, se desejado). Isso é feito para permitir que você crie múltiplas Instâncias de banco de dados a partir de um snapshot de banco de dados específico ou de um momento exato.Por padrão e sem custo adicional, o Amazon RDS permite backups automatizadas de sua Instância de banco de dados com um período de retenção de 1 dia. O armazenamento de backup gratuito é limitado ao tamanho de seu banco de dados provisionado e se aplica somente às suas Instâncias de banco de dados ativas. Se você possuir, por exemplo, 10 GB-meses de armazenamento de banco de dados provisionado, forneceremos até 10 GB-meses de armazenamento de backup sem nenhum custo adicional. Se você quiser estender seu período de retenção de backup além de um dia, isso é possível utilizando a API CreateDBInstance (ao criar uma nova Instância de banco de dados) ou a API ModifyDBInstance (para uma Instância de banco de dados existente). É possível utilizar essas APIs para modificar o parâmetro RetentionPeriod de 1 para o número de dias desejado. Para mais informações sobre backups automatizados, consulte o Guia do desenvolvedor do Amazon RDS.
Os backups automatizados e os snapshots de BD do Amazon RDS são armazenados no S3.
Você pode utilizar o AWS Management Console ou a API ModifyDBInstance para gerenciar por quanto tempo seus backups automáticos serão mantidos, modificando o parâmetro RetentionPeriod. Se você deseja desativar completamente os backups automatizados, isso é possível ao configurar o período de retenção para 0 (não recomendado). Você pode gerenciar seus snapshots de banco de dados de usuário através da seção de snapshots do AWS Management Console. Também é possível visualizar uma lista de snapshots de banco de dados de usuário para uma Instância de banco de dados específica utilizando a API DescribeDBSnapshots e excluir snapshots com a API DeleteDBSnapshot.
O Amazon VPC permite que você crie um ambiente de rede virtual em uma seção provada e isolada da nuvem da Amazon Web Services (AWS), onde poderá exercer um controle completo sobre os aspectos como a faixa de endereços de IP, sub-redes, tabelas de roteamento e gateways de rede. Com o Amazon VPC, você pode definir uma tecnologia de rede virtual e personalizar a configuração de rede para parecer-se com uma rede de IP tradicional que poderá operar no seu próprio datacenter.
Um dos cenários em que você pode querer usar o Amazon RDS no VPC é se quiser executar um aplicativo da web voltado ao público, enquanto ainda mantêm servidores de back-end não acessíveis para publicidade em um subnet privado. Você pode criar uma sub-rede pública para seus servidores da web que têm acesso à Internet, e colocar o suas instâncias de banco de dados do RDS de backend em uma sub-rede privada. Para mais informações sobre o Amazon VPC, consulte o Guia do usuário do Amazon Virtual Private Cloud.
A funcionalidade básica do Amazon RDS é a mesma, independentemente da maneira de como você usa o VPC. O Amazon RDS gerencia backups, correções de software, detecção e recuperação de erros automáticas, réplicas de leitura, seja suas instâncias de banco de dados implementadas dentro ou fora de um VPC. No entanto, no momento, somente o Amazon RDS para MySQL e o Amazon RDS para Oracle são compatíveis no VPC. As microinstâncias do Amazon RDS não estão disponíveis em um VPC atualmente.
Às instâncias de banco de dados do Amazon RDS implementadas fora de um VPC são atribuídos endereços IP externos (para os quais o nome do Endpoit/DNS determina) que fornece conectividade a partir do EC2 ou da Internet. No Amazon VPC, as instâncias de banco de dados do Amazon RDS somente possuem endereços de IP privados (em uma sub-rede que você define).
Um grupo de sub-redes de banco de dados é um conjunto de sub-redes que você pode designar para suas instâncias de banco de dados de RDS em um VPC. Cada grupo de sub-redes de banco de dados possui no mínimo uma sub-rede para cada zona de disponibilidade em uma dada região. Ao criar uma instância de banco de dados em um VPC, você vai precisar selecionar um grupo de sub-redes de banco de dados. O Amazon RDS utiliza esse grupo de sub-redes de banco de dados e sua zona de disponibilidade preferencial para selecionar uma sub-rede e um endereço de IP naquela sub-rede. O Amazon RDS cria e associa uma interface de rede elástica para sua Instância de Banco de Dados com esse endereço de IP.
Observe que é altamente recomendável que você use um nome de DNS para conectar com sua Instância de Banco de Dados conforme o endereço de IP pode ser alterado (p.ex., durante um failover).
Para implementações Multi-AZ, a definição de uma sub-rede para todas as zonas disponíveis em uma região permitirá ao Amazon RDS criar uma nova espera em outra zona de disponibilidade, caso surja a necessidade. Você precisa fazer isso mesmo para implementações Single-AZ, caso queira convertê-las em implementações Multi-AZ em algum momento.
Para um exemplo prático de como criar uma instância de banco de dados em um VPC, consulte o Guia do usuário do Amazon RDS.
Veja a seguir os pré-requisitos necessários para criar uma instância de banco de dados em um VPC:
O Amazon RDS permite-lhe controlar o acesso às suas Instâncias de banco de dados usando grupos de segurança do banco de dados (DB Security Groups). Um grupo de segurança do banco de dados funciona como um firewall controlando o acesso da rede à sua Instância de banco de dados. Por padrão, o acesso à rede é desativado para suas Instâncias de banco de dados. Se desejar que seus aplicativos acessem sua Instância de Banco de Dados, configure o grupo de segurança de banco de dados para permitir o acesso a partir de instâncias de EC2 com faixas de IP ou membros de grupo de segurança do EC2/VPC específicos. Esse processo é chamado de ingresso. Após o ingresso ser configurado para um grupo de segurança de banco de dados, as mesmas regras se aplicam a todas as Instâncias de banco de dados associadas com aquele grupo de segurança de banco de dados. Grupos de segurança de banco de dados podem ser configurados na seção ''Grupos de segurança de banco de dados'' do AWS Management Console ou utilizando as APIs do Amazon RDS.
Observe que se associar um VPC a um grupo de segurança de banco de dados, todas as regras de acesso naquele grupo de segurança do banco de dados devem ser tanto a partir dos grupos de segurança de VPC quanto de faixas de IP: Grupos de segurança de EC2 e grupos de segurança de VPC não são intercambiáveis.
Outro fato para ser observado é sempre que você cria uma Instância de Banco de Dados em VPC com um membro específico do grupo de segurança de banco de dados, o Amazon RDS cria um grupo de segurança de VPC correspondente para aquela Instância de Banco de Dados, para fins de controle. Você pode identificar os grupos de segurança de VPC por meio de sua descrição, a qual teria o formato "Grupo de segurança para Instância de Banco de Dados do RDS
Os grupos de segurança de banco de dados podem ser usados para ajudar a proteger instâncias de banco de dados em um Amazon VPC. Além disso, o tráfego de rede entrando e saindo de cada sub-rede pode ser permitido ou recusado por meio de Listas de controle de acesso (ACLs) de rede. Todo o tráfego da rede que entra ou sai do VPC via conexão VPN IPSec pode ser inspecionado por sua infraestrutura de segurança, incluindo firewalls de rede, detecção de invasão e sistemas de prevenção.
Instâncias de banco de dados implementadas em um VPC podem ser acessadas por instâncias implementadas na mesmo VPC. Caso essas instâncias de EC2 estejam implementadas em uma sub-rede pública com Elastic IPs associados, você pode acessar as instâncias de EC2 por meio da Internet.
Instâncias de banco de dados implementadas em um VPC podem ser acessadas a partir da Internet ou a partir de instâncias de EC2 fora do VPC, por meio de VPN ou bastion hosts que você pode executar no seu subnet público. Para usar um bastion host, você vai precisar configurar uma rede-pública em uma instância de EC2 que aja como um SSH Bastion. Essa sub-rede pública precisa ter regras de roteamento e gateway de Internet que permitam que o tráfego seja direcionado via SSH host, o qual deve então enviar solicitações para endereços de IP privados de sua Instância de Banco de Dados do EDS.
Você também pode configurar um gateway de VPN que estenda sua rede corporativa para seu VPC, e permita o acesso para a instância de banco de dados do RDS naquele VPC. Consulte o Guia do usuário do Amazon VPC para mais detalhes.
Observe que é altamente recomendável que você use um nome de DNS para conectar com sua Instância de Banco de Dados conforme o endereço de IP subjacente pode ser alterado (p.ex., durante um failover).
Você pode tirar uma snapshot de sua instância de banco de dados fora do VPC e restaurá-la no VPC especificando o grupo de sub-rede de banco de dados que você deseja usar. De modo alternativo, você também pode realizar a operação “Restore to Point in Time”.
Atualmente, a migração direta de instâncias de banco de dados de dentro para fora do VPC não é suportada. Por razões de segurança, uma snapshot de banco de dados de uma instância de banco de dados dentro do VPC não pode ser restaurada para fora do VPC. Isso também serve para a funcionalidade “Restore to Point in Time”. Caso precise mover sua instância de banco de dados de dentro para fora do VPC, será necessário exportar seus dados de sua instância de banco de dados de origem, no seu VPC, para sua instância de banco de dados implementada fora do VPC.
Você é responsável por modificar tabelas de roteamento e ACLs de rede no seu VPC para garantir que sua instância de banco de dados seja alcançável a partir de instâncias de clientes no VPC.
Para implementações Multi-AZ, após um failover, sua instância de EC2 de cliente e Instância de Banco de Dados de RDS podem estar em diferentes zonas de disponibilidade. Você deve configurar suas ACLs de rede para garantir que a comunicação cross-AZ seja possível.
Um grupo de sub-rede de banco de dados existente pode ser atualizado para adicionar mais sub-redes para zonas de disponibilidade existentes ou para novas zonas de disponibilidade adicionadas desde a criação da Instância de Banco de Dados. Contudo, atualmente não é permitida a alteração de grupo de sub-rede de banco de dados de uma Instância de Banco de Dados implementada.
Para começar a utilizar o Amazon RDS é necessário possuir uma conta de desenvolvedor da AWS. Se você não possuir uma antes de se registrar para o Amazon RDS, será solicitado que você crie uma ao iniciar o processo de cadastramento. Uma conta de usuário master é diferente de uma conta de desenvolvedor da AWS e é usada somente no contexto do Amazon RDS para controlar o acesso à(s) sua(s) instância(s) de banco de dados. A conta de usuário master é uma conta de usuário de banco de dados nativa que você pode utilizar para se conectar à sua Instância de banco de dados. É possível especificar o nome de usuário master e a senha que deseja associar a cada Instância de banco de dados ao criar a Instância de banco de dados. Após criar sua Instância de banco de dados, é possível conectar-se ao banco de dados utilizando as credencias de usuário master. Consequentemente, você também pode desejar criar contas de usuário adicionais para restringir quem pode acessar sua Instância de banco de dados.
Para o MySQL, os privilégios padrão para o usuário master incluem: criar, remover, referências, evento, alterar, excluir, indexar, inserir, selecionar, atualizar, criar tabelas temporárias, bloquear tabelas, disparar, criar visualização, exibir visualização, alterar rotina, criar rotina, executar, disparar, criar usuário, processar, exibir banco de dados, conceder opção.
Para o Oracle, a função "dba" é concedida ao usuário master. O usuário master herda a maioria dos privilégios associados com a função. Leia o Guia do usuário do Amazon RDS para ver a lista de privilégios restritos e as alternativas correspondentes para realizar tarefas administrativas que podem exigir esses privilégios.
Para o SQL Server, um usuário que criar um banco de dados receberá a função de "db_owner". Leia o Guia do usuário do Amazon RDS para ver a lista de privilégios restritos e as alternativas correspondentes para realizar tarefas administrativas que podem exigir esses privilégios.
Não, tudo funciona da mesma maneira que com um banco de dados relacional que você mesmo gerencia.
Sim. Contudo, essa opção só é compatível atualmente para o mecanismo MySQL.
O Amazon RDS gera um certificado SSL para cada Instância de banco de dados. O Guia do usuário do Amazon RDS inclui instruções para estabelecer uma conexão criptografada utilizado o cliente mysql padrão. Após estabelecer uma conexão criptografada, dados transferidos entre a Instância de banco de dados e seu aplicativo serão criptografados durante a transferência. Se você necessita que seu dados sejam criptografados enquanto "descansam" no banco de dados, seu aplicativo precisa gerenciar a criptografia e a descriptografia de dados. É importante ressaltar que o suporte para SSL no Amazon RDS é direcionado para a criptografia da conexão entre seu aplicativo e sua Instância de banco de dados; ele não deve ser utilizado na autenticação da própria Instância de banco de dados.
Apesar do SSL oferecer benefícios de segurança, a criptografia SSL é uma operação computacional intensiva que aumentará a latência de sua conexão de banco de dados. Para saber mais sobre o funcionamento do SSL com o MySQL, consulte a documentação do MySQL aqui.
GRANT USAGE ON *.* TO ‘encrypted_user’@’%’ REQUIRE SSL
O Amazon RDS escolhe por padrão os parâmetros de configuração ideais para sua Instância de banco de dados, levando em consideração o recurso computacional e a capacidade de armazenamento de instâncias do banco de dados. Contudo, se você deseja alterá-los, isso é possível utilizando nossas APIs de gestão de configuração. Leve em consideração que a alteração dos parâmetros de configuração dos valores recomendados pode ter efeitos indesejados, desde uma queda de desempenho até falhas de sistema, e só deve ser feita por usuários avançados que desejam assumir esses riscos. Para mais informações sobre alteração de parâmetros, consulte o Guia do usuário do Amazon RDS.
Um grupo de parâmetros de banco de dados age como um "contêiner" para valores de configuração de mecanismo que podem ser aplicados a uma ou mais Instâncias de banco de dados. Se você criar uma Instância de banco de dados sem especificar um grupo de parâmetros de banco de dados, um grupo de parâmetros padrão de banco de dados é utilizado. Esse grupo padrão contém padrões de mecanismos e padrões de sistema do Amazon RDS otimizados para a Instância de banco de dados que você está executando. Contudo, se você deseja executar sua Instância de banco de dados com seus valores personalizados de configuração de mecanismo, basta criar um novo grupo de parâmetros de banco de dados, modificar os parâmetros desejados e modificar a Instância de banco de dados para utilizar o novo grupo de parâmetros de banco de dados. Após serem associadas, todas as Instâncias de banco de dados que utilizam um grupo de parâmetro do banco de dados específico recebem todas as atualizações de parâmetro para aquele grupo de parâmetro de banco de dados. Para mais informações sobre como configurar Grupos de parâmetros do banco de dados, leia o Guia de implantação de grupo de parâmetro do banco de dados do .
Use o AWS Management Console, as APIs do Amazon RDS ou ferramentas de linha de comando para visualizar informações sobre seus Grupos de parâmetros do banco de dados e suas configurações de parâmetro correspondentes.
O Amazon RDS pode suportar os mecanismos de banco de dados MySQL, Oracle e SQL Server. O cliente pode escolher o mecanismo de banco de dados mais adequado às suas necessidades.
O Amazon RDS fornece duas opções de replicação distintas que servem a dois propósitos diferentes.
Se você deseja utilizar a replicação para aumentar a disponibilidade de banco de dados enquanto protege suas mais recentes atualizações de banco de dados contra interrupções inesperadas, uma opção é executar sua Instância de banco de dados como uma implantação Multi-AZ. Ao criar ou modificar sua Instância de banco de dados para ser executada como uma implantação Multi-AZ, o Amazon RDS automaticamente provisionará e gerenciará uma Réplica "em espera" em uma Zona de disponibilidade diferente (infraestrutura independente em uma local físico separado). Caso ocorra uma manutenção programada de banco de dados, uma falha da Instância de banco de dados ou uma falha de Zona de disponibilidade, o Amazon RDS automaticamente fará um failover para a espera para que as operações de banco de dados possam ser retomadas rapidamente sem intervenção administrativa. Implantações Multi-AZ utilizam replicação simultânea, realizando gravações de banco de dados concomitantemente no principal e na espera, para que a espera esteja atualizada caso ocorra um failover. Visto que nossa implementação tecnológica para Instâncias de banco de dados Multi-AZ maximiza a durabilidade de dados em casos de falha, isso impede a espera de ser acessada diretamente ou de ser usada para operações de leitura. A tolerância de falha fornecida pelas implantações Multi-AZ as tornam a melhor opção para ambientes de produção; para saber mais sobre implantações Multi-AZ, visite esta Seção de Perguntas frequentes. As implantações Multi-AZ são atualmente suportadas para mecanismos MySQL e bancos de dados Oracle.
Se você deseja aproveitar a vantagem da replicação incluída no MySQL para dimensionar além das limitações de capacidade de uma única Instância de Banco de Dados para cargas de trabalho de leitura pesada de banco de dados, o Amazon RDS para MySQL facilita isso com as Réplicas de leitura. Você pode criar uma Réplica de leitura de uma Instância de banco de dados de ''origem'' utilizando o AWS Management Console ou a API CreateDBInstanceReadReplica. Após a criação da Réplica de leitura, as atualizações de banco de dados da Instância de banco de dados de origem serão propagadas para a Réplica de leitura. É possível criar múltiplas Réplicas de leitura para uma determinada Instância de banco de dados e distribuir o tráfego de leitura de seu aplicativo entre elas. Ao contrário das implantações Multi-AZ, as Réplicas de leitura utilizam replicação incluída no MySQL e estão sujeitas às suas capacidades e limitações. Mais especificamente, as atualizações são aplicadas à(s) sua(s) Réplica(s) de Leitura após elas ocorrerem na Instância de banco de dados de origem (replicação "assíncrona"), e o atraso de replicação pode variar significativamente. Isso significa que atualizações de banco de dados recentes feitas a uma Instância de banco de dados padrão (não Multi-AZ) podem não estar presentes em Réplicas de leitura associadas, caso ocorra uma falha inesperada na Instância de banco de dados de origem. Dessa maneira, as Réplicas de leitura não oferecem os mesmos benefícios de durabilidade de dados que as implantações Multi-AZ. Enquanto Réplicas de leitura podem fornecer alguns benefícios de disponibilidade de leitura, elas não são desenvolvidas para aprimorar a disponibilidade de gravação. As Réplicas de leitura atualmente suportam o Amazon RDS para MySQL.
Com o Amazon RDS para MySQL, é possível utilizar implantações Multi-AZ e Réplicas de leitura em conjunto para aproveitar os benefícios complementares de cada um. Basta especificar que uma implantação Multi-AZ específica é a Instância de banco de dados de origem para sua(s) Réplica(s) de leitura. Dessa maneira, você ganha tanto os benefícios de durabilidade e disponibilidade de dados de implantações Multi-AZ quanto os benefícios de dimensionamento de leitura de Réplicas de leitura.
As Zonas de disponibilidade são locais distintos dentro de uma região e são projetadas para serem isoladas de falhas em outras Zonas de disponibilidade. Cada Zona de disponibilidade opera em sua própria infraestrutura fisicamente distinta e independente e é projetada para ser altamente confiável. Pontos comuns de falhas como geradores e equipamentos de refrigeração não são compartilhados pelas Zonas de disponibilidade. Além disso, possuem separação física, para que desastres extremamente incomuns como incêndios, tornados ou enchentes afetem somente um única Zona de disponibilidade. As Zonas de disponibilidade dentro da mesma região beneficiam-se de conectividade de rede com baixa latência.
Os principais benefícios de executar sua Instância de banco de dados como uma implantação Multi-AZ são a durabilidade e a disponibilidade aprimoradas de banco de dados. Essa maior disponibilidade e tolerância de falha oferecidas por implantações Multi-AZ as tornam a melhor opção para ambientes de produção.
Executar sua Instância de banco de dados como uma implantação Multi-AZ protege seus dados caso ocorra, inesperadamente, uma falha de componentes de Instância de banco de dados ou uma perda de disponibilidade em uma Zona de disponibilidade. Por exemplo, se um volume de armazenamento de seu principal falhar, o Amazon RDS automaticamente inicia um failover para o em espera, onde todas as atualizações de seu banco de dados estão intactas. Isso fornece uma durabilidade de dados adicional relativa às implantações padrão em um único AZ, em que uma operação de restauração feita por usuário seria necessária e atualizações feitas após o último momento restaurável (geralmente dentro dos últimos cinco minutos) não estariam disponíveis.
Você também se beneficiará da disponibilidade aprimorada de banco de dados ao executar sua Instância de banco de dados como uma implantação Multi-AZ. Se ocorrer uma falha de Zona de disponibilidade ou uma falha de Instância de banco de dados, o impacto de sua disponibilidade é limitado ao tempo que o failover automático leva para ser concluído (geralmente três minutos). Os benefícios de disponibilidade do Multi-AZ também se estendem à manutenção planejada. Com backups automatizados, por exemplo, a atividade de E/S não é mais suspensa no seu principal durante sua janela de manutenção preferencial, pois os backups são retirados da espera. No caso de realizar um patch ou um dimensionamento de classe de Instância de banco de dados, essas operações ocorrem primeiro na espera, antes do failover automático. Como resultado, seu impacto de disponibilidade é limitado ao tempo necessário para o failover automático ser concluído.
Outro benefício incluído ao executar sua Instância de banco de dados como uma implantação Multi-AZ é o failover de Instância de banco de dados automático que não requer nenhuma administração. No contexto do Amazon RDS, isso significa que você não precisa monitorar eventos de Instância de banco de dados e iniciar a recuperação manual de Instância de banco de dados (através das APIs RestoreDBInstanceToPointInTime ou RestoreDBInstanceFromSnapshot) caso haja uma falha de Zona de disponibilidade ou falha de Instância de banco de dados.
Você interage com a funcionalidade de backup automatizado e a funcionalidade de snapshot de banco de dados da mesma forma que se estivesse executando uma implantação padrão em uma implantação AZ única ou Multi-AZ. Se estiver executando uma implementação Multi-AZ, backups automatizados e snapshots de banco de dados são simplesmente tirados da espera para evitar suspensão de E/S na principal. Observe que poderá haver aumento de latência de I/O (normalmente durante alguns minutos) durante backups.
Iniciar uma operação de restauração (restauração de um momento exato ou restauração de uma snapshot de banco de dados) também funciona da mesma maneira com implantações Multi-AZ como implantações padrão e AZ únicas. Novas implantações de Instância de banco de dados podem ser criadas com as APIs RestoreDBInstanceFromSnapshot ou RestoreDBInstanceToPointInTime. Essas novas implantações de Instância de banco de dados podem ser padrão ou Multi-AZ, independente do backup de origem ter sido iniciado em uma implantação padrão ou Multi-AZ.
Réplicas de leitura facilitam aproveitar a funcionalidade de replicação incluída no MySQL para redimensionar elasticamente além das limitações de capacidade de uma única Instância de banco de dados para cargas de trabalho de leitura pesadas de banco de dados. Você pode criar uma Réplica de leitura em apenas alguns cliques na AWS Management Console ou com a API CreateDBInstanceReadReplica. Após a criação da Réplica de leitura, atualizações de banco de dados na Instância de banco de dados de origem serão replicadas utilizando a replicação assíncrona e nativa do MySQL. É possível criar múltiplas Réplicas de leitura para uma determinada Instância de banco de dados e distribuir o tráfego de leitura de seu aplicativo entre elas. Visto que Réplicas de leitura utilizam replicação incluída no MySQL, elas estão sujeitas às suas capacidades e limitações. Mais especificamente, as atualizações são aplicadas à(s) sua(s) Réplica(s) de Leitura após elas ocorrerem na Instância de banco de dados de origem e o atraso de replicação pode variar significativamente. Réplicas de leitura podem ser associadas a implantações Multi-AZ para obter benefícios de dimensionamento de leitura, além da disponibilidade de leitura de banco de dados aprimorada e da durabilidade de dados fornecida por implantações Multi-AZ.
Há inúmeros casos em que implantar uma ou mais Réplicas de leitura para uma Instância de banco de dados específica pode fazer sentido. Razões comuns para implantar uma Réplica de leitura incluem:
Réplicas de leitura exigem um mecanismo de armazenamento transacional e somente são suportadas pelo mecanismo de armazenamento InnoDB.
Mecanismos não transacionais como o MyISAM podem evitar réplicas de leitura de trabalhos conforme se pretende. No entanto, se ainda assim escolher usar o MyISAM com Réplicas de leitura, recomendamos que consulte atentamente o indicador "Replica Lag" do Amazon CloudWatch (disponível via AWS Management Console ou APIs do Amazon Cloud Watch) e recrie a Réplica de leitura que deveria ser deixada para trás devido a erros de replicação. As mesmas considerações se aplicam ao uso de tabelas temporárias e qualquer outro mecanismo não transacional.
É possível criar uma Réplica de leitura em alguns minutos utilizando a API CreateDBInstanceReadReplica ou com apenas alguns cliques no Management Console do Amazon RDS. Ao criar uma Réplica de leitura, você pode identificá-la como uma Réplica de leitura ao especificar um SourceDBInstanceIdentifier. O SourceDBInstanceIdentifier é o identificador da Instância de banco de dados da Instância de banco de dados de "origem" a partir da qual você deseja fazer a replicação. Da mesma forma que com uma Instância de banco de dados padrão, também é possível especificar a Zona de disponibilidade, a classe de Instância de banco de dados e a janela de manutenção preferida. A versão MySQL (por exemplo, MySQL 5.1.50) e a alocação de armazenamento de uma Réplica de leitura são herdadas da Instância de banco de dados de origem. Ao iniciar a criação de uma Réplica de leitura, o Amazon RDS faz um snapshot de sua Instância de banco de dados de origem e inicia a replicação. Como resultado, ocorrerá uma breve suspensão de E/S de sua Instância de banco de dados de origem à medida que ocorrer o snapshot. Essa suspensão de E/S geralmente dura cerca de um minuto e pode ser evitada se a Instância de banco de dados de origem for uma implantação Multi-AZ (no caso de implantações Multi-AZ, snapshots são realizados a partir da espera). O Amazon RDS também está trabalhando atualmente em uma otimização (a ser lançada em breve), para que, ao criar múltiplas Réplicas de leitura durante uma janela de 30 minutos, todas elas utilizem o mesmo snapshot de origem para minimizar o impacto de E/S (replicação "para recuperar o atraso" pois cada Réplica de leitura iniciará após a criação).
As Réplicas de leitura do Amazon RDS são tão fáceis de excluir quanto de criar; basta utilizar a AWS Management Console RDS ou chamar a API DeleteDBInstance (especificando o DBInstanceIdentifier para a Réplica de leitura que deseja excluir).
Ao solicitar a criação de uma Réplica de leitura, leve em consideração os seguintes itens:
Em alguns casos, você perceberá que sua(s) Réplica(s) de leitura não conseguem receber ou aplicar atualizações de sua Instância de banco de dados Multi-AZ de origem após um failover Multi-AZ. Isso ocorre porque alguns eventos binlog do MySQL não foram descarregados para o disco no momento do failover. Após o failover, a Réplica de leitura pode solicitar binlogs da origem que ela não possui. Essa perda de binlogs do MySQL durante uma queda é descrita no documento do MySQL aqui.
Um parágrafo de especial relevância para esse assunto encontra-se na extremidade inferior e descreve o parâmetro sync-binlog do MySQL. Esse parâmetro controla como binlogs do MySQL são descarregados para o disco e, ao utilizar o InnoDB, como os binlogs e os logs do InnoDB podem ser sincronizados.
Para resolver o assunto em questão, é necessário excluir a Réplica de leitura e criar uma nova para substituí-la. Para evitar esse problema no futuro, a configuração de sync-binlog=1 reduzirá em muito a chance de que os binlogs do MySQL exigidos pela Réplica de leitura sejam perdidos durante uma situação de colapso/falha. Assim como a documentação do MySQL explica, isso não resolve completamente o problema. Para reduzir ainda mais as chances desse problema, configure innodb_support_xa=1. Há risco de perda de desempenho ao configurar essas variáveis. Tanto o sync_binlog quanto o innodb_support_xa são variáveis dinâmicas, então, se você perceber que a perda de desempenho é muito grande, é possível redefini-las sem causar interrupção.
Essa é basicamente uma opção entre o desempenho e tentar aprimorar a ressincronização automática de Réplicas de leitura após um failover Multi-AZ de origem. Uma das vantagens das Réplicas de leitura do Amazon RDS é que elas podem ser rapidamente re-instanciadas quando problemas de sincronização surgirem ao excluí-las e recriá-las. Dessa maneira, seu desempenho não precisa sofrer ao configurar o sync-binlog e/ou o innodb_support_xa se tirar Réplicas de leitura de sincronia manualmente e recriá-las atender às suas necessidades.
As atualizações para uma Instância de banco de dados de origem serão automaticamente replicadas a quaisquer Réplicas de leitura associadas. Contudo, com a tecnologia de replicação assíncrona do MySQL, uma Réplica de leitura pode ficar para trás de sua Instância de banco de dados de origem por vários motivos. Os principais motivos incluem:
Réplicas de leitura estão sujeitas aos pontos fortes e fracos da replicação do MySQL. Se você estiver utilizando Réplicas de leitura, você deve estar ciente do potencial de atraso entre uma Réplica de leitura e sua Instância de banco de dados de origem, ou "inconsistência". Clique aqui para orientações sobre o que fazer se sua(s) Réplica(s) de leitura ficarem significativamente para trás de sua origem.
Você pode utilizar a API DescribeDBInstances padrão para reenviar uma lista de todas as Instâncias de banco de dados implantadas (incluindo Réplicas de leitura), ou simplesmente clicar na aba "Instâncias de banco de dados" da Management Console do Amazon RDS.
O Amazon RDS permite que você ganhe visibilidade em o quanto uma Réplica de leitura ficou para trás de suas Instância de banco de dados de origem, utilizando o comando MySQL padrão "Exibir Status do Secundário" contra a Réplica de leitura. Os dados "Seconds_Behind_Master" retornados pelo "Exibir Status do Secundário" também são publicado como uma métrica do Amazon CloudWatch ("atraso de Réplica"), disponível através da Management Console da AWS ou das APIs do Amazon Cloud Watch.
Como previamente abordado em perguntas anteriores, "inconsistência" ou atraso entre uma Réplica de leitura e sua Instância de banco de dados de origem é comum em replicação assíncrona do MySQL. Se uma Réplica de leitura existente ficou muito para trás para atender às suas necessidades, é possível excluí-la e criar uma nova com o mesmo ponto de extremidade, utilizando o mesmo Identificador de Instância de banco de dados e Identificador de Instância de banco de dados de origem que a Réplica de leitura excluída. Lembre-se de que o processo de recriação será contra-produtivo a pequenos níveis de atraso (ou seja, menos de cinco minutos de atraso, e deve ser utilizado com cautela (por exemplo, somente quando a Réplica de leitura está significativamente para trás de sua Instância de Banco de Dados de origem). Também é importante lembrar que o atraso de Réplica pode aumentar e diminuir naturalmente ao longo do tempo, dependendo do padrão de uso de estado estável de sua Instância de banco de dados padrão.
O dimensionamento da classe de Instância de banco de dados de uma Réplica de leitura pode reduzir o atraso de replicação em alguns casos, especialmente se sua Instância de banco de dados de origem for maior do que sua classe de Instância de banco de dados de Réplica de leitura. Contudo, não há garantias do funcionamento das Réplicas de leitura em todas as classes. Pode haver várias situações e padrões de uso onde uma Réplica de leitura nunca consegue alcançar sua origem após sua criação inicial, ou então permanece muito atrás de sua origem para atender às suas necessidades de tipo de uso.
O Amazon RDS permite que você controle quando o software de banco de dados relacional que alimenta sua Instância de banco de dados (por exemplo, MySQL) será atualizado para novas versões compatíveis com o Amazon RDS e se o será. Isso fornece a você a flexibilidade de manter a compatibilidade com versões específicas do MySQL, testar novas versões com seu aplicativo antes de implantar produção e realizar atualizações de versões de acordo com seus próprios termos e cronogramas.
A não ser que você especifique o contrário, sua Instância de banco de dados será atualizada automaticamente com novas versões secundárias do MySQL à medida que forem aceitas pelo Amazon RDS. Esse patching ocorrerá durante sua janela de manutenção programada, e será anunciado no Fórum do Amazon RDS com antecedência. Se você deseja desativar atualizações automáticas de versões, configure o parâmetro AutoMinorVersionUpgrade para "falso". Visto que atualizações de versões principais envolvem risco de compatibilidade, elas não ocorrerão automaticamente e devem ser iniciadas por você.
Essa abordagem de patching de software de banco de dados oferece a você o controle de atualizações de versões, mas ainda reduz o trabalho de aplicativo de patch do Amazon RDS. Descubra mais sobre o gerenciamento de versão lendo as perguntas frequentes a seguir em sua totalidade. Como alternativa, você pode consultar o nosso Guia do desenvolvedor.
Enquanto a funcionalidade de gerenciamento de versão do DB Engine fornece a você o máximo de controle possível sobre a forma que o patching ocorre, o Amazon RDS reserva-se o direito de realizar o patch de sua Instância de banco de dados em seu nome, caso haja uma vulnerabilidade crítica de segurança no software do banco de dados.
Você pode especificar qualquer versão compatível atualmente (secundária e/ou principal) ao criar uma nova Instância de banco de dados com a API CreateDBInstance. Simplesmente passe a versão desejada para o parâmetro do EngineVersion após sua criação; se nenhuma versão for especificada, o Amazon RDS irá optar, por padrão, por uma versão compatível, geralmente a versão mais recente. Se uma versão principal (por exemplo, MySQL 5.1) for especificada mas uma versão secundária não, o Amazon RDS escolherá por padrão um lançamento recente da versão principal que você especificou. Para ver uma lista de versões compatíveis, assim como o padrão para Instâncias de banco de dados recém-criadas, basta utilizar a API DescribeDBEngineVersions.
Se você optou por não realizar atualizações programadas automaticamente ao configurar o parâmetro AutoMinorVersionUpgrade para falso, mas deseja iniciar uma atualização manualmente para uma versão secundária compatível ou um lançamento de versão principal, basta utilizar a API ModifyDBInstance. Simplesmente especifique a versão para a qual deseja atualizar através do parâmetro EngineVersion. A atualização será então aplicada em seu nome automaticamente (se o marcador ApplyImmediately estiver configurado para verdadeiro) ou durante a próxima janela de manutenção programada para sua Instância de banco de dados.
Sim. Isso também é possível criando um snapshot de banco de dados a partir de sua Instância de banco de dados existente, restaurando o snapshot de banco de dados para criar uma nova Instância de banco de dados e depois iniciando uma atualização de versão para a nova Instância de banco de dados. Isso permite que você teste com segurança o clone atualizado de sua Instância de banco de dados antes de decidir se deseja ou não atualizar sua Instância de banco de dados original.
No contexto do MySQL, números de versão são organizados da seguinte forma:
Versão do MySQL = X.Y.Z
X = Versão principal, Y = nível de lançamento, Z = Número de versão dentro da série de lançamento.
Do ponto de vista do Amazon RDS, uma mudança de versão seria considerada importante se a versão principal ou o nível de lançamento estiverem sendo alterados. Por exemplo: de 5.1.X -> 5.5.X. Uma alteração de versão seria considerada pequena se o número da versão dentro do lançamento estiver sendo alterado. Exemplo: de 5.1.45 -> 5.1.49.
Atualmente, o Amazon RDS oferece suporte às versões principais do MySQL, o MySQL 5.1 e o MySQL 5.5. Pretendemos oferecer suporte às versões principais adicionais do MySQL no futuro.
Com o passar do tempo, pretendemos oferecer suporte às versões adicionais do MySQL para o Amazon RDS, tanto as secundárias quanto as principais. O número de novos lançamentos de versões compatíveis em um determinado ano poderá variar de acordo com a frequência e o conteúdo dos lançamentos de versão do MySQL e o resultado de uma intensa inspeção do lançamento por nossa equipe de engenharia de banco de dados. Contudo, como diretriz geral, visamos oferecer suporte às novas versões do MySQL dentro de 3-5 meses de seu lançamento de Disponibilidade geral.
Em termos de política de substituições:
Para criar uma nova Instância de banco de dados MySQL 5.5, utilize o "Assistente de lançamento de Instância de banco de dados" na AWS Management Console e selecione uma versão correspondente ao MySQL 5.5 ou simplesmente chame a API CreateDBInstance com o parâmetro de versão de mecanismo "5.5".
Atualmente, uma atualização direta do MySQL 5.1 para o MySQL 5.5 não é compatível. Contudo, pretendemos fornecer essa funcionalidade no futuro. Enquanto isso, se você deseja transferir seu banco de dados MySQL 5.1 existente ao MySQL 5.5, utilize o mysqldump para exportar seu banco de dados de sua Instância de banco de dados MySQL 5.1 existente e importá-lo a uma nova Instância de banco de dados MySQL 5.5.
Há duas opções de licenciamento disponíveis para utilizar o Amazon RDS para o Oracle:
O Amazon RDS atualmente oferece suporte às seguintes edições de banco de dados do Oracle, sob cada um dos modelos de licenciamento abaixo:
Sim, você pode alterar suas opções de licença. Contudo, será necessário excluir sua Instância de banco de dados atual com um snapshot final e criar uma nova Instância de banco de dados a partir daquele snapshot, especificando a nova opção de licenciamento de que você precisa.
No contexto do Oracle, as versões do Amazon RDS DB Engine são organizadas da seguinte maneira:
Versões do DB Engine para o Oracle = X.Y.Z
X = Versão principal (por exemplo: 11.2), Y = Nível de lançamento (por exemplo: 0.2), Z = número de versão dentro da série de lançamento (por exemplo: v2). Por exemplo, uma versão do DB Engine para o Oracle pode ser 11.2.0.2.v2
O Oracle lança Atualizações de conjuntos de patch de banco de dados (PSU) para níveis de lançamento compatíveis trimestralmente. (ex.: 11.2.0.2.1). O PSU inclui correções de segurança e correções adicionais de não segurança recomendadas pelo Oracle.
As versões do Amazon RDS DB Engine são projetadas com um determinado PSU como linha de base e podem conter correções além dele.
Do ponto de vista do Amazon RDS, uma mudança de versão seria considerada importante se a versão principal ou o nível de lançamento estiverem sendo alterados. Exemplo: uma variação de 11.2.0.2.Z -> 11.2.0.4.Z. Uma alteração de versão seria considerada pequena se o número da versão dentro do lançamento estiver sendo trocada. Exemplo: de 11.2.0.2.v2 -> 11.2.0.2.v3.
Atualmente, o Amazon RDS oferece suporte à versão 11.2 principal (11g Versão 2). Planejamos oferecer suporte às versões principais adicionais no futuro.
Consulte o Guia de usuário do Amazon RDS para detalhes da composição do conjunto de patch de cada versão do Engine DB da Oracle.
O Amazon RDS permite que você controle quando o software relacional de banco de dados alimentando sua Instância de banco de dados será atualizado com novas versões aceitas pelo Amazon RDS e se o será. Isso fornece a você a flexibilidade de manter a compatibilidade com versões específicas do Oracle, testar novas versões com seu aplicativo antes de implantar produção e realizar atualizações de versões de acordo com seus próprios termos e cronogramas.
A não ser que você especifique o contrário, sua Instância de banco de dados será automaticamente atualizada automaticamente com novas versões do DB Engine, à medida que forem aceitas pelo Amazon RDS. Esse patching ocorrerá durante sua janela de manutenção programada, e será anunciado no Fórum do Amazon RDS com antecedência. Se você deseja desativar atualizações automáticas de versão, basta configurar o campo "Atualização de versão secundária automática" para "Não". Visto que atualizações de versões principais envolvem risco de compatibilidade, elas não ocorrerão automaticamente e devem ser iniciadas por você.
Essa abordagem de patching de software de banco de dados oferece a você o controle de atualizações de versões, mas ainda reduz o trabalho de aplicativo de patch do Amazon RDS. Descubra mais sobre o gerenciamento de versão lendo as perguntas frequentes a seguir em sua totalidade. Como alternativa, você pode consultar o nosso Guia do desenvolvedor.
Enquanto a funcionalidade de gerenciamento de versão do DB Engine fornece a você o máximo de controle possível sobre a forma que o patching ocorre, o Amazon RDS reserva-se o direito de realizar o patch de sua Instância de banco de dados em seu nome, caso haja uma vulnerabilidade crítica de segurança no software do banco de dados.
No modelo "Licença incluída", o custo da "Licença de atualização de software" está incluído no preço por hora, permitindo o acesso a atualizações de software do banco de dados do Oracle. Contudo, com o modelo BYOL, você deve ter a "Atualização de licença e suporte" do Oracle para utilizar o Amazon RDS para banco de dados do Oracle.Especifique qualquer versão atualmente compatível secundária e/ou principal ao criar uma nova Instância de banco de dados através da opção "Iniciar Instância de banco de dados" na AWS Management Console ou da API CreateDBInstance.
Se você optou por não realizar atualizações programadas automaticamente ao configurar o parâmetro AutoMinorVersionUpgrade para falso, mas deseja iniciar uma atualização manualmente para uma versão secundária compatível ou um lançamento de versão principal, basta utilizar a API ModifyDBInstance. Simplesmente especifique a versão para a qual deseja atualizar através do parâmetro EngineVersion. A atualização será então aplicada em seu nome automaticamente (se o marcador ApplyImmediately estiver configurado para verdadeiro) ou durante a próxima janela de manutenção programada para sua Instância de banco de dados.
Sim. Isso também é possível criando um snapshot de banco de dados a partir de sua Instância de banco de dados existente, restaurando o snapshot de banco de dados para criar uma nova Instância de banco de dados e depois iniciando uma atualização de versão para a nova Instância de banco de dados. Isso permite que você teste com segurança o clone atualizado de sua Instância de banco de dados antes de decidir se deseja ou não atualizar sua Instância de banco de dados original.
No futuro, pretendemos oferecer suporte às versões adicionais de banco de dados Oracle para o Amazon RDS, tanto secundárias quanto principais. O número de novos lançamentos de versões compatíveis em um determinado ano poderá variar de acordo com a frequência e o conteúdo dos lançamentos de versão do MySQL e o resultado de uma intensa inspeção do lançamento por nossa equipe de engenharia de banco de dados. Contudo, como diretriz geral, visamos oferecer suporte às novas versões do MySQL dentro de 3-5 meses de seu lançamento de Disponibilidade geral.
Em termos de política de substituições:
Para o modelo BYOL, é possível dimensionar suas Instâncias de banco de dados de acordo com os termos de sua(s) licença(s) do Oracle.
Para o modelo de Licença incluída, as Instâncias de banco de dados sendo executadas no Oracle podem se expandir ou se reduzir a qualquer momento, sujeitas ao preço por hora que prevalecer para cada classe de Instância de banco de dados.
Para mais informações sobre as implicações de dimensionamento de Instâncias de banco de dados reservadas, consulte nossas Perguntas frequentes sobre Instâncias de banco de dados reservadas.
Para o modelo BYOL, é possível migrar de uma edição de software do Oracle para outra, desde que você possua uma licença não utilizada do Oracle que seja apropriada para a edição e classe da Instância de banco de dados que planeja executar. Para alterar a edição e reter seus dados, faça um snapshot de sua Instância de banco de dados em execução e depois crie uma nova Instância de banco de dados da edição desejada a partir daquele snapshot. Você deverá então excluir a antiga Instância de banco de dados, a não ser que queira mantê-la em execução e tenha as licenças apropriadas do banco de dados do Oracle.
Para o modelo de licença incluída, somente o Oracle Standard Edition One é aceito.
O Amazon RDS para Oracle pode suportar implantações Multi-AZ para os modelos de licença de Licença Incluída e Traga sua própria licença (BYOL).
O Oracle Data Guard é um recurso de alta disponibilidade disponível para a edição empresarial do banco de dados Oracle. Atualmente, o Amazon RDS utiliza uma tecnologia de replicação sincronizada diferenciada e funcionalidade de failover automática para oferecer implantações Multi-AZ para Instâncias de banco de dados Oracle. As implementações Multi-AZ encontram-se disponíveis para todas as edições do banco de dados Oracle suportadas pelo Amazon RDS.
Sim, esperamos que você precise usar duas vezes mais licenças para implantações Multi-AZ do que usaria em uma implantação Single-AZ parecida para efetuar a Instância de banco de dados (DB Instance) em stand-by. No entanto, você deve rever seu Acordo de Licenciamento de Software do Oracle e cumprir com as políticas de Licenciamento do Oracle.
Não, o RAC atualmente não é compatível.
As seguintes opções de edição do Enterprise são atualmente compatíveis com o modelo BYOL:
O Amazon RDS é compatível com os trinta conjuntos de caracteres na lista "Conjuntos de Caracteres do Banco de Dados de ASCII Recomendados" do Oracle. Você pode especificar seu conjunto de caracteres desejado ao criar uma nova instância de banco de dados. Isso é opcional e o conjunto de caracteres padrão é AL32UTF8. Para informações adicionais, consulte a Documentação do Amazon RDS.
O banco de dados Oracle oferece suporte a uma variedade de recursos que variam de acordo com a edição do banco de dados Oracle que você executar. Consulte o Guia do usuário do Amazon RDS para saber mais sobre os recursos do Oracle para os quais o Amazon RDS atualmente oferece suporte.