S3(Amazon Simple Strage Service)とは
オブジェクトストレージを提供するサービス。耐障害性・可用性・コスト面に優れる。
バケット内にキーとオブジェクトのペアがあり,それぞれにメタデータが付随しているイメージ。
新しいオブジェクトの書き込みや既存のオブジェクトの上書きリクエスト成功後,読み込みリクエストはオブジェクトの最新版を受け取る(強力な整合性)
バケット
オブジェクトを保存する場所。バケット名はAWSアカウントの中で一意である必要がある。プレフィックスと呼ばれるS3上のディレクトリを追加できる。また1アカウントで最大100個まで作成可能で,増加リクエストができる。
キー
オブジェクトに割り当てる名前(ファイル名)。キーはバケット内で一意である必要がある。
メタデータ
アップロードしたオブジェクトの属性を記載したデータ。アップロード時のみメタデータの設定ができる。
オブジェクト
バケットに保存するデータそのもの。
フォルダ
オブジェクトを階層構造に見せることができる。(実際はフラット)
ログの記録
AWS CloudTrailと連携してAPIコールの記録が可能
メリット
-
耐久性・可用性
S3は複数のAZに保存され,耐久性は99.999999999%(イレブンナイン)を持つ。 -
容量
格納可能なデータの総量とオブジェクト数に制限がないため,データ容量を気にしなくて良い。ただし1オブジェクトは最大5TB。ユーザは保存したオブジェクトの分だけ利用料金を払う。 -
セキュリティ
柔軟なセキュリティ機能を提供
S3のアクセス制御
-
アクセスコントロールポリシー(ACL)
他のAWSアカウントなどにバケットやオブジェクトへのアクセスを許可するもの。バケットまたはオブジェクト単位で設定。 -
バケットポリシー
バケットに付与でき,特定のIPアドレスからのアクセスを許可,拒否するといった設定が可能。JSON形式で期日。 -
IAMポリシー
EC2からS3にアクセスする場合は,EC2にS3へのアクセスを許可するIAMロールを付与する必要がある。 -
パブリックアクセス設定
パブリックアクセスの可否を設定。バケットやアカウント単位で設定。
ストレージクラス
-
標準
高耐久・高可用性なスタンダードなストレージ。 -
標準-低頻度アクセス
標準よりも安価だが,データ取り出し時に料金が発生。アクセス頻度の低いデータの格納向け。 -
1ゾーン・低頻度アクセス
1つのAZにしかデータを保存しない代わりに,標準-低頻度アクセスよりも安価。しかし可用性が低くなっている。アクセス頻度の低いデータの格納向け。 -
Glacier
長期間のデータ保存に有効であり,標準の1/5の料金で利用可能。データ取り出しに時間と料金がかかる。
ライフサイクル
バケット内のオブジェクトを削除したり,ストレージクラスを変更する機能のこと。オブジェクトの更新日をベースに,バケット全体またはプレフィックス単位で設定可能。
署名付きURL
AWS CLIやSDKを使って一時的にオブジェクトへのアクセスできるURLを発行できる。URL自体に有効期限が設けられるため,戻し忘れが発生しない。
バージョニング
オブジェクトの更新をバージョン管理する機能。バージョニングを有効化することで,S3バケット内の更新/削除のイベントは1バージョンとして管理できる。
クロスリージョンレプリケーション
S3は3つのAZでデータを複製して管理する。仮にリージョン全体で大規模障害が発生した場合に備え,クロスリージョンレプリケーションという設定がある。これによりリージョン間でのコピーが自動的に行われ,データロスなどに備えることができる。
参考
https://www.youtube.com/watch?v=J0FYcxWN9mU&list=PLPzcoMdqG5noLR7rAc552mvPADUmmdSt1&index=7
https://www.youtube.com/watch?v=wQ8ZDvoMSno
AWSの基本・仕組み・重要用語が全部わかる教科書