S3 Access Points をソースにデータ転送をやってみた
こんにちは、森田です。
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 のアクセスポイントをソースにしたい際などは、ぜひご参考いただけると嬉しいです。