Table of Contents
はじめに
FundastA Inc.の鈴木です。
現在、AWS ソリューションアーキテクトアソシエイト試験合格に向け AWS について勉強中です。
今回は S3 について勉強したことを備忘録として、記述していきます。
S3とは
SimpleStorageService の略で、 AWS が提供するオブジェクトストレージです。
特徴
-
高い耐久性
-
安価なストレージ(月額 1GB / 2.5 円)
-
スケーラブルで安定した性能
-
転送中や保存時にデータを暗号化可能
- データサイズは上限 5TB まで
ストレージサービス
AWS には AWS が提供しているストレージサービスがあります。
ブロックストレージ
-
EC2 にアタッチして活用するディスクサービス
-
ブロック形式でデータを保存
-
高速・広帯域幅
-
該当サービス: EBS 、インスタンスストア
-
バージョニング不可
-
ライフサイクル管理できない
オブジェクトストレージ
-
安価かつ高い耐久性をもつオンラインストレージ
-
オブジェクト形式でデータを保存
- バージョニング可能(復元可能機能)
-
該当サービス: S3 、 Glacier
ファイルストレージ
-
複数の EC2 インスタンスから同時にアタッチ可能 な共有ストレージサービス
-
ファイル形式でデータを保存
-
該当サービス: EFS
-
バージョニング不可
-
ライフサイクル管理できない(低頻度アクセスデータを低コストなストレージに移すことは可能)
ここは S3 はオブジェクトストレージなんだなと思っていただければ良いです。
S3 オブジェクト構成
Key
オブジェクトの名前であり、バケット内のオブジェクトは一意に識別する。
Value
データそのものであり、バイト値で構成される
バージョンID
バージョン管理に用いる ID
メタデータ
オブジェクトに付随する属性の情報
サブリソース
バケット構成情報を保存および管理するためのサポートを提供
例:アクセス制御リスト( ACL )
ストレージクラス
ストレージクラスは練習問題を解いていてもストレージクラスを選ぶ問題もあったので、それぞれの特徴を覚えておいた方がよさそうです。
STANDARD
-
一般的に使用され、耐久性が非常に高い
- 一番標準的な値段
- 頻繁にアクセスするデータに一般的に使用される。
STANDARD-IA
-
データ読み出し容量に応じて課金
- STANDARD に比べて安価
- ユースケース
- ミリ秒単位のアクセスが必要な、長期保管用のアクセス頻度の低いデータ
- 読み込みが速い方が良い場合
OneZone-IA
- バックアップのコピーや一時的なデータ保存
-
STANDARDーIA よりも可用性が落ちる
- ユースケース
- アクセス頻度は低いが、必要に応じて過ぎに取り出すデータ向け
RRS
- Glacier から取り出したデータ配置等
- 非推奨となっている。
AmazonGlacier
- 最安のアーカイブ用ストレージ
- データ抽出にコストと時間を要する
- S3 よりも性能が劣る
- ユースケース
- 中長期的に使用しないデータ保存
-
1分から12時間の取り出しオプションを使用した長期バックアップとアーカイブ
S3 暗号化
S3 には暗号化の種類がいくつかあります。
どこに違いがあるのか特徴を記載します。
SSE-S3
- S3 の標準暗号化方式で簡易に利用可能
- 暗号化キーの作成・管理を S3 側で自動で実施
- AES-256 を使用して暗号化
SSE-KMS
- AWS KMS に設定した暗号化キーを利用した暗号化を実施
- クライアント独自の暗号キーを利用可能
SSE-C
- ユーザーが指定したキーによるサーバー側の暗号化 ( SSE-C ) を使用することが可能
- 利用設定や管理が煩雑になるのがデメリット
・クライアントサイド暗号化
- アプリケーション内に保存したマスターキーを使用
- クライアント側で暗号化を実施
- 暗号化実施後に S3 に保存する。
S3 アクセス管理
IAM ポリシー
- IAM ユーザーに対してアクセス権限を設定
- ユーザー権限を管理
バケットポリシー
- バケットへのアクセス権を JSON で設定
- 他アカウントへの許可も可能
- バケット単位の高度なアクセス管理向け
ACL
- バケットと個々のオブジェクトへのアクセス権限を XML で設定する
- 他アカウントへの許可も可能
- 簡易的にアクセス管理向け
署名付き URL
- 一時的に見せたい場合にアクセス許可を出す
※インターネットからパブリックアクセスの設定が可能
おわりに
今回は S3 についてまとめました。
本当であれば、「レプリケーション」や「データ解析」、「 S3 の外部接続」も記載したかったですが、量が多くなってしまうため、別の記事で書きたいと思います。
S3 はファイルを作ってデータを入れているだけの簡単なイメージでした。しかし、ストレージクラスや暗号化の方法など覚えることが多いです。問題を解きながら知識の定着をしていければと思います。