【AWS】Amazon S3とは?バケット・オブジェクト・ストレージクラスの基本を初心者向けに解説

  • URLをコピーしました!

前の記事では、 Amazon EC2の基本を学びました。

Amazon EC2を利用すると、 AWS上に仮想サーバーを作成できます。

では、画像・動画・バックアップファイル・ログなどの 大量のデータを保存したい場合はどうすればよいでしょうか。

COMPUTE Amazon EC2 サーバーを実行
STORAGE Amazon S3 データを保存
QUESTION AWS上に大量のファイルを
保存するにはどうすればいい?

そこで登場するAWSの代表的なストレージサービスが、 Amazon S3です。

☁ AWS INTERMEDIATE

この記事はAWS中級講座のレッスン9です。 AWSを代表するオブジェクトストレージサービス Amazon S3の基本を学びます。

AWS中級講座を見る →
LESSON GOAL この記事のゴール

Amazon S3の基本的な仕組みを理解し、 バケット・オブジェクト・キー・ストレージクラス・ バージョニング・アクセス制御 などの基本用語を説明できるようになることを目指します。

目次

Amazon S3とは?

Amazon S3(Simple Storage Service)は、 AWSが提供するオブジェクトストレージサービスです。

画像・動画・ドキュメント・バックアップ・ログなど、 さまざまなデータをオブジェクトとして保存できます。

IMAGE 画像

Webサイトなどの画像

BACKUP バックアップ

システムデータの保存

LOG ログ

アクセスログなど

DATA データ

さまざまなファイル

POINT Amazon S3 = AWSの代表的なオブジェクトストレージ

オブジェクトストレージとは?

Amazon S3を理解するうえで重要なのが、 オブジェクトストレージという考え方です。

前の記事で学んだAmazon EBSは、 EC2に接続してディスクのように利用する ブロックストレージでした。

一方、S3ではデータを オブジェクトという単位で保存します。

BLOCK STORAGE Amazon EBS
DISK

EC2などから
ディスクとして利用

VS
OBJECT STORAGE Amazon S3
OBJECT

データをオブジェクト
として保存

IMPORTANT

S3は、EC2へ接続して通常のディスクとして使う EBSとは仕組みが異なります。 「S3=大容量のハードディスク」と考えるのではなく、 オブジェクトを保存するサービス と理解しましょう。

S3の「バケット・オブジェクト・キー」を理解する

Amazon S3では、 主に次の3つの用語を理解することが重要です。

01 CONTAINER Bucket

オブジェクトを保存する入れ物

02 DATA Object

S3に保存されるデータ

03 IDENTIFIER Key

オブジェクトを識別する名前

バケットとは?

バケット(Bucket)は、 S3でオブジェクトを保存するための入れ物です。

S3 BUCKET example-bucket
OBJECT logo.png
OBJECT manual.pdf
OBJECT backup.zip

S3へデータを保存するときは、 まずバケットを作成し、 その中へオブジェクトをアップロードします。

オブジェクトとは?

S3に保存されるデータを オブジェクト(Object)と呼びます。

たとえば、画像ファイルをS3へアップロードすると、 そのデータはS3上で1つのオブジェクトとして扱われます。

OBJECT
network-diagram.png DATA
Content-Type: image/png METADATA

S3のオブジェクトは、 データ本体だけでなく メタデータなどの情報も持っています。

キーとは?

キー(Key)は、 バケット内のオブジェクトを識別するための名前です。

BUCKET example-bucket OBJECT KEY images/network.png

たとえば、 images/network.png というキーを持つオブジェクトを保存できます。

MEMORY Bucket → オブジェクトを保存する入れ物
Object → 保存されるデータ
Key → オブジェクトを識別する名前

S3に本当の「フォルダ」はない

S3の管理画面を見ると、 通常のファイルシステムと同じように フォルダが存在しているように見えます。

BUCKET example-bucket
images/
├─ logo.png
└─ network.png

しかし、S3は通常のファイルシステムとは異なり、 オブジェクトをキーによって管理しています。

たとえば、 images/network.png というキーの images/ 部分を利用することで、 管理画面上ではフォルダのように表示できます。

POINT S3は階層型ファイルシステムではなく、 オブジェクトをキーで管理する

S3は高い耐久性を持つストレージ

Amazon S3の大きな特徴の1つが、 非常に高いデータ耐久性です。

DESIGNED FOR 99.999999999% 11 NINES DURABILITY

Amazon S3 Standardなどは、 99.999999999%(イレブンナイン)の データ耐久性を実現するよう設計されています。

S3 Standardなどでは、 データを1台のサーバーだけに保存するのではなく、 複数のアベイラビリティゾーンにまたがって冗長化 することで高い耐久性を実現しています。

AZ-A DATA
AZ-B DATA
AZ-C DATA
CHECK

すべてのS3ストレージクラスが 複数AZにデータを保存するわけではありません。 たとえばS3 One Zone-IAは、 1つのAZにデータを保存するストレージクラスです。

S3のストレージクラスとは?

保存するデータによって、 「頻繁にアクセスするデータ」と 「ほとんどアクセスしないデータ」があります。

S3では、 データの利用頻度や保存目的に応じて ストレージクラスを選択できます。

STANDARD S3 Standard

頻繁にアクセスするデータ

AUTOMATIC Intelligent-Tiering

アクセスパターンが読めないデータ

INFREQUENT Standard-IA

アクセス頻度が低いデータ

ONE AZ One Zone-IA

再作成可能な低頻度データなど

ARCHIVE S3 Glacier

長期保管・アーカイブ

たとえば、 Webサイトで頻繁に読み込むデータならS3 Standard、 長期間ほとんどアクセスしないバックアップなどであれば Glacier系のストレージクラスを検討できます。

HIGH ACCESS Standard
LOW ACCESS Standard-IA
ARCHIVE Glacier
POINT データのアクセス頻度や保存目的に合わせて ストレージクラスを使い分ける

S3バージョニングとは?

S3バージョニングを有効にすると、 同じキーのオブジェクトを更新したときに、 複数のバージョンを保持できます。

OBJECT KEY manual.pdf
VERSION 3 最新
VERSION 2 旧バージョン
VERSION 1 旧バージョン

誤ってファイルを上書きした場合などでも、 以前のバージョンを残しておくことで 復元しやすくなります。

VERSIONING 同じオブジェクトの 複数バージョンを保持できる

S3に保存するデータを暗号化する

S3では、 保存されるデータを 暗号化して保護できます。

UPLOAD Object
ENCRYPTION 暗号化
S3 Encrypted Data

S3では現在、 新しくアップロードされるオブジェクトは サーバー側で自動的に暗号化されます。

また、要件に応じて AWS KMSのキーを利用した SSE-KMSなどを利用することもできます。

SECURITY S3に保存するデータは 暗号化によって保護できる

S3へのアクセスをどのように制御する?

S3へ重要なデータを保存する場合、 「誰でもアクセスできる状態」では問題があります。

S3では、 IAMポリシーやバケットポリシーなどを利用して アクセスを制御できます。

IDENTITY IAM Policy

IAMユーザーやロールなどに 権限を設定

RESOURCE Bucket Policy

S3バケット側に 権限を設定

IAM USER / ROLE User
PERMISSION Policy
RESOURCE S3 Bucket

IAMポリシーとバケットポリシーの違いを 最初から細かく覚える必要はありません。

まずは、 「S3のデータへ誰がアクセスできるかを ポリシーによって制御する」 と理解しておきましょう。

Block Public Accessとは?

S3では、 設定ミスによってバケットやオブジェクトが 意図せずインターネットへ公開されることを 防ぐことが重要です。

そのための重要な仕組みが S3 Block Public Accessです。

INTERNET Public User
BLOCK PUBLIC ACCESS BLOCK
×
PRIVATE DATA S3 Bucket
SECURITY S3は「必要なデータだけ公開する」 という考え方が重要

S3バケットを公開する場合は、 本当にインターネットからのアクセスが 必要なのかを確認しましょう。

EC2とS3はどのように使い分ける?

前の記事で学んだEC2と、 今回のS3を整理してみましょう。

COMPUTE Amazon EC2
SERVER

OSやアプリケーションを
実行する

STORAGE Amazon S3
OBJECT

画像・ログ・バックアップなどの
データを保存する

たとえばEC2上でWebアプリケーションを動かし、 画像やバックアップなどのデータを S3へ保存するといった構成が考えられます。

APPLICATION Amazon EC2
OBJECT STORAGE Amazon S3

あなたならどのストレージを選ぶ?

EC2とS3の違いを使って、 ストレージを選択してみましょう。

REQUIREMENT Webサービスで利用する大量の画像ファイルを
AWS上へ保存したい

保存先として、 どちらが適しているでしょうか。

どちらか選択してください

どのようなデータを保存するのか考えてみましょう。

確認問題:Amazon S3

QUESTION 01

Amazon S3でオブジェクトを保存する 入れ物を何と呼びますか?

正解:B

S3ではバケットを作成し、 その中へオブジェクトを保存します。

QUESTION 02

S3バージョニングを有効にすると、 何ができるようになりますか?

正解:C

S3バージョニングを利用すると、 同じキーを持つオブジェクトの 複数バージョンを保持できます。

QUESTION 03

S3バケットの意図しない公開を 防ぐための重要な機能はどれですか?

正解:A

S3 Block Public Accessは、 S3バケットやオブジェクトが 意図せず公開されることを防ぐための重要な機能です。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

Amazon S3はAWSの代表的な オブジェクトストレージサービス

02

バケットの中に オブジェクトを保存する

03

キーによって バケット内のオブジェクトを識別する

04

データの利用目的に合わせて ストレージクラスを選択できる

05

バージョニングによって 複数バージョンを保持できる

06

IAMポリシーやバケットポリシーで アクセスを制御できる

07

Block Public Accessで 意図しない公開を防ぐことが重要

次はAWSのデータベース「Amazon RDS」へ

ここまで、 EC2ではコンピューティング、 S3ではオブジェクトストレージを学びました。

COMPUTE Amazon EC2

サーバー

STORAGE Amazon S3

オブジェクト

DATABASE Amazon RDS

データベース

Webシステムを構築する場合、 サーバーやファイルの保存先だけでなく、 ユーザー情報や商品情報などを管理する データベースも必要になります。

NEXT CONCEPT Amazon RDS

次の記事では、 AWSのマネージドリレーショナルデータベースサービスである Amazon RDSの基本を学びます。

NEXT LESSON AWS INTERMEDIATE 10

Amazon RDSの基本を理解する

S3でストレージの基本を理解したら、 次はAWS上でデータベースを利用する仕組みを学びましょう。

次の記事では、 Amazon RDS・DBインスタンス・DBエンジン・ Multi-AZなどの基本を整理します。

Amazon RDSの基本を理解する
AWS INTERMEDIATE

AWS中級講座へ戻る

AWS中級講座の記事一覧から、 学習したいレッスンを確認できます。

← AWS中級講座へ戻る
目次