メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for .NET を使用してクロスリージョンレプリケーションをセットアップする

レプリケート元とレプリケート先のバケットを 2 つの異なる AWS アカウントが所有している場合、AWS CLI または AWS SDK を使用して、レプリケート元バケットにレプリケーション設定を追加できます。コンソールを使用してレプリケーション設定を追加することはできません。レプリケート元バケットにレプリケーション設定を追加するときに、コンソールが別の AWS アカウントによって所有されているレプリケート先バケットを指定しないためです。詳細については、「クロスリージョン レプリケーションのセットアップ」を参照してください。

以下の AWS SDK for .NET のコード例では、まずバケットにレプリケーション設定を追加した後、その設定を取得します。バケット名と IAM ロール ARN を指定して、コードを更新する必要があります。 作業サンプルを作成およびテストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

Copy
using System; using System.Collections.Generic; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class CrossRegionReplication { static string sourceBucket = "source-bucket"; static string destinationBucketArn = "arn:aws:s3:::destination-bucket"; static string roleArn = "arn:aws:iam::account-id:role/role-name"; public static void Main(string[] args) { try { using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { EnableReplication(client); RetrieveReplicationConfiguration(client); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } catch (AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine( "To sign up for service, go to http://aws.amazon.com/s3"); } else { Console.WriteLine( "Error occurred. Message:'{0}' when enabling notifications.", amazonS3Exception.Message); } } } static void EnableReplication(IAmazonS3 client) { ReplicationConfiguration replConfig = new ReplicationConfiguration { Role = roleArn, Rules = { new ReplicationRule { Prefix = "Tax", Status = ReplicationRuleStatus.Enabled, Destination = new ReplicationDestination { BucketArn = destinationBucketArn } } } }; PutBucketReplicationRequest putRequest = new PutBucketReplicationRequest { BucketName = sourceBucket, Configuration = replConfig }; PutBucketReplicationResponse putResponse = client.PutBucketReplication(putRequest); } private static void RetrieveReplicationConfiguration(IAmazonS3 client) { // Retrieve the configuration. GetBucketReplicationRequest getRequest = new GetBucketReplicationRequest { BucketName = sourceBucket }; GetBucketReplicationResponse getResponse = client.GetBucketReplication(getRequest); // Print. Console.WriteLine("Printing replication configuration information..."); Console.WriteLine("Role ARN: {0}", getResponse.Configuration.Role); foreach (var rule in getResponse.Configuration.Rules) { Console.WriteLine("ID: {0}", rule.Id); Console.WriteLine("Prefix: {0}", rule.Prefix); Console.WriteLine("Status: {0}", rule.Status); } } } }

クロスリージョンレプリケーション (CRR)

クロスリージョン レプリケーションのセットアップ

このページの内容: