このサービスは、冗長性が高く、さまざまなファイルアクセスを提供しており、WEBサービス向けのストレージとして人気です。
ツールも各種クライアントがあり運用や管理も簡単です。
今回はAWSのコンソールを利用してS3のサービスに触れてみます。
https://console.aws.amazon.com/s3/
にアクセスし、ログインします。(AWSのアカウントを取得していることが前提です)
初めて使用する場合は以下のような画面になっています。
これを押すと以下のようにBucket(バケット) を作成するダイアログが表示されます。
Bucketとはストレージ領域の単位のことで、ディスクパーティションのようなものです。
Bucket名と使用するリージョンを選択します。
ここでは以下のようにしました
- Bucket Name : myfirst-bucket
- Region : Tokyo
また、Bucket名はS3に登録されている全てのBucket内でユニークである必要があります。
「Set up Logging」というボタンがあります、これはこのバケット内のファイルへのWEBからのスタティックアクセスのログを行うための設定ですが、ここでは割愛します。
なんのファイルもアップロードしていないので、右ペインは空っぽです。
するとフォルダがひとつ作成されます。ここではhogeというフォルダを作成しました。
ちなみに「Use Reduce Redundancy Strorage」というチェックを入れると、通常のS3ストレージではなくRRSという廉価版のストレージに格納されます。S3よりも冗長性は弱くなりますが(それでも99.99%)、利用料金はS3のおよそ2/3ほどに抑えられます。
- Grant me full control:いまログインしているAWSユーザーにS3コンソール上でのファイルの列挙、ファイルの閲覧、操作を許可(チェックをはずしてもなぜかフルコントロール可能です。)
- Make everything public:このファイルをWEBで公開します。
デフォルトは「Grant me full control」だけにチェックがついています。
これらのチェックを変更したり、パーミッションを追加することもできますが、
今回はこのまま先に進み、「Set Metadata」ボタンをクリックします。
デフォルトで「Figure out content types automatically」にチェックがついており、
ファイルのタイプに応じて自動的にContent-Typeヘッダを付与するようになっています。
すると以下のようにファイルが追加されたのがわかります。
アップしたファイルは以下のURLでアクセスが可能です。
http://バケット名.s3.amazonaws.com/バケット内のファイルパス
今回は
- バケット名:myfirst-bucket
- ファイルパス:/hoge/mizu.jpg
http://myfirst-bucket.s3.amazonaws.com/hoge/mizu.jpgでアクセスします。
すると以下のエラーXMLがレスポンスとして返されました。
<error> <code>AccessDenied</code> <message>Access Denied</message> <requestid>60E98F3FB80D83C1</requestid> <hostid>+XIP+XDq0t3HxjErdLH8jz9JTc8oN0puRZH6ABZTiakQ/o/incRd4st2LNH9p4Vq</hostid> </error>
これは、先ほどのパーミッションの設定で「Make everything public」にチェックをつけず、デフォルトのままアップロードしたためです。
これをあとから変更し、WEBアクセスができるようにします。
再びコンソールにもどり、先ほどのファイル一覧でmizu.jpgを右クリックし、コンテキストメニューから「Properties」を選びます。
すると下ペインにこのファイルのプロパティが表示されます。
右下の「Save」ボタンをクリックすると、WEBアクセスが許可されます。
また、もっと簡単な方法として、ファイルやフォルダを右クリックして「Make public」を選ぶだけでファイルやフォルダ内の全てのファイルが上記パーミッション設定を行ったのと同じ結果になり、WEBに公開されます。もちろん、先ほどのアップロード時に「Make everything public」にチェックを入れても同じ結果になります。
再度
http://myfirst-bucket.s3.amazonaws.com/hoge/mizu.jpgにアクセスすると今度は画像が正しく表示されました。
今回はここまでにします。