Amazon S3完全ガイド: オブジェクトストレージの基礎からデータ分析まで
AWSで最も利用されるサービスの1つが Amazon S3(Simple Storage Service) です。
画像や動画の保存、ログ管理、バックアップ、静的Webサイト公開、データレイク構築まで幅広い用途で利用されており、AWS学習において必須のサービスと言えます。
本記事では、S3の基本概念からセキュリティ、パフォーマンス最適化、レプリケーション、データ分析まで体系的に整理して解説します。
Amazon S3とは
Amazon S3はAWSが提供するオブジェクトストレージサービスです。
高い耐久性と可用性を持ち、大容量データを低コストで保存できます。
S3の特徴
オブジェクトストレージ
ファイルを「オブジェクト」として保存します。
マルチAZ冗長化
データは複数のAZに自動的に保存されます。
従量課金制
使用した分だけ課金されます。
多様なストレージクラス
利用頻度に応じてコスト最適化できます。
高度なセキュリティ
暗号化やアクセス制御機能を標準搭載しています。
S3の主なユースケース
Webコンテンツ配信
ユーザー
↓
CloudFront
↓
Amazon S3
画像や動画などの静的コンテンツを保存し、CloudFrontで高速配信します。
バックアップ
- DBバックアップ
- サーバログ
- アーカイブデータ
データレイク
- Athena
- Glue
- Redshift Spectrum
などの分析サービスと連携できます。
AWSストレージサービスの違い
ブロックストレージ
サービス
- Amazon EBS
- インスタンスストア
特徴
- 高速アクセス
- EC2向け
ファイルストレージ
サービス
- Amazon EFS
特徴
- 複数EC2から同時利用可能
オブジェクトストレージ
サービス
- Amazon S3
- Amazon S3 Glacier
特徴
- 高耐久
- 大容量保存向け
S3の基本構造
S3は以下の階層で構成されます。
S3
└─ バケット
└─ オブジェクト
バケット
バケットはS3における保存領域です。
特徴
- リージョン単位で作成
- グローバルで一意な名前
- オブジェクトを格納
例
company-backup-bucket
sample-static-website
バケット名の注意点
DNS準拠
利用可能
example-bucket
利用不可
192.168.1.1
ストレージクラス
用途に応じて保存コストを最適化できます。
S3 Standard
頻繁にアクセスするデータ向け
例
- Web画像
- アプリデータ
Standard-IA
低頻度アクセス向け
例
- 月次レポート
- 長期バックアップ
One Zone-IA
単一AZ保管
メリット
- 安価
デメリット
- AZ障害耐性が低い
Intelligent-Tiering
アクセスパターンを自動分析して最適な階層へ移動します。
S3利用料金の考え方
主な課金要素
ストレージ容量
保存容量 × 保存期間
APIリクエスト
対象例
- PUT
- GET
- DELETE
データ転送
アップロード
インターネット → S3
無料
ダウンロード
S3 → インターネット
有料
リクエスタ支払い
ダウンロード料金を利用者へ負担させる機能です。
通常
保存料 → バケット所有者
転送料 → バケット所有者
リクエスタ支払い有効
保存料 → バケット所有者
転送料 → 利用者
公開データ配布などに利用されます。
S3のデータ保護
S3では保存データを暗号化できます。
SSE-S3
AWS管理のキーを利用します。
特徴
- AES-256
- 設定が簡単
- AWSが鍵管理
SSE-KMS
AWS KMSを利用します。
特徴
- カスタマー管理キー
- 監査ログ取得可能
- 詳細制御可能
SSE-C
ユーザー管理キーを利用します。
特徴
- AWSは鍵を保存しない
- 管理負荷が高い
クライアント側暗号化(CSE)
アップロード前に暗号化します。
アプリ
↓
暗号化
↓
S3
最も強力ですが運用負荷も高くなります。
オブジェクトロック
データの改ざん防止機能です。
ガバナンスモード
特権ユーザーのみ解除可能
コンプライアンスモード
誰も削除できません。
ルートユーザーも対象です。
リーガルホールド
削除期限を設定せず保持します。
監査データなどに利用されます。
S3のアクセス管理
主なアクセス制御方式は4種類です。
IAMポリシー
ユーザーベースの管理
バケットポリシー
バケット単位の管理
ACL
オブジェクト単位の管理
※現在は非推奨のケースが増えています
アクセスポイント
用途別に専用アクセス経路を作成できます。
ブロックパブリックアクセス
S3セキュリティの基本設定です。
推奨
常時有効
例外的に公開サイトを作るときのみ無効化します。
事前署名付きURL
期限付きのURLを発行して一時的にアクセスを許可します。
利用イメージ
ユーザー
↓
アプリ
↓
署名付きURL発行
↓
S3直接アクセス
利用シーン
- ファイル共有
- 一時的ダウンロード
- アップロード受付
有効期限
- デフォルト:1時間
- 最大:7日
S3バージョニング
オブジェクトの世代管理機能です。
メリット
- 誤削除対策
- 誤更新対策
- 復元可能
動作例
document.txt v1
document.txt v2
document.txt v3
過去バージョンへ戻せます。
S3 MFA Delete
削除時にMFAを要求します。
対象
- バージョン削除
- バージョニング無効化
Intelligent-Tiering
アクセス状況に応じて自動的に階層化します。
イメージ
頻繁アクセス
↓
Infrequent Access
↓
Archive Instant
↓
Glacier Archive
利用メリット
- 自動コスト最適化
- パフォーマンス維持
- 運用負荷削減
サーバーアクセスログ
S3へのアクセス状況を記録します。
取得可能情報
- アクセス日時
- リクエスト元
- 操作種別
- ステータスコード
注意点
ログ保存用バケットは分離しましょう。
access-log-bucket
を専用で作成するのが一般的です。
S3イベント通知
S3操作をトリガーにイベントを実行します。
対応イベント
- ObjectCreated
- ObjectRemoved
- Copy
- Restore
連携先
SNS
メール通知
SQS
メッセージキュー
Lambda
自動処理
EventBridge
イベント連携
S3パフォーマンス最適化
マルチパートアップロード
大容量ファイルを分割して転送します。
推奨サイズ
5GB以上 → 推奨
100GB以上 → 強く推奨
最大5TBまで保存可能です。
Transfer Acceleration
AWSのグローバルネットワークを利用して高速アップロードできます。
利用イメージ
ユーザー
↓
近くのエッジロケーション
↓
AWSバックボーン
↓
S3
静的Webホスティング
S3だけでWebサイト公開が可能です。
構成例
Route53
↓
CloudFront
↓
S3
メリット
- サーバーレス
- 低コスト
- 高可用性
デメリット
- 動的処理不可
- PHP実行不可
- HTTPSはCloudFront推奨
ライフサイクル管理
データを自動で移動・削除できます。
例
Day 0
↓
S3 Standard
Day 30
↓
Standard-IA
Day 90
↓
Glacier
Day 365
↓
削除
利用メリット
- コスト削減
- 自動運用
- アーカイブ管理
AWS CLIとCloudShell
AWS CLI
コマンドラインからS3操作可能
例
aws s3 ls
CloudShell
ブラウザ上で利用できるAWS CLIです。
特徴
- インストール不要
- AWS認証済み
- すぐ利用可能
S3レプリケーション
別バケットへ自動コピーする機能です。
SRR
同一リージョンレプリケーション
用途
- 開発用コピー
- バックアップ
CRR
クロスリージョンレプリケーション
用途
- 災害対策
- グローバル配信
前提条件
送信元・送信先ともに
バージョニング有効
クロスアカウントアクセス
別AWSアカウントからS3へアクセス可能です。
方法
バケットポリシー
最も一般的
IAMロール
推奨方式
ACL
レガシー方式
CORS(Cross-Origin Resource Sharing)
異なるドメインからS3へアクセスするための仕組みです。
例
app.example.com
↓
assets.example.com
主な設定
[
{
"AllowedOrigins": [
"https://example.com"
],
"AllowedMethods": [
"GET"
]
}
]
S3の監視と分析
サーバーアクセスログ
アクセス履歴確認
S3 Access Analyzer
公開設定を検出
Storage Class Analysis
アクセス頻度を分析
Storage Lens
利用状況を可視化
確認できる項目
- 容量
- コスト
- オブジェクト数
- アクセス頻度
S3データ分析
Amazon Athena
S3のデータをSQLで直接分析できます。
SELECT *
FROM access_logs
LIMIT 10;
S3 Object Lambda
取得時にデータを加工します。
例
- 画像リサイズ
- 個人情報マスキング
Redshift Spectrum
RedshiftからS3を直接クエリできます。
用途
- データレイク分析
- BI連携
Amazon S3 Glacier
長期保管向けストレージクラスです。
Glacier Instant Retrieval
特徴
- ミリ秒アクセス
- 低コスト
Glacier Flexible Retrieval
特徴
- 数時間で復元
- バックアップ向け
Glacier Deep Archive
特徴
- 最安価
- 数十年保管向け
最近のS3アップデート
Storage Browser for S3
WebアプリへS3ブラウザ機能を組み込めるサービス。
S3 Express One Zone
超低レイテンシを実現するストレージクラス。
特徴
- 高性能
- 単一AZ
- 高スループット
Amazon S3 Tables
Apache Iceberg対応のテーブルストレージ機能。
活用例
- データレイク
- 分析基盤
メタデータ管理機能
S3オブジェクトのメタデータをSQLで検索・分析可能になりました。
まとめ
Amazon S3は単なるファイル保存サービスではなく、AWSにおけるデータ基盤の中心的な存在です。
まずは以下の機能を重点的に理解すると実務でも役立ちます。
✅ バケットとオブジェクトの仕組み
✅ IAM・バケットポリシーによるアクセス制御
✅ バージョニングとオブジェクトロック
✅ ライフサイクル管理によるコスト最適化
✅ レプリケーションによるバックアップ・DR対策
✅ Athenaによるデータ分析
✅ Glacierによる長期保管
S3はEC2・CloudFront・Lambda・Athenaなど多くのAWSサービスと連携するため、AWS学習において最優先で習得しておきたいサービスの1つです。