AWS再入門ブログリレー Amazon S3編

2022.02.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部コンサルティング部のイムです。

当エントリは弊社コンサルティング部による『AWS 再入門ブログリレー 2022』の14日目のエントリです。

このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。

AWSをこれから学ぼう!という方にとっては文字通りの入門記事として、またすでにAWSを活用されている方にとってもAWSサービスの再発見や2022年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。

14日目のテーマは「Amazon S3」です。

S3とは


Amazon Simple Storage Service(Amazon S3)
拡張性、データ可用性、セキュリティ、性能を提供するオブジェクトストレージサービス

バケット・オブジェクト

  • バケット:データ(写真、動画、文書など)をアップロードする一つの場所
  • オブジェクト:バケットに保存されるデータ(写真、動画、文書など)

ストレージクラス

S3 Standard

  • よくアクセスするデータのために高い耐久性·可用性·性能を備えたオブジェクトストレージ
  • 短い遅延時間と多くの処理量を提供
  • ユースケース: 汎用
    • クラウドアプリケーション
    • 動的ウェブサイト
    • コンテンツ配布
    • モバイル及びゲームアプリケーション
    • ビッグデータ分析
    • など、、

S3 Intelligent-Tiering

  • 性能への影響、検索料金や運営の負担なく、アクセス頻度に応じて最も費用効率的なアクセスティアでデータを自動的に移動し、細分化されたオブジェクトレベルでストレージコストを自動で削減するクラウドストレージ
  • よくアクセスするデータ、よくアクセスしないデータ、そしてほとんどアクセスしないデータに対してミリ秒単位の待ち時間と高い処理量を提供
  • ユースケース: 不明または変化するアクセス
    • データレイク
    • データ分析
    • 新しいアプリケーションとユーザー生成コンテンツに対する基本ストレージクラス

S3 Standard-IA

  • よくアクセスしないが、必要時に素早くアクセスする必要があるデータに適合
  • S3 Standardの優れた耐久性、高い処理量と短い待ち時間を安価なGB当たりストレージ料金とGB当たり検索料金で提供
  • ユースケース: 少ないが、早いアクセス
    • 長期ストレージ
    • バックアップ及び災害復旧ファイル用データストア

S3 One Zone-IA

  • よくアクセスしないが、必要時に素早くアクセスする必要があるデータに適合
  • 単一AZにデータを保存し、コストが S3 Standard-IAより20%安い
  • S3 Standardと同じ高い耐久性、多くの処理量と短い待ち時間を安価なGB当たりのストレージ料金とGB当たりの検索料金で提供
  • ユースケース:
    • あまりアクセスしないデータに対して安価なオプションを求めるが、S3 StandardまたはS3 Standard-IAストレージのような可用性·復元力の必要がない場合
    • オンプレミスのデータまたは簡単に再生成できるデータの補助バックアップのコピーを保存する場合

S3 Glacier Instant Retrieval

  • よくアクセスせずにミリ秒単位の検索が必要な長期データに対して最も安いコストのストレージを提供するアーカイブストレージクラス
  • S3 Standard 及び S3 Standard-IA ストレージクラスと同じ処理量とミリ秒単位のアクセスをサポートし、アーカイブストレージに対する最速のアクセスを提供
  • ユースケース:
    • 医療イメージ、ニュースメディア資産やユーザ生成コンテンツのアーカイブなど、即座にアクセスが必要なアーカイブデータに理想的

S3 Glacier Flexible Retrieva

  • 年間1~2回アクセスして非同期式で検索できるアーカイブデータに対して、S3 Glacier Instant Retrievalより最大10%安いコストでストレージを提供
  • 即時アクセスが必要ではないが、バックアップや災害復旧ユースケースのように大規模データ集合を無料で検索できる柔軟性が必要なアーカイブデータに理想的なストレージクラス
  • 数分程度から数時間まで、様々なアクセス時間でコストのバランスを調整する最も柔軟な検索オプションと無料大量検索機能を提供
  • ユースケース:
    • たまに数分以内に一部のデータを検索でき、コストについて心配したくない場合
    • バックアップ、災害復旧

S3 Glacier Deep Archive

  • Amazon S3で最も安いコストのストレージクラスであり、年に1、2回程度アクセスできるデータの長期保管やデジタル保存するアーカイブストレージクラス
  • コンプライアンス要件を満たすために、7~10年以上保存するデータ集合に適合(特に金融サービス、医療、公共部門のように厳しく規制される産業の顧客
  • Amazon S3 Glacierを補完し、データを定期的に検索し、一部データの場合は数分以内に使用できるアーカイブ
  • バックアップ及び災害復旧ユースケースにも使用可能

S3 on Outposts

  • オンプレミス AWS Outposts 環境にオブジェクトストレージを提供
  • AWSリージョンに提供される S3 API と機能を使えば、S3 on Outposts で Outpost にデータを簡単に保存·検索でき、データセキュリティ、アクセス制御、タグ、報告書機能も使用可能
  • ユースケース:
    • ローカルでのデータレジデンシーの要件があるワークロード
    • データをオンプレミスアプリケーションに近く保存し、パフォーマンスに関する厳しい要件を満足可能

ストレージクラスまとめ

S3 Standard S3 Intelligent-Tiering S3 Standard-IA S3 One Zone-IA S3 Glacier Instant Retrieval S3 Glacier Flexible Retrieval S3 Glacier Deep Archive
可用性 99.99% 99% 99% 99% 99% 99.99% 99.99%
アベイラビリティーゾーン ≥3 ≥3 ≥3 1 ≥3 ≥3 ≥3
データ取り出し料金 なし なし GBあたり GBあたり GBあたり GBあたり GBあたり
最小キャパシティー料金 なし なし 128 KB 128 KB 128 KB 40 KB 40 KB
最小ストレージ期間料金 なし なし 30 日間 30 日間 90 日間 90 日間 180 日間
最初のバイトのレイテンシー ミリ秒 ミリ秒 ミリ秒 ミリ秒 ミリ秒 分または時間 時間

ライフサイクル

  • バケットに保存されたオブジェクトの寿命周期(Life Cycle)を管理できる機能
  • 一定時間が過ぎた時、使用されないファイルを削除したり他にバックアップしてS3保存スペースを節約できる費用効率的な方法
  • 使用すべき時
    • バケットに周期的にログをアップロードする場合
    • 特定の期間だけ頻繁にアクセスする文書
    • 保管目的のデータ

ライフサイクル設定方法の情報は下記のブログを参照

バージョニング

S3に保存されているオブジェクトの変化を保存すること
例えば、Aというオブジェクトをユーザーが削除したり変更したりしても、それぞれの変化を全て記録するためミスに備えることができる

より詳しい情報は下記のブログを参照

CORS機能

  • 1つのドメインでロードされ、他のドメインにあるリソースと相互作用するクライアントウェブアプリケーションに対する方法
  • CORSサポートを通じてAmazon S3で様々な機能のクライアント側のウェブアプリケーションを構築し、Amazon S3リソースに対するCross-Originアクセスを選択的に許可可能

CORS機能の使い方については下記のブログを参照

レプリケーション

Amazon S3バケット間でオブジェクトを自動で非同期式にコピーする機能

  • Same-Region Replication
    • 同じAWSリージョン内のバケット間でデータを自動で複製するS3機能
    • ユースケース
      • コンプライアンス
      • レイテンシーのパフォーマンス
      • リージョンの効率性
  • Cross-Region Replication
    • 異なるAWSリージョンにかけてバケット間でデータを自動で複製する機能
    • ユースケース
      • 単一のバケットにログを集約
      • デベロッパーアカウントとテストアカウント間のレプリケーション
      • データ主権法の遵守

S3 Object Lambda

  • S3にデータを保存すると、複数のアプリケーションで簡単に共有できるが、それぞれのアプリケーションには固有の要求事項があり、データを別の方法で調べる場合もある
    • 電子商取引アプリケーションで生成されたデータセットには、分析のために処理される場合:個人識別情報(PII)を修正すべき
    • 同一のデータセットがマーケティングキャンペーンに使用される場合:顧客忠誠度データベースの情報など追加詳細情報でデータを補強
  • 検索されたデータをアプリケーションに戻す前に、独自のコードを追加して処理できる機能
  • S3 Object Lambdaは既存のアプリケーションと一緒に動作し、AWS Lambda関数を使用してS3で検索されるデータを自動的に処理して変換

より詳しい情報は下記のブログを参照

セキュリティ

Amazon S3は下のアクセス管理機能を組み合わせて使用することで、他のユーザーにアクセス権限を付与します。

  • AWS Identity and Access Management (IAM)
    • ユーザーを生成し、ユーザーのアクセスを管理
  • アクセスコントロールリスト (ACL)
    • 権限あるユーザーに対して個別オブジェクトをアクセス可能にする
  • S3 Access Points
    • 各アプリケーションまたはアプリケーションの集合に対して特定の名前と権限でアクセスポイントを生成し、共有データのデータアクセス管理を簡素化する機能
  • バケットポリシー
    • 単一S3バケット内の全てのオブジェクトに対する権限を構成
  • クエリ文字列認証
    • URLを使用して他のユーザーに期間制限アクセスを付与

その他にも

  • 監査ログ
    • 誰がどのデータにアクセスするかを確認できるようにS3リソースへのリクエストリストを表示
  • 暗号化
    • データアップロードの時、サーバ側暗号化(SSE-KMS、SSE-C、SSE-S3)とクライアント側暗号化の両方をサポート

より詳しい情報は下記のブログを参照

最後に

以上、『AWS 再入門ブログリレー 2022』の 14日目のエントリ『Amazon S3』編でした。明日 (02/22) はジェウクさんの「Application Load Balancer」の予定です。お楽しみに!!