Key Value Store についてはこの連載でも何回かお話ししてきましたが、今日のKeyValueStoreはすごいです。ほとんど落ちない(99.9%の可用性)、データの欠損もほとんどない(99.999999999の堅牢性)。容量の不足も気にならない。インストールや設定、運用の手間もない。そんなKeyValueStoreのお話です。
そんなKey Value Store それは
Amazon S3(Simple Storage Service)
その名前からは、ファイルを置いておくためのストレージという印象の強いサービスで、実際に保存ファイル数は5,660億個(2011年10月現在)にもなります。毎秒のアクセスも約40万回もあると言われています。Amazon Web Servicesが提供するサービスの中でも一番古いサービスになります。(現在のProduct Adevertising API を除く。)
今日はまず、Amazon S3がどんなサービスなのかを追っていきます。その後になぜ私が、このストレージサービスをKeyValueStoreと紹介するのかについて書きます。
AmazonS3の特徴
Amazon S3はシンプルなHTTPのインターフェイスでアクセスができるストレージサービスです。データを分散して保存してくれたり、バージョンを管理してくれたりとストレージとしてはだいぶリッチな機能を持っています。
バケットとオブジェクト
Amazon S3にはバケットとオブジェクトというものでファイルを管理します。
バケットは世界中でユニークな名前が付けられ、このバケット毎に世界6箇所のリージョンと呼ばれる複数のデータセンターの集まりの中からどこに保存するかを選択することができます。
オブジェクトは私達が日頃ファイルと呼んでいるものと同じ意味だと思って大丈夫です。
オブジェクトには最大で2Kバイトまで、任意メタデータやHTTPでアクセスした時にヘッダーとして送出させられる物等がくっつけられます。また、オブジェクト一つ一つには一意にアクセスできるURLが割り当てられます。
Access Control List
ブラウザやcURLなどで単純にHTTPでアクセスできるような権限から、自分自身しか見ることも書くこともできない権限まで設定できます。
権限にはREAD,WRITE,READ_ACP,WRITE_ACP,FULL_CONTROLという5つの権限がありますが、それぞれ
- READ 読み込みができる権限
- WRITE 書き込み(上書き)ができる権限
- READ_ACP ACLがどうなっているのか読み込むことができる権限
- WRITE_ACP ACLを書き換えることができる権限
- FULL_CONTROL 全て可能な権限
となっています。
この他にもバケット毎にアクセス権限を設定する「バケットポリシー」やユーザ毎にアクセス権限を設定する「IAM」、あとで詳しくお話ししますが、有効期限付きでURLさえ知っていればアクセス可能にできる「Query String Authentication」という機能もあります。
制限
ストレージとして細かなアクセス制限などできるのですが、やはり制限もあります。
- 1つのファイルの大きさは1バイトから5Tバイトまで
- HTTPでのみアクセス可能
- 1アカウントに付き作れるバケットは100個
と、制限と言っても気にしなくてはいけない制限はHTTPでしかアクセスできないということくらいで、他はそんなに気になるものではありません。
どうしても大量のデータを出し入れしたいという時にはAmazonに直接HDDを送ってデータを入れてもらったり、出してもらったりするAmazon Import/Exportというサービスもあります。
この記事は参考になりましたか?
- クラウド時代のデータストア連載記事一覧
-
- ビッグデータを「使う」ための技術、「機械学習」とは?
- それは 世界でも最大級の KeyValueStore
- おまたせしました。楽しいMongoDBの時間デス
- この記事の著者
-
得上竜一(トクガミリュウイチ)
株式会社マイニングブラウニー代表。
高校卒業後、電力会社の通信部門へ。社内にいくつもASがあるようなIP網やPDH,HDLCなどのL2以下のネットワークの保守を担当。その後パソコン・家電の激安店で価格調査と価格設定のシステムを開発。現在は進化させたそのシステムでインターネットの情報を集めるため...※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア