いつの間に!?既存オブジェクトを S3 レプリケーション出来るようになっていた!
これまで S3 のレプリケーションにおいて、「既存オブジェクトはレプリケーション出来ない」とばかり思っていましたが、2019年11月頃にひっそりと既存オブジェクトのレプリケーションが出来るようになっていたのをご存知だったでしょうか?(私は先日、S3 の公式ガイドで見つけるまで知りませんでした)
そういえば SDK のアップデートはあったよね
公式ブログでアップデートリリースを見た記憶がありませんが、そういえば11月頃の SDK リリース情報に「既存オブジェクトのレプリケーションをサポート」ってありましたよね。
Aws\S3
- Added support for S3 Replication for existing objects. This release allows customers who have requested and been granted access to replicate existing S3 objects across buckets.
これを見つけたとき「激アツやん!」と思って、しばらくの間 S3 のコンソールをポチポチしてメニュー追加されてないか、実はもう出来るようになっていて普通にレプリケーションしたら既存オブジェクトもレプリケーションされるんだろうか、、、と試してたことを思い出しました。
Slack にも当時のメモが残っておりました。
既存オブジェクトのレプリケーションはサポートケースで依頼
結論から申し上げると、既存オブジェクトのレプリケーションはユーザー側では実施できず、サポートケースを起票して依頼します。aws s3api put-bucket-replication
に ExistingObjectReplication
という項目が増えているようですが、ユーザー側で Enabled
することは出来ないようですね。
サポートケースから申請する際のカテゴリは、「技術サポート」-「S3」-「バケット関連」で問題ないようです。申請の際には、以下の情報が必要となります。
- レプリケート元バケット
- レプリケート先バケット
- 申請する前にレプリケーション設定は実施しておく
- レプリケートする推定ストレージボリューム (TB 単位)
- TB 単位の指定ですが 0.5 TB のように 1 TB 未満でも申請は可能
- レプリケートするストレージオブジェクトの推定数
申請が受理されると、自動的に既存のオブジェクトのレプリケーションが実施されます。
注意点
既存オブジェクトのレプリケーションを AWS 側で実施いただけるのは嬉しいですが、注意点としては SLA が定められているものではないという点です。具体的に申請が受理されて、同期処理がいつ開始されるのかについては定義されておりません。ですので、同期処理を急がれる場合においてはこれまでどおり、ユーザー側でコピーされるのが良いかと思います。
さいごに
ユーザー側で自由に有効化できないものの、これまで出来ないと思っていた既存オブジェクトのレプリケーションをマネージドな機能で実施できるのは嬉しいですね!注意点に記載のとおり、膨大なデータ量でない場合は、従来どおり s3 sync などを使ってユーザー側で同期させてしまうのが早いかと思いますが、数日間も掛かるようなデータ量をお抱えの場合は、検討してみるのが良さそうです。
今回は試すことが出来てないので、公式ガイドからのご紹介でしたが、いつか実施する機会があれば「やってみた」としてご紹介できればと思います。
以上!大阪オフィスの丸毛(@marumo1981)でした!