AWS DataSyncの転送元から即時取り出しできずエラーになる際の対処法を試してみた
こんにちは、クラウド事業本部 コンサルティング部の荒平(@eiraces)です。
AWS DataSyncを利用してバケット間のデータコピーを実施する際に遭遇したエラー事象について紹介します。
このエラーはデータの取り出し時に発生しているので、コピー先は任意のサービス・クラスになります。
前提
本エントリで遭遇したエラーの再現状況です。
- Amazon S3バケット間でのAWS DataSyncによるデータ移行
- 送信元のS3バケットはGlacier Flexible Retrieval (旧 Glacier)クラス
- 即時取り出しができないストレージクラス
転送元のストレージクラスは以下のような設定になっています。
今回は適当なオブジェクトを Glacier Flexible Retrieval (旧 Glacier)
としました。
エラー内容
以下のようなエラーが発生し、ファイルが転送されることなく終了します。
Transfer and verification completed. There were some errors in your task execution. See a list of affected files in CloudWatch logs. If no files are listed in CloudWatch logs, contact AWS Support.(転送と検証が完了しました。タスクの実行でエラーが発生しました。CloudWatch ログで影響を受けたファイルのリストを参照してください。CloudWatchログに該当ファイルがない場合は、AWSサポートにお問い合わせください。)
CloudWatch Logsも一応確認してみます。ストレージクラスがサポートしていないようですね。
[ERROR] Failed to read source file /japanese-paper_00183.jpg: storage class does not support synchronous retrieval([エラー] ソースファイル /japanese-paper_00183.jpg の読み取りに失敗しました: ストレージクラスは同期取得をサポートしていません)
解消方法
ドキュメントを漁っても記載はなかったのですが(あれば是非Xなどで教えて下さい!)、DataSyncではコピー元が即時取り出しに対応していない場合、エラーになります。
そのため、マネジメントコンソールまたはS3 APIを利用して、オブジェクトを取り出し状態にします。
保持する日数、取得方法を指定して「復元を開始」します。
S3 APIを利用した取り出し
マネジメントコンソールではなく、CloudShellやCLIから取り出すこともできます。
aws s3api restore-object \
--bucket <s3-bucket-name> \
--key <object-name> \
--restore-request '{"Days":1,"GlacierJobParameters":{"Tier":"Expedited"}}'
上記コマンドを利用すると、保持期限1日、迅速取り出しで用意できます。
取り出し方法によっては料金が異なりますので、注意してください。
取り出しのステータスは以下のコマンドで確認できます。
aws s3api head-object --bucket <s3-bucket-name> --key <object-name>
1日を指定した場合、翌日にExpiry-dateが設定されます。
なお、取り出し中は、ongoing-request="true"が表示されます。
{
"AcceptRanges": "bytes",
"Restore": "ongoing-request=\"true\"",
"LastModified": "2025-05-04T15:20:13+00:00",
"ContentLength": 289098,
"ETag": "\"51991fcae77ae5ef4219a78af0c85f0f\"",
"ContentType": "text/csv",
"ServerSideEncryption": "AES256",
"Metadata": {
"last-modified": "1744123205000"
},
"StorageClass": "GLACIER"
}
データ取り出しを実施してからDataSyncタスクを起動すると、成功できました。
ログを確認し、データコピーが成功で終了しています。
おわりに
以上、AWS DataSyncを利用した際にハマった事象でした。
元々お客様から問い合わせ頂いて調査をしていたのですが、意外と情報がなくて困りました。
このエントリが誰かの助けになれば幸いです。
それでは、クラウド事業本部 コンサルティング部の荒平がお送りしました!
参考
直接的に本件と関連はないものの、S3 Glacier同士のSyncが必要であれば以下のre:postも参考になりそうです。