S3 Access Points をソースにデータ転送をやってみた

2022.09.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、森田です。
Amazon S3 のアクセスポイントをソースにデータ転送をやりたかったのですが、DataSyncを試してみたところ上手くいきませんでした。

いきなり結論

現在(2022/09/30)時点では、AWS DataSyncのソースに S3 のアクセスポイントを指定することはできません。 DataSync APIを確認したところ、以下のように S3 のアクセスポイントのフォーマットにはマッチしないようになっていました。

https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationS3.html

なので、S3 アクセスポイントを利用する場合は、別の方法で実現する必要があります。

AWS DataSync を利用しない方法

AWS CodeBuild 上で AWS CLI S3 Sync を利用することで簡単に実現できます。
Amazon EC2 や AWS Lambda ではなく、AWS CodeBuild を利用することで、コンピューティングリソースをあまり意識せず、必要なタイミングだけで利用することが可能となります。

こちらの元ネタとしては、以下の記事となります。

詳しい構成方法などについては、上記をご参照ください。

また、上記で構成していく際のビルドコマンドのところでは、S3アクセスポイントを指定した以下のコマンドを登録します。

ビルドコマンド

aws s3 sync s3://アクセスポイント s3://ターゲット

あとは、好きなタイミングでビルドを実行することでデータの転送が行われます。

また、データ転送の正常完了やエラーログの確認についてもAWS CodeBuild 上で確認できます。

最後に

今回は、Amazon S3 のアクセスポイントをソースにデータ転送する方法をご紹介しました。
どうしても Amazon S3 のアクセスポイントをソースにしたい際などは、ぜひご参考いただけると嬉しいです。