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

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

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

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

Copy
import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.BucketReplicationConfiguration; import com.amazonaws.services.s3.model.ReplicationDestinationConfig; import com.amazonaws.services.s3.model.ReplicationRule; import com.amazonaws.services.s3.model.ReplicationRuleStatus; public class CrossRegionReplicationComplete { private static String sourceBucketName = "source-bucket"; private static String roleARN = "arn:aws:iam::account-id:role/role-name"; private static String destinationBucketArn = "arn:aws:s3:::destination-bucket"; public static void main(String[] args) throws IOException { AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); try { Map<String, ReplicationRule> replicationRules = new HashMap<String, ReplicationRule>(); replicationRules.put( "a-sample-rule-id", new ReplicationRule() .withPrefix("Tax/") .withStatus(ReplicationRuleStatus.Enabled) .withDestinationConfig( new ReplicationDestinationConfig().withBucketARN(destinationBucketArn) ) ); s3Client.setBucketReplicationConfiguration( sourceBucketName, new BucketReplicationConfiguration() .withRoleARN(roleARN) .withRules(replicationRules) ); BucketReplicationConfiguration replicationConfig = s3Client.getBucketReplicationConfiguration(sourceBucketName); ReplicationRule rule = replicationConfig.getRule("a-sample-rule-id"); System.out.println("Destination Bucket ARN : " + rule.getDestinationConfig().getBucketARN()); System.out.println("Prefix : " + rule.getPrefix()); System.out.println("Status : " + rule.getStatus()); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which" + " means your request made it " + "to Amazon S3, but was rejected with an error response" + " for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "a serious internal problem while trying to " + "communicate with Amazon S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } } }

詳細については、次のトピックを参照してください。

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

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

このページの内容: