高い可用性と耐久性のオブジェクトストレージ。Amazon S3 をグラレコで解説

2022-02-02
AWS グラレコ解説

Author : 米倉 裕基 (監修 : 焼尾 徹)

※ 本連載では、様々な AWS サービスをグラフィックレコーディングで紹介する awsgeek.com を、日本語に翻訳し、図の解説をしていきます。awsgeek.com は ジェリー・ハーグローブが運営しているサイトです。

これまでのグラレコ解説はこちら »

builders.flash 読者のみなさん、こんにちは ! テクニカルライターの米倉裕基と申します。
本記事では AWS のデータ管理サービスを代表するオブジェクトストレージ、Amazon S3 についてご紹介します。

Amazon S3 は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。あらゆる規模や業種のお客様が、データレイク、クラウドネイティブアプリケーション、モバイルアプリケーションなど、事実上あらゆるユースケースで、あらゆる量のデータを保存、保護することができます。コストパフォーマンスに優れたストレージクラスと使いやすい管理機能により、コストの最適化、データの整理、特定のビジネス、組織、コンプライアンスの要件を満たすきめ細かなアクセスコントロールの設定を行うことができます。

Amazon S3 の仕組みやユースケースなどについて詳しくは、AWS 公式サイトの『Amazon S3』の「概要」ページもご参照ください。

本記事では、Amazon S3 の主な機能や特徴を以下の項目に分けてご説明します。

  1. ストレージクラス
  2. ストレージクラス間のデータ移行
  3. サーバー側の暗号化
  4. 直接クエリ
  5. オブジェクトロック
  6. Amazon S3 の料金

それでは、項目ごとに詳しく見ていきましょう。


1. ストレージクラス

Amazon S3 は、多様なユースケースに合わせて設計された「ストレージクラス」を複数提供しています。

S3 標準」は、99.9999999% (イレブンナイン) の耐久性と、99.9% の可用性が保障された、最もスタンダードな「ストレージクラス」です。低レイテンシーかつ高スループットなパフォーマンスで提供されるため、クラウドアプリケーション、動的なウェブサイト、コンテンツ配信、モバイルやゲームのアプリケーション、ビッグデータ分析など、幅広いユースケースに適しています。

Amazon S3 では想定されるデータへのアクセス頻度の違いやコスト最適化の観点から、他にもさまざまな「ストレージクラス」が用意されており、ユーザーは個々のユースケースに適した「ストレージクラス」を自由に選択できます。

例えば、「S3 標準 - 低頻度アクセス」は、アクセス頻度は低いけど、必要に応じてすぐに取り出すことが必要なデータを格納するのに適したストレージクラスです。「S3 標準」と同様、少なくとも 3 つ以上のアベイラビリティゾーン (AZ) にオブジェクトを格納するため、AZ の障害に対して高い耐障害性があり、99.999999999% (イレブンナイン) の耐久性と、99.99% に及ぶ可用性を誇ります。

S3 1 ゾーン - 低頻度アクセス」も、低アクセス頻度かつ迅速なデータ取り出しに適した設計のストレージクラスではありますが、オブジェクトは 1 箇所の AZ に格納されるため、その地域に物理的な障害が発生した場合データの損失につながります。そのため、1 年運用した場合の可用性は 99.5% にとどまる一方、「S3 標準 - 低頻度アクセス」よりも 20% 程度コストを削減できます。

クリックすると拡大します

最適な「ストレージクラス」は、保管するデータやユースケースで異なります。Amazon S3 の「ストレージクラス」の種類について詳しくは、『ユーザーガイド』の「Amazon S3 ストレージクラス」を参照してください。


2. ストレージクラス間のデータ移行

通常、同一のデータであっても、保存期間によってアクセスパターンが変わるものです。例えば、ストレージに格納した直後は頻繁にアクセスされるデータであっても、時が経つにつれて、徐々にアクセス頻度が低くなるといったことは容易に想定されます。「Amazon S3」では、指定した期間でストレージクラスを変更し、コスト効率を最大化させる仕組みとして「ライフサイクル」を提供しています。

例えば、高いアクセス頻度が想定されるデータを「標準」ストレージクラスに格納した 30 日後に、コスト削減が見込める「標準 – 低頻度」や「1 ゾーン - IA」に自動で移行し、さらにその 1 年後、長期保存に優れたストレージ「Amazon Glacier」にアーカイブするといった運用が考えられます。

なお、2022 年 2 月現在「Amazon S3 Glacier」には以下の 3 種類の「ストレージクラス」があります。

  • Glacier Instant Retrieval
  • Glacier Flexible Retrieval
  • Glacier Deep Archive

図内では、旧「Amazon S3 Glacier」の機能を引き継いだ「Glacier Flexible Retrieval」を例にしています。

クリックすると拡大します

なお、ストレージクラス間のデータ移行時はリクエストごとに料金が発生しますが、2021 年 3 月に Glacier へのライフサイクルリクエストが 40% 引き下げられ、より利用しやすくなりました。

また、これまでライフサイクルの実行アクションは保存期間でのみ条件付けできましたが、2021 年 11 月以降、バージョンの数やオブジェクトサイズに基づくフィルターでライフサイクルルールをより細かく管理できるようになりました。

ストレージクラスの「ライフサイクル」について詳しくは、『ユーザーガイド』の「ストレージのライフサイクル管理」を参照してください。


3. サーバー側の暗号化

Amazon S3 はオブジェクトストレージであるため、悪意のある第三者から重要なデータを保護することは運用上最も大切な要素です。Amazon S3 では、IAM ポリシーやバケットポリシーなどを使ったアクセス制御のほか、保管しているデータ自体を暗号化する仕組みが整っています。

S3 バケットに保管されたデータは、以下の 3 種類の方法で AES-256 形式に暗号化できます。

  1. Amazon S3 が管理しているマスターキーを使って暗号化 (SSE-S3)
    ※ Amazon S3 管理のマスターキーは、3 年ごとに自動でキーローテーションされます。
  2. AWS Key Management Service (KMS) で管理しているキーを使って暗号化 (SSE-KMS)
    ※ キーの状況を AWS CloudTrail で追跡できます。
  3. ユーザーが任意のキーで暗号化 (SSE-C)

クリックすると拡大します

上記 3 種類のうち、ユーザーのセキュリティポリシーに従って暗号化方式を自由に選択できます。

Amazon S3 バケットの暗号化について詳しくは、『ユーザーガイド』の「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。


4. 直接クエリ

Amazon S3 はシンプルなオブジェクトストレージでありながら、便利な機能の一つとして「Amazon S3 Select」があります。

Amazon S3 Select」を使って、Amazon S3 に格納した CSV 形式または JSON 形式のデータを検索・集計に、シンプルな構造化クエリ言語 (SQL) の SELECT 文を利用できます。これにより、データベースにデータをロードしなくても、オブジェクトストレージの格納された大量のデータに対して直接クエリが可能です。

クリックすると拡大します

なお、クエリ時にスキャンされたデータサイズや、返されたデータサブセットのサイズによって従量課金で料金が発生します。

Amazon S3 Select」について詳しくは、『ユーザーガイド』の「Amazon S3 Select を使用したデータのフィルタリングと取得」を参照してください。


5. オブジェクトロック

オブジェクトロック」は、Amazon S3 に格納したオブジェクトの意図しない削除や上書き、改ざんを防止する機能で、WORM (Write Once Read Many) 機能とも呼ばれます。ロックをかけるオブジェクトは任意の保持期間を設定できます。

オブジェクトロック」には以下の 2 つのモードがあります。

  • ガバナンスモード :
    特別なアクセス許可を持つユーザーにのみ、保持期間中のオブジェクトを削除・上書きできます。
  • コンプライアンスモード :
    いかなるユーザーも、保持期間中のオブジェクトを削除・上書きできません。

クリックすると拡大します

オブジェクトロック」について詳しくは、『ユーザーガイド』の「S3 オブジェクトロックの仕組み」を参照してください。


6. Amazon S3 の料金

Amazon S3 の料金体系は、最低料金なしの従量課金です。利用した分のみ課金されるため、ユースケースに合わせてコスト効率を最適化できます。
Amazon S3 のコスト要素は、以下の 6 点です。

  1. ストレージの料金
  2. リクエストとデータ取り出しの料金
  3. データ転送と転送高速化の料金
  4. データ管理機能および分析機能の料金
  5. レプリケーションの料金
  6. S3 Object Lambda でデータを処理するための料金

ここでは、上記要素から「リクエスト」、「ストレージ」、「データ転送」の 3 要素をご紹介します。
※ 図内の料金はすべて「アジアパシフィック (東京) 」リージョンのものです。

リクエスト料金

リクエストの料金は、Amazon S3 バケットと格納されているオブジェクトへの、API および SDK を使用したリクエスト件数ごとに課金されます。

リクエストあたりの料金は、ストレージタイプやリクエストタイプによって異なります。

クリックすると拡大します

ストレージ料金

Amazon S3 に保管したオブジェクトのサイズに対してストレージ料金が課金されます。サイズあたりの料金は一律ではなく、ボリュームディスカウントが適用されます。
最初の 50 TB/月、次の 450 TB/月、500 TB/月で段階的に安価になります。

クリックすると拡大します

データ転送料金

Amazon S3 からインターネットや他の AWS リージョンに出し入れするデータの帯域幅に対して課金されます。
ただし、インターネットから Amazon S3 へのデータ転送や、Amazon CloudFront へのデータ転送などは無料でご利用いただけます。

クリックすると拡大します

上記以外に Amazon S3 の料金体系は細かく設定されています。Amazon S3 の料金について詳しくは、『製品』ページの「Amazon S3 の料金」を参照してください。

また、具体的なデータサイズやリクエスト数などを基に、詳細なコストの見積もりをする場合は、「AWS 料金計算ツール」が便利です。


最後に、全体の図を見てみましょう。


まとめ

本記事では、Amazon S3 の広範な機能を 6 つの項目に分けてご紹介しました。

Amazon S3 は、高可用性と耐久性、低レイテンシーかつ高スループットなオブジェクトストレージであるだけでなく、データベースのようなクエリによるデータ検出や、(本記事では紹介していないですが) 静的サイトのウェブサイトホスティングを安価に行うことも可能です

その他にも本記事では書ききれない機能が盛りだくさんなので、ぜひ『製品』ページの「Amazon S3」も合わせてご覧ください。

AWS グラレコ解説のその他の記事はこちら

選択
  • 選択
  • 今話題のブロックチェーンをAWSで実現する仕組みをグラレコで解説 »
  • サーバーレスって何が便利なの ? AWS でサーバーレスを構築するためのサービスをグラレコで解説 »
  • 機械学習のワークフローってどうなっているの ? AWS の機械学習サービスをグラレコで解説 »
  • 外部から AWS のバックエンドサービス利用を実現する仕組みをグラレコで解説 »
  • AWS でデプロイの自動化を実現するベストプラクティスをグラレコで解説 »
  • コンテナを使ってモノリスを分割する方法をグラレコで解説 »
  • クラウドへ移行する理由とそのステップをグラレコで解説 »
  • Windows ワークロードをクラウドへ移行するためのベストプラクティスをグラレコで解説 »
  • サーバーレスのイベントバスって何 ? Amazon EventBridge をグラレコで解説 »
  • サーバーレスで SaaS を構築する方法をグラレコで解説 »
  • 「あなたへのおすすめ」はどう生成するの ? Amazon Personalize で簡単に実現する方法をグラレコで解説 »
  • クラウド設計・運用のベストプラクティス集「AWS Well-Architectedフレームワーク」をグラレコで解説 »
  • 特定の顧客セグメントにメッセージ送信。「Amazon Pinpoint」の仕組みをグラレコで解説 »
  • アプリにユーザー認証機能を簡単に追加できる「Amazon Cognito」をグラレコで解説 »
  • わずか数分で WordPress サイトを構築できる「Amazon Lightsail」をグラレコで解説 »
  • 異なるアプリケーション同士の疎結合を実現。「Amazon SQS」をグラレコで解説 »
  • Web アプリを高速に開発できる「AWS Amplify」をグラレコで解説 »
  • 機械学習の知識ゼロでもテキストデータを分析。Amazon Comprehend をグラレコで解説 »
  • ビジネスデータをまとめて可視化 & 分析。Amazon QuickSight をグラレコで解説
  • 人工衛星の地上局を 1 分単位で利用。AWS Ground Station をグラレコで解説
  • カオスエンジニアリングで本当にカオスにならないための進め方をグラレコで解説
  • GraphQL API を簡単に作成 & 運用。AWS AppSync をグラレコで解説
  • IoT 環境を必要な機能を選択するだけで構築。AWS IoT をグラレコで解説
  • 高い可用性と耐久性のオブジェクトストレージ。Amazon S3 をグラレコで解説
  • サーバーレスでイベント駆動型アプリケーションを実現。AWS Lambda をグラレコで解説
  • データサイエンス教育の強い味方。Amazon SageMaker Studio Lab をグラレコで解説
  • 高速で柔軟な NoSQL データベースサービス。Amazon DynamoDB をグラレコで解説
  • リレーショナルデータベースを簡単・迅速に実現。Amazon RDS をグラレコで解説
  • アプリのワークフローを視覚的に構成。 AWS Step Functions をグラレコで解説
  • データ保護に使う暗号化キーを一元管理。AWS KMS をグラレコで解説
  • アプリケーションへのトラフィックを効率的に負荷分散。Application Load Balancer をグラレコで解説
  • AWS で簡単にコンテナアプリケーションを構築 ! Amazon ECS をグラレコで解説
  • 大規模データセットも簡単クエリ! Amazon Athena をグラレコで解説
  • キャッシュ機能でアプリの高速化を実現 ! Amazon ElastiCache をグラレコで解説
  • 使い慣れたプログラミング言語でクラウド環境を構築 ! AWS CDK をグラレコで解説
  • ストリーミングデータを簡単にキャプチャ、処理、保存 ! Amazon Kinesis Data Streams をグラレコで解説
  • AWS で始める機械学習はじめの一歩 ! AWS の主要な AI/ML サービスをグラレコで解説
  • リレーショナルデータベースをサーバーレス化 ! Amazon Aurora Serverless をグラレコで解説
  • ML 駆動の検索エンジンで企業の情報管理を革新! Amazon Kendra をグラレコで解説
  • オンプレミス、エッジ、どこでも楽々コンテナ管理 ! Amazon EKS Anywhere をグラレコで解説
  • 生成 AI アプリケーション開発をもっと身近に、簡単に ! Amazon Bedrock をグラレコで解説
  • わずか数クリックで多様な脅威を監視しクラウドを保護 ! 脅威検出サービス Amazon GuardDuty をグラレコで解説
  • データの改ざん耐性と変更履歴の検証可能性を実現 ! 台帳データベース Amazon QLDB をグラレコで解説
  • 生成 AI x クラウドがもたらす次世代のイノベーション ! AWS Summit Japan Day 1 基調講演をグラレコで解説
  • ビジネス向け生成 AI アシスタント Amazon Q Business をグラレコで解説
  • 生成 AI コーディングアシスタント Amazon Q Developer をグラレコで解説

builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

米倉 裕基
アマゾン ウェブ サービス ジャパン合同会社
テクニカルライター・イラストレーター

日英テクニカルライター・イラストレーター・ドキュメントエンジニアとして、各種エンジニア向け技術文書の制作を行ってきました。
趣味は娘に隠れてホラーゲームをプレイすることと、暗号通貨自動取引ボットの開発です。
現在、AWS や機械学習、ブロックチェーン関連の資格取得に向け勉強中です。

監修者プロフィール

焼尾 徹 (やきお とおる)
アマゾン ウェブ サービス ジャパン合同会社
ストレージスペシャリスト ソリューションアーキテクト

IT 業界におけるハードウェア、ソフトウェアの販売を経験しました。AWS では現在はストレージスペシャリストソリューションアーキテクトとして、お客様のストレージ関連案件を支援しています。趣味はきこりで、自然と共生できるサステイナブルなストレージ活用を目指せるといいな、と思っています。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する