クラウド
初級
S3 Storage(エススリーストレージ)
S3 Storageは、クラウドコンピューティング分野で使用される技術・サービスです。
0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
クラウド
インフラ
初心者向け
S3 Storage(Amazon S3)
概要
Amazon S3(Simple Storage Service)は、AWS が 2006 年に提供開始した、業界初のオブジェクトストレージサービスです。99.999999999%(11 ナイン)の耐久性を誇り、無制限の容量、高い可用性、豊富な機能で、クラウドストレージのデファクトスタンダードとなっています。
主要特徴
- 無制限容量
- 高い耐久性: 99.999999999%
- 高可用性: 99.99%
- スケーラブル: ペタバイト級
- HTTP API: REST
- 多様なストレージクラス
- バージョニング
- ライフサイクル管理
- 暗号化
基本概念
Bucket
- オブジェクトの入れ物
- グローバルに一意な名前
- リージョンに属する
Object
- キー、値、メタデータ
- 最大 5 TB
Key
- オブジェクトの識別子
- フォルダ風構造も可能
s3://my-bucket/photos/2024/image.jpg
Region
- データ保存の地理的場所
- 東京 = ap-northeast-1
ストレージクラス
Standard
- 一般用途
- 高頻度アクセス
- $0.023/GB/月
Intelligent-Tiering
- 自動階層化
- アクセスパターンに応じて
- 追加料金あり
Standard-IA(Infrequent Access)
- 低頻度アクセス
- $0.0125/GB/月
- 取得料金あり
One Zone-IA
- 単一 AZ
- $0.01/GB/月
- 低コスト
Glacier Instant Retrieval
- アーカイブ、即時取得
- $0.004/GB/月
Glacier Flexible Retrieval
- アーカイブ、分〜時間
- $0.0036/GB/月
Glacier Deep Archive
- 長期アーカイブ
- $0.00099/GB/月
- 取得時間: 12 時間
主要機能
バージョニング
- 全バージョン保持
- 誤削除からの回復
ライフサイクル管理
- 自動階層移行
- 自動削除
{
"Rules": [{
"Status": "Enabled",
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER" }
],
"Expiration": { "Days": 365 }
}]
}
暗号化
- SSE-S3: S3 管理の鍵
- SSE-KMS: KMS 管理
- SSE-C: 顧客提供の鍵
- Client-Side: クライアント暗号化
アクセス制御
- IAM ポリシー
- バケットポリシー
- ACL
- Block Public Access: 推奨
イベント通知
- オブジェクト作成、削除時
- Lambda、SQS、SNS 連携
レプリケーション
- クロスリージョン
- 同一リージョン
- 災害対策
S3 Object Lock
- WORM(Write Once, Read Many)
- コンプライアンス
- ランサムウェア対策
S3 Transfer Acceleration
- CloudFront 経由
- グローバル高速転送
S3 Select
- SQL でオブジェクト検索
- 転送量削減
CLI 例
# バケット作成
aws s3 mb s3://my-bucket
# アップロード
aws s3 cp file.txt s3://my-bucket/
aws s3 cp dir/ s3://my-bucket/dir/ --recursive
# ダウンロード
aws s3 cp s3://my-bucket/file.txt ./
# 同期
aws s3 sync dir/ s3://my-bucket/dir/
# 削除
aws s3 rm s3://my-bucket/file.txt
# 一覧
aws s3 ls s3://my-bucket/
SDK 例
Python(boto3)
import boto3
s3 = boto3.client('s3')
# アップロード
s3.upload_file('file.txt', 'my-bucket', 'file.txt')
# ダウンロード
s3.download_file('my-bucket', 'file.txt', 'file.txt')
# オブジェクト取得
response = s3.get_object(Bucket='my-bucket', Key='file.txt')
content = response['Body'].read()
# リスト
for obj in s3.list_objects_v2(Bucket='my-bucket')['Contents']:
print(obj['Key'])
# 署名付き URL
url = s3.generate_presigned_url(
'get_object',
Params={'Bucket': 'my-bucket', 'Key': 'file.txt'},
ExpiresIn=3600
)
ユースケース
1. 静的 Web サイトホスティング
- HTML、CSS、JS
- CloudFront と組み合わせ
2. バックアップ
- データベース
- ログ
- アーカイブ
3. データレイク
- 生データ保存
- Athena で分析
- Glue カタログ
4. コンテンツ配信
- 画像、動画
- CloudFront 経由
5. アプリケーションデータ
- ユーザーアップロード
- ファイル共有
6. ログ集約
- ELB ログ
- CloudTrail ログ
料金(2026、us-east-1)
ストレージ
- Standard: $0.023/GB/月
- IA: $0.0125/GB/月
- Glacier Deep Archive: $0.00099/GB/月
リクエスト
- PUT/POST: $0.005/千リクエスト
- GET: $0.0004/千リクエスト
データ転送
- S3 → インターネット: $0.09/GB(最初の 10TB)
- 同一リージョン内: 無料
代替サービス
| サービス | プロバイダ |
|---|---|
| Google Cloud Storage | |
| Azure Blob Storage | Microsoft |
| Cloudflare R2 | Cloudflare(Egress 無料) |
| Backblaze B2 | Backblaze(低価格) |
| Wasabi | Wasabi(定額) |
| MinIO | オンプレミス(S3 互換) |
S3 互換ストレージ
- MinIO: オンプレミス
- Ceph Object Gateway
- SeaweedFS
- Cloudflare R2
ベストプラクティス
- Block Public Access 有効
- バージョニング: 本番データ
- ライフサイクル: コスト最適化
- 暗号化: デフォルト有効
- タグ付け: コスト管理
- Intelligent-Tiering: 未知のアクセスパターン
- VPC Endpoint: プライベート通信
- CloudTrail: アクセスログ
- MFA Delete: 重要データ
- Cross-Region Replication: 災害対策
関連用語
- Object Storage
- CloudFront
- IAM、Bucket Policy
- Glacier
- Cloudflare R2