S3とは?
S3の概要
Amazon S3(Simple Storage Service)は、AWSが提供するスケーラブルなオブジェクトストレージサービスです。データの保存や管理を簡単に行えるため、企業や個人のさまざまな用途で利用されています。
S3の特徴
- 高い耐久性:99.999999999%(11ナイン)のデータ耐久性を持つ
- スケーラビリティ:データ容量の制限なく保存可能
- 低コスト:アクセス頻度に応じたストレージクラスを選択可能
- データの冗長化:複数のデータセンターにデータを自動でレプリケーション
- アクセス制御:IAMポリシー、バケットポリシー、ACL(アクセス制御リスト)を使用可能
S3の基本概念
バケットとは?
S3ではデータを保存するための「バケット(Bucket)」を作成します。バケットは、
- 一意の名前を持つ
- 特定のリージョンに配置される
- アクセス管理が可能 といった特徴を持ちます。
オブジェクトとは?
バケット内に保存されるファイルのことを「オブジェクト(Object)」と呼びます。オブジェクトは、
- データ本体
- メタデータ(ファイル情報)
- 一意のキー(オブジェクト名) で構成されます。
ストレージクラス
S3では、用途に応じたストレージクラスを選択できます。
- 標準(Standard):頻繁にアクセスするデータ向け
- 標準 – 低頻度アクセス(Standard-IA):時々アクセスするデータ向け
- Intelligent-Tiering:アクセス頻度に応じて自動最適化
- Glacier:アーカイブデータ向け(低コスト)
- Glacier Deep Archive:長期保存向け(さらに低コスト)
S3の基本操作
S3バケットの作成方法
- AWSマネジメントコンソールにログイン
- 「S3」サービスを選択
- 「バケットの作成」ボタンをクリック
- バケット名を入力(グローバルで一意である必要あり)
- リージョンを選択(データの保存場所を決定)
- パブリックアクセス設定を選択(デフォルトでは非公開)
- 暗号化設定を選択(必要に応じて有効化)
- 「作成」ボタンをクリックしバケットを作成
オブジェクトのアップロード
- 作成したバケットを開く
- 「アップロード」ボタンをクリック
- ローカルファイルを選択
- ストレージクラスや暗号化を設定
- 「アップロード」ボタンを押してアップロード完了
S3オブジェクトへのアクセス
- パブリックアクセスを有効にする(必要に応じて公開)
- プリサインドURLを使用(期限付きのアクセスURLを生成)
- IAMポリシーでアクセス制限(特定のユーザーのみアクセス許可)
S3の活用方法
静的ウェブホスティング
S3を使用すると、HTML、CSS、JavaScriptファイルをホスティングし、静的ウェブサイトを公開できます。
- S3バケットを作成
- 「静的ウェブサイトホスティング」を有効化
- HTMLファイルをアップロード
- バケットポリシーを設定(公開アクセス許可)
- エンドポイントURLからサイトへアクセス
バックアップとアーカイブ
S3はバックアップ用途にも適しています。
- 定期的なバックアップをS3に保存
- Glacierを活用して低コストで長期保存
- ライフサイクルルールを設定して古いデータを自動アーカイブ
ビッグデータの保存
S3は、AWSの他のサービスと連携してデータレイクの構築に利用できます。
- AWS Athenaを使ってSQLクエリを実行
- AWS Glueを使ってデータカタログを管理
- Amazon Redshiftと連携して分析処理を実施
S3のセキュリティ対策
IAMポリシーの活用
IAM(Identity and Access Management)を使用して、ユーザーごとのアクセス権限を細かく設定できます。
- フルアクセス:管理者権限を持つユーザー
- リードオンリー:データの取得のみ許可
- 特定のバケットのみアクセス許可
バケットポリシーの設定
バケット単位でアクセス制御を行うためのJSONポリシーを設定できます。
- 特定のIPアドレスのみ許可
- 特定のユーザーグループのみに公開
データ暗号化
S3では、保存データの暗号化が可能です。
- S3管理のキー(SSE-S3)
- AWS KMSキー(SSE-KMS)
- カスタマー管理のキー(SSE-C)
ログ監視と監査
AWS CloudTrailを有効化し、アクセス履歴を記録することで不正アクセスを防ぐことができます。
まとめ
S3はAWSの中でも特に重要なストレージサービスであり、高耐久性、スケーラビリティ、低コストといった特徴を持っています。本記事では、
- S3の基本概念(バケット、オブジェクト、ストレージクラス)
- S3の基本操作(バケット作成、ファイルアップロード、アクセス管理)
- S3の活用方法(静的ウェブホスティング、バックアップ、ビッグデータ分析)
- S3のセキュリティ対策 について詳しく解説しました。