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