0
会員になると、いいね!でマイページに保存できます。
Amazon S3(Amazon Simple Storage Service)は、AWSが提供するオンラインストレージサービスの1つです。高い拡張性・耐久性や低コストなどの特長から、非常に多くのユーザーに利用されています。本稿では、Amazon S3の概要から、関連用語、機能までひとつひとつひも解いて説明していきます。
Amazon S3とは何か、3つの特長
Amazon Simple Storage Service (以下、S3)は、AWSが提供するオブジェクトストレージサービスです。
オブジェクトストレージとは、従来のファイルストレージのようなディレクトリ構造は持たず、オブジェクトキーによりデータを一意に特定してデータの出し入れをして管理を行うストレージです。テキストデータ、動画、音声ファイルといった、構造情報を持たないさまざまな種類のデータを格納できます。
S3には以下の特長があります。
容量無制限
オブジェクト(後述)あたり5TBという制約はあるものの、オブジェクト数やデータ容量の制限はありません。
高い耐久性
標準で、3つ以上のアベイラビリティゾーン(以下、AZ)にデータがコピーされます。AZは1つ以上のデータセンターから構成されており、AZ間は物理的に離れているため、データセンター障害といった大きな障害にも耐えることができます。AWSでは
99.999999999%(9×11、イレブンナイン)という高い耐久性を示しています。
低コスト
東京リージョン、標準のストレージで保存料金は1ヵ月あたり0.025USD/1GBとなっています(2021年4月時点)。1TBのオブジェクトを格納すると、月あたり25USDとなります。後ほど紹介するストレージクラスの変更を行うと、さらに安い料金でデータ保存が可能です。その他、データのアップロードや取り出しについてはわずかに料金が発生します。
リレーショナルデータベース(RDB)サービスであるAmazon Auroraのストレージ料金は0.12USD/1GBとなっており、S3はこの1/5ほどのストレージコストとなっています。
高い拡張性、耐久性、低コストという特性から、S3は他のAWSサービスからも多く使われます。
たとえば、
前回紹介したAmazon VPCのトラフィック状況を保存するVPC Flow Logsや、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontのアクセスログなど各種ログの保存場所としてS3が使用されます。そのほかにも、バックアップデータの保存や機械学習サービスのインプット情報の格納場所など幅広い用途で使用されます。
Amazon S3の重要用語(バケット、オブジェクト…)
S3を使用する上で重要な用語を説明します。
●バケット
オブジェクト(データ)を保存する場所のことです。利用者は作成したバケットにオブジェクトを格納します。バケットに使用する名前は、グローバルで一意である必要があります。つまり、「test-bucket」という名前でバケットを作成したら、他の利用者を含め、全リージョン全AWSアカウントで同じ名前のバケットは作成できません。
●オブジェクト
バケットに格納されるデータ本体です。バケット内のオブジェクト数は無制限に保存できますが、1オブジェクトの最大サイズは5TBまでという制約があります。
●キー
オブジェクトの格納URLパスです。バケット名とキー名、オブジェクト名を組み合わせて右のように一意になるよう設定されます。
「/」という文字を区切り記号にして、AWSのマネジメントコンソール上ではフォルダ構造のようにオブジェクトを表示できます。
Amazon S3の操作(GET、PUT…)
S3には操作用のAPIが用意されており、それを呼び出すことによりS3バケット内のオブジェクトを操作します。主要な操作をいくつか紹介します。
●GET
S3バケットから任意のファイル(オブジェクト)ダウンロードする操作のことです。
●PUT
S3バケットにオブジェクトをアップロードする操作のことです。新規アップロードも更新(上書き)もこの操作となります。
1つのPUT操作では最大5GBまでのため、それ以上のファイルをアップロードする場合は、マルチパートアップロードと呼ばれる機能を使用します。この機能を使用することで、単一のオブジェクトを複数のパートに分割して並列にアップロードでき、最大5TBのファイルをアップロードできます。
●LIST
S3バケット内のオブジェクトを一覧で表示する操作です。キーの前方一致でパス指定のフィルタも可能です。
●COPY
S3内でオブジェクトのコピーを行います。異なるバケットやリージョン間でもコピーが可能です。
●DELETE
S3バケット内の任意のオブジェクトを削除する操作です。
これらの操作をAWSマネジメントコンソールや、AWS SDKを組み込んだアプリケーション、コマンドラインを使用したAWS CLIなどから実行します。他のAWSサービスが透過的に利用者が見えない部分でS3バケットを使用することもあります。
S3内のオブジェクト操作は、AWS CloudTrail(AWSにおけるイベントを記録するサービス)上にAPI履歴として保存できます。S3内のオブジェクト操作履歴を残すには、データイベントというAWS CloudTrailの機能を有効にする必要があるためそこは注意が必要です。
【次ページ】Amazon S3の主な機能(ストレージクラス、アクセス制御…)
関連タグ