Amazon S3 / Glacier
Amazon S3 / S3 Glacier
https://d1.awsstatic.com/webinars/jp/pdf/services/20190220_AWS-BlackBelt_S3_Glacier.pdf
S3 の位置付け
S3はユーザがデータを安全に、容量制限なく、保存可能なオブジェクトストレージ Glacier は 安全性とコスト効率を重視したアーカイブ向けストレージ
S3 API ⇆ S3 -> (Standard-IA) -> Glacier
データストア
S3の概要
- 容量無制限
- 高い耐久性
- 安価なストレージ
スケーラブルで安定した性能
少なくとも3つのAZでファイルを保存
- 1つのAZは最大8つのデータセンターで構成
- イレブンナイン
S3の用語
- バケット:グローバルでユニークな必要がある
- オブジェクト:データ本体。S3に格納されるファイルでURLが付与される
- キー:オブジェクト格納URLパス。バケット+キー+バージョンが必ず一意になる
- メタデータ
- リージョン
Data Consistency モデル
結果整合性が採用されている - PUT: 登録後、即時データが参照できる - PUT: 更新直後は以前のデータが参照される可能性がある。結果整合性 - DELETE: 更新直後は以前のデータが参照される可能性がある。結果整合性
ロック処理はなく、最新のタイムスタンプのリクエストが優先される
ストレージクラス
- Standard
- 頻繁に利用するデータ
- Intelligent tiering: アクセス頻度が高いオブジェクトと低いオブジェクトを自動的に最適化するクラス
- 変化するアクセスパターンのデータ
- 最低保持期間30日以上
- Standard IA: 標準低頻度アクセスストレージ
- 取り出し料金
- 最低保持期間30日以上
- 最小オブジェクトサイズ128kb以上
- ONEZONE IA: single AZのStandard IA
- 1AZ
- 最低保持期間30日以上
- 最小オブジェクトサイズ128kb以上
- S3 Glacier: アーカイブ。低コストだが取り出すのにコストと時間がかかる
- 取り出し料金
- 最低保持期間90日以上
- S3 Glacier Deep Archive: Glacier より低コスト。取り出すのに半日から3日かかる
- 最低保持期間90日以上
- 程冗長化ストレージ(RRS): Glacier から取り出したデータの置き場所
アクセス
アクセス管理
セキュリティ
Webサイトホスティング
データ保護
- サーバサイド暗号化
- AWSのサーバリソースを利用して格納データの暗号化処理
- クライアントサイド暗号化
- 暗号化プロセスはユーザ管理
- バージョン管理
- S3 Object Lock(WORM機能)
- クロスリージョンレプリケーション
- ライフサイクル管理
- S3 Glacier へのアーカイブと復元
- Analytics を利用した、IAの利用
- どのデータがどの期間で読まれたかが見られる。これによってIAのライフサイクルを決める参考になる
- QuickSightでもみられる
- S3インベントリ
- オブジェクトリストをCSV/ORCで出力
- 初回の結果を得るまでに48時間かかる
- 定期的に実行するようにできる
- オブジェクトリストをCSV/ORCで出力
- イベント通知
- CloudWatch によるメトリクス管理
- CloudTrail によるAPI管理
- 100,000イベントごとに$0.1
- 別のバケットにログを出力することを推奨
- Logging、Tagによる管理も有効
パフォーマンス最適化
- 大きなファイルのGETには RANGE GETを利用するとマルチスレッド環境で高速にダウンロード可能
- 帯域と並列コネクション数のバランス
- 100MB以上のファイルのアップロード
- マルチパートアップロード
- 全てのチャンクがアップロードされるとS3が結合
- Transfer Acceleration
- 利用者はエッジネットワークに対して通信し、エッジネットワークからS3とデータ通信することで高速に転送できる
- S3 Bucket のAccelerationを有効化する
- 利用者はエッジネットワークに対して通信し、エッジネットワークからS3とデータ通信することで高速に転送できる
- Direct Connect
- S3 Select
- リクエストレート
料金
雑感
S3は今まで単なるオブジェクトストレージとしてしか認識していなかったが、その中でも色々なワークロードに対して合うようなストレージクラスや機能が実装されていて、サービスの種類によって選択が変わるだろうなと思った。 アプリケーションで恒常的に利用されるものはスタンダードクラスで良いが、監査ログやコンプライアンスの規定で数年保持しないといけないが実際に読まれることはほとんどないといった場合はGlacier を利用することができる。 結果整合性モデルを採用しているので更新時の取り扱いには注意が必要だと思った。WORM機能は面白い。