Atender aos requisitos de conformidade com o Controle do Tempo de Replicação do S3
O Controle do tempo de replicação do S3 (S3 RTC) ajuda a atender aos requisitos empresariais ou de conformidade relacionados à replicação de dados, além de fornecer visibilidade dos tempos de replicação do Amazon S3. O S3 RTC replica a maioria dos objetos obtidos por upload para o Amazon S3 em segundos, e 99,99 por cento desses objetos em 15 minutos.
Por padrão, o S3 RTC inclui duas maneiras de monitorar o progresso da replicação:
-
Métricas de Replicação do S3: é possível usar as métricas de Replicação do S3 para monitorar o número total de operações de API do S3 com replicação pendente, o tamanho total dos objetos com replicação pendente, o tempo máximo de replicação para a região de destino e o número total de operações cuja replicação apresentou falha. Você pode monitorar cada conjunto de dados replicado separadamente. Também é possível habilitar as métricas de Replicação do S3 independentemente do S3 RTC. Para ter mais informações, consulte Usar métricas de replicação do S3.
As regras de replicação com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado publicam as métricas de Replicação do S3. As métricas de replicação ficam disponíveis 15 minutos após a ativação do S3 RTC. As métricas de replicação estão disponíveis por meio do console do Amazon S3, da API do Amazon S3, dos SDKs da AWS, da AWS Command Line Interface (AWS CLI) e do Amazon CloudWatch. Para ter mais informações sobre métricas do CloudWatch, consulte Monitoramento de métricas com o Amazon CloudWatch. Consulte mais informações sobre como visualizar métricas de replicação por meio do console do Amazon S3 em Visualizar métricas de replicação.
As métricas de replicação de S3 são cobradas usando a mesma taxa das métricas personalizadas do Amazon CloudWatch. Para obter mais informações, consulte Definição de preço do Amazon CloudWatch
. -
Notificações de Eventos do Amazon S3: o S3 RTC fornece eventos
OperationMissedThreshold
eOperationReplicatedAfterThreshold
que notificam o proprietário do bucket se a replicação do objeto exceder ou ocorrer após o limite de 15 minutos. Com o S3 RTC, as Notificações de Eventos do Amazon S3 podem notificar você nas raras vezes em que objetos não são replicados em até 15 minutos e quando esses objetos são replicados depois do limite de 15 minutos.Os eventos de replicação estão disponíveis dentro de 15 minutos após a ativação do S3 RTC. As Notificações de Eventos do Amazon S3 estão disponíveis por meio do Amazon SQS, Amazon SNS ou AWS Lambda. Para ter mais informações, consulte Receber eventos de falha de replicação com Notificações de Eventos do Amazon S3.
Melhores práticas e diretrizes do S3 RTC
Ao replicar dados no Amazon S3 com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado, siga estas diretrizes de práticas recomendadas para otimizar o desempenho da replicação para workloads.
Tópicos
Diretrizes de performance da taxa de replicação e de solicitação do Amazon S3
Ao fazer upload e recuperar armazenamento do Amazon S3, as aplicações podem realizar milhares de transações por segundo em performance de solicitação. Por exemplo, uma aplicação pode atingir pelo menos 3.500 solicitações PUT
/COPY
/POST
/DELETE
ou 5.500 solicitações GET
/HEAD
por segundo por prefixo em um bucket do S3, incluindo as solicitações que a Replicação do S3 faz em seu nome. Não há limite para o número de prefixos em um bucket. Você pode aumentar sua performance de leitura ou gravação paralelizando as leituras. Por exemplo, se criar 10 prefixos em um bucket do S3 para paralelizar leituras, você poderá escalar o desempenho de leitura para 55.000 solicitações de leitura por segundo.
O Amazon S3 escala automaticamente em resposta a taxas de solicitação sustentadas acima dessas diretrizes ou taxas de solicitação sustentadas simultâneas às solicitações LIST
. Enquanto o Amazon S3 estiver sendo otimizado internamente para a nova taxa de solicitação, você pode receber respostas de solicitação HTTP 503 temporariamente até que a otimização seja concluída. Esse comportamento pode ocorrer com aumentos nas taxas de solicitação por segundo ou quando você habilita o S3 RTC pela primeira vez. Durante esses períodos, sua latência de replicação pode aumentar. O acordo de nível de serviço (SLA) do S3 RTC não se aplica a períodos em que as diretrizes de performance do Amazon S3 em solicitações por segundo são excedidas.
O SLA do S3 RTC também não se aplica durante períodos em que a taxa de transferência de dados de replicação excede a cota padrão de 1 gigabit por segundo (Gbps). Se você espera que a taxa de transferência de replicação exceda 1 Gbps, entre em contato com o AWS Support Center
Estimar as taxas de solicitação de replicação
A taxa total de solicitações, incluindo as solicitações que a replicação do Amazon S3 faz em seu nome, deve estar dentro das diretrizes de taxa de solicitação do Amazon S3 para os buckets de origem e destino da replicação. Para cada objeto replicado, a replicação do Amazon S3 faz até cinco solicitações GET
/HEAD
e uma solicitação PUT
para o bucket de origem e uma solicitação PUT
para cada bucket de destino.
Por exemplo, se você espera replicar 100 objetos por segundo, a replicação do Amazon S3 pode executar mais 100 solicitações PUT
em seu nome para um total de 200 solicitações PUT
por segundo para o bucket do S3 de origem. A replicação do Amazon S3 também pode executar até 500 solicitações GET
/HEAD
(5 solicitações GET
/HEAD
para cada objeto replicado).
nota
Você receberá a cobrança por apenas uma solicitação PUT
por objeto replicado. Consulte mais informações sobre o preço nas Perguntas frequentes sobre replicação do Amazon S3
Exceder as cotas da taxa de transferência de dados do S3 RTC
Se você espera que a taxa de transferência de dados do S3 RTC exceda a cota padrão de 1 Gbps, entre em contato com o AWS Support Center
Taxas de solicitação de replicação de objetos criptografados do AWS KMS
Quando você replica objetos criptografados com a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), cotas de solicitação por segundo do AWS KMS são aplicadas. O AWS KMS pode rejeitar uma solicitação válida, pois a taxa de solicitação excede a cota do número de solicitações por segundo. Quando uma solicitação é rejeitada, o AWS KMS retorna um erro ThrottlingException
. A cota da taxa de solicitação do AWS KMS se aplica a solicitações feitas diretamente e a solicitações feitas pela replicação do Amazon S3 em seu nome.
Por exemplo, se espera replicar 1.000 objetos por segundo, você poderá subtrair 2.000 solicitações da cota de taxa de solicitações do AWS KMS. A taxa de solicitação resultante por segundo está disponível para as workloads do AWS KMS excluindo a replicação. Você pode usar métricas de solicitação do AWS KMS no Amazon CloudWatch para monitorar a taxa total de solicitações do AWS KMS em sua Conta da AWS.
Para solicitar um aumento em sua cota de solicitações por segundo do AWS KMS, entre em contato com o AWS Support Center
Habilitar o Controle do tempo de replicação do S3
Você pode começar a usar o Controle do tempo de replicação do S3 (S3 RTC) com uma regra de replicação nova ou existente. Você pode optar por aplicar a regra de replicação a um bucket inteiro ou a objetos com um prefixo ou uma tag específica. Quando você habilita o S3 RTC, as métricas de Replicação do S3 também são habilitadas na regra de replicação.
É possível configurar o S3 RTC usando o console do Amazon S3, a API do Amazon S3, os SDKs da AWS e a AWS Command Line Interface (AWS CLI).
Tópicos
Para obter instruções detalhadas, consulte Configurar a replicação para buckets na mesma conta. Este tópico traz instruções para ativar as métricas de replicação do S3 em sua configuração da replicação quando os buckets de origem e destino pertencerem às mesmas Contas da AWS ou a outras.
Para usar a AWS CLI para replicar objetos com o S3 RTC habilitado, crie buckets, habilite o versionamento nos buckets, crie uma função do IAM que conceda permissão ao Amazon S3 para replicar objetos e adicione a configuração da replicação ao bucket de origem. A configuração de replicação deve ter o S3 RTC habilitado, conforme mostrado no exemplo a seguir.
Consulte instruções passo a passo para definir a configuração da replicação usando a AWS CLI em Configurar a replicação para buckets na mesma conta.
O exemplo de configuração de replicação a seguir habilita e define os valores de ReplicationTime
e EventThreshold
para uma regra de replicação. Habilitar e definir esses valores habilita o S3 RTC na regra.
{ "Rules": [ { "Status": "Enabled", "Filter": { "Prefix": "
Tax
" }, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "Metrics": { "Status": "Enabled", "EventThreshold": { "Minutes": 15 } }, "ReplicationTime": { "Status": "Enabled", "Time": { "Minutes": 15 } } }, "Priority": 1 } ], "Role": "IAM-Role-ARN
" }
Importante
Metrics:EventThreshold:Minutes
e ReplicationTime:Time:Minutes
só podem ter 15
como um valor válido.
O exemplo de Java a seguir adiciona a configuração da replicação com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado.
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.model.DeleteMarkerReplication; import software.amazon.awssdk.services.s3.model.Destination; import software.amazon.awssdk.services.s3.model.Metrics; import software.amazon.awssdk.services.s3.model.MetricsStatus; import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest; import software.amazon.awssdk.services.s3.model.ReplicationConfiguration; import software.amazon.awssdk.services.s3.model.ReplicationRule; import software.amazon.awssdk.services.s3.model.ReplicationRuleFilter; import software.amazon.awssdk.services.s3.model.ReplicationTime; import software.amazon.awssdk.services.s3.model.ReplicationTimeStatus; import software.amazon.awssdk.services.s3.model.ReplicationTimeValue; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) .credentialsProvider(() -> AwsBasicCredentials.create( "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY") ) .build(); ReplicationConfiguration replicationConfig = ReplicationConfiguration .builder() .rules( ReplicationRule .builder() .status("Enabled") .priority(1) .deleteMarkerReplication( DeleteMarkerReplication .builder() .status("Disabled") .build() ) .destination( Destination .builder() .bucket("destination_bucket_arn") .replicationTime( ReplicationTime.builder().time( ReplicationTimeValue.builder().minutes(15).build() ).status( ReplicationTimeStatus.ENABLED ).build() ) .metrics( Metrics.builder().eventThreshold( ReplicationTimeValue.builder().minutes(15).build() ).status( MetricsStatus.ENABLED ).build() ) .build() ) .filter( ReplicationRuleFilter .builder() .prefix("testtest") .build() ) .build()) .role("role_arn") .build(); // Put replication configuration PutBucketReplicationRequest putBucketReplicationRequest = PutBucketReplicationRequest .builder() .bucket("source_bucket") .replicationConfiguration(replicationConfig) .build(); s3.putBucketReplication(putBucketReplicationRequest); } }