おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-S3-S3の概要

今回のテーマ:S3の概要

主要サービスの公式資料

Amazon S3 docs.aws.amazon.com

概要

AWSストレージサービスには以下の種別があります。

種類 概要
ブロックストレージ ・EC2にアタッチし活用するディスクサービス
・ブロック形式でデータ保存
・高速・広帯域幅
・例:EBS、インスタンスストア
オブジェクトストレージ ・安価かつ高耐久性をもつオンラインストレージ
・オブジェクト形式でデータを保存
・例:S3、Glacier
ファイルストレージ ・複数のEC2インスタンスから同時にアタッチ可能な共有ストレージ
・ファイル形式でデータ保存
・EFS

Sumple Storage Service(S3)

Sumple Storage Service(S3)は、ユーザがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクトストレージとなります。

特徴

  • 高い耐久性:99.999999999%
  • 安価なストレージ:容量単価月額1GB/約3円
  • スケーラブルで安定した性能:データは冗長化されて保存されデータ容量に依存しない性能がAWS側で保障
  • 暗号化:転送中や保存時にデータを暗号化可能

データ保存形式

  • バケット:オブジェクトの保存場所。場所はグローバルでユニークな必要あり
  • オブジェクト:S3に格納されるファイルでURLが付与される。バケット内オブジェクト数は無制限
  • データサイズ:データサイズは0KBから5TBまで保存可能

S3オブジェクト構成

  • Key:オブジェクトの名前であり、バケット内のオブジェクトは一意に識別
  • Value:データそのものであり、バイト値で構成される
  • バージョンID:バージョン管理に用いるID
  • メタデータ:オブジェクトに付随する属性の情報
  • サブリソース:バケット構成情報を保存および管理するためのサポート提供

S3データ構造

S3データ構造は、バケット単位で保存スペースを区分し、オブジェクトでデータを格納します。
イメージ図は以下のようになります。

f:id:In-houseSE:20210430094404p:plain

AWSストレージサービス

AWSストレージサービスは、S3の用途に応じてストレージタイプを選択します。

タイプ 特徴 性能
STANDARD ・複数個所にデータを複製するため耐久性が非常に高い ・耐久性:99.999999999%
・可用性:99.99%
STANDARD-IA ・スタンダートに比べて安価
・データの読み出し容量に応じた課金
・耐久性:99.999999999%
・可用性:99.9%
One Zone-IA ・アクセス頻度は低いが、必要に応じてすぐに取り出すデータ向け ・耐久性:99.999999999%
・可用性:99.5%
RRS ・Reduced Redundancy Storage低冗長化ストレージ
・Glacierから取り出したデータ配置等
・耐久性:99.99%
・可用性:99.99%
Amazon Glacier ・最安のアーカイブストレージ
・データ抽出にコストと時間(3~5時間)を要する
・ライフサイクルマネイジメントで指定
・ボールロック機能でデータ保持
・耐久性:99.999999999%
・可用性:N/A

S3 Intelligent-Tiering

S3 Intelligent-Tieringは、低頻度アクセスのオブジェクトを自動的に低頻度アクセス層へ移動することで、コスト削減を実現します。
イメージ図は以下のようになります。

f:id:In-houseSE:20210502091201p:plain

S3(標準)の値段

時価によって変動するため、参考価格となります。
保存データ容量、データ取得リクエストおよびデータ転送アウトに応じて課金されます。

容量当たりの料金
  • 最初の50TB/月:0.025USD/GB
  • 次の450TB/月:0.024USD/GB
  • 500TB/月以上:0.023USD/GB
データ取り出しリクエスト料金
  • PUT、COPY、POST、LISTリクエスト(1000リクエスト):0.0047USD
  • GET、SELECT、他すべてのリクエス(1000リクエスト):0.00037USD
データ転送料金

データ転送(イン)は無料
インターネットへのデータ転送(アウト)は以下通りとなります。

  • 1GBまで/月 0.00USD(GB)
  • 次の9.999TB/月 0.114USD(GB)
  • 次の40TB/月 0.089USD(GB)
  • 次の100TB/月 0.086USD(GB)
  • 150TB/月 0.084USD(GB)

S3の整合性モデル

S3は高い可溶性を実現するため、データ更新・削除には結果整合性モデルを採用してます。
同時書き込みはタイプスタンプ処理を実施し実現します。
データ処理と整合性モデルについて以下のようになります。

データ処理 整合性モデル
新規登録 ・Consistency Read
・登録後即時にデータが反映される
更新 ・Evantual Consistency Read
・更新直後はデータ反映に時間がかかる
削除 ・Eventual Consistency Read
・削除直後はデータ反映に時間がかかる

S3のアクセス管理

S3のアクセス管理は用途に応じて方式を分けます。
S3はインターネットからパブリックアクセスの設定が可能となります。
管理方法と特徴は以下のようになります。

管理方法 特徴
IAMユーザーポリシー ・IAMユーザーに対しS3サービスへのアクセス権限を設定
・一元的にユーザー権限を管理
バケットポリシー バケットへのアクセス件をJSONで設定
・他アカウントへの許可
バケット単位の高度なアクセス管理向け
ACL バケット個々のオブジェクトへのアクセス権限をXMLで設定
・他アクセスへの許可も可能
・簡易的にアクセス管理向け
署名付きURL AWS SDKで生成した署名付きURLでS3オブジェクトへの一定時間アクセスを許可

S3の暗号化

S3へのデータ保管時に暗号化形式として、4つの形式から選択します。
暗号化方式と特徴は以下のようになります。

暗号化方式 特徴
SSE-S3 ・S3の標準暗号化方式で容易に利用可能
・暗号化キーの作成、管理をS3側で自動実施
ブロック暗号の1つである256ビットのAdvanced Encyption Standard(AES-256)を使用しデータを暗号化
SSE-KMS AWS KMSに設定した暗号化キーを利用した暗号化を実施
・ユーザー側でAWS KMSを利用し暗号化キーを作成、管理することが可能
・クライアント独自の暗号キーを利用可能
SSE-C ・ユーザーが指定したキーによるサーバー側の暗号化(SSE-C)を使用することが可能
・利用設定や管理が煩雑となる
クライアントサイド暗号化(CSE) ・クライアント側の暗号化では、Amazon S3に送信する前にデータを暗号化する方式
AWS KMSなどを利用し暗号化キーを作成、実施
・アプリケーション内に保存したマスターキーを使用

S3アクセスポイント

S3アクセスポイントは、S3上の共有データセットを使用するアプリケーションへ大規模なデータアクセス管理が必要な際に実施します。
実現方法は下記の4つの機能を活用します。

  • アクセスポイントを設定
  • アクセス制限設定
  • VPCアクセス制限設定
  • アクセス管理の実行

S3アクセスアナライザー

S3アクセスアナライザーは、アクセスポリシーに沿っているか確認し、不正アクセスが発生してないか監視する機能となります。
ポイントは以下ようになります。

  • IAMアクセスアナライザーに連動したS3向け機能
  • バケットポリシー/ACLのモニタリング
  • パブリックまたは共有バケットアクセスを検出
  • バケットポリシー、バケットACLまたはその両方。バケットアクセスのソースを検索し確認する場合、この列の情報をまず使用し迅速で正確な是正措置を実行する
  • すべてのパブリックバケットと共有バケットの結果を表示
  • バケットの実施のアクセス状態を確認

ライフサイクル管理

ライフサイクル管理は、バケット内をオブジェクト単位でストレージ位すの変更や削除時期などを自動化します。
設定概要は以下となります。

  • バケット全体やPrefixに設定
  • オブジェクト更新日を基準に日単位で指定し、毎日0:00UTCにキューを実行
  • 最大1000ルールまで設定可能
  • IAに移動できるのは128KB以上のオブジェクト
  • MFADeleteが有効だと設定不可

レプリケーション

リージョン間を跨ぐクロスリージョンレプリケーションにより耐障害性を高めます。 また、レプリケーションのトリガーや設定の条件は以下のようになります。

バージョン管理

バージョン管理は、ユーザーによる誤操作でデータ削除などが発生してもバージョンから復元できます。
また、S3のデータリストアとして活用され設定する概要は以下のようになります。

  • 設定概要
    • バケットをバージョン管理
    • バージョン保管されたオブジェクトを参照可能
    • ライフサイクル管理によって保存する期間を指定
    • バケット削除時に古いバージョンの別途削除が必要

バックアップ

S3のバックアップ方式として、一定期間後にGlacierを利用しバックアップと復元が実施可能となります。

アーカイブ

S3のアーカイブ方式として、以下のようなものがあります。

  • 複数リージョンでレプリケートすることが可能
  • S3オブジェクトデータをライフサイクル設定によりGlacierへ移動

リストア

S3のリストア方式として、バージョン管理機能により削除されたデータを復元します。

利用状況の確認

S3の利用状況やS3イベント発生を確認します。

S3の分析

S3の分析として以下のものが挙げられます。

  • データのアクセスパターンの簡易化
  • CSV形式で出力可能
  • バケット内の分析を実施
  • アクセス頻度の低いデータや保存期間を確認し、ライフサイクルポリシー設定へ活用

S3のイベント通知

S3のイベント通知は以下のものがあります。

  • バケット内イベント発生をトリガーにして、SNS/SQN/Lambdaに通知設定が可能
  • シームレスなシステム連携処理を実現

S3データの解析

S3データの解析は、S3内のデータ検索、解析には用途に応じて複数サービスから選択可能となります。
分析サービスと特徴は以下のようになります。

分析サービス 特徴
S3 Select(Glacier Select) ・S3の内部機能として有している検索機能で、S3内で直接クエリを実行しデータを取得
GZIP圧縮データやCSVJSONに対して実行可能
Amazon Athena Amazon S3内のデータを直接分析できるようにするインタラクティブなクエリサービス
・Athena SQLクエリでSagaMaker機械学習モデルを呼び出し、機械学習による推論も実行可能
Amazon Macie 機械学習によるAmazon S3の機密データ検出、分類、保護をするフルマネージド型サービス
・機密データ検出や調査を実施
Amazon RedShift Spectrum Amazon S3の格納データに対し、Amazon Redshiftから直接クエリを実行できる機能
・Redshiftクラスターが起動されている前提であるため、Redshiftを利用している場合活用

CORS

CORSはクロスオリジンリソースシェアリングの略で、
特定のドメインにロードされたアプリケーションが異なるドメイン内のリソースと通信する方法を定義になります。

マルチパートアップロード

マルチパートアップロードは、大容量オブジェクトをいくつかに分けてアップロードする機能となります。
ポイントは以下のようになります。

  • ポイント
    • 最大5TBのデータをアップロード可能
    • 最大10000パートに分割
    • 5MB~5GBまでの分割サイズを指定し、最後は5MB未満でも可能
    • アップロードが失敗した場合
      • パートデータが残る
      • ライフサイクル管理でクリーンアップ設定が可能

バッチオペレーション

バッチオペレーションは、S3オブジェクトの大量データに対し、一括処理を実行(バッチ処理)を行います。

ジョブ

ジョブは、S3バッチオペレーションの機能の基本単位でとなります。
ポイントは以下のものがあります。

  • オブジェクトのリストに対し、指定された操作を実行するために必要なすべての情報を登録
  • S3バッチオペレーションにオブジェクトのリストを渡し、それらのオブジェクトに対し実行するアクションを指定

マニュフェスト

マニュフェストは、Amazon S3が作用するオブジェクトキーをリストするAmazon S3オブジェクトになります。
ポイントは以下のものがあります。

  • マニュフェストオブジェクトキー、ETag、およびオプションでバージョンIDをを指定
  • Amazon S3イベントリレポート/CSVファイルの2つの形式で設定

今回のテーマは以上です。