Amazon S3とオブジェクトストレージを理解する
写真、ログ、バックアップなどを保存するS3はオブジェクトストレージです。ここでは一般用途バケットの基本を扱い、データの名前、保存方法、権限、世代、料金をつなげて理解します。EC2のディスクや共有ファイルとは使い方が違います。
この単元で学ぶこと
- オブジェクト・バケット・キー・メタデータを区別できる
- ブロック/ファイル保存と比較し用途を選べる
- 公開・暗号化・世代・保存クラスの役割を説明できる
本文解説
オブジェクトとして保存する S3はデータをオブジェクト単位で保存・取得するサービスです。写真や動画、ログ、バックアップなどを置けます。オブジェクトはデータ本体に加えて属性情報を持ち、APIで操作します。OSへ接続するディスクのセクターを更新するのとは、利用する仕組みが違います。
バケットとキー バケットは保存の容器、キーはその中のオブジェクトの名前です。例えばphotos/2026/a.jpgというキーを指定して写真を取得します。ここでのキーは識別名であり、暗号化のための鍵ではありません。バケットとキーを組み合わせて対象を特定します。
階層のような表示 一般用途バケットはキーでオブジェクトを整理します。スラッシュを含むキーはコンソールでフォルダーのように見えますが、通常のOSファイルシステムのディレクトリ構造と同じと考えてはいけません。アプリが期待するファイル操作が、そのままオブジェクトAPIで成立するか確認します。
保存方式を比べる EC2でOSやディスクへ直接読み書きするアプリはEBSなどのブロックストレージを検討します。複数サーバーからファイル共有を使う要件はEFS等を検討します。S3は画像やログ等を名前付きオブジェクトとして保存・配信・分析する用途に適します。
公開と暗号化 S3を使うだけで全データを公開する必要はありません。IAMやバケットポリシー等で必要なアクセスだけ許可し、Block Public Access等で不要な公開を防ぎます。新しいオブジェクトには標準で保存時暗号化が適用されますが、暗号化を権限の適正化の代わりにしません。通信時のTLSも別に確認します。
世代を残す Versioningを使うと同じキーの複数世代を保持し、誤上書きや削除への復旧に役立てられます。ただし全バージョンを必ず永久保存するわけではなく、明示的なバージョン削除やライフサイクル設定なども関わります。復旧の手順と削除権限を合わせて設計します。
保存クラスと料金 よく読むデータと長期保管するだけのデータでは適切なクラスが異なります。安い保存単価だけでなく、取出し時間や取出し料金、リクエスト、転送、最低保存期間などを確認します。ライフサイクルで移行や削除を自動化する場合は保存要件を先に決めます。
例題:社内写真 社員だけが読む写真をS3へ保存します。APIを使うアプリには限定ロールを付け、必要なキーの範囲を読めるようにします。誤上書きへ備えて世代保持を検討し、古い写真の保管条件に合うクラスへ移します。保存、閲覧権限、復旧、費用を別々に確認します。
図解
重要ポイント
- バケットは容器、キーは名前、オブジェクトは保存単位。
- 一般用途S3のフォルダー表示は通常のディスク構造と同じではない。
- 暗号化とアクセス許可を別に確認する。
- 世代保持とライフサイクルは復旧・保存費用へ影響する。
間違えやすい点
- オブジェクトキーを暗号鍵と混同しない。
- S3をOSディスクとして無条件に置き換えない。
- Versioningでどんな削除にも必ず戻れると思わない。
用語解説
- オブジェクト
- S3が保存する単位。データ本体とメタデータなどから成り、バケット内のキーで指定する。
- バケット
- S3のオブジェクトを保存・管理する容器。配置や権限などの設定を行う。
- キー
- バケット内でオブジェクトを指定する名前。暗号化鍵と混同しない。
- プレフィックス
- キーの先頭部分。一般用途バケットの階層風の整理に使えるが、通常のファイルシステムのディレクトリとは異なる。
- Versioning
- 同じキーの複数バージョンを保持する機能。復旧と保存量の管理を合わせて考える。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。