AWS S3(4)使用する上で注意すること

パフォーマンス最適化

S3へのリクエストが100rpsを超える場合は、キー(ディレクトリ名やファイル名等)先頭部分の文字列をランダムにする。プレフィックスごとに3500rpsのPUT/POST/DELETEリクエスト5500rpsのGETリクエストを処理可能である。また、大量のGETリクエストが発生する場合には、CloudFrontを併用する。

データ整合性モデル

S3では、書き込み後の読み込み整合性を提供する。また、単一キーに対する更新はアトミックである。しかし、複数のデータセンタに複製することから、オブジェクトを書き込んだ直後に表示させると、オブジェクトが表示されなかったり、古いデータが表示されることがある。また、あるクライアントが書き込みを完了する前に別のクライアントが書き込みを始めた場合などは、整合性のある書き込み結果とならない場合もある。したがって、データベースのトランザクションログなど短時間に書き込みが連続するデータの保存には適さない

バケットの命名規則

バケット名は3文字以上63文字以内で、大文字やアンダースコア、ピリオドを含むことはできない。ハイフンは使用可能。また、バケット名は既存のバケット名の中で一意でなければならない。

ストレージクラス

S3 Standerd(低頻度アクセス)とS3(1ゾーン/低頻度アクセス)は、少なくても30日間保存する予定があり、サイズが128KB以上あるオブジェクトに最適である。

ライフサイクル

S3 Standerd(低頻度アクセス)とS3(1ゾーン/低頻度アクセス)は、現在のストレージクラスに少なくとも30日間は保存する必要がある。ライフサイクル処理は、UTC時0時に実行される。

参考

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/request-rate-perf-considerations.html