いつの間に!?既存オブジェクトを S3 レプリケーション出来るようになっていた!

公式ガイドを眺めてたら機能追加されていたことに気づきました。
2020.02.10

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

これまで 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-replicationExistingObjectReplication という項目が増えているようですが、ユーザー側で Enabled することは出来ないようですね。

サポートケースから申請する際のカテゴリは、「技術サポート」-「S3」-「バケット関連」で問題ないようです。申請の際には、以下の情報が必要となります。

  • レプリケート元バケット
  • レプリケート先バケット
    • 申請する前にレプリケーション設定は実施しておく
  • レプリケートする推定ストレージボリューム (TB 単位)
    • TB 単位の指定ですが 0.5 TB のように 1 TB 未満でも申請は可能
  • レプリケートするストレージオブジェクトの推定数

申請が受理されると、自動的に既存のオブジェクトのレプリケーションが実施されます。

注意点

既存オブジェクトのレプリケーションを AWS 側で実施いただけるのは嬉しいですが、注意点としては SLA が定められているものではないという点です。具体的に申請が受理されて、同期処理がいつ開始されるのかについては定義されておりません。ですので、同期処理を急がれる場合においてはこれまでどおり、ユーザー側でコピーされるのが良いかと思います。

さいごに

ユーザー側で自由に有効化できないものの、これまで出来ないと思っていた既存オブジェクトのレプリケーションをマネージドな機能で実施できるのは嬉しいですね!注意点に記載のとおり、膨大なデータ量でない場合は、従来どおり s3 sync などを使ってユーザー側で同期させてしまうのが早いかと思いますが、数日間も掛かるようなデータ量をお抱えの場合は、検討してみるのが良さそうです。

今回は試すことが出来てないので、公式ガイドからのご紹介でしたが、いつか実施する機会があれば「やってみた」としてご紹介できればと思います。

以上!大阪オフィスの丸毛(@marumo1981)でした!