0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めてのAWS-Architect-セクション7(S3)

0
Posted at

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つです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?