S3
https://gyazo.com/e6ddb7e25e8acb35137f8aaeb1fb76bf
概要
静的コンテンツを保存するときに使うサービス。
データは同じリージョンの3箇所以上のAZ(アベイラビリティゾーン)にコピーされので、障害やエラー耐性が高い。 S3特徴
イレブンナイン(99.999999999%)の堅牢性
データをAmazon S3に保存しておけば、データ消失のリスクはほぼゼロにすることができる
Amazon S3では、保存されたファイルをリージョン内で3箇所以上のデータセンターに自動的に複製して保持することによってこの"イレブンナイン"の堅牢性を実現している。
なお、可用性については99.99%の設計となっている(データを消失する可能性はほぼゼロだが、年間で計算すると1時間程度Amazon S3のサービスが停止する可能性がある、ということ)
容量無制限
保存できるデータ容量、ファイル数に制限は無し。
従量課金なので使った分だけ料金は発生するが、容量を気にせず使用できることは大きなメリットっぽい。
なお、データの総量に対する制限は無いが、ファイルサイズには1ファイル最大「5TB」までという上限がある。
安価
ストレージの料金は、本ブログ記事執筆時点では「月額:約4円($0.033)/GB」(東京リージョン)となっている。
これを安いと感じるか否かは人それぞれかとは思うが、簡単にイレブンナインの堅牢性を享受できることを考慮すると十分にリーズナブルな価格
他ストレージサービスとの使い分け
また、S3はEBSに比べてコスパが良いので、ログファイルなど長期保存が必要なデータは定期的にEBSからS3に移動させるとよい。 ユースケース
主なユースケースとしては大きく以下の3つが挙げれる
データのバックアップ
"イレブンナインの堅牢性"という特徴から最もイメージし易いのがデータバックアップストレージとしての用途かも
ディザスタリカバリ目的でオンプレミスにあるサーバのバックアップを保存する、というケースが典型的らしい
個人でも写真や動画データをS3に保存する、といった使い方も可能。
コンテンツ配信
S3に保存したファイルはインターネット経由でアクセス可能なので、Webサイトの静的コンテンツ(htmlファイル、画像ファイル、javascriptファイルなど)をS3に保存しておき、S3から直接クライアントに配信することがでる。
こうすることで、WebサイトをホストするWebサーバの負荷を軽減することが可能。
また、「静的ウェブサイトのホスティング」の機能を使うと、S3自体をWebサーバとして機能させることも可能。
ログデータ等の保存先
EC2で稼働するアプリケーションのログ退避先や、ビッグデータ分析で使用する生データ(基幹システムのDBからエクスポートしたCSVファイルなど)や中間データ(生データを分析用に加工したもの)の保存先としてもAmazon S3が活用できる。
各種AWSサービスのログの保存先としてもAmazon S3が使われている
--.icon
アクセス管理
アクセス権限を細かく設定することが可能
IAMユーザー、クロスアカウントユーザ、匿名アクセスなどを、バケット・オブジェクト単位で指定ができる
ただ、デフォルトでは、S3のバケットやオブジェクトなどは全てプライベートアクセス権限のみに設定されている
ユーザーポリシー
IAMユーザーに対して、S3やバケットのアクセス権限を設定 複数ばけとやS3以外のものも含めて一元的にユーザー権限を指定する場合などに使用
バケットポリシー
S3バケット毎に、アクセス権限を指定
クロスアカウントでのS3バケットアクセス権を付与する場合などに使用
ACL
各バケット及びオブジェクトのアクセス権限を指定
バケット単位やオブジェクト単位で簡易的に権限を付与する場合などに使用
その他
VPC End Point
https://gyazo.com/cd1d37f64e91e2d328d110b0ce2bd869
暗号化によるデータ保護
サーバーサイド暗号化
クライアントサイド暗号化
Pre-Signed Object URL(署名付きURL)
Pre-Signed URLを使用することで、セキュアにS3とのデータのやり取りが可能
AWS SDKを利用して生成される署名されたURLを使用して、S3上のプライベートなオブジェクトに対して一定時間アクセスを許可
GETとPUTオペレーションで利用可能
https://gyazo.com/5fbc93cfab283f6b8eb6605a501ee66a