Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

バケットの制約と制限

各バケットは、それを作成した AWS アカウントによって所有されます。デフォルトでは、AWS アカウントにつき最大で 100 個のバケットを作成できます。追加のバケットが必要な場合は、サービスの制限の緩和を申請することによって、バケットの制限を引き上げることができます。バケットの制限を引き上げる方法については、AWS 全般のリファレンスの「AWS サービスの制限」を参照してください。

バケットの所有権は譲渡できませんが、バケットが空の場合は削除できます。バケットを削除するとそのバケット名は再度利用できるようになりますが、さまざまな理由により、削除した本人が使用できないことがあります。たとえば、他のアカウントがその名前でバケットを作成した可能性があります。または、削除した名前が再度利用可能になるまでにしばらく時間がかかることもあります。このため、同じバケット名を使いたい場合は、バケットを削除しないでください。

1 つのバケット内に格納できるオブジェクトの数に制限はありません。また、使用するバケットの数によってパフォーマンスに差が出ることもありません。すべてのオブジェクトを 1 つのバケットに格納してもかまいませんし、複数のバケットに分けて整理してもかまいません。

バケットを作成したら、そのリージョンを変更することはできません。

バケット作成リクエストで、クライアントを作成したときに指定した AWS リージョンとは異なるリージョンを明示的に指定すると、エラーになる場合があります。

バケット内に別のバケットを作ることはできません。

Amazon S3 の高可用性技術は、GET、PUT、LIST、および DELETE オペレーションに重点を置いています。バケットオペレーションは中央集中型のグローバルリソーススペースに対して作用するため、お使いのアプリケーションの高可用性コードパスでバケットの作成や削除を行うのは適切ではありません。バケットの作成や削除は、個別の初期化や、頻繁に実行しないセットアップルーチンで実行するほうが適しています。

注記

アプリケーションが自動的にバットを作成する場合は、命名の衝突が起きないようなバケット命名スキームを使用してください。特定のバケット名が既に使用されている場合は、異なるバケット名をアプリケーションロジックが選択するようにしてください。

バケット命名規則

S3 バケット作成後はバケット名を変更できないため、慎重に選択してください。

重要

2018 年 3 月 1 日、世界中のすべての AWS リージョンで使用されている命名規則と一致するように、米国東部(バージニア北部) リージョンの S3 バケットの命名規則を更新しました。現在 Amazon S3 では、大文字やアンダースコアを含むバケット名の作成がサポートされていません。この変更により、各バケットのアドレス指定に https://myawsbucket.s3.amazonaws.com などの仮想ホスト形式のアドレス指定を使用できるようになります。既存のバケット作成プロセスを確認し、DNS 準拠の命名規則に従うことを強くお勧めします。

すべての AWS リージョンの S3 バケットを命名する規則は次のとおりです。

  • バケット名は必ず、Amazon S3 内の既存バケット名の中で一意になるようにします。

  • バケット名は、DNS 命名規則に沿って命名する必要があります。

  • バケット名は、3~63 文字以内にする必要があります。

  • 大文字またはアンダースコアをバケット名に含めることはできません。

  • バケット名の先頭は小文字の英数字にする必要があります。

  • バケット名は、1 つのラベルまたは一連の複数のラベルとして指定します。隣り合うラベルは単一のピリオドで区切ります。バケット名には、小文字の英文字、数字、およびハイフン (-) を含めることができます。各ラベルの先頭および末尾は、小文字の英文字または数字にする必要があります。

  • バケット名は IP アドレスの形式 (192.168.5.4 など) にはできません。

  • 仮想ホスティング形式のバケットを Secure Sockets Layer (SSL) で使用する場合、SSL ワイルドカード証明書はピリオドを含まないバケットにのみ一致します。この問題を回避するには、HTTP を使用するか、または独自の証明書検証ロジックを記述します。仮想ホスティング形式のバケットを使用するときは、バケット名にピリオド (「.」) を使用しないことをお勧めします。

DNS に準拠していない、レガシーのバケット名

2018 年 3 月 1 日以降、DNS 準拠の名前を義務付けるように、米国東部(バージニア北部) リージョンでの S3 バケットの命名規則を更新しました。

米国東部(バージニア北部) リージョンでは、以前バケット名の基準が緩かったため、DNS に準拠していないバケット名が使用されている可能性があります。たとえば、MyAWSbucket には大文字が使われていますが、有効なバケット名でした。このバケットに、仮想ホスト形式のリクエスト (http://MyAWSbucket.s3.amazonaws.com/yourobject) を使用してアクセスしようとすると、URL はバケット myawsbucket でなく、バケット MyAWSbucket に解決されます。このため、Amazon S3 は "bucket not found" エラーを返します。バケットへの仮想ホスト形式のアクセスの詳細については、「バケットの仮想ホスティング」を参照してください。

米国東部(バージニア北部) リージョンのバケット名のレガシールールでは、バケット名は最長 255 文字で、大文字、小文字、数字、ピリオド (.)、ハイフン (-)、アンダースコア (_) を任意に組み合わせた文字列が使用可能でした。

Amazon S3 Transfer Acceleration で使用するバケットは、ピリオド (".") が含まれていない DNS 準拠の名前にする必要があります。Transfer Acceleration の詳細については、「Amazon S3 Transfer Acceleration」を参照してください。

このページの内容: