Amazon S3におけるバケットとURLの関係についてわかりやすく解説してみる。

S3におけるバケット名のユニーク性について


Amazon S3に保存されるあらゆるオブジェクト(≒ファイル)は、バケット(=バケツ)と呼ばれる入れ物の中に存在します。
バケットの役割は、Amazon S3に保存されたオブジェクトにたいして名前空間を提供することです。

バケットは、インターネットにおけるドメイン名に似ています。

例えば、Amazonという会社はAmazon.comというドメイン名を所有する唯一の会社です。
Amazon S3においては、あるバケットを所有できるのは1個人(または法人)のみです。
ひとたびあなたがAmazon S3内でバケットを作成したら、あなたはそのバケット内で好きなオブジェクト名を使うことができます。
作成したバケットは、あなたがAmazon S3アカウントを保持する限り永久に保持されます。

バケットとドメイン名が類似しているのは偶然ではありません。
実際、Amazon S3上のバケット名とs3.amazonaws.comのサブドメインには対応関係があります。
Amazon S3に保存されたバケットには、bucketname.s3.amazonaws.comというドメイン名でアクセスすることができます。

例えば、mybucketというバケットにhomepage.htmlというオブジェクトが保存されたら、そのURLは
http://mybucket.s3.amazonaws.com/homepage.html
となります。

S3におけるリージョンの役割

① バケットは、グローバルでユニークになります。
リージョンは名前空間として機能しません。
誰かがひとたび"foobar"というバケットをSingaporeリージョンで作成したら、もう誰も、TokyoリージョンでもUSリージョンでも"foobar"バケットは作成できなくなります。

② リージョンはバケットに対して設定します。
バケット内でAオブジェクトとBオブジェクトを別リージョンに保存することはできません。
あるバケット内の全てのオブジェクトは同じリージョンに保存されます。

バケット作成時にリージョンを選ぶことができるので、バケットXはTokyoに、バケットYはSingaporeに作成する、ということはできます。


参考:公式ドキュメント
http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?UsingBucket.html
カテゴリ: