本文へスキップ

S3とは?オブジェクトストレージの仕組みを未経験向けに解説

#S3#AWS#オブジェクトストレージ#初心者#未経験

AWSの学習を進めると、EC2と並んでよく出てくるのが「S3」という言葉です。「ストレージ」と聞いて何となくファイルを置く場所だとは想像できても、USBメモリやハードディスクと何が違うのか、実際に何に使われているのかまで説明できる人は少ないかもしれません。結論から言うと、S3とはファイルを「オブジェクト」という単位でまとめて保管する、AWSのオブジェクトストレージです。この記事では、未経験者がイメージをつかみにくいS3の仕組みを、現役インフラエンジニアが基礎から整理して解説します。

AWSのS3のバケットに画像・ログ・バックアップがオブジェクトとして保管されるイメージ

S3とは?ネットの「無限の物置き」

S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージサービスです。細かい仕組みの前に、まずは役割だけをイメージしておきましょう。S3は、画像・動画・ログファイル・バックアップデータなど、あらゆる種類のファイルを保管しておける「物置き」のような場所です。

パソコンのハードディスクと違い、S3には容量の上限をほとんど意識する必要がありません。保存した分だけ料金がかかる仕組みのため、必要に応じて保管量を増やしていける点が大きな特徴です。オンプレミスの世界で考えると、ファイルサーバー用のディスクを都度買い足す作業を、AWS側に任せてしまえるイメージに近いです。

オブジェクトストレージとファイルストレージの違い

S3を理解するうえで欠かせないのが「オブジェクトストレージ」という考え方です。普段パソコンで使っているファイルストレージ(フォルダの中にファイルを置く形式)とは、データの管理方法が異なります。

ファイルストレージオブジェクトストレージ(S3)
管理の単位フォルダとファイルの階層構造オブジェクト(データ本体+メタデータ)
得意なこと細かいファイル操作、OSからの直接アクセス大量データの保管、インターネット経由での読み書き
代表的な用途パソコンやファイルサーバー画像配信、ログ保管、バックアップ

S3は「階層」ではなく「フラットな入れ物」にオブジェクトを並べて管理する点が、ファイルストレージとの一番の違いです。フォルダのように見える表示も、実際は名前の中に「/」を含むオブジェクトとして扱われています。

バケットとオブジェクトという基本単位

S3の操作で最初に覚える用語は「バケット」と「オブジェクト」の2つです。

  1. バケット — ファイルを入れる大きな箱。AWSアカウント内で世界中で一意な名前を付ける必要がある
  2. オブジェクト — バケットの中に保存される1つひとつのファイル本体。画像1枚、ログ1ファイルなどが単位になる

バケットを1つ作れば、その中に好きなだけオブジェクトを入れていけます。AWSコンソールやCLIからファイルをアップロードすると、指定したバケットの中にオブジェクトとして保存される、という流れを押さえておくと全体像がつかみやすくなります。

S3は何に使われているのか

現場でS3がどんな場面で登場するのか、代表的な用途を見てみましょう。

  • Webサイトの画像・動画の配信元
  • アプリケーションやサーバーのログの保管先
  • データベースやサーバーのバックアップの置き場
  • 静的なWebサイト(HTML・CSSのみ)のホスティング先

S3は「頻繁に書き換えない大量のデータを、安全に長期間置いておく」用途に向いているサービスです。バックアップの世代管理という考え方は、S3での保管期間の設計にも通じる部分があるので、バックアップとは?もあわせて読んでおくと理解が深まります。

公開設定で気をつけたいこと

S3でもう1つ重要なのが、バケットやオブジェクトを外部に公開するかどうかの設定です。初期設定では非公開になっていますが、設定を変更することで、インターネット経由で誰でもアクセスできる状態にすることもできます。

現役でインフラの現場にいる立場から言うと、S3のトラブルで実際に多いのが、意図せず非公開にすべきデータを公開設定にしてしまうケースです。個人情報や社内限定のファイルを置いたバケットが誤って公開されると、情報漏えいにつながりかねません。「誰が・どこまでアクセスできるか」を公開設定とあわせて確認しておくことが、S3を扱う上での基本になります。

この「誰に何を許可するか」という考え方は、AWSのIAMとも関わりが深い部分です。権限管理の基礎を先に整理したい方は、IAMとは?も参考にしてください。S3はAWSの基礎の中でも早い段階で触れることが多いサービスなので、クラウド(AWS)とは?でAWS全体の位置づけも確認しておくと理解がつながります。

InfraDojoで学ぶ

InfraDojoでは、ブラウザ上のAWS CLI演習環境でバケットの作成からオブジェクトのアップロード、公開設定の変更までを実際のコマンドで体験できます。設定を変えたときにアクセスできる・できないがどう変わるかを自分の手で確認することで、言葉だけでは分かりにくい公開設定の感覚が身につきます。AWSの基礎から順番に進めたい方は、AWS学習ロードマップから始めてみてください。

よくある質問

Q. S3とEC2は何が違いますか?

EC2はAWS上で動かす仮想サーバーそのもので、計算処理を行う場所です。一方でS3はファイルを保管しておくストレージサービスで、処理は行いません。EC2上で動くアプリケーションが、画像や設定ファイルの保管先としてS3を利用する、という組み合わせもよく見られます。

Q. S3に保存したファイルは自動で消えますか?

初期設定では自動で消えることはありません。ただし、一定期間が過ぎたファイルを自動で削除したり、より安い保管先に移動したりするライフサイクル設定を自分で行うことができます。用途に応じて保管期間を設計する必要があります。

Q. S3は未経験のうちからどこまで学ぶべきですか?

面接や最初の現場では、バケットとオブジェクトの違い、公開設定の基本的な考え方を説明できれば十分です。細かいライフサイクル設定やアクセス制御の詳細は、実務の中で必要になったときに学んでいく形で問題ありません。

Reo|インフラエンジニアのアイコン

この記事を書いた人: InfraDojo運営者(Reo|インフラエンジニア)

現役インフラエンジニア。SESの現場経験に基づき、未経験からのインフラ転職と学習を支援しています。InfraDojoは、ブラウザ上のターミナルで実際に手を動かして学べるインフラ学習サイトです。

@Reo_engineer_

読むだけで終わらせず、今日から手を動かす

InfraDojoは、ブラウザを開くだけでLinux・ネットワーク・AWSの演習ができる学習サイトです。登録は30秒、最初のコースは無料です。