Amazon S3
容量無制限のクラウドストレージにあらゆるデータを保存・取得できるサービス
何ができるか
Amazon S3 (Simple Storage Service) は、インターネット経由でどこからでもデータを保存・取得できるクラウドストレージサービスです。画像、動画、ドキュメント、バックアップデータなど、あらゆる種類のファイルを保存できます。保存できるデータの総量に上限はなく、1 ファイルあたり最大 5TB まで対応しています。
どのような場面で使うか
Web サイトの画像や動画の配信元、アプリケーションのデータ保存先、データベースのバックアップ、ログファイルの蓄積、静的 Web サイトのホスティング、データ分析用のデータレイクなど、データを保存するあらゆる場面で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
無限に広がる貸し倉庫のようなものです。どんな大きさの荷物でも預けられ、必要なときにいつでも取り出せます。倉庫の鍵 (アクセス権限) を管理でき、荷物の保管場所 (リージョン) も選べます。使った容量の分だけ料金を支払う仕組みです。
S3 とは
Amazon Simple Storage Service (S3) は、AWS で最も広く利用されているストレージサービスです。2006 年の AWS 初期から提供されており、現在では数兆個を超えるオブジェクト (ファイル) が保存されています。S3 はオブジェクトストレージと呼ばれる方式を採用しており、ファイルをバケットと呼ばれる入れ物に格納して管理します。
主な特徴
S3 の最大の特徴は、99.999999999% (イレブンナイン) という極めて高い耐久性です。データは自動的に複数の施設に複製されるため、ハードウェア障害でデータが失われる心配がほぼありません。また、保存容量に上限がなく、アクセス頻度に応じて自動的にスケールするため、容量計画を立てる必要がありません。バージョニング機能を有効にすれば、ファイルの変更履歴を保持し、誤って上書きや削除した場合でも復元できます。
ストレージクラス
S3 にはアクセス頻度に応じた複数のストレージクラスが用意されています。S3 Standard は頻繁にアクセスするデータ向けで、最も高速です。S3 Standard-IA (低頻度アクセス) は月に 1 回程度しかアクセスしないデータに適しており、保存料金が安くなります。S3 Glacier は長期アーカイブ向けで、取り出しに数分から数時間かかりますが、保存料金が大幅に安くなります。ライフサイクルポリシーを設定すれば、データの経過日数に応じて自動的にストレージクラスを移行できます。
セキュリティ
S3 ではバケットポリシーと IAM ポリシーを組み合わせて、誰がどのデータにアクセスできるかを細かく制御できます。デフォルトではすべてのバケットが非公開に設定されており、明示的に許可しない限り外部からアクセスできません。サーバーサイド暗号化を有効にすれば、保存データを自動的に暗号化できます。アクセスログを記録して、いつ誰がどのデータにアクセスしたかを監査することも可能です。
はじめかた
S3 を使い始めるには、AWS マネジメントコンソールで S3 ダッシュボードを開き、バケットを作成します。バケット名はグローバルで一意である必要があります。バケットを作成したら、コンソールからファイルをアップロードするか、AWS CLI の aws s3 cp コマンドでファイルを転送できます。プログラムから操作する場合は AWS SDK を使用します。
Azure・オンプレミスとの比較
AWS の優位点
- 99.999999999% (イレブンナイン) の耐久性を標準で提供し、データを自動的に複数施設に複製するため、NAS のような RAID 構成やバックアップ運用が不要
- S3 Standard、Standard-IA、Glacier など用途に応じた複数のストレージクラスとライフサイクルポリシーにより、データの経過日数に応じて自動的にコスト最適化できる
- 保存容量に上限がなく、1 ファイルあたり最大 5TB まで対応しており、オンプレミスのファイルサーバーのような容量計画やディスク増設が一切不要
注意点
- バケットを公開設定にすると意図せずデータが外部に公開されるリスクがあるため、アクセス権限の設定には十分注意すること
- ストレージクラスを適切に選択しないと、不要なコストが発生する場合がある
- 大量の小さなファイルを頻繁に読み書きする用途には、EFS や DynamoDB など他のサービスが適している場合がある
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。