Soddisfazione dei requisiti di conformità con il controllo del tempo di replica di Amazon S3
Amazon S3 Replication Time Control (S3 RTC) permette di soddisfare i requisiti aziendali o di conformità per la replica dei dati fornendo visibilità sui tempi di replica di Amazon S3. S3 RTC replica la maggior parte degli oggetti caricati in Amazon S3 in pochi secondi e il 99,9% di tali oggetti entro 15 minuti.
Per impostazione predefinita, S3 RTC include due modi per monitorare l'avanzamento della replica:
-
Parametri di Replica Amazon S3: con i parametri di replica S3, è possibile monitorare il numero totale di operazioni API S3 in attesa di replica, la dimensione totale degli oggetti in attesa di replica, il tempo massimo di replica nella Regione di destinazione e il numero totale delle operazioni che non sono state replicate. Quindi puoi monitorare separatamente ogni set di dati replicato. È inoltre possibile abilitare i parametri di Replica Amazon S3 indipendentemente da S3 RTC. Per ulteriori informazioni, consulta Utilizzo dei parametri di Replica S3.
Le regole di replica per le quali è abilitato il controllo del tempo di replica di S3 (S3 RTC) pubblicano i parametri di Replica Amazon S3. I parametri di replica sono disponibili entro 15 minuti dall'attivazione di S3 RTC. I parametri di replica sono disponibili tramite la console Amazon S3, l'API Amazon S3, gli SDK AWS, l'AWS Command Line Interface (AWS CLI) e Amazon CloudWatch. Per ulteriori informazioni sui parametri CloudWatch, consultare Monitoraggio dei parametri con Amazon CloudWatch. Per ulteriori informazioni sulla visualizzazione dei parametri di replica tramite la console Amazon S3, consulta Visualizzazione dei parametri di replica.
I parametri di replica S3 vengono fatturati alla stessa tariffa dei parametri personalizzati di Amazon CloudWatch. Per informazioni, consulta Prezzi di Amazon CloudWatch
. -
Notifiche di eventi Amazon S3: S3 RTC fornisce gli eventi
OperationMissedThresholdeOperationReplicatedAfterThresholdche notificano al proprietario del bucket se la replica dell'oggetto supera la soglia dei 15 minuti o si verifica dopo tale intervallo di tempo. Con S3 RTC, è possibile che Notifiche di eventi Amazon S3 invii una notifica nel caso raro in cui gli oggetti non vengano replicati entro 15 minuti e quando tali oggetti vengono replicati una volta superata la soglia di 15 minuti.Gli eventi di replica sono disponibili entro 15 minuti dall'abilitazione di S3 RTC. Notifiche di eventi Amazon S3 è disponibile tramite Amazon SQS, Amazon SNS o AWS Lambda. Per ulteriori informazioni, consulta Ricezione di eventi di errore di replica con notifiche di eventi Amazon S3.
Best practice e linee guida per S3 RTC
Per la replica dei dati in Amazon S3 con controllo del tempo di replica di S3 (S3 RTC) abilitato, attenersi alle seguenti linee guida di best practice per ottimizzare le prestazioni di replica dei carichi di lavoro.
Argomenti
Linee guida sulle prestazioni per la frequenza di richieste e la replica di Amazon S3
Le applicazioni possono raggiungere migliaia di transazioni al secondo nelle prestazioni di richiesta durante il caricamento e il recupero di storage da Amazon S3. Ad esempio, un'applicazione può raggiungere almeno 3.500 richieste PUT/COPY/POST/DELETE o 5.500 richieste GET/HEAD al secondo per prefisso in un bucket S3, incluse le richieste che Replica Amazon S3 effettua per conto dell'utente. Non esistono limiti al numero di prefissi in un bucket. È possibile aumentare le proprie performance in lettura o scrittura parallelizzando le scritture. Ad esempio, se si creano 10 prefissi in un bucket S3 per parallelizzare le letture, è possibile scalare le prestazioni di lettura a 55.000 richieste di lettura al secondo.
Amazon S3 riduce orizzontalmente le risorse in modo automatico in risposta a frequenze di richieste sostenute oltre queste linee guida o a frequenze di richieste sostenute in contemporanea a richieste LIST. Mentre Amazon S3 si ottimizza internamente per la nuova frequenza di richieste, potresti ricevere temporaneamente risposte HTTP 503 fino al completamento dell'ottimizzazione. Questo comportamento potrebbe verificarsi con gli aumenti delle frequenze di richiesta al secondo o quando si abilita per la prima volta S3 RTC. Durante questi periodi, la latenza di replica potrebbe aumentare. Il contratto sul livello di servizio (SLA) di S3 RTC non si applica ai periodi di tempo in cui vengono superate le linee guida sulle prestazioni di Amazon S3 per le richieste al secondo.
Lo SLA di S3 RTC non si applica neanche ai periodi di tempo in cui la velocità di trasferimento dati di replica supera il limite predefinito di 1 Gbps. Se si prevede che la velocità di trasferimento della replica superi 1 Gbps, è possibile contattare il Centro Supporto AWS
Stima delle frequenze di richieste di replica
La frequenza di richieste totale, incluse le richieste effettuate da Replica Amazon S3 per conto dell'utente, deve rientrare nelle linee guida sulla frequenza di richieste di Amazon S3 per i bucket di origine e di destinazione della replica. Per ogni oggetto replicato, Replica Amazon S3 esegue fino a cinque richieste GET/HEAD e una richiesta PUT al bucket di origine e una richiesta PUT a ciascun bucket di destinazione.
Ad esempio, se si prevede di replicare 100 oggetti al secondo, Replica Amazon S3 può eseguire 100 richieste PUT aggiuntive per conto dell'utente per un totale di 200 richieste PUT al secondo nel bucket S3 di origine. Replica Amazon S3 può anche eseguire fino a 500 richieste GET/HEAD (5 richieste GET/HEAD per ogni oggetto replicato).
Nota
Vengono addebitati i costi per una sola richiesta PUT per oggetto replicato. Per ulteriori informazioni, consulta i prezzi nelle domande frequenti di Amazon S3 sulla replica
Superamento delle quote di velocità di trasferimento dati di S3 RTC
Se si prevede che la velocità di trasferimento dati di S3 RTC superi la quota predefinita di 1 Gbps, contattare il Centro Supporto AWS
AWS KMSFrequenze di richieste di replica di oggetti crittografati
Quando si replicano gli oggetti crittografati con crittografia lato server mediante chiavi AWS Key Management Service (AWS KMS) (SSE-KMS), si applicano le quote di richieste al secondo di AWS KMS. AWS KMS potrebbe rifiutare una richiesta altrimenti valida perché la frequenza di richieste supera la quota del numero di richieste al secondo. Quando una richiesta è soggetta a limitazione, AWS KMS restituisce un errore di ThrottlingException. La quota di frequenza delle richieste di AWS KMS si applica alle richieste effettuate direttamente dall'utente e alle richieste effettuate da Replica Amazon S3 per conto dell'utente.
Ad esempio, se si prevede di replicare 1.000 oggetti al secondo, è possibile sottrarre 2.000 richieste dalla quota della frequenza delle richieste di AWS KMS. La frequenza di richieste al secondo risultante è disponibile per i carichi di lavoro AWS KMS esclusa la replica. Puoi utilizzare i parametri di richiesta AWS KMS in Amazon CloudWatch per monitorare la frequenza totale delle richieste AWS KMS per il tuo Account AWS.
Per richiedere un aumento delle richieste di quote al secondo di AWS KMS, contattare il Centro di Supporto AWS
Abilitazione di S3 Replication Time Control
Puoi iniziare a utilizzare S3 Replication Time Control (S3 RTC) con una regola di replica nuova o esistente. È possibile scegliere di applicare la regola di replica a un intero bucket o a oggetti con un prefisso o un tag specifico. Quando si attiva S3 RTC, i parametri di Replica S3 vengono abilitati anche nella regola di replica.
S3 RTC può essere configurato utilizzando la console Amazon S3, l'API Amazon S3, gli SDK AWS e l'AWS Command Line Interface (AWS CLI).
Argomenti
Per istruzioni dettagliate, consulta Configurazione della replica per i bucket nello stesso account. In questo argomento vengono fornite le istruzioni per abilitare S3 RTC nella configurazione della replica quando i bucket di origine e destinazione sono di proprietà degli stessi Account AWS o di account AWS diversi.
Per replicare gli oggetti con S3 RTC abilitato mediante la AWS CLI, è necessario creare i bucket, abilitare la funzione Controllo delle versioni sui bucket, creare un ruolo IAM che autorizza Amazon S3 a replicare gli oggetti e aggiungere la configurazione di replica al bucket di origine. La configurazione della replica deve avere S3 RTC abilitato, come mostrato nel seguente esempio.
Per istruzioni dettagliate su come impostare la configurazione della replica utilizzando AWS CLI, consulta Configurazione della replica per i bucket nello stesso account.
Il seguente esempio di configurazione della replica abilita e imposta i valori ReplicationTime e EventThreshold per una regola di replica. L'attivazione e l'impostazione di questi valori abilita S3 RTC sulla regola.
{ "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 possono avere solo 15 come valore valido.
Di seguito è riportato un esempio Java per aggiungere la configurazione della replica con controllo del tempo di replica di S3 (S3 RTC).
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); } }