S3
Amazon Simple Storage Service (S3) ノート。
Overview
- S3 は AWS の主要 なビルディングブロックの 1 つ
- 「無限 にスケーリング」するストレージとして宣伝
- 多 くの AWS サービスが S3 と統合
Use Cases
- バックアップとストレージ
- 災害 復旧
- アーカイブ
- ハイブリッドクラウドストレージ
- アプリケーションホスティング
- メディアホスティング
- データレイク & ビッグデータ分析
- ソフトウェア配信
- 静的 Web サイト
Bucket
- S3 はオブジェクト(ファイル)を「バケット」(ディレクトリ)に格納
- バケットはグローバルに一意 な名前 が必要 (全 てのリージョン、全 てのアカウント)
- バケットはリージョンレベルで定義
- S3 はグローバルサービスに見 えるがバケットはリージョンに作成
Naming Convention
- 大文字 禁止 、アンダースコア禁止
- 3-63 文字
- IP アドレス禁止
- 小文字 または数字 で開始
xn--プレフィックス禁止-s3aliasサフィックス禁止
Objects
- オブジェクトにはキー(フルパス)がある
s3://my-bucket/my_file.txts3://my-bucket/my_folder1/another_folder/my_file.txt
- キー = プレフィックス + オブジェクト名
- 「ディレクトリ」の概念 はない(スラッシュ付 きのキーのみ)
Content
- オブジェクト値 はボディの内容
- 最大 オブジェクトサイズ: 5 TB (5000 GB)
- 5 GB 以上 のアップロードにはマルチパートアップロードが必須
- メタデータ(テキストキー/値 ペアのリスト)
- タグ(Unicode キー/値 ペア、最大 10)
- バージョン ID(バージョニング有効時 )
Security
Bucket Policy
ユーザーベース:
- IAM ポリシー: 特定 ユーザーに許可 される API 呼 び出 し
リソースベース:
- バケットポリシー: バケット全体 のルール
- オブジェクト ACL - より細 かい粒度
- バケット ACL - あまり一般的 ではない
IAM プリンシパルが S3 オブジェクトにアクセスできる条件 :
ユーザー IAM 権限 が許可 OR リソースポリシーが許可
AND 明示的 な DENY がない
Block Public Access Settings
- 全 てのパブリックアクセスをブロック: ON (推奨 )
- 企業 データ漏洩 防止 のために作成
- バケットがパブリックである必要 がない場合 は ON のまま
- アカウントレベルで設定 可能
Static Website Hosting
- S3 で静的 Web サイトをホスト可能
- URL 形式
:
http://<bucket-name>.s3-website-<aws-region>.amazonaws.com - 403 Forbidden エラーの場合 、バケットポリシーがパブリック読 み取 りを許可 しているか確認
Versioning
- バケットレベルで有効化
- 同 じキーの上書 きでバージョンが変更 : 1, 2, 3…
- バケットのバージョニングはベストプラクティス:
- 意図 しない削除 から保護
- 以前 のバージョンへの簡単 なロールバック
Replication (CRR & SRR)
前提 条件 : ソースと宛先 バケットでバージョニングを有効化
- Cross-Region Replication (CRR): コンプライアンス、低 レイテンシー、クロスアカウント
- Same-Region Replication (SRR): ログ集約 、本番 /テスト間 のライブレプリケーション
Storage Classes
| クラス | 説明 |
|---|---|
| Standard - General Purpose | 99.99% 可用性 、頻繁 にアクセスされるデータ |
| Standard-IA | 低頻度 アクセス、99.9% 可用性 |
| One Zone-IA | 単一 AZ、99.5% 可用性 |
| Glacier Instant Retrieval | ミリ秒 取得 、90 日 最小 |
| Glacier Flexible Retrieval | Expedited (1-5分 )、Standard (3-5時間 )、Bulk (5-12時間 ) |
| Glacier Deep Archive | Standard (12時間 )、Bulk (48時間 ) |
| Intelligent Tiering | 使用 状況 に基 づいて自動 で階層 間 を移動 |
Transfer Acceleration
- S3 との間 のコンテンツ転送 を高速化
- 長距離 転送 で 50-500% の速度 向上 が可能
- CloudFront Edge Locations と AWS バックボーンネットワークを使用
- 高速化 された転送 のみ課金