Amazon S3はAWSの代表的なオブジェクトストレージで、画像・動画・バックアップ・データレイクなど幅広い用途で利用されます。ストレージクラスとライフサイクル設定を正しく使えば、コストを大幅に下げることが可能です。本記事では、S3の基本と最適化のコツを解説します。
S3の基本概念
- バケット:オブジェクトを格納する論理的な入れ物(全世界で一意な名前)
- オブジェクト:ファイル本体+メタデータ
- キー:オブジェクトを一意に識別するパス相当の文字列
- リージョン:データ保管場所。レイテンシ・料金・コンプライアンスに影響
主なストレージクラス
- S3 Standard:高頻度アクセス用。標準
- S3 Intelligent-Tiering:アクセス頻度を自動判定して最適な階層へ移動
- S3 Standard-IA / One Zone-IA:低頻度アクセス用。安価だが取り出し料金あり
- S3 Glacier Instant Retrieval / Flexible / Deep Archive:長期保管用。安いが取り出しに時間
コスト最適化のコツ
- アクセス頻度が読めないデータはIntelligent-Tieringを選ぶ
- 古いログ・バックアップはライフサイクルポリシーでGlacierへ自動移行
- 不要なバージョンは有効期限付きの削除ルールで整理
- 大量小ファイルはコスト効率が悪い → まとめてアーカイブ化
- S3 Storage Lensでアクセス傾向を可視化
ライフサイクル設定例
{
"Rules": [{
"ID": "archive-old-logs",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER" }
],
"Expiration": { "Days": 365 }
}]
}
セキュリティ・運用のポイント
- パブリックアクセスはアカウントレベルでブロック(誤公開防止)
- サーバーサイド暗号化(SSE-S3 / SSE-KMS)をデフォルト有効化
- VersioningとMFA Deleteで誤削除に備える
- CloudFrontを前段に置いてCDN配信(料金・速度ともに最適化)
- S3 Access Logs / CloudTrailで監査ログ保存
よくあるユースケース
- 静的サイトホスティング(CloudFront併用)
- 画像・動画など大容量メディアのストレージ
- データレイク(Athena・Glue・EMRと連携)
- バックアップ・アーカイブ
- ML学習データセット保管
まとめ
S3は単なる「ファイル置き場」ではなく、ストレージクラス・ライフサイクル・セキュリティ設定を組み合わせて運用コストと安全性を最適化するためのプラットフォームです。容量と利用頻度に応じて適切なクラスを選ぶだけで、コストが半分以下になることも珍しくありません。